{"version":3,"sources":["assets/images/defaultImage.png","assets/images/base_impact_eco.png","assets/images/carbon.png","assets/images/bg_default-active-challange.jpg","assets/images/base_impact_fitness.png","assets/images/base_impact_nutrition.png","assets/images/base_impact_civic.png","assets/images/svg/habits-icon.svg","assets/images/public/defaultProfileIcon.png","assets/images/joulebug/logo.png","assets/images/wildForAll/logo.png","assets/images/wildForAll/welcome-profile.png","assets/images/buzz.png","assets/images/community.png","assets/images/photo.png","assets/images/water.png","assets/images/waste.png","assets/images/favicon.ico","assets/images/challengeSamples/breakfast.jpeg","assets/images/challengeSamples/camera.jpeg","assets/images/challengeSamples/burgers.jpeg","assets/images/mobile_screen.png","assets/images/no-content.png","assets/images/not_found.png","assets/images/defaultPinIcon.png","assets/images/logo-jb-gray.png","assets/images/defaultActivityIcon.png","assets/images/defaultActionsIcon.png","assets/images/yammer_btn_icon.png","assets/images/okta_btn_icon.png","assets/images/loader.gif","assets/images/ios_notifications.png","assets/images/notification_wrapper.png","assets/images/notification_buzz_icon.png","assets/images/bg_signup_invite.jpg","assets/images/challenge_competitive.png","assets/images/challenge_individuals.png","assets/images/challenge_duration.png","assets/images/plus_one_bonus_points.png","assets/images/videos_icon.png","assets/images/links_icon.png","assets/images/verify_email_icon.png","assets/images/social/google.png","assets/images/onboarding_logo.png","assets/images/onboarding_logo_white.png","assets/images/apple_store_badge.png","assets/images/google_store_badge.png","assets/images/bg_email_verification1.png","assets/images/bg_email_verification2.png","assets/images/bg_on_boarding1.png","assets/images/bg_on_boarding2.png","assets/images/login-bkgd-1.png","assets/images/login-bkgd-2.png","assets/images/bg_welcome.png","assets/images/bg_community.png","assets/images/sustainability-2.png","assets/images/fitness-2.png","assets/images/nutrition-2.png","assets/images/diversity_inclusion.jpg","assets/images/remote_engagement.jpg","assets/images/civic.jpg","assets/images/sustainability.png","assets/images/fitness.png","assets/images/nutrition.png","assets/images/bg_invite_screen.png","assets/images/challenge_customize.png","assets/images/base_impact_waste.png","assets/images/base_impact_water.png","assets/images/blank_challenge_icon.png","assets/images/svg/sustainability-icon.svg","assets/images/svg/civic-icon.svg","assets/images/svg/competitive-icon.svg","assets/images/svg/days-icon.svg","assets/images/svg/diversity-icon.svg","assets/images/svg/fitness-icon.svg","assets/images/svg/individual-icon.svg","assets/images/svg/nutrition-icons.svg","assets/images/svg/remote-icon.svg","assets/images/logo_green.png","assets/images/social/slack.png","assets/images/social/facebook.png","assets/images/svg/warning-icon.svg","assets/images/svg/close-icon.svg","assets/images/filetypes/7z.png","assets/images/filetypes/ae.png","assets/images/filetypes/ai.png","assets/images/filetypes/avi.png","assets/images/filetypes/css.png","assets/images/filetypes/csv.png","assets/images/filetypes/doc.png","assets/images/filetypes/html.png","assets/images/filetypes/ico.png","assets/images/filetypes/jpg.png","assets/images/filetypes/js.png","assets/images/filetypes/mov.png","assets/images/filetypes/mp3.png","assets/images/filetypes/mp4.png","assets/images/filetypes/mpeg.png","assets/images/filetypes/pdf.png","assets/images/filetypes/png.png","assets/images/filetypes/ppt.png","assets/images/filetypes/psd.png","assets/images/filetypes/py.png","assets/images/filetypes/rar.png","assets/images/filetypes/svg.png","assets/images/filetypes/swf.png","assets/images/filetypes/tiff.png","assets/images/filetypes/txt.png","assets/images/filetypes/wav.png","assets/images/filetypes/wmv.png","assets/images/filetypes/xls.png","assets/images/filetypes/zip.png","assets/images/filetypes/other.png","assets/images/joulebug/defaultChallengeIcon.png","assets/images/joulebug/defaultCommunityIcon.png","assets/images/joulebug/defaultProfileIcon.png","assets/images/joulebug/defaultAppIcon.png","assets/images/joulebug/in_app_notifications.png","assets/images/joulebug/welcome-profile.png","assets/images/joulebug/welcome-edit.png","assets/images/joulebug/welcome-actions.png","assets/images/joulebug/welcome-challenges.png","assets/images/joulebug/welcome-activity.png","assets/images/joulebug/landing-mockup.png","assets/images/joulebug/app-mockup.png","assets/images/joulebug/challenge-share-image.jpg","assets/images/joulebug/community-share-image.jpg","assets/images/public/defaultChallengeIcon.png","assets/images/public/defaultCommunityIcon.png","assets/images/public/defaultAppIcon.png","assets/images/public/in_app_notifications.png","assets/images/public/welcome-profile.png","assets/images/public/welcome-edit.png","assets/images/public/welcome-challenges.png","assets/images/betterLiving/logo.png","assets/images/betterLiving/defaultChallengeIcon.png","assets/images/betterLiving/defaultCommunityIcon.png","assets/images/betterLiving/defaultProfileIcon.png","assets/images/betterLiving/defaultAppIcon.png","assets/images/betterLiving/in_app_notifications.png","assets/images/betterLiving/welcome-profile.png","assets/images/betterLiving/welcome-edit.png","assets/images/wildForAll/logo-white.png","assets/images/wildForAll/defaultChallengeIcon.png","assets/images/wildForAll/defaultCommunityIcon.png","assets/images/wildForAll/defaultProfileIcon.png","assets/images/wildForAll/welcome-challenges.png","assets/images/wildForAll/welcome-actions.png","assets/images/wildForAll/welcome-activity.png","assets/images/wildForAll/meta-image.jpg","assets/images/wildForAll/meta-image-horizontal.png","assets/images/bostonu/landing-mockup.png","assets/images/bostonu/app-mockup.png","assets/images/earthshare/landing-mockup.png","assets/images/earthshare/app-mockup.png","assets/images/blackstone/landing-mockup.png","assets/images/blackstone/app-mockup.png","assets/images/cemex/landing-mockup.png","assets/images/cemex/app-mockup.png","casl/ability-context.js","casl/constants.js","casl/ability.js","init/actions.js","init/reducer.js","init/constants.js","auth/actions.js","utils/api/APIErrorResponse.js","properties/default.js","properties/constants.js","properties/wildForAll.js","properties/earthshare.js","properties/blackstone.js","properties/betterliving.js","properties/public.js","properties/joulebug.js","properties/cemex.js","properties/venaenergy.js","properties/rexel.js","properties/capgroup.js","properties/kn.js","properties/bostonUniversity.js","properties/index.js","properties/pureindustrial.js","properties/cleartelligence.js","properties/nnpcgroup.js","constants/images.js","utils/index.js","notifications/actions.js","utils/api/index.js","auth/constants.js","localization/constants.js","localization/i18n.js","auth/reducer.js","deepLinks/actions.js","user/actions.js","config/analytics.js","utils/cookies.js","constants/analyticsEvents.js","constants/analyticsParams.js","utils/analytics.js","user/transforms.js","user/reducer.js","user/constants.js","actions/actions.js","activities/actions.js","actions/constants.js","actions/reducer.js","analytics/photos/actions.js","common/utils.js","analytics/photos/reducer.js","analytics/actions.js","theme/index.js","utils/styles.js","common/Graph/ChartItem/constants.js","analytics/reducer.js","challenges/actions.js","challenges/reducer.js","screens/ChallengesScreen/constants.js","screens/ChallengesScreen/reducer.js","utils/dates.js","screens/NotificationsScreen/AdminNotificationsScreen/constants.js","constants/dates.js","notifications/reducer.js","community/actions.js","community/reducer.js","image/actions.js","image/reducer.js","flags/actions.js","flags/reducer.js","screens/UpdateChallengeScreen/actions.js","screens/UpdateChallengeScreen/reducer.js","communityThemes/actions.js","communityThemes/reducer.js","screens/SettingsScreen/actions.js","screens/SettingsScreen/reducer.js","deepLinks/reducer.js","store/inviteUsers/actions.js","store/inviteUsers/reducer.js","activities/constants.js","activities/reducer.js","subscriptions/actions.js","subscriptions/reducer.js","store/reducer.js","init/saga.js","auth/api.js","config/intercom.js","deepLinks/selectors.js","common/errors/index.js","common/transforms/index.js","activities/transforms.js","user/selectors.js","utils/user.js","auth/selectors.js","auth/utils.js","utils/remoteConfig.js","auth/saga.js","common/SnackbarAlert/constants.js","user/saga.js","actions/transforms.js","screens/CreateChallengeScreen/CustomizeChallenge/constants.js","challenges/transforms.js","challenges/constants.js","challenges/saga.js","constants/challenges.js","screens/UpdateChallengeScreen/saga.js","actions/utils.js","actions/saga.js","analytics/photos/saga.js","analytics/saga.js","community/transforms.js","community/saga.js","image/saga.js","notifications/constants.js","screens/UpdateNotificationScreen/NotificationForm/constants.js","notifications/transforms.js","notifications/saga.js","flags/saga.js","communityThemes/saga.js","deepLinks/saga.js","store/inviteUsers/saga.js","screens/SettingsScreen/saga.js","common/InfiniteScroller/constants.js","activities/saga.js","subscriptions/saga.js","store/saga.js","history/index.js","theme/global.js","theme/reset.js","theme/GlobalStyles.js","common/Form/styles.js","common/Button/RawButton/styles.js","common/Button/RawButton/index.js","common/Button/index.js","common/Form/NextAndBackButtons/styles.js","common/Form/NextAndBackButtons/index.js","common/Form/index.js","common/Form/FormInput/styles.js","common/FieldLabel/styles.js","common/InfoTooltip/styles.js","common/Tooltip/propTypes.js","common/Tooltip/styles.js","common/Tooltip/index.js","common/InfoTooltip/index.js","common/FieldLabel/index.js","common/Form/FormInput/index.js","screens/SignInScreens/styles.js","screens/SignInScreens/ForgotPasswordScreen/styles.js","common/OnboardingHeader/styles.js","common/Logo/index.js","common/OnboardingHeader/index.js","common/OnboardingFooter/styles.js","common/AppDownloadLinks/styles.js","common/AppDownloadLinks/index.js","common/OnboardingFooter/index.js","common/SnackbarAlert/styles.js","common/SnackbarAlert/index.js","common/SnackbarAlert/SnackBarAPIResponse/index.js","common/RequestLoader/styles.js","common/RequestLoader/index.js","screens/SignInScreens/index.js","screens/SignInScreens/ForgotPasswordScreen/index.js","screens/SignInScreens/ResetPasswordScreen/styles.js","screens/SignInScreens/ResetPasswordScreen/index.js","screens/MainScreen/styles.js","common/UserDropdown/styles.js","common/UserDropdown/index.js","common/PageHeader/styles.js","common/PageHeader/index.js","common/CommunityCard/index.js","common/CommunityCard/styles.js","common/MenuDropdown/styles.js","common/MenuDropdown/index.js","common/IcomoonIcon/index.js","assets/images/svg/account-menu-icon.svg","assets/images/svg/chat-bubble.svg","webpack:///./src/assets/images/svg/civic-icon.svg?7363","webpack:///./src/assets/images/svg/competitive-icon.svg?43df","webpack:///./src/assets/images/svg/days-icon.svg?0ad2","webpack:///./src/assets/images/svg/diversity-icon.svg?78ea","assets/images/svg/eco-actions-icon.svg","webpack:///./src/assets/images/svg/fitness-icon.svg?f0ef","webpack:///./src/assets/images/svg/habits-icon.svg?b7db","webpack:///./src/assets/images/svg/individual-icon.svg?d952","webpack:///./src/assets/images/svg/nutrition-icons.svg?8917","webpack:///./src/assets/images/svg/remote-icon.svg?8384","assets/images/svg/remote-icon-2.svg","webpack:///./src/assets/images/svg/sustainability-icon.svg?3cc0","webpack:///./src/assets/images/svg/warning-icon.svg?4220","assets/images/svg/follow.svg","assets/images/svg/photo-added.svg","assets/images/svg/communities-icon.svg","common/CommunityDropdown/styles.js","common/CommunityDropdown/CommunityAvatar/styles.js","common/CommunityDropdown/CommunityAvatar/index.js","common/CommunityDropdown/CommunityCard/index.js","common/CommunityDropdown/index.js","common/LeftColumn/constants.js","localization/transforms.js","common/LeftColumn/styles.js","screens/AccountScreen/constants.js","user/propTypes.js","subscriptions/constants.js","subscriptions/utils.js","challenges/selectors.js","screens/ChallengesScreen/selectors.js","actions/selectors.js","notifications/selectors.js","constants/contentType.js","common/LeftColumn/index.js","common/Footer/styles.js","common/Copyright.js","common/Footer/index.js","common/MainHeader/styles.js","common/UserCounter/styles.js","common/UserCounter/constants.js","common/UserCounter/index.js","subscriptions/selectors.js","subscriptions/transforms.js","common/MainHeader/index.js","community/selectors.js","screens/MainScreen/index.js","screens/HomeScreen/AdminHome/styles.js","common/ProTips/styles.js","common/ProTips/index.js","common/DatePicker/styles.js","common/DatePicker/index.js","common/DatePickerRange/index.js","common/DatePickerRange/styles.js","common/ActiveChallenges/styles.js","common/ActiveChallenges/propTypes.js","common/ActiveChallenges/ActiveCard/styles.js","common/ActiveChallenges/ShareChallenge/styles.js","common/ActiveChallenges/ShareChallenge/index.js","common/ChallengeIcon/styles.js","common/ChallengeIcon/index.js","common/ActiveChallenges/QuickActions/index.js","common/ActiveChallenges/QuickActions/styles.js","common/ActiveChallenges/ChallengeStats/styles.js","common/ActiveChallenges/ChallengeStats/index.js","common/ActiveChallenges/ActiveCard/index.js","common/ActiveChallenges/ActiveCard/utils.js","common/ActiveChallenges/ActiveCard/constants.js","common/ActiveChallenges/index.js","common/CreateChallengeBanner/CreateSection/styles.js","common/CreateChallengeBanner/CreateSection/index.js","common/CreateChallengeBanner/styles.js","common/CreateChallengeBanner/index.js","common/Modal/index.js","common/ConfirmModal/styles.js","common/ConfirmModal/index.js","common/ActivateModal/Activate/styles.js","common/ActivateModal/Activate/index.js","common/ActivateModal/index.js","common/propTypes.js","utils/challengeButtons.js","analytics/selectors.js","analytics/transforms.js","common/Charts/LineChart/index.js","common/Charts/LineChart/styles.js","common/DatePickerRange/VisualItem/index.js","common/DatePickerRange/propTypes.js","common/DatePickerRange/VisualItem/styles.js","screens/HomeScreen/constants.js","analytics/utils.js","screens/HomeScreen/AdminHome/Graphs/index.js","common/AccountTierNotificationCard/NotificationCard/styles.js","common/AccountTierNotificationCard/NotificationCard/index.js","common/AccountTierNotificationCard/styles.js","common/AccountTierNotificationCard/index.js","common/AccountTierNotificationCard/constants.js","common/InfiniteScroller/styles.js","common/InfiniteScroller/index.js","common/ActivityCard/ActivityCardHeader/styles.js","common/ActivityCard/ActivityCardHeader/index.js","common/ActivityCard/ActivityCardBadge/styles.js","common/ActivityCard/ActivityCardBadge/index.js","common/ActivityCard/ActivityCardPhoto/styles.js","common/ActivityCard/ActivityCardPhoto/index.js","common/ActivityCard/ActivityCardLikes/styles.js","common/ActivityCard/ActivityCardLikes/index.js","common/ActivityCard/ActivityCardComment/styles.js","common/ActivityCard/ActivityCardComment/index.js","common/ActivityCard/ActivityOptionsPopper/index.js","common/Button/constants.js","common/ActivityCard/styles.js","activities/selectors.js","flags/transforms.js","flags/selectors.js","common/ActivityCard/index.js","common/ActivityCard/ActivityOptionsPopper/constants.js","common/ActivityCard/ActivityCardLoader/styles.js","common/ActivityCard/ActivityCardLoader/index.js","common/ActivityCard/ActivityCardScroller/styles.js","common/ActivityCard/ActivityCardScroller/index.js","screens/HomeScreen/AdminHome/index.js","screens/ActionsScreen/UserActionsScreen/styles.js","common/ActionTabMenu/styles.js","common/ActionTabMenu/TabPanel/styles.js","common/ActionCard/styles.js","common/ActionCard/index.js","actions/propTypes.js","common/ActionTabMenu/TabPanel/index.js","common/ActionTabMenu/index.js","common/Search/styles.js","common/Search/index.js","common/InfoCardHeader/styles.js","common/InfoCard/styles.js","common/InfoCard/index.js","common/HeaderPage/styles.js","common/HeaderPage/index.js","common/InfoCardHeader/index.js","screens/ActionsScreen/UserActionsScreen/index.js","common/InfoCard/constants.js","screens/HomeScreen/index.js","screens/ViewActionScreen/styles.js","common/BackgroundHeader/styles.js","screens/ActionsScreen/AdminActionsScreen/constants.js","common/BackgroundHeader/index.js","screens/ViewActionScreen/ActionHeader/styles.js","screens/ViewActionScreen/ActionHeader/index.js","common/BonusPoints/styles.js","common/BonusPoints/index.js","common/LogAction/LogActionItem/styles.js","common/LogAction/LogActionItem/index.js","common/LogAction/SummaryModal/styles.js","common/LogAction/SummaryModal/index.js","common/Upload/propTypes.js","common/Photo/propTypes.js","common/Photo/styles.js","common/Upload/styles.js","common/Upload/index.js","common/Photo/index.js","common/LogAction/CommentModal/styles.js","common/LogAction/CommentModal/index.js","common/LogAction/styles.js","common/LogAction/index.js","common/LogAction/constants.js","common/ErrorModal/styles.js","common/ErrorModal/index.js","common/ImageCaptionCard/styles.js","common/ImageCaptionCard/index.js","common/ImpactConversion/styles.js","common/ImpactConversion/index.js","common/ImpactTooltip/styles.js","common/ImpactTooltip/index.js","screens/UpdateActionScreen/PinSubheader/styles.js","screens/UpdateActionScreen/PinSubheader/index.js","screens/UpdateActionScreen/ActionCards/styles.js","screens/UpdateActionScreen/ActionCards/index.js","screens/ViewActionScreen/index.js","screens/UpdateActionScreen/styles.js","screens/UpdateActionScreen/ActionHeader/styles.js","screens/UpdateActionScreen/ActionHeader/index.js","common/ActionDescription/styles.js","common/ModalTitle/styles.js","common/ModalTitle/index.js","common/ActionDescription/index.js","screens/UpdateActionScreen/constants.js","screens/UpdateActionScreen/AddLink/styles.js","screens/UpdateActionScreen/AddLink/CheckboxIcon/styles.js","screens/UpdateActionScreen/AddLink/CheckboxIcon/index.js","common/errors/ErrorList/index.js","common/errors/ErrorList/styles.js","image/selectors.js","screens/UpdateActionScreen/AddLink/ConditionalWrapper/index.js","common/ImageCaptionForm/styles.js","common/PhotoUpload/index.js","common/Photo/PhotoAlternatePlaceholder/styles.js","common/Photo/PhotoAlternatePlaceholder/index.js","common/ImageCaptionForm/index.js","screens/UpdateActionScreen/AddLink/index.js","screens/UpdateActionScreen/MainControls/styles.js","screens/UpdateActionScreen/MainControls/index.js","screens/UpdateActionScreen/Description/styles.js","screens/UpdateActionScreen/Description/index.js","common/UpdateCoverPhoto/styles.js","common/UpdateCoverPhoto/index.js","common/ActionVideo/styles.js","common/Textarea/styles.js","common/Textarea/index.js","common/ActionVideo/index.js","screens/UpdateActionScreen/Videos/styles.js","screens/UpdateActionScreen/VideoComponent/styles.js","screens/UpdateActionScreen/VideoComponent/index.js","screens/UpdateActionScreen/Videos/index.js","common/MessagePaper/index.js","common/MessagePaper/styles.js","common/EditingBanner/styles.js","common/EditingBanner/index.js","localization/utils.js","screens/SettingsScreen/selectors.js","common/ActionDuplicationModal/index.js","common/ActionDuplicationModal/styles.js","screens/UpdateActionScreen/index.js","screens/ActionsScreen/AdminActionsScreen/styles.js","common/Table/propTypes.js","common/Table/TableHeader/index.js","common/Table/TableHeader/styles.js","common/Table/TableCellCheckbox/index.js","common/Table/TableCellActions/index.js","common/Table/TableCellActions/styles.js","common/Table/TableToolbar/index.js","common/Table/TableToolbar/styles.js","common/Table/index.js","common/Table/styles.js","screens/ActionsScreen/AdminActionsScreen/TableManager.js","common/ContentToggleButton/styles.js","common/ColorImage/index.js","common/ContentToggleButton/index.js","communityThemes/transforms.js","communityThemes/selectors.js","common/FormDropdown/styles.js","common/FormDropdown/index.js","common/CategoryDropdown/styles.js","common/CategoryDropdown/index.js","screens/ActionsScreen/AdminActionsScreen/index.js","communityThemes/constants.js","screens/ActionsScreen/index.js","screens/ChallengePenaltiesScreen/styles.js","screens/ChallengePenaltiesScreen/constants.js","screens/ChallengePenaltiesScreen/ThrottlesCell/styles.js","screens/ChallengePenaltiesScreen/ThrottlesCell/index.js","screens/ChallengePenaltiesScreen/PenaltyLevelCell/styles.js","screens/ChallengePenaltiesScreen/PenaltyCell/styles.js","screens/ChallengePenaltiesScreen/PenaltyCell/index.js","screens/ChallengePenaltiesScreen/PenaltyLevelCell/index.js","screens/ChallengePenaltiesScreen/index.js","screens/ChallengeTopPhotosScreen/styles.js","screens/ChallengeTopPhotosScreen/selectors.js","analytics/photos/selectors.js","common/PhotoCard/styles.js","common/PhotoCard/index.js","common/PhotoCard/constants.js","common/SocialPhoto/styles.js","common/SocialPhoto/index.js","common/TopPhotos/styles.js","common/TopPhotos/index.js","screens/ChallengeTopPhotosScreen/index.js","screens/ViewChallengeScreen/styles.js","screens/ViewChallengeScreen/ChallengeHeader/styles.js","screens/ViewChallengeScreen/JoinTeam/styles.js","screens/ViewChallengeScreen/JoinTeam/index.js","screens/ViewChallengeScreen/SelectTeam/styles.js","screens/ViewChallengeScreen/SelectTeam/index.js","common/CopyToEmail/utils.js","utils/clipboard.js","common/InviteModal/styles.js","common/InviteModal/index.js","screens/ViewChallengeScreen/ChallengeHeader/InviteUsersModal/styles.js","screens/ViewChallengeScreen/ChallengeHeader/InviteUsersModal/index.js","screens/ViewChallengeScreen/ChallengeHeader/index.js","common/Leaderboard/styles.js","common/Leaderboard/LeaderboardCard/styles.js","common/Leaderboard/propTypes.js","common/Leaderboard/LeaderboardCard/index.js","common/Leaderboard/constants.js","common/Leaderboard/LeaderboardCardLoader/styles.js","common/Leaderboard/LeaderboardCardLoader/index.js","common/Leaderboard/index.js","common/TabbedSection/styles.js","common/TabbedSection/index.js","init/selectors.js","common/Delete/styles.js","common/Delete/index.js","screens/ViewChallengeScreen/ChallengeLeaderboard/index.js","screens/ViewChallengeScreen/ChallengeImpact/styles.js","common/StatCard/styles.js","common/StatCard/index.js","common/ActivityTotals/styles.js","common/ActivityTotals/index.js","screens/ViewChallengeScreen/ChallengeImpact/index.js","screens/ViewChallengeScreen/ChallengeInfo/styles.js","screens/ViewChallengeScreen/ChallengeInfo/constants.js","screens/ViewChallengeScreen/ChallengeActions/constants.js","screens/ViewChallengeScreen/ChallengeActions/styles.js","screens/ViewChallengeScreen/ChallengeActions/ChallengeActionsTable.js","screens/ViewChallengeScreen/ChallengeActions/index.js","screens/ViewChallengeScreen/ChallengeInfo/PrizeTable/index.js","screens/UpdateChallengeScreen/constants.js","screens/ViewChallengeScreen/ChallengeInfo/propTypes.js","screens/ViewChallengeScreen/ChallengeInfo/index.js","screens/ViewChallengeScreen/index.js","common/ChallengeDescription/styles.js","common/ChallengeDescription/index.js","common/ChallengeDuration/styles.js","common/ChallengeDuration/index.js","common/UpdateTextModal/index.js","common/ChallengeHowToWin/index.js","common/ChallengeRules/index.js","common/ChallengeName/styles.js","common/LimitedLengthInput/styles.js","common/LimitedLengthInput/index.js","common/ChallengeName/index.js","common/UpdateIcon/index.js","screens/UpdateChallengeScreen/UpdateTeam/styles.js","screens/UpdateChallengeScreen/UpdateTeam/index.js","screens/UpdateChallengeScreen/selectors.js","screens/ViewChallengeScreen/PrizeModal/styles.js","common/ImageCaptionForm/Input/styles.js","common/ImageCaptionForm/Input/index.js","screens/ViewChallengeScreen/PrizeModal/index.js","screens/UpdateChallengeScreen/styles.js","screens/ViewChallengeScreen/ChallengeActions/ChallengeActionsModal.js","screens/UpdateChallengeScreen/index.js","screens/ChallengeAnalyticsScreen/styles.js","common/Graph/ChartItem/utils.js","common/Graph/ChartItem/styles.js","common/Graph/ChartItem/index.js","common/Graph/styles.js","common/Graph/index.js","screens/ChallengeAnalyticsScreen/ChallengeStats/styles.js","screens/ChallengeAnalyticsScreen/ChallengeStats/index.js","screens/ChallengeAnalyticsScreen/constants.js","screens/ChallengeAnalyticsScreen/index.js","screens/CreateChallengeScreen/CustomizeChallenge/styles.js","screens/CreateChallengeScreen/CustomizeChallenge/IconFormInput/styles.js","screens/CreateChallengeScreen/CustomizeChallenge/IconFormInput/index.js","common/LargeIconButton/styles.js","common/LargeIconButton/index.js","screens/CreateChallengeScreen/CustomizeChallenge/index.js","screens/CreateChallengeScreen/constants.js","screens/CreateChallengeScreen/SelectChallengeTheme/styles.js","screens/CreateChallengeScreen/SelectChallengeTheme/TemplateGroup/styles.js","screens/CreateChallengeScreen/CustomizeChallenge/propTypes.js","screens/CreateChallengeScreen/SelectChallengeTheme/TemplateGroup/index.js","screens/CreateChallengeScreen/SelectChallengeTheme/index.js","screens/CreateChallengeScreen/styles.js","screens/CreateChallengeScreen/index.js","screens/ChallengesScreen/AdminChallengesScreen/styles.js","screens/ChallengesScreen/AdminChallengesScreen/index.js","screens/ChallengesScreen/UserChallengesScreen/styles.js","screens/ChallengesScreen/UserChallengesScreen/index.js","screens/ChallengesScreen/styles.js","screens/ChallengesScreen/index.js","screens/AnalyticsPhotosScreen/styles.js","common/ViewAll/TopSection/styles.js","common/ViewAll/TopSection/index.js","screens/AnalyticsScreen/styles.js","screens/AnalyticsScreen/index.js","common/TopPhotos/constants.js","screens/AnalyticsPhotosScreen/index.js","common/Form/FormInputGroup/styles.js","common/Form/FormInputGroup/index.js","screens/SignInScreens/ProfileCreateScreen/styles.js","screens/SignInScreens/ProfileCreateScreen/index.js","screens/SignInScreens/UserCreateScreen/styles.js","screens/SignInScreens/UserCreateScreen/index.js","screens/NotificationsScreen/UserNotificationsScreen/index.js","screens/NotificationsScreen/UserNotificationsScreen/styles.js","screens/NotificationsScreen/UserNotificationsScreen/utils.js","screens/NotificationsScreen/AdminNotificationsScreen/TableManager/index.js","screens/NotificationsScreen/AdminNotificationsScreen/index.js","screens/NotificationsScreen/AdminNotificationsScreen/styles.js","screens/NotificationsScreen/index.js","screens/UpdateNotificationScreen/NotificationForm/Section/index.js","screens/UpdateNotificationScreen/NotificationForm/Section/styles.js","screens/UpdateNotificationScreen/NotificationForm/SubjectContentType/index.js","screens/UpdateNotificationScreen/NotificationForm/SubjectContentType/styles.js","screens/UpdateNotificationScreen/NotificationForm/TextAreaField/index.js","screens/UpdateNotificationScreen/NotificationForm/TextAreaField/styles.js","common/CustomDropdown/UrlIcon/index.js","common/CustomDropdown/UrlIcon/styles.js","common/CustomDropdown/styles.js","common/CustomDropdown/index.js","screens/UpdateNotificationScreen/NotificationForm/DateField/index.js","screens/UpdateNotificationScreen/NotificationForm/CommunityConfirmInfo/styles.js","screens/UpdateNotificationScreen/NotificationForm/CommunityConfirmInfo/index.js","screens/UpdateNotificationScreen/NotificationForm/index.js","screens/UpdateNotificationScreen/NotificationForm/styles.js","common/NotificationsPreview/IosNotificationPreview/styles.js","common/NotificationsPreview/IosNotificationPreview/index.js","common/NotificationsPreview/InAppNotificationPreview/styles.js","common/NotificationsPreview/InAppNotificationPreview/index.js","common/NotificationsPreview/styles.js","common/NotificationsPreview/index.js","screens/UpdateNotificationScreen/index.js","screens/UpdateNotificationScreen/styles.js","screens/UpdateProfileScreen/styles.js","screens/ProfileScreen/propTypes.js","screens/UpdateProfileScreen/index.js","screens/ProfileScreen/styles.js","screens/ProfileScreen/ProfileStats/styles.js","screens/ProfileScreen/ProfileStats/index.js","common/TrophySection/styles.js","common/EmptyTrophySection/styles.js","common/EmptyTrophySection/index.js","common/TrophySection/index.js","screens/ProfileScreen/ProfileTrophies/index.js","screens/ProfileScreen/index.js","screens/UpdateCommunityProfileScreen/styles.js","screens/CommunityProfileScreen/styles.js","screens/CommunityProfileScreen/index.js","screens/UpdateCommunityProfileScreen/index.js","screens/FlaggedContentScreen/styles.js","common/ContentActionConfirmationModal/styles.js","screens/FlaggedContentScreen/propTypes.js","common/ContentActionConfirmationModal/index.js","common/ContentActionConfirmationModal/propTypes.js","common/ImagePreviewFlaggedContent/styles.js","common/ImagePreviewFlaggedContent/index.js","screens/FlaggedContentScreen/index.js","screens/SettingsScreen/styles.js","screens/SettingsScreen/AdminSettingsScreen/styles.js","common/Select/styles.js","common/Select/index.js","utils/integrations.js","screens/SignInScreens/OAuthButtons/GoogleButton/index.js","screens/SettingsScreen/AdminSettingsScreen/GoogleIntegration/index.js","screens/SettingsScreen/AdminSettingsScreen/index.js","screens/SettingsScreen/UserSettingsScreen/styles.js","common/UserSettings/EditEmailForm/styles.js","common/UserSettings/EditEmailForm/index.js","common/UserSettings/CommunityList/styles.js","common/UserSettings/CommunityList/CommunityCard/styles.js","common/UserSettings/CommunityList/CommunityCard/index.js","common/UserSettings/CommunityList/index.js","common/UserSettings/AboutAndSupport/styles.js","common/UserSettings/AboutAndSupport/index.js","screens/SettingsScreen/UserSettingsScreen/index.js","screens/SettingsScreen/index.js","screens/TeamDetailsScreen/styles.js","screens/TeamDetailsScreen/TeamDetailsLeaderboard/styles.js","screens/TeamDetailsScreen/TeamDetailsLeaderboard/index.js","screens/TeamDetailsScreen/TeamDetailsImpact/styles.js","screens/TeamDetailsScreen/TeamDetailsImpact/index.js","screens/TeamDetailsScreen/index.js","screens/UsersScreen/constants.js","screens/UsersScreen/styles.js","common/Table/transforms.js","common/PermissionsDropdown/styles.js","common/PermissionsDropdown/index.js","common/PermissionsEditor/constants.js","common/PermissionsEditor/styles.js","common/PermissionsEditor/index.js","common/SwitchOrganization/styles.js","common/SwitchOrganization/index.js","screens/UsersScreen/TableManager.js","store/inviteUsers/selectors.js","common/InviteUsers/styles.js","common/InviteUsers/EmailField/styles.js","common/InviteUsers/EmailInput/styles.js","common/InviteUsers/EmailInput/index.js","common/InviteUsers/EmailField/index.js","common/InviteUsers/index.js","screens/UsersScreen/ManualInviteModal/styles.js","screens/UsersScreen/ModalFooter/styles.js","screens/UsersScreen/ModalFooter/index.js","screens/UsersScreen/ManualInviteModal/index.js","screens/UsersScreen/index.js","screens/EditThemesScreen/styles.js","screens/EditThemesScreen/index.js","screens/OnBoardingScreen/styles.js","common/OnBoarding/styles.js","common/OnBoarding/SignUpForm/styles.js","screens/SignInScreens/OAuthButtons/GoogleButton/constants.js","common/OnBoarding/SignUpForm/SignUpFormFields/styles.js","common/OnBoarding/SignUpForm/SignUpFormFields/index.js","common/OnBoarding/SignUpForm/index.js","common/OnBoarding/SignUpForm/constants.js","common/OnBoarding/TopSection/styles.js","common/OnBoarding/TopSection/index.js","common/OnBoarding/constants.js","common/OnBoarding/Verification/index.js","common/OnBoarding/Verification/styles.js","common/OnBoarding/index.js","common/OnBoarding/Loader/index.js","common/OnBoarding/Loader/styles.js","screens/OnBoardingScreen/index.js","screens/OnboardingPasswordScreen/styles.js","common/WelcomeForm/styles.js","common/WelcomeForm/index.js","screens/OnboardingPasswordScreen/index.js","screens/OnBoardingSubscriptionScreen/styles.js","common/PaymentPlans/styles.js","common/SubscriptionTierCard/styles.js","common/PaymentPlanFooter/styles.js","common/PaymentPlanFooter/EstimateUnitContainer/styles.js","common/PaymentPlanFooter/EstimateUnitContainer/index.js","common/PaymentPlanFooter/index.js","common/SubscriptionTierCard/CostCalculator/styles.js","common/SubscriptionTierCard/CostCalculator/index.js","common/SubscriptionTierCard/index.js","common/PaymentPlans/index.js","screens/OnBoardingSubscriptionScreen/index.js","screens/OnboardingChallengeScreen/styles.js","screens/OnboardingChallengeScreen/ChallengeTypeSelection/styles.js","screens/OnboardingChallengeScreen/propTypes.js","screens/OnboardingChallengeScreen/ChallengeTypeSelection/index.js","screens/OnboardingChallengeScreen/CustomizeChallenge/styles.js","screens/OnboardingChallengeScreen/CustomizeChallenge/ChallengeForm/styles.js","screens/OnboardingChallengeScreen/CustomizeChallenge/ChallengeForm/index.js","screens/OnboardingChallengeScreen/CustomizeChallenge/index.js","screens/OnboardingChallengeScreen/index.js","screens/TopActionsScreen/styles.js","screens/TopActionsScreen/index.js","screens/PaymentPlanScreen/styles.js","screens/PaymentPlanScreen/index.js","screens/PaymentSuccessScreen/styles.js","common/AccountPlan/styles.js","common/AccountPlan/index.js","common/PaymentReceipt/styles.js","common/PaymentReceipt/InformationSection/styles.js","common/PaymentReceipt/InformationSection/index.js","common/PaymentReceipt/BillingSection/styles.js","common/PaymentReceipt/BillingSection/index.js","common/PaymentReceipt/index.js","screens/PaymentSuccessScreen/index.js","screens/AccountScreen/styles.js","common/CommunityInformationForm/styles.js","common/CommunityInformationForm/index.js","common/PaymentMethod/styles.js","common/PaymentMethod/index.js","common/BillingHistory/styles.js","common/BillingHistory/constants.js","common/BillingHistory/index.js","screens/AccountScreen/index.js","screens/ActivitiesScreen/index.js","screens/ActivitiesScreen/styles.js","screens/ViewActivityScreen/index.js","screens/SignInScreens/SignInScreen/styles.js","common/Divider/styles.js","common/Divider/index.js","screens/SignInScreens/SignInScreen/index.js","screens/CommunitiesScreen/styles.js","screens/CommunitiesScreen/constants.js","screens/CommunitiesScreen/CreateCommunityForm/styles.js","screens/CommunitiesScreen/CreateCommunityForm/index.js","screens/CommunitiesScreen/index.js","screens/WordpressScreen/styles.js","screens/WordpressScreen/index.js","screens/OAuthScreen/index.js","screens/SignInScreens/OAuthOrganizationCreateScreen/styles.js","screens/SignInScreens/OAuthOrganizationCreateScreen/index.js","Router.js","constants/UTMParams.js","common/Screen/index.js","common/Screen/styles.js","common/Loading.js","common/LoadingScreen/index.js","common/LoadingScreen/styles.js","init/AppGate.js","common/errors/ErrorBoundary.js","App.js","store/index.js","index.js"],"names":["module","exports","AbilityContext","createContext","Can","createContextualCan","Consumer","PERMISSIONS","action","subject","identifier","Ability","addAlias","getUserPermissions","user","activeCommunityId","communityPermissions","id","userPermissions","actions","permissions","filter","permission","indexOf","Object","keys","length","push","rules","JSON","parse","localStorage","getItem","error","INITIALIZATION_SUCCEEDED","INITIALIZATION_FAILED","appStringsRequestFailed","errors","type","payload","initInitialState","status","appStrings","isAppStringsLoading","appStringsErrors","initReducer","state","loginRequestSucceeded","token","loginRequestFailed","signUpRequested","form","signUpRequestFailed","resetPasswordRequestSucceeded","returnURL","resetPasswordRequestFailed","resetPasswordFailedToSend","logoutRequested","emailVerificationVerifySucceeded","email","emailVerificationVerifyFailed","createUserFailed","redirectionAutofill","initialFormSubmitSucceeded","resendVerification","initialFormSubmitFailed","SSOLoginRequested","accessToken","refreshToken","authorizationCode","codeVerifier","SSOLoginRequestFailed","SSOAuthRequested","config","returnLocation","SSOStoreConfig","serviceConfig","APIErrorResponse","json","response","setJsonFromResponse","a","text","isClientError","isServerError","getValidationErrors","validationErrors","reduce","errorMap","message","path","context","dotPath","join","existing","get","set","Map","getValidationErrorMessages","fallbackErrorMessage","fallbackMessages","messages","flatten","values","map","getError","meta","errorCode","statusCode","_error","getErrorMessages","simple","validationErrorMessages","topLevelError","topLevelErrorMessages","Error","DEFAULT_PROPERTIES","loginMethods","apiUri","process","posthogConfig","firebaseConfig","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","measurementId","cookieYesConfig","scriptSrc","intercomConfig","enabled","apiBase","productTours","challengeEdit","colors","primary","primaryDark","primaryForeground","secondary","secondaryDark","accent","accentDark","warn","warnDark","EditingBannerBackground","loginFooter","fontFamily","wordpressDomain","WILD_FOR_ALL_PROPERTIES","appName","shouldShowSignUp","clientId","clientSecret","privacyLink","secondPrivacyLink","impactLink","allowPassphraseLessLogin","hasMarketingEmailOptIn","stringsNamespace","impactTileColor","supportedLanguageCodes","EARTHSHARE_PROPERTIES","wordpressOverrides","appStoreLink","playStoreLink","appDescription","BLACKSTONE_PROPERTIES","BETTERLIVING_PROPERTIES","microsoftClientId","microsoftClientAuthority","JB_PUBLIC_PROPERTIES","JOULEBUG_PROPERTIES","integrations","slack","redirectUri","CEMEX_PROPERTIES","VENA_ENERGY","REXEL_PROPERTIES","CAPGROUP_PROPERTIES","KN_PROPERTIES","BOSTON_UNIVERSITY_PROPERTIES","properties","betterliving","public","joulebug","app","cemex","rexel","capgroup","kn","pureindustrial","cleartelligence","earthshare","blackstoneenergy","bu","nnpcgroup","venaenergy","DEFAULT_IMAGES","favicon","require","challengeSampleBreakfast","challengeSampleCamera","challengeSampleBurger","challengeSampleGreen","mobileScreen","noContent","notFound","defaultPinIcon","defaultImage","logoJBGray","defaultActivityIcon","defaultActionsIcon","yammerBtnIcon","oktaBtnIcon","loader","iosNotifications","notificationWrapper","notificationBuzzIcon","inviteSignUpBg","challengeCompetitive","challengeIndividuals","challengeDuration","plusOneBonusPoints","videosIcon","linksIcon","verifyEmailIcon","googleIcon","onBoardingLogo","onBoardingLogoWhite","appleStoreBadge","googleStoreBadge","bgEmailVerification1","bgEmailVerification2","bgOnBoarding1","bgOnBoarding2","loginBg1","loginBg2","bgWelcome","bgCommunity","bgSustainability","bgFitness","bgNutrition","bgDiversity","bgEngagement","bgCivic","bgSmallSustainability","bgSmallFitness","bgSmallNutrition","sustainabilityIcon","sustainabilityWhiteIcon","fitnessIcon","fitnessWhiteIcon","nutritionIcon","nutritionWhiteIcon","civicIcon","civicWhiteIcon","bgInviteScreen","bgChallengeCustomize","recycleIcon","carbonIcon","waterDropIcon","blankChallengeIcon","sustainabilitySvgIcon","civicSvgIcon","competitiveSvgIcon","daysSvgIcon","diversitySvgIcon","fitnessSvgIcon","habitSvgIcon","habitsSvgIcon","individualSvgIcon","nutritionSvgIcon","remoteSvgIcon","greenLogo","defaultActiveChallengeBg","slackIcon","facebookIcon","impactEcoIcon","warningIcon","closeIcon","AE","AI","AVI","CSS","CSV","DOC","HTML","ICO","JPG","JS","MOV","MP3","MP4","MPEG","PDF","PNG","PPT","PSD","PY","RAR","SVG","SWF","TIFF","TXT","WAV","WMV","XLS","ZIP","OTHER","defaultProfileIcon","DEFAULT_VARIANT_IMAGES","logo","defaultChallengeIcon","defaultCommunityIcon","defaultAppIcon","inAppNotifications","welcomeProfile","welcomeEdit","welcomeActions","welcomeChallenges","welcomeActivity","landingMockup","appMockup","IMAGES","genericAdminChallengeInvite","genericCommunityInvite","faviconDarkMode","metaImage","metaImageHorizontal","noop","dataURLtoFile","dataurl","filename","arr","split","mime","match","bstr","atob","n","u8arr","Uint8Array","charCodeAt","File","getVariant","window","location","host","toLowerCase","getApplicationConfig","setApplicationConfig","setItem","stringify","getStaticProperties","variant","getProperties","cachedConfig","defaultConfig","getAppName","getImpactLink","getTermsLink","termsLink","getPrivacyLink","getSecondPrivacyLink","getAboutLink","aboutLink","getAppStoreLink","getPlayStoreLink","getFontFamily","getAppImages","mapSortAddRank","unsortedArray","sort","b","value","item","index","rank","useInterval","callback","delay","savedCallback","useRef","useEffect","current","setInterval","clearInterval","downloadShareImage","imageUrl","name","setDownloadRequested","setError","errorMessage","fetch","then","blob","url","URL","createObjectURL","document","createElement","href","download","click","_","notificationsRequest","communityId","group","options","notificationsRequestFailed","deleteNotificationRequest","notificationId","challengeId","updateNotificationSucceeded","updateNotificationFailed","errorStatus","openCreateNotification","notification","setNotificationCounts","counts","request","safelyReadResponse","getErrorsFromPossibleAPIErrorResponse","postWithAuth","fetchWithAuth","fetchWithoutAuth","uploadWithAuth","getFullURI","query","replace","fullURI","languageCode","i18next","language","qs","indices","method","body","headers","Accept","Authorization","call","ok","createAPIErrorResponse","errorResponse","logAPIErrorResponse","uri","bodyUsed","genericErrorMessage","fallback","errorMessages","params","URLSearchParams","append","put","next","search","toString","console","getToken","notificationCounts","setToken","SUPPORTED_LANGUAGES","en","hr","cs","da","nl","fi","fr","de","hu","it","ja","ko","nb","pl","pt","ro","ru","sr","sk","si","es","sv","uk","SUPPORTED_LANGUAGE_CODES","supportedLanguages","getSupportedLanguageCodes","appNamespace","getStringsNamespace","allNamespaces","i18n","use","emoji","Backend","LanguageDetector","initReactI18next","init","fallbackLng","debug","load","preload","backend","loadPath","detection","order","interpolation","escapeValue","format","toUpperCase","Date","moment","ns","whitelist","defaultNS","fallbackNS","saveMissing","missingKeyHandler","initialState","organizationPassphrase","loading","redirect","success","passwordResetReturnURL","onBoarding","verified","verificationMessages","verificationCode","accountDetails","username","employeeCount","organization","website","orgValid","login","signup","confirm","pwReset","invite","emailVerificationErrors","userCreateErrors","sso","authReducer","setup","t","userRequested","isAuthenticating","userRequestSucceeded","userRequestFailed","userDetailsRequestSucceeded","userDetailsRequestFailed","setActiveCommunity","toggleToUserView","userUpdateRequested","isCreating","userUpdateSucceeded","userUpdateFailed","userEmailUpdateSucceeded","userEmailUpdateFailed","membersRequested","activeStatus","membersRequestFailed","membersSearchRequested","searchString","membersSearchRequestFailed","permissionsAndRolesRequestSucceeded","roles","activateUsersRequestFailed","deactivateUsersRequestFailed","deleteUserRequestFailed","deleteUserAccountRequestFailed","updateUserPermissionsFailed","moveUserOrganizationFailed","otherCommunitiesRequestFailed","updateUserCommunities","communities","dismissInfoCard","infoCardId","showInfoCard","posthogToken","getCookie","cookies","cookie","acc","cookieString","s","trim","key","decodeURIComponent","hasGDPRConsent","hasAnalyticsConsent","posthog","api_host","opt_out_capturing","INTERCOM_EVENTS","CONTENT_TYPES","firebaseAnalytics","gtmInitialized","firebaseApp","initializeApp","initializeGTM","gtmId","script","async","src","head","appendChild","onload","gtag","dataLayer","arguments","updateConsentSettings","consentParams","ad_storage","analytics_storage","ad_user_data","ad_personalization","trackEvent","parameters","logEvent","capture","includes","Intercom","useTrackScreenView","setAnalyticsCommunity","activeCommunity","created","unix","setAnalyticsGroup","groupType","groupKey","groupProperties","getUTMParams","getHighResProfilePicture","imageSizes","pop","transformUsers","users","member","icon","emails","role","dateJoined","lastSeen","transformCommunityPermission","permissionInfo","content","organizationId","extractTrophyInfo","trophies","trophy","completed","transformUserTrophies","medals","pins","badges","medal","medalInfo","multiplier","num_checkins","images","data","totalCount","result","userReducer","selectedUserLoading","selectedUser","selectedUserErrors","selectedUserActivities","update","communityMemberships","dismissedInfoCardIds","cardIds","userViewActive","actionRequested","actionId","actionRequestFailed","logActionSucceeded","logActionData","logAction","logActionFailed","actionsFilters","themeId","excluded","actionsRequested","filters","actionsRequestSucceeded","actionsRequestFailed","urlMetadataRequestSucceeded","metadata","urlMetadataRequestFailed","actionCustomizationRequestFailed","actionCategoriesRequestFailed","actionShareURLRequestSucceeded","shareURL","actionShareURLRequestFailed","sdgsRequestSucceeded","sdgs","sdgsRequestFailed","activityDataRequested","activitiesType","activityDataRequestFailed","activityDataRequestSucceeded","newActivityData","skip","activityDetailRequestFailed","activityShareURLRequested","activityId","activityShareURLRequestSucceeded","activityShareURLRequestFailed","activityLikeRequestFailed","addCommentRequestFailed","clearActivities","CHEATING_ACTIONS","PIN_ADMIN_VISIBILITIES","isLoading","actionShareURL","isLogActionLoading","logErrors","logStatus","v","pagination","link","isMetadataLoading","metadataErrors","confirmed","customize","customizationMessage","isCustomizationRequested","customizationErrors","actionCategories","categories","actionCategoriesErrors","lastActiveTabIndex","viewActionReducer","challengeIds","visibility","tabIndex","category","flat","find","communityPhotosRequested","communityPhotosRequestSucceeded","photos","communityPhotosRequestFailed","challengePhotosRequested","challengePhotosRequestFailed","mergePaginatedResponse","currentData","newData","slicedCurrentData","slice","concat","getRelativeTime","start","locale","fromNow","initialPhotoState","analyticsPhotoReducer","variantColors","activitiesRequested","activitiesRequestSucceeded","activities","usersAnalyticRequestSucceeded","usersAnalytic","analyticsGraphDataRequestFailed","metrics","analyticsGraphDataRequestSucceeded","newGraphData","generateTableColumnStyles","width","otherStyles","maxWidth","white","black","theme","palette","custom","headerPadding","headerHeight","containerPadding","exteriorContainerPadding","containerMaxWidth","mainContentWidth","mainContentHorizontalPadding","buttonHoverOpacity","paginationFontSize","actionsAndFiltersWidth","actionsAndFiltersWidthForMediumAndDown","aqua","darkBlue","successBlue","red","redDark","red219","yammer","okta","editGreen","darkCyan","darkGrey","grey","grey93","grey88","grey83","grey70","grey60","grey20","waste","inputBackground","inputSeparator","linkColor","linkHoverColor","textLightColor","textLightSecondaryColor","textLightDisabledColor","textDarkColor","textDarkSecondaryColor","textDarkSecondaryMutedColor","textDarkDisabledColor","bgColor","bgAccentColor","bgLightColor","bgLightAccentColor","bgDarkColor","bgDarkAccentColor","bgSeparator","bgBlackTransparent","bgDarkHover","tooltipIconColor","tooltipIconHoverColor","iconColor","iconColorHover","linkPrimaryHover","assetIconColor","disabledOpacity","dividerColor","dividerTextColor","bgWellness","bgChartSustainability","bgChartWellness","bgChartCivic","bgChartEngagement","bgChartDashedColor","loaderForeground","loaderBackground","bgOnboardingFooter","bgChallengePreviewOnMobile","grayBorder","bgMobilePreviewIcon","createTheme","main","dark","contrastText","default","alert","danger","dangerDark","warning","successDark","info","infoDark","gray","disabled","disabledGray","light","typography","useNextVariants","subtitle1","fontWeight","textTransform","letterSpacing","fontSize","h1","h4","shineAdmin","select","largeHeight","largeMinWidth","compactHeight","compactMinWidth","dashboardPanel","minWidth","tableHeadCells","checkbox","photo","date","textarea","backgroundColor","border","borderRadius","padding","borderColor","props","MuiButtonBase","disableRipple","overrides","MuiSwitch","root","height","display","transform","color","opacity","transition","transitions","create","duration","boxSizing","MuiPrivateTabScrollButton","marginLeft","marginRight","MuiInputBase","input","transitionDelay","transitionProperty","MuiFilledInput","marginBottom","MuiDialogContentText","textAlign","MuiDialogTitle","MuiDialogActions","paddingTop","MuiSvgIcon","fontSizeSmall","fontSizeLarge","MuiTableCell","paddingLeft","paddingRight","MuiButton","lineHeight","sizeSmall","sizeLarge","outlined","contained","boxShadow","DataTable","flexDirection","alignItems","margin","justifyContent","searchContainer","flex","searchInput","marginTop","searchControl","tableBodyWithDataRow","DataTableColumn","sortArrow","MuiTabs","indicator","MuiTab","borderBottom","borderBottomColor","textColorPrimary","wrapper","MuiStepLabel","iconContainer","label","MuiStepper","MuiStepIcon","fill","stroke","active","checkboxHeadCell","headCell","whiteSpace","bodyCell","MuiCardActionArea","focusHighlight","getTheme","getColors","background","foreground","dangerForeground","successForeground","warnForeground","infoForeground","lightGray","shadow","COLORS","CHART_TYPES","CHART_INTERVALS","impactStats","graphData","labels","series","activity","impact","graph","updateGraphLoadingState","newLoadingStatus","newLoadingState","Array","isArray","forEach","metric","analyticsReducer","graphDataUpdate","viewChallengeRequested","viewChallengeFailed","joinChallengeFailed","unjoinChallengeFailed","challengeLeaderboardRequested","challengeLeaderboardLoaded","leaderboardData","challengeLeaderboardFailed","graphDataSucceeded","graphDataFailed","penaltiesSuccessed","penalties","penaltiesFailed","warnUserRequestFailed","removeUserRequested","args","removeUserRequestFailed","analyticsActivityRequested","analyticsActivityFailed","challengeCreationRequested","challengeCreationRequestFailed","challengesRequested","challengesRequestFailed","challengeSearchRequestSucceeded","challenges","challengeSearchRequestFailed","analyticsUsersSucceeded","analyticsUsers","analyticsUsersFailed","challengeActivationRequested","challengeActivationRequestSucceeded","challengeActivationRequestFailed","challengeDeletionRequestFailed","challengeReportRequested","challengeReportRequestFailed","analyticsImpactFailed","analyticsPhotosSucceeded","analyticsPhotos","analyticsPhotosFailed","challengeDeactivationRequested","challengeDeactivationRequestSucceeded","challengeDeactivationRequestFailed","teamDetailsRequestFailed","teamLeaderboardRequestFailed","userChallengesFailed","challengeShareURLRequestSucceeded","challengeShareURLRequestFailed","challengeAdminShareImageURLRequestSucceeded","challengeAdminShareImageURLRequestFailed","challenge","isChallengeLoading","challengeErrors","leaderboard","isLeaderboardLoading","leaderboardErrors","joinErrors","unjoinErrors","graphDataErrors","isGraphDataLoading","analyticsActivity","isAnalyticsActivityLoading","analyticsActivityErrors","isAnalyticsUsersLoading","analyticsUsersErrors","analyticsImpact","isAnalyticsImpactLoading","analyticsImpactErrors","isAnalyticsPhotosLoading","analyticsPhotosErrors","penaltiesLoading","penaltiesActions","penaltiesErrors","templates","areTemplatesLoading","templatesErrors","creation","createdChallenge","isChallengeCreationRequested","challengeCreationErrors","challengesScreenActions","teamDetails","team","teamLeaderboard","adminShareImageURL","challengeToDuplicate","viewChallengeReducer","participationStatus","teams","teamId","challengeUnit","newState","challengeUnitLeaderboard","succeeded","searchResult","GROUP_ACTIVE","GROUP_UPCOMING","GROUP_PAST","GROUPS","GROUP_NAMES","BTN_EDIT_CHALLENGE","tooltip","Edit","BTN_VIEW_CHALLENGE","Visibility","BTN_PUBLISH_CHALLENGE","Telegram","BTN_DELETE_CHALLENGE","Delete","BTN_DUPLICATE_CHALLENGE","AddToPhotos","BTN_VIEW_ANALYTICS","Assessment","BTN_DEACTIVATE_CHALLENGE","RemoveCircle","BTN_VIEW_PENALTIES","Whatshot","BTN_ACTIVATE_CHALLENGE","AddBox","BTN_DOWNLOAD_CHALLENGE_REPORT","Folder","BUTTONS_CELL","challengesReducer","NONE","months","Info","weekdays","weekday","currentYear","month","Number","parseInt","DateTime","local","toFormat","years","year","has","dateDifferenceInDays","date1","date2","Math","round","valueOf","dateDifferenceInLargestUnits","diff","diffInDays","diffInHours","diffInMinutes","diffInSeconds","getTimezoneAbbrev","tzName","localeOptions","timeZoneName","timeZone","toLocaleString","getTimezoneName","zoneName","BORDER_ICON","INIT_SORT","desc","LOCALIZATION_NOTIFICATION_GROUPS_KEY","LOCALIZATION_NOTIFICATION_TABLE_KEY","LOCALIZATION_NOTIFICATION_TABLE_ACTIONS_KEY","LOCALIZATION_NOTIFICATION_TABLE_HEADERS_KEY","COLUMNS","accessor","sortable","Header","Cell","BTN_EDIT","intercomTarget","BTN_DELETE","DeleteOutlineOutlined","subjectContentType","subjectContentID","audienceType","audiences","iconUrl","userNotifications","notifications","NotificationCenter","ActivityFeed","Buzz","Leaderboard","Profile","total","communityRequested","communityRequestSucceeded","community","communityRequestFailed","communityUpdateRequested","communityUpdateRequestSucceeded","communityUpdateRequestFailed","joinCommunityRequestSucceeded","joinCommunityRequestFailed","unjoinCommunityRequestSucceeded","unjoinCommunityRequestFailed","communityInviteLinkRequestSucceeded","communityInviteLinkRequestFailed","createCommunityRequestFailed","communitiesRequestFailed","communitySearchRequestSucceeded","communitySearchRequestFailed","communityShareImageRequestSucceeded","communityShareImageRequestFailed","uploadCommunityFileRequestSucceeded","uploadCommunityFileRequestFailed","unjoin","inviteLink","shareImage","bulkJoin","communityReducer","imageUploadRequested","imageUploadRequestSucceeded","imageUploadRequestFailed","imageUploadResponse","isImageUploadRequestPending","imageUploadErrors","uploadId","imageReducer","flaggedContentRequested","flaggedContentRequestFailed","flagExcludeRequestFailed","flagIgnoreRequestFailed","activityReportRequestSucceeded","contentId","activityReportRequestFailed","reportPost","flagsReducer","saveDraftFailed","saveInProgress","saveSuccessful","publish","themesRequested","includeCategories","themesRequestFailed","themesUpdateRequestSucceeded","themes","themesUpdateRequestFailed","themesReducer","integrationsRequestFailed","integrationsRequestSucceeded","responseMessage","actionDuplicationCommunities","oidc","isAccountUpgradeNotificationVisible","settingsReducer","deepLinksInitialState","queuedDeepLinkPath","deepLinksReducer","deepLinkPath","inviteUsersRequestFailed","failure","ACTIVITY_FEED_SUPPORTED_TYPES","activityDetail","likePost","addComment","mergeActivityState","oldArray","newItem","newArray","activitiesReducer","flatMap","subscriptionRequested","subscriptionRequestSucceeded","currentSubscription","subscriptionRequestFailed","subscriptionRecordsRequestFailed","subscriptionTiersRequestFailed","subscriptionSessionRequested","groupId","successUrl","cancelUrl","planId","quantity","subscriptionSessionRequestSucceeded","subscriptionSessionRequestFailed","subscriptionVerificationRequestSucceeded","invoice","subscription","subscriptionVerificationRequestFailed","subscriptionManagementLinkRequestSucceeded","subscriptionManagementLinkRequestFailed","accountPlan","accountType","currentUsers","maxUsers","paymentMethod","stripePlanId","billingSession","subscriptionRecords","records","subscriptionTiers","tiers","management","subscriptionReducer","authPersistConfig","storage","reduxPersistStorage","subscriptionPersistConfig","viewChallengePersistConfig","userPersistConfig","initSaga","platform","setUserProperties","has_opted_in_capturing","people","set_once","client_secret","client_id","configResponse","stringResponse","applications","getUserAgentApplicationInstance","Msal","UserAgentApplication","navigateToLoginRequestUrl","protocol","onGetOAuthToken","loginMethod","microsoftIdToken","microsoftAccessToken","res","code","access_token","microsoftLogin","graphScopes","userAgentApplicationInstance","loginPopup","idToken","acquireTokenSilent","msalAccessToken","password","showIntercomChat","initChallengeEditingTour","tourId","updateIntercomUserData","userData","intercomSettings","updateIntercomCompanyData","companyData","company","shutDownIntercom","e","initIntercom","settings","baseSettings","api_base","app_id","getQueuedDeepLink","createSelector","deepLinks","coerceIntoErrors","errorOrErrors","prettyFormatNumber","fixed","thousandsAbreviate","pow","minimumFractionDigits","maximumFractionDigits","weight","toFixed","fixImpactStat","stat","unit","symbol","namePlural","transformImpactStatsToTotals","stats","themeColor","rest","title","colorTitle","colorContent","transformActivities","transformActivity","userName","userId","userImage","activityCreated","photoSizes","liked","otherComments","comments","actionName","masteries","actionDefaultText","activityImageSizes","activityName","activityImage","contentType","photoUrl","numLikes","selfComment","commentUser","commentText","isCaption","otherCommentsOnCard","likes","getUserState","getUser","getUserId","getUserCommunities","membershipStatus","unjoinEligibility","eligible","getUserMemberOrganization","getCurrentUserPermissions","getUserWithIntercomRole","isOrganizationOwner","intercomRole","transformUserWithIntercomRole","isUserLoading","getUserErrors","getUserName","getUserEmail","isUserViewActive","getActiveCommunity","userState","superAdmin","orgAdmin","communityAdmin","jbWhiteLabelAdmin","userCommunities","description","contentURL","deriveActiveCommunityFromUser","getActiveCommunityName","getActiveCommunityImage","getActiveCommunityId","getActiveCommunityOrgId","isOrganization","isActiveCommunityLoading","getAvailableCommunities","localeCompare","transformAvailableCommunities","getUserProfile","image","headline","followers","following","impactTotals","impactStatTypes","activityTotals","points","score","logs","buzzes","pinTotal","badgeTotal","getSelectedUser","isSelectedUserLoading","getSelectedUserErrors","getSelectedUserProfile","getSelectedUserActivities","getSelectedUserTrophies","selectedUserActivitiesLoading","selectedUserActivitiesErrors","getUserTrophies","getUserUpdateState","isUserUpdateLoading","updateState","getUserUpdateErrors","getUserUpdateResult","getActiveMembers","getDeactivatedMembers","getActiveMembersTable","activeMembers","getDeactivatedMembersTable","deactivatedMembers","getPermissions","getRoles","getActiveMembersLoading","getDeactivatedMembersLoading","getActiveMembersTotalCount","getDeactivatedMembersTotalCount","getErrors","getDismissedInfoCardIds","getOtherCommunities","isLoadingOtherCommunities","getUserContactEmail","contact","getAuthState","auth","isAuthLoading","isAuthenticated","getAuthMessages","getLoginErrors","getRedirect","getPwResetErrors","getEmailVerificationErrors","getEmailVerificationMessages","getEmailVerificationCode","getEmailVerifiedStatus","getOnboardingEmail","getOnBoardingAccountDetails","isOrgValid","getOrganizationCreationErrors","getUserCreateErrors","getPasswordResetReturnURL","getAutofillEmail","getSSOConfig","getSSOReturnLocation","hasOrgSignupInfo","QueryStringUtils","useHash","this","parseQueryString","BasicQueryStringUtils","remoteConfig","getRemoteConfig","minimumFetchIntervalMillis","fetchAndActivate","getFeatureFlagValue","isFeatureEnabled","handleLoginRequest","authedRedirect","handleOAuthLoginRequest","handleLoginByMicrosoftRequest","handleLoginByOktaRequest","handleSignUpRequest","requestPasswordReset","requestPasswordResetLink","requestLogout","submitForm","verifyEmailAddress","createUser","handleSSOLoginFailure","handleSSOAuthRedirect","attemptSSOCodeExchange","handleSSOLoginRequest","loginSaga","loginFunction","authType","organization_passphrase","newPassword1","newPassword2","passwordConfirm","resetToken","successCode","verification_code","marketingEmailOptIn","errorDescription","replaceAll","AuthorizationServiceConfiguration","fetchFromIssuer","issuer","FetchRequestor","authorizationHandler","RedirectRequestHandler","extras","access_type","prompt","AuthorizationRequest","redirect_uri","redirectURI","scope","scopes","response_type","RESPONSE_TYPE_CODE","DefaultCrypto","codeExchangeMethod","performAuthorizationRequest","onAuthorizationComplete","store","dispatch","tokenHandler","BaseTokenRequestHandler","r","TokenRequest","grant_type","GRANT_TYPE_AUTHORIZATION_CODE","code_verifier","internal","performTokenRequest","catch","requestOIDCIntegration","handler","LocalStorageBackend","notifier","AuthorizationNotifier","setAuthorizationNotifier","setAuthorizationListener","completeAuthorizationRequestIfPossible","userType","auth_type","all","takeLatest","getCurrentUser","updateUser","updateUserEmail","getMembers","searchMembers","activateUsers","deactivateUsers","handleUpdatedCommunity","removeUser","deleteUser","deleteAccount","updatePermissions","moveOrgs","fetchUserDetails","fetchOtherCommunities","ability","setUserId","identify","file","FormData","updateData","updateResponse","userIds","limit","isUserView","delete","newOrganizationId","takeEvery","getVideoId","video","matchResult","toVideoURL","transformAction","headlinePhotoUrl","headlinePhoto","headlinePhotoAuthor","photoAuthorName","headlinePhotoId","contentBonuses","bonus","bonusValue","backgroundImage","videos","pinYouTubes","videoId","videoID","isCommunity","sponsor","sponsors","shortName","rawLinks","pinURLs","links","linkUrl","sizes","sponsorId","impactConversions","conversion","leadingPhrase","trailingPhrase","photoAuthor","sustainableDevelopmentGoals","sdg","transformLeaderboardItem","includeScore","transformedTeam","reorderLeaderboardItems","items","prototype","apply","transformLeaderboardItems","transformChallengeCreateQuery","challengeName","challengeDescription","startDate","endDate","selectedGroup","teamsType","selectedCompetition","goalPointValue","goalsType","challengeToDuplicateId","restParams","toISOString","competitionType","timezone","Intl","DateTimeFormat","resolvedOptions","duplicateChallengeId","teamCreationEnabled","playersPerTeam","getViewChallengeData","joinChallenge","unjoinChallenge","getChallengeLeaderboard","analyticsGraphDataRequested","penaltiesRequested","analyticsUsersRequested","analyticsImpactRequested","analyticsPhotosRequested","createChallenge","getGroupedChallenges","activateChallenge","deactivateChallenge","getTeamDetails","getTeamLeaderboard","requestChallengeReport","postWarnUser","postRemoveUser","getUserChallenges","getChallengeShareURL","getChallengeAdminShareImageURL","searchChallenges","deleteChallenge","challengeSaga","challengeData","viewChallengeData","challenge_id","includeGoals","paramsQuery","sortBy","queryParams","assign","penaltiesData","summaryType","startDateIso","endDateIso","theme_id","community_id","groupBy","allData","responseData","includeOrgInvite","urls","saveDraft","updateChallengeSaga","last_challenge_start_at","last_challenge_end_at","getCheatingAction","getAction","getActions","addExcludeAction","addIncludeAction","getUrlMetadata","customizeAction","getActionCategories","getActionShareURL","getSDGs","actionSaga","actionData","count","action_id","pinId","logActionResponse","formData","actionIds","actionDuplicationCommunityIds","pinIds","excludedAction","saveImage","descriptions","requestBody","communityURLs","communityPhotos","communityYouTubes","communityDescriptions","getMorePhotos","getMoreChallengePhotos","analyticsPhotoSaga","afterTimestamp","beforeTimestamp","photosOnly","getActivitiesStats","getUsersAnalytic","getImpactStats","getGraphData","handleSingleAnalyticsRequest","asyncFetchMultipleAnalyticsGraphs","getAnalyticsGraphData","analyticsSaga","activityData","analytics","impacts","rawGraphData","requestOptions","allMetricData","graphDataArray","singleRequest","transformCommunity","members","membersCount","transformCommunityEditRequest","lang","internalName","additionalAdmins","admin","getCommunity","updateCommunity","joinCommunity","unjoinCommunity","getInviteLink","createCommunity","getCommunities","searchCommunities","getCommunityShareImageUrl","uploadCommunityFile","communitySaga","uploadImage","imageSaga","AUDIENCE_VALUE_USERS","AUDIENCE_VALUE_COMMUNITIES","AUDIENCE_VALUE_COMMUNITY_MEMBERS","VALUE_CHALLENGE_SUBJECT_TYPE","VALUE_ACTION_SUBJECT_TYPE","SUBJECT_TYPES_MAP","SAFE_COMMUNITY_CHALLENGE_AUDIENCE_TYPES","AUDIENCE_TYPE_CHALLENGE_TEAMS","iconName","ALL_AUDIENCE_TYPES","DEFAULT_AUDIENCE_TYPES","AUDIENCE_TYPES_WITH_AUDIENCE","getDefaultIcon","settingsType","notificationResponseToTableCellData","notificationResponseData","notificationData","subjectReference","subjectId","userCount","sendDate","audience","audienceString","audienceMember","getAudienceMembers","contentTitle","isChallenge","notificationToTableCell","transformTeams","transformOptionsQuery","localSubject","localMessage","floor","getTime","getNotificationsData","getNotificationData","createNotificationRequest","updateNotificationRequest","openCreateNotificationScreen","getUserNotifications","markUserNotifications","notificationsSaga","mode","transmissionType","markBeforeTimestamp","getFlaggedContent","ignoreFlaggedContent","excludeFlaggedContent","addFlagReport","flaggedContentSaga","commentId","responseId","getThemes","updateCommunityThemes","themesSaga","orgId","themeIds","nextLocation","openDeepLink","deepLinksSaga","handleInviteUsers","invites","handleSlackIntegrationRequest","handleSlackIntegrationRemoveRequest","handleOIDCIntegrationRequest","handleOIDCIntegrationRemoveRequest","getIntegrations","settingsSaga","integrationCredentials","slackIntegration","getActivityData","getActivityDetail","likeActivity","getShareURL","activitiesSaga","getURL","like","comment","getSubscription","getSubscriptionSession","getSubscriptionVerification","getSubscriptionsRecords","getSubscriptionsTiers","getSubscriptionManagementLink","subscriptionSaga","communityBillingSubscription","amount","interval","monthly_spend","plan","subscriptionTier","user_count","currentUserCount","trial_end","trialEnd","billingHistory","billingSubscriptionRecords","billingTiers","billingSubscriptionTiers","returnUrl","rootSaga","authSaga","userSaga","viewChallengeSaga","viewActionSaga","inviteUsersSaga","browserHistory","createBrowserHistory","minHeight","overflowX","html","WebkitFontSmoothing","MozOsxFontSmoothing","normal","scrollBehavior","textRendering","listStyle","p","textDecorationSkipInk","img","font","animationDuration","animationIterationCount","transitionDuration","GlobalStyles","withStyles","rawResetStyles","rawGlobalStyles","children","styles","position","setupFormButton","breakpoints","down","buttonWrapper","paddingBottom","useStyles","makeStyles","themeType","colorTheme","darkColorTheme","activeBgColor","fade","btnColor","textColor","darken","RawButton","defaultColor","classes","Button","defaultProps","PropTypes","node","AdminButton","currentTheme","useTheme","selectedTheme","ThemeProvider","style","Grid","top","left","right","bottom","CircularProgress","size","actionButton","NextAndBackButtons","onBack","isValid","submitBtnText","useTranslation","container","direction","className","onClick","ShineForm","initialValues","validator","validationSchema","onSubmit","submitBtnType","submitBtnColor","submitBtnTextColor","enableReinitialize","hasNext","submitBtnClass","validate","formikProps","data-intercom-target","noBottomMargin","common","autoHeight","inputLabel","cursor","errorBelow","noLeftMargin","errorTextColor","fieldLabel","oneOf","arrow","button","Tooltip","placement","disableHoverListener","disableFocusListener","enterTouchDelay","InfoTooltip","Icon","InfoOutlined","Label","tooltipText","tooltipPlacement","Typography","FormInput","noErrorMessage","onIconClick","as","useFormik","additionalClasses","Component","tooltipIntercomTarget","intercomTargetPrefix","inputClasses","classNames","FieldLabel","component","Input","overflowY","overlay","loginScreen","leftBackgroundImage","rightBackgroundImage","zIndex","backgroundRepeat","backgroundSize","backgroundPosition","createAccountText","textDecoration","loginOptionsText","footer","templateStyles","innerContainer","menuAndLogoutGridItem","flexGrow","lightMoodContainer","Logo","isLogoWhite","alt","OnboardingHeader","isLightMode","lightModeContainer","justify","wrap","onBoardingFooterContainer","onBoardingFooterContainerFixed","gridLeft","listItem","inlineListSection","onBoardingFooterText","storeBadge","downloadLinks","xs","sm","md","List","Link","target","aria-label","align","aria-hidden","OnboardingFooter","positionFixed","snackBar","successAlert","errorAlert","SnackbarAlert","severity","clearMessages","useState","isOpen","setIsOpen","Snackbar","autoHideDuration","open","onClose","elevation","SnackBarAPIResponse","clearResponse","RequestLoader","StyledRequestLoader","SignInScreenTemplate","loginLoading","userLoading","loginErrors","passwordResetErrors","orgCreateErrors","clearErrors","cancelOnboarding","connect","ForgotPasswordScreen","onResetPassword","successMessage","ValidationSchema","Yup","shape","required","setShowForm","showForm","Form","to","StyledResetPasswordScreen","resetPasswordEmailRequested","returnToLoginButton","spacing","ResetPasswordScreen","min","history","useHistory","resetPasswordRequested","commonDrawer","mainHeader","openDrawer","between","up","hideDrawer","navOverlay","menuItem","paper","alignSelf","activeButton","overflow","textOverflow","UserDropdown","menuItems","anchorEl","setAnchorEl","clsx","Boolean","currentTarget","Person","ArrowDropDown","keepMounted","MenuItem","drawer","toolbar","menuIconWrapper","menuIcon","userDropdown","PageHeader","showHamburger","onLogout","toggleUserView","handleUserViewToggle","prevAsAdminMenuItems","prevAsUserMenuItems","AppBar","Toolbar","Menu","not","I","StyledPageHeader","CommunityCard","ListItem","listItemRoot","listItemButton","ListItemAvatar","Avatar","ListItemText","primaryTypographyProps","panel","panelSummary","panelDetails","panelWrapper","borderLeft","expanded","activeLink","titleLink","titleUrl","titleLeftPartLink","titleArrowWrapper","titleArrow","titleIcon","MenuDropdown","TitleIcon","isExpandBlocked","isExpanded","handleSelfExpand","setExpanded","useRouteMatch","ExpansionPanel","ExpansionPanelSummary","ChevronRight","ExpansionPanelDetails","withCan","activeClassName","IcomoonIcon","iconSet","_polygon","_path","_extends","i","source","hasOwnProperty","_objectWithoutProperties","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_defs","_ref","svgRef","x","y","viewBox","enableBackground","xmlSpace","ref","d","ForwardRef","forwardRef","isolation","clipPath","_path2","_title","_circle","undefined","cx","cy","fillRule","inputRoot","option","popper","communityIndent","groupCard","hidden","CommunityAvatar","successLoad","setSuccessLoad","failLoad","setFailLoad","Fragment","onLoad","onError","noWrap","CommunityDropdown","paperRef","placeholder","onChange","inputValue","currentValue","setCurrentValue","groups","setGroups","renderOption","useCallback","some","renderGroup","isGroup","Autocomplete","getOptionLabel","renderInput","TextField","disableListWrap","fullWidth","rowsMax","PaperComponent","Paper","collapsed","actionItems","challengeItems","notificationsItems","usersItems","localizeFieldsInObject","fields","objects","object","localizedObject","field","flexShrink","borderRight","easing","sharp","borderTop","dropdown","importedIcon","iconMoon","navLink","flexWrap","navLinkActive","notificationBadge","backToOrgButtonContainer","backToOrgButton","EMPLOYEE_COUNT_DROPDOWN_VALUES","string","isRequired","arrayOf","SAMPLE_UNITS","subtitle","baseUrl","CREATE_SUCCESS_URL","ONBOARDING_CREATE_CANCEL_URL","CREATE_CANCEL_URL","MANAGE_RETURN_URL","getCurrencyString","currency","includeDecimals","formattedAmount","shouldShowSubscription","getAccountPropsFromSub","quotas","maxUserCount","nextAmount","minUsers","rate","calcBillingRate","rawAmount","nextDate","nextBillDate","units","estimateUserCount","getViewChallengeState","viewChallenge","getChallengeErrors","getLeaderboardErrors","getSearchedChallenges","isChallengesLoading","getChallenge","getChallengePaginatedActions","getChallengeName","getChallengeStartDate","getChallengeEndDate","getChallengeId","isChallengeEditable","isEditable","getChallengeParticipationStatus","getChallengeTemplateStatus","challengeTemplateStatus","getHeadlinePhotoUrl","getHeadlinePhotoAuthor","getChallengeIconUrl","getChallengeUnit","getChallengeScoringType","scoringType","getLeaderboard","getLeaderboardItems","getSecondaryLeaderboard","UserLeaderboard","getSecondaryLeaderboardItems","getTeamItems","getChallengeTeams","getChallengeTeamsInfo","joined","getChallengeImpactItems","getChallengeActivityTotals","getChallengeInfo","rulesType","contentFilterUrl","contentFilterIcon","contentFilterText","basicsInfo","howToWin","howToWinInfo","rulesInfo","prizes","autoJoin","joinCommunityMembersAutomatically","makeChallengeCategory","includeActionIds","excludeActionIds","transformChallenge","getGraphDataLoading","getGraphDataErrors","getActivityTab","sumByTotal","sumBy","sumByPoints","sumByActionEarned","getUsersTab","activeUsers","avgActions","avgActionsPerDay","getTopUsers","contentName","getAnalyticsUsersErrors","getAnalyticsUsersLoading","getTopActions","getAnalyticsActivityErrors","getAnalyticsActivityLoading","getChallengeImpactStats","getAnalyticsImpactErrors","getAnalyticsImpactLoading","getPenalties","isPenaltiesLoading","isPenaltiesActionLoading","getPenaltiesActionsResponse","getPenaltiesActionsErrors","getChallengeCreationState","viewChallengeState","creationState","getChallengeCreationErrors","getCreatedChallenge","isChallengeCreationLoading","getTeamDetailsState","areTeamDetailsLoading","getTeamDetailsErrors","getTeam","getParticipationStatus","getTeamLeaderboardState","isTeamLeaderboardLoading","getTeamLeaderboardErrors","getTeamLeaderboardItems","statusInfoTitle","getPresentableTeamLeaderboardItems","getTeamActivitiesState","teamActivities","getTeamActivities","getAllChallenges","backgroundImageUrl","isOrgChallenge","getAvailableChallenges","allChallenges","currentDate","getUserSubscribedChallenges","getUserPreviousChallenges","getChallengeShareURLState","isChallengeShareURLLoading","getChallengeShareURLErrors","getChallengeAdminShareImageURLState","isChallengeAdminShareImageURLLoading","getChallengeAdminShareImageURLErrors","getChallengeThemeName","themeName","getChallengesState","getGroupState","challengesState","isGroupLoading","groupState","getGroupLoadingStates","getChallengesScreenActions","isChallengesScreenActionLoading","activation","getChallengesScreenActionErrors","getChallengesScreenActionResponse","getGroupChallenges","getGroupTableData","sponsoringCommunities","communityName","getViewActionState","viewAction","isActionLoading","isActionShareURLLoading","getActionShareURLErrors","getActionErrors","getLogAction","getLoggedActivityId","isShareURLLoading","getLogErrors","getLogStatus","didLogAction","getLogActionEncouragements","encouragements","getLogActionChallengeUpdates","getLogActionBonuses","actionMultiplier","getLinkState","viewActionState","linkState","getMetadataErrors","getMetadata","getCustomizationState","getCustomizationMessage","customizationState","getCustomizationErrors","getActionCategoriesState","isActionCategoriesLoading","getActionTabNames","getActionPins","pin","getLastVisitedActionCategoryIndex","getSearchablePins","actionPins","uniqBy","getConfirmLinkStatus","getNotificationsState","getGroupLoader","getGroupTotalCount","getNotificationLoader","getNotificationErrors","getNotificationUpdateMessage","getNotificationActions","getCommunityUsers","getCommunityAdmins","getChallenges","teamsInfo","subTitle","getUpdateErrors","getUpdateErrorStatus","getCreate","transformCreateNotification","areUserNotificationsLoading","pictureContentType","subjectPictureData","defaultLeftIcon","targetView","leftIcon","leftIconType","rightIconName","transformUserNotifications","getUserNotificationCounts","LeftColumn","activeCommunityName","activeCommunityOrgId","activeCommunityImage","changeCommunity","activeCommunityLoading","communitySelectOpen","setCommunitySelectOpen","isCommunitySelected","adminActionTabOpen","setAdminActionTabOpen","adminChallengeTabOpen","setAdminChallengeTabOpen","adminNotificationsTabOpen","setAdminNotificationsTabOpen","adminUsersTabOpen","setAdminUsersTabOpen","tUsersItems","useMemo","tActionItems","tChallengeItems","tNotificationsItems","handleTabClick","isWidthDown","handleCloseExpandedTabs","setStateByResize","isWidthUp","communitySearchValue","setCommunitySearchValue","communityDropdownPaperRef","handleClickOutside","event","contains","addEventListener","removeEventListener","Drawer","ModalProps","comm","Group","disableClearable","onInputChange","newInputValue","val","newUrl","searchParams","pathname","startsWith","changeCommunityHandler","onOpen","clearOnEscape","exact","Home","Badge","badgeContent","AssessmentOutlined","Settings","StyledLeftColumn","footerContainer","footerText","Copyright","getFullYear","propTypes","String","fromCharCode","pageTitle","progressBar","progressBarContainer","upgradeBtn","UserCounter","UserCountBar","LinearProgress","calcUserPercentage","data-test","remainingUserCount","getSubscriptionState","getCurrentSubscription","subscriptionState","upcomingAmount","getSubscriptionName","isSubscriptionCanceled","cancelAtPeriodEnd","getLatestInvoice","amountPaid","subTotal","salesTax","amountDue","getPaymentMethod","getStripePlanId","getBillingSessionUrl","getBillingSessionErrors","getBillingSessionLoading","getSubscriptionRecords","record","getSubscriptionTiers","sortedOrder","tier","previousMaxUserCount","minUserCount","sortSubscriptionTiers","areSubscriptionTiersLoading","getSubscriptionTierErrors","getSubscriptionSessionLoadingState","getSubscriptionManagementUrl","MainHeader","isAuth","subscriptionName","fetchCurrentSubscription","useLocation","getPageTitle","shouldShowUserCounter","titleContainer","accountTypeId","StyledMainHeader","getCommunityState","isCommunityLoading","communityState","getCommunityErrors","getCommunityProfile","getCommunityAccessCode","orgAccessCode","getCommunityUpdateState","isCommunityUpdateLoading","getCommunityUpdateErrors","getCommunityUpdateResult","getCommunityAssets","communityAssets","getAccountPlan","assets","asset","assetFileType","assetUrl","assetType","fileUrl","fileType","exec","isJoinRequestLoading","getJoinRequestErrors","isUnjoinRequestLoading","getUnjoinRequestErrors","getCommunityInviteLink","isCommunityInviteLinkLoading","getCommunityInviteLinkErrors","communitiesLoading","getCommunitiesErrors","getCommunitiesAdmin","hasPassword","transformAdminCommunity","createCommunityLoading","createCommunityErrors","getSearchedCommunities","isCommunitySearchLoading","getCommunityShareImage","isCommunityShareImageLoading","getCommunityShareImageErrors","getCommunityBulkJoinResponse","isCommunityBulkJoinLoading","getCommunityBulkJoinErrors","MainScreen","accountPlanData","snackbarError","setSnackbarError","useContext","showFooter","setShowFooter","setOpen","can","queryCommunityId","handleCommunityIdQueryParam","CssBaseline","userCounterData","StyledMainScreen","withWidth","fetchAccountPlan","counterContainer","pageNameContainer","pageName","header","proTipsSection","photoSection","photoSectionTitle","placeholderTextContainer","placeholderText","analyticsDatePickerContainer","graphContainer","emptyTextContainer","emptyText","activeChallengeWrapper","contentLoaderContainer","visualItemIcon","logoSection","tipTitleSection","tipTitle","tipContent","tip","borderTopRightRadius","borderBottomRightRadius","clearButton","maxHeight","clearButtonWithError","bottomMargin","DatePicker","openHandler","rightBtnType","isBottomMargin","datePickerProps","pickerUI","React","autoOk","inputVariant","InputProps","omit","utils","MomentUtils","Event","DatePickerUI","DatePickerRange","handleDateChange","filterError","setFilterError","handleActions","newStartDate","newEndDate","toDate","filterField","filterLabel","timezoneContainer","subtract","activeChallengeCover","activeChallengeCoverHeader","editCover","borderStyle","buttonIcon","activeChallengeCoverBodyRow","activeChallengeCoverBodyHeader","activeChallengeCoverBodyRowFooter","alignContent","activeChallengeCoverBodyRowMiddle","challengeMeta","challengePeopleMeta","challengeTitleWrapper","challengeTitle","challengeDates","peopleIcon","challengeText","activityItemsWrapper","focusVisible","imageBackdrop","activityItem","activityItemSeeAll","imageSrc","IconComponentPropType","oneOfType","elementType","loadingIndicator","mainWrapper","shareButton","shareButtonIcon","shareChallengeWrapper","shareChallengeInner","hide","textMutedLink","shareActionContainer","shareOptionIcon","shareOption","borderTopStyle","borderTopColor","ShareChallenge","sharingOptions","onSocialLinkClicked","toggle","setToggle","onMouseOver","copy","btnEditIcon","ChallengeIcon","iconStyle","canEdit","onChangeIcon","iconLink","buttonsCell","onButtonsCell","IconButton","ChallengeStats","flexJustify","circleIconStyle","ActiveCard","memberCount","now","createChallengeEndString","createChallengeStartString","PersonIcon","ActiveChallenges","activityTitle","defaultCoverImageUrl","Alert","instanceOf","array","logoContainer","objectFit","createBtn","textSection","CreateSection","communityImage","isOrg","entityType","CreateChallengeBanner","Modal","Dialog","scrollPaper","modal","ConfirmModal","titleStyle","modalStyle","confirmBtnLoading","confirmBtnText","confirmBtnType","confirmBtnColor","confirmBtnTextColor","confirmBtnDisabled","confirmBtnHidden","cancelBtnText","cancelBtnType","cancelBtnColor","cancelBtnTextColor","cancelBtnDisabled","cancelBtnHidden","centeredButtons","onCancel","onConfirm","modalProps","Close","Fade","in","unmountOnExit","confirmMessage","isActivate","headerKey","verb","Trans","i18nKey","ActivateModal","CommonPropTypes","showActivationModal","number","challengeIcon","setModalDetails","handleButtonsCell","handlePublish","handleReport","getAnalyticsState","getActivities","getActivityStats","activityStats","actionEarned","transformActivityStats","getUserStats","newUsers","transformUserStats","getTotalLogsGraphData","getNewUsersGraphData","getActiveUsersGraphData","transformTopActions","getTopFiveActions","transformTopUsers","getTopFiveUsers","getAnalyticsLoaders","isActivityStatsLoading","isUserStatsLoading","isImpactStatsLoading","chartWrapper","chartOptions","setChartOptions","chartDefaultOptions","responsive","legend","plugins","scales","grid","interaction","intersect","visualItemWrapper","visualFlag","visualItem","visualFlagTitleCover","visualFlagTitle","visualFlagTitleCard","visualFlagTitleText","visualItemHeader","visualItemBody","visualItemFooter","detailButton","footerLeft","metaHeading","totalHeading","goalHeading","chartInner","flagColor","flagRGBColor","goal","datasets","lineChartData","setLineChartData","solidObjectProperties","pointRadius","pointHoverRadius","pointBackgroundColor","dashedObjectProperties","tension","borderDash","chartDecorator","Set","dataSet","element","additionalProperties","add","Loader","speed","foregroundColor","rx","ry","chart","drawBorder","drawOnChartArea","drawTicks","beginAtZero","AssessmentRounded","Help","impactMetrics","getResolution","diffDays","diffMonths","diffYears","StyledGraphs","fetchGraphData","analyticsGraphData","isGraphLoading","communityImpactMetrics","resolution","graphType","dataMap","graphIcon","Landscape","icons","BuzzIcon","CommunityIcon","PhotoIcon","CarbonIcon","WasteIcon","WaterIcon","graphColors","Actions","Engagement","Sustainability","newGraphType","dataset","roundedTotal","sum","totalWithSuffix","formattedTotal","newLabels","isGraphDataEmpty","graphObject","xAxisLabel","yAxisLabel","lg","invertFilter","closeButtonWrapper","closeButton","logoColor","actionWrapper","NotificationCard","tipDescription","isDismissible","buttonWhite","buttonGreen","testDecoration","underlined","tipSelectPlan","AccountTierNotifications","isUserCountNotExceeded","rel","noDataLabelContainer","noDataLabel","notFoundImage","InfiniteScroller","loadFunc","renderFunc","listEmptyText","fetchLimit","bottomRef","prevItemsCount","setPrevItemsCount","itemsCount","intersectionObserver","IntersectionObserver","entries","entry","intersectionRatio","threshold","targetElement","observe","unobserve","err","WebkitLineClamp","WebkitBoxOrient","textBlock","ActivityCardHeader","onProfileClick","stopPropagation","andBlock","badgeName","badgeImage","ActivityCardBadge","ActivityCardPhoto","ActivityCardLikes","Favorite","pluralize","ActivityCardComment","FormatQuoteRounded","ActivityOptionsPopper","onSelect","isConfirmationShown","setConfirmationShown","optionId","setSelectedOptionId","handleClose","aria-controls","aria-haspopup","aria-expanded","aria-labelledby","anchorOrigin","vertical","horizontal","transformOrigin","actionsContainer","commentContainer","commentInput","commentPopper","commentButton","actionContainer","actionText","getActivitiesState","activitiesLoading","getMessages","activityLoading","activityErrors","getLikeLoadingActivityId","getShareURLLoadingActivityId","getAddCommentLoadingActivityId","flaggedContentToTableRow","flaggedContent","flags","updated","isComment","flag","flaggedCommentId","flaggedOn","flaggedContentToTableData","dat","commentIds","c","f","postedOn","getCommentRows","getFlaggedState","isFlaggedContentLoading","flagged","getFlaggedContentErrors","getPresentableFlaggedContent","getFlaggedContentTotalCount","getReportPostContentId","ActivityCard","likeLoadingActivityId","addCommentLoadingActivityId","shareURLLoadingActivityId","submitReport","activityReportLoadingId","setComment","showComment","setShowComment","snackbarMessage","setSnackbarMessage","shareRequested","setShareRequested","isLiked","likeLoading","shareURLLoading","addCommentLoading","addReportLoading","featuredActivity","otherActivities","badge","mastery","FavoriteBorder","AddComment","reportTypes","reportType","getReportingOptionsForActivity","autoFocus","minRows","multiline","activityReportRequested","activityLikeRequested","addCommentRequested","cardLoaderContainer","ActivityCardLoader","cardContainer","ActivityCardScroller","flagErrors","flagMessages","ConnectedActivityCardScroller","getFlagErrors","getFlagMessages","AdminHome","isLoadingActive","isLoadingUpcoming","actionResponse","activeChallenge","upcomingChallenge","requestDeactivation","actionErrors","requestChallenge","challengeCoverPhotoUrl","fetchCommunityActivities","modalDetails","isActionSent","setActionSent","setTip","haveRequestedChallenges","setHaveRequestedChallenges","loadMoreActivities","setStartDate","setEndDate","filteredActivities","isBetween","proTips","returnObjects","randomProTip","random","loadActiveChallenges","loadUpcomingChallenges","handleCloseModal","AccountTierNotificationCard","tableData","StyledAdminHome","requestActivation","bannerTitle","bannerBody","sectionHeading","infoIcon","searchList","webkitBoxShadow","outline","appBar","tab","mainContainer","navContainer","backgroundImageURL","iconBox","infoContainer","iconChallenge","ActionCard","iconImageURL","actionLink","LinkPropType","bool","BonusPropType","VideoPropType","actionPropType","originalDescription","TabPanel","actionCards","onCardClick","ActionTabMenu","tabs","allActionCards","lastVisitedTabIndex","tabAction","setValue","handleChange","newValue","Tabs","scrollButtons","Tab","a11yProps","onChangeIndex","searchFieldRootBasic","borderTopLeftRadius","borderBottomLeftRadius","searchButton","searchFieldRootEmpty","searchFieldRootWithText","searchFieldInput","SearchBar","handleTextChange","runSearch","onSearchButtonClicked","autoComplete","onKeyPress","preventDefault","setTimeout","isFullWidth","cardAction","cardActionContainer","helpBtn","helpIcon","InfoCard","hideCard","helpLink","cardActions","isDismissed","Grow","appear","Card","CardContent","CardMedia","media","CardActions","afterClose","HeaderPage","rightContent","containerStyle","InfoCardHeader","hasHelpLink","useDispatch","UserActionsScreen","loadActionCategoriesFunction","actionTabNames","searchablePins","setAction","setLastVisitedTabIndex","filteredItems","setSetFilteredItems","searchPins","filterList","onSearch","handleSearchItemClick","MenuList","backText","StyledUserHomeScreen","actionCategoriesRequested","HomeScreen","bonusesRow","rowHeader","rowIcon","rowLabel","linkItem","linkImage","linkInfo","linkName","linkDescription","showMoreBtnItem","sameImpactAsContainer","conversionContainer","headerRoot","headerContent","headerAction","backIcon","btnReset","rightBody","verticalAlign","editName","cardContent","baseColumns","row","original","tableColumn","Add","activeButtonsCell","IndeterminateCheckBox","deactivatedButtonsCell","challengeAddButtonsCell","challengeEditButtonsCell","challengeViewButtonsCell","BackgroundHeader","allowReset","onChangePhoto","onReset","onChangeName","CardHeader","goBack","ArrowBack","passThrough","logActionIcon","logActionButton","buttonsContainer","ActionHeader","logActionFunc","headlineUrl","fetchShareURL","shareURLRequested","setShareURLRequested","copyLink","handleCopyDeepLink","StyledActionHeader","actionShareURLRequested","BonusPoints","divider","cheatingAction","cheatMessage","LogActionItem","titleBar","summary","summaryImage","summaryPoints","okButton","share","SummaryModal","summaryImageLink","bonuses","challengeUpdates","okayFn","onShare","leaderboardItem","encouragement","summaryItem","challengeHeader","challengeContributions","upload","photoTooltip","photoTooltipKey","DropzoneProps","fileTooLargeErrorMessage","hideTip","UploadPropTypes","setCroppedImageData","func","CropProps","initCrop","photoContainer","hasImage","smallText","defaultPhoto","Upload","onDropAccepted","acceptTypes","setErrorMessages","classNAme","acceptedFiles","onDropRejected","rejectedFiles","accept","getRootProps","getInputProps","maxSize","acceptType","Photo","setImage","imageRef","setImageRef","imageToCrop","setImageToCrop","aspect","crop","setCrop","getCroppedImg","canvas","scaleX","naturalWidth","scaleY","naturalHeight","ctx","getContext","ceil","drawImage","base64Image","toDataURL","newCrop","onImageLoaded","lable","buttonCancel","modalFooter","CommentModal","PhotoProps","croppedData","setCroppedData","croppedDataLoading","setCroppedDataLoading","MultilineTextField","rows","defaultValue","handleAddImage","md5","handleSubmit","caption","setFieldValue","StyledCommentModal","LogAction","modalState","setModalState","handleOnClose","imageFile","imageMD5","handleOnOkay","handleOnShare","modalContents","topMessage","bottomMessage","errorText","errorStatusDescription","getErrorTitle","shouldHighlight","base","imageContainer","topRightImage","linkControls","defaultImageUrl","ImageCaptionCard","withControls","onEdit","onRemove","editPermissionAction","topRightImageUrl","buttons","underline","phraseText","valueText","ImpactConversion","ImpactToolTip","linksHeader","linksLabel","PinSubheader","addText","imageAlt","editAction","onAdd","AddCircle","noLinks","ActionCards","sponsorLogo","moreContentShown","setMoreContentShown","toggleMoreContentShown","first","Collapse","card","Errors","ViewActionScreen","didLog","logActionBonuses","logActionEncouragements","logActionChallengeUpdates","logActionErrors","logActionStatus","clearShareURLMessages","shareURLErrors","isLogShown","setLogShown","logActionClicked","setLogActionClicked","isErrorShown","setErrorShown","linkRequested","setLinkRequested","handleLinkClick","moreLinksShown","setMoreLinksShown","handleLogActionFunc","photoMD5","handleShareActivity","iframeRef","iframeCallbackRef","onBlur","activeElement","nodeName","frameBorder","allow","allowFullScreen","StyledViewActionScreen","noVideos","descriptionLabel","placementHint","placementLabel","check","selectPaper","translation","translationLabel","previewLabel","preview","previewIcon","previewInfo","previewName","previewDescription","ModalTitle","ActionDescription","imageLink","PLACEMENTS","APPEND_BEFORE","APPEND_AFTER","OVERWRITE","PLACEMENT_VALUES","PLACEMENT_HINTS","PLACEMENT_TRANSFORMS","moreText","setPlacement","setText","splits","fullDescription","placementKey","placementItem","makeMenuItem","setKey","clearState","textPlacement","TextareaAutosize","rowsMin","Select","disableUnderline","IconComponent","MenuProps","renderValue","checkboxRoot","checkboxSecondaryColor","customizeLabel","sponsorLabel","dropzoneRoot","dndLabel","previewImageWrapper","previewImage","previewSummary","previewSummaryTitle","previewSummaryDescription","CheckboxIcon","ErrorList","ErrorComponent","errorComponent","restProps","parsedErrors","obscureJSErrors","finalErrors","uniq","coerceErrorsIntoErrorMessages","shadows","getImageState","imageState","getImageUploadErrors","getImageUploadResponse","getImageId","ARef","ConditionalWrapper","Parent","ParentProps","PhotoUpload","requestImageUpload","uploadRequestPending","uploadErrors","uploadResponse","clearUploadResponse","onUpload","clearUploadErrors","iconData","setIconData","_uniqueId","ConnectedUpdateIcon","dragAndDropContainer","dragAndDropText","dragAndDropChooseText","PhotoAlternatePlaceholder","ImageCaptionForm","imageLabel","imageTooltipText","titleLabel","titleTooltipText","titlePlaceholder","descriptionTooltipText","descriptionPlaceholder","handleTitleChange","handleDescriptionChange","handleImageChange","titleError","isImageUploading","StyledImageCaptionForm","ConnectedImageCaptionForm","AddLink","requestMetadataForUrl","clearMetadata","editMode","clearCustomImage","checkboxClasses","colorSecondary","customizationOpen","setCustomizationOpen","sponsorLogoAdded","setSponsorLogoAdded","setTitle","setDescription","metaImageUrl","setMetaImageUrl","metaImageSizes","setMetaImageSizes","customImageSizes","setCustomImageSizes","setInitialValues","setConfirmedUrl","setCustomized","previewImageUrl","urlPristine","setUrlPristine","handleUrlChange","formik","customized","handleUrlBlur","handleBlur","handleCustomizationChange","checked","resetForm","handleCancel","confirmedUrl","handleConfirm","validateForm","isEmpty","updateMetadataAutomatically","errorUrlRequired","errorNotAUrl","errorUrlHttps","initialErrors","matches","Checkbox","sponsorName","ConnectedAddLink","urlMetadataRequested","controls","infoButtonRoot","infoButton","buttonContainer","MainControls","discardDisabled","saveDisabled","onDiscard","onSave","descriptionControls","Description","UpdateCoverPhoto","initialAuthor","author","initialPhoto","uploadedImage","setUploadedImage","errorAuthorRequired","ensure","ConnectedUpdateCoverPhoto","previewColumn","previewVideo","formColumn","resize","Textarea","ActionVideo","initialVideo","videoControls","VideoComponent","Videos","onVideoEdit","onVideoRemove","moreVideosShown","setMoreVideosShown","toggleMoreVideosShown","MessagePaper","withGutter","square","banner","messageGridItem","messageText","EditingBanner","displayLanguage","getSettingsState","getActionDuplicationCommunities","getResponse","settingsLoading","ActionDuplicationModal","checkedMap","checkedCommunityIds","setCheckedCommunityIds","handleCheckChange","renderCommunity","checkOverride","communityCheckContainer","duplicationContainer","UpdateActionScreen","requestCustomization","setMetadata","clearSnackBarErrors","snackBarMessage","setSnackBarMessage","headlineImage","setHeadlineImage","setHeadline","setAuthor","editVideo","setEditVideo","resetHeadline","headlinePristine","editHeadlineShown","setEditHeadlineShown","newDescription","setNewDescription","descriptionData","setDescriptionData","resetDescription","revertDescription","descriptionPristine","newLinks","setNewLinks","resetLinks","linksPristine","newVideos","setNewVideos","resetVideos","videosPristine","isEditDescriptionShown","setEditDescriptionShown","isAddLinkShown","setAddLinkShown","isAddVideoShown","setAddVideoShown","linkEditModeEnabled","setLinkEditModeEnabled","resetModalOpen","setResetModalOpen","confirmModalOpen","setConfirmModalOpen","descriptionPreview","handleDescriptionEdit","descriptionEdit","handleLinkAddOrUpdate","newLink","test","findIndex","propEq","existingLink","allPristine","resetAll","handleLinkRemove","indexToRemove","remove","handleVideoRemove","handleVideoEdit","handleAddOrUpdateVideoShown","handleAddOrUpdateVideo","newVideo","handleSave","autoPreview","urlType","splitUrl","s3_reference","bucket_name","file_name","handleLinkEdit","newAuthor","communityIds","StyledUpdateActionScreen","actionCustomizationRequested","linkId","themesTitle","themesSubtitle","editThemesButton","editThemesPlus","themesHeader","selectedThemes","modalDescription","pointsInput","TableHeader","memo","columns","cellActions","TableHead","headerGroup","rowIdx","TableRow","getHeaderGroupProps","cell","cellIdx","TableCell","defaultCell","checkboxCell","getHeaderProps","getSortByToggleProps","_getSortByToggleProps","centerAlignHeader","leftAlignHeader","rightAlignHeader","render","TableSortLabel","sortLabel","isSorted","isSortedDesc","ArrowDownward","ArrowUpward","ImportExport","renderCell","TableCellCheckbox","indeterminate","defaultRef","resolvedRef","getButton","TableToolbar","rowsPerPage","setPageSize","hideRowsPerPage","openTooltip","setOpenTooltip","textLabel","onMouseEnter","onMouseLeave","selectIcon","ExpandMore","SelectDisplayProps","Table","noItemFoundText","fetchDataFunc","searchFunc","multiActionButton","onRowSelect","pageOptions","initialPageSize","initialPageIndex","initialSortBy","clientPagination","loaderRows","isBorderImg","refetchData","pageIndex","setPageIndex","renderContentLoader","instance","useTable","pageSize","autoResetPage","autoResetFilters","manualSortBy","manualPagination","useSortBy","usePagination","useRowSelect","hooks","allColumns","getToggleAllRowsSelectedProps","getToggleRowSelectedProps","getTableProps","getTableBodyProps","headerGroups","page","prepareRow","gotoPage","selectedRowIds","pc","totalItems","listRowId","rowIndex","fetchData","TableContainer","renderCellActions","TableBody","getRowProps","cells","borderIcon","getCellProps","column","noItemsText","Pagination","cellTitle","TableManager","onChangeActive","shouldShowMultiSelect","tableProps","setSelectedRowIds","rowsData","setRowsData","filteredData","changeActivate","currRows","list","itemId","isIncluded","renderHeadButtons","handleFetchData","handleConfirmActivate","outlinedPrimary","selected","selectedOption","borderWidth","nameContainer","nameText","descriptionText","ColorImage","imageColor","xmlns","version","float","floodColor","in2","operator","k1","k2","k3","k4","ContentToggleButton","isHovered","setHovered","descriptionContainer","transformCategory","getThemesState","areThemesLoading","themesState","isThemeUpdateLoading","getThemesErrors","getUpdateThemesErrors","challengeIconUrl","whiteIcon","explainerText","sampleActions","samplePins","largePhotoUrl","transformTheme","selectItem","clear","FormDropdown","renderItems","SelectProps","endAdornment","displayEmpty","categoryIcon","CategoryDropdown","ListSubheader","disableSticky","AdminActionsScreen","includedTableData","excludedTableData","fetchActions","addInclude","addExclude","initialSortActive","initialSortDeactivated","themesLoading","textFilter","setTextFilter","sdgFilter","setSDGFilter","minPointsFilter","setMinPointsFilter","maxPointsFilter","setMaxPointsFilter","categoryFilter","setCategoryFilter","pointsFilterOpen","setPointsFilterOpen","setRefetchData","canDeactivateActions","fetchActionData","sdgId","minPoints","maxPoints","categoryIds","handleKeyDown","which","manuallySelected","selectable","onKeyDown","inputProps","StyledAdminActionsScreen","addExcludeActionRequest","addIncludeActionRequest","ActionsScreen","bold","BTN_WARN_USER","InfoRounded","BTN_REMOVE_USER","NotInterested","small","throttled","throttleActionHour","throttleActionTimesWithinMinutes","throttleActionDay","contentCount","until","PenaltyCell","totalTooltip","lastTooltip","level","expiration","ChallengePenaltiesScreen","penaltiesRequest","warnUserRequest","removeUserRequest","clearActionResponse","warningModalOpen","setWarningModalOpen","removeModalOpen","setRemoveModalOpen","setSelectedUser","makeTableData","teamName","makeTableColumns","throttles","tableColumns","Box","isPerPageOptions","warnUserRequested","loaderWrapper","getRawChallenge","rawChallenge","getAnalyticsPhotoState","analyticsPhoto","getPhotos","arePhotosLoading","getTopPhotos","defaultActionText","actionUrl","userUrl","overlayTop","actionImage","overlayBottom","overlayBottomLeft","overlayBottomRight","overlayBottomSpacing","chatIcon","overlayHomeScreen","overlayTopHomeScreen","PhotoCard","screen","leftContainer","imageList","imageListItem","headerTitle","userImageWrapper","actionImageWrapper","rightContainer","leftColumn","commentOwner","commentIcon","commentMessage","emptyComments","openPopper","setOpenPopper","PaperProps","Popper","TopPhotos","onViewAllClick","noHeader","setPhoto","onPhotoCardClick","KeyboardArrowRight","rawPhotos","getFilteredPhotos","safelyFormatDate","nullableDate","ChallengeTopPhotosScreen","requestPhotos","photosErrors","challengePresentable","formattedStartDate","formattedEndDate","tzCode","skippedRef","ConnectedChallengeTopPhotosScreen","getPhotosErrors","tabbedItem","tabBox","errorStyles","scoringExplanationText","participationIcon","joinButton","JoinTeam","onJoinTeam","SelectTeam","onSwitchTeam","onLeaveChallenge","copyEmail","emailContent","copyToEmailWrapper","headerText","modalBodyText","modalPreviewHeader","messageTextContainer","pdfContainer","linkText","linkPreText","bottomButton","InviteModal","inviteModalText","Toggle","Footer","shareLink","shareImageURL","inviteLoading","imageLoading","onDownload","snackbarText","setSnackbarText","previewHeader","copied","pdfHeader","switchText","switchContainer","InviteUsersModal","challengeShareLink","orgName","Switch","org_name","challenge_name","theme_name","ChallengeHeader","joinFunc","unjoinFunc","challengeStatus","getAdminShareImageURL","adminShareImageURLErrors","adminShareImageURLLoading","challengeEnded","joinTeamShown","setJoinTeamShown","selectTeamShown","setSelectTeamShown","inviteModalRequested","setInviteModalRequested","isInviteModalOpen","setInviteModalOpen","shareButtonPressed","setShareButtonPressed","shareImageDownloadRequested","setShareImageDownloadRequested","imageDownloadError","setImageDownloadError","toggleParticipationStatus","handleTeamParticipationStatusChange","handleParticipationButtonClick","handleJoinTeam","handleSwitchTeam","handleLeaveChallenge","showInviteModalButton","LibraryAddCheck","LibraryAdd","allowed","inviteUsersDisabled","disableTouchListener","StyledChallengeHeader","joinChallengeRequested","challengeShareURLRequested","challengeAdminShareImageURLRequested","modalTitle","modalPaper","tooltipIcon","place","hideRanks","imageIsRounded","infoIconRoot","hasOnClick","isPenalty","rightBlock","leftBlock","leaderboardCardDefaultPropTypes","defaultImageSrc","ViewIcon","onItemClick","onInfoClick","iconTooltip","viewIconTooltip","iconTooltipPlacement","showId","LeaderboardCard","leaderboardType","ListItemIcon","LeaderboardCardLoader","viewAllBtn","leaderboardCardProps","isModalOpen","setModalOpen","footerPadding","TabbedSection","withFooter","onTabChange","tabsProps","tabProps","tabBoxProps","footerBoxProps","selectedIndex","setSelected","tabLabels","numTabs","flexContainer","data-intercom-targe","getInitState","getInitializationStatus","getInitializationErrors","getApplicationStrings","deleteWhat","ChallengeLeaderboard","mainTabItems","secondaryTabItems","onNotificationClick","removeLoading","TEAMS_LABEL","USERS_LABEL","SEND_NOTIFICATION_LABEL","VIEW_USER_LABEL","scoreExplanationTitle","setScoreExplanationTitle","scoreExplanation","setScoreExplanation","scoreModalOpen","setScoreModalOpen","deleteModalOpen","setDeleteModalOpen","deleteId","setDeleteId","removeRequested","setRemoveRequested","canManageMasterNotifications","canRemoveChallengeUser","getTeamScoreExplanation","scoreModals","movingAverage","basicAggregate","loadTeams","handleUserScoreTooltipClick","scoreTitle","handleTeamScoreTooltipClick","handleTeamItemClick","handleNotificationIconClick","notifyUnit","handleViewIconClick","tab1Title","handleRemove","Notifications","MainTab","teamLeaderboardCardProps","class","StyledChallengeLeaderboard","impactTotalsRow","impactTotalsLabel","statsCard","statsCards","flexBasis","cardRoot","grey95","capitalize","iconButton","contentRoot","StatCard","transformColor","isDescription","setIsDescription","timeout","impactValue","ActivityTotals","activityItems","StyledChallengeImpact","impactItems","PlusOneRounded","VibrationRounded","AddCircleRounded","StarsRounded","SupervisorAccountRounded","iconLabel","datesRow","startEndLabel","time","teamsLabel","howToWinLabel","rulesLabel","prizeIcon","prizeName","editable","editIcon","dateContainer","addButton","buttonText","toggleContainer","toggleText","prizeButtonsCell","PRIZE_RANK_OPTIONS","CHALLENGE_ACTIONS_TABLE_COLUMNS","ChallengeActionsTable","showThemesFilter","searchFilter","setSearchFilter","selectedCategoryId","setSelectedCategoryId","fetchFilteredData","ChallengeActions","isEdit","onEditActions","onRemoveAction","fetchTableData","defaultPrizeImageUrl","onEditPrizes","edit","onDeletePrizes","prizeColumns","opt","handlePrizeActions","DRAFT_CHECKLIST_URL","ChallengeInfo","teamItems","onEditDescription","onEditDates","onEditHowToWin","onEditRules","onEditTeam","onToggleAutoJoin","onToggleChallengeCategory","fetchChallengeActionData","handleTeamEditIconClick","ChallengeTypeIcon","toSorted","numeric","StyledChallengeInfo","ViewChallengeScreen","loadActivities","fetchChallengeActionsTableData","getSelectedIndex","StyledViewChallengeScreen","activitiesErrors","Title","initialStartDate","initialEndDate","startDateValid","setStartDateValid","endDateValid","setEndDateValid","alreadyStarted","isAfter","DateTimePicker","minDate","maxDate","minDateMessage","errorMsg","onAccept","strictCompareDates","UpdateTextModal","initialText","textareaProps","ChallengeHowToWin","ChallengeRules","charsLeft","LimitedLengthInput","charactersLeft","maxCharacters","customStyle","ChallengeName","changeNameFunc","max","UpdateIcon","uploadedIcon","setUploadedIcon","UpdateTeam","initialName","initialHeadline","imageData","setImageData","setImageSizes","updateImage","ConnectedUpdateTeam","imageUploading","getUpdateChallengeState","updateChallenge","isSaveInProgress","isSaveSuccessful","getSaveErrors","getPublishStatus","inputRow","asteriskRequired","dropDown","dropDownContainer","obj","PrizeModal","isTeamChallenge","numberOfWinners","prizeUnit","prize","setPrize","prizeUnitOptions","currentPrize","prizeForm","editingBanner","buttonDiscard","buttonOutlined","confirmationText","infoText","textContainer","ChallengeActionsModal","onAddAction","UpdateChallengeScreen","pristineName","pristineStart","pristineEnd","pristineInfo","templateStatus","saveFunc","published","saveErrors","fetchThemes","communityActions","isSmallScreen","useMediaQuery","triedLoading","setTriedLoading","pristine","setPristine","editDescriptionShown","editDatesShown","setEditDatesShown","editHowToWinShown","setEditHowToWinShown","editRulesShown","setEditRulesShown","editNameShown","setEditNameShown","editPhotoShown","setEditPhotoShown","editIconShown","setEditIconShown","editTeamShown","setEditTeamShown","leaveConfirmationShown","setLeaveConfirmationShown","leaveLocation","setLeaveLocation","leaveConfirmed","setLeaveConfirmed","editActionsShown","setEditActionsShown","setInfo","setName","setIcon","setTeams","setTeam","isOpenModalReset","setIsOpenModalReset","showSaveConfirmModal","setShowSaveConfirmModal","isPrizeModalOpen","setPrizeModalOpen","selectedPrize","setSelectedPrize","fetchedThemes","setFetchedThemes","t1","t2","handleEditTeam","save0","basicDescription","transformedPrize","transformUpdateChallengeRequest","fetchCommunityActionsTableData","excludedPinIds","isDraft","noActions","publishDisabled","when","newHowToWin","newRules","newName","newImage","newIconData","newTeam","teamIndex","gutterBottom","toggled","StyledUpdateChallengeScreen","cardId","relative","parseRawData","rawData","isScoreTracker","parseLabels","step","pointBorderColor","pointHoverBorderColor","helpWrapper","helpText","hideCanvas","canvasContainer","canvasStyles","ChartItem","showLegend","showAnimateButton","setChart","parsedData","setData","playing","setPlaying","playInterval","setPlayInterval","chartRef","play","nodes","destroy","chartObject","Chart","hover","aspectRatio","boxWidth","elements","line","borderJoinStyle","borderCapStyle","hasData","Stop","PlayArrow","selectWrapper","Graph","charts","intervals","onTypeChange","onIntervalChange","tabbedSectionProps","setType","changeTypeHandler","changeInterval","renderCharts","prevChart","currChart","usersTab","activityTab","impactTabRequest","impactTabErrors","isImpactTabLoading","topActions","topActionsRequest","isTopActionsLoading","topActionsErrors","topUsersRequest","topUsers","isTopUsersLoading","topUsersErrors","topPhotoRequest","topPhotos","isTopPhotosLoading","renderStatCard","tabArray","dates","queryString","getDateQueryString","CHARTS","ChallengeAnalyticsScreen","graphErrors","challengeIdParam","setIntervals","setParams","scopeId","checkIncludeInterval","diffWeeks","getIntervalByDate","newParams","getGraphDataRequested","borderBottomWidth","dateLabel","subHeaderContainer","subHeader","leftGroup","rightGroup","templatesLabel","confirmButton","challengeNameContainer","challengeNameFormContainer","challengeNameFormInput","textArea","cancelButton","clearIcon","teamsTypeContainer","radioButtonLabel","IconFormInput","ParticipantsButton","CustomizeChallenge","startDateLabel","endDateLabel","maxStartDate","startDateOrNow","maxEndDate","setSelectedGroup","setSelectedCompetition","challengeImage","setChallengeImage","goalSummary","levels","teamCreation","errorTeams","confirmDisabled","formValues","disablePast","emptyLabel","LargeIconButton","RadioGroup","Radio","moreOptionsButton","TemplateGroup","selectedTemplate","uncutRows","onTemplateClicked","showAll","setShowAll","toggleShowAll","shownTemplates","template","challengeType","SelectChallengeTheme","setSelectedTemplate","onCustomizeClick","loadingTemplates","clearTemplateErrors","CreateChallengeScreen","viewToDisplay","requestChallengeCreation","themesErrors","requestActions","challengeToDuplicateLoading","challengeToDuplicateErrors","fetchChallenge","isDuplicating","requestSent","setRequestSent","creationStep","setCreationStep","setSelectedTheme","handleChallengeCreation","creationData","handleThemeSelected","contentFilterThemes","loadingActions","StyledChallengeScreen","headerName","table","newDateCell","centerColumn","ChallengesScreen","groupLoadingStates","initialSort","requestDeletion","usedGroups","groupsForPath","loadAllGroups","findChallengeById","StyledChallengesScreen","challengeDeletionRequested","challengeHeading","challengeSection","noChallengesText","loadAllChallengesFunc","isAllChallengesLoading","availableChallenges","subscribedChallenges","previousChallenges","setChallenge","searchedChallenges","searchLoading","setChallenges","searchText","setSearchText","loadChallenges","formatChallengeEndDateDetails","initFilteredItems","prevState","subscribed","available","previous","debouncedResults","debounce","cancel","isAvailableChallengesLoading","challengeSearchRequested","AdminChallengesScreen","UserChallengesScreen","TopSection","handleBack","redirectLink","impactStatCard","AnalyticsScreen","userStats","totalLogsGraphData","newUsersGraphData","activeUsersGraphData","fetchActivityStats","isActivityLoading","fetchUserStats","fetchImpactStats","isImpactLoading","fetchTopPhotos","isPhotosLoading","setMetric","setTabIndex","queryVals","dateChange","setDateChange","activityStatsTab","userStatsTab","renderStatsTab","statCardGridItemProps","statDetails","statsTabs","newIntervals","newInterval","newMetric","StyledAnalyticsScreen","usersAnalyticRequested","impactStatsRequested","graphDataRequested","AnalyticsPhotosScreen","loadMorePhotosFunc","clearPhotos","loadPhotos","StyledAnalyticsPhotosScreen","horizontalBorderRadius","VARIANT_HORIZONTAL","verticalBorderRadius","VARIANT_VERTICAL","borderRightColor","FormInputGroup","photoPlaceholder","StyledProfileCreateScreen","requestUpdate","updateLoading","updateErrors","displayName","profileImage","setProfileImage","StyledUserCreateScreen","optIn","setOptIn","schema","confirmPassword","passphraseLessLogin","StyledUserNotificationsScreen","notificationContainer","rightIcon","timeText","getNotifications","markNotifications","getNotificationIcon","userNotificationsRequested","deleteNotification","communityImg","activeItem","setActiveItem","findItemById","getButtonsCell","groupDisplayName","handleNotificationDelete","StyledAdminNotificationsScreen","publishErrors","clearSnackBar","handleCreate","fetchQueued","fetchDelivered","AddTwoTone","NotificationsScreen","NotificationItemTitle","SubjectContentType","challengeTypeDisabled","generalTypeDisabled","actionTypeDisabled","renderNavAction","BottomNavigationAction","BottomNavigation","nav","showLabels","SupervisorAccount","TextAreaField","NaN","UrlIcon","listbox","groupUl","inputField","titleBlock","CustomDropdown","multiple","DateField","hour","second","millisecond","warningBannerTitle","warningBannerIcon","warningBannerBody","communityLink","CommunityConfirmInfo","newCommunity","newRoute","changeCommunityURL","NotificationForm","audienceCommunities","onChangeValue","fetchChallenges","fetchUsers","searchUsers","usersLoading","selectedChallenge","setSelectedChallenge","communityConfirmModalOpen","setCommunityConfirmModalOpen","getAudienceValues","selectedAudienceType","setSelectedAudienceType","audienceValues","setAudienceValues","nullable","validateAudiences","generateFormState","newInterface","audienceTypes","audienceUsers","subjectTitle","subjectPlaceholder","subjectData","formInterface","setFormInterface","setSubjectContentType","handleChangeSubject","challengeTeamsIndex","splice","handleChangeValue","handleChangeAudienceInput","isOutOfCommunityScope","every","warningBanner","Section","TextareaField","maxLength","handleChangeAudienceType","filterSelectedOptions","renderTags","getTagProps","Chip","bottomFields","StyledNotificationForm","ConnectedNotificationForm","notificationTitle","notificationIcon","notificationText","wordWrap","IosNotificationPreview","notificationContent","notificationTime","notificationTimeIcon","iconBorder","InAppNotificationPreview","NotificationsPreview","iOSPreview","inAppPreview","UpdateNotificationScreen","fetchNotification","createNotification","updateNotification","updateErrorStatus","initData","transformNotification","initCommunityId","setFormData","leaveModalShown","setLeaveModalShown","handleModal","formRight","ImpactTotalPropType","ProfileActivityTotalsPropType","ActionTrophyPropType","BadgeTrophyPropType","MedalTrophyPropType","UpdateProfileScreen","profileLoading","profileErrors","profile","requestUser","updateResult","isPresentable","handleNameChange","formikHandleChange","isUpdateRequestSent","setUpdateRequestSent","FormLabel","ConnectedUpdateProfileScreen","infoTitle","infoDescription","editButton","profileImageContainer","profileName","profileHeadline","followContainer","impactTitle","ProfileStats","trophyContainer","medalMultiplier","multiplierText","TrophySection","hasMultiplier","hasBorder","ProfileTrophies","userTrophies","ProfileScreen","fetchSelectedUser","selectedUserProfile","selectedUserTrophies","fetchSelectedUserActivities","clearUserActivities","userActivitiesLoading","userActivityItems","currentUserId","handleSubmitReport","flagReportLoadingId","flagReportLoading","haveFetchedActivities","setHaveFetchedActivities","isSelf","handleEditClick","getProfile","ConnectedProfileScreen","profileId","userDetailsRequested","profileDescription","CommunityProfileScreen","requestCommunity","useParams","CommunityProfileActivityTotalsPropType","ConnectedCommunityProfileScreen","UpdateCommunityProfileScreen","ConnectedUpdateCommunityProfileScreen","createdDate","flaggedDate","ContentActionConfirmationModal","handleApprove","previewContainer","ImagePreviewFlaggedContent","DEFAULT_SORT_BY","FlaggedContentScreen","requestContent","requestActivityFlagExclude","requestActivityFlagIgnore","itemsById","isPreviewShown","setPreviewShown","previewedImage","setPreviewedImage","handleIconClick","approveButton","Check","deleteButton","isApproveShown","setApproveShown","itemsToApprove","setItemsToApprove","approvedIds","handleApproveClicked","approvedItem","isDeleteShown","setDeleteShown","itemsToDelete","setItemsToDelete","handleDelete","handleDeleteClicked","ConnectedFlaggedContentScreen","flagExcludeRequested","flagIgnoreRequested","translations","duplication","slackButton","largeRoot","compactRoot","compactIcon","compactMenuItem","largeDisplay","compactDisplay","disabledIcon","formControl","AdminSelect","renderMenuItemDecorators","selectDisplayProps","FormControl","FormHelperText","formControlProps","getSlackIntegrationLink","GoogleButton","divRef","google","accounts","initialize","renderButton","logoAlignment","pointerEvents","data-client_id","data-context","data-ux_mode","data-auto_prompt","data-type","data-shape","data-theme","data-text","data-size","data-logo_alignment","GoogleIntegration","requestOIDCIntegrationRemove","googleAuth","googleIntegrated","setGoogleIntegrated","domains","AdminSettingsScreen","setActionDuplicationCommunities","requestSlackIntegration","requestSlackIntegrationRemove","requestIntegrations","postChannel","slackIntegrated","setSlackIntegrated","languageOptions","languages","langCode","handleLanguageChange","changeLanguage","communityOptions","selectedCommunityIds","slackAuthorizationURL","authCredentials","creds","selectedCommunities","selectedCommunity","leftPane","leftPaneTitle","logoutBtnContainer","logoutBtn","searchBtn","rightPane","aboutContainer","linkContainer","emailField","fieldContainer","fieldBtnContainer","fieldBtnText","fieldBtn","EditEmailForm","initialFormValues","formDisabled","setFormDisabled","dirty","detailsContainer","subTextContainer","subText","viewButton","leaveButton","joinEligibility","onView","onJoin","onLeave","joinRequestLoading","leaveRequestLoading","StyledCommunityCard","CommunityList","joinedCommunities","otherCommunities","isSearch","com","objectOf","aboutSection","UserSettingsScreen","userEmail","clearUpdateErrors","requestUserEmailUpdate","loadingOtherCommunities","requestJoinCommunity","joinRequestErrors","clearJoinLeaveRequestErrors","requestLeaveCommunity","leaveRequestErrors","searchedCommunities","selectedCommunityId","setSelectedCommunityId","openDeleteModal","setOpenDeleteModal","openLeaveCommunityModal","setOpenLeaveCommunityModal","openJoinCommunityModal","setOpenJoinCommunityModal","setCommunities","editEmailFormInitValues","handleEditEmailFormSubmit","other","handleCancelLeaveCommunity","handleCancelJoinCommunity","handleDeleteAccountCancel","StyledUserSettingsScreen","userEmailUpdateRequested","deleteUserAccountRequested","joinCommunityRequested","unjoinCommunityRequested","communitySearchRequested","marginVertical","breadcrumbLink","breadcrumbText","TeamDetailsLeaderboard","requestLeaderboard","leaderboardItems","detail","canViewUserDetails","IconNotifications","IconVisibility","ConnectedTeamDetailsLeaderboard","teamLeaderboardRequested","TeamDetailsImpact","TeamDetailsScreen","requestTeamDetails","teamDetailsLoading","teamDetailsErrors","clearTeamActivities","requestActivities","breadcrumb","ConnectedTeamDetailsScreen","teamDetailsRequested","dateCell","SwapHoriz","communityButtonsCell","Clear","headerButtonLeft","uploadedFile","translateButtonTooltips","buttonCells","cellProps","summaryContent","details","detailsContent","detailsItem","arrowIcon","rotate","countText","parentInternalName","parent","onPermissionParentCheck","checkedPermissions","onPermissionCheck","parentPermission","getPermissionsBlock","perms","isParentChecked","newVal","onFocus","checkedList","getCheckedPermissionsCount","PERMISSIONS_LIST","setCheckedPermissions","organizations","setOrganizations","selectedOrganization","setSelectedOrganization","selectedRole","setSelectedRole","checkRoles","numChecked","possibleRoles","filterRole","filterRoles","permissionCheckHandler","isChecked","parentPermissionCheckHandler","newPermissions","setUserPermissionsForOrg","org","selectedUserPermissions","handleSelectedOrganization","getSortedCommunities","org1","org2","filteredPermissions","textValue","organizationName","availableOrganizations","onDelete","updateUserPermissions","currentUserPermissions","moveUserOrganization","searchPlaceholder","col","colProps","translateColumns","rawTableColumns","rawActiveButtonsCell","rawDeactivatedButtonsCell","permissionsEditorOpen","setPermissionsEditorOpen","permissionsEditorMember","setPermissionsEditorMember","switchOrganizationOpen","setSwitchOrganizationOpen","switchOrganizationUser","setSwitchOrganizationUser","switchOrganizationSelectedOrg","setSwitchOrganizationSelectedOrg","switchOrganizationConfirmationOpen","setSwitchOrganizationConfirmationOpen","communityButtons","handleClosePermissionsEditor","ids","foundItem","restItem","getDeleteItem","accumulatedOrgs","userPermission","getInviteUsersState","inviteUsers","getInviteUsersMessages","getInviteUsersErrors","getInviteUsersLoading","addButtonContainer","emailFields","addMoreLinkText","removable","removeButton","EmailInput","EmailField","requiredEmail","extraEmails","of","submitHandler","setSubmitting","nonEmptyEmails","Send","snackBarWrapper","modalBody","modalHeader","accessCode","onLinkClick","loadUrlFunc","UsersScreen","fetchMembers","activeMembersTable","deactivatedMembersTable","activeMembersTotalCount","deactivatedMembersTotalCount","isActiveMembersLoading","isDeactivatedMembersLoading","requestActivateUsers","requestDeactivateUsers","fetchPermissions","generateInviteLink","orgInviteLink","orgShareImageUrl","fetchOrgShareImageUrl","isInviteLinkLoading","isShareImageLoading","inviteLinkErrors","shareImageErrors","fetchCommunity","inviteUsersLoading","inviteUsersMessages","inviteUsersErrors","requestInvites","resetInvites","onConfirmUpload","bulkJoinResponse","bulkJoinErrors","isBulkJoinLoading","setSearchString","isInviteOpen","setInviteOpen","isManualOpen","setManualOpen","isUploadOpen","setUploadOpen","resetFuncHolder","setResetFuncHolder","setUploadedFile","fetchActive","fetchDeactivated","searchData","searchActive","searchDeactivated","handleManualSubmit","files","StyledUsersScreen","activateUsersRequested","deactivateUsersRequested","deleteUserRequested","permissionsAndRolesRequested","searchTerm","updateUserPermissionsRequested","moveUserOrganizationRequested","communityInviteLinkRequested","communityShareImageRequested","inviteUsersRequested","uploadCommunityFileRequested","descriptionsContainer","actionsTable","EditThemesScreen","themesUpdateRequested","includedActions","excludedActions","getActionsForThemes","isIncludedActionLoading","StyledEditThemesScreen","onBoardingContainer","verifyContainer","socialButtonsSection","middleSection","resendAlertSection","addressText","alertContainer","onBoardingSubtitle","resendText","logInTitle","onboardingSubmit","PROHIBITED_DOMAINS","formRow","selectBox","SignUpFormFields","showEmailField","showNameFields","showSSOField","employeeCountField","modifiedProps","SignUpForm","toggleChecked","toggleSubscribed","domain","isSSO","firstName","lastName","LinkText","onBoardingTitle","verifyTitle","verifyEmailIconBox","p1","p2","p3","Verification","errorContainer","OnBoarding","initialEmailFormValues","initialVerificationFormValues","onFormSubmit","onVerificationSubmit","onVerificationResend","emailAddress","toggleSSOEnabled","onSSOClick","SSOButtons","onEmailLogin","onMicrosoftLogin","onGoogleLogin","OnboardingScreen","sendEmailVerificationCode","verificationErrors","pendingApproveEmail","sendStripePlanId","populateForm","valid","clearVerificationMessages","attemptedCode","verify","setVerify","setCheckbox","unsubscribe","setUnsubscribe","utmParams","unsubscribe_from_emails","sendEmailForVerification","resetVerificationFun","StyledOnboardingScreen","isEmailVerified","retrieveStripePlanId","initialFormSubmit","initialFormPopulate","pictureColumn","mainContent","formContainer","skipLink","formLabel","onBoardingPassword","WelcomeForm","isSmall","showPassword","setShowPassword","toggleShowPassword","iconProps","InputAdornment","VisibilityOff","OnboardingPasswordScreen","isSessionLoading","onSignUp","fetchSubscriptionSession","sessionUrl","grid-item--height2","Hidden","only","StyledOnboardingPasswordScreen","tierCardContainer","packageType","packageDescription","calculatorContainer","packageFee","isPerUserPricing","period","features","packageUserCount","featureTitle","footerComponent","footerCardTitle","isPopular","greenHeader","popularText","doneIcon","upgradeButton","popularUpgradeButton","blue","green","featureRow","headerGap","endText","bottomRow","measurement","EstimateUnitContainer","PaymentPlanFooter","getIconData","participantsRow","participantsFieldContainer","participantsField","calculateButton","costDollars","digits","costSuffix","CostCalculator","monthlyRate","yearlyRate","minParticipants","maxParticipants","billYearly","setBillYearly","participants","setParticipants","cost","setCost","updateCost","currentParticipants","SubscriptionTierCard","tierInfo","upgradeButtonProps","tierActionLoading","setTierActionLoading","getPlan","plans","handleContactUs","pushState","handleUpgradeButtonClick","handleFreePlanClick","prettyFormat","UpgradeButton","actionHandler","TierAction","price","isInteger","rateText","renderPriceOrRelevantDetail","increment","userCountText","featuresHeader","feature","box","PaymentPlans","OnBoardingSubscriptionScreen","fetchSubscriptionTiers","subscriptionTiersLoading","subscriptionTierErrors","paymentUrl","isSubscriptionUrlFetching","billingSessionRequested","setBillingSessionRequested","handleUpgradeClick","viewableSubscriptionTiers","stripeProductId","currentSubscriptionAmount","StyledOnBoardingSubscriptionScreen","splitItem","scrollOption","challengeTypeSection","challengeTypeTitle","imageSection","typesSection","toggleButton","toggleButtonWrapper","actionIcon","actionsText","fontStyle","themeDescriptionText","ChallengeTypeSelection","onChallengeSelected","challengeTypes","onSkip","selectedChallengeType","setSelectedChallengeType","onSelectChallengeType","themeDescription","setupFormSection","formItemDescription","formToolTip","formButtonRow","formButtonRowInfoIcon","formChallengeType","formChallengeTypeButton","dateError","StartDateField","MaterialDatePicker","EndDateField","ChallengeForm","onFormDataChanged","datePickerStart","setDatePickerStart","coverPhoto","setCoverPhoto","OnboardingChallengeScreen","onChallengeTypeSubmit","creationErrors","isCreationLoading","challengeStep","setChallengeStep","setBackgroundImage","onCustomizeChallengeSubmit","setTheme","StyledOnboardingChallengeScreen","submitButton","StyledTopActionsScreen","isChallengeActionsLoading","fetchTopActions","challengeActions","fetchChallengeActions","sortingOptions","sortingOption","setSortingOption","loadActions","analyticsOptions","challengeOptions","handleSortingOptionChange","sortActionsByLogs","getChallengeTopActions","PaymentPlanScreen","currentSubscriptionName","fetchManagementUrl","managementUrl","managementSessionRequested","setManagementSessionRequested","getCurrentPlanPosition","isPaidTier","currentPlanPosition","fetchManagementSession","planName","StyledPaymentPlanScreen","subscriptionManagementLinkRequested","accountContainer","leftSectionContainer","planContainer","trialTextContainer","trialText","subBillTextContainer","subBillText","nextPaymentContainer","nextPayText","accountPlanProps","isFreeTier","clickable","billingSection","customerInfoContainer","customerName","customerAddress","nextBillingDate","headerSection","calcSection","calcRow","valueContainer","finalRow","paid","billingType","PaymentReceipt","receiptNumber","handlePrint","handleDownload","billingProps","PaymentSuccess","receiptProps","customerAddressFull","hostedInvoice","StyledAccountScreen","subscriptionVerificationRequested","billingHistoryContainer","formTitle","editBtnContainer","editBtn","editBtnIcon","accessContainer","websiteContainer","empCountContainer","photoLoaderContainer","CommunityInfoForm","handleCommunityImageUpload","resetUploadedImage","existingImage","handleImageUpload","editBtnText","methodContainer","PaymentMethod","existingPayMethod","handleAddPayMethod","expire","billingHistoryColumns","sortType","hideSortIcon","BillingHistory","fetchBillingRecords","billingData","billingHistoryColumn","headerObj","responseFormatter","preData","invoiceId","detailView","receiptUrl","pageCount","setPageCount","AccountScreen","canceled","existingCommunityImage","setExistingCommunityImage","newCommunityImage","setNewCommunityImage","communityFormInitialValues","handleCommunityInfoSubmit","CommunityInformationForm","contactEmail","ActivitiesScreen","areActivitiesLoading","fetchActivityData","getActivitiesForType","activityType","setActivityType","activityTypes","setActivityTypes","labelId","typeSelector","StyledActivitiesScreen","ViewActivityScreen","fetchActivity","fetchErrors","ssoButton","lineWidth","lineColor","Divider","SignInScreen","onLogin","userForm","typeError","provider","StyledSignInScreen","onLoginByMicrosoft","introText","communityCreateButton","errorLabel","multiEmailInput","enteredEmail","CreateCommunityForm","admins","adminsLoading","memberSearchString","setMemberSearchString","passwordChecked","is","clearTimeout","VisibilitySelector","isEditing","CommunitiesScreen","fetchCommunities","editCommunity","createErrors","createLoading","editErrors","editLoading","editResponse","fetchLoading","setSelectedCommunity","hasCommunities","creationModalOpen","setCreationModalOpen","handleCommunityModalOpen","submitFunc","CreateButton","CommunitiesInfoExplainer","PlayCircleFilled","navBarItems","gap","navBarContainer","navBarLogoContainer","navBarItemContainer","navBarItem","headerContentContainer","storeDescriptionContainer","storeDescriptionContainerInner","storeMockupContainer","storeMockup","appMockupContainer","featureContainer","featureContainerBackgroundContainer","featureContainerBackground","storeDescriptionTitle","storeDescriptionAppName","storeDescriptionText","footerLogo","downloadContainer","wpPath","route","NavBar","getAppDescription","HeaderContent","OAuthScreen","requestCodeExchange","OAuthOrganizationCreateScreen","setChecked","setSubscribed","ssoEnabled","setSSOEnabled","enableSSO","unauthedRedirect","queueDeepLink","metaDescription","getElementById","darkModeFavicon","matchMedia","appImage","appImageHorizontal","gSignIn","defer","OgMeta","Helmet","itemProp","property","user_hash","intercomHash","user_id","created_at","setupIntercomForUsers","campaign","unauthedRoutes","UserCreateScreen","ProfileCreateScreen","param","partialPath","PrivateRoute","PrivateMainRoute","WordpressScreen","OnBoardingScreen","PaymentSuccessScreen","Screen","Loading","LoadingScreen","LoadingProps","AppGate","ConnectedAppGate","ErrorBoundary","errorInfo","overrideMessage","fallbackMessage","errorList","_constructMessageFromError","sagaMiddleware","createSagaMiddleware","rootReducer","combineReducers","router","connectRouter","persistReducer","notificationsReducer","updateChalllengeReducer","inviteUsersReducer","middleware","routerMiddleware","createReduxStore","composeWithDevTools","applyMiddleware","persistor","persistStore","run","createStore","App","listen","scrollTo","firebase_screen","setupCookieYes","removeChild","has_opted_out_capturing","opt_in_capturing","getAnalytics","globalTheme","Provider","WebFont","typekit","families","ReactDOM"],"mappings":"uGAAAA,EAAOC,QAAU,s0K,oBCAjBD,EAAOC,QAAU,IAA0B,6C,kBCA3CD,EAAOC,QAAU,0qB,oBCAjBD,EAAOC,QAAU,IAA0B,yD,oBCA3CD,EAAOC,QAAU,IAA0B,iD,oBCA3CD,EAAOC,QAAU,IAA0B,mD,oBCA3CD,EAAOC,QAAU,IAA0B,+C,oBCA3CD,EAAOC,QAAU,IAA0B,yC,kBCA3CD,EAAOC,QAAU,0qE,oBCAjBD,EAAOC,QAAU,IAA0B,kC,oBCA3CD,EAAOC,QAAU,IAA0B,kC,oBCA3CD,EAAOC,QAAU,IAA0B,6C,082ECA3CD,EAAOC,QAAU,kqC,kBCAjBD,EAAOC,QAAU,8wB,kBCAjBD,EAAOC,QAAU,sqB,kBCAjBD,EAAOC,QAAU,siC,kBCAjBD,EAAOC,QAAU,8uC,8ECAjBD,EAAOC,QAAU,IAA0B,qC,oBCA3CD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,qC,oBCA3CD,EAAOC,QAAU,IAA0B,sC,oBCA3CD,EAAOC,QAAU,IAA0B,2C,kBCA3CD,EAAOC,QAAU,8zI,kBCAjBD,EAAOC,QAAU,k1M,kBCAjBD,EAAOC,QAAU,8nF,kBCAjBD,EAAOC,QAAU,krN,kBCAjBD,EAAOC,QAAU,k2L,kBCAjBD,EAAOC,QAAU,0sF,kBCAjBD,EAAOC,QAAU,0O,oBCAjBD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,oC,oBCA3CD,EAAOC,QAAU,IAA0B,+C,oBCA3CD,EAAOC,QAAU,IAA0B,kD,kBCA3CD,EAAOC,QAAU,szE,oBCAjBD,EAAOC,QAAU,IAA0B,8C,kBCA3CD,EAAOC,QAAU,sjG,kBCAjBD,EAAOC,QAAU,81E,kBCAjBD,EAAOC,QAAU,s1F,kBCAjBD,EAAOC,QAAU,8mB,kBCAjBD,EAAOC,QAAU,spI,kBCAjBD,EAAOC,QAAU,s0K,kBCAjBD,EAAOC,QAAU,kpO,kBCAjBD,EAAOC,QAAU,szD,kBCAjBD,EAAOC,QAAU,80N,kBCAjBD,EAAOC,QAAU,s8E,kBCAjBD,EAAOC,QAAU,s+J,kBCAjBD,EAAOC,QAAU,8lP,kBCAjBD,EAAOC,QAAU,siO,kBCAjBD,EAAOC,QAAU,ssO,oBCAjBD,EAAOC,QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,yC,oBCA3CD,EAAOC,QAAU,IAA0B,iD,oBCA3CD,EAAOC,QAAU,IAA0B,+C,oBCA3CD,EAAOC,QAAU,IAA0B,mC,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,qC,oBCA3CD,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,iD,oBCA3CD,EAAOC,QAAU,IAA0B,+C,oBCA3CD,EAAOC,QAAU,IAA0B,+C,kBCA3CD,EAAOC,QAAU,0Y,oBCAjBD,EAAOC,QAAU,IAA0B,iD,oBCA3CD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,IAA0B,yC,kBCA3CD,EAAOC,QAAU,snF,kBCAjBD,EAAOC,QAAU,88F,kBCAjBD,EAAOC,QAAU,ksB,oBCAjBD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,wC,kBCA3CD,EAAOC,QAAU,02L,oBCAjBD,EAAOC,QAAU,IAA0B,gC,kBCA3CD,EAAOC,QAAU,0tV,oBCAjBD,EAAOC,QAAU,IAA0B,iC,oBCA3CD,EAAOC,QAAU,IAA0B,iC,kBCA3CD,EAAOC,QAAU,stZ,oBCAjBD,EAAOC,QAAU,IAA0B,iC,kBCA3CD,EAAOC,QAAU,spW,kBCAjBD,EAAOC,QAAU,8xU,kBCAjBD,EAAOC,QAAU,ssV,oBCAjBD,EAAOC,QAAU,IAA0B,gC,oBCA3CD,EAAOC,QAAU,IAA0B,iC,oBCA3CD,EAAOC,QAAU,IAA0B,iC,kBCA3CD,EAAOC,QAAU,kzY,kBCAjBD,EAAOC,QAAU,kkM,oBCAjBD,EAAOC,QAAU,IAA0B,iC,kBCA3CD,EAAOC,QAAU,8yZ,kBCAjBD,EAAOC,QAAU,8wN,oBCAjBD,EAAOC,QAAU,IAA0B,iC,kBCA3CD,EAAOC,QAAU,smX,kBCAjBD,EAAOC,QAAU,s/O,oBCAjBD,EAAOC,QAAU,IAA0B,iC,oBCA3CD,EAAOC,QAAU,IAA0B,iC,kBCA3CD,EAAOC,QAAU,kyJ,kBCAjBD,EAAOC,QAAU,slI,oBCAjBD,EAAOC,QAAU,IAA0B,iC,kBCA3CD,EAAOC,QAAU,kjO,oBCAjBD,EAAOC,QAAU,IAA0B,iC,kBCA3CD,EAAOC,QAAU,8yJ,oBCAjBD,EAAOC,QAAU,IAA0B,mC,kBCA3CD,EAAOC,QAAU,knI,kBCAjBD,EAAOC,QAAU,8pK,kBCAjBD,EAAOC,QAAU,86I,oBCAjBD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,kD,oBCA3CD,EAAOC,QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,IAA0B,gD,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,mD,oBCA3CD,EAAOC,QAAU,IAA0B,mD,kBCA3CD,EAAOC,QAAU,kqF,kBCAjBD,EAAOC,QAAU,snF,kBCAjBD,EAAOC,QAAU,s+O,oBCAjBD,EAAOC,QAAU,IAA0B,kD,oBCA3CD,EAAOC,QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,gD,oBCA3CD,EAAOC,QAAU,IAA0B,kC,kBCA3CD,EAAOC,QAAU,kxH,kBCAjBD,EAAOC,QAAU,suG,kBCAjBD,EAAOC,QAAU,0wF,oBCAjBD,EAAOC,QAAU,IAA0B,4C,oBCA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","file":"static/js/main.8a36c7a5.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/base_impact_eco.06f9f605.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABHNCSVQICAgIfAhkiAAAAaFJREFUWEftmIFNwzAQRdsJYAPKBjAB7QYwAe0EZQNgAmACugF0AsoEdAM6QpkA/qtqKYoSYvucYiFbOiVqfOeXb9/Z6XCQeRtmzjcogNYZKgoWBa0KWP1TrsELwZzJjitQW90vZZtYUCsgMHPZTQ2szgPgo+wpFNQCONVgDx1gTaBX+nHtCxoLCBiqxbaZHBc+zjGATBXTam0o+doVJBRwrIBvXUE9n5NA5zLWZ2sLBfxUpJEngE+3lTpNYgEBOdk7f+lKCXn2GTWwD4CANrYmBV3ZSKnUb8yUntaEqwIC9LJXKlAEU/eNvE+7FKTgfiReXyHUrbngHpCZ45CIifuSzY3FG0DAUpWOWO7WRAFwIbuOjZzIjzXoKsZ7NSaAqWtbDDNF252CuGe3uicQgN8xEQ/gw8zOcgZEgx3gSsZhM8e2BjDV6aSXFwRwJKMGHfUygjGoK9R3inNrjNWH+7K6xZA1f10P6y85qe+BnCpQM4fp3n0WNG3SFMyp7FLGGfCQsJw7qSokLtfy75Y5cUK/ScwDhgYogKGK1fsXBf+9gj/DbDRG/lwhLQAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/bg_default-active-challange.c1131fc9.jpg\";","module.exports = __webpack_public_path__ + \"static/media/base_impact_fitness.1398ebe4.png\";","module.exports = __webpack_public_path__ + \"static/media/base_impact_nutrition.52174c6f.png\";","module.exports = __webpack_public_path__ + \"static/media/base_impact_civic.be755163.png\";","module.exports = __webpack_public_path__ + \"static/media/habits-icon.ab528f6a.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/logo.87b92bc2.png\";","module.exports = __webpack_public_path__ + \"static/media/logo.e685056e.png\";","module.exports = __webpack_public_path__ + \"static/media/welcome-profile.0562fa04.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABHNCSVQICAgIfAhkiAAAAx1JREFUWEftmI1t1EAQhZMKgApwKgAqwFQAVICpgKQCjgqACjAVQCqIUwFQQXwVABXA+6ydaG7xrvfsO3SRbqSRHd/uzNs3PzvK6cmBy+mB4zs5AlwaoTvL4H2d/I30o/TXUhYm9md9pRj8JqOPpU+k3/cMsJb9q+AHfxsyBvCTVjTSz+G5Z3yD+Vb6Kjxfe4cxQIAB8IeUk+07vIaFMHfSR1IAAngQD5BFN+FbFYED+NOw2R9w7jskXHsgescn6fRHemb+PcAP+khhbJxAfwPOWCUvdyEAga2X0q/OoPl6p28rvhtA0MPeOpzE9gCIBGZdHU64C4DY7aSw9Syy2+vvh1JY7A1gij3AASw+6RhI1sE0QhQAkJMX+vFLWAdIkybYocWdG0DYeyAlD01wCEByhfcpwUYVFvV6wsCUdFpAbgOQdxOK8yc2AIhRjMdthdx4HhzhcEoIl5eSW4pQ03MvpTBq0uqFtjMAPJe+l/rigElOQLspLYw5AAFkBUMEra01eiddLgDYSaHZL7D8uNB38rNE5gJcyfhbqc9zI+jSA/QhsU1xbuSAzgVYyyi5fttaghPsXQOKHIC9ynm3/POs2s8YhH6/voThXovGqtvYimuAcN8AcEAqxbFJpxfCPpbovlpLgPk1gByr7iSGOQA52b1tkYX16wTzWYBUEQ79yaZC3Go93X4bAVwjJTpeUiGmi6zvRJFYvh1sm8k1asL/z5SbiOvcNmPTe7JRV3KYu+pKx/45AGv5pgdmrzoI6UOhcAoT20wK+GkjVRi+ulPVGu+1aSm+ECiQ39LK+lxq3LL8LB232oCg0ZO9ObHrNO7B7OUi2Bi3Kn0gzDDp201usJzwn/05Nwjb6Mea24EVayspl7afavhuJ92mYKbA221UPPJjkIYJgyQ7LNrow2/QXofnlPOS31st6qQ8TSq9UNGkHe+D//iuBQjxhy0S14MscTx3DeRQMIR1I4JjwwCnYprlyeL/IZACOfFEk/z3m025pT1wySHqwF5czYPNMQb5DuXcMLSffYc56ysFcAkjO917BLiUziODSxn8Czop38aUbsCvAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABHNCSVQICAgIfAhkiAAAAe1JREFUWEftloFNwzAQRdsJYANgAmACygZsAEwATEA6ATABYQLoBJQJKBNAN2AD+A/lUGnt2I4bCFIsndIq9t3z9905w0HHx7DjfIMeMPeEegV7BXMVyF3/Wzl4LtBj2V4FPNPzWnYX2kDbgJsCeFwAW+YB9FD27gONATzS4jPZqHIy1XMs4xkaAOwGJjFnvylgWR2Naz2QRU1wjvUqtIPq/amexFoZdQqi3H0gAMfjUzJGPXPvVbEOkMAHAcAnvR955nxEqmfTnCx1gLEBfD5i1/8ZYMoRv4jSWtAP4XOPeCJv5KprdL5IgI5R0aseDkJ9kG5PD3SNUJthDY2aYvP1QuAosqxGjYNCZhVN5fKfwLHjRBM5cgMFjM2XIQchBUPrW3//rwC3JcdllRP8jh2LeUTOkbNUtrNt1DiloB5kN7LvnDQFccZXBwFSxrwCwSF5xt2b6mM5Hr4uZCUvAESt54aO7S4G7jZlZxFzvz4gAISUj8nUYfcwir023GBdTJTcAfBNtpVKp/n2iVToN7nbxhgDmHqpG4gdb8xt0RR+BuBUFvqscgWwAmu6wShoglDBdPVUSAMkVzaioqVPmq+jUbeeg+n7Wl3BCdCcmxSbKz79tZQV61BwHRv0+ugBc+XtFewVzFUgd33nc/ATCSVT552V71UAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABHNCSVQICAgIfAhkiAAAAZ5JREFUWEftl4FNAkEQRaECKQErUCrwrEA78OhAKwArACvg6EAq8DoAKhArECrQ/8leQi5c2D+DcUNukwmXy8zO2/m3zG63k/joJs7XaQG9CrUV/K8KZkj8ISa/h38pxpg3yRKJbsVkK/gPxBgTYI4kMzVR8B/it1BiLZvkEwn6SpID3w2er5XYCpByjWCPSvAf+r5j7lfYioCE4zeV4hgQsITdpUgHpgUBf84AtwsL5U7loCoZ7Mo7txdwDYDnAHeMhZBT2I0V1AP4FuBichdweopxrPtYAeeYKBcTmiAtgJRV7SLVWviNSnJbAE09NRDym5R6uAr4hQR9Udq6+1bZ3SrgApN7uw27xEPsIlVAtp9x7OQNfoxnW40aFweYvMQb6CIdl47o+I13vSh94aRKzHmT/pshoOnoHiomXxUsFWSuAsbjuzJ4TciVAPpaAVVIE5wXsJL7BQ9lQ2UyvJ/ArL3bVcFDJrYvQtYPrNG7tUl6Siy1HvUbcvrvj/zJX5q4SEKOYdFN3FmZU+HsWOTZXzuTHi2gV562ghdfwV8ekk3XQWYfCQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABHNCSVQICAgIfAhkiAAAAr5JREFUWEfFmIFx1EAMRUkFkApyqQCogKMCkgqACoAKOCoIHRAqSKiAowKgAo4KIBUkejPWzKLReiXZQzTjydlef7+VtFo5Rw/Wsyci9XWSey5/f6whfbSGiGgo3KNJ76/8fSrHYan+GoBA4TkgW8ODeBLYsq0BCNy2Q3At18/LdPLgUsCdaLwfALyT+x+rkEsA8ZouitH7ycfSoqkCknff5diMyKb7wAGZtiogIXuTfNsHGU9KpKwCmAmthTmVC4cMYQWQ0NqSEn3nXgZSesKWBXwryhdhdX8gZYfyE7IMIAvjlxy6W4Re4AwixIQ6ZBnAnSiOap596Y1cYAWTEg+bm6/l92WEMApY8d4XAXglh251AL2coMJejAJWcu+4gVNnAaueDHkxCkjubSIhGXhoL/efTWNCxTsCSJg+JeB0qPWglyaUHKC7FgGkJLwoAPJiSgphBY7yxGRb++xc+2fACBDhPwW49pGDnGw6GsDj6bIHmXElvJk5zRbukQer4fUAqYlYWw85nw3zCJDwLt05gGib1jM5v2pmQAp0d5Y5QPKG8rLUvonA1ojYdq3b5cwB2plWQb0+EOC2G++WmznAnYhk915vEmx5TLY1C9htZv8HoBdiW77uFRDPeY64bVx6r4CeB+0CLAFWOhgvB72uxS7A7rfzXA7SZPL9scQ876F3KYf2hpx3v5tHhbrt3yqg3jZmw/tbhLnm2gjQzjQL6YVuJyJt+Vq01dnZZgEPU/i07ffSpruL9Ja/haj8F6HVAI6mg9pnC3Z39arAKMSMQ3gvx+Os+wbjf8r9rRzq3VIO6kOEmm8I2ypVmWm9CDcpMGsRD6oAgoTqZCQ6uM+qJdRMeGgZQMQIN5D6ZTZ8gRlAXQRuNqztM1lAfXYrP1g80bwk39iZ9tkZVQHbsAOLV/CuAgOkqxeoUDg9+DvVyYQpwTSH/wAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABHNCSVQICAgIfAhkiAAAA1ZJREFUWEfNmItx1EAMhi8VQAccFQAVcHQQKsCpAKgAUwGhAo4KCBXgVBCoAFMB0AH6MiuPbm9XK+9lmGhmxz57Jf16r+9sc8/p7J7j29wFwKdi5I1j6CTv3sr63uOMXoAPRdm5rH1SyvVVA8CzHpC9AEdR9loWSmdZAOb6wAHJ+8drvdgDcCtKfiZFV3J9me4B/a4BgFBfrgHZA/BLCq/qeSE3U/qBlx45AP4kL3IN0VqAO5H6LZNM8hNqqPQ+B/JZHgyySAvS5KOsKuC1AKlWqjanC3mwTw8nuT5vuGeU928SSPJyru1fAxCBHyqCbOi2skdztIFzc528Xt0XBUg4UMq1Ru/lBZ6BKATC1yLr+eLeKMCIQgsw0nb+CiK87RZMBGAkZCVln0T54LhQi8X1chQgQrCUAkFpPjVsqNgDuFIxWTC2PVVBRgCWmAEJCOhHBiaSDr9SeOEnHU5uMwgh1HbgT/KbdlLzBB6Eh6veP5F70mFnZGHQWAOZexAgCMmFa/Xapnwu+1hD8mTPBQPoDtV8tAC9PmeV23xDwdyDTHgwmqmkuVo87ViAMACyNfCtF6PYNDLkK/ekBmHFQKVJbkiXAyoVyS5Z5il3x1OFEQCtEcjJ6MrylwDidkB6xIDH22soYvgsAjF+oRxgRAjMR4KCSPeyr3XythPp6JuEitoGlR2FI8AXGYH0RD2pHwCMVPFXYdYk5542s5ZGYWgV4tJ2bIh/J+U1hTRYWgLhJRUAepDQFUaM4GRjKxQZ3skbUbeFqABRmJ+Uc30HuRF0GwYhF2O6xmoUILMTZeRHlADFCXybGE4CiBDvFKzTA5DeR7qdBpF25Rl7O+OtVXt5UGoB1/KcFIA8pTYFWmfBVhSWArQA8SJjLP/4Vq8M8k6PWLkCmwLevhYwfb9MqjwvRtlhW4CWe55PuSLr5VY3aIF0GzXMsyxagD3G58A9gBSS9xeIB/Do06FUWfQt/j1QSwg9hYEXa4RROkMjDb8mR4txeV8r/b3sIJeg/K+OiHD4WzPXi0IToG7YyU2rgeteQktroNDw9iSL03mLKDAMGksbu5pnS2N6nx8MunR1MQUBso3Gjicpmi5dXUwrALJ1kHWZwr6StdOq1VpOYPgfHjwB3mbzD+6Yqyn3vQO8AAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/favicon.a3c45385.ico\";","module.exports = __webpack_public_path__ + \"static/media/breakfast.910bb34b.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/camera.55516532.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/burgers.40c2a6fb.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/mobile_screen.fa9f5c0b.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAG1BMVEX///8hlvNMr1D0Qzb/wQchlvNMr1D0Qzb/wQeEAjjfAAAABXRSTlMAuLi4uDhG0GIAAAApSURBVCjPYzAvB4MCtjQwSGIoRxVIG94ChEEoBARwdEDA8BYQRRVoAQCwVsDVcqBKigAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/okta_btn_icon.f70c74df.png\";","module.exports = __webpack_public_path__ + \"static/media/loader.e80b33ff.gif\";","module.exports = __webpack_public_path__ + \"static/media/ios_notifications.70eba576.png\";","module.exports = __webpack_public_path__ + \"static/media/notification_wrapper.45163501.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/bg_signup_invite.78ae5cd3.jpg\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAflBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCtoPsAAAAKnRSTlMAAyhCCzcaPwQrDTgcQAUtDzoBH0EGMBE8IggyDj0VBz4xCRg1HSMCOSdD6TtAAAAAxklEQVR42u3UyQqCAACE4alpN9PMsj1t7/1fsIOEQRBCziXmPw98t4FzzjnnXrXa/AgN1ulSCvT6VAKDIakERgGlwDikEphEpBKIp1QCySylEpgvSCWQLakEklXK34Dv0/WGVALbHbXAYCkGsFcDiNTAIRcD6KkBFGrgGLIqPzUPYFYNijUEQHJmWXgBFABG5R2dOxABuJJMVwlkwC3gPQbqAqwZqrJHCxqgyoABA38CNH12BgwYMGDgLdTPgApwzjnnnGu0J49bHVAjJe6mAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAACXBIWXMAAA9gAAAPYAF6eEWNAAAFBklEQVRogd2aTWhjVRTHf2nT9CNMWxiirmxAZdw4E4VkI9JAghuFyUAwi6qTWkRwY6mgmI1x06VGV4JKM7iKFCe4cNVg4sJFC9rsLOMiUxTFzHSamaZ1Ytq4yH1t+vKS3vveS1vzh9CXm3c+/r33nnfuecfRaDToZwyctQO9Rt8TdPZCaTkc8AJBQPuLuJ4S10VgW3zWxSfvWVndttsXh117sBwO+IA4EOGIiCoKQBrI2kXWMsFyOBAEksC0Df5oqABZIOlZWS1ZUWSaoJixFPYS06MCpDwrq0mzCkwRLIcDSeBDs0ZNoAjEPSur66qCSgTL4cAkkAeuqBqyCbOeldW0ioD0Y0IsyRJnRw5gqRwOzKsISBEU5PLAhAmn7ESRZpSVxolLVDzT1jkf5IKqj4+uMyj2XJb/KTk4OZNJYW3PVWgubS1b0Rz0cZTlnKTfNDnoskTL4UAEuGlGKSIjkYl4YgvEgXnaV4olctCBoFia66inXBVgXjWUt9hMA1fFkGVy0IHgVuzy5/t3R95S1GWLQ+VwIE5zNi3rAgOC9Zxrsl668PvOt1534+GgrJ4bnpXVuFVnegGjKBp3eh+4x+c2GHxkT0ZH8bySgw4EAQYmaozPbeB6ZqubfIWj8965xDGC9ZzLhy5su1/exP3SJo7hfSP5+V4cUu2EfgaDRje5Lm9xYeY3BiZqrcMFM9HytKEnGOl04+Cje4y/scHQUxVtKN0rp+zEsShaz7m2kUjLHhYv7rkX/hxTNRZarHoRe7xHyOcS7nzrwGGqVs+5JpHMOYev3P3GpANeentQ1s6rh2hdoj4FRcon61NCGwezddHzSrAN/Vb49eoH+o1g2+Gg3wi2wSzBSVu9sA9F/UArQZWUSyXinibaOBwSdIZq0pGx2nC+apdHvYa+JlNEogbzxe7TT2QyUe9abLmkaK8EfKQoA/LJQV4/oCeYpwvBvw5Gee9+gFv1CWi+cIlLGgYgl3CXhJw0QotVH/IES/oBfZDJd5L85d+LvHYvqJEDuO7PRL2Shq0grnBv2zY7RtAZqmVpHmKP4avdS7xdeZ6dxpD+p5SCcWWEFquTyBOs5BLu7gQFstrFTmOI9+8H+HL3UielV/2ZqNK7AkUkkS86Z40GjQimAG7Vx3l9e5ofa4+dpPgTfyYal3RCGqHFahx4R0HEkKBh2fCz73w/3/xn6lmDJdkNs2ux5bSKQCcIcksKIrdzCbfX6AfDTObrvScXFMkBLPkz0ZQ/E7WU5QQ/LqZQIwddInPH0r0/E02htkQ03AaSqrPpz0QjQMpxMDo1cmeGoQcvSNvrNHvQnaDZ8v2hYZr7IrsWW8530O+jWQdq68xwVV5k5M6MjJ1ruYTbcP/BCe8H/ZloEPhBxookCjQTdak3VoO1xxn74wMcBx3LP4Vcwh3spqPraUL852dlnJHENAqv4/Zdm+xMLVAf/dXo5wpdqoAapJoQ/JloGrgu61gvMHwvwvDWNe1rBQgaPdj1kO6yOA8kndXnGP37TRwHY133XSuU2kjEA101hNuHxmB1qBp45ae5d7+XFVFuBBKBJ4356GoWRSC+FltWqugplyxE4PEBN1RlLeBTIKhKDiw244nZTNK7frUCMG+GmAZb2in9maiP5mvnCNZbTrROw5QVYhps6xfVIFKuIHItIhoKiKbYtdiyVHSUhe0E9RCz2ykBL5mo6yih5wTPGn1f2f4PjVbEaZ5RYjQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK4AAAA6CAYAAAAp+2K7AAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAArqADAAQAAAABAAAAOgAAAABetvyUAAAWKUlEQVR4Ae2dB3gVRdfHTxKKGIUg2EAhwY5SFMGKog/wioqAimJB0M/up4hiea2IBewg2EAFFMVXil3xFTUCAoIoNoq0UAQEIaEklJR5z29glr2beyG5CZjAnufZu7uzs7Ozs/898z9nzuxNkBjyzjvvdDHGtEhISEjVdWNdp8TIGiaHLVBqLaBYm65Yy9IlXQsdetlll2VEKzwhmAhgNa1ndnZ26syZM2XhwoWycuVK+fvvv4NZw/2wBUq9BerWrSv777+/HH300ZKamkr5HyiIuwcBHAHct99+e7Bm6jpq1CgZM2aMKHhLvWJhgWELFLUF6tevL1deeaUomLP0nLOuuOKK6YXOBbSDBg0ymsnowXAJ26DMYOCGG24wis9MXRpHAFcTuipFCEEbgrXMgDWoPAGvYnSBA24iG0oPHoYewGdDCVugLLbAsGHDoK6pCt7bqV8i2pYEOK1fkpKS/LvhdtgCu6wFEhMT4bUR18Pe2orRbhxIVG3bAu9B0BDLz8+PODHcCVtgV7VAQUFB1N7/hx9+oAqpw4cPT4UqpIYUYVc9kvA6JWkBH05TE9Xh2wg/bShhC5SHFsjIyBDVyC2gCikhcMvDIwvrSAvk5OTYhrBehbBJwhYoby0QAre8PbGwvrYFSgTcai0bSq37z5OqLY+RpOTKZapJlQJJp06dBEt09erVsmjRIunVq5fsu+++tp7dunWTX3/9NWI588wzI/bd8dNOO827t5NOOkk++OADuz9+/PhC+Zs2berlZeOII46QN954Q9asWSNZWVny+eefy6mnnurlmTBhgrz11ltSqVIlL23ixIly4IEHevvhRuEWqFA4qWgplQ6qI/m9XpeclP9IQudj5JAlm2TlTSMkZ87yohWwk3M98MADcv/990uPHj1EndZy2GGH2fVXX30l3377rdSqVUtmzJghb775pleT33//Xe699167r/5tefDBB2X+/Pnyxx9/eHkA/uGHH273eREOOuggW8bdd99tyyO/kypVqljf419//WWDRnJzc6VPnz4yduxY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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXgAAAQ4CAYAAAAD/cdtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF92lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDg4LCAyMDIwLzA3LzEwLTIyOjA2OjUzICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjIuMCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjEtMDgtMTdUMTU6MzA6MDMrMDU6MzAiIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTA5LTA2VDAwOjIyOjE0KzA1OjMwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIxLTA5LTA2VDAwOjIyOjE0KzA1OjMwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjE1MzIyYTczLWRhMjctNDAxYi1hNGQ0LTViNTQ0OGQzZjI4YyIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjlkY2Q0N2FhLTVmNjUtNjU0OC1iOTA1LTE4NGZjYTI1ZWUxYSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmE4ZGNjMDk1LWU0NDMtNDA1MS05YzNkLWMwOWZhMGVjY2MxYyI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YThkY2MwOTUtZTQ0My00MDUxLTljM2QtYzA5ZmEwZWNjYzFjIiBzdEV2dDp3aGVuPSIyMDIxLTA4LTE3VDE1OjMwOjAzKzA1OjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjIuMCAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MTUzMjJhNzMtZGEyNy00MDFiLWE0ZDQtNWI1NDQ4ZDNmMjhjIiBzdEV2dDp3aGVuPSIyMDIxLTA5LTA2VDAwOjIyOjE0KzA1OjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjIuMCAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6OaKZeAAAOuElEQVR42u3azW5UdRzH4f/MOdPO9BXogIQVwaRR98KmGt2wdWEkDa1chIvGSmIgQNBwFTYQGgkJS1yQKOUeSMAiJJq0aUvnxenMdObM8QYUcDGFOfM8l/BdfPLP75xcmqYBgOzJmwBA4AEQeAAEHgCBB0DgAQTeBAACD4DAAyDwAAg8AAIPIPAmABB4AAQeAIEHQOABEHgAgTcBgMADIPAACDwAAg+AwAMIvAkABB4AgQdA4AEQeAAEHkDgTQAg8AAIPAACD4DAAyDw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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAX4AAAQ4CAYAAAAO47cqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF92lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDg4LCAyMDIwLzA3LzEwLTIyOjA2OjUzICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjIuMCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjEtMDgtMTdUMTU6MzA6MDMrMDU6MzAiIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTA5LTA2VDAwOjIxOjUxKzA1OjMwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIxLTA5LTA2VDAwOjIxOjUxKzA1OjMwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJkYWEyMGI4LWM5ZTktNDVkMi04NjRiLTQ5NjFhNTJmNTk1MiIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjg2NWIxNTk5LWE4ZmQtMjM0ZS04ZDBmLTUyYmI1Y2ZiNWVmZCIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjcwMjQzYmU0LTE3ODUtNGMzZi1iMTNjLTFkNzMwNjllZGZmYSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NzAyNDNiZTQtMTc4NS00YzNmLWIxM2MtMWQ3MzA2OWVkZmZhIiBzdEV2dDp3aGVuPSIyMDIxLTA4LTE3VDE1OjMwOjAzKzA1OjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjIuMCAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MmRhYTIwYjgtYzllOS00NWQyLTg2NGItNDk2MWE1MmY1OTUyIiBzdEV2dDp3aGVuPSIyMDIxLTA5LTA2VDAwOjIxOjUxKzA1OjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjIuMCAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6D17h0AAAPL0lEQVR42u3dz0+bdQDH8T7tU2mBFhiVkXkxLBL15sV5QKMXrh6MhgzmH7EDEUkWFyRz2V8hgQQ1Jh63gzGKN++aqGzZbWQwWiprS/v0EUw0MfHnTMx4vq/XhROHfr5P3jz5cmiUpmkOgHDkTQAg/AAIPwDCD4DwAyD8AAg/AMIPgPADIPwACD8Awg+A8AMg/ADCD4DwAyD8AAg/AMIPgPADIPwACD8Awg+A8AMg/AAIPwDCD4DwAwg/AMIPgPADIPwACD8Awg+A8AMg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\"","module.exports = __webpack_public_path__ + \"static/media/bg_on_boarding1.8c72ce10.png\";","module.exports = __webpack_public_path__ + \"static/media/bg_on_boarding2.061de301.png\";","module.exports = __webpack_public_path__ + \"static/media/login-bkgd-1.7b5c1669.png\";","module.exports = __webpack_public_path__ + \"static/media/login-bkgd-2.24dc3719.png\";","module.exports = __webpack_public_path__ + \"static/media/bg_welcome.f1665a3c.png\";","module.exports = __webpack_public_path__ + \"static/media/bg_community.83b6660b.png\";","module.exports = __webpack_public_path__ + \"static/media/sustainability-2.66970fd1.png\";","module.exports = __webpack_public_path__ + \"static/media/fitness-2.dfd50dfd.png\";","module.exports = __webpack_public_path__ + \"static/media/nutrition-2.7ed60194.png\";","module.exports = __webpack_public_path__ + \"static/media/diversity_inclusion.5731f645.jpg\";","module.exports = __webpack_public_path__ + \"static/media/remote_engagement.45194b2d.jpg\";","module.exports = __webpack_public_path__ + \"static/media/civic.ec304491.jpg\";","module.exports = __webpack_public_path__ + \"static/media/sustainability.852f31fe.png\";","module.exports = __webpack_public_path__ + \"static/media/fitness.66c7cd92.png\";","module.exports = __webpack_public_path__ + \"static/media/nutrition.87f30923.png\";","module.exports = __webpack_public_path__ + \"static/media/bg_invite_screen.9c231e0e.png\";","module.exports = __webpack_public_path__ + \"static/media/challenge_customize.d1311472.png\";","module.exports = __webpack_public_path__ + \"static/media/base_impact_waste.e9af3141.png\";","module.exports = __webpack_public_path__ + \"static/media/base_impact_water.15699bad.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE4AAABOCAYAAACOqiAdAAAA2UlEQVR4Ae3cQarCMBRA0fj5C9H9b8qdaJ0bI9cOtJwDHbUQuARK+qDjtnYeC49nbp/7qXX+BolwkXCRcJFw0enxhnh6YzMYsz52XPS/XZfBK/oAABzIafZhbztxXQdj2sdZ9TVn1Z0JFwkXCRcJFwkXCRcJFwkXCRcJFwkXCRcJFwkXmeSv6QMAcCAm+Qsm+ZFJ/s6Ei4SLhIuEi4SLhIuEi4SLhIuEi4SLhIuEi4SLTPLX9AEAOBCT/AWT/Mgkf2fTcHv/N/cNX7nO7Bk7LhIuEi4SLhIuugNqbaqSVF9iVQAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/sustainability-icon.ca9652f6.svg\";","module.exports = __webpack_public_path__ + \"static/media/civic-icon.dfacf35a.svg\";","module.exports = __webpack_public_path__ + \"static/media/competitive-icon.4ec4c512.svg\";","module.exports = __webpack_public_path__ + \"static/media/days-icon.ed186c58.svg\";","module.exports = __webpack_public_path__ + \"static/media/diversity-icon.4655faa1.svg\";","module.exports = __webpack_public_path__ + \"static/media/fitness-icon.59e06734.svg\";","module.exports = __webpack_public_path__ + \"static/media/individual-icon.cddaa001.svg\";","module.exports = __webpack_public_path__ + \"static/media/nutrition-icons.342efe46.svg\";","module.exports = __webpack_public_path__ + \"static/media/remote-icon.b5c9741b.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAACXBIWXMAAA9gAAAPYAF6eEWNAAABrklEQVRoge2asXHCMBRAn3P0yQZhgzCA7wITJLWbuFObEcgEoXUHjepkgrjwALAB2QBPQAocInLYRIdl8R29hpO/kP47JNsSirbbLX3myncCrum94MAsxEk2AqbAg5dszuMTmBdaTc2L0fccjJPsBlgD111n1jIvpqQ5REfIlwNIzUIf5+CtWeij4AFBUDq9FxycrtI5JbAENtXn2IhZ3+kvSXABzAqtlk2V4iTLgfu/NnoJgivgsdBq7aJx34IrYFxotXHVgc+bTIljOfAr+OxaDvwJloVW8y468jUH305ViJMsBYZHQseu1eJLcF0XqJZtOXDXRke+hmjeEJvRkhxc5qvaU5uNXaJgqwRB6QRB6bh8Dk4KrXLbLxVaRU1x2+WSxF9waFNZouDt6So/iBKsXuOsECXIbk/GCmmC1ri8i47iJKuLLesWu3GSjRvaTG2TcCn42hCbUL+i+Ggzid4P0SAonSAonSAonSAonSAonSAonSAonX8l6Pzv5I54Nwt7wep8yqLzdNqlZHegd8/BlkWhVRon2Qyw3p6zpOmwz+Scdn/v9UTh1L1wvgDUP1lRdX9quAAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/warning-icon.2ee9df1d.svg\";","module.exports = __webpack_public_path__ + \"static/media/close-icon.2c5552a1.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/ae.16599e39.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/avi.ef6f1fa7.png\";","module.exports = __webpack_public_path__ + \"static/media/css.fa811f6b.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAXYAAAF2ABPHxl7AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAACWISURBVHja7d37b173fdhxt83WYk2zdVuAFtuQDkWLdRgKbKibNE3itM3guUtbr+2yrluQLU27AF2yNeuy+BLXrtPUTlzHqRN7qY3EcS1LskSJpEiZulAXipQoXkRSvIp3ih72Z5zx8zjSfNGFz3PO9zyX8/rhhQABxOc5x89zzvs553u+3zuyLLujU93z3H+9cMd9P5cBdLp9w/3/Z3ll5Z2dfEynWHcIAID2d+TCYDa/uPh/RQACQAAAFfLymd5sZnZWBCAABABQJS+d6akFgAhAAAgAoKIBIAIQAAIAqGgAiAAEgAMDUNEAEAEIAICKBoAIQAAAVDQARAACAKCiASACEAAAFQ0AEYAAAKhoAIgABABARQNABCAAACoaACIAAQBQ0QAQAQJAAABUNABEgAAQAAAVDQARIAAEAEBFA0AECAABAFDRABABAkAAAFQ0AESAABAAABUNABEgAAQAQEUDQAQIAAEAUNEAEAECQAAAVDQARIAAEAAAFQ0AESAABABARQNABAgAAQBQ0QAQAQJAAABUNABEgAAQAAAVDQARIAAEAEBFA0AECAABAFDRABABAkAAAFQ0AESAABAAABUNABEgAAQAQEUDQAQIAAEAUNEAEAECQAAAVDQARIAAEAAAFQ0AESAABABARQNABAgAAQBQ0QAQAQJAAABUNABEgAAQAAAVDQARIAAEAEBFA0AECIBSfe7QE72//u3/ngF0uv7RUy0fACJAAJTmtddee2xHBtDpdk6sbREAIkAACACAigaACBAAAgCgogEgAgSAAACoaACIAAEgAAAqGgAiQAAIAICKBoAIEAACAKCiASACBIAAAKhoAIgAASAAACoaACJAAAgAgIoGgAgQAAIAoKIBIAIEgAAAqGgAiAABIAAAKhoAIkAACACAigaACBAAAgCgogEgAgSAAACoaACIAAEgAAAqGgAiQAAIAICKBoAIEAACAKCiASACBIAAAKhoAIgAASAAAAFQ0QAQAQJAAAACoKIBIAIEgAAABIAIEAECQAAAAkAEIAAABIAIQAAACAAR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H/5wNnFlRgAIAAEgAASAAKAsW9tXs5998t/lOtB+Z/hwNjw/nv3gg+9v+G986JlPJV0nQAAIAASAABAAvMH9vU/nOsj+q+f+8Prf+nz313L9rUePfksACAABIAAEgAAgtXNzY9kPfbHxX+0//NAHsrGl6et/b2NrM9dAwngvp2dHBYAAEAACQAAIAFKJy+3ve/oTuQ6wD91gprWuseO1Z/wb/ZtxO2Lz6pYAEAACQAAIAAFACn8+8Hyug+s//Yvfro0fuNHf/vd//YVcfzueSBAAAkAACAABIAAo2PjSTPYjf/KhXLP49U4O3vTvz60uZX/vT3+54b//A/f/fNYzMSgABIAAEAACQABQpF/535/OdWD9+J4Hb/saXx98KddrvOexj2ZXNlYFgAAQAAJAAAgAivCNUy/nOqi++9GP7Hr63l/85idzvdbv/vX9AkAACAABIAAEAHnNrCxkf/eRX851UH361J66njL4mw/+Qq7Xe2G4WwAIAAEgAASAACCPe7/9R7kOqB/Y+UVf72v+j8N/kes1//6f/kotXASAABAAAkAACAAaEL+k8xxM45f80M4v+npfN+YG+MnHfyPXa9/9V38oAASAABAAAkAAUK/F9eXsx750d66D6ecOPdHw6x+4OJD7YP7EiRcEgAAQAAJAAAgA6vEfX3og14H0Hz/+67XlgvO8h4999/O53sM7H/pgdn5hUgAIAAEgAASAAGC3v77zzMwX9l7oz/0+ZlcXsx995JdyvY87//Lj2dXtbQEgAASAABAAAoBbWd1cz37isV/LdRCNgYNFvZ8nT76Y+6D+hZ6nBIAAEAACQAAIAG7l0698KdcB9F0P37VzUpkr9D39wjf+U6739I4H3psNTA0JAAEgAASAABAA3Mzw/Hh2Zna0YZNXLicZkJjnPYXplXkBIAAEgAAQAAIABIAAEAACQAAIABAAAkAACAABIADg2oDIWAK5k8U21rNPjk2f6+j98eJIj8++ABAAAgAAASAABAAAAkAACAAABIAAEAAACAABIAAAEAACQAAAIAAEgA8xAAJAAACAABAAACAABAAACAABAIAAEAACgEL96vOfyX7kTz7UsR7uf7au/TG9PNfR+yPENtazT2IfdvL+iO+AY4EAEAACoHLueub3O3qlt1jJrp79MbVzcuz81QDrC4COXw3wGasBCgABIAAEgAAQAAIAASAABIAAEAACQAAgAASAABAAAkAACAAEgAAQAAJAAAgAAYAAEAACQAAIAAEgABAAAkAACAABIAAEAAJAAPgACwABIAAEAAJAACAABIAAEAAIAAGAABAAAkAAIAAEAAJAAAgAAYAAEAAIAAEgAASAABAAAgABIAAEgAAQAAJAACAABIAAEAACQAAIAASAABAAAkAACAABgAAQAAJAAAgAASAAEAACQAAIAAEgAAQAAkAACAABIAAEgAAQAAJAAAgABIAAEAACQAAIAAGAABAAAkAACAABIAAQAAJAAAgAASAABAACQAAIAAEgAASAAEAACAABIAAEgAAQAAgAASAABIAAEAACAAEgAGgp82tLtRNCp1reWK1rf1zdvtrR+yPENtazT2IfdvL+iO+AY4EAEAACAAABIAAEAAACQAAIAAAEgAAQAAAIAAEgAAAQAAJAAAAgAASADzEAAkAAAIAAEAAAIAAEAAAIAAFAQidmhrMDFwc61sXFqbr2x8bWZkfvjxDbWM8+iX3YyfsjvgOOBQJAAAiAyrnrWYsBvdHU8mwFFgOarWufdPxiQM9aDEgACAABIAAEgAAQAAgAASAABIAAEAACAAEgAASAABAAAkAAIAAEgAAQAAJAAAgABIAAEAACQAAIAAGAABAAAkAACAABIAAQAALAB1gACAABIAAQAAIAASAABIAAQAAIAASAABAAAgABIAAQAAJAAAgABIAAQAAIAAEgAASAABAACAABIAAEgAAQAAIAASAABIAAEAACQAAgAASAABAAAkAACAAEgAAQAAJAAAgAAYAAEAACQAAIAAEgABAAAkAACAABIAAEgAAQAAJAACAABIAAEAACQAAIAASAABAAAkAACAABgAAQAAJAAAgAASAAEAACQAAIAAEgAAQAAkAACAABIAAEgABAAAgAASAABIAAEAAIAAFAS/nUvkeyf/7U73asrw++VNf+mFtd6uj9EWIb69knsQ87eX/Ed8CxQAAIAAEAgAAQAAIAAAEgAAQAAAJAAAgAAASAABAAAAgAASAAABAAAsCHGAABIAAAQAAIAAAQAAIAAASAAABAAAgAAQCAABAAAgAAASAABAAAAkAACAAABIAAEAAACAABIAAAEAACQAAAIAAEgAAAQAAIAAEAgAAQAAIAAAEgAAQAAAJAAAgAAASAAPABBkAACAAAEAAC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\"","module.exports = __webpack_public_path__ + \"static/media/doc.36d0a5f4.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/js.c53b22b5.png\";","module.exports = __webpack_public_path__ + \"static/media/mov.5c4b2db2.png\";","module.exports = __webpack_public_path__ + \"static/media/mp3.5d1d4ade.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/pdf.4cf47574.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/psd.6a046367.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/svg.4bbace9c.png\";","module.exports = __webpack_public_path__ + \"static/media/swf.cab6a2e6.png\";","module.exports = \"data:image/png;base64,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pNb1H2zjtr0vAyC5HmjfqHWXApBeqz7Xrkn992cAJNhX17ZnzszHZgGQZI+05S+BKd9clgGQZNO/M7cNU754XQZAovU/3PpWueHLGQDJdsXdrU5Y+WAGQMLdektr6y9+rBuApNvU0rM4q5+alwGQdrd/e3budTc+MSsDIPXWPvm+nFv0rq+ntFEBqNclP8r1VM6c796W1I8JQN1mfv8zza+09IdXZgCUpK77H23y6ZwZtz21OLEfMu8prLq2hDAw8dtfNH6m164N98y/aNd0/SkACmnsmd8cbeySV29aehGvJwCF9c6P/9jAqSJXPrD6ol5LAAps6Hev7TrvBRZcdfPai3wdASi2kc2v7qjzAXDLrt246uJfQQAK78RLL+8YOWtnMG/J9Td1xkmgALgwHa4MDQxXDxxb1Ne3eOnC3s75KzovAOcKbq45cy4r1w/kgaDgAQCAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAABS57g67Pj890sLKH1s72aC7p5+1YMfm5r7FuitP+8/wL5tbedWnAZisF0ZbWHnG2skGfelsAK8/39y3mH0GgCZXvrYDAdgFOAYQAAJAAAgAASAABIAAEAACQAAIAAEgAFS+Ou0FIfec+0Ke0WdqXXDRF85dtqZd1+LpZS38wtx3c0q/bZ0G4KZzF+2vCWDeZ4vcKq1slmndKd0D2AU4BhAAAkAACAABIAAEgAAQAAJAAKjEddsENfrVvNrL161uYOUte2ovX70OgFT6Q53lPY0A2L699vIbOhKAXYBjAAEgAASAABAAAkAACAABIAAEgAAQAAJA5csLQmr15NLay6c1svK9n0ppUwNQq5k9Lazc05PSj2oX4BhAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgApVUCbw6dc1utpX2TrHXL8VpLz3nf5lU1h89v7Jr111z5Q0kBmJL3nmOLX56Oav0puwABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgApdL/ANteGEduKH2IAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAABdgAAAXYAE8fGXsAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAbxQTFRF////3N3d6Ojo4+PjxsjKur3Azc/Q1tjYpKmtpamtpaqupqqupquvp6uvp6ywqK2wqK2xqa2xqa6xqa6yqq6yqq+yqq+zq6+zq7CzrLC0rLG0rbG0rbG1rbK1rrK1rrO2r7O2r7O3r7S3sLS3sLS4sbW4sbW5sra5s7e6tLi7tbm8trm8trq9t7u9t7u+uLy/uby/ub2/ur3Aur7Au77BvL/CvcDCvcDDvsHDvsHEv8LFwMPFwMPGwcPGwcTGwsTHwsXHw8bIxMbJxMfJxcjKxsjKxsnLx8nLx8rLx8rMyMrLyMrMyMvMycvNyczNyszOys3Oy83Py87PzM7PzM7Qzc/Qzc/RztDRztDSz9HSz9HT0NLT0dLU0dPT0dPU0tPV0tTV09TV09XW1NXV1NXW1NXX1NbW1dbX1dbY1dfY1tfY1tjY19jZ19na2Nna2Nra2dra2drb2tvc29zc29zd3N3d3N3e3d3e3d7e3d7f3t7f3t/f3t/g39/g3+Dg3+Dh4ODh4OHh4eHh4eHi4eLi4uLi4uPj4+Pj4+Pk4+Tk5OTk5OTl5OXl5eXl5ebm5ubm5ufn5+fn5+jo6OjobMeFJgAAAAh0Uk5TAAyIi7LH5ed6bllFAAAJzUlEQVR42u3da3dU1QGA4U1CKOEmBYtB2nJZIK1WCt7KRdRW5CaBYNfya39I/0j/ggrhDmIFaaVIy0VxUYVSoRCxWAsIhSAxJP1CCyR7DyHEkLP3834K++wzmWGezJk5M3NOXehfDSPV30YMC0OnuqDBrnkoCQBg8Lv2+hASAMDg1xWGkAAAHkhDRwAAhQsAoHABABQuAIDCBQBQuAAAChcAQOECAChcAACFCwCgcAEAFC4AgMIFAFC4AAAKFwBA4QIAKFwAAIULAKBwAQAULgCAwgUAULgAAAoXAEDhAgAoXAAAhQsAoHABABQuAIDCBQBQuAAAChcAQOECAChcAACFCwCgcAEAFC4AgMIFAFC4gP4C6P6Z+tvooSSgvwC6fqP+1jSUHgNsAgrfCgBQuAAAChcAQOECAChcAACFCwCgcAEAFC4AgMIFAFC4AAAKFwBA4QIAKFwAAIULAKBwAQAULgCAwgUAULgAAAoXAEDhAgAoXAAAhQsAoHABABQuAIDCBQBQuAAAChcAQOECAChcAACFCwCgcAEAFC4AgMIFAFC4AAAKFwBA4QIAKFwAAIULAKBwAQAULgCAwgUAMPhNmTXw/bYOgMo09vvfQd0ACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEAgAAQAAJAAAgAASAABMAQqONMFnUA0M+un8ui6wAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAAVDSA0Y9n0WgA+nvlxmRRHQACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAIQrHw2ZzgDwAOruGDJ1ASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgADof/WNQ6YGAB5Ao54cMk0BQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAiA++rG5Sy6AUA/az+WRe0ACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAFQ0gJE/zqKRAPSzhqYsagBAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACIBw/bMqdgWAgarjfBXrAEAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAG5v7DNVbAIAA3ftqphHAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAARCvq3Pgc5dXCMDVwwPfOfe5TYAAEAACQAAAIAAEgAAQAAJAAAgAASAABIAAEAACQAAIgMFt+ISBr9F9Xh0AjTMHvofc5zYBAkAACAABAIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAAVG0ARzfcRztDCOGLxMLNXTV+7Z9TF9kWQggn7+dKbQDgXjqx7z46HEIITWfjC9//Y/q3XtiYuMRTU0IIoe1+rtQ+AAb5djUnbtnu9uQ62zoTC5oz3lBme9Omzo+PX9uaWuPUx4kF82Z5DlDBmifFxw+1JVbYkRgfvcaTwCo2fHV8vCvxEHDoVOKClo4GoJLNnhcfP3kwNnpjV+JiZiz0MrCitYyNj/8+9mTvva/ik+uz3gDkDWDUisTLvcjWvj318nDBowBUtmd/Eh/fd6H3S8Br8amTXg0AVLdfj4gOd27pOXLuYOISVg0HoMKNXxIfP3q8x8D2xB7iJ38aAKhyL02Lj7995x1+/NP4tMa1AYBKN6ylPjr++Z3P+d5JrL5kLAAVb0riVfwdbwnsOxOfNO2FAEDVe7UpOnzttueB376X+L9ZHQCofPWJe/Hwrb/6t7+OT/nFjwDIoFnPRIe7tv3vp0v74ytObA4APKDmtvTukejMl3tPfKXHlJbx0TVPHrj5w9aO+JVY2XDnvx+LXKnp0TXnR2YCcC9NX9S7+Htyc3pP7PkX/72V8V9y8y2B00fii5+Y02NgcuRKjYuuOjsyE4AH17wnosMXt4cQQtjRHV06Ym0ooiI+FfzayOjwB+dDCEc+i6/z8kMAZNO4ZdHhzi0hdL0bX2XqLwMA+fT8jOjwX4+HPefi/y2rhgGQU2vjb+rtuJr4GMCz0wIAOdX0YnT47O+uRsfHrw4A5NXS+F69+AYgLB8BQG63816+3DH76QBAbk1/rs9TS9kFUBaA0DyxrzNfnAhAho3o63s7P1wSAMixXjv3Uw8VdQBkujOgT9/xenpGACDPxizrw6SxawIAubagD9/zXtoIQL69dtcdPDPnBwDy7eG7vcc3fG0AIOd+NbX28kWTAMj75tZ+jde0IgCQd1MX1NwFUA9A7tX6tu/cxwIAmXd2bw0bLQGAzOveeCO9sPMIALm3+x+1lm6/AEDe/Xt3zcXX3wAg79Z31F5+8l0Acu5Pf7/bjF2fA5Bvl3fedUpn6w0A8t0AXLv7nLYtAOTaoU/6MmvfCQDyrH173/YUtHYAkGUbLvfxpeI6AHLs04/6OvPDDwHIr45NfZ+7+T8AZNfm832fe+VNAHLr5F/uZfaxvQDk1Y2N8QMBDU98C3THVwBk1dZ/xscXvx4/HUTHW90AZFRb4rSNTcvqVsWXnNoJQD51bUqcDWBVfZj1VHzRntMAZNOuxJ3589khhDVj4s8aWjsByKR/JT4F0rgmhBBGJb4w+MUmADJpfeJv+ebZIObPjC/efxyALHr/ZHz8/2eDSBxCLqz/BoAMupR4Pn/r+f+kxfEZF9cBkEHrrsfHn7v1LcHlk+NTjhwEoPIdOBYfH3/bEYPqUkcP2nIJgIp3NfUpkDsOBTkrcZrp9jcBqHitV+LjPQ4F2RLfGRD+9gcAKt3Rj+PjDT2+BThqaeICdp4DoMJ1bE4seOHhHgMLEjsDvl3XBUB123gxPv5o7z/4NYmdAae3AVDZThxILFjV+1Y3pc7qtPcUABWtM7U3f27saHEr4mcYDV3rOwGoZlu/jI+Pih4Ksj7xyYDwZSsAlez0B4kFr8Rf882em5h/4BMAKljyUyDTn0+s0ZI6lHBrOwDV6522xA1OHjV+dGpnwKW3AKhc51L78GqcEnxh6jjhR/cDULVSn+iaUOu0EalPBoRtXwNQrfakXr0vb6ixVtPCxIJv3gDggTdncaxxiX0Ai+OtnFfzd6x4MbHe5MQ3RR6Pzv4BAN9Bi1bHSryNt2R1vLscLXz4qsR6qxP36VPRyY8AIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACADV6L/aXqQ8orLtoQAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/wav.e68f6b81.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAABdgAAAXYAE8fGXsAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAo5QTFRF////3N3d6Ojo4+PjkMX0cLn4ts7i1tjYMz5IM0RSNEtfNE9nNFBpNFRwNFd0NFd2NWaQNnGkNnevN4fMN4rTN43YOKD6OKP/XGVsdLv3h42TmJ2hpKmtpamtpaqupqqupquvp6uvp6ywqKywqK2wqK2xqa2xqa6xqa6yqq6yqq+yqq+zq6+zq7CzrLC0rLG0rbG0rbG1rbK1rrK1rrK2rrO2r7O2r7O3r7S3sLS3sLS4sLW4sMncsbW4sbW5sra5sra6ssncs7e6tLi7tbi7tbm8trm8trq9t7q9t7u9t7u+uLu+uLy+uLy/uby/ub2/ub3Aur3Aur7Aur7Bu77Bu7/Bu7/CvL/CvMDDvM3bvcDDvcHEvc7bvsHDvsHEvsLFv8LEv8LFwMPFwMPGwcPGwcTGwcTHwsTHwsXHwsbIw8XIw8bIw8bJw8fJxMbJxMfJxMfKxcfJxcjKxsjKxsnLx8nLx8rMyMrMyMvMycvNyczNyszOys3Oy83Py83Qy87PzM7PzM7QzM/Rzc/Qzc/RztDRztDSz9HSz9HTz9HUz9LU0NLT0NPV0dLU0dPT0dPU0tPV0tTV0tTW09TV09TW09XW1NXW1NXX1NbX1NfY1dbX1dbY1dfY1tfY1tjY1tjZ1tja19jZ19na19rb2Nna2Nvc2drb2tvc2tze29zc29zd293f3N3d3N3e3d3e3d7e3d7f3d/g3t7f3t/f3t/g3uDh39/g3+Dg3+Dh4ODh4OHh4eHh4eHi4eLi4uLi4uLj4uPj4uTl4+Pj4+Pk4+Tk5OTk5OTl5OXl5OXm5eXl5ebm5ubm5ufn5ufo5ujp5+fn5+jo6Ojo6err7O3u7u/w8fLy9/f4+vr6/f39////2G+SbgAAAAh0Uk5TAAyIi7LH5ed6bllFAAAR4ElEQVR42u2dWWwdVxmAxzfxUidO4+yrm3hf4ux707SlVG0pSECBSq1UBKp4AZWCoAghnkBU9IWHiocWsb0gKkErUBUqKpCKituSpGmcxXGdOI3TLG2TOIkTx1tsfO0sZ+b8Z+bM3Jt40vN9T8ls9793vjnn/8+cGWe8ZBTOhaQUFXjpIePBzeaRNBmAADefk8+myAAEuPkMeikyAAEmhPQYgACOG4AAjhuAAI4bgACOG4AAjhuAAI4bgACOG4AAjhuAAI4bgACOG4AAjhuAAI4bgACOG4AAjhuAAI4bgACOG4AAjhuAAI4bgACOG4AAjhuAAI4bgACOG4AAjhuAAI4bgACOG4AAjhuAAI4bgACOG4AAjhuAAI4bgACOG4AAjhuAAI4bgACOG4AAjhuAAI4bgACOG5BUgJEMJGVJmgxIKsDwa5CUz6SpDaALcLwXQADHDUAAxw1AAMcNQADHDUAAxw1AAMcNQADHDUAAxw1AAMcNQADHDUAAxw1AAMcNQADHDUAAxw1AAMcNQADHDUAAxw1AAMcNQADHDUAAxw1AAMcNQADHDUAAxw1AAMcNQADHDUAAxw1AAMcNQADHDUAAxw1AAMcNQADHDUAAxw1AAMcNQADHDUAAxw1AAMcNQADHDUAAxw1AAMcNQADHDUCAm09lc/55NYMAtwzlc24AIwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAiAAIAAgACAAIAAgACAAIAAgACAAIAAgAATRtdvZT73UCr5hRztKwiQlBMvy1w+k0q2y9H+BwEAAQABAAEAAQABAAHi8MI2ha+kPdq/q9GuRYA8sKRYYb5vVcltKcD/C5aq0c5BgBtLYVEKKKQLAAQABAAEAAQABAAEAATIGw/cp/B82qP9rBrtNgQABAAEAAQABAAEAAQABAAEAAQABAAEiKaiWuH2tEdbpUZ7GwLkgd+8oPBE2qNVg33hXgQABAAEAAQABAAEAAQABAAEiMG/dim0pj3anWq0hxEgDzz3A4U30h7tj9Ro2xAAEAAQABAAEAAQABAAEAAQABAAEAAQIJqnnlXYkvZof65GW4cAeeDh9Qqr0h7tRjXaKgQABAAEAAQABAAEAAQABAAEiMHT6jzbl9Ie7ffVaN9EgDzQps60/zjt0baq0Z5HAEAAQABAAEAAQABAAEAAQABAAEAAQIBo/vG6wrfSHu0/1WjvR4B8RKhSfEtFW4gAgACAAIAAgACAAIAAgADxODWocDrt0arBDp5FgDzw+IMKf0p7tA+p0bYgwI3l8lAKuEwXMGH0XkwBQwgACAAIAAgACAAIAAgACHAzmFSYAgoQYMIoTQNFCHBjue9LCrVpj/YLarTzECAPPPMdhQfSHu131WhXIwAgACAAIAAgACAAIAAgACBADH7/ksIbaY/2T2q0+xAgD/z5RYXWtEf7OzXaIwgACAAIAAgACAAIAAgACAAIAAgACAAIEM2v/qbwxbRH+xc12lUIkAcapyosTnu009Vo5yMAIAAgACAAIAAgACAAIAAgQAwefkjh12mP9kE12tcQIA8MDSgMEy1dACAAIAAgACAAIAAgACAAIAAgAHwKBZi3SGFq2qNdqEZbjAB54I8q37ilor0PAQABAAEAAQABAAEAAQABAAFi8OYBlbRHu0cNlncF54OffVvh9bRH+z01Wt4WDggACAAIAAgACAAIAAgACAAIAAgACGDBN59RWJv2aJ9Wo61GgDzw6AMKm9Ie7efVaGsRABAAEAAQABAAEAAQIJ+MpAIEmDAunE8BAwhwY/nhTxVeTnu0P1GjfQsB8kBri8KxtEf7jhptNwIAAgACAAIAAgACAALEYP0rMn99LZW8JEf7HAIkpaBIZmp5KjFEW4gAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAAIwE+AAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAABr/flJjm7zlNm3DH8sbtuuH/MO1lU89aaI9NM5fGve7Gu6L4tr3jEd8Vdz+TdcEWHJCY4+85U5tw9aL4ob79EPOurby2AkT28PC7G8x7nfhyibV4tp3jIcUj/jRctcEqCzTFr1vuLCFUy1ueEBftMIikp1hK7cPRe6/ebK01NgCDO6XljZMcy4HaNCWnOyRtjvZbXWqR+nQlkxfbBFIR3dSO8YpES3rOmPYfN+gtHSLe0lgk75IvDZahWV7pQ27P7b5DJ2Rt3ITwNsoLt1h2PpdaWHBXe4JsNKqsfe8NumiHfGs+oVlVpGEnOTO0xb73z3JVtwsu6SF9eXuCVA9xa4FkAQYkNIFYVmzVSTvDRtX/c9m/ylNMZKAc532jcinfBygUVtySNjq4oe2Vuj6TFtqFUhfq3HVDqsD3Cn2SIfFbeXq4B4XBdCvm94jQnc/YlkZDB+yUCzmdd7XbrX/1ox9zyLKVjfLRQGWW3XjbbYVX8dAshwwW+uZVrw9bLX/tAZp6W7PumeYwB5gAgWoLbUo5OSE3/u428YU28GV48fjJGzSUIC0cK9kT6dYc97tpAAF9RYCDHfIO++x6BWmVtuG0pJTCjDaBxRImeo+2yNWzXVSACFHP9KvXdeGkbgDFkVAg3UkhhPdftZy/xl1tu3HLusGxAEB9BZ6+H27HkAQ4PzJhKMAY5r1xR0gCLDJUoBBMaXZ6qgAdSXRWeB+w76HBqPzx2brSIa259QDGDrxg716zyWNA1cucFSAgobojtxUhw29H9kDlNbahyKe6p4O6/1nS581/K5dDbDJc1QAoY0O/uRdPaZ990W2APUFOQqwfdj+ABvtSj4xBdjirAB6EtD9SVSyb6j6Rg7m0AN43tn2OMMDtt24JkC3NA68uMJZAeqLosr+A8Z9A03+of4cckDDyd4VY//5VcLCEx/ZKHWn56wAmciRgP3ma/ZkWIMwSnF9nFCEhH9/T5wDbLTpWVoRwM+KiPKu+6R539aIHLA+/JutDojXHeHE3OnhX0XsyHdb5IALKh0WQO+mO4ftUoDgKT9gkWD4WHe7P4fQZ4X4c/h7ysKPV7E4UlLvUHfqUsAJFqBBSwIGO8IbdoMAF47HzQH7Vkf0Aef8vdGavojvIrXkPe1R/czE3giacAEydeHZvf+69l+Dh/tDc4WiiIHg/oAA2qyQFt996NLGKAHE8dxdkVnl3DqXBRDaafWaGfDXdhv8wyxthr3GqY34Yr3r/Btos0L8Z2t5QZQAVQuiBBhoS2EPMMECrAgtA9r8V2WNf+LcPsO/rVIA71JZ4F5hYFbIyHuBnHEw6rtIfcABdZLC3sEU9gATLEBDoVY79xgHBZYuMJaIB2ML0OutCa3R9/sfPtnQF/ldpBHdodaIHmBWo9sCZGrDkoDAdV1RYWorDl8KHmVy1CjApWAhGJgV4i/hK2b1Rn6XujkRdcCu9A0CTLgA4UmA/7qeVuZvAS4eDekBagsjBWgMFHYtIQKs8qJbALEJUDoScZao8wLoScD1lv2ovxVe6C0xtRUdsXsAbyB7Vs2n/LR/1H69dzH6u0j5XOd5Ux8zRnmT6wLUaw/WHTSNAiz2KkwjAe1xRwG87AkNCOCbFfK2v6Zs8gaiv0vjDH3ZyA6xNwitHZ0SoFBLAnq7xKGe0X7Ym1XsW3BtHniv9uzA5MjcavRsb/TfLx5SmwD/MOCyQu+SxZeRTufu0BTgLucFENrqvQYBRlVZ5G9er1aJ+7VnB6qLoj53NKmbVmOsA4b9ReCase0T9QHXDnTorL5y+jIE0Nvqqxf2wAf+QEdP1x3+S/bqQGHsGwHjOYBnHg3e0xdIAWySQK95ur7s1FH96NeLywIEaJxsGgrquOzPAUcv6iq5YNAHgi1yqz4vOBLQ3W6oAeYtsBNAHNXZGdIDbPUQoKgmuOTwgFjbVY/3AlIWqA0DZSxmA41mgQ1TTXXA9kARKAlQYNelX+kDpHHgsuUIILTWV58FCaQA2RqwOiMVDF1aiVZdbCVAwQqDAJ8cDaYAnj4/UHhocblwz/jKw43SOPDGDAJI3XWbeF1n7+4V+ZOA471yA2A1HTC779pA53Puyj/8kwMmrxYFkH7MDfqyS+Mi77FMGt0ToFF7vcL4M8KB+aGZsa5iqTRo1KUd0ya5zrbp6/zN+Mh/xYStLtueXLb6MtIp3S91aFlKVyNA9qrWnuD7QMrsFo4VdpVSEqCnADZ9a7bfKK8UE7ZB/5jNWDthN0V8jf7A63iDJsxa9jZkECCLNhp8ZFgtBq5Qc3UsQC8DtLcKLC2x+NhLnt4H7B4/zbsHtBTAsgWQ+oCxIlWYtZyC+wDpEEAr2S53CC3A+KmvmaRngT1nkvQA42O7gULwUqtQA8yoMqR8EsINodOnxErVK1mLAOMZmxbCQeG6Hh/bLVriW3j2E096sYzVIyFjZ7Qx8KKi8Vkh/nHgWD31OqH+aPXEFxitL0SAMYq1JCB737T7gv9yqfKkPuCg9NtmVlh/dsFKoRAMzAxYGSujES7rdk98wiUdPUAaXhatXbCdegNQ7YkCHJGKgKWl9p8dOLvHsufefycwsz7Wl9ksZoE9J3RV1iOASYDDemrfJG975FrREBgxsCXYZ7doRWDNlHgC6LehDvdLDzmvKUIAUxIwcNTzAnd4r87wmu9/p+6x0frsaKIU4ArlVVohOLA3eQowemHr2w+36ZKmpgdIgwAlWhLQoTXsjf5y8FoLMOJ1DkXWlaGVe2DUpt/bNZSLANKJbff0lx0WbkYAc9k2esH4r+uFU+X2fehDT3viemlZnM8OnN+h7YEisCzutF3h5eEnPK2V8lYVI4BZgA7vlH8CRp2pg/9Ab11jPRXsNZUG6wB/ChD7hp3w8vAPhRbgLg8BrrfZGS/itF5P/gMP/XbpwwDxZtkEh413dPlfOr4q9rfRx4JOnrsQXDR5MwIoF03wnb7nT3UaUgCv5I5AGaBVgTFPWaAP6H7e///4T+5s1e5udeujACtKECC0DzjmN0TJ1f1ZYNeZ84FdF90e77ODZ9g/aFsV/z3uU/Qm6G2LZgIBVDr917VaJvgFOK5dXHFn2s9cGqN9sEsDtSXaIwGTtiKAr0EMTq86eMR4Uv2yXG7JLQWIOsdrEnwb/eXh2oshmqcggK/VDF6Fu/uNiX2F/7dryWkUIMu6sOwkyZM70xoSNBJuC6C92b8/ZHV12Jbe/JlxP7spJB9rTvTzRE71ymxFgMAPHbp24dQwWXLsAULnD61J9G22RE33byxDgIgkwEedsT+IbkssCDnLye7YzajPtYlwToCyJWFr/feAG0NliT9wE1LqL0j4Iv+IwYMMAsS7cP0rSxeFbDpndvzPnlWRzyIwS8RfAJnAPxJ3SwpQUhnWI+SaAnja1FCLFRHMrr1VaoDUCBB2rVUH2vyakG0bkny4KQmYvCLp1wkd6CvYigB67RzyV36bYrQWiRrt5YZbs42JJ+2E3uurnYkAsdruYE5daS7cZ85L9Bssz2cRODYaUXWr9ACpEaApRn5QleQoCfqAHKZtbkyeIjoqwErjmoVT7VuLhAKsj1kdRBNS6NXORgCBcmNxV2exJIdRgCxzF+ezCMxSUZF0kMBVAcwXb519zVi+MJ9FSE4P7955i/QA6RFgmf0QQdn8BKMJsUcCMuty+TrGTK9qHgLESgJKhL+oURO/lAinWSj46nKatWX8Y4CbPAQQmWH4xWqseoVxEg/cFDbnswgMTQO3IICBxx4V+bKUR8mbPnaH+eiPBDf2Tyv4qn60e/xuaesjKo775Ri/vhgBDNz7hIhUos2TN308TK/gxv5WpFk/mj/RWKutjxBggRzj1zwEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABHCe/wNIHDIrUKzIbAAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/xls.5be38058.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/other.94b4fcda.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/defaultAppIcon.7939076e.png\";","module.exports = __webpack_public_path__ + \"static/media/in_app_notifications.86795680.png\";","module.exports = __webpack_public_path__ + \"static/media/welcome-profile.4113c5b4.png\";","module.exports = __webpack_public_path__ + \"static/media/welcome-edit.08aa32ce.png\";","module.exports = __webpack_public_path__ + \"static/media/welcome-actions.1ae82279.png\";","module.exports = __webpack_public_path__ + \"static/media/welcome-challenges.31d581c9.png\";","module.exports = __webpack_public_path__ + \"static/media/welcome-activity.82c3cbfc.png\";","module.exports = __webpack_public_path__ + \"static/media/landing-mockup.973bc54a.png\";","module.exports = __webpack_public_path__ + \"static/media/app-mockup.6f2883e2.png\";","module.exports = __webpack_public_path__ + \"static/media/challenge-share-image.360e1eb0.jpg\";","module.exports = __webpack_public_path__ + \"static/media/community-share-image.629ea7e7.jpg\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAYAAADnRuK4AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsSAAALEgHS3X78AAAAB3RJTUUH4QoRDTcboWOwVwAAFapJREFUeNrtnXlwFNedxz99zKmRNEIX6BYYhIwBgSCAY8dnNuu44t04h+3YYSuH2U28qdpkt1Jb3iS1GyfZyqYqm0rWScVVaye+gl0b27gqB0lsgrHxAQ4YA+YyGIxAoFsazdndb/9oATpGx6Dp7plRf6pelTTHe69//Z13/n6vJbY9RcZIEnhUCAQgGACPWoUs3wCsB5YCzUAlUAT4Mi/AJYskgGGgCzgBHAJewzC2kdLOE41BLAYpDYTIOHMpIwHJEni9UBQEv68cVd0IfAZdb0fTJBJJSKYglQLdAGGAkXmlXLKILIEkgyKDxwNeD/i8oKoCRXkTeBJdf5RYvIfhKCSTGd2zmQvI44GiAAQDC1DVf0HX/55EsojhKCSSYBhOm8olE2TZFFJREHzeKIryMJr2n0RjZ4jGzIZgBkwvIFkyu6qigIrX+1V041vEYiGil9/sueQQkgSqajYOgUAERf42yeSPGI6liMWnbRgktm2e/F1VMRUa8C9Glp8inlhlNnMpVziFhiSZ3Zs5PNmLYdxNLH6Q4Sho+qRfkyd9x6NCURH4fX+DYexmMLKK/kGzu3LFU3gIYd7b/kEYjLRhGK/j9/0tRUWmFiYhvYA8HggGwatuIqX9mqHhEoaj7jhnLmAYMByFoeEQKe3/8KqbCAZNTaRhorRUBQI+UOQvoek/JRozlekydxCCkfGPQjDwcxRZIeD7GcKY0J2NbYFkGfx+kOTb0I2fuOKZ4ySSEI2BbvwESb4Nv9/UyCjG/ufzgiy1gniCZFJxxeNiru0lFRBPIEut+Lxj3r4kII8HFMWDbvyKlBYinnC66i65QjwBKS2EbvwKRfGMHg+ZApJHpnC6/k/ASuIJd6blcgkhGGlQVqLrX8XrMTXDBQF5PGAYNcC3SKXc2ZbLRAzD3KKCb2IYNRdaIRVG9kpS+v2oSoikBm7j45KOpAZ+JYSm/xuqch9ISOz4NUAFcAoIjKjMxSU9ZssTAxqAbhlFAl27B5kAWgqz+XGTmyZJWgpkAujaPSgSMpoGiHsQwh04u0zPRZ2Iu9E0ZHSjClg91YaZi8sYNB2Q2tGNGhkhbkSSJXfm5TJjTK1ICHGDjBDrnK6PSx4iSSCMNTJCLHW6Li55iqBFBnGF0/VwyVfEYhUhqhFzb/xzbbiSD5VWIoBt/ed5daDbfEPT4VyX6ViVHNlM9nohXALVlaa7C7ChtIIbwlVIwEsDXezo73L6kuxFGCBEtQoUz6WVZ68s86srr+b2yroxrz928jAb//dBONkx+VaOLENjLY9+4T4+29gy5q1nuk5z18GdJOfKZMTUTLEMI+E3Ti9Q2ZS+t3DFBPEAdO5/B068P/U+oGHAiffNz47j9so6vrdwhePXZ1sSBmAgM3e0gweZTTWLJtz84+fP8cBzTzNTHnjuaY6fPzfh9U01i/AgO36dtiVjKqf6AqTK66NYGevbOxiL8okff5+heGzG+QzFY3zix99nMBYd83qx4qHKO7cCceeUgLpTiTFjlP7oMLf84AH2njyRcV57T57glh88QH90+OJrScOgOzW3HPHmlIAShsHT508BsPPoIVZ/45/ZefTQZec3Po+nz58iMVcG0SNIbP2lQPXMPqc8oVRIrH/rOH/YuxuRpc1jSZL4q7Y1vLZyIQPSHJrSainU2eeSXwwcPsbWPW9mNU8hBFv37AK/AUsXzT7DPGJOdWEAnOrIz7xzFPXSnGyO0NVjcd5zyJaIOdYCJVMzPrYkJ/PPQdQ51QDZESiZSE4aR15wiLk2BlJtmDPYUUYOUThX29tvboT2DcBQxIzp1nRz/8pOX+/Nz1/6W5LMDVhVMc+SLA5BWSk01sK8sNMWywoSv/9Ffq4DaTq8c9Sc+fQPmqel5RMe1XQRaaiF1sUX3UTyirxcB3rvtCmcrt78jqBNaeY1dPXCngNQOc8UUlPd7PO2kfyZxh84CgeOmF1TFgl6fUSTl7d/NZvvjsEw4Fy3mYIBWLYEli3O6nVag8iDFuj4Kdi1zzzwyAKuqm8g6PXRMzRE7/AQkXicSCKOPq51U2SZkM9PyO9nXqiY8lAx0WSCN949mt0KRWOw6y3YfxjWroCFDVZZNivkroAiUfjza9Dda2kxAa+PkN8URmNl5cXXhRBoIyJSZRlJkiZ819J2OxaHl96Ag8fg+vUQClpqh8slNwX0zjHY/Tbo1gY7SpJEaSCAhJTmTVDlqQe2pYEAkiRlbVM2Ld298OxWWLMcWnMv/iG3BGQY8MJO6Oi0pbgSfwBFnt3sp8QfYGCcY1nW0XV4fS+c7oSbrp5wzJyT5M5KdCwOv/uzuYZjE9WlYZRZ3ozq0rD1ArpARyc8+we45XoI+O0pcyrMlWinHWsFDAzClj/aKh6AmrJ5yJI0q1RTNs/emzYUMW01MOj8fcuJzdT+QfjtNkjY6woa8vtZEC5DkeVJU9DrI+j1TfmZBeEyQn6bW4NEwrRZ/6C95abBWQENDcPvtzuyg90yv3ba1iXo8xH0+ab9XMv8Wvttl0yZthsann1es8A5AV0wgANHCQe9PlpqalFkZcpUVVJKVUnptJ9rqakl6EQ0RiLp2A/wAs4J6I8vZ31VeaasblqIV1GnbVlqy+ZRO4NxkldRWd200Bk7RmOmLR3CGQG9sdfyBcLJqC2bx5IFNciyNG2qLSuntqx8Rp9dsqCGWrsH1Bfo7jVt6gD274V1dsGh445crN/j4frWq2Y8dW9ZYI5tZvr561uv4te7XiXuxEGlh45DQw3Mr5x9XjNGINs669MN2LHbXv+cESRJ4qZlKwn5A8iSPG0Ken00VVbRVFlF0Oub0XdC/gA3LVuZdtvD+nspTNvqhq0zeXu7sN1vOzbuuWZJK40VlVNOyUenFfVNF8c4K+qbZvy9xopKrlnS6sg1Eo2ZNrYR+wQ0HIOjmYcQZ4P25kW0NTbPWASKLLP+iiUXv7/+iiUZfbetsZn2Zofiw46eMG1tE/YJaPc+s3m1mRX1jVyzpDWj1eVwsIilNZccu5bW1BEOFmWUxzVLWllR32j79aIbpq1twh4BDUfh1BnbLuoCLQtquWnZyhmNX0anm5atQB41jpElaeS1TPNZeXEgbiunzpg2twF79sL2HLR94NxYUcmtbe0ZdT2KLFMc8I/pvi6w/oolFAf8Ged3a1s7jRV2zowwbb3noPX31Za9MCHgfXtbn5A/wG2rP4AqKxlvjt6yoh1fmiADn+rhlhXtGeenygq3rf4AIX/AVhvw/hlbfrTWC+j4+7ZHTNy2ai0hX+atRUNFJesWTe6LvG7RYhoymMldSCGfn9tWrbXVBqQ00/YWY72Ajp20vIjRLK9rpLmqakarx6OTV1X55NoNU67hSJLEJ9duwKuqGeffXFXF8jqbB9U22N7ahURNN8NWbEJVFD68vC3jFkKRZT62ai3VpeFpy6guDfOxVWsvq4wPL29DVWyM/+rqNe9B3i4kdpyzNXZrdeNCSgIzW2kendY2L85o3aa9eRFrmxdnXE5JIMDqRhs3XQ3DvAcWYr2AbEIaWXvJtFVYVlvPrW3tGZd3a1s7y2rrMy7vmiWt9m51WC8gC8/5tfIsnnE0lFdQXlyc0QyptaaOj69Zf1k3VJIkPr5mPa01dRmVWV5cTEN5hW12uXRmkRXJsLgFsmkxC2BlQ2ZbFe3Ni7h9zfpZOdUrsszta9bT3rwoo7JXNjTbZher74F1YT3xBHY+xG7x/PnI0vRiUBVzpXlFfVNWypUkiY8sX8WCcBkvHNiHNoPtmsXz59tmFzTd9Fz0eS3J3joBDQxZlvV4inw+asLl036uujTMR5a3UVFckvU6rKhvoiY8j61v7+XcQP+Un60Jl1Pk8zFsVyBB/yBUW9NtWicgG529q0vLxuxdjcfv9XL14haW1zVaOoCtKC7hMxuu5e3TJ9l59DDx5OT+3tWlZRw/b08AJUPDFgrIKofEuH1hOtUlpWnHMkU+P6uamrmqrhGPTesv0oj/UGtNPftPn2TPeycYTkw8GKK6pNQ+AcWT1txjYaVLq42RAkGfD3lEQB5FoamiipYFtdSXV0zZMlmJR1FY1biQlQ3NvN/TzeGzHbzXfZ7USLx/0GdjFEcyiVUKyq3Y+ExQZDNG3O+jrqGBDy5eyoJwGZUlpY6JJh2yJNFYUUljRSWGEHQNDnC2v49d58/AqXfNltowrPWVstAc1gloRYt1hyR5x+6WN1/RRlujjVPjy0SWJKpLw1SXhlmorYHycd2qVa22hd23dQJSFEsrPpqIlmfnIwJDWhqxePPvrErnY+OzQJ+Wf49Yysc6pyN/zkicgiPDA05X4TLrnN92NwfR+a8fDg71O12Fy6tzntvd/rgwi+hJJTgQ6Xe6GjPmQKSfngJ5smFBCAhgW+9Zp6tQkHWdjoIR0FNnnQlaLPS6TkfBCOiVvnMcj9q3gXu5HI8O8UqffY52VpMbZyRmIQkEP3xvv9P2nJYfvrcfkQP2yp+4MBt5uOMInQlnDm+YCZ2JGA93HHG6GlmloAQU03W+fniX09WYlK8f3kXM4sPT7cbe84FsSI93HOPFntyb5bzYc5bHO445bp9sp4JqgRi5ro37tufUOktPKsHGfdvzft0wHQUnIICOeJQ792wjJZx/nlhKGNy5ZxsdcfsCDOykIAUE8KeeM2x86yWnq8HGt17iTz32H21jFwWxmToZm8++CwgeXXkdnhlEbGSTlDDY+NZ2Np915kBReyiwaXw6Np89zkd3bbV1TNSTSvDRXVsLXDwmBS8gMLuzlS8/w4s2dCUvjpRVyN3WaOaEgMAcWN/8xu/YuG+7JYuNnYkYG/dt5+Y3flewA+Z0SDz/U4FqTdTibFEkiY21i1kXruSJjnfZ0ZedMJiAovD5uha+1nQVC4PFs8rreHSIH763n4dPH87aIuG1ZfO5u3YRr/d38WjHUXQHztWeEVoSiS25KaB14UoeXHY17aVmQFzSMGjYtplzWWw9JOCDZdXcUbOQG8oXsCxUNqPvHYj0sa3nLE+dOc4rfeeyOgWp9gU4dcOdeEfClN4c6Oa+Azt5vb8ri6VkCS2Ze7OweR4f32tZy6aGpWOiUbyyTL0/yLlE9roHAbzc18nLIy1budfHlaEylhSVUubxElJMJ/eInqIvleTI8AAHI330ZONR35NQ7w9eFA9Ae2kFr159Gw+dOsT9h3fRm0MLpCCQ2PJgTrRAEvC5uiX819J1lKd5dNLvu05z6+6tGLnanGcJWZL4zZqP8NeVdRPe60km+Pqh13nk9JHc+MmbXZjzAlpZMo+fLbuGDWVVad//5emjbNq/g6SNp505iVeWeeiqa/m7uvRxda/2nedLB17mrUFnnnh0ES2Jwl23/juzfHLxbPhuyxoeXXk9DYFQ2ve/eeRNvvbOa7k7kLQAXQieO3cSXQhuLK+Z8H59oIh765fiUxRbliYmxdCdncbfPr+J+xe1oaQJRU4aBnfv3cZ3ju1xsoqO8p1je7h777a0La8iSdy/qI3b5zc5WkdHBXRNWfqDlnpTCW5+47c8eeZdJ6uXEzx55l1ufuO3kw6eJ7OhXTjq0rp/aGIffiw6yIadW9jRe9axeuVa2tF7lg07t3AsOvEpzaYNnXRpddA2j50+ylNnLu0XvdDdwYZXtnAkMuD0Pcu5dCQywIZXtvBCd8dFez115jiPnT7qaL0knvsfx2dhjYEQiiTlRVRFLrAwWIwuBCdjEWcrYi4kOo/jhsgzcumHNmc2U12swRWQy6womMDC6VJIVdm86kbeue5T3NvQkvX8721o4Z3rPsXmVTcSUlXHr9eulBNjIDv410Vt3FFjPlDl58s/xDOd79GTjM8yV5Nyr5+fL/8QErA0FOZYdJBv5HB8WjaZE12YT1bY1HDpUdwSoGTx5EkFaUxumxpa8Tm4PWQnc0JAn16wkEqv/+L/J2MRziez51d0PhkbM5Os9Pr59AIbH+vkIHNCQPc1LRvz/8u92T/ge3ye48ssVAoutHl8ai+pYF14rJvIy72dWS9nvIDWhatoL6lw/PqtTgXfAv1j01UTXtthwQlh6fJMV3ahUdDT+HKvjztrxz7Ksi+V4KAFG5AHh3rpG7djfmftohHvSudtYVUq6BboC/VL8Y+bDb3S24mwoCwxkvdo/LLC5+tbnDaDpRS0gP6h8coJr1kxgJ4q7y81FvZgumAFNN8XpDlNzJcV45+p8m4OFjPfF3TaHJZRsALqScYnrDT3p5LsHrAuvmr3QBf9qbEPmUtXj0KiYAWUEgb37nuJYd18EEtU1/jivu2WRnYkDYMv7ttOdKTMYV3j3n0v5cQ5RVYh8eyPHXcos5Kwx8uVoTIORvomtA6FVKYjaEkknilsAblYhBCgJZMqwhhC6MXYfACTS74jADEkI4xzzKGgPZcsIQwQok9GiGOugFwyRggQxlEZxCEKeJbgYhGmZg7LCPE6RmGdnu5iA4YOwnhTRrANQxeuiFxmjKGDoQsEL8rAOQz9L2gWPXLapfDQUmDofwHOyEgSCPE4ev49OtvFIXQNhHgSSUJG9QDicQwthlbAq6Yu2UFLgpGKgXgU1YOKogJ0Y6QeIRn9sikoF5dJSEbB0B5BVrtRVMwuzOMHIb6LloyQKtydY5dZkoqDlowgxHfx+DG7MAGoPpDUM+j6t4lFQTec9pR0U64l3cDUhv4AknoG1QfigjuHJIG/CJB+RCq+h4R7WobLOBIR0BJ7QPpv/EWmZhjtD6R6wVeUQhh3EB0aJIvnMbvkOYkoRIeGMPQ78RWlRntvjN2C9wfBV3QUQ/sskT6dAvakc5khyThE+nQM7R58RUfwj3XPHSsgSYZAMXiDz5OKfYWhblwRzWGScRjqhlTsK3iDzxMoZrzbz8TTORQVikpB6D9jeEDH0H9KSaVCATuGu6QhEYXBLp1k/MsUlT5EUSkjSz5jSH+8i+qFUDkgPUSk5zy9yV9SUllCoARk1/GsoDEMiA3CYFcEPbWRUPmzhOYx2frg5GpQPVBcDiVVz6Gn1tB1cg/9nbjrRAVMKg79ndB18i301DpKKp+luJypFpcV7rp18gxlGbx+8Ph6MbRHGDgfJzZ0NQgPiidtk+aSh2hJGOqB7vdjRHr/g2DJ5wjP76QozHSPwVC466NTZy5J4PGBL6ijenYQH/wFA50S0YEV6JoXRTGFJmXvwCYXGzB0c1ti4Bx0n4wy0PkQinIHZQt+Q7haH73WMxUSWx6ceaFCQDIGkT4Y7KogMfRZkO7GF1xNoEQiUALegDmGUlRzxO4Ky1lM11NzB11LmvcvNgixQUEi+hcQT+ALPUZJZTeheeb9y+CeZSag0ZXSkhAdgEgPRPur0ZI3AOuAVqAZqARCgLs76ywpIAJ0ASeAd4DXUb3bCIbPESqHYKn5o7+MH/v/A1A5FMyh+pSSAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/in_app_notifications.7ee6753b.png\";","module.exports = __webpack_public_path__ + \"static/media/welcome-profile.a281fc2c.png\";","module.exports = __webpack_public_path__ + \"static/media/welcome-edit.f9975f2e.png\";","module.exports = __webpack_public_path__ + \"static/media/welcome-challenges.576c6fed.png\";","module.exports = __webpack_public_path__ + \"static/media/logo.febe5755.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAMAAABrrFhUAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAACnVBMVEUjRowlR4tLXnNpcWBqcV8mSIp/flHlvBD/zACCgFAsS4fDpybEqCWznjC1ny9eamdkbWPCpyc/V3r9ywH+ywFBWHmXjEKZjkEnSYnqvw3twQwoSYlrcl5vdFzDqCbGqSREWneYjUGbj0DswAzuwQttc11wdVvFqSXIqiNDWXhFWneekT7vwgoqSohydlrKrCFGXHWdkD+ekT0pSojvwworS4dxdVtydlnKqyLLrCFGW3ZIXXSgkjzxxAl2eFfNriBKXnOfkj2jlDvwwwl0d1h3eVfMrSDPrx9JXXShkzyklTrzxQgtTIV4elbRsB1NYHGklDqllTksTIbyxAj0xQd4eVZ6e1XQsB7SsR1MX3JPYXColzf1xgcuTYV9fVPVshtRYm+qmTb5yAT6yQNCWXjQrx47VX3Orh88VXxVZGw1UYBSY25ibGSPiEesmjW8oyvZtRjpvg73xwXatRitmjSAf1FTY20xToNOYHFsc118fFOLhUqplze3oC7WsxrkvBFZZ2locGCGgk2Vi0TguRSvmzO9pCrcthfrwA2+pSlfamb2xgb2xwVfa2Y9Vnw+VnurmTWumzRlbmJWZWxYZ2r4yAQvTYSwnDJhbGRQYW/pvw5SYm46VH3TsRy5oSwkR4uUi0RUZG3YtBm6oiyXjUKaj0Bzd1lXZmvApij7yQN5e1VaaGnctxYwToSikzt7fFT8ygJcaWjfuRQyT4N+flKBf1Bga2XhuhMzT4LJqyMzUIKnljiDgE+Fgk1jbWPjuxI0UYE5VH43Un/iuhNAWHmwnDPnvQ+xnTF+fVK2ny+TikWRiUY2UoA5U36ckD+7oivovg/XtBmIg0yHg0zBpii/pSludFzbtheNh0jeuBVbaGjduBWWjEOJhEsAAADrGpS8AAAAAWJLR0Te6W7imwAAAAlwSFlzAAALEgAACxIB0t1+/AAAB/hJREFUeNrt3fl/TFcYBvARkhxLpCYTEaEJgpIQStSSSFqqSmwhdkpC7FvUUiRiV1tr6aZIS61FU2uLFrV3o7rp9r90KG1muXfOuXPOeU7S9/u7O+/z9vN5O7lzz3tdLkIIIYQQQgghhBBCCCGEEEIIIYQQQtSpFVG7TkQtdBUwkVHRzCu6biS6Eox69dljDeqha4GIYf9qiK4FIZZV8RS6GoBGVRvQAF2Nfu64qg3wxKPr0a4x85GArke3Jom+DWiahK5Is2bMT3N0RZo97d+AZHRFesXH+TfAk4KuSasWLEBLdE06JbUKbEDq/2kMtmZBtEFXpVHbYA14Bl2VPu08wRrgaY+uS5sEFlQaui5dkpoGb0B6B3RlmjRnFjqiK9Mk2aoBGejK9GjvsWoA64SuTYvOlvnZs+jadOiSat2Arpno6jToxmw8h65Og+52DeiBrk69nh67BrBe6PqUS7PNz7LQ9anWId2+Adk1fQx2ZCH0RleoWEaoBuSgK1SrV6j8jOWia1Tq+dANeAFdo0qZfUI3ILsm/1beN3R+xl5EV6lQP54GvISuUp3+PPkZi0DXqczLfA0YgK5TlcxsvgYMzENXqkhvvvyMDUJXqkgObwMGoytVI4I3P2ND0LUqMZS/AcPQtaqQP5y/ASNq4hgs4M/P2Eh0tQqMEmnAaHS18o0Ryc/YWHS90g0Qa8A4dL2y5Q0Ua8D4CeiKJRsklp+xieiKJRss2oBX0BXLNVY0P2OT0DVLNU68AZPRNcvkLhRvQNEUdNXy1Jsqnt/7N2GNuTtazHUrMNC06ejKZcib0Xm8s/zeLwNpM6rhX0WRM1Nmze4WNSdt7ryM+QtKnIZ/omTBwox5r6bNWdRt9uKUmWaeMFziXhr72rLlCStKk8tWCn7jEzVwZVly6YqE5ctax451L0Elzi+OKF9VsHrN0JhGo9amx4UfyylP+trBjWIGrFldsKo8ojhfde7cqKx163M2JBbhEtsr2rgh5/V1WYvU/LDQvwc6H79+ClqwaTM6lYgtW2Xn38bxu65Jst+Q3IA30YlEbZebP9/Bl3msQrlfpGeg84grl9qAHeg44ppJbcBOdBxxu6Q2YMJb6DyiCt+W2gDXO+hAomLk5ndNF/hlzwSbt0lugOvdLehMIkpmy87vcr23AJ2K3+735ed3ufbsRefiVVasIr/362ApOhmffcpuDFR84Am/PNU8jStU5fdqY/z3gULF564WJ4Zfo0qtPlSb3/uFoAyd0c5+6f/7D5R3AJ3S2notPyPU+gid08pBXbsZDxl5e6RI43mrna3Cr1e21MP68rtc7v3ovP4WunXmd7kmrEcn9nVE+0NVkS3RmatKQ/xqWmDMT2RHjwHie+1KDb92Gbp+jMnvcsUvRGd/6DhwHeeJI+j0jNU/gcvvHYUcZ2HVOol+aOSTo8j4lQY8UftpV1z+PrHo9A+1O47KfyoFnf0fp+uHn8WJtqfRyZ+IFDgQJs+wJujcVZyp1B2/8iw6s6+tmh+hGX4Ondhfz1M685/vhM4b6LPk8HPx+vwCOm0wTS7qyr/C1BXEl7SMwsov0DmtzdbwFMGIL9Ep7fQ6rzr/5f7ojPauODwdwitnJjphKPnTVOafWg0OlF4doS5/ieZ7385kqWtAZ3Q2LofVNUDrjz+OXVHXgK/Q2bjkq2sA7JSUEI6liU7lorNx4dqZ50z1WDiq8HCJ5GMgilxT14BodDYe29TlZ+w6Oh0HhSOgeuyZm6uyATfQ6ThcVtmAm+h0oblV5mfM/DdTcq+NdMb8IbBdbQPMHwLRahtg/BC4rjY/Y6Yv1xFam+iE6asWFY8Axm6hE4ageAQwtgCd0J7yEcCY2W8lFF4bKG4ZOqOtG+obIPtQsFw31TdgNzqjnSnq85s9BEbqaIDJQ+CWjgaYPAS0HDBPRKe0lqIjv8kv5tQyAhi7jc5pScsIYKwhOqclTTsmWqk8Hx+O9nrym/taymUOssQ5ebIuCp3UQoxokOi68d4/IM8K30i/g05qQXC3QtHXj1+23uUbwROIhg6BTmIpMjr99097dhf7t2YOgdsiEfoc8/mvWFEgdPLIzCHQUCDBrYCnfb4V2VZWis4a1Ebu+q8FXXm6if8x21QThwD3CKhsYfFu4czG3GcQc9Fpg7jNWfs0m52/ubzP2Rp2YOgRvhEw/IztopNaE/neSbgPnTZQBddakdKroa7z3R2e66Tr2hfDj+fpwJU7eK60g+eb4Rh03gBRIWuuTONcc5T/feg/EMwbAiFX7e0VeH3YkNGhrmbcEKgIsU5j/CWhc/6RdUOcOjBuCOTa17te+H0pxXer1xA4a1fsvTpOLln7nt01L6ET+7EZAXEnHe44npBl8/aOu+jEvmxGwA+znF92kvXywj5mDQHLEbDlflhLTiJ/tHyxhVmv5rUaAT+FfczL/bPFpc06QBt8BCS2kXHtX4LfajuAzuwj2PIAz0VJR3yWDAs2DM+jM/sI8mzUrxLPuO2cH3h9sx6UCNi6XfJA6hn/pAcBLy0bhc7s46BfdW3byf6E+AZ+H9ECndmH22fjdGpfFffsDjWt+hmFhp2eWV5l+M1VtOHjwuQqq83voxP7qWjxpLLfflf3KeV/PGnyn+jAgWIf3dDcvbyDyg/p8tejn+CnbUKnDar4XJ2lyrf7RQ6pvXUPOikhhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQggx2N+dGbYQZhphXAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAMAAABrrFhUAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABKVBMVEUjRowxToNYZ2p4eVaVi0SwnDPGqSTWsxrnvQ/wwwn0xQf/zAAoSYlVZGyGgk27oivmvRA3Un95e1W3oC71xge6oiwwToTFqSX8ygJ6e1VSYm6smjX2xgZTY20lR4tqcV/NriAkR4vYtBlaaGnTsRw7VX2ynTGznjA8VXyAf1E/V3rMrSBydlnzxQgpSoiplzfRsB1MX3Lpvg5ga2VpcWD6yQNxdVtrcl5ibGRKXnOqmDa2ny9YZmv+ywHZtRhncGGrmTV7fFQ4U38nSYnyxAhUZG2Hg0y5oSzlvBAyT4N4elaUi0SYjUGxnTHVshvovg+WjEMzT4L2xwXOrh/UshuBf1BAWHlzd1mqmTbSsR1hbGRNYHEqSoh0d1jHqiRZZ2mwnDLXtBkAAAA03rs4AAAAAWJLR0RiK7kdPAAAAAlwSFlzAAALEgAACxIB0t1+/AAABmZJREFUeNrt3YlCE0kQBuAQQq4GhRACSEi4goQhnKJyiCiosB6sCLqoi/r+L7EEliEwR2Z6uuvvMPU9Qf+lwExPd1UiwRhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMaZSV7I71ZPOZHN5IfK5bCbdk+pOdqFXRaO378HDfuGq/+GDvl70+vQaKAzmha/iUGEAvUpdSoXhERHASHq0hF6rBo/GykHSXymPjaPXq1alOhE8/ZWJagW9amUmq1Nh4zdNVSfRK1djekYmftPMNHrtCtRmZeM3PZ5Drz+iSj0fJf/FY1K9o38VzFvR4jdZ8+gU8hYa0fML0VhA55C0uKQiftPSIjqLjNqyqvxCLNfQacJbWVWXX4jVFXSesNaKKvNfvCStoROF82RdbX4h1qvoTGE8DfTaF87IU3Sq4Koa8l9U4Bk6V1DPlf////+n4Dk6WTAbEZ9+vRU30NmCqGV15Rci2wHPA70Kn3+cls1/JtzUmV+ITXS+dhb05hfC8DejeSXvf34aRr8dVyzd+YWwTN4hqevPL0QdndLbnLYngFZ5c/cJtyjyC7GFzull+wVNAcQ2Oqm7Sen9/7BmzPxiUqXKL4SRewMVqe9fcnZM/FP4ki6/EC/RaV1YlAWw0GmdxinzC2He+YFd2gLsovPeVQpx/kOFsmmnaF7R5hfiFTrxHcPUBUijE982oGUj3M/Ia3TmWwrU+YUooDPfMkRfgCF05lZ7+/QFaOyhU7d4Q59fiD506hZvEQV4i07d4h2iAO/QqVscIApwgE594xCRX4hDdG5bElOAJDq37S9MAcx5HXiPKcAHdG7bR0wBZtG5beSvgleG0bltnzAFyKBz244wBVhF57YBXoWa9tG5bSQfhZ2K6Nw2TH4h0Lm5ANdi/yMQ+1+CSu9GBGfOn8EMpgDmPAjF/lEY9DL0EZ3blsIU4G90bhtoQ8Scb0Ox3xL7jCnAZ3TuG/3R04Rn0LY4fxiJ/aex2H8c3dN+UcQpb9Ln8dgfkOAjMq/jfkgqkaYugGHH5PigZOmYNv+xaUdlY39Ymo/LJ75Q5v+CTusi9ldmKjt0+Y28NBX7a3OEFydPzLw4mdimKoA5m4F3bNHkN/byNNH1+aK51+dpGiicolP6oGihMWHkn8BrBE1UvqIz+vumuwDf0Anb0dxI6R90vrYWz3TmPzO/lVbsm6klEhuK24neKHdEOz1uqMgtNbmp6sX/AfVtdTvo37/pu+rGyt/RicL6oba19g90nvBqCp+Izjri7/9dP5W119/8ic4iSdGAhX/ROeR9taLnnzD8/ddf5TTqkJVTo/c/ApgbjJJ/0OD9v8CmT2Tjn9yHQUuJ5qgtqa9mO88M/f4hIebD1i6Nj4U4Q3J838btXSqNngcbuHh+LwcuXor3yM0r8R66eu3wVyH1+/zPUa588fOeO/pz/jtV+GVOUxjGGGOMMcYY89aV7E71pDPZHKiJTlM+l82ke1LdyS7a7D6vtCiEr9LtNzVQKDZTSoVh8iuSYYyktW6nPRojniMho6xrQ1ViaxtFx5b6ZJVwjlJ0U1XFH1Wmya7DqDKj8rNabRYdR8ZjVR9WK3VD/+y1k68r+VUwb6GDyLMUTGhVc8wFpRF1Su+isoNOKEuRDtjXtM7RprEc4YjdCqhXplqrK7L517Qd/KdVXJPL/0TTsX9661KXrXUceUeROWqv59IDrAKhD9vruvaCEva6zUaHPv16K4a6cKXz6htKmCt3vffg+cdpOfgzoebrryibQfMvoFeqS8A3I/1X4FEagd6OKZogoFhBdkhI2mCg1Nvnp2mEgpJvv0+4hV6jXm1b8Gy/QC9Rs23//HTtsFBm/L+YEDZEQ/HdG6h01PcvOb6t+EibIqL4NWO00IujYHnnJ26MiuJ9foC4NS7Krlf+Ugec/1Ch7HWKhrw9NopXW27yBukoHo3Z6Vvko3i05h9Fr4uO+3AGwJgMFNfxHIhBKSgNtwEtkFE5KG4jeiDDklDchjRBxmWhuI3pOkAvipLLoLZD9JpoOa+qg4Ymojj7s4PGZqI4Xwfeo5dE64OjAKDRuSizjgKAhiejOIc2f0IviZZzbPcRekm0nIPb99FLorXvKMC9/ijsVHQUAL0ialwALgAXgAvABeACcAG4AFwALgAXgAvABeACcAG4AFwA9IK4AFwALgAXgAvABaAvwH8971ojKgAQHAAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/defaultAppIcon.7d1de0a1.png\";","module.exports = __webpack_public_path__ + \"static/media/in_app_notifications.96c0cc24.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAMgCAMAAADsrvZaAAACiFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD23nP12GT311T41U7wz0vtzEr60i39zQ3/zAD211n50jj22G741Uf61UD22Gn8zxn023rw47Dr6+vn6Ojj5OXf4eLb3d7U19jW2Nrh4+Pp6end3+DM0NLO0tPl5ubZ3N3S1dfQ09XY2tutqKqYjI2ek5Whl5mHcnF/bG2poqS6t7lzXF5kTE9lSUppS0tqUFJxUk96Z2rAwMJeQ0dbQkZhRklqTEt3WFSQgYNsVllaQUZ1YmS0r7J2VFB8YV+7ubt1U094VVDEycqxqqxsTkyDa2qWhoVvTk1xUE6PenqJenxhSk55XFq3jWvjrnnmr3i+lHDWpHXnsHmLaFnps3zgrHjvv4bwwIfOnnLuvYOkfmV+XlTGmXHtuoGcd2KofmLlr3nquICyiGiadV/svITaqnfXqnzOpHiTcF7gsoCthmjOmW7cpnTYoXHSm27UnW/iq3YuVmkdZHwqXXJLTlhBXGgAbY4QZoOihmxha24McY2QjXhzjoMAbpBaf4Q5fYkod4msnn5Zc3soiaoAgLEAcpcAgbM4h55eWFxHg5QNhLAAfKobhqwAdZ1kioQAeaVxbWsAcZVke38Afa2fm4Bxlp6qvb9TmKsWeJVuoq61w8WBqrJFkqmdub1gnat2pK6OsLY4j6oBb5JYl6cOdZUffZkAd6AIc5NGjqLn5+fc3NzIyMjh4eHo6OjV1dXd3d3U1NTV1dXk5OTX19fQ0NDg4ODM2Nrb29uArLaXucDR0dErgpuxyMzPz8/i4uLCwsKrwcS6y8vH1NTc3Nzg4ODExMTMzMwTolXLAAAA2HRSTlMAChETGB0fJiEaAgUMDgckFR9wr8DHye/+/5znPM/cV/tk///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////kmjjI8nqpJFjWaRK4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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAMgCAMAAADsrvZaAAACqVBMVEVHcEyHP0+LP0+LP1GLPlGPP0+KP0+KP1GLPlGLPlCBOkt6N0dvMkFhLDloLz1yNEN9OUmEPE2LP1GKPlCKP1GKP0+KP1GGPU9rMT9eKjdTJjFXJzNlLjuMP092NkVaKTSIPU56N0ZpMD16NUeIPk9xM0KKPlBfKjcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlLjuHPU+GPE2AOUt7OEZ4NkRpLz5jLDlMIS5bKjRtYjatoVvPz7PIz8pxSlONjXHN0b7I0tbByMxpRlDJ0MqOV2XEyc6WW2qPinHIzsvHzsyaloOoqJyfpapmZmkRCwvDhyHOq2XRlCDLu5LKkRrQmCvKx7TPoELJzsvRokHL0crTlx72wQb1zSjL0sn/zADxugrutwyxeCHqsw7iqRTuzkPqzlHZnhr8yQLgz3nc0IaGPE1/Okm2gBu5iBXS0a/coRj8zA3Wmhz4zRvEzNF6gYG7xMjCys86Pz/osBCUZh3OkCH5xQTjz2uVbhDPkx791Brc1Jb92CnV06v62DTS07bL0szz10rfpRbBzM5fPBbJjSLw1lTp1mrzvgj41i7LypjQwU7Mv1PCxZ29sU0jIxFVPgjOlB3krBL61ircxka5gSDmyzyvfxfv0DTx0jL11C7cohfQlB3Tlh3SqlXPz8/NrGbI0tXH0dXI0dXH09fI0dbH0tbH0tXJ1NTHz9fH0dfH0tXI0dbI0tbH0dbZvFzpzlPjyj7p0V7p02jt0Df82jT15mc9MxT46Wj//1VsdIVCSmCFjpvV0Kf362dKUmegq7OEjZqdp7GBiZhpcoKao6yVnap+h5RocIFmbn+Ol6R5gpJ3f41jbH2FjpuHkZ5+hpVxeopia3tJUWZ4gI+TrjmRAAAA43RSTlMAIECAwBAwcLDw////////////4KBgkOH//////1D///DV82j/bNB4ChETGB0fJiEaAgUMDgckFXTRwamwo3tuU/ZBcPj++Vr6/////f///179/WuEe0YryP///8L/////////////////mv//////////pa6TjP//////+k+81zT/aff//1z3////////////2EPm////57OFfaRtKznk//eVpK6A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\"","module.exports = __webpack_public_path__ + \"static/media/logo-white.77e4f124.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/welcome-challenges.214f75b3.png\";","module.exports = __webpack_public_path__ + \"static/media/welcome-actions.bbc15393.png\";","module.exports = __webpack_public_path__ + \"static/media/welcome-activity.48d001f8.png\";","module.exports = __webpack_public_path__ + \"static/media/meta-image.9c1650ac.jpg\";","module.exports = __webpack_public_path__ + \"static/media/meta-image-horizontal.72f45de4.png\";","module.exports = __webpack_public_path__ + \"static/media/landing-mockup.e4e1334f.png\";","module.exports = __webpack_public_path__ + \"static/media/app-mockup.3e10c3f9.png\";","module.exports = __webpack_public_path__ + \"static/media/landing-mockup.e1eddcea.png\";","module.exports = __webpack_public_path__ + \"static/media/app-mockup.0926ab47.png\";","module.exports = __webpack_public_path__ + \"static/media/landing-mockup.e0e8c13d.png\";","module.exports = __webpack_public_path__ + \"static/media/app-mockup.de6658a5.png\";","module.exports = __webpack_public_path__ + \"static/media/landing-mockup.61d865a3.png\";","module.exports = __webpack_public_path__ + \"static/media/app-mockup.5c1167bb.png\";","import { createContext } from 'react';\nimport { createContextualCan } from '@casl/react';\n\nexport const AbilityContext = createContext();\nexport const Can = createContextualCan(AbilityContext.Consumer);\n","export const PERMISSIONS = [\n {\n action: 'activate',\n subject: 'Challenge',\n identifier: 'activateChallenge',\n },\n { action: 'create', subject: 'Challenge', identifier: 'createChallenge' },\n {\n action: 'change',\n subject: 'AppContext',\n identifier: 'changeAppContext',\n },\n { action: 'deactivate', subject: 'User', identifier: 'deactivateUser' },\n { action: 'delete', subject: 'User', identifier: 'deleteUser' },\n {\n action: 'remove',\n subject: 'UserFromCommunity',\n identifier: 'removeUserFromCommunity',\n },\n { action: 'view', subject: 'UserProfile', identifier: 'viewUserProfile' },\n { action: 'edit', subject: 'Actions', identifier: 'editActions' },\n {\n action: 'edit',\n subject: 'CommunityActionAppendDescription',\n identifier: 'editCommunityActionAppendDescription',\n },\n {\n action: 'edit',\n subject: 'CommunityActionExclude',\n identifier: 'editCommunityActionExclude',\n },\n {\n action: 'edit',\n subject: 'CommunityActionOverwriteDescription',\n identifier: 'editCommunityActionOverwriteDescription',\n },\n {\n action: 'edit',\n subject: 'CommunityActionPhoto',\n identifier: 'editCommunityActionPhoto',\n },\n {\n action: 'edit',\n subject: 'CommunityActionUrls',\n identifier: 'editCommunityActionUrls',\n },\n {\n action: 'edit',\n subject: 'CommunityActionYoutubes',\n identifier: 'editCommunityActionYoutubes',\n },\n {\n action: 'edit',\n subject: 'CommunityProfile',\n identifier: 'editCommunityProfile',\n },\n { action: 'edit', subject: 'Challenge', identifier: 'editChallenge' },\n {\n action: 'edit',\n subject: 'ChallengePhoto',\n identifier: 'editChallengePhoto',\n },\n {\n action: 'edit',\n subject: 'ChallengeIcon',\n identifier: 'editChallengeIcon',\n },\n {\n action: 'edit',\n subject: 'ChallengeDescription',\n identifier: 'editChallengeDescription',\n },\n {\n action: 'edit',\n subject: 'ChallengeDuration',\n identifier: 'editChallengeDuration',\n },\n {\n action: 'edit',\n subject: 'ChallengeTeams',\n identifier: 'editChallengeTeams',\n },\n {\n action: 'edit',\n subject: 'ChallengeHowToWin',\n identifier: 'editChallengeHowToWin',\n },\n {\n action: 'edit',\n subject: 'ChallengeRules',\n identifier: 'editChallengeRules',\n },\n {\n action: 'edit',\n subject: 'ChallengePrizes',\n identifier: 'editChallengePrizes',\n },\n {\n action: 'edit',\n subject: 'Themes',\n identifier: 'editThemes',\n },\n {\n action: 'edit',\n subject: 'BillingInfo',\n identifier: 'editBillingInfo',\n },\n {\n action: 'manage',\n subject: 'MasterNotifications',\n identifier: 'manageMasterNotifications',\n },\n { action: 'optOut', subject: 'Challenge', identifier: 'optOutChallenge' },\n { action: 'reactivate', subject: 'User', identifier: 'reactivateUser' },\n { action: 'send', subject: 'OrgInvite', identifier: 'sendOrgInvite' },\n { action: 'set', subject: 'UserRole', identifier: 'setUserRole' },\n { action: 'suspend', subject: 'User', identifier: 'suspendUser' },\n {\n action: 'manage',\n subject: 'FlaggedUserActivity',\n identifier: 'manageFlaggedUserActivity',\n },\n { action: 'move', subject: 'UserOrg', identifier: 'moveUserOrg' },\n {\n action: 'view',\n subject: 'ActionsAdmin',\n identifier: 'viewActionsAdmin',\n },\n { action: 'view', subject: 'Assets', identifier: 'viewAssets' },\n {\n action: 'view',\n subject: 'ChallengesAdmin',\n identifier: 'viewChallengesAdmin',\n },\n {\n action: 'view',\n subject: 'ChallengeAnalytics',\n identifier: 'viewChallengeAnalytics',\n },\n {\n action: 'view',\n subject: 'ChallengePenalties',\n identifier: 'viewChallengePenalties',\n },\n { action: 'view', subject: 'Communities', identifier: 'viewCommunities' },\n {\n action: 'view',\n subject: 'CommunityAnalytics',\n identifier: 'viewCommunityAnalytics',\n },\n {\n action: 'view',\n subject: 'CommunityMembers',\n identifier: 'viewCommunityMembers',\n },\n {\n action: 'view',\n subject: 'CommunityProfile',\n identifier: 'viewCommunityProfile',\n },\n {\n action: 'view',\n subject: 'FlaggedContent',\n identifier: 'viewFlaggedContent',\n },\n {\n action: 'view',\n subject: 'MasterNotifications',\n identifier: 'viewMasterNotifications',\n },\n { action: 'view', subject: 'Support', identifier: 'viewSupport' },\n {\n action: 'view',\n subject: 'TeamAnalytics',\n identifier: 'viewTeamAnalytics',\n },\n {\n action: 'view',\n subject: 'UserPrivateData',\n identifier: 'viewUserPrivateData',\n },\n {\n action: 'view',\n subject: 'Themes',\n identifier: 'viewThemes',\n },\n {\n action: 'view',\n subject: 'ChallengeReports',\n identifier: 'viewChallengeReports',\n },\n {\n action: 'view',\n subject: 'BillingInfo',\n identifier: 'viewBillingInfo',\n },\n {\n action: 'warn',\n subject: 'ChallengeUser',\n identifier: 'warnChallengeUser',\n },\n {\n action: 'remove',\n subject: 'ChallengeUser',\n identifier: 'removeChallengeUser',\n },\n {\n action: 'add',\n subject: 'SlackWebhook',\n identifier: 'addSlackWebhook',\n },\n {\n action: 'create',\n subject: 'Community',\n identifier: 'createCommunity',\n },\n];\n","import { Ability } from '@casl/ability';\nimport { PERMISSIONS } from './constants';\n\nAbility.addAlias('activate');\nAbility.addAlias('deactivate');\nAbility.addAlias('edit');\nAbility.addAlias('optOut');\nAbility.addAlias('reactivate');\nAbility.addAlias('send');\nAbility.addAlias('set');\nAbility.addAlias('suspend');\nAbility.addAlias('move');\nAbility.addAlias('view');\n\nexport const getUserPermissions = (user = {}, activeCommunityId) => {\n const { communityPermissions = {} } = user;\n const id = activeCommunityId;\n const userPermissions =\n id && communityPermissions[id] ? communityPermissions[id].actions : [];\n const permissions = PERMISSIONS.filter(\n (permission) => userPermissions.indexOf(permission.identifier) !== -1,\n );\n\n if (Object.keys(communityPermissions).length > 0) {\n permissions.push({ action: 'view', subject: 'AdminScreens' });\n permissions.push({ action: 'view', subject: 'Account' });\n }\n return permissions;\n};\n\nlet rules = [];\ntry {\n rules = JSON.parse(localStorage.getItem('rules')) || [];\n} catch (error) {\n rules = [];\n}\n\nexport default new Ability(rules);\n","export const PREFIX = 'init/';\nexport const INITIALIZATION_SUCCEEDED = `${PREFIX}INITIALIZATION_SUCCEEDED`;\nexport const INITIALIZATION_FAILED = `${PREFIX}INITIALIZATION_FAILED`;\nexport const APP_STRINGS_REQUEST_SUCCEEDED = 'APP_STRINGS_REQUEST_SUCCEEDED';\nexport const APP_STRINGS_REQUEST_FAILED = 'APP_STRINGS_REQUEST_FAILED';\n\nexport function initializationSucceeded() {\n return {\n type: INITIALIZATION_SUCCEEDED,\n };\n}\n\nexport function initializationFailed(errors = null) {\n return {\n type: INITIALIZATION_FAILED,\n payload: {\n errors,\n },\n };\n}\n\nexport const appStringsRequestSucceeded = (data) => ({\n type: APP_STRINGS_REQUEST_SUCCEEDED,\n payload: data,\n});\n\nexport const appStringsRequestFailed = (errors) => ({\n type: APP_STRINGS_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n","import {\n INIT_STATUS_FAILED,\n INIT_STATUS_INITIALIZED,\n INIT_STATUS_INITIALIZING,\n} from './constants';\nimport {\n INITIALIZATION_FAILED,\n INITIALIZATION_SUCCEEDED,\n APP_STRINGS_REQUEST_FAILED,\n APP_STRINGS_REQUEST_SUCCEEDED,\n} from './actions';\n\nexport const initInitialState = {\n status: INIT_STATUS_INITIALIZING,\n errors: null,\n appStrings: null,\n isAppStringsLoading: false,\n appStringsErrors: [],\n};\n\nexport default function initReducer(state = initInitialState, action) {\n const { type, payload } = action;\n\n if (type === INITIALIZATION_SUCCEEDED) {\n return {\n ...state,\n status: INIT_STATUS_INITIALIZED,\n };\n } else if (type === INITIALIZATION_FAILED) {\n return {\n ...state,\n status: INIT_STATUS_FAILED,\n errors: action.payload.errors,\n };\n } else if (type === APP_STRINGS_REQUEST_FAILED) {\n return {\n ...state,\n appStringsErrors: payload.errors,\n isAppStringsLoading: false,\n };\n } else if (type === APP_STRINGS_REQUEST_SUCCEEDED) {\n return {\n ...state,\n appStrings: payload,\n isAppStringsLoading: false,\n };\n }\n\n return state;\n}\n","export const INIT_STATUS_INITIALIZING = 'initializing';\nexport const INIT_STATUS_INITIALIZED = 'initialized';\nexport const INIT_STATUS_FAILED = 'failed';\nexport const INIT_STATUSES = [\n INIT_STATUS_INITIALIZING,\n INIT_STATUS_INITIALIZED,\n INIT_STATUS_FAILED,\n];\n","export const LOGIN_REQUESTED = 'LOGIN_REQUESTED';\nexport const LOGIN_BY_MICROSOFT_REQUEST = 'LOGIN_BY_MICROSOFT_REQUEST';\nexport const LOGIN_BY_OKTA_REQUEST = 'LOGIN_BY_OKTA_REQUEST';\nexport const LOGIN_REQUEST_SUCCEEDED = 'REQUEST_LOGIN_SUCCEEDED';\nexport const LOGIN_REQUEST_FAILED = 'REQUEST_LOGIN_FAILED';\n\nexport const SIGN_UP_REQUESTED = 'SIGN_UP_REQUESTED';\nexport const SIGN_UP_REQUEST_SUCCEEDED = 'SIGN_UP_REQUEST_SUCCEEDED';\nexport const SIGN_UP_REQUEST_FAILED = 'SIGN_UP_REQUEST_FAILED';\n\nexport const CONFIRMATION_REQUESTED = 'CONFIRMATION_REQUESTED';\nexport const CONFIRMATION_REQUEST_SUCCEEDED = 'CONFIRMATION_REQUEST_SUCCEEDED';\nexport const CONFIRMATION_REQUEST_FAILED = 'CONFIRMATION_REQUEST_FAILED';\n\nexport const RESET_PASSWORD_EMAIL_REQUESTED = 'RESET_PASSWORD_EMAIL_REQUESTED';\nexport const RESET_PASSWORD_SENT = 'RESET_PASSWORD_SENT';\nexport const RESET_PASSWORD_SEND_FAILED = 'RESET_PASSWORD_SEND_FAILED';\n\nexport const RESET_PASSWORD_REQUESTED = 'RESET_PASSWORD_REQUESTED';\nexport const RESET_PASSWORD_REQUEST_SUCCEEDED =\n 'RESET_PASSWORD_REQUEST_SUCCEEDED';\nexport const RESET_PASSWORD_REQUEST_FAILED = 'RESET_PASSWORD_REQUEST_FAILED';\n\nexport const LOGOUT_REQUESTED = 'LOGOUT_REQUESTED';\nexport const LOGOUT_REQUEST_SUCCEEDED = 'LOGOUT_REQUEST_SUCCEEDED';\nexport const LOGOUT_REQUEST_FAILED = 'LOGOUT_REQUEST_FAILED';\n\nexport const CLEAR_AUTH_MESSAGES = 'CLEAR_AUTH_MESSAGES';\nexport const CLEAR_AUTH_ERRORS = 'CLEAR_AUTH_ERRORS';\nexport const CLEAR_EMAIL_VERIFICATION = 'CLEAR_EMAIL_VERIFICATION';\n\nexport const EMAIL_VERIFICATION_VERIFY = 'EMAIL_VERIFICATION_VERIFY';\nexport const EMAIL_VERIFICATION_VERIFY_SUCCEEDED =\n 'EMAIL_VERIFICATION_VERIFY_SUCCEEDED';\nexport const EMAIL_VERIFICATION_VERIFY_FAILED =\n 'EMAIL_VERIFICATION_VERIFY_FAILED';\n\nexport const CREATE_USER_REQUESTED = 'CREATE_USER_REQUESTED';\nexport const CREATE_USER_SUCCEEDED = 'CREATE_USER_SUCCEEDED';\nexport const CREATE_USER_FAILED = 'CREATE_USER_FAILED';\n\nexport const REDIRECTION_AUTOFILL = 'REDIRECTION_AUTOFILL';\n\nexport const INITIAL_FORM_POPULATE = 'INITIAL_FORM_POPULATE';\n\nexport const INITIAL_FORM_SUBMIT = 'INITIAL_FORM_SUBMIT';\nexport const INITIAL_FORM_SUBMIT_SUCCEEDED = 'INITIAL_FORM_SUBMIT_SUCCEEDED';\nexport const INITIAL_FORM_SUBMIT_FAILED = 'INITIAL_FORM_SUBMIT_FAILED';\n\nexport const CLEAR_VERIFICATION_MESSAGES = 'CLEAR_VERIFICATION_MESSAGES';\n\nexport const SSO_AUTH_REQUESTED = 'SSO_AUTH_REQUESTED';\n\nexport const SSO_STORE_CONFIG = 'SSO_STORE_CONFIG';\n\nexport const SSO_CODE_EXCHANGE_REQUESTED = 'SSO_CODE_EXCHANGE_REQUESTED';\n\nexport const SSO_LOGIN_REQUESTED = 'SSO_LOGIN_REQUESTED';\nexport const SSO_LOGIN_REQUEST_SUCCEEDED = 'SSO_LOGIN_REQUEST_SUCCEEDED';\nexport const SSO_LOGIN_REQUEST_FAILED = 'SSO_LOGIN_REQUEST_FAILED';\n\nexport function loginRequested(data) {\n return {\n type: LOGIN_REQUESTED,\n payload: {\n data,\n },\n };\n}\n\nexport function loginByOktaRequested(code) {\n return {\n type: LOGIN_BY_OKTA_REQUEST,\n payload: {\n code,\n },\n };\n}\n\nexport function loginByMicrosoftRequested() {\n return {\n type: LOGIN_BY_MICROSOFT_REQUEST,\n };\n}\n\nexport function loginRequestSucceeded(token) {\n return {\n type: LOGIN_REQUEST_SUCCEEDED,\n payload: {\n token,\n },\n };\n}\n\nexport function loginRequestFailed(errors = []) {\n return {\n type: LOGIN_REQUEST_FAILED,\n payload: {\n errors,\n },\n };\n}\n\nexport const signUpRequested = (form) => ({\n type: SIGN_UP_REQUESTED,\n payload: {\n form,\n },\n});\n\nexport const signUpRequestSucceeded = (token, organizationPassphrase) => ({\n type: SIGN_UP_REQUEST_SUCCEEDED,\n payload: {\n token,\n organizationPassphrase,\n },\n});\n\nexport const signUpRequestFailed = (errors = []) => ({\n type: SIGN_UP_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const confirmationRequested = (orgId) => ({\n type: CONFIRMATION_REQUESTED,\n payload: {\n orgId,\n },\n});\n\nexport const confirmationRequestSucceeded = () => ({\n type: CONFIRMATION_REQUEST_SUCCEEDED,\n});\n\nexport const confirmationRequestFailed = (errors = []) => ({\n type: CONFIRMATION_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const resetPasswordRequested = (\n password,\n passwordConfirm,\n userId,\n token,\n) => ({\n type: RESET_PASSWORD_REQUESTED,\n payload: {\n password,\n passwordConfirm,\n userId,\n token,\n },\n});\nexport const resetPasswordRequestSucceeded = (returnURL) => ({\n type: RESET_PASSWORD_REQUEST_SUCCEEDED,\n payload: {\n returnURL,\n },\n});\n\nexport const resetPasswordRequestFailed = (errors = []) => ({\n type: RESET_PASSWORD_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const resetPasswordEmailRequested = (email) => ({\n type: RESET_PASSWORD_EMAIL_REQUESTED,\n payload: {\n email,\n },\n});\nexport const resetPasswordEmailSent = () => ({\n type: RESET_PASSWORD_SENT,\n});\n\nexport const resetPasswordFailedToSend = (errors = []) => ({\n type: RESET_PASSWORD_SEND_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const logoutRequested = (errors = []) => ({\n type: LOGOUT_REQUESTED,\n payload: {\n errors,\n },\n});\n\nexport const logoutSucceeded = () => ({\n type: LOGOUT_REQUEST_SUCCEEDED,\n});\n\nexport const clearAuthMessages = () => ({\n type: CLEAR_AUTH_MESSAGES,\n});\n\nexport const clearAuthErrors = () => ({\n type: CLEAR_AUTH_ERRORS,\n});\n\nexport const clearEmailVerification = () => ({\n type: CLEAR_EMAIL_VERIFICATION,\n});\n\nexport const emailVerificationVerify = ({ email, verificationCode }) => ({\n type: EMAIL_VERIFICATION_VERIFY,\n payload: {\n email,\n verificationCode,\n },\n});\n\nexport const emailVerificationVerifySucceeded = (email) => ({\n type: EMAIL_VERIFICATION_VERIFY_SUCCEEDED,\n payload: {\n email,\n },\n});\n\nexport const emailVerificationVerifyFailed = (errors = []) => ({\n type: EMAIL_VERIFICATION_VERIFY_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const createUserRequested = ({\n username,\n password,\n organizationPassphrase,\n marketingEmailOptIn,\n}) => ({\n type: CREATE_USER_REQUESTED,\n payload: {\n username,\n password,\n organizationPassphrase,\n marketingEmailOptIn,\n },\n});\n\nexport const createUserSucceeded = (token) => ({\n type: CREATE_USER_SUCCEEDED,\n payload: {\n token,\n },\n});\n\nexport const createUserFailed = (errors = []) => ({\n type: CREATE_USER_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const redirectionAutofill = (email) => ({\n type: REDIRECTION_AUTOFILL,\n payload: {\n email,\n },\n});\n\nexport const initialFormSubmit = (values) => ({\n type: INITIAL_FORM_SUBMIT,\n payload: values,\n});\n\nexport const initialFormSubmitSucceeded = (email, resendVerification) => ({\n type: INITIAL_FORM_SUBMIT_SUCCEEDED,\n payload: {\n email,\n resendVerification,\n },\n});\n\nexport const initialFormSubmitFailed = (email, errors) => ({\n type: INITIAL_FORM_SUBMIT_FAILED,\n payload: {\n email,\n errors,\n },\n});\n\nexport const clearEmailVerificationMessages = () => ({\n type: CLEAR_VERIFICATION_MESSAGES,\n});\n\nexport const initialFormPopulate = (values) => ({\n type: INITIAL_FORM_POPULATE,\n payload: { ...values },\n});\n\nexport const SSOLoginRequested = (\n accessToken,\n refreshToken,\n authorizationCode = '',\n codeVerifier = '',\n) => ({\n type: SSO_LOGIN_REQUESTED,\n payload: {\n accessToken,\n refreshToken,\n authorizationCode,\n codeVerifier,\n },\n});\n\nexport const SSOLoginRequestFailed = (error) => ({\n type: SSO_LOGIN_REQUEST_FAILED,\n payload: {\n error,\n },\n});\n\nexport const SSOLoginRequestSucceeded = (email) => ({\n type: SSO_LOGIN_REQUEST_SUCCEEDED,\n payload: {\n email,\n },\n});\n\nexport const SSOAuthRequested = (config, returnLocation) => ({\n type: SSO_AUTH_REQUESTED,\n payload: {\n config,\n returnLocation,\n },\n});\n\nexport const SSOStoreConfig = (config, serviceConfig, returnLocation) => ({\n type: SSO_STORE_CONFIG,\n payload: {\n config,\n serviceConfig,\n returnLocation,\n },\n});\n\nexport const SSOCodeExchangeRequested = () => ({\n type: SSO_CODE_EXCHANGE_REQUESTED,\n});\n","import { flatten } from 'ramda';\n\nexport default class APIErrorResponse extends Error {\n /**\n * The JSON from this response if it was parse-able\n * @type {null|Object|Array}\n */\n json = null;\n\n /**\n * The raw Response.\n * @type {Response|null}\n */\n response = null;\n\n /**\n * Safely parse and set the JSON from a Response. Failure is a no-op. Always resolves with `this`.\n *\n * @param {Response} response\n * @return {Promise}\n */\n setJsonFromResponse = async (response) => {\n this.response = response;\n try {\n this.json = await response.json();\n } catch (ignored) {\n try {\n this.text = await response.text();\n } catch (ignored) {\n // do nothing\n }\n }\n return this;\n };\n\n /**\n * Is this error a client HTTP error as indicated by the status code?\n * @return {boolean}\n */\n isClientError = () => {\n return (\n this.response &&\n this.response.status >= 400 &&\n this.response.status < 500\n );\n };\n\n /**\n * Is this error a server HTTP error as indicated by the status code?\n * @return {boolean}\n */\n isServerError = () => {\n return this.response && this.response.status >= 500;\n };\n\n /**\n * If the response was JSON parse-able and contains a `validationErrors` array, we'll flatten it into a Map where keys\n * are the dot-separated paths of the errors' field keys (typically just the straight up name of the field for simple fields)\n * and values are arrays of objects containing information about the error that occurred, particularly including a `message`.\n *\n * The response shape is intended to be helpful in showing errors per-field like we do with Yup.\n *\n * @return {Map|null}\n */\n getValidationErrors = () => {\n if (this.json && this.json.validationErrors) {\n return this.json.validationErrors.reduce(\n (errorMap, { message, path = [], type, context }) => {\n const dotPath = path.join('.');\n const existing = errorMap.get(dotPath) || [];\n errorMap.set(dotPath, [\n ...existing,\n { message, path, type, context, dotPath },\n ]);\n return errorMap;\n },\n new Map(),\n );\n }\n return null;\n };\n\n /**\n * Resolves with an array of string error messages simplified/extracted from `getValidationErrors`. Unlike `getValidationErrors`\n * this method will always return an array and it will be empty if the response contains no errors or was not JSON parse-able.\n *\n * If a `fallbackErrorMessage` is provided than that message will be used instead of returning an empty array when getValidationErrors\n * returns `null` or an empty array.\n *\n * @param {string|null} fallbackErrorMessage\n *\n * @return {string[]}\n */\n getValidationErrorMessages = (fallbackErrorMessage = null) => {\n const fallbackMessages = fallbackErrorMessage\n ? [fallbackErrorMessage]\n : [];\n const validationErrors = this.getValidationErrors();\n if (validationErrors) {\n const messages = flatten([...validationErrors.values()]).map(\n ({ message }) => message,\n );\n return messages.length ? messages : fallbackMessages;\n }\n return fallbackMessages;\n };\n\n /**\n * Extract the top-level error from the response if there is one, returning `null` if there is not.\n *\n * @return {null|{error: string, message: (string|null), statusCode: (number|null)}}\n */\n getError = () => {\n if (this.json && this.json.meta) {\n const error = {\n error: this.json.error,\n errorCode: this.json.meta.errorCode || null,\n message: this.json.meta.message || null,\n statusCode:\n this.json.statusCode || this.response.status || null,\n };\n if (this.json.meta._error) {\n error._error = this.json.error._error;\n }\n return error;\n }\n return null;\n };\n\n /**\n * Get an array of all error messages in this response including the top level error message if any and/or the\n * validation errors if any.\n *\n * By default the return value is \"simple\" meaning if there are validation errors, only those will be returned. If there\n * are no validation errors then only the top level error will be returned. Otherwise\n *\n * If no error messages are found, this will return an empty array OR an array containing only `fallbackErrorMessage`\n * if it is provided and not null.\n *\n * @param {string|null=} fallbackErrorMessage\n * @param {boolean=} simple If set to false, all mess\n * @return {string[]}\n */\n getErrorMessages = (\n fallbackErrorMessage = null,\n { simple = true } = {},\n ) => {\n const fallbackMessages = fallbackErrorMessage\n ? [fallbackErrorMessage]\n : [];\n\n const validationErrorMessages = this.getValidationErrorMessages();\n const topLevelError = this.getError();\n const topLevelErrorMessages = topLevelError\n ? [topLevelError.message]\n : [];\n\n let messages;\n\n if (simple) {\n messages = validationErrorMessages.length\n ? validationErrorMessages\n : topLevelErrorMessages;\n } else {\n messages = [...topLevelErrorMessages, ...validationErrorMessages];\n }\n\n return messages.length ? messages : fallbackMessages;\n };\n}\n","import { LOGIN_METHOD_EMAIL } from './constants';\n\nconst DEFAULT_PROPERTIES = {\n loginMethods: [LOGIN_METHOD_EMAIL],\n apiUri: process.env.REACT_APP_JBE_API_URI,\n posthogConfig: {\n token: 'phc_i5W3kWO7f0Yx72z0lQobcWWzo5cDGbd66bISGHN3ewG',\n },\n firebaseConfig: {\n apiKey: 'AIzaSyAss9cc6FVNkKVNZrqhaO86joG08Ju03wM',\n authDomain: 'shine-app-c250d.firebaseapp.com',\n databaseURL: 'https://shine-app-c250d.firebaseio.com',\n projectId: 'shine-app-c250d',\n storageBucket: 'shine-app-c250d.appspot.com',\n messagingSenderId: '709167458225',\n appId: '1:709167458225:web:e495b574ad23a06f597f90',\n measurementId: 'G-H2QZCL66VK',\n },\n cookieYesConfig: {\n scriptSrc:\n process.env.REACT_APP_COOKIE_YES_SCRIPT_SRC ||\n 'https://cdn-cookieyes.com/client_data/0f3cb690981f2aba35a81a77/script.js',\n },\n intercomConfig: {\n enabled: true,\n appId: process.env.REACT_APP_JBE_INTERCOM_APP_ID,\n apiBase: 'https://api-iam.intercom.io',\n productTours: {\n challengeEdit:\n process.env\n .REACT_APP_JBE_INTERCOM_PRODUCT_TOUR_CHALLENGE_EDIT_ID ||\n '365420',\n },\n },\n colors: {\n primary: '#00B89F',\n primaryDark: '#007262',\n primaryForeground: '#00B89F',\n secondary: '#208DC7',\n secondaryDark: '#1479AE',\n accent: '#208DC7',\n accentDark: '#1479AE',\n warn: '#00B89F',\n warnDark: '#007262',\n EditingBannerBackground: '#f26549',\n loginFooter: '#0E133D',\n },\n fontFamily: 'effra',\n wordpressDomain: 'https://joulebug.com',\n};\n\nexport default DEFAULT_PROPERTIES;\n","export const LOGIN_METHOD_EMAIL = 'email';\nexport const LOGIN_METHOD_OKTA = 'okta';\nexport const LOGIN_METHOD_MICROSOFT = 'microsoft';\nexport const LOGIN_METHOD_AZURE_AD = 'azureAD';\nexport const LOGIN_METHOD_ADFS = 'adfs';\n\nexport const LOGIN_METHOD_GOOGLE = 'google';\n\nexport const SERVER_SIDE_PKCE = 'SERVER_SIDE_PKCE';\n\nexport const CLIENT_SIDE_PKCE = 'CLIENT_SIDE_PKCE';\n\nexport const SERVER_SIDE_NON_PKCE = 'SERVER_SIDE_NON_PKCE';\n","import DEFAULT_PROPERTIES from './default';\nimport { LOGIN_METHOD_EMAIL } from './constants';\n\nconst primary = '#033333';\nconst secondary = '#019486';\nconst accent = '#E89A30';\n\nconst WILD_FOR_ALL_PROPERTIES = {\n ...DEFAULT_PROPERTIES,\n appName: 'Wild For All',\n shouldShowSignUp: false,\n intercomConfig: {\n enabled: false,\n },\n cookieYesConfig: {\n scriptSrc:\n 'https://cdn-cookieyes.com/client_data/0f3cb690981f2aba35a81a77/script.js',\n },\n clientId: '623c976b957b2a4a160e8226',\n clientSecret:\n '00yVqKOf0HkcI4f0UWq40odd3L1YHe5aGHUX9tZLeFWMhtY5qTepsiGYDMB7Jls4Fe',\n loginMethods: [LOGIN_METHOD_EMAIL],\n apiUri: process.env.REACT_APP_WFA_API_URI,\n wordpressDomain: 'https://wildforall.org',\n privacyLink: 'https://www.wildforall.org/wcs-privacy-policy',\n secondPrivacyLink: 'https://www.wildforall.org/cui-privacy-policy',\n impactLink:\n 'http://wildforalldev.wpengine.com/wp-content/uploads/2022/04/Wild-for-All-impact-report-04-04-2022.pdf',\n allowPassphraseLessLogin: true,\n hasMarketingEmailOptIn: true,\n fontFamily: 'fauna',\n stringsNamespace: 'wildForAll',\n colors: {\n primary: primary,\n primaryDark: primary,\n primaryForeground: primary,\n secondary: secondary,\n secondaryDark: secondary,\n accent: accent,\n accentDark: accent,\n warn: primary,\n warnDark: primary,\n EditingBannerBackground: '#f26549',\n loginFooter: primary,\n impactTileColor: secondary,\n },\n supportedLanguageCodes: ['en', 'es'],\n};\n\nexport default WILD_FOR_ALL_PROPERTIES;\n","import DEFAULT_PROPERTIES from './default';\nimport { LOGIN_METHOD_EMAIL } from './constants';\n\nconst EARTHSHARE_PROPERTIES = {\n ...DEFAULT_PROPERTIES,\n appName: 'ES Engage',\n shouldShowSignUp: false,\n clientId: '5cca824a4b288b37890fe723',\n clientSecret:\n '03woAbS5r8XB118vHyxju3OYRds1pS3iiJPACy4CrkCKH6DiOB07Zg95WHSIgiie1J',\n loginMethods: [LOGIN_METHOD_EMAIL],\n wordpressDomain: 'https://esengage.joulebug.com',\n wordpressOverrides: {\n '/about': 'https://esengage.joulebug.com',\n },\n appStoreLink:\n 'https://apps.apple.com/us/app/earthshare-engage/id1462718042',\n playStoreLink:\n 'https://play.google.com/store/apps/details?id=com.cleanbit.joulebug.pbj.earthsharegl',\n appDescription:\n 'With EarthShare Engage, compete in challenges to improve your body, your community, and your planet. Earn points and build camaraderie by completing simple real-life actions as we strive towards common goals. Download today!',\n};\n\nexport default EARTHSHARE_PROPERTIES;\n","import DEFAULT_PROPERTIES from './default';\nimport { LOGIN_METHOD_EMAIL } from './constants';\n\nconst BLACKSTONE_PROPERTIES = {\n ...DEFAULT_PROPERTIES,\n appName: 'Blackstone',\n shouldShowSignUp: false,\n clientId: '60f0967be0b52680fad768c3',\n clientSecret:\n '02-CIRcJVwXsWiVYqfSVy5JGOhL6rR-FG_OCREzgLEyR1IEkLmEXXbg-2g0qITnt8S',\n loginMethods: [LOGIN_METHOD_EMAIL],\n wordpressDomain: 'https://blackstone.joulebug.com',\n appStoreLink:\n 'https://apps.apple.com/us/app/blackstone-energy/id1583055398',\n playStoreLink:\n 'https://play.google.com/store/apps/details?id=com.cleanbit.joulebug.pbj.blackstone',\n appDescription:\n 'With Blackstone Energy ecoBoss™, compete in challenges to improve your body, your community, and your planet. Earn points and build camaraderie by completing simple real-life actions as we strive towards common goals. Download today!',\n};\n\nexport default BLACKSTONE_PROPERTIES;\n","import DEFAULT_PROPERTIES from './default';\nimport { LOGIN_METHOD_EMAIL, LOGIN_METHOD_MICROSOFT } from './constants';\n\nconst betterLivingPrimary = '#0058A3';\nconst betterLivingPrimaryDark = '#004682';\n\nconst BETTERLIVING_PROPERTIES = {\n ...DEFAULT_PROPERTIES,\n appName: 'IKEA Better Living',\n clientId: '5720f445a08aad025c3c6f00',\n clientSecret:\n '02aBkGZzrcsbSUvyI_wJKknWxM1DeCBhO0O3GBwMemi12TrAcK6t-yFvLbxB_aeCMt',\n microsoftClientId: '38ee14d9-47a5-4f82-bcdd-36040975cb7f',\n microsoftClientAuthority:\n 'https://login.microsoftonline.com/7e1a2e8a-1c06-4fdd-90b7-ccd696f0c7ee',\n apiUri: process.env.REACT_APP_IKEA_API_URI,\n loginMethods: [LOGIN_METHOD_EMAIL, LOGIN_METHOD_MICROSOFT],\n colors: {\n primary: betterLivingPrimary,\n primaryDark: betterLivingPrimaryDark,\n primaryForeground: betterLivingPrimary,\n secondary: betterLivingPrimary,\n secondaryDark: betterLivingPrimaryDark,\n accent: '#1e3c7b',\n accentDark: '#1e3c7b',\n warn: betterLivingPrimary,\n warnDark: betterLivingPrimaryDark,\n EditingBannerBackground: '#ffa524',\n },\n};\n\nexport default BETTERLIVING_PROPERTIES;\n","import DEFAULT_PROPERTIES from './default';\n\nconst JB_PUBLIC_PROPERTIES = {\n ...DEFAULT_PROPERTIES,\n appName: 'JouleBug',\n clientId: '595409730b8c5839fa7059c7',\n clientSecret:\n '02EcKXRmMfwmVklnXHmli_vO-xnaWNyUOkAfj5NZISFShsrcYJDv0dEYKqLWXM1J1s',\n apiUri: process.env.REACT_APP_JB_API_URI,\n allowPassphraseLessLogin: true,\n wordpressDomain: 'https://joulebug.com',\n};\n\nexport default JB_PUBLIC_PROPERTIES;\n","import DEFAULT_PROPERTIES from './default';\n\nconst JOULEBUG_PROPERTIES = {\n ...DEFAULT_PROPERTIES,\n appName: 'JouleBug',\n clientId: '52c6e3a6f3b26c1b74a7cce0',\n clientSecret:\n '02EcKXRmMfwmVklnXHmli_vO-xnaWNyUOkAfj5NZISFShsrcYJDv0dEYKqLWXM1J1s',\n microsoftClientId: '71b90519-317a-4ab6-8f00-84dfac646535',\n microsoftClientAuthority:\n 'https://login.microsoftonline.com/cf1a8e4b-971c-4a33-83a7-db26afe7a6dc',\n integrations: {\n slack: {\n redirectUri: 'https://staging.web.joulebug.com/settings',\n },\n },\n wordpressDomain: 'https://joulebug.com',\n // Flag for enabling the org creation flow\n shouldShowSignUp: true,\n appDescription:\n 'With JouleBug, compete in challenges with fellow co-workers to improve your body, your community, and your planet. Earn points and build camaraderie by completing simple real-life actions as we work towards common goals.',\n appStoreLink:\n 'https://apps.apple.com/us/app/joulebug-enterprise/id1105090085',\n playStoreLink:\n 'https://play.google.com/store/apps/details?id=com.cleanbit.joulebug.pbj.carebug',\n};\nexport default JOULEBUG_PROPERTIES;\n","import DEFAULT_PROPERTIES from './default';\nimport { LOGIN_METHOD_EMAIL } from './constants';\n\nconst CEMEX_PROPERTIES = {\n ...DEFAULT_PROPERTIES,\n appName: 'Cemex Always In Action',\n shouldShowSignUp: false,\n clientId: '63867ee99d656099fd5d42ce',\n clientSecret:\n '067wdBM2MEhzne_xsJvXsHIAwydCrTkWBSrsBkZBKo9SMCrHAvDS-W3hUnVR7JCcjD',\n loginMethods: [LOGIN_METHOD_EMAIL],\n apiUri: process.env.REACT_APP_JBE_EU_API_URI,\n colors: {\n primary: '#0000B3',\n primaryDark: '#000087',\n primaryForeground: '#000087',\n secondary: '#53CC80',\n secondaryDark: '#38995C',\n accent: '#53CC80',\n accentDark: '#38995C',\n warn: '#0000B3',\n warnDark: '#0000B3',\n EditingBannerBackground: '#f26549',\n loginFooter: '#0000B3',\n impactTileColor: '#53CC80',\n },\n supportedLanguageCodes: ['en', 'es', 'de', 'fr', 'pl', 'cs', 'hr'],\n appStoreLink:\n 'https://apps.apple.com/gb/app/cemex-always-in-action/id6444710005',\n playStoreLink:\n 'https://play.google.com/store/apps/details?id=com.cleanbit.joulebug.pbj.cemex',\n appDescription:\n 'Have fun and make a positive impact with CEMEX Always in Action. You can compete in challenges with CEMEX co-workers to build a better future and improve our planet. Earn points and build camaraderie by completing simple real-life actions as we work towards common goals.',\n};\nexport default CEMEX_PROPERTIES;\n","import DEFAULT_PROPERTIES from './default';\nimport { LOGIN_METHOD_MICROSOFT } from './constants';\n\nconst VENA_ENERGY = {\n ...DEFAULT_PROPERTIES,\n appName: 'Vena Energy',\n shouldShowSignUp: false,\n clientId: '67e4901253c6f4e0fd667dbf',\n clientSecret:\n '01mnRqlgqfumbdxoLRoXYoZSS73GkEif4sWnOh06prGilFwAplUD19FNQzySiRlE6w',\n loginMethods: [LOGIN_METHOD_MICROSOFT],\n\n microsoftClientId: 'cb66abc1-bc32-4b18-8c9b-a0aa291aeda2',\n microsoftClientAuthority:\n 'https://login.microsoftonline.com/0532e3ca-5510-49ca-a1ec-37a28a1a9c5a',\n wordpressDomain: 'https://joulebug.com',\n appStoreLink:\n 'https://apps.apple.com/gb/app/cemex-always-in-action/id6444710005',\n playStoreLink:\n 'https://play.google.com/store/apps/details?id=com.cleanbit.joulebug.pbj.cemex',\n};\nexport default VENA_ENERGY;\n","import DEFAULT_PROPERTIES from './default';\nimport { LOGIN_METHOD_EMAIL } from './constants';\n\nconst REXEL_PROPERTIES = {\n ...DEFAULT_PROPERTIES,\n appName: 'Rexel Earth',\n shouldShowSignUp: false,\n clientId: '62eae37f05a31e4aabeccb23',\n clientSecret:\n '03xq0CsXzta6mNvRepm8gqPmUV32SetGjVaXRyNgc40GDXRnlKLZnPrw1fsSHHOrGV',\n loginMethods: [LOGIN_METHOD_EMAIL],\n apiUri: process.env.REACT_APP_JBE_API_URI,\n supportedLanguageCodes: ['en', 'es'],\n appDescription:\n 'With Rexel USA, compete in challenges with fellow co-workers to improve your body, your community, and your planet. Earn points and build camaraderie by completing simple real-life actions as we work towards common goals.',\n};\nexport default REXEL_PROPERTIES;\n","import DEFAULT_PROPERTIES from './default';\n\nconst CAPGROUP_PROPERTIES = {\n ...DEFAULT_PROPERTIES,\n appName: 'CG Green',\n shouldShowSignUp: false,\n clientId: '60f05ed1e0b5260ecded577d',\n clientSecret:\n '035L8ZaOHhk3UCgdk0H-QQAXCEoTVXO2Kb8PDxK2_72uemIRAHDR02rJ0YxNHGvf5m',\n wordpressDomain: 'https://cggreen.joulebug.com',\n appDescription:\n 'With CG Green, compete in challenges to improve your body, your community, and your planet. Earn points and build camaraderie by completing simple real-life actions as we strive towards common goals. ',\n};\n\nexport default CAPGROUP_PROPERTIES;\n","import DEFAULT_PROPERTIES from './default';\nimport { LOGIN_METHOD_EMAIL } from './constants';\n\nconst KN_PROPERTIES = {\n ...DEFAULT_PROPERTIES,\n appName: 'KN Sustain',\n shouldShowSignUp: false,\n clientId: '60f09787e0b526054098b204',\n clientSecret:\n '01pkzqcD4Ty3aKV-u_GxpMW8xpVHTS4j8qrhwbrZfdGHOfPnV_JPbaNdOvhxrwGGna',\n loginMethods: [LOGIN_METHOD_EMAIL],\n apiUri: process.env.REACT_APP_JBE_EU_API_URI,\n wordpressDomain: 'https://knsustain.joulebug.com',\n appDescription:\n 'With KN Sustain, compete in challenges to improve your body, your community, and your planet. Earn points and build camaraderie by completing simple real-life actions as we strive towards common goals.',\n};\n\nexport default KN_PROPERTIES;\n","import DEFAULT_PROPERTIES from './default';\nimport { LOGIN_METHOD_EMAIL } from './constants';\n\nconst BOSTON_UNIVERSITY_PROPERTIES = {\n ...DEFAULT_PROPERTIES,\n appName: 'SustainableBU',\n shouldShowSignUp: false,\n clientId: '595409730b8c5839fa7059cc',\n clientSecret:\n '04NiBCO19pdrOl9_1EFYYXHJnr_ffbcPkiHn9Z3QLQ6JqceXlCR0zApIDnXs6oASs2',\n loginMethods: [LOGIN_METHOD_EMAIL],\n apiUri: process.env.REACT_APP_JBE_API_URI,\n wordpressDomain: 'https://joulebug.com',\n wordpressOverrides: {\n '/about': 'https://www.bu.edu/sustainability/',\n },\n appStoreLink:\n 'https://apps.apple.com/us/app/sustainability-bu/id1136712023',\n playStoreLink:\n 'https://play.google.com/store/apps/details?id=com.cleanbit.joulebug.pbj.bostonu',\n colors: {\n primary: '#50B43C',\n primaryDark: '#388129',\n primaryForeground: '#14253D',\n secondary: '#0081C3',\n secondaryDark: '#0081C3',\n accent: '#0081C3',\n accentDark: '#016A9F',\n warn: '#0081C3',\n warnDark: '#0081C3',\n EditingBannerBackground: '#f26549',\n loginFooter: '#0081C3',\n impactTileColor: '#F7772C',\n },\n appDescription:\n \"sustainableBU is the easy way to make your everyday habits more sustainable—whether on Boston University’s campuses or at home. The app organizes sustainability tips into Actions that you log in the app when you perform them in real-life. Learn more about each Action with easy-to-understand Impact stats, bonuses, how-to videos, and helpful links. Compete in Challenges with other students, faculty, and staff to see who’s the most sustainable. Encourage your friends by sharing how you're making a difference and following what they're up to in the feed. Track your impact—quantified through carbon dioxide saved, waste diverted, and water conserved—with your career stats and trophy collection.\",\n};\nexport default BOSTON_UNIVERSITY_PROPERTIES;\n","import WILD_FOR_ALL_PROPERTIES from './wildForAll';\nimport EARTHSHARE_PROPERTIES from './earthshare';\nimport BLACKSTONE_PROPERTIES from './blackstone';\nimport BETTERLIVING_PROPERTIES from './betterliving';\nimport JB_PUBLIC_PROPERTIES from './public';\nimport JOULEBUG_PROPERTIES from './joulebug';\nimport CEMEX_PROPERTIES from './cemex';\nimport VENA_ENERGY from './venaenergy';\nimport REXEL_PROPERTIES from './rexel';\nimport CAPGROUP_PROPERTIES from './capgroup';\nimport KN_PROPERTIES from './kn';\nimport BOSTON_UNIVERSITY_PROPERTIES from './bostonUniversity';\nimport PUREINDUSTRIAL_PROPERTIES from './pureindustrial';\nimport CLEARTELLIGENCE_PROPERTIES from './cleartelligence';\nimport NNPCGROUP_PROPERTIES from './nnpcgroup';\n\n/*\n * The key values for this object must match the subdomain that we set up for the private label\n * ex: blackstoneenergy.joulebug.com\n */\nconst properties = {\n betterliving: BETTERLIVING_PROPERTIES,\n public: JB_PUBLIC_PROPERTIES,\n joulebug: JOULEBUG_PROPERTIES,\n // TODO: Do something better for this once another client wants app.* to be their domain\n app: WILD_FOR_ALL_PROPERTIES,\n cemex: CEMEX_PROPERTIES,\n rexel: REXEL_PROPERTIES,\n capgroup: CAPGROUP_PROPERTIES,\n 'kuehne-nagel': KN_PROPERTIES,\n kn: KN_PROPERTIES,\n pureindustrial: PUREINDUSTRIAL_PROPERTIES,\n cleartelligence: CLEARTELLIGENCE_PROPERTIES,\n earthshare: EARTHSHARE_PROPERTIES,\n blackstoneenergy: BLACKSTONE_PROPERTIES,\n bu: BOSTON_UNIVERSITY_PROPERTIES,\n nnpcgroup: NNPCGROUP_PROPERTIES,\n venaenergy: VENA_ENERGY,\n};\n\nexport default properties;\n","import DEFAULT_PROPERTIES from './default';\nimport { LOGIN_METHOD_AZURE_AD } from './constants';\n\nconst PUREINDUSTRIAL_PROPERTIES = {\n ...DEFAULT_PROPERTIES,\n loginMethods: [LOGIN_METHOD_AZURE_AD],\n appName: 'Joulebug: Pure Industrial',\n clientId: '660c723db906c8000d4aa489',\n clientSecret:\n '02NJRT1wP_ULmX1BOf-B29OBSlfSZDACXu1A_-WHSyNN2oIRKJDcohVeEACzTy1S5N',\n microsoftClientId: '345b9429-dd08-4e8f-ace0-10facbf28f71',\n microsoftClientAuthority:\n 'https://login.microsoftonline.com/cf1a8e4b-971c-4a33-83a7-db26afe7a6dc',\n wordpressDomain: 'https://joulebug.com',\n // Flag for enabling the org creation flow\n shouldShowSignUp: false,\n appDescription:\n 'With JouleBug, compete in challenges with fellow co-workers to improve your body, your community, and your planet. Earn points and build camaraderie by completing simple real-life actions as we work towards common goals.',\n appStoreLink:\n 'https://apps.apple.com/us/app/joulebug-enterprise/id1105090085',\n playStoreLink:\n 'https://play.google.com/store/apps/details?id=com.cleanbit.joulebug.pbj.carebug',\n};\nexport default PUREINDUSTRIAL_PROPERTIES;\n","import DEFAULT_PROPERTIES from './default';\nimport { LOGIN_METHOD_AZURE_AD } from './constants';\n\nconst CLEARTELLIGENCE_PROPERTIES = {\n ...DEFAULT_PROPERTIES,\n loginMethods: [LOGIN_METHOD_AZURE_AD],\n appName: 'Joulebug: ClearTelligence',\n clientId: '669dde2c9f61236bd7b85ab5',\n clientSecret:\n '064upTUzPO-kwsEYSHBGOEHkM25kZbUHcIZWdBfxtYmEJMKMjtlXVwAhj7wh3X0smS',\n microsoftClientId: 'f6bccd04-25be-4d78-82e0-016136d641a3',\n microsoftClientAuthority:\n 'https://login.microsoftonline.com/b32a5f3f-241e-427d-9acb-a6539011c7ad',\n wordpressDomain: 'https://joulebug.com',\n // Flag for enabling the org creation flow\n shouldShowSignUp: false,\n appDescription:\n 'With JouleBug, compete in challenges with fellow co-workers to improve your body, your community, and your planet. Earn points and build camaraderie by completing simple real-life actions as we work towards common goals.',\n appStoreLink:\n 'https://apps.apple.com/us/app/joulebug-enterprise/id1105090085',\n playStoreLink:\n 'https://play.google.com/store/apps/details?id=com.cleanbit.joulebug.pbj.carebug',\n};\nexport default CLEARTELLIGENCE_PROPERTIES;\n","import DEFAULT_PROPERTIES from './default';\nimport { LOGIN_METHOD_AZURE_AD } from './constants';\n\nconst NNPCGROUP_PROPERTIES = {\n ...DEFAULT_PROPERTIES,\n loginMethods: [LOGIN_METHOD_AZURE_AD],\n appName: 'Joulebug: NNPC',\n clientId: '671fab094b4cb6293eeee942',\n clientSecret:\n '02nZLP6oaXgyDfGG21oVKIx8O6amApE3XKZp4G0bu08N-0Vts7ehm92beOHjO7ZQlq',\n microsoftClientId: '83d8edee-0da4-45a4-808b-894f5c2ccd52',\n microsoftClientAuthority:\n 'https://login.microsoftonline.com/c9bfec4a-5ccc-4996-bf58-9401877a9892',\n wordpressDomain: 'https://joulebug.com',\n // Flag for enabling the org creation flow\n shouldShowSignUp: false,\n appDescription:\n 'With JouleBug, compete in challenges with fellow co-workers to improve your body, your community, and your planet. Earn points and build camaraderie by completing simple real-life actions as we work towards common goals.',\n appStoreLink:\n 'https://apps.apple.com/us/app/joulebug-enterprise/id1105090085',\n playStoreLink:\n 'https://play.google.com/store/apps/details?id=com.cleanbit.joulebug.pbj.carebug',\n};\nexport default NNPCGROUP_PROPERTIES;\n","const DEFAULT_IMAGES = {\n favicon: require(`../assets/images/favicon.ico`),\n\n challengeSampleBreakfast: require('../assets/images/challengeSamples/breakfast.jpeg'),\n challengeSampleCamera: require('../assets/images/challengeSamples/camera.jpeg'),\n challengeSampleBurger: require('../assets/images/challengeSamples/burgers.jpeg'),\n challengeSampleGreen: require('../assets/images/bg_default-active-challange.jpg'),\n\n mobileScreen: require('../assets/images/mobile_screen.png'),\n noContent: require('../assets/images/no-content.png'),\n notFound: require('../assets/images/not_found.png'),\n defaultPinIcon: require('../assets/images/defaultPinIcon.png'),\n defaultImage: require('../assets/images/defaultImage.png'),\n logoJBGray: require('../assets/images/logo-jb-gray.png'),\n defaultActivityIcon: require('../assets/images/defaultActivityIcon.png'),\n defaultActionsIcon: require('../assets/images/defaultActionsIcon.png'),\n yammerBtnIcon: require('../assets/images/yammer_btn_icon.png'),\n oktaBtnIcon: require('../assets/images/okta_btn_icon.png'),\n loader: require('../assets/images/loader.gif'),\n iosNotifications: require('../assets/images/ios_notifications.png'),\n notificationWrapper: require('../assets/images/notification_wrapper.png'),\n notificationBuzzIcon: require('../assets/images/notification_buzz_icon.png'),\n inviteSignUpBg: require('../assets/images/bg_signup_invite.jpg'),\n challengeCompetitive: require('../assets/images/challenge_competitive.png'),\n challengeIndividuals: require('../assets/images/challenge_individuals.png'),\n challengeDuration: require('../assets/images/challenge_duration.png'),\n plusOneBonusPoints: require('../assets/images/plus_one_bonus_points.png'),\n videosIcon: require('../assets/images/videos_icon.png'),\n linksIcon: require('../assets/images/links_icon.png'),\n verifyEmailIcon: require('../assets/images/verify_email_icon.png'),\n googleIcon: require('../assets/images/social/google.png'),\n onBoardingLogo: require('../assets/images/onboarding_logo.png'),\n onBoardingLogoWhite: require('../assets/images/onboarding_logo_white.png'),\n appleStoreBadge: require('../assets/images/apple_store_badge.png'),\n googleStoreBadge: require('../assets/images/google_store_badge.png'),\n bgEmailVerification1: require('../assets/images/bg_email_verification1.png'),\n bgEmailVerification2: require('../assets/images/bg_email_verification2.png'),\n bgOnBoarding1: require('../assets/images/bg_on_boarding1.png'),\n bgOnBoarding2: require('../assets/images/bg_on_boarding2.png'),\n loginBg1: require('../assets/images/login-bkgd-1.png'),\n loginBg2: require('../assets/images/login-bkgd-2.png'),\n bgWelcome: require('../assets/images/bg_welcome.png'),\n bgCommunity: require('../assets/images/bg_community.png'),\n bgSustainability: require('../assets/images/sustainability-2.png'),\n bgFitness: require('../assets/images/fitness-2.png'),\n bgNutrition: require('../assets/images/nutrition-2.png'),\n bgDiversity: require('../assets/images/diversity_inclusion.jpg'),\n bgEngagement: require('../assets/images/remote_engagement.jpg'),\n bgCivic: require('../assets/images/civic.jpg'),\n bgSmallSustainability: require('../assets/images/sustainability.png'),\n bgSmallFitness: require('../assets/images/fitness.png'),\n bgSmallNutrition: require('../assets/images/nutrition.png'),\n sustainabilityIcon: require('../assets/images/base_impact_eco.png'),\n sustainabilityWhiteIcon: require('../assets/images/base_impact_eco.png'),\n fitnessIcon: require('../assets/images/base_impact_fitness.png'),\n fitnessWhiteIcon: require('../assets/images/base_impact_fitness.png'),\n nutritionIcon: require('../assets/images/base_impact_nutrition.png'),\n nutritionWhiteIcon: require('../assets/images/base_impact_nutrition.png'),\n civicIcon: require('../assets/images/base_impact_civic.png'),\n civicWhiteIcon: require('../assets/images/base_impact_civic.png'),\n bgInviteScreen: require('../assets/images/bg_invite_screen.png'),\n bgChallengeCustomize: require('../assets/images/challenge_customize.png'),\n recycleIcon: require('../assets/images/base_impact_waste.png'),\n carbonIcon: require('../assets/images/carbon.png'),\n waterDropIcon: require('../assets/images/base_impact_water.png'),\n blankChallengeIcon: require('../assets/images/blank_challenge_icon.png'),\n\n sustainabilitySvgIcon: require('../assets/images/svg/sustainability-icon.svg'),\n civicSvgIcon: require('../assets/images/svg/civic-icon.svg'),\n competitiveSvgIcon: require('../assets/images/svg/competitive-icon.svg'),\n daysSvgIcon: require('../assets/images/svg/days-icon.svg'),\n diversitySvgIcon: require('../assets/images/svg/diversity-icon.svg'),\n fitnessSvgIcon: require('../assets/images/svg/fitness-icon.svg'),\n habitSvgIcon: require('../assets/images/svg/habits-icon.svg'),\n habitsSvgIcon: require('../assets/images/svg/habits-icon.svg'),\n individualSvgIcon: require('../assets/images/svg/individual-icon.svg'),\n nutritionSvgIcon: require('../assets/images/svg/nutrition-icons.svg'),\n remoteSvgIcon: require('../assets/images/svg/remote-icon.svg'),\n greenLogo: require('../assets/images/logo_green.png'),\n defaultActiveChallengeBg: require('../assets/images/bg_default-active-challange.jpg'),\n slackIcon: require('../assets/images/social/slack.png'),\n facebookIcon: require('../assets/images/social/facebook.png'),\n impactEcoIcon: require('../assets/images/base_impact_eco.png'),\n warningIcon: require('../assets/images/svg/warning-icon.svg'),\n closeIcon: require('../assets/images/svg/close-icon.svg'),\n\n '7Z': require('../assets/images/filetypes/7z.png'),\n AE: require('../assets/images/filetypes/ae.png'),\n AI: require('../assets/images/filetypes/ai.png'),\n AVI: require('../assets/images/filetypes/avi.png'),\n CSS: require('../assets/images/filetypes/css.png'),\n CSV: require('../assets/images/filetypes/csv.png'),\n DOC: require('../assets/images/filetypes/doc.png'),\n HTML: require('../assets/images/filetypes/html.png'),\n ICO: require('../assets/images/filetypes/ico.png'),\n JPG: require('../assets/images/filetypes/jpg.png'),\n JS: require('../assets/images/filetypes/js.png'),\n MOV: require('../assets/images/filetypes/mov.png'),\n MP3: require('../assets/images/filetypes/mp3.png'),\n MP4: require('../assets/images/filetypes/mp4.png'),\n MPEG: require('../assets/images/filetypes/mpeg.png'),\n PDF: require('../assets/images/filetypes/pdf.png'),\n PNG: require('../assets/images/filetypes/png.png'),\n PPT: require('../assets/images/filetypes/ppt.png'),\n PSD: require('../assets/images/filetypes/psd.png'),\n PY: require('../assets/images/filetypes/py.png'),\n RAR: require('../assets/images/filetypes/rar.png'),\n SVG: require('../assets/images/filetypes/svg.png'),\n SWF: require('../assets/images/filetypes/swf.png'),\n TIFF: require('../assets/images/filetypes/tiff.png'),\n TXT: require('../assets/images/filetypes/txt.png'),\n WAV: require('../assets/images/filetypes/wav.png'),\n WMV: require('../assets/images/filetypes/wmv.png'),\n XLS: require('../assets/images/filetypes/xls.png'),\n ZIP: require('../assets/images/filetypes/zip.png'),\n OTHER: require('../assets/images/filetypes/other.png'),\n\n defaultProfileIcon: require(`../assets/images/public/defaultProfileIcon.png`),\n};\nconst DEFAULT_VARIANT_IMAGES = {\n logo: require(`../assets/images/joulebug/logo.png`),\n defaultChallengeIcon: require(`../assets/images/joulebug/defaultChallengeIcon.png`),\n defaultCommunityIcon: require(`../assets/images/joulebug/defaultCommunityIcon.png`),\n defaultProfileIcon: require(`../assets/images/joulebug/defaultProfileIcon.png`),\n defaultAppIcon: require(`../assets/images/joulebug/defaultAppIcon.png`),\n inAppNotifications: require(`../assets/images/joulebug/in_app_notifications.png`),\n welcomeProfile: require(`../assets/images/joulebug/welcome-profile.png`),\n welcomeEdit: require(`../assets/images/joulebug/welcome-edit.png`),\n welcomeActions: require(`../assets/images/joulebug/welcome-actions.png`),\n welcomeChallenges: require(`../assets/images/joulebug/welcome-challenges.png`),\n welcomeActivity: require(`../assets/images/joulebug/welcome-activity.png`),\n landingMockup: require(`../assets/images/joulebug/landing-mockup.png`),\n appMockup: require(`../assets/images/joulebug/app-mockup.png`),\n ...DEFAULT_IMAGES,\n};\nconst IMAGES = {\n joulebug: {\n ...DEFAULT_VARIANT_IMAGES,\n genericAdminChallengeInvite: require(`../assets/images/joulebug/challenge-share-image.jpg`),\n genericCommunityInvite: require(`../assets/images/joulebug/community-share-image.jpg`),\n },\n public: {\n ...DEFAULT_IMAGES,\n logo: require(`../assets/images/joulebug/logo.png`),\n defaultChallengeIcon: require(`../assets/images/public/defaultChallengeIcon.png`),\n defaultCommunityIcon: require(`../assets/images/public/defaultCommunityIcon.png`),\n defaultProfileIcon: require(`../assets/images/public/defaultProfileIcon.png`),\n defaultAppIcon: require(`../assets/images/public/defaultAppIcon.png`),\n inAppNotifications: require(`../assets/images/public/in_app_notifications.png`),\n welcomeProfile: require(`../assets/images/public/welcome-profile.png`),\n welcomeEdit: require(`../assets/images/public/welcome-edit.png`),\n welcomeChallenges: require(`../assets/images/public/welcome-challenges.png`),\n },\n betterliving: {\n ...DEFAULT_IMAGES,\n logo: require(`../assets/images/betterLiving/logo.png`),\n defaultChallengeIcon: require(`../assets/images/betterLiving/defaultChallengeIcon.png`),\n defaultCommunityIcon: require(`../assets/images/betterLiving/defaultCommunityIcon.png`),\n defaultProfileIcon: require(`../assets/images/betterLiving/defaultProfileIcon.png`),\n defaultAppIcon: require(`../assets/images/betterLiving/defaultAppIcon.png`),\n inAppNotifications: require(`../assets/images/betterLiving/in_app_notifications.png`),\n welcomeProfile: require(`../assets/images/betterLiving/welcome-profile.png`),\n welcomeEdit: require(`../assets/images/betterLiving/welcome-edit.png`),\n },\n app: {\n ...DEFAULT_IMAGES,\n favicon: require(`../assets/images/wildForAll/logo.png`),\n faviconDarkMode: require(`../assets/images/wildForAll/logo-white.png`),\n onBoardingLogo: require(`../assets/images/wildForAll/logo.png`),\n defaultChallengeIcon: require(`../assets/images/wildForAll/defaultChallengeIcon.png`),\n defaultCommunityIcon: require(`../assets/images/wildForAll/defaultCommunityIcon.png`),\n defaultProfileIcon: require(`../assets/images/wildForAll/defaultProfileIcon.png`),\n welcomeProfile: require(`../assets/images/wildForAll/welcome-profile.png`),\n welcomeEdit: require(`../assets/images/wildForAll/welcome-profile.png`),\n welcomeChallenges: require(`../assets/images/wildForAll/welcome-challenges.png`),\n welcomeActions: require(`../assets/images/wildForAll/welcome-actions.png`),\n welcomeActivity: require(`../assets/images/wildForAll/welcome-activity.png`),\n metaImage: require('../assets/images/wildForAll/meta-image.jpg'),\n metaImageHorizontal: require('../assets/images/wildForAll/meta-image-horizontal.png'),\n },\n bu: {\n landingMockup: require(`../assets/images/bostonu/landing-mockup.png`),\n appMockup: require(`../assets/images/bostonu/app-mockup.png`),\n ...DEFAULT_IMAGES,\n },\n earthshare: {\n landingMockup: require(`../assets/images/earthshare/landing-mockup.png`),\n appMockup: require(`../assets/images/earthshare/app-mockup.png`),\n ...DEFAULT_IMAGES,\n },\n blackstoneenergy: {\n landingMockup: require(`../assets/images/blackstone/landing-mockup.png`),\n appMockup: require(`../assets/images/blackstone/app-mockup.png`),\n ...DEFAULT_IMAGES,\n },\n cemex: {\n landingMockup: require(`../assets/images/cemex/landing-mockup.png`),\n appMockup: require(`../assets/images/cemex/app-mockup.png`),\n ...DEFAULT_IMAGES,\n },\n ...DEFAULT_VARIANT_IMAGES,\n};\n\nexport default IMAGES;\n","import { useEffect, useRef } from 'react';\nimport { matchPath } from 'react-router';\nimport properties from '../properties';\nimport IMAGES from '../constants/images';\nimport { keys } from 'lodash';\n\n/**\n * A function that does nothing.\n */\nexport function noop() {}\n\n/**\n * Returns true if the path given matches any of the\n * paths in the paths array. (Not exact and not strict.)\n * @param path\n * @param paths\n * @returns {boolean}\n */\nexport const matchesPaths = (path, paths = []) => {\n return paths.reduce((accumulator = false, testPath) => {\n return accumulator || matchPath(testPath, { path }) !== null;\n }, false);\n};\n\n/**\n * Safely determine if an object has a key.\n *\n * @see https://eslint.org/docs/rules/no-prototype-builtins\n * @see Object.prototype.hasOwnProperty\n *\n * @param {{}} obj\n * @param {string} key\n */\nexport function has(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\n/**\n * If value is an object and contains the specified property, that will be returned.\n * Otherwise the default value will be returned. By default the default value is the value\n * itself.\n *\n * @param {*} value\n * @param {string} prop\n * @param {*} def\n * @return {string}\n */\nexport const extractStringProperty = (value, prop, def = value) => {\n return value && typeof value === 'object' && has(value, prop)\n ? `${value[prop]}`\n : `${def}`;\n};\n\n/**\n * If value is an object and contains the specified property, and that property is an array,\n * it will be returned. Otherwise the default value will be returned which is an empty array\n * by default.\n *\n * @param {*} value\n * @param {string} prop\n * @param {*} def\n * @return {*[]}\n */\nexport const extractArrayProperty = (value, prop, def = []) => {\n return value &&\n typeof value === 'object' &&\n has(value, prop) &&\n Array.isArray(value[prop])\n ? value[prop]\n : def;\n};\n\nexport const dataURLtoFile = (dataurl, filename) => {\n const arr = dataurl.split(',');\n const mime = arr[0].match(/:(.*?);/)[1];\n const bstr = atob(arr[1]);\n let n = bstr.length;\n const u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new File([u8arr], filename, { type: mime });\n};\n\nconst getVariant = () => {\n return window.location.host.split('.')?.[0]?.toLowerCase() || 'joulebug';\n};\n\nexport const getApplicationConfig = () => {\n return JSON.parse(localStorage.getItem('application_config'));\n};\n\nexport const setApplicationConfig = (config) => {\n localStorage.setItem('application_config', JSON.stringify(config));\n};\n\nexport const getStaticProperties = () => {\n const variant = getVariant();\n return properties[variant] || properties.joulebug;\n};\n\nexport const getProperties = () => {\n const cachedConfig = getApplicationConfig();\n const defaultConfig = getStaticProperties();\n if (cachedConfig) {\n return {\n ...defaultConfig,\n ...cachedConfig,\n };\n } else {\n return defaultConfig;\n }\n};\nexport const getUserRole = () => localStorage.getItem('role');\n\nexport const getAppName = () => getProperties()?.appName;\nexport const getAppDescription = () => getProperties()?.appDescription;\n\nexport const getSupportedLanguageCodes = () =>\n getProperties()?.supportedLanguageCodes;\n\nexport const hasMarketingEmailOptIn = () =>\n getProperties()?.hasMarketingEmailOptIn;\n\nexport const getImpactLink = () =>\n getProperties()?.impactLink || getProperties()?.wordpressDomain + '/impact';\n\nexport const getTermsLink = () =>\n getProperties()?.termsLink ||\n getProperties()?.wordpressDomain + '/terms-of-use';\n\nexport const getPrivacyLink = () =>\n getProperties()?.privacyLink ||\n getProperties()?.wordpressDomain + '/privacy';\n\nexport const getSecondPrivacyLink = () => getProperties()?.secondPrivacyLink;\n\nexport const getAboutLink = () =>\n getProperties()?.aboutLink || getProperties()?.wordpressDomain + '/';\n\nexport const getAppStoreLink = () => getProperties()?.appStoreLink;\n\nexport const getPlayStoreLink = () => getProperties()?.playStoreLink;\n\nexport const getFontFamily = () => getProperties()?.fontFamily;\n\nexport const getColors = () => {\n return {\n ...getStaticProperties().colors,\n ...(getProperties()?.colors || {}),\n };\n};\n\nexport const getStringsNamespace = () => getProperties()?.stringsNamespace;\n\nexport const getAppImages = () => IMAGES[getVariant()] || IMAGES.joulebug;\n\n/**\n * @param unsortedArray []\n * @returns [] sortedArrayWithRank\n */\nexport const mapSortAddRank = (unsortedArray) => {\n return unsortedArray\n .sort((a, b) => b.value - a.value)\n .map((item, index) => ({ ...item, rank: index + 1 }));\n};\n\n/**\n * Default user count for package\n */\nexport const getDefaultUserCount = () => {\n return 25;\n};\n\nexport const useInterval = (callback, delay) => {\n const savedCallback = useRef();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n};\n\nexport const changeCommunityURL = (history, communityId, newRoute) => {\n const params = new URLSearchParams(window.location.search);\n params.delete('communityId');\n params.append('communityId', communityId);\n history.push({\n pathname: newRoute,\n search: params.toString(),\n });\n};\n\nexport const handleCommunityIdQueryParam = (\n permissions,\n communityId,\n changeCommunity,\n setSnackbarError,\n t,\n history,\n) => {\n const params = new URLSearchParams(window.location.search);\n const queryCommunityId = params.get('communityId');\n if (queryCommunityId === communityId) return null;\n if (queryCommunityId) {\n if (\n keys(permissions).some(\n (communityId) => communityId === queryCommunityId,\n )\n ) {\n changeCommunity(queryCommunityId);\n } else {\n setSnackbarError(\n t('community.noPermissions', {\n communityId: queryCommunityId,\n }),\n );\n params.delete('communityId');\n params.append('communityId', communityId);\n history.replace({ search: params.toString() });\n }\n } else {\n params.append('communityId', communityId);\n history.replace({ search: params.toString() });\n }\n};\n\nexport const downloadShareImage = (\n imageUrl,\n name,\n setDownloadRequested,\n setError,\n errorMessage,\n) => {\n fetch(imageUrl).then(\n (response) => {\n response.blob().then((blob) => {\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `${name} share image.jpg`;\n a.click();\n setDownloadRequested(false);\n });\n },\n (_) => {\n setError(errorMessage);\n setDownloadRequested(false);\n },\n );\n};\n","export const NOTIFICATIONS_REQUESTED = 'NOTIFICATIONS_REQUESTED';\nexport const NOTIFICATIONS_SUCCEEDED = 'NOTIFICATIONS_SUCCEEDED';\nexport const NOTIFICATIONS_FAILED = 'NOTIFICATIONS_FAILED';\n\nexport const NOTIFICATION_REQUESTED = 'NOTIFICATION_REQUESTED';\nexport const NOTIFICATION_SUCCEEDED = 'NOTIFICATION_REQUEST_SUCCEEDED';\n\nexport const CREATE_NOTIFICATION_REQUESTED = 'CREATE_NOTIFICATION_REQUESTED';\nexport const DELETE_NOTIFICATION_REQUESTED = 'DELETE_NOTIFICATION_REQUESTED';\nexport const UPDATE_NOTIFICATION_REQUESTED = 'UPDATE_NOTIFICATION_REQUESTED';\nexport const UPDATE_NOTIFICATION_SUCCEEDED = 'UPDATE_NOTIFICATION_SUCCEEDED';\nexport const UPDATE_NOTIFICATION_FAILED = 'UPDATE_NOTIFICATION_FAILED';\n\nexport const CLEAR_NOTIFICATION_ERRORS = 'CLEAR_NOTIFICATION_ERRORS';\n\nexport const OPEN_CREATE_NOTIFICATION = 'OPEN_CREATE_NOTIFICATION';\nexport const CLEAR_CREATE_NOTIFICATION = 'CLEAR_CREATE_NOTIFICATION';\n\nexport const USER_NOTIFICATIONS_REQUESTED = 'USER_NOTIFICATIONS_REQUESTED';\nexport const USER_NOTIFICATIONS_REQUEST_SUCCEEDED =\n 'USER_NOTIFICATIONS_REQUEST_SUCCEEDED';\nexport const USER_NOTIFICATIONS_REQUEST_FAILED =\n 'USER_NOTIFICATIONS_REQUEST_FAILED';\n\nexport const MARK_USER_NOTIFICATIONS_REQUESTED =\n 'MARK_USER_NOTIFICATIONS_REQUESTED';\nexport const MARK_USER_NOTIFICATIONS_REQUEST_SUCCEEDED =\n 'MARK_USER_NOTIFICATIONS_REQUEST_SUCCEEDED';\nexport const MARK_USER_NOTIFICATIONS_REQUEST_FAILED =\n 'MARK_USER_NOTIFICATIONS_REQUEST_FAILED';\nexport const SET_NOTIFICATION_COUNTS = 'SET_NOTIFICATION_COUNTS';\n\nexport const markUserNotificationsRequested = () => ({\n type: MARK_USER_NOTIFICATIONS_REQUESTED,\n});\n\nexport const markUserNotificationsRequestSucceeded = () => ({\n type: MARK_USER_NOTIFICATIONS_REQUEST_SUCCEEDED,\n});\n\nexport const markUserNotificationsRequestFailed = (response) => ({\n type: MARK_USER_NOTIFICATIONS_REQUEST_FAILED,\n payload: response,\n});\n\nexport const userNotificationsRequested = (options) => ({\n type: USER_NOTIFICATIONS_REQUESTED,\n payload: options,\n});\n\nexport const userNotificationsRequestSucceeded = (notifications, skip) => ({\n type: USER_NOTIFICATIONS_REQUEST_SUCCEEDED,\n payload: {\n notifications,\n skip,\n },\n});\n\nexport const userNotificationsRequestFailed = (response) => ({\n type: USER_NOTIFICATIONS_REQUEST_FAILED,\n payload: response,\n});\n\nexport const notificationsRequest = (communityId, group, options) => ({\n type: NOTIFICATIONS_REQUESTED,\n payload: {\n communityId,\n group,\n options,\n },\n});\n\nexport const notificationsRequestSucceeded = (response) => ({\n type: NOTIFICATIONS_SUCCEEDED,\n payload: response,\n});\n\nexport const notificationsRequestFailed = (response) => ({\n type: NOTIFICATIONS_FAILED,\n payload: response,\n});\n\nexport const deleteNotificationRequest = (\n communityId,\n notificationId,\n challengeId,\n options,\n) => ({\n type: DELETE_NOTIFICATION_REQUESTED,\n payload: {\n communityId,\n notificationId,\n challengeId,\n options,\n },\n});\n\nexport const notificationRequest = (response) => ({\n type: NOTIFICATION_REQUESTED,\n payload: response,\n});\n\nexport const notificationRequestSucceeded = (response) => ({\n type: NOTIFICATION_SUCCEEDED,\n payload: response,\n});\n\nexport const createNotificationRequest = (response) => ({\n type: CREATE_NOTIFICATION_REQUESTED,\n payload: response,\n});\n\nexport const updateNotificationRequest = (response) => ({\n type: UPDATE_NOTIFICATION_REQUESTED,\n payload: response,\n});\n\nexport const updateNotificationSucceeded = (response) => ({\n type: UPDATE_NOTIFICATION_SUCCEEDED,\n payload: response,\n});\n\nexport const updateNotificationFailed = (errors, errorStatus) => ({\n type: UPDATE_NOTIFICATION_FAILED,\n payload: {\n errors,\n errorStatus,\n },\n});\n\nexport const clearAllErrors = () => ({\n type: CLEAR_NOTIFICATION_ERRORS,\n});\n\nexport const openCreateNotification = (notification) => ({\n type: OPEN_CREATE_NOTIFICATION,\n payload: {\n notification,\n },\n});\n\nexport const clearCreateNotification = () => ({\n type: CLEAR_CREATE_NOTIFICATION,\n});\n\nexport const setNotificationCounts = (counts) => ({\n type: SET_NOTIFICATION_COUNTS,\n payload: {\n counts,\n },\n});\n","import qs from 'qs';\nimport APIErrorResponse from './APIErrorResponse';\nimport { call, put } from 'redux-saga/effects';\nimport i18next from 'i18next';\nimport { getProperties } from '../index';\nimport { logoutRequested } from '../../auth/actions';\nimport { setNotificationCounts } from '../../notifications/actions';\nimport {\n ERROR_CODE_DUPLICATE_DOMAIN,\n ERROR_CODE_DUPLICATE_ORG,\n ERROR_CODE_TOKEN_EXPIRED,\n ERROR_CODE_TOKEN_INVALID,\n} from '../../auth/constants';\nimport { replace } from 'connected-react-router';\n\nexport const getFullURI = (path, query = null) => {\n // Get the API URI from the build-time environment variables, removing any trailing slash\n const apiUri = `${getProperties()?.apiUri}`.replace(/\\/+$/, '');\n // Append the path to the apiUri with a slash, removing any leading slashes on the path\n let fullURI = `${apiUri}/${path.replace(/^\\/+/, '')}`;\n const languageCode = i18next.language;\n if (query !== null) {\n query.language = languageCode;\n fullURI += '?' + qs.stringify(query, { indices: false });\n } else {\n fullURI += '?language=' + languageCode;\n }\n fullURI += '&platform=Web';\n return fullURI;\n};\n\n/**\n * Make a request to a URI using the fetch API.\n *\n * @param {string} path\n * @param {string=} method\n * @param {(string|null)=} token\n * @param {({}|null)=} query\n * @param {(*|null)=} body\n * @param {boolean=} json Whether or not the response should be attempted to parse to JSON (default: `false`)\n * @param headers\n * @return {Promise}\n */\nexport function* request(\n path,\n method = 'GET',\n token = null,\n query = null,\n body = null,\n json = false,\n headers = {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n) {\n if (token !== null) {\n headers.Authorization = 'Bearer ' + token;\n }\n\n const options = { method, headers };\n if (body) {\n options.headers['Content-Type'] = 'application/json';\n options.body = JSON.stringify(body);\n }\n const fullURI = getFullURI(path, query);\n const response = yield call(fetch, fullURI, options);\n\n if (response.ok) {\n return yield call(safelyReadResponse, response, json);\n } else {\n const errorResponse = yield call(createAPIErrorResponse, response);\n yield call(\n logAPIErrorResponse,\n {\n uri: fullURI,\n options,\n },\n errorResponse,\n );\n throw errorResponse;\n }\n}\n\n/**\n * attempts to read the response body safely. If it has already been read or json is not expected, the raw response is returned/\n * Otherwise, a JSON parsed response is returned\n * @param response\n * @param {boolean=} json\n * @returns {IterableIterator<*>}\n */\nfunction* safelyReadResponse(response, json = false) {\n return json && response && !response.bodyUsed\n ? yield call([response, response.json])\n : response;\n}\n\n/**\n * Create an APIErrorResponse object from a fetch Response.\n *\n * @param {Response} response\n * @return {Promise}\n */\nexport async function createAPIErrorResponse(response) {\n const errorResponse = new APIErrorResponse();\n await errorResponse.setJsonFromResponse(response);\n return errorResponse;\n}\n\n/**\n * Given a caught error, if it's an `APIErrorResponse`, attempt to extract its validation errors or other errors as an array of\n * error messages that occurred, falling back to an array containing only `genericErrorMessage` in all of the following\n * scenarios:\n *\n * - `error` is not an `APIErrorResponse`\n * - The `APIErrorResponse` was not JSON parse-able\n * - The `APIErrorResponse`'s JSON body did not contain a top-level `message` and did not contain any `validationErrors` or\n * it was empty.\n *\n * @see APIErrorResponse.getErrorMessages\n * @param {APIErrorResponse|*} error\n * @param {string|null} genericErrorMessage\n * @return {string[]}\n */\nexport function* getErrorsFromPossibleAPIErrorResponse(\n error,\n genericErrorMessage = null,\n) {\n const fallback = genericErrorMessage ? [genericErrorMessage] : [];\n if (error instanceof APIErrorResponse) {\n const errorMessages = error.getErrorMessages(genericErrorMessage);\n const params = new URLSearchParams();\n switch (error?.getError()?.errorCode) {\n case ERROR_CODE_DUPLICATE_ORG:\n params.append('bot', 'duplicate-organization');\n break;\n case ERROR_CODE_DUPLICATE_DOMAIN:\n params.append('bot', 'duplicate-domain');\n break;\n case ERROR_CODE_TOKEN_EXPIRED:\n case ERROR_CODE_TOKEN_INVALID:\n yield put(logoutRequested(errorMessages));\n break;\n default:\n break;\n }\n if (params.keys().next()) {\n yield put(replace({ search: params.toString() }));\n }\n return errorMessages;\n }\n return fallback;\n}\n\n/**\n * We send API errors to the console since the devtools Network tab still doesn't like to show error response bodies.\n * @param request An object representing the API request\n * @param errorResponse\n */\nexport function logAPIErrorResponse(request, errorResponse) {\n // eslint-disable-next-line no-console\n console.error(\n 'An API error occurred: ',\n errorResponse && errorResponse.json\n ? errorResponse.json\n : errorResponse,\n );\n}\n\nexport function* postWithAuth(\n path,\n { json = true, query = null, body = null } = {},\n) {\n return yield call(fetchWithAuth, path, {\n method: 'POST',\n json,\n query,\n body,\n });\n}\n\nexport function* fetchWithAuth(\n path,\n { method = 'GET', json = true, query = null, body = null } = {},\n) {\n const token = getToken();\n const headers = {\n 'Cache-Control': 'max-age=0',\n };\n const response = yield call(\n request,\n path,\n method,\n token,\n query,\n body,\n json,\n headers,\n );\n const counts = response?.notificationCounts;\n if (counts) {\n yield put(setNotificationCounts(counts));\n }\n return response;\n}\n\nexport function* fetchWithoutAuth(\n path,\n { method = 'GET', json = true, query = null, body = null } = {},\n) {\n return yield call(request, path, method, null, query, body, json);\n}\n\nexport function* uploadWithAuth(\n uri,\n { method = 'PUT', body = null, query = null } = {},\n) {\n const fullURI = getFullURI(uri, query);\n const headers = {\n Accept: 'application/json',\n };\n\n const token = getToken();\n headers.Authorization = 'Bearer ' + token;\n\n const options = { method, headers };\n if (body) {\n options.body = body;\n }\n const response = yield call(fetch, fullURI, options);\n if (response.ok) {\n return yield call(safelyReadResponse, response, true);\n } else {\n const errorResponse = yield call(createAPIErrorResponse, response);\n yield call(\n logAPIErrorResponse,\n {\n uri: fullURI,\n options,\n },\n errorResponse,\n );\n throw errorResponse;\n }\n}\n\nexport const getToken = () => {\n return localStorage.getItem('token');\n};\n\nexport const setToken = (token) => {\n localStorage.setItem('token', token);\n};\n","export const RETURN_LOCATION_ADMIN_SIGNUP = 'ADMIN_SIGNUP';\n\nexport const RETURN_LOCATION_SETTINGS = 'SETTINGS';\n\nexport const ERROR_CODE_DUPLICATE_ORG = 15;\nexport const ERROR_CODE_DUPLICATE_DOMAIN = 18;\nexport const ERROR_CODE_TOKEN_EXPIRED = 7;\nexport const ERROR_CODE_TOKEN_INVALID = 10;\n","export const SUPPORTED_LANGUAGES = {\n en: 'English',\n 'en-GB': 'English (United Kingdom)',\n 'zh-CN': 'Chinese Simplified',\n 'zh-TW': 'Chinese Traditional',\n hr: 'Croatian',\n cs: 'Czech',\n da: 'Danish',\n nl: 'Dutch',\n fi: 'Finnish',\n fr: 'French',\n 'fr-BE': 'French (Belgium)',\n 'fr-CA': 'French (Canada)',\n 'fr-CH': 'French (Switzerland)',\n de: 'German',\n 'de-CH': 'German (Switzerland)',\n hu: 'Hungarian',\n it: 'Italian',\n 'it-CH': 'Italian (Switzerland)',\n ja: 'Japanese',\n ko: 'Korean',\n nb: 'Norwegian Bokmål',\n pl: 'Polish',\n pt: 'Portuguese',\n 'pt-BR': 'Portuguese (Brazil)',\n ro: 'Romanian',\n ru: 'Russian',\n sr: 'Serbian',\n sk: 'Slovak',\n si: 'Slovenian',\n es: 'Spanish',\n sv: 'Swedish',\n uk: 'Ukrainian',\n};\n\nexport const DEFAULT_LANGUAGE = 'en';\n\nexport const SUPPORTED_LANGUAGE_CODES = Object.keys(SUPPORTED_LANGUAGES);\n","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport moment from 'moment';\nimport emoji from 'i18next-emoji-postprocessor';\nimport Backend from 'i18next-xhr-backend';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport { SUPPORTED_LANGUAGE_CODES } from './constants';\nimport { getSupportedLanguageCodes, getStringsNamespace } from '../utils';\n/*\n * See Quick-start guide if want to use predefined list of languages instead of language detection in the browser.\n * learn more: https://react.i18next.com/getting-started\n */\n\nconst supportedLanguages =\n getSupportedLanguageCodes() || SUPPORTED_LANGUAGE_CODES;\n\nconst appNamespace = getStringsNamespace();\nlet allNamespaces = ['common'];\nif (appNamespace) {\n allNamespaces = [appNamespace, 'common'];\n}\n\ni18n.use(emoji)\n /*\n * load translation using xhr -> see /public/locales (i.e. https://github.com/i18next/react-i18next/tree/master/example/react/public/locales)\n * learn more: https://github.com/i18next/i18next-xhr-backend\n */\n .use(Backend)\n /*\n * detect user language\n * learn more: https://github.com/i18next/i18next-browser-languageDetector\n */\n .use(LanguageDetector)\n /*\n * pass the i18n instance to react-i18next.\n */\n .use(initReactI18next)\n /*\n * init i18next\n * for all options read: https://www.i18next.com/overview/configuration-options\n */\n .init({\n fallbackLng: supportedLanguages,\n debug: process.env.NODE_ENV === 'development',\n load: 'currentOnly',\n preload: supportedLanguages, // array of languages to preload, important on serverside to assert translations loaded before rendering views\n backend: {\n // for all available options read the backend's repository readme file\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n },\n detection: {\n /**\n * initially tries to use the language that the user has previously selected\n * If there is none, it tries to use the browser language\n */\n order: [\n 'localStorage',\n 'navigator',\n 'htmlTag',\n 'querystring',\n 'cookie',\n ],\n },\n interpolation: {\n escapeValue: false, // not needed for react as it escapes by default\n format: function(value, format, _) {\n // Acceptable formats: 'uppercase', any valid date string format\n if (format === 'uppercase') return value.toUpperCase();\n if (value instanceof Date) return moment(value).format(format);\n return value;\n },\n },\n ns: allNamespaces,\n whitelist: supportedLanguages,\n defaultNS: appNamespace || 'common',\n fallbackNS: appNamespace ? 'common' : false,\n // options\n saveMissing: false, // calls save missing key function on backend if not found\n missingKeyHandler: false, // requires saveMissing set to true\n });\n\nexport default i18n;\n","import {\n CLEAR_AUTH_ERRORS,\n CLEAR_AUTH_MESSAGES,\n CLEAR_EMAIL_VERIFICATION,\n CONFIRMATION_REQUEST_FAILED,\n CONFIRMATION_REQUEST_SUCCEEDED,\n CONFIRMATION_REQUESTED,\n CREATE_USER_FAILED,\n CREATE_USER_REQUESTED,\n CREATE_USER_SUCCEEDED,\n EMAIL_VERIFICATION_VERIFY,\n EMAIL_VERIFICATION_VERIFY_FAILED,\n EMAIL_VERIFICATION_VERIFY_SUCCEEDED,\n INITIAL_FORM_POPULATE,\n INITIAL_FORM_SUBMIT,\n INITIAL_FORM_SUBMIT_FAILED,\n INITIAL_FORM_SUBMIT_SUCCEEDED,\n LOGIN_REQUEST_FAILED,\n LOGIN_REQUEST_SUCCEEDED,\n LOGIN_REQUESTED,\n LOGOUT_REQUEST_SUCCEEDED,\n LOGOUT_REQUESTED,\n REDIRECTION_AUTOFILL,\n RESET_PASSWORD_EMAIL_REQUESTED,\n RESET_PASSWORD_REQUEST_FAILED,\n RESET_PASSWORD_REQUEST_SUCCEEDED,\n RESET_PASSWORD_REQUESTED,\n RESET_PASSWORD_SEND_FAILED,\n RESET_PASSWORD_SENT,\n SIGN_UP_REQUEST_FAILED,\n SIGN_UP_REQUEST_SUCCEEDED,\n SIGN_UP_REQUESTED,\n CLEAR_VERIFICATION_MESSAGES,\n SSO_LOGIN_REQUESTED,\n SSO_LOGIN_REQUEST_SUCCEEDED,\n SSO_STORE_CONFIG,\n} from './actions';\nimport { getToken } from '../utils/api/index';\nimport i18n from '../localization/i18n';\nimport { QUEUE_DEEP_LINK } from '../deepLinks/actions';\n\nconst initialState = {\n token: getToken(),\n organizationPassphrase: null,\n loading: false,\n redirect: null,\n success: false,\n passwordResetReturnURL: '',\n messages: [],\n onBoarding: {\n verified: false,\n verificationMessages: [],\n verificationCode: '',\n accountDetails: {\n username: '',\n email: null,\n employeeCount: null,\n organization: null,\n website: null,\n },\n orgValid: false,\n },\n errors: {\n login: [],\n signup: [],\n confirm: [],\n pwReset: [],\n invite: [],\n emailVerificationErrors: [],\n userCreateErrors: [],\n },\n sso: {\n config: {},\n serviceConfig: {},\n returnLocation: '',\n },\n invite: {\n success: false,\n },\n};\n\nexport default function authReducer(state = initialState, action) {\n const { type, payload = {}, payload: { errors = [] } = {} } = action;\n\n if (\n type === LOGIN_REQUESTED ||\n type === SSO_LOGIN_REQUESTED ||\n type === RESET_PASSWORD_EMAIL_REQUESTED ||\n type === RESET_PASSWORD_REQUESTED\n ) {\n return {\n ...state,\n loading: true,\n errors: {\n ...state.errors,\n login: [],\n },\n };\n } else if (type === CONFIRMATION_REQUESTED) {\n return {\n ...state,\n loading: true,\n errors: {\n ...state.errors,\n setup: [],\n },\n invite: {\n success: false,\n },\n };\n } else if (type === SIGN_UP_REQUESTED) {\n return {\n ...state,\n loading: true,\n errors: {\n ...state.errors,\n signup: [],\n },\n };\n } else if (\n type === LOGIN_REQUEST_SUCCEEDED ||\n type === SIGN_UP_REQUEST_SUCCEEDED\n ) {\n const { token, organizationPassphrase = null } = payload;\n return {\n ...state,\n token,\n organizationPassphrase,\n loading: false,\n };\n } else if (type === LOGIN_REQUEST_FAILED) {\n return {\n ...state,\n loading: false,\n errors: {\n ...state.errors,\n login: errors,\n },\n };\n } else if (type === SIGN_UP_REQUEST_FAILED) {\n return {\n ...state,\n loading: false,\n errors: {\n ...state.errors,\n signup: errors,\n },\n };\n } else if (type === CONFIRMATION_REQUEST_FAILED) {\n return {\n ...state,\n loading: false,\n errors: {\n ...state.errors,\n confirm: errors,\n },\n };\n } else if (\n type === RESET_PASSWORD_SEND_FAILED ||\n type === RESET_PASSWORD_REQUEST_FAILED\n ) {\n return {\n ...state,\n loading: false,\n errors: {\n ...state.errors,\n pwReset: errors,\n },\n };\n } else if (type === CONFIRMATION_REQUEST_SUCCEEDED) {\n return {\n ...state,\n loading: false,\n };\n } else if (type === RESET_PASSWORD_SENT) {\n return {\n ...state,\n success: true,\n messages: [i18n.t('passwordReset.resetSendSuccessful')],\n loading: false,\n };\n } else if (type === RESET_PASSWORD_REQUEST_SUCCEEDED) {\n return {\n ...state,\n success: true,\n passwordResetReturnURL: payload.returnURL,\n messages: [i18n.t('passwordReset.resetSuccessful')],\n loading: false,\n };\n } else if (type === LOGOUT_REQUESTED) {\n return {\n ...initialState,\n token: null,\n redirect: '/login',\n errors: {\n ...state.errors,\n login: payload.errors,\n },\n };\n } else if (type === CLEAR_AUTH_MESSAGES) {\n return {\n ...state,\n messages: initialState.messages,\n invite: {\n success: false,\n },\n };\n } else if (type === CLEAR_AUTH_ERRORS) {\n return {\n ...state,\n messages: initialState.messages,\n errors: {\n ...initialState.errors,\n },\n invite: {\n success: false,\n },\n };\n } else if (type === CLEAR_EMAIL_VERIFICATION) {\n return {\n ...state,\n onBoarding: {\n ...state.onBoarding,\n verified: false,\n },\n };\n } else if (type === EMAIL_VERIFICATION_VERIFY) {\n return {\n ...state,\n loading: true,\n errors: {\n ...state.errors,\n emailVerificationErrors: [],\n },\n onBoarding: {\n ...state.onBoarding,\n verificationCode: payload.verificationCode,\n },\n };\n } else if (type === EMAIL_VERIFICATION_VERIFY_SUCCEEDED) {\n return {\n ...state,\n loading: false,\n errors: {\n ...state.errors,\n emailVerificationErrors: [],\n },\n onBoarding: {\n ...state.onBoarding,\n verified: true,\n verificationCode: '',\n },\n };\n } else if (type === EMAIL_VERIFICATION_VERIFY_FAILED) {\n const { errors } = payload;\n return {\n ...state,\n loading: false,\n errors: {\n ...state.errors,\n emailVerificationErrors: errors,\n },\n onBoarding: {\n ...state.onBoarding,\n verified: false,\n },\n };\n } else if (type === CREATE_USER_REQUESTED) {\n return {\n ...state,\n loading: true,\n errors: {\n ...state.errors,\n userCreateErrors: [],\n },\n };\n } else if (type === CREATE_USER_SUCCEEDED) {\n return {\n ...state,\n loading: false,\n errors: {\n ...state.errors,\n userCreateErrors: [],\n },\n };\n } else if (type === CREATE_USER_FAILED) {\n return {\n ...state,\n loading: false,\n errors: {\n ...state.errors,\n userCreateErrors: errors,\n },\n };\n } else if (type === REDIRECTION_AUTOFILL) {\n const { email } = payload;\n return {\n ...state,\n onBoarding: {\n ...state.onBoarding,\n accountDetails: {\n ...state.accountDetails,\n email,\n },\n },\n };\n } else if (type === QUEUE_DEEP_LINK) {\n return {\n ...state,\n errors: {\n ...state.errors,\n login: [i18n.t('signIn.linkQueued')],\n },\n };\n } else if (type === LOGOUT_REQUEST_SUCCEEDED) {\n return {\n ...initialState,\n errors: {\n ...state.errors,\n },\n };\n } else if (\n type === INITIAL_FORM_POPULATE ||\n type === SSO_LOGIN_REQUEST_SUCCEEDED\n ) {\n return {\n ...state,\n loading: false,\n onBoarding: {\n ...state.onBoarding,\n accountDetails: {\n username: payload.username,\n email: payload.email,\n employeeCount: payload.employeeCount,\n organization: payload.organization,\n website: payload.website,\n },\n },\n };\n } else if (type === INITIAL_FORM_SUBMIT) {\n return {\n ...state,\n loading: true,\n errors: {\n ...state.errors,\n emailVerificationErrors: [],\n },\n onBoarding: {\n ...state.onBoarding,\n accountDetails: {\n username: payload.username,\n email: payload.email,\n employeeCount: payload.employeeCount,\n organization: payload.organization,\n website: payload.website,\n },\n },\n };\n } else if (type === INITIAL_FORM_SUBMIT_SUCCEEDED) {\n return {\n ...state,\n loading: false,\n errors: {\n ...state.errors,\n emailVerificationErrors: [],\n },\n onBoarding: {\n ...state.onBoarding,\n orgValid: true,\n verificationMessages: payload.resendVerification\n ? [i18n.t('onBoarding.resendSuccess')]\n : [],\n },\n };\n } else if (type === INITIAL_FORM_SUBMIT_FAILED) {\n const { errors } = payload;\n return {\n ...state,\n loading: false,\n errors: {\n ...state.errors,\n emailVerificationErrors: errors,\n },\n onBoarding: {\n ...state.onBoarding,\n orgValid: false,\n },\n };\n } else if (type === CLEAR_VERIFICATION_MESSAGES) {\n return {\n ...state,\n onBoarding: {\n ...state.onBoarding,\n verificationMessages: [],\n },\n };\n } else if (type === SSO_STORE_CONFIG) {\n return {\n ...state,\n sso: {\n ...state.sso,\n config: payload.config,\n serviceConfig: payload.serviceConfig,\n returnLocation: payload.returnLocation,\n },\n };\n }\n return state;\n}\n","export const QUEUE_DEEP_LINK = 'QUEUE_DEEP_LINK';\nexport const OPEN_QUEUED_DEEP_LINK = 'OPEN_QUEUED_DEEP_LINK';\nexport const CLEAR_QUEUED_DEEP_LINK = 'CLEAR_QUEUED_DEEP_LINK';\n\nexport const queueDeepLink = (deepLinkPath) => ({\n type: QUEUE_DEEP_LINK,\n payload: {\n deepLinkPath,\n },\n});\n\nexport const openQueuedDeepLink = () => ({\n type: OPEN_QUEUED_DEEP_LINK,\n});\n\nexport const clearQueuedDeepLink = () => ({\n type: CLEAR_QUEUED_DEEP_LINK,\n});\n","export const CURRENT_USER_REQUESTED = 'CURRENT_USER_REQUESTED';\nexport const USER_REQUEST_SUCCEEDED = 'USER_REQUEST_SUCCEEDED';\nexport const USER_REQUEST_FAILED = 'USER_REQUEST_FAILED';\n\nexport const SET_ACTIVE_COMMUNITY = 'SET_ACTIVE_COMMUNITY';\nexport const SET_ACTIVE_COMMUNITY_FAILED = 'SET_ACTIVE_COMMUNITY_FAILED';\nexport const SET_ACTIVE_COMMUNITY_SUCCEEDED = 'SET_ACTIVE_COMMUNITY_SUCCEEDED';\n\nexport const USER_DETAILS_REQUESTED = 'USER_DETAILS_REQUESTED';\nexport const USER_DETAILS_REQUEST_SUCCEEDED = 'USER_DETAILS_REQUEST_SUCCEEDED';\nexport const USER_DETAILS_REQUESTED_FAILED = 'USER_DETAILS_REQUESTED_FAILED';\n\nexport const MEMBERS_SEARCH_REQUESTED = 'MEMBERS_SEARCH_REQUESTED';\nexport const MEMBERS_SEARCH_REQUEST_FAILED = 'MEMBERS_SEARCH_REQUEST_FAILED';\nexport const MEMBERS_SEARCH_REQUEST_SUCCEEDED =\n 'MEMBERS_SEARCH_REQUEST_SUCCEEDED';\n\nexport const MEMBERS_REQUESTED = 'MEMBERS_REQUESTED';\nexport const MEMBERS_REQUEST_SUCCEEDED = 'MEMBERS_REQUEST_SUCCEEDED';\nexport const MEMBERS_REQUEST_FAILED = 'MEMBERS_REQUEST_FAILED';\n\nexport const PERMISSIONS_AND_ROLES_REQUESTED =\n 'PERMISSIONS_AND_ROLES_REQUESTED';\nexport const PERMISSIONS_AND_ROLES_REQUEST_SUCCEEDED =\n 'PERMISSIONS_AND_ROLES_REQUEST_SUCCEEDED';\nexport const PERMISSIONS_AND_ROLES_REQUEST_FAILED =\n 'PERMISSIONS_AND_ROLES_REQUEST_FAILED';\n\nexport const ACTIVATE_USERS_REQUESTED = 'ACTIVATE_USERS_REQUESTED';\nexport const ACTIVATE_USERS_REQUEST_SUCCEEDED =\n 'ACTIVATE_USERS_REQUEST_SUCCEEDED';\nexport const ACTIVATE_USERS_REQUEST_FAILED = 'ACTIVATE_USERS_REQUEST_FAILED';\n\nexport const DEACTIVATE_USERS_REQUESTED = 'DEACTIVATE_USERS_REQUESTED';\nexport const DEACTIVATE_USERS_REQUEST_SUCCEEDED =\n 'DEACTIVATE_USERS_REQUEST_SUCCEEDED';\nexport const DEACTIVATE_USERS_REQUEST_FAILED =\n 'DEACTIVATE_USERS_REQUEST_FAILED';\n\nexport const USER_UPDATE_REQUESTED = 'USER_UPDATE_REQUESTED';\nexport const USER_UPDATE_SUCCEEDED = 'USER_UPDATE_SUCCEEDED';\nexport const USER_UPDATE_FAILED = 'USER_UPDATE_FAILED';\n\nexport const USER_EMAIL_UPDATE_REQUESTED = 'USER_EMAIL_UPDATE_REQUESTED';\nexport const USER_EMAIL_UPDATE_SUCCEEDED = 'USER_EMAIL_UPDATE_SUCCEEDED';\nexport const USER_EMAIL_UPDATE_FAILED = 'USER_EMAIL_UPDATE_FAILED';\nexport const REMOVE_USER_REQUESTED = 'REMOVE_USER_REQUESTED';\n\nexport const DELETE_USER_REQUESTED = 'DELETE_USER_REQUESTED';\nexport const DELETE_USER_REQUEST_FAILED = 'DELETE_USER_REQUEST_FAILED';\nexport const DELETE_USER_REQUEST_SUCCEEDED = 'DELETE_USER_REQUEST_SUCCEEDED';\n\nexport const DELETE_USER_ACCOUNT_REQUESTED = 'DELETE_USER_ACCOUNT_REQUESTED';\nexport const DELETE_USER_ACCOUNT_REQUEST_FAILED =\n 'DELETE_USER_ACCOUNT_REQUEST_FAILED';\nexport const DELETE_USER_ACCOUNT_REQUEST_SUCCEEDED =\n 'DELETE_USER_ACCOUNT_REQUEST_SUCCEEDED';\n\nexport const UPDATE_USER_PERMISSIONS_REQUESTED =\n 'UPDATE_USER_PERMISSIONS_REQUESTED';\nexport const UPDATE_USER_PERMISSIONS_SUCCEEDED =\n 'UPDATE_USER_PERMISSIONS_SUCCEEDED';\nexport const UPDATE_USER_PERMISSIONS_FAILED = 'UPDATE_USER_PERMISSIONS_FAILED';\n\nexport const MOVE_USER_ORGANIZATION_REQUESTED =\n 'MOVE_USER_ORGANIZATION_REQUESTED';\nexport const MOVE_USER_ORGANIZATION_SUCCEEDED =\n 'MOVE_USER_ORGANIZATION_SUCCEEDED';\nexport const MOVE_USER_ORGANIZATION_FAILED = 'MOVE_USER_ORGANIZATION_FAILED';\n\nexport const OTHER_COMMUNITIES_REQUESTED = 'OTHER_COMMUNITIES_REQUESTED';\nexport const OTHER_COMMUNITIES_REQUEST_SUCCEEDED =\n 'OTHER_COMMUNITIES_REQUEST_SUCCEEDED';\nexport const OTHER_COMMUNITIES_REQUEST_FAILED =\n 'OTHER_COMMUNITIES_REQUEST_FAILED';\n\nexport const UPDATE_USER_COMMUNITIES = 'UPDATE_USER_COMMUNITIES';\n\nexport const CLEAR_USER_ERRORS = 'CLEAR_USER_ERRORS';\n\nexport const DISMISS_INFO_CARD = 'DISMISS_INFO_CARD';\nexport const SHOW_INFO_CARD = 'SHOW_INFO_CARD';\n\nexport const TOGGLE_USER_VIEW = 'TOGGLE_USER_VIEW';\nexport const TOGGLE_USER_VIEW_SUCCEEDED = 'TOGGLE_USER_VIEW_SUCCEEDED';\n\nexport const userRequested = (isAuthenticating = false) => ({\n type: CURRENT_USER_REQUESTED,\n payload: {\n isAuthenticating,\n },\n});\nexport const userRequestSucceeded = (user, isAuthenticating = false) => ({\n type: USER_REQUEST_SUCCEEDED,\n payload: {\n user,\n isAuthenticating,\n },\n});\nexport const userRequestFailed = (errors) => ({\n type: USER_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const userDetailsRequested = (userId) => ({\n type: USER_DETAILS_REQUESTED,\n payload: {\n userId,\n },\n});\n\nexport const userDetailsRequestSucceeded = (user) => ({\n type: USER_DETAILS_REQUEST_SUCCEEDED,\n payload: {\n user,\n },\n});\n\nexport const userDetailsRequestFailed = (errors) => ({\n type: USER_DETAILS_REQUESTED_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const setActiveCommunity = (communityId, toggleToUserView) => ({\n type: SET_ACTIVE_COMMUNITY,\n payload: {\n communityId,\n toggleToUserView,\n },\n});\n\nexport const setActiveCommunityFailed = (errors) => ({\n type: SET_ACTIVE_COMMUNITY_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const setActiveCommunitySucceeded = (communityId) => ({\n type: SET_ACTIVE_COMMUNITY_SUCCEEDED,\n payload: {\n communityId,\n },\n});\n\nexport const userUpdateRequested = (request, isCreating = false) => ({\n type: USER_UPDATE_REQUESTED,\n payload: {\n request,\n isCreating,\n },\n});\n\nexport const userUpdateSucceeded = (response) => ({\n type: USER_UPDATE_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const userUpdateFailed = (errors) => ({\n type: USER_UPDATE_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const userEmailUpdateRequested = (request) => ({\n type: USER_EMAIL_UPDATE_REQUESTED,\n payload: {\n request,\n },\n});\n\nexport const userEmailUpdateSucceeded = (response) => ({\n type: USER_EMAIL_UPDATE_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const userEmailUpdateFailed = (errors) => ({\n type: USER_EMAIL_UPDATE_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const membersRequested = (communityId, activeStatus, options) => {\n return {\n type: MEMBERS_REQUESTED,\n payload: {\n communityId,\n activeStatus,\n options,\n },\n };\n};\n\nexport const membersRequestSucceeded = (response) => ({\n type: MEMBERS_REQUEST_SUCCEEDED,\n payload: response,\n});\n\nexport const membersRequestFailed = (activeStatus, errors) => ({\n type: MEMBERS_REQUEST_FAILED,\n payload: {\n errors,\n activeStatus,\n },\n});\n\nexport const membersSearchRequested = (\n communityId,\n searchString,\n activeStatus,\n options,\n) => ({\n type: MEMBERS_SEARCH_REQUESTED,\n payload: {\n communityId,\n searchString,\n activeStatus,\n options,\n },\n});\n\nexport const membersSearchRequestSucceeded = (response) => ({\n type: MEMBERS_SEARCH_REQUEST_SUCCEEDED,\n payload: response,\n});\n\nexport const membersSearchRequestFailed = (activeStatus, errors) => ({\n type: MEMBERS_SEARCH_REQUEST_FAILED,\n payload: {\n activeStatus,\n errors,\n },\n});\n\nexport const permissionsAndRolesRequested = (communityId) => ({\n type: PERMISSIONS_AND_ROLES_REQUESTED,\n payload: {\n communityId,\n },\n});\n\nexport const permissionsAndRolesRequestSucceeded = (permissions, roles) => ({\n type: PERMISSIONS_AND_ROLES_REQUEST_SUCCEEDED,\n payload: {\n permissions,\n roles,\n },\n});\n\nexport const permissionsAndRolesRequestFailed = () => ({\n type: PERMISSIONS_AND_ROLES_REQUEST_FAILED,\n});\n\nexport const activateUsersRequested = (communityId, userIds) => ({\n type: ACTIVATE_USERS_REQUESTED,\n payload: {\n communityId,\n userIds,\n },\n});\n\nexport const activateUsersRequestSucceeded = () => ({\n type: ACTIVATE_USERS_REQUEST_SUCCEEDED,\n});\n\nexport const activateUsersRequestFailed = (errors = []) => ({\n type: ACTIVATE_USERS_REQUEST_FAILED,\n payload: { errors },\n});\n\nexport const deactivateUsersRequested = (communityId, userIds) => ({\n type: DEACTIVATE_USERS_REQUESTED,\n payload: {\n communityId,\n userIds,\n },\n});\n\nexport const deactivateUsersRequestSucceeded = () => ({\n type: DEACTIVATE_USERS_REQUEST_SUCCEEDED,\n});\n\nexport const deactivateUsersRequestFailed = (errors = []) => ({\n type: DEACTIVATE_USERS_REQUEST_FAILED,\n payload: { errors },\n});\n\nexport const deleteUserRequested = (communityId, userIds) => ({\n type: DELETE_USER_REQUESTED,\n payload: {\n communityId,\n userIds,\n },\n});\n\nexport const deleteUserRequestFailed = (errors = []) => ({\n type: DELETE_USER_REQUEST_FAILED,\n payload: { errors },\n});\n\nexport const deleteUserRequestSucceeded = () => ({\n type: DELETE_USER_REQUEST_SUCCEEDED,\n});\n\nexport const deleteUserAccountRequested = (userId) => ({\n type: DELETE_USER_ACCOUNT_REQUESTED,\n payload: {\n userId,\n },\n});\n\nexport const deleteUserAccountRequestFailed = (errors = []) => ({\n type: DELETE_USER_ACCOUNT_REQUEST_FAILED,\n payload: { errors },\n});\n\nexport const deleteUserAccountRequestSucceeded = () => ({\n type: DELETE_USER_ACCOUNT_REQUEST_SUCCEEDED,\n});\n\nexport const updateUserPermissionsRequested = (\n communityId,\n userIds,\n permissions,\n role,\n) => ({\n type: UPDATE_USER_PERMISSIONS_REQUESTED,\n payload: {\n communityId,\n userIds,\n permissions,\n role,\n },\n});\n\nexport const updateUserPermissionsSucceeded = () => ({\n type: UPDATE_USER_PERMISSIONS_SUCCEEDED,\n});\n\nexport const updateUserPermissionsFailed = (errors = []) => ({\n type: UPDATE_USER_PERMISSIONS_FAILED,\n payload: { errors },\n});\n\nexport const moveUserOrganizationRequested = (\n communityId,\n userId,\n newOrganizationId,\n) => ({\n type: MOVE_USER_ORGANIZATION_REQUESTED,\n payload: {\n communityId,\n userId,\n newOrganizationId,\n },\n});\n\nexport const moveUserOrganizationSucceeded = () => ({\n type: MOVE_USER_ORGANIZATION_SUCCEEDED,\n});\n\nexport const moveUserOrganizationFailed = (errors = []) => ({\n type: MOVE_USER_ORGANIZATION_FAILED,\n payload: { errors },\n});\n\nexport const otherCommunitiesRequested = () => ({\n type: OTHER_COMMUNITIES_REQUESTED,\n});\n\nexport const otherCommunitiesRequestSucceeded = (response) => ({\n type: OTHER_COMMUNITIES_REQUEST_SUCCEEDED,\n payload: { response },\n});\n\nexport const otherCommunitiesRequestFailed = (errors) => ({\n type: OTHER_COMMUNITIES_REQUEST_FAILED,\n payload: { errors },\n});\n\nexport const updateUserCommunities = (communities) => ({\n type: UPDATE_USER_COMMUNITIES,\n payload: { communities },\n});\n\nexport const clearUserErrors = () => ({\n type: CLEAR_USER_ERRORS,\n});\n\nexport const dismissInfoCard = (infoCardId) => ({\n type: DISMISS_INFO_CARD,\n payload: { infoCardId },\n});\n\nexport const showInfoCard = (infoCardId) => ({\n type: SHOW_INFO_CARD,\n payload: { infoCardId },\n});\n\nexport const toggleUserView = () => ({\n type: TOGGLE_USER_VIEW,\n});\n\nexport const toggleUserViewSucceeded = () => ({\n type: TOGGLE_USER_VIEW_SUCCEEDED,\n});\n","import { getProperties } from '../utils';\nimport posthog from 'posthog-js';\n\nlet firebaseConfig = getProperties()?.firebaseConfig;\nlet posthogToken = getProperties()?.posthogConfig.token;\n// If we're not in production, always use the staging firebase project\nif (process.env.REACT_APP_ENVIRONMENT !== 'production') {\n firebaseConfig = {\n apiKey: 'AIzaSyCKUPZycanSmMzeuMteBacF14vjh2nM6KM',\n authDomain: 'joulebug-dashboard-staging.firebaseapp.com',\n projectId: 'joulebug-dashboard-staging',\n storageBucket: 'joulebug-dashboard-staging.appspot.com',\n messagingSenderId: '643018100191',\n appId: '1:643018100191:web:8ea835bba96a003231c86a',\n measurementId: 'G-SC249NQ4X3',\n };\n posthogToken = 'phc_WCWf8krBQIcjYVwHiPE16LBqtjH263n8f0KzEQIZFPZ';\n}\n\n// Initialize posthog\nposthog.init(posthogToken, {\n api_host: 'https://app.posthog.com',\n});\n// Opt out until we have consent from the user\nposthog.opt_out_capturing();\nexport { firebaseConfig };\n","import { getProperties } from './index';\n\n/**\n * Returns a cookie value if a name is specified. Otherwise returns the entire cookies as an object\n * @param [name] - The name of the cookie to fetch the value for. Returns the entire map of cookies if not specified\n * @returns {string|Object} - The value of the cookie specified by `name` if specified. Otherwise returns a name value map of the available cookies\n */\nexport function getCookie(name) {\n const cookies = document.cookie.split(';').reduce((acc, cookieString) => {\n const [key, value] = cookieString.split('=').map((s) => s.trim());\n if (key && value) {\n acc[key] = decodeURIComponent(value);\n }\n return acc;\n }, {});\n return name ? cookies[name] || '' : cookies;\n}\n\nexport function hasGDPRConsent() {\n return getCookie('cky-consent') === 'yes';\n}\n\nexport function hasAnalyticsConsent() {\n return getCookie('cookieyes-analytics') === 'yes';\n}\n\nexport function hasAdStorageConsent() {\n // Map ad_storage to ad_user_data\n return getCookie('cookieyes-ad_storage') === 'yes';\n}\n\nexport function hasAdUserDataConsent() {\n return getCookie('cookieyes-ad_user_data') === 'yes';\n}\n\nexport function hasAdPersonalizationConsent() {\n return getCookie('cookieyes-ad_personalization') === 'yes';\n}\n\nexport function setupCookieYes() {\n const scriptSrc = getProperties()?.cookieYesConfig?.scriptSrc || '';\n const script = document.createElement('script');\n script.id = 'cookieyes';\n script.type = 'text/javascript';\n script.src = scriptSrc;\n document.body.appendChild(script);\n return script;\n}\n","export const EVENT_DYNAMIC_LINK_OPEN = 'dynamic_link_open';\n\nexport const EVENT_SHARE_BEGIN = 'share_begin';\n\nexport const EVENT_SUBSCRIPTION_STRIPE_UPGRADE_BEGIN =\n 'subscription_stripe_upgrade_started';\nexport const EVENT_SUBSCRIPTION_STRIPE_UPGRADE_COMPLETE =\n 'subscription_stripe_upgrade_finished';\nexport const EVENT_SUBSCRIPTION_PRESS_UPGRADE = 'subscription_upgrade_pressed';\nexport const EVENT_SUBSCRIPTION_PRESS_CHANGE_PLAN =\n 'subscription_change_plan_pressed';\nexport const EVENT_SUBSCRIPTION_ONBOARDING_BEGIN =\n 'subscription_onboarding_begin';\nexport const EVENT_SUBSCRIPTION_PRESS_CONTACT = 'subscription_contact_pressed';\n\nexport const EVENT_ONBOARDING_GOOGLE_ORGANIZATION_CREATED =\n 'onboarding_google_organization_created';\n\nexport const EVENT_ORGANIZATION_DOMAIN_RESTRICTED =\n 'organization_domain_restricted';\n\nexport const EVENT_ACCOUNT_SSO_LOGGED_IN = 'account_sso_logged_in';\n\nexport const EVENT_ACCOUNT_LOGIN = 'account_login';\n\nexport const EVENT_GOOGLE_SIGN_IN_PRESSED = 'google_sign_in_pressed';\n\nexport const EVENT_COMMUNITY_CREATE_SUBMITTED = 'community_create_submitted';\nexport const EVENT_COMMUNITY_CREATE_PRESSED = 'community_create_pressed';\nexport const EVENT_COMMUNITY_EDIT_SUBMITTED = 'community_edit_submitted';\nexport const EVENT_COMMUNITY_EDIT_PRESSED = 'community_edit_pressed';\n\nexport const EVENT_CHALLENGE_INVITE_TOGGLED = 'challenge_invite_toggled';\n\nexport const EVENT_ONBOARDING_ORGANIZATION_DETAILS_SUBMITTED =\n 'onboarding_organization_details_submitted';\n\nexport const EVENT_ONBOARDING_ORGANIZATION_CREATE_BEGAN =\n 'onboarding_organization_create_began';\n\nexport const EVENT_ONBOARDING_EMAIL_VERIFIED = 'onboarding_email_verified';\n\nexport const EVENT_ONBOARDING_PASSWORD_SUBMITTED =\n 'onboarding_password_submitted';\n\nexport const EVENT_ONBOARDING_SKIPPED = 'onboarding_skipped';\n\nexport const EVENT_ONBOARDING_CHALLENGE_TYPE_CHOSEN =\n 'onboarding_challenge_type_chosen';\n\nexport const EVENT_ONBOARDING_CHALLENGE_DETAILS_SUBMITTED =\n 'onboarding_challenge_details_submitted';\n\nexport const EVENT_CHALLENGE_CREATED = 'challenge_created';\nexport const EVENT_CHALLENGE_PUBLISHED = 'challenge_published';\n\nexport const EVENT_CHALLENGE_JOINED = 'challenge_joined';\n\nexport const EVENT_CHALLENGE_EDITED = 'challenge_edited';\n\nexport const INTERCOM_EVENTS = [EVENT_CHALLENGE_PUBLISHED];\n\nexport const EVENT_CHALLENGE_ACTION_REMOVED = 'challenge_action_removed';\nexport const EVENT_CHALLENGE_ACTION_ADDED = 'challenge_action_added';\n\nexport const EVENT_CHALLENGE_PRIZE_ADDED = 'challenge_prize_added';\n\nexport const EVENT_COMMUNITY_SHARE_IMAGE_DOWNLOADED =\n 'community_share_image_downloaded';\n\nexport const EVENT_COMMUNITY_USERS_MANUALLY_INVITED =\n 'community_users_manually_invited';\n\nexport const EVENT_DYNAMIC_LINK_COPIED = 'dynamic_link_copied';\n\nexport const EVENT_ACTION_LOGGED = 'action_logged';\n\nexport const EVENT_ACTION_EDITED = 'action_edited';\n\n// Turn the below into events matching the format above\nexport const EVENT_NOTIFICATION_EDIT_BEGAN = 'notification_edit_began';\nexport const EVENT_NOTIFICATION_EDIT_FINISHED = 'notification_edit_finished';\nexport const EVENT_NOTIFICATION_CREATE_BEGAN = 'notification_create_began';\nexport const EVENT_NOTIFICATION_CREATE_FINISHED =\n 'notification_create_finished';\nexport const EVENT_NOTIFICATION_DELETED = 'notification_deleted';\nexport const EVENT_SLACK_INTEGRATED = 'slack_integrated';\n\nexport const EVENT_PROFILE_DEACTIVATED = 'profile_deactivated';\nexport const EVENT_PROFILE_ACTIVATED = 'profile_activated';\n\nexport const EVENT_ACTION_VIDEO_VIEWED = 'action_video_viewed';\n\nexport const EVENT_ACTION_LINK_VIEWED = 'action_link_viewed';\n\nexport const ANALYTICS_FILTER_CHANGED = 'analytics_filter_changed';\nexport const EVENT_PROFILE_TROPHY_CASE_VIEWED = 'profile_trophy_case_viewed';\nexport const EVENT_PROFILE_ACTIVITY_VIEWED = 'profile_activity_viewed';\n","export const PARAM_SOURCE = 'source';\nexport const PARAM_MEDIUM = 'medium';\nexport const PARAM_CAMPAIGN = 'campaign';\nexport const PARAM_CONTENT_TYPE = 'content_type';\nexport const PARAM_CONTENT_ID = 'content_id';\nexport const PARAM_PLATFORM = 'platform';\n\nexport const PARAM_PLAN_ID = 'platform';\nexport const PARAM_SUBSCRIPTION_ID = 'subscription_id';\nexport const PARAM_ORIGIN = 'origin';\n\nexport const CONTENT_TYPES = {\n CHALLENGES: 'challenges',\n ACTIVITIES: 'activities',\n ACTIONS: 'actions',\n};\n","import { useEffect } from 'react';\nimport {\n getAnalytics,\n logEvent,\n setUserId,\n setUserProperties,\n} from 'firebase/analytics';\nimport { initializeApp } from 'firebase/app';\nimport posthog from 'posthog-js';\n\nimport { firebaseConfig } from '../config/analytics';\nimport {\n hasAdPersonalizationConsent,\n hasAdStorageConsent,\n hasAdUserDataConsent,\n hasAnalyticsConsent,\n hasGDPRConsent,\n} from './cookies';\nimport moment from 'moment';\nimport { INTERCOM_EVENTS } from '../constants/analyticsEvents';\nimport {\n PARAM_CAMPAIGN,\n PARAM_CONTENT_TYPE,\n PARAM_MEDIUM,\n PARAM_SOURCE,\n} from '../constants/analyticsParams';\n\nexport const ANALYTICS_GROUP_COMMUNITY = 'community';\nlet firebaseAnalytics = null;\nlet gtmInitialized = false;\n\n// Init firebase w/ out analytics\nconst firebaseApp = firebaseConfig ? initializeApp(firebaseConfig) : null;\n\nconst gtagConsentUpdate = (params) => {\n if (window.gtag) {\n window.gtag('consent', 'update', params);\n }\n};\n\n/**\n * Attempts to initialize analytics by checking that the right cookies for GFPR compliance are in place\n */\nexport const initAnalytics = () => {\n // If we didn't receive consent for analytic tracking, don't initialize any 3rd party tracking tools\n if (!hasGDPRConsent() || !hasAnalyticsConsent()) {\n if (posthog.has_opted_out_capturing()) {\n posthog.opt_out_capturing();\n }\n }\n if (!gtmInitialized) {\n initializeGTM();\n gtmInitialized = true;\n }\n if (posthog.has_opted_out_capturing()) {\n posthog.opt_in_capturing();\n }\n if (!firebaseAnalytics && firebaseApp) {\n firebaseAnalytics = getAnalytics(firebaseApp);\n }\n updateConsentSettings();\n};\n\nconst initializeGTM = () => {\n const gtmId = process.env.REACT_APP_GOOGLE_ANALYTICS;\n if (gtmId) {\n const script = document.createElement('script');\n script.async = true;\n script.src = `https://www.googletagmanager.com/gtag/js?id=${gtmId}`;\n document.head.appendChild(script);\n\n script.onload = () => {\n window.dataLayer = window.dataLayer || [];\n function gtag() {\n window.dataLayer.push(arguments);\n }\n gtag('js', new Date());\n gtag('config', gtmId);\n };\n }\n};\n\nconst updateConsentSettings = () => {\n const consentParams = {\n ad_storage: hasAdStorageConsent() ? 'granted' : 'denied',\n analytics_storage: hasAnalyticsConsent() ? 'granted' : 'denied',\n ad_user_data: hasAdUserDataConsent() ? 'granted' : 'denied',\n ad_personalization: hasAdPersonalizationConsent()\n ? 'granted'\n : 'denied',\n };\n gtagConsentUpdate(consentParams);\n};\n\nexport const trackEvent = (name, parameters = {}) => {\n if (firebaseAnalytics) {\n logEvent(firebaseAnalytics, name, parameters);\n }\n posthog.capture(name, parameters);\n if (INTERCOM_EVENTS.includes(name)) {\n window.Intercom('trackEvent', name, parameters);\n }\n};\n\nexport const useTrackScreenView = (name, parameters = {}) => {\n useEffect(\n () => trackEvent(name, parameters),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n posthog.capture('$pageview');\n};\n\nexport const setUserID = (id) => {\n if (firebaseAnalytics) {\n setUserId(firebaseAnalytics, id);\n }\n posthog.identify(id);\n};\n\nexport const setAnalyticsCommunity = (activeCommunity, properties = {}) => {\n properties.id = activeCommunity?.id;\n if (activeCommunity?.created) {\n properties.created = moment(activeCommunity.created).unix();\n }\n setAnalyticsGroup(\n ANALYTICS_GROUP_COMMUNITY,\n activeCommunity?.id,\n properties,\n );\n};\n\nexport const setAnalyticsGroup = (groupType, groupKey, groupProperties) => {\n if (groupType && groupKey) {\n posthog.group(groupType, groupKey, groupProperties);\n }\n};\n\nexport const setTrackingProperties = (properties) => {\n if (firebaseAnalytics) {\n setUserProperties(firebaseAnalytics, properties);\n }\n posthog.has_opted_in_capturing() &&\n posthog.people &&\n posthog.people.set_once(properties);\n};\n\nexport const getUTMParams = () => {\n const query = new URLSearchParams(window.location.search);\n return {\n [PARAM_CAMPAIGN]: query.get('utm_campaign'),\n [PARAM_SOURCE]: query.get('utm_source'),\n [PARAM_MEDIUM]: query.get('utm_medium'),\n [PARAM_CONTENT_TYPE]: query.get('utm_content'),\n };\n};\n","import {\n MANUALLY_JOINED,\n USER_ROLE_ORGANIZATION_ADMIN,\n USER_ROLE_ORGANIZATION_OWNER,\n USER_ROLE_ORGANIZATION_PARTICIPANT,\n} from './constants';\nimport { getAppImages } from '../utils';\n\n/**\n * Checks Shine user for imageSizes array and gets the highest resolution image.\n * If none, returns the default profile icon.\n * @param user\n * @return {string}\n */\nexport const getHighResProfilePicture = (user) => {\n const { imageSizes } = user || {};\n return (\n (imageSizes && imageSizes.length > 0 && imageSizes.pop().url) ||\n getAppImages().defaultProfileIcon\n );\n};\n\n/**\n * Maps Shine user fields for display in Users screen.\n * @param users\n * @param communityId The ID of the community for which to get each user's permissions\n * @returns {Object[]}\n */\nexport const transformUsers = (users, communityId) =>\n users?.map((member) => ({\n id: member.id,\n icon: getHighResProfilePicture(member),\n name: member.name,\n email: member.emails[0],\n role: member.communityPermissions?.[communityId]?.role || '',\n dateJoined: member.dateJoined,\n lastSeen: member.lastSeen,\n communityPermissions: member.communityPermissions || {},\n })) || [];\n\n/**\n * Get a user's associated communities\n * @param user\n * @returns {Object[]}\n */\nexport const transformAvailableCommunities = (user) => {\n const rawCommunities = Object.values(user.communityPermissions);\n return rawCommunities\n .map((community) => {\n if (!community || !community.content) return {};\n\n return {\n ...community,\n title: community.content.name,\n url:\n community.content.imageSizes[0] &&\n community.content.imageSizes[0].url,\n isOrganization:\n community.content.id === community.organizationId,\n };\n })\n .filter((community) => community.title)\n .sort((a, b) =>\n a.title.toUpperCase().localeCompare(b.title.toUpperCase()),\n )\n .sort((a, b) => {\n const c = a.organizationId.localeCompare(b.organizationId);\n if (c === 0) {\n return b.isOrganization - a.isOrganization;\n } else {\n return 0;\n }\n });\n};\n\nexport const transformCommunityPermission = (permissionInfo) => {\n if (!permissionInfo || !permissionInfo.content) {\n return null;\n }\n return {\n ...permissionInfo.content,\n organizationId: permissionInfo.organizationId,\n };\n};\n\nconst extractTrophyInfo = (trophies) => {\n return Object.values(trophies)\n .filter((trophy) => trophy.completed)\n .map((trophy) => {\n return {\n imageUrl:\n trophy?.content?.imageSizes[\n trophy.content.imageSizes.length - 1\n ]?.url,\n name: trophy?.content?.name,\n };\n });\n};\n\nconst extractMedalInfo = (medals) => {\n return Object.values(medals)\n .filter((medal) => medal.completed)\n .map((medal) => {\n let medalInfo = {\n name: medal?.content?.name,\n multiplier: medal?.num_checkins,\n };\n const images = medal?.content?.imageSizes || [];\n if (images.length > 0) {\n medalInfo = {\n ...medalInfo,\n imageUrl: images[images.length - 1]?.url,\n };\n }\n return medalInfo;\n });\n};\n\nexport const transformUserWithIntercomRole = (user) => {\n if (!user) return user;\n let role = USER_ROLE_ORGANIZATION_PARTICIPANT;\n if (user.isOrganizationOwner) role = USER_ROLE_ORGANIZATION_OWNER;\n else if (Object.keys(user.communityPermissions).length > 0)\n role = USER_ROLE_ORGANIZATION_ADMIN;\n return {\n ...user,\n intercomRole: role,\n };\n};\n\n/**\n * Get a user's trophies for displaying in User screen\n * @param user\n */\nexport const transformUserTrophies = (user) => {\n const trophies = {};\n if (user) {\n trophies.actions = extractTrophyInfo(user.pins);\n trophies.badges = extractTrophyInfo(user.badges);\n trophies.medals = extractMedalInfo(user.medals);\n }\n return trophies;\n};\n\n/*\n * Get a user's joined community list to be displayed in the user settings screen\n */\nexport const transformJoinedCommunities = (communities) => {\n return communities\n ?.filter((community) => community.membershipStatus === MANUALLY_JOINED)\n .sort((a, b) => {\n if (a.unjoinEligibility.eligible < b.unjoinEligibility.eligible)\n return -1;\n else if (\n a.unjoinEligibility.eligible > b.unjoinEligibility.eligible\n )\n return 1;\n else return 0;\n });\n};\n","import {\n ACTIVATE_USERS_REQUEST_FAILED,\n ACTIVATE_USERS_REQUEST_SUCCEEDED,\n ACTIVATE_USERS_REQUESTED,\n CLEAR_USER_ERRORS,\n CURRENT_USER_REQUESTED,\n DEACTIVATE_USERS_REQUEST_FAILED,\n DEACTIVATE_USERS_REQUEST_SUCCEEDED,\n DEACTIVATE_USERS_REQUESTED,\n DELETE_USER_ACCOUNT_REQUEST_FAILED,\n DELETE_USER_ACCOUNT_REQUEST_SUCCEEDED,\n DELETE_USER_ACCOUNT_REQUESTED,\n DELETE_USER_REQUEST_FAILED,\n DELETE_USER_REQUEST_SUCCEEDED,\n DELETE_USER_REQUESTED,\n DISMISS_INFO_CARD,\n MEMBERS_REQUEST_FAILED,\n MEMBERS_REQUEST_SUCCEEDED,\n MEMBERS_REQUESTED,\n MEMBERS_SEARCH_REQUEST_FAILED,\n MEMBERS_SEARCH_REQUEST_SUCCEEDED,\n MEMBERS_SEARCH_REQUESTED,\n MOVE_USER_ORGANIZATION_FAILED,\n MOVE_USER_ORGANIZATION_REQUESTED,\n MOVE_USER_ORGANIZATION_SUCCEEDED,\n OTHER_COMMUNITIES_REQUEST_FAILED,\n OTHER_COMMUNITIES_REQUEST_SUCCEEDED,\n OTHER_COMMUNITIES_REQUESTED,\n PERMISSIONS_AND_ROLES_REQUEST_FAILED,\n PERMISSIONS_AND_ROLES_REQUEST_SUCCEEDED,\n PERMISSIONS_AND_ROLES_REQUESTED,\n SET_ACTIVE_COMMUNITY,\n SET_ACTIVE_COMMUNITY_FAILED,\n SET_ACTIVE_COMMUNITY_SUCCEEDED,\n SHOW_INFO_CARD,\n TOGGLE_USER_VIEW,\n UPDATE_USER_COMMUNITIES,\n UPDATE_USER_PERMISSIONS_FAILED,\n UPDATE_USER_PERMISSIONS_REQUESTED,\n UPDATE_USER_PERMISSIONS_SUCCEEDED,\n USER_DETAILS_REQUEST_SUCCEEDED,\n USER_DETAILS_REQUESTED,\n USER_DETAILS_REQUESTED_FAILED,\n USER_EMAIL_UPDATE_FAILED,\n USER_EMAIL_UPDATE_REQUESTED,\n USER_EMAIL_UPDATE_SUCCEEDED,\n USER_REQUEST_FAILED,\n USER_REQUEST_SUCCEEDED,\n USER_UPDATE_FAILED,\n USER_UPDATE_REQUESTED,\n USER_UPDATE_SUCCEEDED,\n} from './actions';\nimport {\n LOGOUT_REQUEST_FAILED,\n LOGOUT_REQUEST_SUCCEEDED,\n} from '../auth/actions';\nimport { ACTIVE_STATUS_ACTIVE, ACTIVE_STATUS_DEACTIVATED } from './constants';\nimport { setAnalyticsCommunity } from '../utils/analytics';\nimport { transformCommunityPermission } from './transforms';\n\nconst initialState = {\n user: null,\n loading: {\n user: false,\n },\n [ACTIVE_STATUS_ACTIVE]: {\n data: [],\n loading: false,\n totalCount: 0,\n },\n [ACTIVE_STATUS_DEACTIVATED]: {\n data: [],\n loading: false,\n totalCount: 0,\n },\n success: false,\n messages: [],\n errors: [],\n update: {\n loading: false,\n errors: [],\n result: null,\n },\n activeCommunity: {\n loading: false,\n errors: [],\n },\n communities: {\n response: null,\n loading: false,\n errors: [],\n },\n selectedUser: null,\n selectedUserLoading: false,\n dismissedInfoCardIds: [],\n userViewActive: false,\n};\n\nconst userReducer = (state = initialState, action) => {\n const { type, payload = {} } = action;\n\n if (type === CURRENT_USER_REQUESTED) {\n return {\n ...state,\n loading: {\n ...state.loading,\n user: true,\n },\n };\n } else if (type === USER_REQUEST_SUCCEEDED) {\n const { user } = payload;\n return {\n ...state,\n user,\n errors: [],\n loading: {\n ...state.loading,\n user: false,\n },\n };\n } else if (type === USER_REQUEST_FAILED) {\n return {\n ...state,\n errors: payload.errors,\n loading: {\n ...state.loading,\n user: false,\n },\n };\n } else if (type === USER_DETAILS_REQUESTED) {\n return {\n ...state,\n selectedUserLoading: true,\n };\n } else if (type === USER_DETAILS_REQUEST_SUCCEEDED) {\n const { user } = payload;\n return {\n ...state,\n selectedUser: user,\n selectedUserErrors: [],\n selectedUserLoading: false,\n selectedUserActivities: [],\n };\n } else if (type === USER_DETAILS_REQUESTED_FAILED) {\n const { errors } = payload;\n return {\n ...state,\n selectedUser: null,\n selectedUserErrors: errors,\n selectedUserLoading: false,\n selectedUserActivities: [],\n };\n } else if (type === SET_ACTIVE_COMMUNITY) {\n const { communityId } = payload;\n return {\n ...state,\n activeCommunity: {\n ...state.activeCommunity,\n ...transformCommunityPermission(\n state.user.communityPermissions[communityId],\n ),\n loading: true,\n },\n };\n } else if (type === SET_ACTIVE_COMMUNITY_FAILED) {\n return {\n ...state,\n activeCommunity: {\n ...state.activeCommunity,\n loading: false,\n },\n };\n } else if (type === SET_ACTIVE_COMMUNITY_SUCCEEDED) {\n return {\n ...state,\n activeCommunity: {\n ...state.activeCommunity,\n loading: false,\n },\n };\n } else if (\n type === USER_UPDATE_REQUESTED ||\n type === USER_EMAIL_UPDATE_REQUESTED\n ) {\n return {\n ...state,\n update: {\n ...state.update,\n loading: true,\n },\n };\n } else if (\n type === USER_UPDATE_SUCCEEDED ||\n type === USER_EMAIL_UPDATE_SUCCEEDED\n ) {\n return {\n ...state,\n update: {\n ...state.update,\n loading: false,\n errors: [],\n result: payload.response,\n },\n };\n } else if (\n type === USER_UPDATE_FAILED ||\n type === USER_EMAIL_UPDATE_FAILED\n ) {\n return {\n ...state,\n update: {\n ...state.update,\n loading: false,\n errors: payload.errors,\n },\n };\n } else if (\n type === MEMBERS_REQUESTED ||\n type === MEMBERS_SEARCH_REQUESTED\n ) {\n return {\n ...state,\n [payload.activeStatus]: {\n ...state[payload.activeStatus],\n loading: true,\n },\n errors: [],\n };\n } else if (\n type === MEMBERS_REQUEST_SUCCEEDED ||\n type === MEMBERS_SEARCH_REQUEST_SUCCEEDED\n ) {\n const { users: data, totalCount } = payload;\n return {\n ...state,\n [payload.activeStatus]: {\n ...state[payload.activeStatus],\n loading: false,\n data,\n totalCount,\n },\n };\n } else if (\n type === MEMBERS_REQUEST_FAILED ||\n type === MEMBERS_SEARCH_REQUEST_FAILED\n ) {\n return {\n ...state,\n [payload.activeStatus]: {\n ...state[payload.activeStatus],\n loading: false,\n data: [],\n totalCount: 0,\n },\n errors: payload.errors,\n };\n } else if (\n type === DELETE_USER_REQUESTED ||\n type === DELETE_USER_ACCOUNT_REQUESTED ||\n type === UPDATE_USER_PERMISSIONS_REQUESTED ||\n type === MOVE_USER_ORGANIZATION_REQUESTED\n ) {\n return {\n ...state,\n [ACTIVE_STATUS_ACTIVE]: {\n ...state[ACTIVE_STATUS_ACTIVE],\n loading: true,\n },\n };\n } else if (\n type === DELETE_USER_REQUEST_SUCCEEDED ||\n type === DELETE_USER_ACCOUNT_REQUEST_SUCCEEDED ||\n type === UPDATE_USER_PERMISSIONS_SUCCEEDED ||\n type === MOVE_USER_ORGANIZATION_SUCCEEDED\n ) {\n return {\n ...state,\n [ACTIVE_STATUS_ACTIVE]: {\n ...state[ACTIVE_STATUS_ACTIVE],\n loading: false,\n },\n };\n } else if (\n type === DELETE_USER_REQUEST_FAILED ||\n type === DELETE_USER_ACCOUNT_REQUEST_FAILED ||\n type === UPDATE_USER_PERMISSIONS_FAILED ||\n type === MOVE_USER_ORGANIZATION_FAILED\n ) {\n return {\n ...state,\n [ACTIVE_STATUS_ACTIVE]: {\n ...state[ACTIVE_STATUS_ACTIVE],\n loading: false,\n },\n errors: payload.errors,\n };\n } else if (type === PERMISSIONS_AND_ROLES_REQUESTED) {\n return {\n ...state,\n loading: {\n ...state.loading,\n permissions: true,\n },\n };\n } else if (type === PERMISSIONS_AND_ROLES_REQUEST_SUCCEEDED) {\n const { permissions, roles } = payload;\n return {\n ...state,\n permissions,\n roles,\n loading: {\n ...state.loading,\n permissions: false,\n },\n };\n } else if (type === PERMISSIONS_AND_ROLES_REQUEST_FAILED) {\n return {\n ...state,\n loading: {\n ...state.loading,\n permissions: false,\n },\n };\n } else if (\n type === ACTIVATE_USERS_REQUESTED ||\n type === DEACTIVATE_USERS_REQUESTED\n ) {\n return {\n ...state,\n loading: {\n ...state.loading,\n user: true,\n },\n };\n } else if (\n type === ACTIVATE_USERS_REQUEST_SUCCEEDED ||\n type === DEACTIVATE_USERS_REQUEST_SUCCEEDED\n ) {\n return {\n ...state,\n loading: {\n ...state.loading,\n user: false,\n },\n };\n } else if (\n type === ACTIVATE_USERS_REQUEST_FAILED ||\n type === DEACTIVATE_USERS_REQUEST_FAILED\n ) {\n return {\n ...state,\n loading: {\n ...state.loading,\n user: false,\n },\n };\n } else if (type === OTHER_COMMUNITIES_REQUESTED) {\n return {\n ...state,\n communities: {\n loading: true,\n errors: [],\n },\n };\n } else if (type === OTHER_COMMUNITIES_REQUEST_SUCCEEDED) {\n const { response } = payload;\n return {\n ...state,\n communities: {\n loading: false,\n response: response,\n },\n };\n } else if (type === OTHER_COMMUNITIES_REQUEST_FAILED) {\n const { errors } = payload;\n return {\n ...state,\n communities: {\n loading: false,\n errors: errors,\n },\n };\n } else if (type === UPDATE_USER_COMMUNITIES) {\n const { communities } = payload;\n return {\n ...state,\n user: {\n ...state.user,\n communityMemberships: communities,\n },\n };\n } else if (\n type === LOGOUT_REQUEST_SUCCEEDED ||\n type === LOGOUT_REQUEST_FAILED\n ) {\n return initialState;\n } else if (type === CLEAR_USER_ERRORS) {\n return {\n ...state,\n errors: [],\n update: {\n ...state.update,\n errors: [],\n },\n };\n } else if (type === DISMISS_INFO_CARD) {\n if (state.dismissedInfoCardIds.includes(payload.infoCardId)) {\n return state;\n }\n return {\n ...state,\n dismissedInfoCardIds: [\n ...state.dismissedInfoCardIds,\n payload.infoCardId,\n ],\n };\n } else if (type === SHOW_INFO_CARD) {\n const cardIds = state.dismissedInfoCardIds.filter(\n (id) => id !== payload.infoCardId,\n );\n return {\n ...state,\n dismissedInfoCardIds: cardIds,\n };\n } else if (type === TOGGLE_USER_VIEW) {\n const activeCommunity =\n state.user.communityPermissions[state.user.organization.id];\n\n return {\n ...state,\n userViewActive: !state.userViewActive,\n activeCommunity: activeCommunity,\n };\n } else if (type === 'persist/REHYDRATE') {\n setAnalyticsCommunity(state.activeCommunity);\n return state;\n }\n return state;\n};\n\nexport default userReducer;\n","export const ACTIVE_STATUS_ACTIVE = 'Active';\nexport const ACTIVE_STATUS_DEACTIVATED = 'Deactivated';\n\nexport const GROUPS = [ACTIVE_STATUS_ACTIVE, ACTIVE_STATUS_DEACTIVATED];\n\n// Used in place of an id in some places when referring to the current user\nexport const USER_SELF = 'self';\n\nexport const MANUALLY_JOINED = 'ManuallyJoined';\nexport const NOT_JOINED = 'NotJoined';\n\nexport const USER_ROLE_ORGANIZATION_PARTICIPANT = 'organizationParticipant';\nexport const USER_ROLE_ORGANIZATION_ADMIN = 'organizationAdmin';\nexport const USER_ROLE_ORGANIZATION_OWNER = 'organizationOwner';\n","export const ACTION_REQUESTED = 'ACTION_REQUESTED';\nexport const ACTION_REQUEST_SUCCEEDED = 'ACTION_REQUEST_SUCCEEDED';\nexport const ACTION_REQUEST_FAILED = 'ACTION_REQUEST_FAILED';\n\nexport const LOG_ACTION_REQUESTED = 'LOG_ACTION_REQUESTED';\nexport const LOG_ACTION_SUCCEEDED = 'LOG_ACTION_SUCCEEDED';\nexport const LOG_ACTION_FAILED = 'LOG_ACTION_FAILED';\n\nexport const ACTIONS_REQUESTED = 'ACTIONS_REQUESTED';\nexport const ACTIONS_REQUEST_SUCCEEDED = 'ACTIONS_REQUEST_SUCCEEDED';\nexport const ACTIONS_REQUEST_FAILED = 'ACTIONS_REQUEST_FAILED';\n\nexport const ADD_INCLUDE_ACTION_REQUESTED = 'ADD_INCLUDE_ACTION_REQUESTED';\nexport const ADD_EXCLUDE_ACTION_REQUESTED = 'ADD_EXCLUDE_ACTION_REQUESTED';\n\nexport const URL_METADATA_REQUESTED = 'URL_METADATA_REQUESTED';\nexport const URL_METADATA_REQUEST_SUCCEEDED = 'URL_METADATA_REQUEST_SUCCEEDED';\nexport const URL_METADATA_REQUEST_FAILED = 'URL_METADATA_REQUEST_FAILED';\n\nexport const ACTION_CUSTOMIZATION_REQUESTED = 'ACTION_CUSTOMIZATION_REQUESTED';\nexport const ACTION_CUSTOMIZATION_REQUEST_SUCCEEDED =\n 'ACTION_CUSTOMIZATION_REQUEST_SUCCEEDED';\nexport const ACTION_CUSTOMIZATION_REQUEST_FAILED =\n 'ACTION_CUSTOMIZATION_REQUEST_FAILED';\nexport const CLEAR_ACTION_CUSTOMIZATION_ERRORS =\n 'CLEAR_ACTION_CUSTOMIZATION_ERRORS';\nexport const SET_URL_METADATA = 'SET_URL_METADATA';\n\nexport const CLEAR_ACTION_LINK_METADATA = 'CLEAR_ACTION_LINK_METADATA';\n\nexport const ACTION_CATEGORIES_REQUESTED = 'ACTION_CATEGORIES_REQUESTED';\nexport const ACTION_CATEGORIES_REQUEST_SUCCEEDED =\n 'ACTION_CATEGORIES_REQUEST_SUCCEEDED';\nexport const ACTION_CATEGORIES_REQUEST_FAILED =\n 'ACTION_CATEGORIES_REQUEST_FAILED';\nexport const SET_VISITED_ACTION_CATEGORY = 'SET_VISITED_ACTION_CATEGORY';\nexport const SET_ACTION = 'SET_ACTION';\n\nexport const ACTION_SHARE_URL_REQUESTED = 'ACTION_SHARE_URL_REQUESTED';\nexport const ACTION_SHARE_URL_REQUEST_SUCCEEDED =\n 'ACTION_SHARE_URL_REQUEST_SUCCEEDED';\nexport const ACTION_SHARE_URL_REQUEST_FAILED =\n 'ACTION_SHARE_URL_REQUEST_FAILED';\n\nexport const CLEAR_ACTION_SHARE_URL_ERRORS = 'CLEAR_ACTION_SHARE_URL_ERRORS';\n\nexport const CLEAR_ACTION_ERRORS = 'CLEAR_ACTION_ERRORS';\n\nexport const SDGS_REQUESTED = 'SDGS_REQUESTED';\nexport const SDGS_REQUEST_SUCCEEDED = 'SDGS_REQUEST_SUCCEEDED';\nexport const SDGS_REQUEST_FAILED = 'SDGS_REQUEST_FAILED';\n\nexport const addExcludeActionRequest = (\n actionIds,\n actionDuplicationCommunityIds,\n filters,\n) => ({\n type: ADD_EXCLUDE_ACTION_REQUESTED,\n payload: {\n actionIds,\n actionDuplicationCommunityIds,\n filters,\n },\n});\n\nexport const addIncludeActionRequest = (\n actionIds,\n actionDuplicationCommunityIds,\n filters,\n) => {\n return {\n type: ADD_INCLUDE_ACTION_REQUESTED,\n payload: {\n actionIds,\n actionDuplicationCommunityIds,\n filters,\n },\n };\n};\n\nexport const actionRequested = ({ actionId, communityId }) => ({\n type: ACTION_REQUESTED,\n payload: {\n actionId,\n communityId,\n },\n});\n\nexport const actionRequestSucceeded = ({ action }) => ({\n type: ACTION_REQUEST_SUCCEEDED,\n payload: {\n action,\n },\n});\n\nexport const actionRequestFailed = (errors) => ({\n type: ACTION_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const logActionRequested = ({ actionId, communityId, options }) => ({\n type: LOG_ACTION_REQUESTED,\n payload: {\n actionId,\n communityId,\n options,\n },\n});\n\nexport const logActionSucceeded = (logActionData) => ({\n type: LOG_ACTION_SUCCEEDED,\n payload: {\n logAction: logActionData,\n },\n});\n\nexport const logActionFailed = (errors, status) => ({\n type: LOG_ACTION_FAILED,\n payload: {\n errors,\n status,\n },\n});\n\nconst actionsFilters = { challengeId: null, themeId: null, excluded: false };\nexport const actionsRequested = (communityId, filters = actionsFilters) => ({\n type: ACTIONS_REQUESTED,\n payload: {\n communityId,\n filters,\n },\n});\nexport const actionsRequestSucceeded = (actions, filters) => ({\n type: ACTIONS_REQUEST_SUCCEEDED,\n payload: {\n actions,\n filters,\n },\n});\n\nexport const actionsRequestFailed = (errors, filters) => ({\n type: ACTIONS_REQUEST_FAILED,\n payload: {\n errors,\n filters,\n },\n});\n\nexport const urlMetadataRequested = (request) => ({\n type: URL_METADATA_REQUESTED,\n payload: request,\n});\n\nexport const urlMetadataRequestSucceeded = (metadata, confirm) => ({\n type: URL_METADATA_REQUEST_SUCCEEDED,\n payload: {\n metadata,\n confirm,\n },\n});\n\nexport const urlMetadataRequestFailed = (errors) => ({\n type: URL_METADATA_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const setUrlMetadata = (metadata) => ({\n type: SET_URL_METADATA,\n payload: {\n metadata,\n },\n});\n\nexport const actionCustomizationRequested = (request) => ({\n type: ACTION_CUSTOMIZATION_REQUESTED,\n payload: {\n request,\n },\n});\n\nexport const actionCustomizationRequestSucceeded = (response) => ({\n type: ACTION_CUSTOMIZATION_REQUEST_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const actionCustomizationRequestFailed = (errors) => ({\n type: ACTION_CUSTOMIZATION_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const clearActionCustomizationErrors = () => ({\n type: CLEAR_ACTION_CUSTOMIZATION_ERRORS,\n});\n\nexport const clearActionLinkMetadata = () => ({\n type: CLEAR_ACTION_LINK_METADATA,\n});\n\nexport const actionCategoriesRequested = (request) => ({\n type: ACTION_CATEGORIES_REQUESTED,\n payload: request,\n});\n\nexport const actionCategoriesRequestSucceeded = (categories) => ({\n type: ACTION_CATEGORIES_REQUEST_SUCCEEDED,\n payload: {\n categories,\n },\n});\n\nexport const actionCategoriesRequestFailed = (errors) => ({\n type: ACTION_CATEGORIES_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const setLastVisitedActionCategoryIndex = (tabIndex) => ({\n type: SET_VISITED_ACTION_CATEGORY,\n payload: {\n tabIndex,\n },\n});\n\nexport const setAction = (actionId) => ({\n type: SET_ACTION,\n payload: {\n actionId,\n },\n});\n\nexport const actionShareURLRequested = (actionId) => ({\n type: ACTION_SHARE_URL_REQUESTED,\n payload: {\n actionId,\n },\n});\n\nexport const actionShareURLRequestSucceeded = (shareURL, actionId) => ({\n type: ACTION_SHARE_URL_REQUEST_SUCCEEDED,\n payload: {\n shareURL,\n actionId,\n },\n});\n\nexport const actionShareURLRequestFailed = (errors) => ({\n type: ACTION_SHARE_URL_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const clearActionShareURLErrors = () => ({\n type: CLEAR_ACTION_SHARE_URL_ERRORS,\n});\n\nexport const clearActionErrors = () => ({\n type: CLEAR_ACTION_ERRORS,\n});\n\nexport const sdgsRequested = () => ({\n type: SDGS_REQUESTED,\n});\n\nexport const sdgsRequestSucceeded = (sdgs) => ({\n type: SDGS_REQUEST_SUCCEEDED,\n payload: {\n sdgs,\n },\n});\n\nexport const sdgsRequestFailed = (errors) => ({\n type: SDGS_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n","export const ACTIVITY_DATA_REQUESTED = 'ACTIVITY_DATA_REQUESTED';\nexport const ACTIVITY_DATA_REQUEST_SUCCEEDED =\n 'ACTIVITY_DATA_REQUEST_SUCCEEDED';\nexport const ACTIVITY_DATA_REQUEST_FAILED = 'ACTIVITY_DATA_REQUEST_FAILED';\nexport const ACTIVITY_DETAIL_REQUESTED = 'ACTIVITY_DETAIL_REQUESTED';\nexport const ACTIVITY_DETAIL_REQUEST_SUCCEEDED =\n 'ACTIVITY_DETAIL_REQUEST_SUCCEEDED';\nexport const ACTIVITY_DETAIL_REQUEST_FAILED = 'ACTIVITY_DETAIL_REQUEST_FAILED';\nexport const ACTIVITY_SHARE_URL_REQUESTED = 'ACTIVITY_SHARE_URL_REQUESTED';\nexport const ACTIVITY_SHARE_URL_REQUEST_SUCCEEDED =\n 'ACTIVITY_SHARE_URL_REQUEST_SUCCEEDED';\nexport const ACTIVITY_SHARE_URL_REQUEST_FAILED =\n 'ACTIVITY_SHARE_URL_REQUEST_FAILED';\nexport const ACTIVITY_LIKE_REQUESTED = 'ACTIVITY_LIKE_REQUESTED';\nexport const ACTIVITY_LIKE_REQUEST_SUCCEEDED =\n 'ACTIVITY_LIKE_REQUEST_SUCCEEDED';\nexport const ACTIVITY_LIKE_REQUEST_FAILED = 'ACTIVITY_LIKE_REQUEST_FAILED';\nexport const ACTIVITY_ADD_COMMENT_REQUESTED = 'ACTIVITY_ADD_COMMENT_REQUESTED';\nexport const ACTIVITY_ADD_COMMENT_REQUEST_SUCCEEDED =\n 'ACTIVITY_ADD_COMMENT_REQUEST_SUCCEEDED';\nexport const ACTIVITY_ADD_COMMENT_REQUEST_FAILED =\n 'ACTIVITY_ADD_COMMENT_REQUEST_FAILED';\nexport const ACTIVITY_CLEAR_ERRORS = 'ACTIVITY_CLEAR_ERRORS';\nexport const CLEAR_ACTIVITIES = 'CLEAR_ACTIVITIES';\n\nexport const activityDataRequested = (activitiesType, options) => ({\n type: ACTIVITY_DATA_REQUESTED,\n payload: {\n activitiesType,\n options,\n },\n});\nexport const activityDataRequestFailed = (activitiesType, errors) => ({\n type: ACTIVITY_DATA_REQUEST_FAILED,\n payload: {\n activitiesType,\n errors,\n },\n});\nexport const activityDataRequestSucceeded = (\n activitiesType,\n newActivityData,\n skip,\n) => ({\n type: ACTIVITY_DATA_REQUEST_SUCCEEDED,\n payload: {\n activitiesType,\n newActivityData,\n skip,\n },\n});\nexport const activityDetailRequested = (activityId) => ({\n type: ACTIVITY_DETAIL_REQUESTED,\n payload: {\n activityId,\n },\n});\nexport const activityDetailRequestSucceeded = (activity) => ({\n type: ACTIVITY_DETAIL_REQUEST_SUCCEEDED,\n payload: {\n activity,\n },\n});\nexport const activityDetailRequestFailed = (errors) => ({\n type: ACTIVITY_DETAIL_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\nexport const activityShareURLRequested = (activityId) => ({\n type: ACTIVITY_SHARE_URL_REQUESTED,\n payload: {\n activityId,\n },\n});\nexport const activityShareURLRequestSucceeded = (activityId, url) => ({\n type: ACTIVITY_SHARE_URL_REQUEST_SUCCEEDED,\n payload: {\n activityId,\n url,\n },\n});\nexport const activityShareURLRequestFailed = (errors) => ({\n type: ACTIVITY_SHARE_URL_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\nexport const activityLikeRequested = (activityId, like) => ({\n type: ACTIVITY_LIKE_REQUESTED,\n payload: {\n activityId,\n like,\n },\n});\nexport const activityLikeRequestSucceeded = (activity) => ({\n type: ACTIVITY_LIKE_REQUEST_SUCCEEDED,\n payload: {\n activity,\n },\n});\nexport const activityLikeRequestFailed = (errors) => ({\n type: ACTIVITY_LIKE_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\nexport const addCommentRequested = (activityId, comment) => ({\n type: ACTIVITY_ADD_COMMENT_REQUESTED,\n payload: {\n activityId,\n comment,\n },\n});\nexport const addCommentRequestSucceeded = (activity) => ({\n type: ACTIVITY_ADD_COMMENT_REQUEST_SUCCEEDED,\n payload: {\n activity,\n },\n});\nexport const addCommentRequestFailed = (errors) => ({\n type: ACTIVITY_ADD_COMMENT_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const clearActivityErrors = () => ({\n type: ACTIVITY_CLEAR_ERRORS,\n});\n\nexport const clearActivities = (activitiesType) => ({\n type: CLEAR_ACTIVITIES,\n payload: {\n activitiesType,\n },\n});\n","export const CHEATING_ACTIONS = [\n 'throttleBaseAction',\n 'pinThrottleHour',\n 'pinThrottleDay',\n 'pinThrottleTimesInMinutes',\n 'penaltyLevel1Reached',\n 'penaltyLevel2Reached',\n 'penaltyLevel3Reached',\n 'penaltyLevel4Reached',\n 'penaltyLevel5Reached',\n 'penaltyLevel1Active',\n 'penaltyLevel2Active',\n 'penaltyLevel3Active',\n 'penaltyLevel4Active',\n 'penaltyLevel5Active',\n 'penaltyLevelWarning',\n 'penaltyLevel1Warning',\n 'penaltyLevel2Warning',\n 'penaltyLevel3Warning',\n 'penaltyLevel4Warning',\n 'penaltyLevel5Warning',\n 'inappropriateContentDuplicatePhoto',\n 'inappropriateContentPostMessage',\n];\n\nexport const PIN_ADMIN_VISIBILITY_INCLUDED_FOR_THEME = 'includedForTheme';\nexport const PIN_ADMIN_VISIBILITY_EXCLUDED = 'excluded';\n\nexport const PIN_ADMIN_VISIBILITY_ALL_INCLUDED = 'allIncluded';\n\nexport const PIN_ADMIN_VISIBILITIES = [\n PIN_ADMIN_VISIBILITY_INCLUDED_FOR_THEME,\n PIN_ADMIN_VISIBILITY_EXCLUDED,\n PIN_ADMIN_VISIBILITY_ALL_INCLUDED,\n];\n\nexport const CLIENT_PAGINATION_FETCH_LIMIT = 5000;\n","import {\n ACTION_REQUESTED,\n ACTION_REQUEST_SUCCEEDED,\n ACTION_REQUEST_FAILED,\n LOG_ACTION_REQUESTED,\n LOG_ACTION_SUCCEEDED,\n LOG_ACTION_FAILED,\n URL_METADATA_REQUESTED,\n URL_METADATA_REQUEST_SUCCEEDED,\n URL_METADATA_REQUEST_FAILED,\n ACTION_CUSTOMIZATION_REQUESTED,\n ACTION_CUSTOMIZATION_REQUEST_SUCCEEDED,\n ACTION_CUSTOMIZATION_REQUEST_FAILED,\n CLEAR_ACTION_LINK_METADATA,\n SET_URL_METADATA,\n ACTION_CATEGORIES_REQUEST_SUCCEEDED,\n ACTION_CATEGORIES_REQUEST_FAILED,\n ACTION_CATEGORIES_REQUESTED,\n SET_VISITED_ACTION_CATEGORY,\n SET_ACTION,\n ACTION_SHARE_URL_REQUESTED,\n ACTION_SHARE_URL_REQUEST_FAILED,\n ACTION_SHARE_URL_REQUEST_SUCCEEDED,\n CLEAR_ACTION_CUSTOMIZATION_ERRORS,\n ACTIONS_REQUEST_SUCCEEDED,\n ACTIONS_REQUESTED,\n ACTIONS_REQUEST_FAILED,\n CLEAR_ACTION_ERRORS,\n SDGS_REQUESTED,\n SDGS_REQUEST_SUCCEEDED,\n SDGS_REQUEST_FAILED,\n} from './actions';\nimport {\n ACTIVITY_SHARE_URL_REQUEST_FAILED,\n ACTIVITY_SHARE_URL_REQUEST_SUCCEEDED,\n ACTIVITY_SHARE_URL_REQUESTED,\n} from '../activities/actions';\nimport { PIN_ADMIN_VISIBILITIES } from './constants';\n\nconst initialState = {\n action: null,\n isLoading: false,\n actionShareURL: {\n loading: false,\n errors: [],\n },\n logAction: {\n shareURL: { loading: false, url: null },\n },\n isLogActionLoading: false,\n logErrors: [],\n logStatus: null,\n\n actions: {\n ...PIN_ADMIN_VISIBILITIES.map((v) => ({\n [v]: {\n actions: {\n pagination: {},\n data: [],\n },\n loading: false,\n errors: [],\n },\n })),\n },\n errors: [],\n link: {\n metadata: null,\n isMetadataLoading: false,\n metadataErrors: [],\n confirmed: false,\n },\n customize: {\n customizationMessage: null,\n isCustomizationRequested: false,\n customizationErrors: [],\n },\n actionCategories: {\n categories: null,\n isLoading: false,\n actionCategoriesErrors: [],\n lastActiveTabIndex: 1,\n },\n sdgs: {\n data: [],\n loading: false,\n errors: [],\n },\n};\n\nconst viewActionReducer = (state = initialState, action) => {\n const { type, payload = {} } = action;\n switch (type) {\n case ACTION_REQUESTED:\n return {\n ...state,\n isLoading: true,\n };\n case ACTION_REQUEST_SUCCEEDED:\n return {\n ...state,\n action: payload.action,\n isLoading: false,\n errors: [],\n };\n case ACTION_REQUEST_FAILED:\n return {\n ...state,\n isLoading: false,\n errors: payload.errors,\n };\n case LOG_ACTION_REQUESTED:\n return {\n ...state,\n logAction: {},\n isLogActionLoading: true,\n };\n case ACTIVITY_SHARE_URL_REQUESTED:\n return {\n ...state,\n logAction: {\n ...state.logAction,\n shareURL: { loading: true, url: null },\n },\n };\n case ACTIVITY_SHARE_URL_REQUEST_SUCCEEDED:\n return {\n ...state,\n logAction: {\n ...state.logAction,\n shareURL: { loading: false, url: payload.url },\n },\n };\n case ACTIVITY_SHARE_URL_REQUEST_FAILED:\n return {\n ...state,\n logAction: {\n ...state.logAction,\n shareURL: {\n loading: false,\n url: null,\n errors: payload.errors,\n },\n },\n };\n case LOG_ACTION_SUCCEEDED:\n return {\n ...state,\n logAction: { ...state.logAction, ...payload.logAction },\n logErrors: [],\n isLogActionLoading: false,\n };\n case LOG_ACTION_FAILED:\n return {\n ...state,\n logErrors: payload.errors,\n logStatus: payload.status,\n isLogActionLoading: false,\n };\n case ACTIONS_REQUESTED:\n if (!payload.filters.challengeIds) {\n return {\n ...state,\n actions: {\n ...state.actions,\n [payload.filters.visibility]: {\n ...state.actions[payload.filters.visibility],\n loading: true,\n errors: [],\n },\n },\n };\n } else {\n return state;\n }\n case ACTIONS_REQUEST_SUCCEEDED:\n if (payload && !payload.filters?.challengeIds) {\n return {\n ...state,\n actions: {\n ...state.actions,\n [payload.filters?.visibility]: {\n ...state.actions[payload.filters?.visibility],\n data: payload.actions,\n pagination: payload.filters?.pagination || {},\n loading: false,\n errors: [],\n },\n },\n };\n } else {\n return state;\n }\n case ACTIONS_REQUEST_FAILED:\n if (!payload.filters.challengeIds) {\n return {\n ...state,\n actions: {\n ...state.actions,\n [payload.filters.visibility]: {\n ...state.actions[payload.filters.visibility],\n loading: false,\n errors: payload.errors,\n },\n },\n };\n } else {\n return state;\n }\n case URL_METADATA_REQUESTED:\n return {\n ...state,\n link: {\n ...state.link,\n isMetadataLoading: true,\n },\n };\n case URL_METADATA_REQUEST_SUCCEEDED:\n return {\n ...state,\n link: {\n ...state.link,\n metadata: payload.metadata,\n isMetadataLoading: false,\n metadataErrors: [],\n confirmed: payload.confirm,\n },\n };\n case URL_METADATA_REQUEST_FAILED:\n return {\n ...state,\n link: {\n ...state.link,\n isMetadataLoading: false,\n metadataErrors: payload.errors,\n },\n };\n case SET_URL_METADATA:\n return {\n ...state,\n link: {\n ...state.link,\n metadata: payload.metadata,\n },\n };\n case ACTION_CUSTOMIZATION_REQUESTED:\n return {\n ...state,\n customize: {\n ...state.customize,\n isCustomizationRequested: true,\n },\n };\n case ACTION_CUSTOMIZATION_REQUEST_SUCCEEDED:\n return {\n ...state,\n customize: {\n ...state.customize,\n isCustomizationRequested: false,\n customizationErrors: [],\n customizationMessage: payload.response,\n },\n };\n case ACTION_CUSTOMIZATION_REQUEST_FAILED:\n return {\n ...state,\n customize: {\n ...state.customize,\n isCustomizationRequested: false,\n customizationErrors: payload.errors,\n },\n };\n case CLEAR_ACTION_CUSTOMIZATION_ERRORS:\n return {\n ...state,\n customize: {\n ...state.customize,\n customizationErrors: [],\n customizationMessage: null,\n },\n };\n case CLEAR_ACTION_LINK_METADATA:\n return {\n ...state,\n link: {\n ...state.link,\n metadata: initialState.link.metadata,\n confirmed: false,\n },\n };\n case ACTION_CATEGORIES_REQUESTED:\n return {\n ...state,\n actionCategories: {\n ...state.actionCategories,\n isLoading: true,\n categories: null,\n actionCategoriesErrors: [],\n },\n };\n case ACTION_CATEGORIES_REQUEST_FAILED:\n return {\n ...state,\n actionCategories: {\n ...state.actionCategories,\n isLoading: false,\n actionCategoriesErrors: payload.errors,\n },\n };\n case ACTION_CATEGORIES_REQUEST_SUCCEEDED:\n return {\n ...state,\n actionCategories: {\n ...state.actionCategories,\n categories: payload.categories,\n isLoading: false,\n actionCategoriesErrors: [],\n },\n };\n case SET_VISITED_ACTION_CATEGORY: {\n return {\n ...state,\n actionCategories: {\n ...state.actionCategories,\n lastActiveTabIndex: payload.tabIndex,\n },\n };\n }\n case SET_ACTION: {\n const action = state.actionCategories?.categories\n ?.map((category) => category.pins)\n ?.flat()\n ?.find((action) => action?.id === payload.actionId);\n return {\n ...state,\n action,\n };\n }\n case ACTION_SHARE_URL_REQUESTED:\n return {\n ...state,\n actionShareURL: {\n ...state.actionShareURL,\n loading: true,\n },\n };\n case ACTION_SHARE_URL_REQUEST_FAILED:\n return {\n ...state,\n actionShareURL: {\n ...state.actionShareURL,\n loading: false,\n errors: payload.errors,\n },\n };\n case ACTION_SHARE_URL_REQUEST_SUCCEEDED:\n return {\n ...state,\n action: {\n ...state.action,\n shareURL:\n state.action.id === payload.actionId\n ? payload.shareURL\n : action.shareURL,\n },\n actionShareURL: {\n ...state.actionShareURL,\n loading: false,\n },\n };\n case CLEAR_ACTION_ERRORS:\n return {\n ...state,\n ...PIN_ADMIN_VISIBILITIES.map((v) => ({\n [v]: {\n ...state[v],\n errors: [],\n },\n })),\n };\n case SDGS_REQUESTED:\n return {\n ...state,\n sdgs: {\n ...state.sdgs,\n loading: true,\n },\n };\n case SDGS_REQUEST_FAILED:\n return {\n ...state,\n sdgs: {\n ...state.sdgs,\n loading: false,\n errors: payload.errors,\n },\n };\n case SDGS_REQUEST_SUCCEEDED:\n return {\n ...state,\n sdgs: {\n ...state.sdgs,\n loading: false,\n data: payload.sdgs,\n },\n };\n default:\n return state;\n }\n};\n\nexport default viewActionReducer;\n","export const COMMUNITY_PHOTOS_REQUESTED = 'COMMUNITY_PHOTOS_REQUESTED';\nexport const COMMUNITY_PHOTOS_REQUEST_SUCCEEDED =\n 'COMMUNITY_PHOTOS_REQUEST_SUCCEEDED';\nexport const COMMUNITY_PHOTOS_REQUEST_FAILED =\n 'COMMUNITY_PHOTOS_REQUEST_FAILED';\nexport const CHALLENGE_PHOTOS_REQUESTED = 'CHALLENGE_PHOTOS_REQUESTED';\nexport const CHALLENGE_PHOTOS_REQUEST_SUCCEEDED =\n 'CHALLENGE_PHOTOS_REQUEST_SUCCEEDED';\nexport const CHALLENGE_PHOTOS_REQUEST_FAILED =\n 'CHALLENGE_PHOTOS_REQUEST_FAILED';\nexport const CLEAR_COMMUNITY_PHOTOS = 'CLEAR_COMMUNITY_PHOTOS';\n\nexport const communityPhotosRequested = (request) => ({\n type: COMMUNITY_PHOTOS_REQUESTED,\n payload: request,\n});\n\nexport const communityPhotosRequestSucceeded = ({ photos, skip }) => ({\n type: COMMUNITY_PHOTOS_REQUEST_SUCCEEDED,\n payload: {\n photos,\n skip,\n },\n});\n\nexport const communityPhotosRequestFailed = (errors) => ({\n type: COMMUNITY_PHOTOS_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const challengePhotosRequested = (request) => ({\n type: CHALLENGE_PHOTOS_REQUESTED,\n payload: request,\n});\n\nexport const challengePhotosRequestSucceeded = (response) => ({\n type: CHALLENGE_PHOTOS_REQUEST_SUCCEEDED,\n payload: response,\n});\n\nexport const challengePhotosRequestFailed = (errors) => ({\n type: CHALLENGE_PHOTOS_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const clearCommunityPhotos = () => ({\n type: CLEAR_COMMUNITY_PHOTOS,\n});\n","import moment from 'moment';\nimport 'moment/min/locales.min';\nimport i18n from 'i18next';\nexport const noop = () => {};\n\n/**\n * Сalculate table pagination range.\n *\n * @param {number} total number of pages\n * @param {number} current page selelected\n * @param {number} display, number of pages you want to show in the panel\n * @return {start, end}, page range\n */\nexport const calculateRangePagination = ({ total, current, display }) => {\n let end = total;\n let start = 1;\n if (display < end) {\n let beforeNumber = Math.round(display / 2 - 0.5);\n const afterNumber = beforeNumber;\n if (display % 2 === 0) {\n beforeNumber -= 1;\n }\n\n if (current <= beforeNumber + 1) {\n end = display;\n } else if (current >= total - afterNumber) {\n start = total - display + 1;\n } else {\n start = current - beforeNumber;\n end = current + afterNumber;\n }\n }\n\n return { start, end };\n};\n\n/**\n * Determining the initial state of the pagination panel for a table.\n *\n * @param {number} total number of pages\n * @param {number} current page selelected\n * @param {number} display, number of pages you want to show in the panel\n * @return {total, current, display}\n */\nexport const initStatePagination = (props) => {\n let { total, current, display } = props;\n total = total > 0 ? total : 1;\n current = current > 0 ? current : 1;\n display = display > 0 ? display : 1;\n current = current < total ? current : total;\n display = display < total ? display : total;\n return { total, current, display };\n};\n\n/**\n *\n * @param {array} permissions array of permissions\n * @param {string} parent filter key permissions group\n * @param {string} parentInternalName name of permission on title\n * @return {[perm, parentPermission]}\n */\nexport const getPermissionsBlock = (\n permissions,\n parent,\n parentInternalName,\n) => {\n let parentPermission;\n const perms = permissions.filter((permission) => {\n if (permission.internalName === parentInternalName) {\n parentPermission = permission;\n return false;\n }\n\n return permission.parent === parent;\n });\n\n return [perms, parentPermission];\n};\n\n/**\n * Append a new set of data to the set that we currently have\n * @param currentData The data we currently have for the list\n * @param newData the new data returned by the API\n * @param skip the skip value we used for pagination\n * @returns {*[]} The concatenated data\n */\nexport const mergePaginatedResponse = (\n currentData = [],\n newData = [],\n skip = 0,\n) => {\n if (!currentData) {\n return newData;\n }\n const slicedCurrentData = currentData.slice(0, skip || 0);\n if (!newData) {\n return slicedCurrentData;\n }\n return slicedCurrentData.concat(newData);\n};\n\nexport const getRelativeTime = (start) => {\n return moment(start)\n .locale(i18n.language)\n .fromNow(true);\n};\n\nexport const mergeItemById = (oldArray, newItem) => {\n return oldArray?.reduce((newArray, item) => {\n if (item.id === newItem.id) {\n newArray.push(newItem);\n } else {\n newArray.push(item);\n }\n return newArray;\n }, []);\n};\n","import {\n CHALLENGE_PHOTOS_REQUEST_FAILED,\n CHALLENGE_PHOTOS_REQUEST_SUCCEEDED,\n CHALLENGE_PHOTOS_REQUESTED,\n CLEAR_COMMUNITY_PHOTOS,\n COMMUNITY_PHOTOS_REQUEST_FAILED,\n COMMUNITY_PHOTOS_REQUEST_SUCCEEDED,\n COMMUNITY_PHOTOS_REQUESTED,\n} from './actions';\nimport { mergePaginatedResponse } from '../../common/utils';\n\nconst initialPhotoState = {\n photos: [],\n isLoading: false,\n errors: [],\n};\n\nexport default function analyticsPhotoReducer(\n state = initialPhotoState,\n action,\n) {\n const { type, payload = {} } = action;\n switch (type) {\n case COMMUNITY_PHOTOS_REQUESTED:\n case CHALLENGE_PHOTOS_REQUESTED:\n return {\n ...state,\n isLoading: true,\n };\n case COMMUNITY_PHOTOS_REQUEST_SUCCEEDED:\n case CHALLENGE_PHOTOS_REQUEST_SUCCEEDED:\n return {\n ...state,\n photos: mergePaginatedResponse(\n state.photos,\n payload.photos,\n payload.skip,\n ),\n isLoading: false,\n errors: [],\n };\n case COMMUNITY_PHOTOS_REQUEST_FAILED:\n case CHALLENGE_PHOTOS_REQUEST_FAILED:\n return {\n ...state,\n isLoading: false,\n errors: payload.errors,\n };\n case CLEAR_COMMUNITY_PHOTOS: {\n return {\n ...state,\n photos: [],\n };\n }\n default:\n return state;\n }\n}\n","export const ACTIVITIES_REQUESTED = 'ACTIVITIES_REQUESTED';\nexport const ACTIVITIES_REQUEST_SUCCEEDED = 'ACTIVITIES_REQUEST_SUCCEEDED';\nexport const ACTIVITIES_REQUEST_FAILED = 'ACTIVITIES_REQUEST_FAILED';\nexport const USERS_ANALYTIC_REQUESTED = 'USERS_ANALYTIC_REQUESTED';\nexport const USERS_ANALYTIC_REQUEST_SUCCEEDED =\n 'USERS_ANALYTIC_REQUEST_SUCCEEDED';\nexport const USERS_ANALYTIC_REQUEST_FAILED = 'USERS_ANALYTIC_REQUEST_FAILED';\nexport const IMPACT_STATS_REQUESTED = 'IMPACT_STATS_REQUESTED';\nexport const IMPACT_STATS_REQUEST_SUCCEEDED = 'IMPACT_STATS_REQUEST_SUCCEEDED';\nexport const IMPACT_STATS_REQUEST_FAILED = 'IMPACT_STATS_REQUEST_FAILED';\nexport const GRAPH_DATA_REQUESTED = 'GRAPH_DATA_REQUESTED';\nexport const GRAPH_DATA_REQUEST_SUCCEEDED = 'GRAPH_DATA_REQUEST_SUCCEEDED';\nexport const GRAPH_DATA_REQUEST_FAILED = 'GRAPH_DATA_REQUEST_FAILED';\nexport const SET_ANALYTICS_END_DATE_FILTER = 'SET_ANALYTICS_END_DATE_FILTER';\nexport const ANALYTICS_GRAPH_DATA_REQUESTED = 'ANALYTICS_GRAPH_DATA_REQUESTED';\nexport const ANALYTICS_GRAPH_DATA_REQUEST_SUCCEEDED =\n 'ANALYTICS_GRAPH_DATA_SUCCEEDED';\nexport const ANALYTICS_GRAPH_DATA_REQUEST_FAILED =\n 'ANALYTICS_GRAPH_DATA_FAILED';\n\nexport const activitiesRequested = (options, communityId) => ({\n type: ACTIVITIES_REQUESTED,\n payload: {\n options,\n communityId,\n },\n});\n\nexport const activitiesRequestFailed = () => ({\n type: ACTIVITIES_REQUEST_FAILED,\n});\n\nexport const activitiesRequestSucceeded = (activities) => ({\n type: ACTIVITIES_REQUEST_SUCCEEDED,\n payload: {\n activities,\n },\n});\n\nexport const usersAnalyticRequested = (options, communityId) => ({\n type: USERS_ANALYTIC_REQUESTED,\n payload: {\n options,\n communityId,\n },\n});\n\nexport const usersAnalyticRequestFailed = () => ({\n type: USERS_ANALYTIC_REQUEST_FAILED,\n});\n\nexport const usersAnalyticRequestSucceeded = (usersAnalytic) => ({\n type: USERS_ANALYTIC_REQUEST_SUCCEEDED,\n payload: {\n usersAnalytic,\n },\n});\n\nexport const impactStatsRequested = (options, communityId) => ({\n type: IMPACT_STATS_REQUESTED,\n payload: {\n options,\n communityId,\n },\n});\n\nexport const impactStatsRequestFailed = () => ({\n type: IMPACT_STATS_REQUEST_FAILED,\n});\n\nexport const impactStatsRequestSucceeded = (impactStats) => ({\n type: IMPACT_STATS_REQUEST_SUCCEEDED,\n payload: {\n impactStats,\n },\n});\n\nexport const graphDataRequested = (options, communityId) => ({\n type: GRAPH_DATA_REQUESTED,\n payload: {\n options,\n communityId,\n },\n});\n\nexport const graphDataRequestFailed = () => ({\n type: GRAPH_DATA_REQUEST_FAILED,\n});\n\nexport const graphDataRequestSucceeded = (newGraphData, metric) => ({\n type: GRAPH_DATA_REQUEST_SUCCEEDED,\n payload: {\n newGraphData,\n metric,\n },\n});\n\nexport const analyticsGraphDataRequested = (options, communityId, metrics) => ({\n type: ANALYTICS_GRAPH_DATA_REQUESTED,\n payload: {\n options,\n communityId,\n metrics,\n },\n});\n\nexport const analyticsGraphDataRequestFailed = (errors, metrics) => ({\n type: ANALYTICS_GRAPH_DATA_REQUEST_FAILED,\n payload: {\n errors,\n metrics,\n },\n});\n\nexport const analyticsGraphDataRequestSucceeded = (data) => ({\n type: ANALYTICS_GRAPH_DATA_REQUEST_SUCCEEDED,\n payload: {\n newGraphData: data.newGraphData,\n metrics: data.metrics,\n },\n});\n","import { createTheme } from '@material-ui/core/styles';\nimport { generateTableColumnStyles } from '../utils/styles';\nimport { getColors, getFontFamily } from '../utils';\nimport transitions from '@material-ui/core/styles/transitions';\n\nconst white = '#ffffff';\nconst black = 'rgba(0, 0, 0, 0.9)';\n\nexport const getPalette = (variantColors) => ({\n white,\n black,\n background: white,\n foreground: black,\n\n primary: variantColors.primary,\n primaryDark: variantColors.primaryDark,\n primaryForeground: variantColors.primaryForeground,\n secondary: variantColors.secondary,\n secondaryDark: variantColors.secondaryDark,\n accent: variantColors.accent,\n accentDark: variantColors.accentDark,\n warn: variantColors.warn,\n warnDark: variantColors.warnDark,\n loginFooter: variantColors.loginFooter,\n impactTileColor: variantColors.impactTileColor,\n\n danger: '#EC4C37',\n dangerDark: '#d2322d',\n dangerForeground: white,\n success: '#5cb85c',\n successDark: '#47a447',\n successForeground: black,\n warnForeground: black,\n info: '#5bc0de',\n infoDark: '#31b0d5',\n infoForeground: white,\n textDarkColor: '#333',\n textDarkSecondaryColor: '#2F2F2F',\n textDarkSecondaryMutedColor: '#2F2F2F',\n inputBackground: 'rgba(245, 246, 247, 0.8)',\n lightGray: '#EFEFEF',\n disabledGray: '#959393',\n bgAccentColor: '#d9d9d9',\n bgLightColor: '#f5f6f7',\n bgLightAccentColor: '#F8F8F8',\n disabled: 'rgba(0, 0, 0, 0.38)',\n shadow: 'rgba(0,0,0,0.75)',\n});\n\nexport const getTheme = (palette) => {\n const custom = {\n headerPadding: 6,\n headerHeight: 50,\n containerPadding: 30,\n exteriorContainerPadding: 80,\n containerMaxWidth: 1460,\n mainContentWidth: '1200px',\n mainContentHorizontalPadding: '16px',\n buttonHoverOpacity: 0.75,\n paginationFontSize: 12,\n actionsAndFiltersWidth: 300,\n actionsAndFiltersWidthForMediumAndDown: 230,\n aqua: '#05BCF4',\n darkBlue: '#022B6E',\n successBlue: '#5C8CD9',\n red: '#8b3f50',\n redDark: '#d9534f',\n red219: '#db655D',\n yammer: '#0072c6',\n okta: '#009CDD',\n editGreen: '#00C14A',\n darkCyan: '#00b89f',\n darkGrey: '#999999', // todo: remove in favor of grey60\n grey: '#EEEEEE',\n grey93: '#edeff0',\n grey88: '#DDDDDD',\n grey83: '#838383',\n grey70: '#707070',\n grey60: '#999999',\n grey20: '#333',\n waste: '#16A779',\n inputBackground: palette.inputBackground,\n inputSeparator: 'rgba(0, 0, 0, 0.05)',\n linkColor: '#1D8DC8',\n linkHoverColor: '#2196F3',\n textLightColor: white,\n textLightSecondaryColor: '#b3b3b3',\n textLightDisabledColor: '#808080',\n textDarkColor: palette.textDarkColor,\n textDarkSecondaryColor: palette.textDarkSecondaryColor,\n textDarkSecondaryMutedColor: palette.textDarkSecondaryMutedColor,\n textDarkDisabledColor: '#bdbdbd',\n bgColor: '#ffffff',\n bgAccentColor: palette.bgAccentColor,\n bgLightColor: palette.bgLightColor,\n bgLightAccentColor: palette.bgLightAccentColor,\n bgDarkColor: '#666666',\n bgDarkAccentColor: '#333333',\n bgSeparator: 'rgba(0, 0, 0, 0.05)',\n bgBlackTransparent: 'rgba(0, 0, 0, 0.5)',\n bgDarkHover: '#d3d3d3',\n tooltipIconColor: 'rgba(51,51,51,.25)',\n tooltipIconHoverColor: '#999',\n iconColor: 'rgba(51, 51, 51, 0.25)',\n iconColorHover: 'rgba(51, 51, 51, 0.5)',\n linkPrimaryHover: '#562732',\n EditingBannerBackground: palette.primary,\n assetIconColor: '#A9A9A9',\n disabledOpacity: 0.5,\n dividerColor: '#E6E6E6',\n dividerTextColor: '#1C1C1C',\n\n // Colors used in charts\n bgSustainability: 'rgba(19, 167, 121, 1)',\n bgWellness: 'rgba(38, 161, 183, 1)',\n bgCivic: 'rgba(219, 101, 93, 1)',\n bgEngagement: 'rgba(58, 88, 144, 1)',\n bgChartSustainability: 'rgba(19, 167, 121, 0.9)',\n bgChartWellness: 'rgba(38, 161, 183, 0.9)',\n bgChartCivic: 'rgba(219, 101, 93, 0.9)',\n bgChartEngagement: 'rgba(58, 88, 144, 0.9)',\n bgChartDashedColor: 'rgba(153, 153, 153, 0.9)',\n loaderForeground: '#fcfeff',\n loaderBackground: '#dddddd',\n\n // Colors used in onboarding component\n bgOnboardingFooter: palette.loginFooter,\n bgChallengePreviewOnMobile: '#F4F4F4',\n grayBorder: '#B1B1B1',\n bgMobilePreviewIcon: '#797979',\n\n impactTileColor: palette.impactTileColor,\n };\n const theme = createTheme({\n palette: {\n primary: {\n main: palette.primary,\n dark: palette.primaryDark,\n contrastText: white,\n },\n secondary: {\n main: palette.secondary,\n dark: palette.secondaryDark,\n contrastText: white,\n },\n default: {\n main: palette.bgLightAccentColor,\n dark: white,\n contrastText: black,\n },\n accent: {\n main: palette.accent,\n dark: palette.accentDark,\n contrastText: white,\n },\n alert: {\n main: palette.primary,\n dark: palette.primaryDark,\n contrastText: white,\n },\n error: {\n main: palette.danger,\n dark: palette.dangerDark,\n contrastText: white,\n },\n warning: {\n main: palette.warn,\n dark: palette.warnDark,\n contrastText: white,\n },\n success: {\n main: palette.success,\n dark: palette.successDark,\n contrastText: white,\n },\n info: {\n main: palette.info,\n dark: palette.infoDark,\n contrastText: white,\n },\n white: {\n main: white,\n dark: '#e6e6e6',\n contrastText: black,\n },\n gray: {\n main: palette.textDarkSecondaryColor,\n contrastText: white,\n },\n disabled: {\n main: palette.disabledGray,\n contrastText: white,\n },\n light: {\n main: palette.bgLightAccentColor,\n dark: palette.bgLightColor,\n contrastText: black,\n },\n },\n typography: {\n fontFamily: `\"${getFontFamily() || 'effra'}\", sans-serif`,\n useNextVariants: true,\n subtitle1: {\n ':not(.MuiPickersToolbarText-toolbarTxt)': {\n fontWeight: 100,\n textTransform: 'uppercase',\n letterSpacing: 4,\n fontSize: 28,\n },\n },\n h1: {\n fontWeight: 600,\n },\n h4: {\n fontWeight: 600,\n },\n },\n // Custom variables\n custom: {\n ...custom,\n },\n // Custom component styling\n shineAdmin: {\n select: {\n largeHeight: 35,\n largeMinWidth: 125,\n compactHeight: 25,\n compactMinWidth: 50,\n },\n dashboardPanel: {\n minWidth: 550,\n },\n // Common head cell styling for columns that show up in multiple tables\n tableHeadCells: {\n checkbox: generateTableColumnStyles(70),\n id: generateTableColumnStyles(50),\n name: generateTableColumnStyles(240),\n photo: generateTableColumnStyles(70),\n status: generateTableColumnStyles(120),\n // Note that \"auto\" essentially dictates this cell is the cell that will stretch to fill remaining space\n date: generateTableColumnStyles('auto'),\n },\n textarea: {\n backgroundColor: palette.inputBackground,\n width: '100%',\n border: '1px solid',\n borderRadius: '8px',\n padding: '6px 10px',\n fontSize: '14px',\n borderColor: palette.primary,\n },\n },\n // Global props for app-wide changes.\n props: {\n MuiButtonBase: {\n disableRipple: true, // We want to disable the button ripple, for the whole app.\n },\n },\n // Overrides for Material UI components\n overrides: {\n MuiSwitch: {\n root: {\n width: 33,\n height: 18,\n padding: 0,\n display: 'flex',\n '&:active': {\n '& .MuiSwitch-thumb': {\n width: 17,\n },\n '& .MuiSwitch-switchBase.Mui-checked': {\n transform: 'translateX(14px)',\n },\n },\n '& .MuiSwitch-switchBase': {\n padding: 0,\n color: custom.grey60,\n '&.Mui-checked': {\n transform: 'translateX(16px)',\n color: palette.primary,\n '& + .MuiSwitch-track': {\n opacity: 1,\n backgroundColor: custom.grey88,\n },\n },\n },\n '& .MuiSwitch-thumb': {\n width: 17,\n height: 17,\n borderRadius: 9,\n transition: transitions.create(['width'], {\n duration: 200,\n }),\n },\n '& .MuiSwitch-track': {\n borderRadius: 18 / 2,\n opacity: 1,\n backgroundColor: custom.grey88,\n boxSizing: 'border-box',\n },\n },\n },\n MuiPrivateTabScrollButton: {\n root: {\n width: 6,\n color: '#003283',\n marginLeft: 3,\n marginRight: 3,\n },\n },\n MuiInputBase: {\n input: {\n '&:-webkit-autofill': {\n transitionDelay: '9999s',\n transitionProperty: 'background-color, color',\n },\n },\n },\n MuiFilledInput: {\n input: {\n marginBottom: 12,\n },\n },\n MuiDialogContentText: {\n root: {\n textAlign: 'center',\n },\n },\n MuiDialogTitle: {\n root: {\n textAlign: 'center',\n },\n },\n MuiDialogActions: {\n root: {\n paddingTop: 20,\n },\n },\n MuiSvgIcon: {\n root: {\n fontSize: '20px',\n },\n fontSizeSmall: {\n fontSize: '16px',\n },\n fontSizeLarge: {\n fontSize: '24px',\n },\n },\n MuiTableCell: {\n root: {\n paddingLeft: 10,\n paddingRight: 10,\n },\n },\n MuiButton: {\n root: {\n minWidth: 'auto',\n padding: '8px 12px',\n border: '1px solid transparent',\n fontSize: '14px',\n lineHeight: '20px',\n textTransform: 'capitalize',\n },\n sizeSmall: {\n height: '30px',\n padding: '5px 10px',\n borderRadius: '3px',\n fontSize: '12px',\n lineHeight: '18px',\n },\n sizeLarge: {\n padding: '10px 16px',\n borderRadius: '6px',\n fontSize: '18px',\n lineHeight: '24px',\n },\n outlined: {\n padding: '8px 12px',\n },\n contained: {\n boxShadow: 'none',\n\n '&:hover, &:active': {\n boxShadow: 'none',\n },\n },\n },\n DataTable: {\n root: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-start',\n },\n meta: {\n padding: '20px 0',\n margin: '0 20px',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n justifyContent: 'flex-start',\n width: 320,\n },\n filters: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n justifyContent: 'flex-start',\n },\n searchContainer: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n search: {\n flex: 1,\n },\n searchInput: {\n 'label + &': {\n marginTop: 0,\n },\n },\n searchControl: {\n width: '100%',\n },\n tableBodyWithDataRow: {\n '&:nth-child(2n)': {\n backgroundColor: 'rgba(255, 255, 255, 0.5)',\n },\n },\n },\n DataTableColumn: {\n sortArrow: {\n width: 'auto',\n height: '1em',\n marginTop: '-0.5em',\n marginBottom: '-0.5em',\n },\n },\n MuiTabs: {\n indicator: {\n display: 'none',\n },\n },\n MuiTab: {\n root: {\n padding: '10px 16px',\n fontSize: '14px',\n fontWeight: 700,\n color: palette.textDarkSecondaryMutedColor,\n backgroundColor: 'transparent',\n borderBottom: `3px solid ${palette.bgAccentColor}`,\n\n '&:hover': {\n color: palette.darkGrey,\n borderBottomColor: palette.textDarkSecondaryColor,\n },\n\n '&$selected': {\n backgroundColor: palette.bgAccentColor,\n borderBottomColor: palette.primary,\n },\n },\n textColorPrimary: {\n color: palette.grey,\n },\n wrapper: {\n textTransform: 'none',\n },\n },\n MuiStepLabel: {\n root: {\n display: 'flex',\n flexDirection: 'column',\n },\n iconContainer: {\n paddingRight: 0,\n },\n label: {\n marginTop: '5px',\n textAlign: 'center',\n color: '#bdbdbd',\n\n '&$active': {\n fontWeight: 700,\n color: palette.textDarkColor,\n },\n\n '&$completed': {\n color: '#bdbdbd',\n },\n },\n },\n MuiStepper: {\n root: {\n justifyContent: 'space-between',\n maxWidth: '400px',\n width: '100%',\n margin: '15px auto 60px',\n padding: 0,\n backgroundColor: 'transparent',\n },\n },\n MuiStepIcon: {\n root: {\n width: '40px',\n height: '40px',\n margin: '0 auto',\n padding: 0,\n border: '1px solid #bdbdbd',\n borderRadius: '50%',\n color: 'transparent',\n\n '&$active': {\n borderColor: palette.textDarkColor,\n color: palette.bgLightColor,\n },\n\n '&$completed': {\n fill: 'transparent',\n stroke: '#bdbdbd',\n border: 0,\n },\n },\n text: {\n fill: '#bdbdbd',\n },\n active: {\n '& .MuiStepIcon-text': {\n fill: palette.textDarkColor,\n },\n },\n },\n },\n });\n theme.overrides.DataTable = {\n ...theme.overrides.DataTable,\n checkboxHeadCell: theme.shineAdmin.tableHeadCells.checkbox,\n };\n\n theme.overrides.DataTableColumn = {\n ...theme.overrides.DataTableColumn,\n headCell: {\n whiteSpace: 'nowrap',\n textTransform: 'uppercase',\n color: theme.palette.secondary.main,\n fontWeight: 'bold',\n },\n bodyCell: {\n color: theme.palette.primary.main,\n },\n };\n\n theme.overrides.MuiCardActionArea = {\n focusHighlight: {\n backgroundColor: 'transparent',\n },\n };\n return theme;\n};\nconst theme = getTheme(getPalette(getColors()));\n\nexport default theme;\n","/**\n * Generate width styles for a table column.\n *\n * Setting to `'auto'` essentially directs the browser that this cell should fill the remaining space\n * available to it. Every table should have one cell (preferably) that is \"auto\" while the rest are\n * fixed width. This helps prevent jumpiness when loading the next page, etc.\n *\n * @param {'auto'|number} width\n * @param otherStyles\n * @return {{width: string|number, maxWidth?: number}}\n */\nexport const generateTableColumnStyles = (width, otherStyles = {}) => ({\n ...(width === 'auto' ? { width } : { width, maxWidth: width }),\n ...otherStyles,\n});\n\n/**\n * Generate styles that can be applied to an img's styles to make it perfectly round.\n *\n * @param {number} size\n * @return {{borderRadius: number, maxHeight: number, width: number, maxWidth: number, height: number}}\n */\nexport const generateRoundImageStyles = (size) => ({\n width: size,\n maxWidth: size,\n height: size,\n maxHeight: size,\n borderRadius: Math.ceil(size / 2),\n});\n","import theme from '../../../theme';\n\nexport const COLORS = [\n theme.palette.primary.main,\n '#f1be55',\n '#5ab5c6',\n '#00b89f',\n '#876c9c',\n '#3c5991',\n '#95bbb9',\n '#afdd57',\n '#c46d41',\n '#8b3f51',\n];\n\nexport const CHART_TYPE_BAR = 'bar';\n\nexport const CHART_TYPE_LINE = 'line';\n\nexport const CHART_TYPES = [CHART_TYPE_LINE, CHART_TYPE_BAR];\n\nexport const CHART_INTERVAL_DAY = 'day';\nexport const CHART_INTERVAL_HOUR = 'hour';\nexport const CHART_INTERVAL_WEEK = 'week';\nexport const CHART_INTERVAL_MONTH = 'month';\nexport const CHART_INTERVAL_YEAR = 'year';\n\nexport const CHART_INTERVALS = [\n CHART_INTERVAL_DAY,\n CHART_INTERVAL_HOUR,\n CHART_INTERVAL_WEEK,\n CHART_INTERVAL_MONTH,\n CHART_INTERVAL_YEAR,\n];\n\nexport const GRAPH_METRIC_TOTAL_LOGS = 'buzzBaseAction';\nexport const GRAPH_METRIC_ACTIVE_USERS = 'activeUser';\nexport const GRAPH_METRIC_NEW_USERS = 'communityManualJoin';\nexport const GRAPH_METRIC_SCORE_TRACKER = 'scoreTracker';\nexport const GRAPH_METRIC_PHOTO_ADDED = 'addPhoto';\n\nexport const GRAPH_METRIC_IMPACT_WASTE = 'waste';\nexport const GRAPH_METRIC_IMPACT_WATER = 'water';\nexport const GRAPH_METRIC_IMPACT_CARBON = 'co2';\nexport const GRAPH_METRIC_IMPACT_HABITAT_SAVED = 'habitatSaved';\n\nexport const GRAPH_TYPE_SCORE_TRACKER = 'scoretracker';\nexport const GRAPH_TYPE_TIME_SERIES = 'timeseries';\n","import {\n ACTIVITIES_REQUEST_FAILED,\n ACTIVITIES_REQUEST_SUCCEEDED,\n ACTIVITIES_REQUESTED,\n ANALYTICS_GRAPH_DATA_REQUEST_FAILED,\n ANALYTICS_GRAPH_DATA_REQUEST_SUCCEEDED,\n ANALYTICS_GRAPH_DATA_REQUESTED,\n GRAPH_DATA_REQUEST_FAILED,\n GRAPH_DATA_REQUEST_SUCCEEDED,\n GRAPH_DATA_REQUESTED,\n IMPACT_STATS_REQUEST_FAILED,\n IMPACT_STATS_REQUEST_SUCCEEDED,\n IMPACT_STATS_REQUESTED,\n USERS_ANALYTIC_REQUEST_FAILED,\n USERS_ANALYTIC_REQUEST_SUCCEEDED,\n USERS_ANALYTIC_REQUESTED,\n} from './actions';\nimport {\n GRAPH_METRIC_ACTIVE_USERS,\n GRAPH_METRIC_IMPACT_CARBON,\n GRAPH_METRIC_IMPACT_WASTE,\n GRAPH_METRIC_IMPACT_WATER,\n GRAPH_METRIC_NEW_USERS,\n GRAPH_METRIC_PHOTO_ADDED,\n GRAPH_METRIC_TOTAL_LOGS,\n} from '../common/Graph/ChartItem/constants';\n\nexport const initialState = {\n activities: [],\n usersAnalytic: [],\n impactStats: [],\n graphData: {\n [GRAPH_METRIC_TOTAL_LOGS]: { labels: [], data: [], series: [] },\n [GRAPH_METRIC_ACTIVE_USERS]: { labels: [], data: [], series: [] },\n [GRAPH_METRIC_NEW_USERS]: { labels: [], data: [], series: [] },\n [GRAPH_METRIC_PHOTO_ADDED]: { labels: [], data: [], series: [] },\n [GRAPH_METRIC_IMPACT_CARBON]: { labels: [], data: [], series: [] },\n [GRAPH_METRIC_IMPACT_WATER]: { labels: [], data: [], series: [] },\n [GRAPH_METRIC_IMPACT_WASTE]: { labels: [], data: [], series: [] },\n },\n loading: {\n activity: false,\n user: false,\n impact: false,\n graph: {\n [GRAPH_METRIC_TOTAL_LOGS]: false,\n [GRAPH_METRIC_ACTIVE_USERS]: false,\n [GRAPH_METRIC_NEW_USERS]: false,\n [GRAPH_METRIC_PHOTO_ADDED]: false,\n [GRAPH_METRIC_IMPACT_CARBON]: false,\n [GRAPH_METRIC_IMPACT_WATER]: false,\n [GRAPH_METRIC_IMPACT_WASTE]: false,\n },\n },\n};\n\nconst updateGraphLoadingState = (state, metrics, newLoadingStatus) => {\n const newLoadingState = {};\n if (Array.isArray(metrics)) {\n metrics.forEach((metric) => {\n newLoadingState[metric] = newLoadingStatus;\n });\n } else {\n newLoadingState[metrics] = newLoadingStatus;\n }\n\n return {\n ...state,\n loading: {\n ...state.loading,\n graph: {\n ...state.loading.graph,\n ...newLoadingState,\n },\n },\n };\n};\n\nexport default function analyticsReducer(state = initialState, action) {\n const { type, payload = {} } = action;\n\n if (type === ACTIVITIES_REQUESTED) {\n return {\n ...state,\n loading: {\n ...state.loading,\n activity: true,\n },\n };\n } else if (type === ACTIVITIES_REQUEST_SUCCEEDED) {\n const { activities } = payload;\n return {\n ...state,\n activities,\n loading: {\n ...state.loading,\n activity: false,\n },\n };\n } else if (type === ACTIVITIES_REQUEST_FAILED) {\n return {\n ...state,\n loading: {\n ...state.loading,\n activity: false,\n },\n };\n } else if (type === USERS_ANALYTIC_REQUESTED) {\n return {\n ...state,\n loading: {\n ...state.loading,\n user: true,\n },\n };\n } else if (type === USERS_ANALYTIC_REQUEST_SUCCEEDED) {\n const { usersAnalytic } = payload;\n return {\n ...state,\n usersAnalytic,\n loading: {\n ...state.loading,\n user: false,\n },\n };\n } else if (type === USERS_ANALYTIC_REQUEST_FAILED) {\n return {\n ...state,\n loading: {\n ...state.loading,\n user: false,\n },\n };\n } else if (type === IMPACT_STATS_REQUESTED) {\n return {\n ...state,\n loading: {\n ...state.loading,\n impact: true,\n },\n };\n } else if (type === IMPACT_STATS_REQUEST_SUCCEEDED) {\n const { impactStats } = payload;\n return {\n ...state,\n impactStats,\n loading: {\n ...state.loading,\n impact: false,\n },\n };\n } else if (type === IMPACT_STATS_REQUEST_FAILED) {\n return {\n ...state,\n loading: {\n ...state.loading,\n impact: false,\n },\n };\n } else if (type === GRAPH_DATA_REQUESTED) {\n const { options } = payload;\n return updateGraphLoadingState(state, options.metric, true);\n } else if (type === GRAPH_DATA_REQUEST_SUCCEEDED) {\n const { newGraphData, metric } = payload;\n return {\n ...state,\n graphData: {\n ...state.graphData,\n [metric]: newGraphData,\n },\n loading: updateGraphLoadingState(state, metric, false).loading,\n };\n } else if (type === GRAPH_DATA_REQUEST_FAILED) {\n const { metrics } = payload;\n return updateGraphLoadingState(state, metrics, false);\n } else if (type === ANALYTICS_GRAPH_DATA_REQUESTED) {\n const { metrics } = payload;\n return updateGraphLoadingState(state, metrics, true);\n } else if (type === ANALYTICS_GRAPH_DATA_REQUEST_SUCCEEDED) {\n const { newGraphData, metrics } = payload;\n let graphDataUpdate = state.graphData;\n metrics.forEach((metric, index) => {\n graphDataUpdate = {\n ...graphDataUpdate,\n [metric]: newGraphData[index],\n };\n });\n\n return {\n ...state,\n graphData: {\n ...state.graphData,\n ...graphDataUpdate,\n },\n loading: updateGraphLoadingState(state, metrics, false).loading,\n };\n } else if (type === ANALYTICS_GRAPH_DATA_REQUEST_FAILED) {\n const { errors, metrics } = payload;\n return {\n ...state,\n loading: {\n ...updateGraphLoadingState(state, metrics, false).loading,\n errors: errors,\n },\n };\n }\n return state;\n}\n","export const VIEW_CHALLENGE_REQUESTED = 'VIEW_CHALLENGE_REQUESTED';\nexport const VIEW_CHALLENGE_SUCCEEDED = 'VIEW_CHALLENGE_SUCCEEDED';\nexport const VIEW_CHALLENGE_FAILED = 'VIEW_CHALLENGE_FAILED';\n\nexport const JOIN_CHALLENGE_REQUESTED = 'JOIN_CHALLENGE_REQUESTED';\nexport const JOIN_CHALLENGE_SUCCEEDED = 'JOIN_CHALLENGE_SUCCEEDED';\nexport const JOIN_CHALLENGE_FAILED = 'JOIN_CHALLENGE_FAILED';\n\nexport const UNJOIN_CHALLENGE_REQUESTED = 'UNJOIN_CHALLENGE_REQUESTED';\nexport const UNJOIN_CHALLENGE_SUCCEEDED = 'UNJOIN_CHALLENGE_SUCCEEDED';\nexport const UNJOIN_CHALLENGE_FAILED = 'UNJOIN_CHALLENGE_FAILED';\n\nexport const CHALLENGE_SHARE_URL_REQUESTED = 'CHALLENGE_SHARE_URL_REQUESTED';\nexport const CHALLENGE_SHARE_URL_REQUEST_SUCCEEDED =\n 'CHALLENGE_SHARE_URL_REQUEST_SUCCEEDED';\nexport const CHALLENGE_SHARE_URL_REQUEST_FAILED =\n 'CHALLENGE_SHARE_URL_REQUEST_FAILED';\n\nexport const CHALLENGE_ADMIN_SHARE_IMAGE_URL_REQUESTED =\n 'CHALLENGE_ADMIN_SHARE_IMAGE_URL_REQUESTED';\nexport const CHALLENGE_ADMIN_SHARE_IMAGE_URL_REQUEST_SUCCEEDED =\n 'CHALLENGE_ADMIN_SHARE_IMAGE_URL_REQUEST_SUCCEEDED';\nexport const CHALLENGE_ADMIN_SHARE_IMAGE_URL_REQUEST_FAILED =\n 'CHALLENGE_ADMIN_SHARE_IMAGE_URL_REQUEST_FAILED';\n\nexport const CHALLENGE_CLEAR_ERRORS = 'CHALLENGE_CLEAR_ERRORS';\n\nexport const CHALLENGE_LEADERBOARD_REQUESTED =\n 'CHALLENGE_LEADERBOARD_REQUESTED';\nexport const CHALLENGE_LEADERBOARD_LOADED = 'CHALLENGE_LEADERBOARD_LOADED';\nexport const CHALLENGE_LEADERBOARD_FAILED = 'CHALLENGE_LEADERBOARD_FAILED';\n\nexport const CHALLENGE_GRAPH_DATA_REQUESTED = 'CHALLENGE_GRAPH_DATA_REQUESTED';\nexport const CHALLENGE_GRAPH_DATA_SUCCEEDED = 'CHALLENGE_GRAPH_DATA_SUCCEEDED';\nexport const CHALLENGE_GRAPH_DATA_FAILED = 'CHALLENGE_GRAPH_DATA_FAILED';\n\nexport const CHALLENGE_ANALYTICS_ACTIVITY_REQUESTED =\n 'CHALLENGE_ANALYTICS_ACTIVITY_REQUESTED';\nexport const CHALLENGE_ANALYTICS_ACTIVITY_SUCCEEDED =\n 'CHALLENGE_ANALYTICS_ACTIVITY_SUCCEEDED';\nexport const CHALLENGE_ANALYTICS_ACTIVITY_FAILED =\n 'CHALLENGE_ANALYTICS_ACTIVITY_FAILED';\n\nexport const CHALLENGE_ANALYTICS_USERS_REQUESTED =\n 'CHALLENGE_ANALYTICS_USERS_REQUESTED';\nexport const CHALLENGE_ANALYTICS_USERS_SUCCEEDED =\n 'CHALLENGE_ANALYTICS_USERS_SUCCEEDED';\nexport const CHALLENGE_ANALYTICS_USERS_FAILED =\n 'CHALLENGE_ANALYTICS_USERS_FAILED';\n\nexport const CHALLENGE_ANALYTICS_IMPACT_REQUESTED =\n 'CHALLENGE_ANALYTICS_IMPACT_REQUESTED';\nexport const CHALLENGE_ANALYTICS_IMPACT_SUCCEEDED =\n 'CHALLENGE_ANALYTICS_IMPACT_SUCCEEDED';\nexport const CHALLENGE_ANALYTICS_IMPACT_FAILED =\n 'CHALLENGE_ANALYTICS_IMPACT_FAILED';\n\nexport const CHALLENGE_ANALYTICS_PHOTOS_REQUESTED =\n 'CHALLENGE_ANALYTICS_PHOTOS_REQUESTED';\nexport const CHALLENGE_ANALYTICS_PHOTOS_SUCCEEDED =\n 'CHALLENGE_ANALYTICS_PHOTOS_SUCCEEDED';\nexport const CHALLENGE_ANALYTICS_PHOTOS_FAILED =\n 'CHALLENGE_ANALYTICS_PHOTOS_FAILED';\nexport const CHALLENGE_PENALTIES_REQUESTED = 'CHALLENGE_PENALTIES_REQUESTED';\nexport const CHALLENGE_PENALTIES_SUCCEEDED = 'CHALLENGE_PENALTIES_SUCCEEDED';\nexport const CHALLENGE_PENALTIES_FAILED = 'CHALLENGE_PENALTIES_FAILED';\n\nexport const CHALLENGE_WARN_USER_REQUESTED = 'CHALLENGE_WARN_USER_REQUESTED';\nexport const CHALLENGE_WARN_USER_SUCCEEDED = 'CHALLENGE_WARN_USER_SUCCEEDED';\nexport const CHALLENGE_WARN_USER_FAILED = 'CHALLENGE_WARN_USER_FAILED';\n\nexport const CHALLENGE_REMOVE_USER_REQUESTED =\n 'CHALLENGE_REMOVE_USER_REQUESTED';\nexport const CHALLENGE_REMOVE_USER_SUCCEEDED =\n 'CHALLENGE_REMOVE_USER_SUCCEEDED';\nexport const CHALLENGE_REMOVE_USER_FAILED = 'CHALLENGE_REMOVE_USER_FAILED';\n\nexport const CHALLENGE_PENALTIES_CLEAR_ACTIONS_RESPONSE =\n 'CHALLENGE_PENALTIES_CLEAR_ACTIONS_RESPONSE ';\n\nexport const CHALLENGES_REQUESTED = 'CHALLENGES_REQUESTED';\nexport const CHALLENGES_REQUEST_SUCCEEDED = 'CHALLENGES_REQUEST_SUCCEEDED';\nexport const CHALLENGES_REQUEST_FAILED = 'CHALLENGES_REQUEST_FAILED';\n\nexport const CHALLENGE_SEARCH_REQUESTED = 'CHALLENGE_SEARCH_REQUESTED';\nexport const CHALLENGE_SEARCH_REQUEST_SUCCEEDED =\n 'CHALLENGE_SEARCH_REQUEST_SUCCEEDED';\nexport const CHALLENGE_SEARCH_REQUEST_FAILED =\n 'CHALLENGE_SEARCH_REQUEST_FAILED';\n\nexport const CHALLENGE_CREATION_REQUESTED = 'CHALLENGE_CREATION_REQUESTED';\nexport const CHALLENGE_CREATION_REQUEST_SUCCEEDED =\n 'CHALLENGE_CREATION_REQUEST_SUCCEEDED';\nexport const CHALLENGE_CREATION_REQUEST_FAILED =\n 'CHALLENGE_CREATION_REQUEST_FAILED';\nexport const CLEAR_CHALLENGE_CREATION = 'CLEAR_CHALLENGE_CREATION';\nexport const CHALLENGE_ACTIVATION_REQUESTED = 'CHALLENGE_ACTIVATION_REQUESTED';\nexport const CHALLENGE_ACTIVATION_REQUEST_SUCCEEDED =\n 'CHALLENGE_ACTIVATION_REQUEST_SUCCEEDED';\nexport const CHALLENGE_ACTIVATION_REQUEST_FAILED =\n 'CHALLENGE_ACTIVATION_REQUEST_FAILED';\n\nexport const CHALLENGE_DELETION_REQUESTED = 'CHALLENGE_DELETION_REQUESTED';\nexport const CHALLENGE_DELETION_REQUEST_SUCCEEDED =\n 'CHALLENGE_DELETION_REQUEST_SUCCEEDED';\nexport const CHALLENGE_DELETION_REQUEST_FAILED =\n 'CHALLENGE_DELETION_REQUEST_FAILED';\n\nexport const CHALLENGE_REPORT_REQUESTED = 'CHALLENGE_REPORT_REQUESTED';\nexport const CHALLENGE_REPORT_REQUEST_SUCCEEDED =\n 'CHALLENGE_REPORT_REQUEST_SUCCEEDED';\nexport const CHALLENGE_REPORT_REQUEST_FAILED =\n 'CHALLENGE_REPORT_REQUEST_FAILED';\n\nexport const CLEAR_CHALLENGES_SCREEN_ACTION_ERRORS =\n 'CLEAR_CHALLENGES_SCREEN_ACTION_ERRORS';\n\nexport const CHALLENGE_DEACTIVATION_REQUESTED =\n 'CHALLENGE_DEACTIVATION_REQUESTED';\nexport const CHALLENGE_DEACTIVATION_REQUEST_SUCCEEDED =\n 'CHALLENGE_DEACTIVATION_REQUEST_SUCCEEDED';\nexport const CHALLENGE_DEACTIVATION_REQUEST_FAILED =\n 'CHALLENGE_DEACTIVATION_REQUEST_FAILED';\n\nexport const TEAM_DETAILS_REQUESTED = 'TEAM_DETAILS_REQUESTED';\nexport const TEAM_DETAILS_REQUEST_SUCCEEDED = 'TEAM_DETAILS_REQUEST_SUCCEEDED';\nexport const TEAM_DETAILS_REQUEST_FAILED = 'TEAM_DETAILS_REQUEST_FAILED';\n\nexport const TEAM_LEADERBOARD_REQUESTED = 'TEAM_LEADERBOARD_REQUESTED';\nexport const TEAM_LEADERBOARD_REQUEST_SUCCEEDED =\n 'TEAM_LEADERBOARD_REQUEST_SUCCEEDED';\nexport const TEAM_LEADERBOARD_REQUEST_FAILED =\n 'TEAM_LEADERBOARD_REQUEST_FAILED';\n\nexport const USER_CHALLENGES_REQUESTED = 'USER_CHALLENGES_REQUESTED';\nexport const USER_CHALLENGES_REQUEST_SUCCEEDED =\n 'USER_CHALLENGES_REQUEST_SUCCEEDED';\nexport const USER_CHALLENGES_REQUEST_FAILED = 'USER_CHALLENGES_REQUEST_FAILED';\n\nexport const SET_CHALLENGE = 'SET_CHALLENGE';\n\nexport const viewChallengeRequested = ({ challengeId, communityId }) => ({\n type: VIEW_CHALLENGE_REQUESTED,\n payload: {\n challengeId,\n communityId,\n },\n});\n\nexport const viewChallengeSucceeded = (viewChallengeData) => ({\n type: VIEW_CHALLENGE_SUCCEEDED,\n payload: {\n ...viewChallengeData,\n },\n});\n\nexport const viewChallengeFailed = (errors) => ({\n type: VIEW_CHALLENGE_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const joinChallengeRequested = ({\n challengeId,\n communityId,\n teamId,\n}) => ({\n type: JOIN_CHALLENGE_REQUESTED,\n payload: {\n challengeId,\n communityId,\n teamId,\n },\n});\n\nexport const joinChallengeSucceeded = ({ teamId }) => ({\n type: JOIN_CHALLENGE_SUCCEEDED,\n payload: {\n teamId,\n },\n});\n\nexport const joinChallengeFailed = (errors) => ({\n type: JOIN_CHALLENGE_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const unjoinChallengeRequested = ({ challengeId, communityId }) => ({\n type: UNJOIN_CHALLENGE_REQUESTED,\n payload: {\n challengeId,\n communityId,\n },\n});\n\nexport const unjoinChallengeSucceeded = () => ({\n type: UNJOIN_CHALLENGE_SUCCEEDED,\n});\n\nexport const unjoinChallengeFailed = (errors) => ({\n type: UNJOIN_CHALLENGE_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const challengeLeaderboardRequested = (request) => ({\n type: CHALLENGE_LEADERBOARD_REQUESTED,\n payload: request,\n});\n\nexport const challengeLeaderboardLoaded = (leaderboardData) => ({\n type: CHALLENGE_LEADERBOARD_LOADED,\n payload: {\n ...leaderboardData,\n },\n});\n\nexport const challengeLeaderboardFailed = (errors) => ({\n type: CHALLENGE_LEADERBOARD_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const getGraphDataRequested = (args) => ({\n type: CHALLENGE_GRAPH_DATA_REQUESTED,\n payload: args,\n});\n\nexport const graphDataSucceeded = (graphData) => ({\n type: CHALLENGE_GRAPH_DATA_SUCCEEDED,\n payload: {\n graphData,\n },\n});\n\nexport const graphDataFailed = (errors) => ({\n type: CHALLENGE_GRAPH_DATA_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const penaltiesRequested = (args) => ({\n type: CHALLENGE_PENALTIES_REQUESTED,\n payload: args,\n});\n\nexport const penaltiesSuccessed = (penalties) => ({\n type: CHALLENGE_PENALTIES_SUCCEEDED,\n payload: {\n penalties,\n },\n});\n\nexport const penaltiesFailed = (errors) => ({\n type: CHALLENGE_PENALTIES_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const warnUserRequested = (args) => ({\n type: CHALLENGE_WARN_USER_REQUESTED,\n payload: args,\n});\n\nexport const warnUserRequestSucceeded = (response) => ({\n type: CHALLENGE_WARN_USER_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const warnUserRequestFailed = (errors) => ({\n type: CHALLENGE_WARN_USER_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const removeUserRequested = (args) => ({\n type: CHALLENGE_REMOVE_USER_REQUESTED,\n payload: args,\n});\n\nexport const removeUserRequestSucceeded = (response) => ({\n type: CHALLENGE_REMOVE_USER_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const removeUserRequestFailed = (errors) => ({\n type: CHALLENGE_REMOVE_USER_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const clearChallengePenaltiesActionsResponse = () => ({\n type: CHALLENGE_PENALTIES_CLEAR_ACTIONS_RESPONSE,\n});\n\nexport const analyticsActivityRequested = (args) => ({\n type: CHALLENGE_ANALYTICS_ACTIVITY_REQUESTED,\n payload: args,\n});\n\nexport const analyticsActivitySucceeded = (analyticsActivity) => ({\n type: CHALLENGE_ANALYTICS_ACTIVITY_SUCCEEDED,\n payload: {\n analyticsActivity,\n },\n});\n\nexport const analyticsActivityFailed = (errors) => ({\n type: CHALLENGE_ANALYTICS_ACTIVITY_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const challengeCreationRequested = (request) => ({\n type: CHALLENGE_CREATION_REQUESTED,\n payload: request,\n});\n\nexport const challengeCreationRequestSucceeded = (response) => ({\n type: CHALLENGE_CREATION_REQUEST_SUCCEEDED,\n payload: response,\n});\n\nexport const challengeCreationRequestFailed = (errors) => ({\n type: CHALLENGE_CREATION_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const clearChallengeCreation = () => ({\n type: CLEAR_CHALLENGE_CREATION,\n});\n\nexport const challengesRequested = (request) => ({\n type: CHALLENGES_REQUESTED,\n payload: request,\n});\n\nexport const challengesRequestSucceeded = (response) => ({\n type: CHALLENGES_REQUEST_SUCCEEDED,\n payload: response,\n});\n\nexport const challengesRequestFailed = (errors, group) => ({\n type: CHALLENGES_REQUEST_FAILED,\n payload: {\n errors,\n group,\n },\n});\n\nexport const challengeSearchRequested = (searchString) => ({\n type: CHALLENGE_SEARCH_REQUESTED,\n payload: { searchString },\n});\n\nexport const challengeSearchRequestSucceeded = (challenges) => ({\n type: CHALLENGE_SEARCH_REQUEST_SUCCEEDED,\n payload: { challenges },\n});\n\nexport const challengeSearchRequestFailed = (errors) => ({\n type: CHALLENGE_SEARCH_REQUEST_FAILED,\n payload: { errors },\n});\n\nexport const analyticsUsersRequested = (args) => ({\n type: CHALLENGE_ANALYTICS_USERS_REQUESTED,\n payload: args,\n});\n\nexport const analyticsUsersSucceeded = (analyticsUsers) => ({\n type: CHALLENGE_ANALYTICS_USERS_SUCCEEDED,\n payload: { analyticsUsers },\n});\n\nexport const analyticsUsersFailed = (errors) => ({\n type: CHALLENGE_ANALYTICS_USERS_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const challengeActivationRequested = (request) => ({\n type: CHALLENGE_ACTIVATION_REQUESTED,\n payload: {\n request,\n },\n});\n\nexport const challengeActivationRequestSucceeded = (response) => ({\n type: CHALLENGE_ACTIVATION_REQUEST_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const challengeActivationRequestFailed = (errors) => ({\n type: CHALLENGE_ACTIVATION_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const challengeDeletionRequested = (request) => ({\n type: CHALLENGE_DELETION_REQUESTED,\n payload: {\n request,\n },\n});\n\nexport const challengeDeletionRequestSucceeded = (response) => ({\n type: CHALLENGE_DELETION_REQUEST_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const challengeDeletionRequestFailed = (errors) => ({\n type: CHALLENGE_DELETION_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const challengeReportRequested = (challengeId) => ({\n type: CHALLENGE_REPORT_REQUESTED,\n payload: {\n challengeId,\n },\n});\n\nexport const challengeReportRequestSucceeded = (response) => ({\n type: CHALLENGE_REPORT_REQUEST_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const challengeReportRequestFailed = (errors) => ({\n type: CHALLENGE_REPORT_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const clearChallengesScreenActionErrors = () => ({\n type: CLEAR_CHALLENGES_SCREEN_ACTION_ERRORS,\n});\n\nexport const analyticsImpactRequested = (args) => ({\n type: CHALLENGE_ANALYTICS_IMPACT_REQUESTED,\n payload: args,\n});\n\nexport const analyticsImpactSucceeded = (analyticsImpact) => ({\n type: CHALLENGE_ANALYTICS_IMPACT_SUCCEEDED,\n payload: { analyticsImpact },\n});\n\nexport const analyticsImpactFailed = (errors) => ({\n type: CHALLENGE_ANALYTICS_IMPACT_FAILED,\n payload: { errors },\n});\n\nexport const analyticsPhotosRequested = (args) => ({\n type: CHALLENGE_ANALYTICS_PHOTOS_REQUESTED,\n payload: args,\n});\n\nexport const analyticsPhotosSucceeded = (analyticsPhotos) => {\n return {\n type: CHALLENGE_ANALYTICS_PHOTOS_SUCCEEDED,\n payload: { analyticsPhotos },\n };\n};\n\nexport const analyticsPhotosFailed = (errors) => ({\n type: CHALLENGE_ANALYTICS_PHOTOS_FAILED,\n payload: { errors },\n});\n\nexport const challengeDeactivationRequested = (request) => ({\n type: CHALLENGE_DEACTIVATION_REQUESTED,\n payload: {\n request,\n },\n});\n\nexport const challengeDeactivationRequestSucceeded = (response) => ({\n type: CHALLENGE_DEACTIVATION_REQUEST_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const challengeDeactivationRequestFailed = (errors) => ({\n type: CHALLENGE_DEACTIVATION_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const teamDetailsRequested = (request) => ({\n type: TEAM_DETAILS_REQUESTED,\n payload: {\n request,\n },\n});\n\nexport const teamDetailsRequestSucceeded = (response) => ({\n type: TEAM_DETAILS_REQUEST_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const teamDetailsRequestFailed = (errors) => ({\n type: TEAM_DETAILS_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const teamLeaderboardRequested = (request) => ({\n type: TEAM_LEADERBOARD_REQUESTED,\n payload: {\n request,\n },\n});\n\nexport const teamLeaderboardRequestSucceeded = (response) => ({\n type: TEAM_LEADERBOARD_REQUEST_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const teamLeaderboardRequestFailed = (errors) => ({\n type: TEAM_LEADERBOARD_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const userChallengesRequested = ({ challengeId, communityId }) => ({\n type: USER_CHALLENGES_REQUESTED,\n payload: {\n challengeId,\n communityId,\n },\n});\n\nexport const userChallengesSucceeded = (data) => ({\n type: USER_CHALLENGES_REQUEST_SUCCEEDED,\n payload: data,\n});\n\nexport const userChallengesFailed = (errors) => ({\n type: USER_CHALLENGES_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const setChallenge = (challengeId) => ({\n type: SET_CHALLENGE,\n payload: {\n challengeId,\n },\n});\n\nexport const challengeShareURLRequested = (challengeId, includeOrgInvite) => ({\n type: CHALLENGE_SHARE_URL_REQUESTED,\n payload: {\n challengeId,\n includeOrgInvite,\n },\n});\n\nexport const challengeShareURLRequestSucceeded = (url) => ({\n type: CHALLENGE_SHARE_URL_REQUEST_SUCCEEDED,\n payload: {\n url,\n },\n});\n\nexport const challengeShareURLRequestFailed = (errors) => ({\n type: CHALLENGE_SHARE_URL_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const challengeAdminShareImageURLRequested = (\n communityId,\n challengeId,\n includeOrgInvite,\n) => ({\n type: CHALLENGE_ADMIN_SHARE_IMAGE_URL_REQUESTED,\n payload: {\n communityId,\n challengeId,\n includeOrgInvite,\n },\n});\n\nexport const challengeAdminShareImageURLRequestSucceeded = (url) => ({\n type: CHALLENGE_ADMIN_SHARE_IMAGE_URL_REQUEST_SUCCEEDED,\n payload: {\n url,\n },\n});\n\nexport const challengeAdminShareImageURLRequestFailed = (errors) => ({\n type: CHALLENGE_ADMIN_SHARE_IMAGE_URL_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const challengeClearErrors = () => ({\n type: CHALLENGE_CLEAR_ERRORS,\n});\n","import {\n CHALLENGE_ACTIVATION_REQUEST_FAILED,\n CHALLENGE_ACTIVATION_REQUEST_SUCCEEDED,\n CHALLENGE_ACTIVATION_REQUESTED,\n CHALLENGE_ADMIN_SHARE_IMAGE_URL_REQUEST_FAILED,\n CHALLENGE_ADMIN_SHARE_IMAGE_URL_REQUEST_SUCCEEDED,\n CHALLENGE_ADMIN_SHARE_IMAGE_URL_REQUESTED,\n CHALLENGE_ANALYTICS_ACTIVITY_FAILED,\n CHALLENGE_ANALYTICS_ACTIVITY_REQUESTED,\n CHALLENGE_ANALYTICS_ACTIVITY_SUCCEEDED,\n CHALLENGE_ANALYTICS_IMPACT_FAILED,\n CHALLENGE_ANALYTICS_IMPACT_REQUESTED,\n CHALLENGE_ANALYTICS_IMPACT_SUCCEEDED,\n CHALLENGE_ANALYTICS_PHOTOS_FAILED,\n CHALLENGE_ANALYTICS_PHOTOS_REQUESTED,\n CHALLENGE_ANALYTICS_PHOTOS_SUCCEEDED,\n CHALLENGE_ANALYTICS_USERS_FAILED,\n CHALLENGE_ANALYTICS_USERS_REQUESTED,\n CHALLENGE_ANALYTICS_USERS_SUCCEEDED,\n CHALLENGE_CLEAR_ERRORS,\n CHALLENGE_CREATION_REQUEST_FAILED,\n CHALLENGE_CREATION_REQUEST_SUCCEEDED,\n CHALLENGE_CREATION_REQUESTED,\n CHALLENGE_DEACTIVATION_REQUEST_FAILED,\n CHALLENGE_DEACTIVATION_REQUEST_SUCCEEDED,\n CHALLENGE_DEACTIVATION_REQUESTED,\n CHALLENGE_DELETION_REQUEST_FAILED,\n CHALLENGE_DELETION_REQUEST_SUCCEEDED,\n CHALLENGE_DELETION_REQUESTED,\n CHALLENGE_GRAPH_DATA_FAILED,\n CHALLENGE_GRAPH_DATA_REQUESTED,\n CHALLENGE_GRAPH_DATA_SUCCEEDED,\n CHALLENGE_LEADERBOARD_FAILED,\n CHALLENGE_LEADERBOARD_LOADED,\n CHALLENGE_LEADERBOARD_REQUESTED,\n CHALLENGE_PENALTIES_CLEAR_ACTIONS_RESPONSE,\n CHALLENGE_PENALTIES_FAILED,\n CHALLENGE_PENALTIES_REQUESTED,\n CHALLENGE_PENALTIES_SUCCEEDED,\n CHALLENGE_REMOVE_USER_FAILED,\n CHALLENGE_REMOVE_USER_REQUESTED,\n CHALLENGE_REMOVE_USER_SUCCEEDED,\n CHALLENGE_REPORT_REQUEST_FAILED,\n CHALLENGE_REPORT_REQUEST_SUCCEEDED,\n CHALLENGE_REPORT_REQUESTED,\n CHALLENGE_SEARCH_REQUEST_FAILED,\n CHALLENGE_SEARCH_REQUEST_SUCCEEDED,\n CHALLENGE_SEARCH_REQUESTED,\n CHALLENGE_SHARE_URL_REQUEST_FAILED,\n CHALLENGE_SHARE_URL_REQUEST_SUCCEEDED,\n CHALLENGE_SHARE_URL_REQUESTED,\n CHALLENGE_WARN_USER_FAILED,\n CHALLENGE_WARN_USER_REQUESTED,\n CHALLENGE_WARN_USER_SUCCEEDED,\n CLEAR_CHALLENGE_CREATION,\n CLEAR_CHALLENGES_SCREEN_ACTION_ERRORS,\n JOIN_CHALLENGE_FAILED,\n JOIN_CHALLENGE_REQUESTED,\n JOIN_CHALLENGE_SUCCEEDED,\n SET_CHALLENGE,\n TEAM_DETAILS_REQUEST_FAILED,\n TEAM_DETAILS_REQUEST_SUCCEEDED,\n TEAM_DETAILS_REQUESTED,\n TEAM_LEADERBOARD_REQUEST_FAILED,\n TEAM_LEADERBOARD_REQUEST_SUCCEEDED,\n TEAM_LEADERBOARD_REQUESTED,\n UNJOIN_CHALLENGE_FAILED,\n UNJOIN_CHALLENGE_REQUESTED,\n UNJOIN_CHALLENGE_SUCCEEDED,\n USER_CHALLENGES_REQUEST_FAILED,\n USER_CHALLENGES_REQUEST_SUCCEEDED,\n USER_CHALLENGES_REQUESTED,\n VIEW_CHALLENGE_FAILED,\n VIEW_CHALLENGE_REQUESTED,\n VIEW_CHALLENGE_SUCCEEDED,\n} from './actions';\nimport { mergePaginatedResponse } from '../common/utils';\nimport { LOGOUT_REQUESTED } from '../auth/actions';\nimport { ACTIONS_REQUEST_SUCCEEDED } from '../actions/actions';\n\nconst initialState = {\n challenge: null,\n challenges: [],\n isChallengeLoading: false,\n challengeErrors: [],\n leaderboard: null,\n isLeaderboardLoading: false,\n leaderboardErrors: [],\n joinErrors: [],\n unjoinErrors: [],\n graphData: null,\n graphDataErrors: [],\n isGraphDataLoading: false,\n analyticsActivity: [],\n isAnalyticsActivityLoading: false,\n analyticsActivityErrors: [],\n analyticsUsers: null,\n isAnalyticsUsersLoading: false,\n analyticsUsersErrors: [],\n analyticsImpact: [],\n isAnalyticsImpactLoading: false,\n analyticsImpactErrors: [],\n analyticsPhotos: [],\n isAnalyticsPhotosLoading: false,\n analyticsPhotosErrors: [],\n penalties: [],\n penaltiesLoading: false,\n penaltiesActions: {\n loading: false,\n response: null,\n errors: [],\n },\n penaltiesErrors: [],\n templates: null,\n areTemplatesLoading: false,\n templatesErrors: [],\n creation: {\n createdChallenge: null,\n isChallengeCreationRequested: false,\n challengeCreationErrors: [],\n },\n challengesScreenActions: {\n loading: false,\n errors: [],\n response: null,\n },\n teamDetails: {\n loading: false,\n errors: [],\n team: null,\n },\n teamLeaderboard: {\n loading: false,\n errors: [],\n leaderboard: null,\n },\n shareURL: {\n challengeId: '',\n loading: false,\n errors: [],\n url: '',\n },\n adminShareImageURL: {\n challengeId: '',\n loading: false,\n errors: [],\n url: '',\n },\n challengeToDuplicate: null,\n};\n\nconst viewChallengeReducer = (state = initialState, action) => {\n const { type, payload = {} } = action;\n switch (type) {\n case VIEW_CHALLENGE_REQUESTED:\n return {\n ...state,\n isChallengeLoading: true,\n };\n case VIEW_CHALLENGE_SUCCEEDED:\n return {\n ...state,\n challenge: payload.challenge,\n isChallengeLoading: false,\n challengeErrors: [],\n };\n case VIEW_CHALLENGE_FAILED:\n return {\n ...state,\n isChallengeLoading: false,\n challengeErrors: payload.errors,\n };\n case JOIN_CHALLENGE_REQUESTED:\n return state;\n case JOIN_CHALLENGE_SUCCEEDED:\n return {\n ...state,\n challenge: {\n ...state.challenge,\n participationStatus: 'joined',\n teams: payload.teamId\n ? state.challenge.teams?.map((team) => ({\n ...team,\n participationStatus:\n team.id === payload.teamId\n ? 'joined'\n : 'unjoined',\n }))\n : state.challenge.teams,\n },\n joinErrors: [],\n };\n case JOIN_CHALLENGE_FAILED:\n return {\n ...state,\n joinErrors: payload.errors,\n };\n case UNJOIN_CHALLENGE_REQUESTED:\n return state;\n case UNJOIN_CHALLENGE_SUCCEEDED:\n return {\n ...state,\n challenge: {\n ...state.challenge,\n participationStatus: 'unjoined',\n teams: state.challenge.teams?.map((team) => ({\n ...team,\n participationStatus: 'unjoined',\n })),\n },\n unjoinErrors: [],\n };\n case UNJOIN_CHALLENGE_FAILED:\n return {\n ...state,\n unjoinErrors: payload.errors,\n };\n case CHALLENGE_LEADERBOARD_REQUESTED:\n return {\n ...state,\n isLeaderboardLoading: true,\n leaderboardErrors: [],\n };\n case CHALLENGE_LEADERBOARD_LOADED: {\n const { challengeUnit, leaderboard, skip } = payload;\n const newState = {\n ...state,\n isLeaderboardLoading: false,\n leaderboardErrors: [],\n };\n if (challengeUnit) {\n const challengeUnitLeaderboard = `${challengeUnit}Leaderboard`;\n newState[challengeUnitLeaderboard] = mergePaginatedResponse(\n state[challengeUnitLeaderboard],\n leaderboard,\n skip,\n );\n } else {\n newState.leaderboard = mergePaginatedResponse(\n state.leaderboard,\n leaderboard,\n skip,\n );\n }\n return newState;\n }\n case ACTIONS_REQUEST_SUCCEEDED:\n if (payload.filters.challengeIds?.includes(state.challenge.id)) {\n return {\n ...state,\n challenge: {\n ...state.challenge,\n actions: {\n data: payload.actions,\n pagination: payload.filters?.pagination || {},\n loading: false,\n errors: [],\n },\n },\n };\n } else {\n return state;\n }\n case CHALLENGE_LEADERBOARD_FAILED:\n return {\n ...state,\n isLeaderboardLoading: false,\n leaderboardErrors: payload.errors,\n };\n case CHALLENGE_GRAPH_DATA_REQUESTED:\n return {\n ...state,\n isGraphDataLoading: true,\n };\n case CHALLENGE_GRAPH_DATA_SUCCEEDED:\n return {\n ...state,\n graphDataErrors: [],\n isGraphDataLoading: false,\n graphData: payload.graphData,\n };\n case CHALLENGE_GRAPH_DATA_FAILED:\n return {\n ...state,\n graphData: null,\n isGraphDataLoading: false,\n graphDataErrors: payload.errors,\n };\n case CHALLENGE_ANALYTICS_ACTIVITY_REQUESTED:\n return {\n ...state,\n analyticsActivityErrors: [],\n isAnalyticsActivityLoading: true,\n };\n case CHALLENGE_ANALYTICS_ACTIVITY_SUCCEEDED:\n return {\n ...state,\n isAnalyticsActivityLoading: false,\n analyticsActivity: payload.analyticsActivity,\n };\n case CHALLENGE_ANALYTICS_ACTIVITY_FAILED:\n return {\n ...state,\n analyticsActivity: null,\n isAnalyticsActivityLoading: false,\n analyticsActivityErrors: payload.errors,\n };\n case CHALLENGE_ANALYTICS_USERS_REQUESTED:\n return {\n ...state,\n analyticsUsersErrors: [],\n isAnalyticsUsersLoading: true,\n };\n case CHALLENGE_ANALYTICS_USERS_SUCCEEDED:\n return {\n ...state,\n isAnalyticsUsersLoading: false,\n analyticsUsers: payload.analyticsUsers,\n };\n case CHALLENGE_ANALYTICS_USERS_FAILED:\n return {\n ...state,\n analyticsUsers: null,\n isAnalyticsUsersLoading: false,\n analyticsUsersErrors: payload.errors,\n };\n case CHALLENGE_ANALYTICS_IMPACT_REQUESTED:\n return {\n ...state,\n analyticsImpactErrors: [],\n isAnalyticsImpactLoading: true,\n };\n case CHALLENGE_ANALYTICS_IMPACT_SUCCEEDED:\n return {\n ...state,\n isAnalyticsImpactLoading: false,\n analyticsImpact: payload.analyticsImpact,\n };\n case CHALLENGE_ANALYTICS_IMPACT_FAILED:\n return {\n ...state,\n isAnalyticsImpactLoading: false,\n analyticsImpactErrors: payload.errors,\n };\n case CHALLENGE_ANALYTICS_PHOTOS_REQUESTED:\n return {\n ...state,\n isAnalyticsPhotosLoading: true,\n };\n case CHALLENGE_ANALYTICS_PHOTOS_SUCCEEDED:\n return {\n ...state,\n isAnalyticsPhotosLoading: false,\n analyticsPhotos: payload.analyticsPhotos,\n };\n case CHALLENGE_ANALYTICS_PHOTOS_FAILED:\n return {\n ...state,\n isAnalyticsPhotosLoading: false,\n analyticsPhotosErrors: payload.errors,\n };\n\n case CHALLENGE_PENALTIES_REQUESTED:\n return {\n ...state,\n penaltiesLoading: true,\n };\n case CHALLENGE_PENALTIES_SUCCEEDED:\n return {\n ...state,\n penaltiesLoading: false,\n penalties: payload.penalties,\n };\n case CHALLENGE_PENALTIES_FAILED:\n return {\n ...state,\n penaltiesLoading: false,\n penaltiesErrors: payload.errors,\n };\n case CHALLENGE_WARN_USER_REQUESTED:\n return {\n ...state,\n penaltiesActions: {\n ...state.penaltiesActions,\n loading: true,\n },\n };\n case CHALLENGE_WARN_USER_SUCCEEDED:\n return {\n ...state,\n penaltiesActions: {\n ...state.penaltiesActions,\n loading: false,\n response: payload.response,\n },\n };\n case CHALLENGE_WARN_USER_FAILED:\n return {\n ...state,\n penaltiesActions: {\n ...state.penaltiesActions,\n loading: false,\n errors: payload.errors,\n },\n };\n case CHALLENGE_REMOVE_USER_REQUESTED:\n return {\n ...state,\n penaltiesActions: {\n ...state.penaltiesActions,\n loading: true,\n succeeded: false,\n },\n };\n case CHALLENGE_REMOVE_USER_SUCCEEDED:\n return {\n ...state,\n penaltiesActions: {\n ...state.penaltiesActions,\n loading: false,\n response: payload.response,\n },\n };\n case CHALLENGE_REMOVE_USER_FAILED:\n return {\n ...state,\n penaltiesActions: {\n ...state.penaltiesActions,\n loading: false,\n errors: payload.errors,\n },\n };\n case CHALLENGE_PENALTIES_CLEAR_ACTIONS_RESPONSE:\n return {\n ...state,\n penaltiesActions: {\n ...state.penaltiesActions,\n loading: false,\n response: null,\n errors: [],\n },\n };\n case CHALLENGE_CREATION_REQUESTED:\n return {\n ...state,\n creation: {\n ...state.creation,\n loading: true,\n isChallengeCreationRequested: true,\n },\n };\n case CHALLENGE_CREATION_REQUEST_SUCCEEDED:\n return {\n ...state,\n creation: {\n ...state.creation,\n loading: false,\n createdChallenge: payload.challenge,\n isChallengeCreationRequested: false,\n challengeCreationErrors: [],\n },\n };\n case CHALLENGE_CREATION_REQUEST_FAILED:\n return {\n ...state,\n creation: {\n ...state.creation,\n createdChallenge: null,\n loading: false,\n isChallengeCreationRequested: false,\n challengeCreationErrors: payload.errors,\n },\n };\n case CLEAR_CHALLENGE_CREATION:\n return {\n ...state,\n creation: {\n ...state.creation,\n createdChallenge: null,\n isChallengeCreationRequested: false,\n challengeCreationErrors: [],\n },\n };\n case CHALLENGE_ACTIVATION_REQUESTED:\n case CHALLENGE_DEACTIVATION_REQUESTED:\n case CHALLENGE_REPORT_REQUESTED:\n case CHALLENGE_DELETION_REQUESTED:\n return {\n ...state,\n challengesScreenActions: {\n ...state.challengesScreenActions,\n loading: true,\n },\n };\n case CHALLENGE_ACTIVATION_REQUEST_SUCCEEDED:\n case CHALLENGE_DEACTIVATION_REQUEST_SUCCEEDED:\n case CHALLENGE_REPORT_REQUEST_SUCCEEDED:\n case CHALLENGE_DELETION_REQUEST_SUCCEEDED:\n return {\n ...state,\n challengesScreenActions: {\n ...state.challengesScreenActions,\n loading: false,\n errors: [],\n response: payload.response,\n },\n };\n case CHALLENGE_DEACTIVATION_REQUEST_FAILED:\n case CHALLENGE_ACTIVATION_REQUEST_FAILED:\n case CHALLENGE_REPORT_REQUEST_FAILED:\n case CHALLENGE_DELETION_REQUEST_FAILED:\n return {\n ...state,\n challengesScreenActions: {\n ...state.challengesScreenActions,\n loading: false,\n errors: payload.errors,\n },\n };\n case CLEAR_CHALLENGES_SCREEN_ACTION_ERRORS:\n return {\n ...state,\n challengesScreenActions: {\n ...state.challengesScreenActions,\n errors: [],\n response: [],\n },\n };\n case TEAM_DETAILS_REQUESTED:\n return {\n ...state,\n teamDetails: {\n ...state.teamDetails,\n loading: true,\n },\n };\n case TEAM_DETAILS_REQUEST_SUCCEEDED:\n return {\n ...state,\n teamDetails: {\n ...state.teamDetails,\n loading: false,\n errors: [],\n team: payload.response,\n },\n };\n case TEAM_DETAILS_REQUEST_FAILED:\n return {\n ...state,\n teamDetails: {\n ...state.teamDetails,\n loading: false,\n errors: payload.errors,\n },\n };\n case TEAM_LEADERBOARD_REQUESTED:\n return {\n ...state,\n teamLeaderboard: {\n ...state.teamLeaderboard,\n loading: true,\n },\n };\n case TEAM_LEADERBOARD_REQUEST_SUCCEEDED:\n return {\n ...state,\n teamLeaderboard: {\n ...state.teamLeaderboard,\n loading: false,\n errors: [],\n leaderboard: payload.response,\n },\n };\n case TEAM_LEADERBOARD_REQUEST_FAILED:\n return {\n ...state,\n teamLeaderboard: {\n ...state.teamLeaderboard,\n loading: false,\n errors: payload.errors,\n },\n };\n case SET_CHALLENGE: {\n const challenge = state.challenges?.challenges?.find(\n (challenge) => challenge.id === payload.challengeId,\n );\n return {\n ...state,\n challenge,\n };\n }\n case USER_CHALLENGES_REQUESTED:\n return {\n ...state,\n challenges: {\n isLoading: true,\n },\n };\n case USER_CHALLENGES_REQUEST_FAILED:\n return {\n ...state,\n challenges: {\n isLoading: false,\n errors: payload.errors,\n },\n };\n case USER_CHALLENGES_REQUEST_SUCCEEDED:\n return {\n ...state,\n challenges: {\n challenges: payload,\n isLoading: false,\n errors: [],\n },\n };\n case CHALLENGE_SEARCH_REQUESTED:\n return {\n ...state,\n challenges: {\n ...state.challenges,\n isLoading: true,\n },\n };\n case CHALLENGE_SEARCH_REQUEST_SUCCEEDED:\n return {\n ...state,\n challenges: {\n ...state.challenges,\n searchResult: payload.challenges,\n isLoading: false,\n },\n };\n case CHALLENGE_SEARCH_REQUEST_FAILED:\n return {\n ...state,\n challenges: {\n ...state.challenges,\n errors: payload.errors,\n isLoading: false,\n },\n };\n case LOGOUT_REQUESTED: {\n return initialState;\n }\n case CHALLENGE_SHARE_URL_REQUESTED:\n return {\n ...state,\n shareURL: {\n ...initialState.shareURL,\n challengeId: payload.challengeId,\n loading: true,\n },\n };\n case CHALLENGE_SHARE_URL_REQUEST_SUCCEEDED:\n return {\n ...state,\n shareURL: {\n ...state.shareURL,\n loading: false,\n url: payload.url,\n },\n };\n case CHALLENGE_SHARE_URL_REQUEST_FAILED:\n return {\n ...state,\n shareURL: {\n ...state.shareURL,\n loading: false,\n errors: payload.errors,\n },\n };\n case CHALLENGE_ADMIN_SHARE_IMAGE_URL_REQUESTED:\n return {\n ...state,\n adminShareImageURL: {\n ...initialState.adminShareImageURL,\n challengeId: payload.challengeId,\n loading: true,\n },\n };\n case CHALLENGE_ADMIN_SHARE_IMAGE_URL_REQUEST_SUCCEEDED:\n return {\n ...state,\n adminShareImageURL: {\n ...state.adminShareImageURL,\n loading: false,\n url: payload.url,\n },\n };\n case CHALLENGE_ADMIN_SHARE_IMAGE_URL_REQUEST_FAILED:\n return {\n ...state,\n adminShareImageURL: {\n ...state.adminShareImageURL,\n loading: false,\n errors: payload.errors,\n },\n };\n case CHALLENGE_CLEAR_ERRORS:\n return {\n ...state,\n challengeErrors: [],\n leaderboardErrors: [],\n joinErrors: [],\n unjoinErrors: [],\n graphDataErrors: [],\n analyticsActivityErrors: [],\n analyticsUsersErrors: [],\n analyticsImpactErrors: [],\n analyticsPhotosErrors: [],\n penaltiesActions: {\n ...state.penaltiesActions,\n errors: [],\n },\n penaltiesErrors: [],\n templatesErrors: [],\n creation: {\n ...state.creation,\n challengeCreationErrors: [],\n },\n challengesScreenActions: {\n ...state.challengesScreenActions,\n errors: [],\n },\n teamDetails: {\n ...state.teamDetails,\n errors: [],\n },\n teamLeaderboard: {\n ...state.teamLeaderboard,\n errors: [],\n },\n shareURL: {\n ...state.shareURL,\n errors: [],\n },\n adminShareImageURL: {\n ...state.adminShareImageURL,\n errors: [],\n },\n };\n default:\n return state;\n }\n};\n\nexport default viewChallengeReducer;\n","import {\n AddBox,\n AddToPhotos,\n Assessment,\n Delete,\n Edit,\n Folder,\n RemoveCircle,\n Telegram,\n Visibility,\n Whatshot,\n} from '@material-ui/icons';\n\nexport const GROUP_ACTIVE = 'active';\nexport const GROUP_DRAFT = 'draft';\nexport const GROUP_UPCOMING = 'upcoming';\nexport const GROUP_PAST = 'past';\nexport const GROUP_DEACTIVATED = 'optout';\n\nexport const GROUPS = [\n GROUP_ACTIVE,\n GROUP_DRAFT,\n GROUP_UPCOMING,\n GROUP_PAST,\n GROUP_DEACTIVATED,\n];\n\nexport const GROUP_NAMES = {\n [GROUP_ACTIVE]: 'active',\n [GROUP_DRAFT]: 'challenge.status.draft',\n [GROUP_UPCOMING]: 'challenge.status.upcoming',\n [GROUP_PAST]: 'challenge.status.past',\n [GROUP_DEACTIVATED]: 'deactivated',\n};\n\nexport const BTN_EDIT_CHALLENGE = {\n key: 'editChallenge',\n actions: 'edit',\n subject: 'Challenge',\n tooltip: 'edit',\n icon: Edit,\n};\n\nexport const BTN_VIEW_CHALLENGE = {\n key: 'viewChallengesAdmin',\n actions: 'view',\n subject: 'ChallengesAdmin',\n tooltip: 'view',\n icon: Visibility,\n};\n\nexport const BTN_PUBLISH_CHALLENGE = {\n key: 'publishChallenge',\n actions: 'view',\n subject: 'ChallengesAdmin',\n tooltip: 'challenge.publish.descriptor',\n icon: Telegram,\n};\n\nexport const BTN_DELETE_CHALLENGE = {\n key: 'deleteChallenge',\n actions: 'edit',\n subject: 'Challenge',\n tooltip: 'delete',\n icon: Delete,\n};\n\nexport const BTN_DUPLICATE_CHALLENGE = {\n key: 'createChallenge',\n actions: 'create',\n subject: 'Challenge',\n tooltip: 'duplicate',\n icon: AddToPhotos,\n};\n\nexport const BTN_VIEW_ANALYTICS = {\n key: 'viewChallengeAnalytics',\n actions: 'view',\n subject: 'ChallengeAnalytics',\n tooltip: 'analytics',\n icon: Assessment,\n};\n\nexport const BTN_DEACTIVATE_CHALLENGE = {\n key: 'optOutChallenge',\n actions: 'optOut',\n subject: 'Challenge',\n tooltip: 'deactivate',\n icon: RemoveCircle,\n};\n\nexport const BTN_VIEW_PENALTIES = {\n key: 'viewChallengePenalties',\n actions: 'view',\n subject: 'ChallengePenalties',\n tooltip: 'challenge.penalties.descriptor',\n icon: Whatshot,\n};\n\nexport const BTN_ACTIVATE_CHALLENGE = {\n key: 'activateChallenge',\n actions: 'activate',\n subject: 'Challenge',\n tooltip: 'activate',\n icon: AddBox,\n};\n\nexport const BTN_DOWNLOAD_CHALLENGE_REPORT = {\n key: 'viewChallengeReports',\n actions: 'view',\n subject: 'ChallengeReports',\n tooltip: 'report.descriptor',\n icon: Folder,\n};\n\nexport const BUTTONS_CELL = {\n [GROUP_ACTIVE]: [\n BTN_EDIT_CHALLENGE,\n BTN_VIEW_CHALLENGE,\n BTN_VIEW_ANALYTICS,\n BTN_DEACTIVATE_CHALLENGE,\n BTN_VIEW_PENALTIES,\n BTN_DOWNLOAD_CHALLENGE_REPORT,\n ],\n [GROUP_DRAFT]: [\n BTN_EDIT_CHALLENGE,\n BTN_VIEW_CHALLENGE,\n BTN_PUBLISH_CHALLENGE,\n BTN_DELETE_CHALLENGE,\n ],\n [GROUP_UPCOMING]: [\n BTN_VIEW_CHALLENGE,\n BTN_EDIT_CHALLENGE,\n BTN_DEACTIVATE_CHALLENGE,\n BTN_VIEW_PENALTIES,\n ],\n [GROUP_PAST]: [\n BTN_VIEW_CHALLENGE,\n BTN_VIEW_ANALYTICS,\n BTN_VIEW_PENALTIES,\n BTN_DOWNLOAD_CHALLENGE_REPORT,\n BTN_DUPLICATE_CHALLENGE,\n ],\n [GROUP_DEACTIVATED]: [BTN_VIEW_CHALLENGE, BTN_ACTIVATE_CHALLENGE],\n};\n\nexport const ACTIVATE_ACTION = 'activate';\nexport const DEACTIVATE_ACTION = 'deactivate';\nexport const GENERATE_REPORT_ACTION = 'report.generate';\n\nexport const DELETE_CHALLENGE_ACTION = 'challenge.delete';\n\nexport const INTERCOM_TARGET_PREFIX = 'challenges';\n","import {\n CHALLENGES_REQUEST_FAILED,\n CHALLENGES_REQUEST_SUCCEEDED,\n CHALLENGES_REQUESTED,\n} from '../../challenges/actions';\nimport { GROUPS } from './constants';\n\nconst initialState = {\n ...GROUPS.reduce(\n (acc, group) => ({\n ...acc,\n [group]: {\n isLoading: false,\n errors: null,\n challenges: null,\n },\n }),\n {},\n ),\n};\n\nexport default function challengesReducer(state = initialState, action) {\n const { type, payload = {} } = action;\n switch (type) {\n case CHALLENGES_REQUESTED:\n return {\n ...state,\n [payload.group]: {\n isLoading: true,\n },\n };\n case CHALLENGES_REQUEST_SUCCEEDED:\n return {\n ...state,\n [payload.group]: {\n isLoading: false,\n errors: [],\n challenges: payload.challenges,\n },\n };\n case CHALLENGES_REQUEST_FAILED:\n return {\n ...state,\n [payload.group]: {\n isLoading: false,\n errors: payload.errors,\n },\n };\n default:\n return state;\n }\n}\n","import { DateTime, Duration, Info, Interval } from 'luxon';\nimport { has, pick } from 'ramda';\n\nexport const NONE = 'none';\n\n/**\n * Given a Date or DateTime object, returns the day of the year.\n *\n * @param {Date|DateTime} date\n * @returns {number} the day of year the given date is on, parsed to an integer.\n */\nexport const getDayOfYear = (date) => {\n if (date instanceof Date) {\n date = DateTime.fromJSDate(date);\n } else if (!(date instanceof DateTime)) {\n throw TypeError(\n 'getDayOfYear only supports input parameter as a Date or DateTime.',\n );\n }\n return parseInt(date.toFormat('o'));\n};\n\n/**\n * Given a start date, returns an Interval that covers the entire month from that date to the\n * last millisecond of the last day of the month.\n *\n * @param {Date|DateTime} startDate\n * @returns {Interval}\n */\nexport const getMonthInterval = (startDate) => {\n if (startDate instanceof Date) {\n startDate = DateTime.fromJSDate(startDate);\n } else if (!(startDate instanceof DateTime)) {\n throw TypeError(\n 'getMonthInterval only supports input parameter as a Date or DateTime.',\n );\n }\n return Interval.after(\n startDate,\n Duration.fromObject({\n days: startDate.daysInMonth - startDate.day,\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n );\n};\n\n/* Common form of weekdays that will be used in weekday pickers */\nexport const weekdays = Info.weekdays('short');\n\n/**\n * Options for weekday pickers.\n * @type {{label: string, value: number}[]}\n */\nexport const weekdayOptions = weekdays.map((weekday, index) => {\n return { value: index + 1, label: weekday };\n});\n\n/**\n * Month display values to be used in the month picker.\n * @type {string[]}\n */\nexport const months = Info.months('short');\n\n/**\n * Options for month pickers.\n * @type {{label: string, value: string}[]}\n */\nexport const monthOptions = [{ value: NONE, label: 'Month' }].concat(\n months.map((month, index) => {\n return { value: index + 1, label: month };\n }),\n);\n\n/**\n * This is the current year as an integer. It is the maximum value selectable in the year picker.\n * @type {number}\n */\nexport const currentYear = Number.parseInt(DateTime.local().toFormat('yyyy'));\n\n/**\n * This is the minimum year which is displayed in the year picker.\n * @type {number}\n */\nexport const MIN_YEAR = 2019;\n\n/**\n * The array of years to use as options in the year picker.\n * @type {Array}\n */\nexport const years = [];\nfor (let year = MIN_YEAR; year <= currentYear; year++) {\n years.push(year);\n}\n\n/**\n * Options for year pickers.\n * @type {{label: string, value: string}[]}\n */\nexport const yearOptions = [{ value: NONE, label: 'Year' }].concat(\n years.map((year) => {\n return { value: year, label: year };\n }),\n);\n\n/**\n * Format used by daysInMonth function to create a date time.\n * @type {string}\n */\nconst MONTH_FORMAT = 'M-yyyy';\n\n/**\n * Given a month in its number format and a year integer,\n * return the number of days in the given month.\n *\n * @param {number} month\n * @param {number} year, defaults to current year if not specified\n * @returns {number} the number of days in the given month\n */\nexport const daysInMonth = (month, year = currentYear) => {\n return DateTime.fromFormat(`${month}-${year}`, MONTH_FORMAT).daysInMonth;\n};\n\n/**\n * Gets options for the days in the given month and year.\n *\n * @param {number|String} month number or NONE\n * @param {number|String} year will default to the current year if not specified or if its NONE.\n * @returns {{label: string, value: string}[]}\n */\nexport const daysInMonthOptions = (month, year = currentYear) => {\n const dayOptions = [{ value: NONE, label: 'Day' }];\n if (month !== NONE) {\n const numberOfDays =\n year && year !== NONE\n ? daysInMonth(month, year)\n : daysInMonth(month);\n for (let day = 1; day <= numberOfDays; day++) {\n dayOptions.push({ value: day, label: day });\n }\n }\n return dayOptions;\n};\n\n/**\n * Format the dateString into the given format.\n * @param {string} dateString the date you want to format.\n * @param {string} format the format in which you want the date to be returned, defauls to MM.dd.yyyy\n * @returns {string}\n */\nexport function formatDate(dateString, format = 'MM.dd.yyyy') {\n return DateTime.fromISO(dateString.split(' ').join('T'))\n .toLocal()\n .toFormat(format);\n}\n\n/**\n * Gets the start of today as an epoch timestamp.\n * @returns {number} the timestamp of the start of today\n */\nexport function getStartOfTodayTimestamp() {\n return Math.round(\n DateTime.local()\n .set({ hour: 0, minute: 0, second: 0, millisecond: 0 })\n .toMillis() / 1000,\n );\n}\n\n/**\n * Gets the end of today as an epoch timestamp\n * @returns {number} the timestamp of the end of today\n */\nexport function getEndOfTodayTimestamp() {\n return Math.round(\n DateTime.local()\n .set({ hour: 23, minute: 59, second: 59, millisecond: 999 })\n .toMillis() / 1000,\n );\n}\n\n/**\n * Gets the start of specified DateTime as an epoch timestamp.\n * @returns {number} the timestamp of the start of today\n */\nexport function getStartOfDateTimestamp(dateTime) {\n return Math.round(\n dateTime\n .set({ hour: 0, minute: 0, second: 0, millisecond: 0 })\n .toMillis() / 1000,\n );\n}\n\n/**\n * Gets the end of the specified DateTime as an epoch timestamp\n * @returns {number} the timestamp of the end of today\n */\nexport function getEndOfDateTimestamp(dateTime) {\n return Math.round(\n dateTime\n .set({ hour: 23, minute: 59, second: 59, millisecond: 999 })\n .toMillis() / 1000,\n );\n}\n\nexport const hasMonth = has('month');\nexport const hasDay = has('day');\nexport const hasYear = has('year');\n\nexport const getMonthDayAndYearFromObject = (object) => {\n return pick(['month', 'day', 'year'], object);\n};\n\nexport const dateDifferenceInDays = (date1, date2) =>\n Math.round((date2.valueOf() - date1.valueOf()) / 1000 / 60 / 60 / 24);\n\nexport const dateDifferenceInLargestUnits = (date1, date2) => {\n const diff = date2.valueOf() - date1.valueOf();\n const diffInDays = diff / 1000 / 60 / 60 / 24;\n if (diffInDays > 1) {\n return `${Math.round(diffInDays)} days`;\n }\n const diffInHours = diff / 1000 / 60 / 60;\n if (diffInHours > 1) {\n return `${Math.round(diffInHours)} hours`;\n }\n const diffInMinutes = diff / 1000 / 60;\n if (diffInMinutes > 1) {\n return `${Math.round(diffInMinutes)} minutes`;\n }\n const diffInSeconds = Math.round(diff / 1000);\n return `${diffInSeconds} seconds`;\n};\n\nexport const getTimezoneOffsetInHours = () => {\n const now = new Date();\n const offset = Math.round(-now.getTimezoneOffset() / 60);\n const absOffset = Math.abs(offset);\n const sign = offset >= 0 ? '+' : '-';\n const twoDigitOffset = absOffset < 10 ? `0${absOffset}` : absOffset;\n return `${sign}${twoDigitOffset}`;\n};\n\n/**\n * Get the timezone abbreviation (e.g. EDT, PDT, ...)\n * @param {string} locale The client locale / language\n * @param {[string|null]} tzName A string timezone (e.g. America/New_York)\n * @returns {string}\n */\nexport const getTimezoneAbbrev = (locale = 'en', tzName = null) => {\n const localeOptions = { timeZoneName: 'short' };\n if (tzName !== null) {\n localeOptions.timeZone = tzName;\n }\n return new Date()\n .toLocaleString(locale, localeOptions)\n .split(' ')\n .pop();\n};\n\n/* Get the local timezone name */\nexport const getTimezoneName = DateTime.local().zoneName;\n\nconst stdTimezoneOffset = () => {\n const jan = new Date(new Date().getFullYear(), 0, 1);\n const jul = new Date(new Date().getFullYear(), 6, 1);\n return Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());\n};\n\nexport const isDstObserved = (date) => {\n return date.getTimezoneOffset() < stdTimezoneOffset();\n};\n","import { Edit, DeleteOutlineOutlined } from '@material-ui/icons';\n\nimport { getTimezoneAbbrev } from '../../../utils/dates';\nimport moment from 'moment';\nimport { DATETIME_FORMAT_FOR_DATETIME_PICKERS } from '../../../constants/dates';\n\nexport const BORDER_ICON = {\n border: '2px solid #fff',\n borderRadius: '6px 6px 50% 50%',\n};\n\nexport const GROUP_TYPE_QUEUED = 'queued';\nexport const GROUP_TYPE_DELIVERED = 'delivered';\n\nexport const INIT_SORT = {\n [GROUP_TYPE_QUEUED]: [{ id: 'sendDate', desc: false }],\n [GROUP_TYPE_DELIVERED]: [{ id: 'sendDate', desc: true }],\n};\n\n// Localization constants\nexport const LOCALIZATION_NOTIFICATIONS_KEY = 'notifications';\nexport const LOCALIZATION_NOTIFICATION_GROUPS_KEY = `${LOCALIZATION_NOTIFICATIONS_KEY}.groups`;\nexport const LOCALIZATION_NOTIFICATION_TABLE_KEY = `${LOCALIZATION_NOTIFICATIONS_KEY}.table`;\nexport const LOCALIZATION_NOTIFICATION_TABLE_ACTIONS_KEY = `${LOCALIZATION_NOTIFICATION_TABLE_KEY}.actionToolTips`;\nexport const LOCALIZATION_NOTIFICATION_TABLE_HEADERS_KEY = `${LOCALIZATION_NOTIFICATION_TABLE_KEY}.headers`;\n\n// The groups are the main sections on the page: Queued and Delivered\nexport const GROUP_NAMES = {\n [GROUP_TYPE_QUEUED]: `${LOCALIZATION_NOTIFICATION_GROUPS_KEY}.${GROUP_TYPE_QUEUED}`,\n [GROUP_TYPE_DELIVERED]: `${LOCALIZATION_NOTIFICATION_GROUPS_KEY}.${GROUP_TYPE_DELIVERED}`,\n};\n\nexport const GROUPS = [GROUP_TYPE_QUEUED, GROUP_TYPE_DELIVERED];\n\nexport const COLUMNS = [\n { accessor: 'icon', sortable: false },\n {\n Header: `${LOCALIZATION_NOTIFICATION_TABLE_HEADERS_KEY}.subject`,\n accessor: 'subject',\n },\n {\n Header: `${LOCALIZATION_NOTIFICATION_TABLE_HEADERS_KEY}.message`,\n accessor: 'message',\n },\n {\n // todo: localize\n Header: `Send Date (${getTimezoneAbbrev()})`,\n accessor: 'sendDate',\n Cell: (props) =>\n moment(props.value).format(DATETIME_FORMAT_FOR_DATETIME_PICKERS),\n },\n {\n Header: `${LOCALIZATION_NOTIFICATION_TABLE_HEADERS_KEY}.audienceType`,\n accessor: 'audienceType',\n },\n {\n Header: `${LOCALIZATION_NOTIFICATION_TABLE_HEADERS_KEY}.audienceMembers`,\n accessor: 'audience',\n sortable: false,\n },\n {\n Header: `${LOCALIZATION_NOTIFICATION_TABLE_HEADERS_KEY}.userCount`,\n accessor: 'userCount',\n sortable: false,\n },\n];\n\nexport const BTN_EDIT = {\n key: 'editNotification',\n actions: 'manage',\n subject: 'MasterNotifications',\n tooltip: `${LOCALIZATION_NOTIFICATION_TABLE_ACTIONS_KEY}.edit`,\n intercomTarget: 'editNotificationButton',\n icon: Edit,\n};\n\nexport const BTN_DELETE = {\n key: 'deleteNotification',\n actions: 'manage',\n subject: 'MasterNotifications',\n tooltip: `${LOCALIZATION_NOTIFICATION_TABLE_ACTIONS_KEY}.delete`,\n intercomTarget: 'deleteNotificationButton',\n icon: DeleteOutlineOutlined,\n};\n\nexport const BUTTONS_CELL = {\n [GROUP_TYPE_QUEUED]: [BTN_EDIT, BTN_DELETE],\n};\n","export const DATETIME_FORMAT_FOR_DATETIME_PICKERS = 'MM/DD/YYYY hh:mm A';\n","import {\n CLEAR_CREATE_NOTIFICATION,\n CLEAR_NOTIFICATION_ERRORS,\n NOTIFICATION_REQUESTED,\n NOTIFICATION_SUCCEEDED,\n NOTIFICATIONS_FAILED,\n NOTIFICATIONS_REQUESTED,\n NOTIFICATIONS_SUCCEEDED,\n OPEN_CREATE_NOTIFICATION,\n SET_NOTIFICATION_COUNTS,\n UPDATE_NOTIFICATION_FAILED,\n UPDATE_NOTIFICATION_REQUESTED,\n UPDATE_NOTIFICATION_SUCCEEDED,\n USER_NOTIFICATIONS_REQUEST_FAILED,\n USER_NOTIFICATIONS_REQUEST_SUCCEEDED,\n USER_NOTIFICATIONS_REQUESTED,\n} from './actions';\nimport { GROUPS } from '../screens/NotificationsScreen/AdminNotificationsScreen/constants';\nimport { mergePaginatedResponse } from '../common/utils';\n\nconst initialState = [...GROUPS, 'notification'].reduce(\n (state, key) => ({\n ...state,\n [key]: {\n data: [],\n totalCount: 0,\n isLoading: false,\n errors: [],\n message: null,\n },\n }),\n {\n create: {\n subjectContentType: null,\n subjectContentID: null,\n subject: '',\n message: '',\n audienceType: null,\n audiences: [],\n iconUrl: null,\n },\n userNotifications: {\n loading: false,\n errors: [],\n notifications: [],\n counts: {\n NotificationCenter: 0,\n ActivityFeed: 0,\n Buzz: 0,\n Leaderboard: 0,\n Profile: 0,\n total: 0,\n },\n },\n },\n);\n\nexport default (state = initialState, action) => {\n const { type, payload = {} } = action;\n\n switch (type) {\n case NOTIFICATIONS_REQUESTED:\n return {\n ...state,\n [payload.group]: {\n ...state[payload.group],\n errors: [],\n isLoading: true,\n },\n };\n case NOTIFICATIONS_SUCCEEDED:\n return {\n ...state,\n [payload.group]: {\n ...state[payload.group],\n data: payload.notifications,\n totalCount: payload.totalCount,\n isLoading: false,\n },\n errors: payload.errors,\n };\n case NOTIFICATIONS_FAILED:\n return {\n ...state,\n [payload.group]: {\n ...state[payload.group],\n errors: payload.errors,\n isLoading: false,\n },\n errors: payload.errors,\n };\n\n case NOTIFICATION_REQUESTED:\n return {\n ...state,\n notification: {\n ...state.notification,\n errors: [],\n isLoading: true,\n },\n };\n case NOTIFICATION_SUCCEEDED:\n return {\n ...state,\n notification: {\n ...state.notification,\n data: payload.notification,\n isLoading: false,\n },\n };\n case UPDATE_NOTIFICATION_REQUESTED:\n return {\n ...state,\n notification: {\n ...state.notification,\n errors: [],\n errorStatus: null,\n isLoading: true,\n },\n };\n case UPDATE_NOTIFICATION_FAILED:\n return {\n ...state,\n notification: {\n ...state.notification,\n errors: payload.errors,\n errorStatus: payload.errorStatus,\n isLoading: false,\n },\n };\n case UPDATE_NOTIFICATION_SUCCEEDED:\n return {\n ...state,\n notification: {\n ...state.notification,\n errors: [],\n errorStatus: null,\n isLoading: false,\n message: payload,\n },\n };\n\n case CLEAR_NOTIFICATION_ERRORS:\n return {\n ...state,\n notification: {\n ...state.notification,\n errors: [],\n message: null,\n },\n };\n\n case OPEN_CREATE_NOTIFICATION: {\n return {\n ...state,\n create: {\n ...payload,\n },\n };\n }\n case CLEAR_CREATE_NOTIFICATION: {\n return {\n ...state,\n create: {\n subjectContentType: null,\n subjectContentID: null,\n subject: '',\n message: '',\n audienceType: null,\n audiences: [],\n iconUrl: null,\n },\n };\n }\n case USER_NOTIFICATIONS_REQUESTED:\n return {\n ...state,\n userNotifications: {\n ...state.userNotifications,\n errors: [],\n loading: true,\n },\n };\n case USER_NOTIFICATIONS_REQUEST_SUCCEEDED:\n return {\n ...state,\n userNotifications: {\n ...state.userNotifications,\n notifications: mergePaginatedResponse(\n state.userNotifications.notifications,\n payload.notifications,\n payload.skip,\n ),\n loading: false,\n },\n errors: payload.errors,\n };\n case USER_NOTIFICATIONS_REQUEST_FAILED:\n return {\n ...state,\n userNotifications: {\n ...state.userNotifications,\n errors: payload.errors,\n loading: false,\n },\n };\n case SET_NOTIFICATION_COUNTS:\n return {\n ...state,\n userNotifications: {\n ...state.userNotifications,\n counts: payload.counts,\n },\n };\n default:\n return state;\n }\n};\n","export const COMMUNITY_REQUESTED = 'COMMUNITY_REQUESTED';\nexport const COMMUNITY_REQUEST_SUCCEEDED = 'COMMUNITY_REQUEST_SUCCEEDED';\nexport const COMMUNITY_REQUEST_FAILED = 'COMMUNITY_REQUEST_FAILED';\n\nexport const UPLOAD_COMMUNITY_FILE_REQUESTED =\n 'UPLOAD_COMMUNITY_FILE_REQUESTED';\nexport const UPLOAD_COMMUNITY_FILE_REQUEST_SUCCEEDED =\n 'UPLOAD_COMMUNITY_FILE_REQUEST_SUCCEEDED';\nexport const UPLOAD_COMMUNITY_FILE_REQUEST_FAILED =\n 'UPLOAD_COMMUNITY_FILE_REQUEST_FAILED';\n\nexport const COMMUNITY_UPDATE_REQUESTED = 'COMMUNITY_UPDATE_REQUESTED';\nexport const COMMUNITY_UPDATE_REQUEST_SUCCEEDED =\n 'COMMUNITY_UPDATE_REQUEST_SUCCEEDED';\nexport const COMMUNITY_UPDATE_REQUEST_FAILED =\n 'COMMUNITY_UPDATE_REQUEST_FAILED';\n\nexport const ACCOUNT_PLAN_REQUESTED = 'ACCOUNT_PLAN_REQUESTED';\nexport const ACCOUNT_PLAN_REQUEST_SUCCEEDED = 'ACCOUNT_PLAN_REQUEST_SUCCEEDED';\nexport const ACCOUNT_PLAN_REQUEST_FAILED = 'ACCOUNT_PLAN_REQUEST_FAILED';\n\nexport const JOIN_COMMUNITY_REQUESTED = 'JOIN_COMMUNITY_REQUESTED';\nexport const JOIN_COMMUNITY_REQUEST_SUCCEEDED =\n 'JOIN_COMMUNITY_REQUEST_SUCCEEDED';\nexport const JOIN_COMMUNITY_REQUEST_FAILED = 'JOIN_COMMUNITY_REQUEST_FAILED';\nexport const CLEAR_COMMUNITY_ERRORS = 'CLEAR_JOIN_UNJOIN_ERRORS';\n\nexport const COMMUNITY_SEARCH_REQUESTED = 'COMMUNITY_SEARCH_REQUESTED';\nexport const COMMUNITY_SEARCH_REQUEST_SUCCEEDED =\n 'COMMUNITY_SEARCH_REQUEST_SUCCEEDED';\nexport const COMMUNITY_SEARCH_REQUEST_FAILED =\n 'COMMUNITY_SEARCH_REQUEST_FAILED';\n\nexport const UNJOIN_COMMUNITY_REQUESTED = 'UNJOIN_COMMUNITY_REQUESTED';\nexport const UNJOIN_COMMUNITY_REQUEST_SUCCEEDED =\n 'UNJOIN_COMMUNITY_REQUEST_SUCCEEDED';\nexport const UNJOIN_COMMUNITY_REQUEST_FAILED =\n 'UNJOIN_COMMUNITY_REQUEST_FAILED';\nexport const COMMUNITY_INVITE_LINK_REQUESTED =\n 'COMMUNITY_INVITE_LINK_REQUESTED';\nexport const COMMUNITY_INVITE_LINK_REQUEST_SUCCEEDED =\n 'COMMUNITY_INVITE_LINK_REQUEST_SUCCEEDED';\nexport const COMMUNITY_INVITE_LINK_REQUEST_FAILED =\n 'COMMUNITY_INVITE_LINK_REQUEST_FAILED';\n\nexport const CREATE_COMMUNITY_REQUESTED = 'CREATE_COMMUNITY_REQUESTED';\nexport const CREATE_COMMUNITY_REQUEST_SUCCEEDED =\n 'CREATE_COMMUNITY_REQUEST_SUCCEEDED';\nexport const CREATE_COMMUNITY_REQUEST_FAILED =\n 'CREATE_COMMUNITY_REQUEST_FAILED';\n\nexport const COMMUNITIES_REQUESTED = 'COMMUNITIES_REQUESTED';\nexport const COMMUNITIES_REQUEST_SUCCEEDED = 'COMMUNITIES_REQUEST_SUCCEEDED';\nexport const COMMUNITIES_REQUEST_FAILED = 'COMMUNITIES_REQUEST_FAILED';\n\nexport const COMMUNITY_SHARE_IMAGE_REQUESTED =\n 'COMMUNITY_SHARE_IMAGE_REQUESTED';\nexport const COMMUNITY_SHARE_IMAGE_REQUEST_SUCCEEDED =\n 'COMMUNITY_SHARE_IMAGE_REQUEST_SUCCEEDED';\nexport const COMMUNITY_SHARE_IMAGE_REQUEST_FAILED =\n 'COMMUNITY_SHARE_IMAGE_REQUEST_FAILED';\n\nexport const communityRequested = (communityId) => ({\n type: COMMUNITY_REQUESTED,\n payload: {\n communityId,\n },\n});\n\nexport const communityRequestSucceeded = (community) => ({\n type: COMMUNITY_REQUEST_SUCCEEDED,\n payload: {\n community,\n },\n});\n\nexport const communityRequestFailed = (errors) => ({\n type: COMMUNITY_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const communityUpdateRequested = (request) => ({\n type: COMMUNITY_UPDATE_REQUESTED,\n payload: {\n request,\n },\n});\n\nexport const communityUpdateRequestSucceeded = (response) => ({\n type: COMMUNITY_UPDATE_REQUEST_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const communityUpdateRequestFailed = (errors) => ({\n type: COMMUNITY_UPDATE_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const accountPlanDataRequested = () => ({\n type: ACCOUNT_PLAN_REQUESTED,\n});\n\nexport const accountPlanDataRequestSucceeded = (\n accountType,\n currentUsers,\n maxUsers,\n) => ({\n type: ACCOUNT_PLAN_REQUEST_SUCCEEDED,\n payload: {\n accountType,\n currentUsers,\n maxUsers,\n },\n});\n\nexport const accountPlanDataRequestFailed = (errors = []) => ({\n type: ACCOUNT_PLAN_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const communityInviteLinkRequested = (communityId) => ({\n type: COMMUNITY_INVITE_LINK_REQUESTED,\n payload: {\n communityId,\n },\n});\n\nexport const joinCommunityRequested = (communityId) => ({\n type: JOIN_COMMUNITY_REQUESTED,\n payload: {\n communityId,\n },\n});\n\nexport const joinCommunityRequestSucceeded = (response) => ({\n type: JOIN_COMMUNITY_REQUEST_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const joinCommunityRequestFailed = (errors) => ({\n type: JOIN_COMMUNITY_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const clearCommunityErrors = () => ({\n type: CLEAR_COMMUNITY_ERRORS,\n});\n\nexport const unjoinCommunityRequested = (communityId) => ({\n type: UNJOIN_COMMUNITY_REQUESTED,\n payload: {\n communityId,\n },\n});\n\nexport const unjoinCommunityRequestSucceeded = (response) => ({\n type: UNJOIN_COMMUNITY_REQUEST_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const unjoinCommunityRequestFailed = (errors) => ({\n type: UNJOIN_COMMUNITY_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const communityInviteLinkRequestSucceeded = (url) => ({\n type: COMMUNITY_INVITE_LINK_REQUEST_SUCCEEDED,\n payload: {\n url,\n },\n});\n\nexport const communityInviteLinkRequestFailed = (errors = []) => ({\n type: COMMUNITY_INVITE_LINK_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const createCommunityRequested = (communityId, requestBody) => ({\n type: CREATE_COMMUNITY_REQUESTED,\n payload: {\n communityId,\n requestBody,\n },\n});\n\nexport const createCommunityRequestSucceeded = (response) => ({\n type: CREATE_COMMUNITY_REQUEST_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const createCommunityRequestFailed = (errors) => ({\n type: CREATE_COMMUNITY_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const communitiesRequested = (options) => ({\n type: COMMUNITIES_REQUESTED,\n payload: {\n options,\n },\n});\n\nexport const communitiesRequestSucceeded = (communities) => ({\n type: COMMUNITIES_REQUEST_SUCCEEDED,\n payload: {\n communities,\n },\n});\n\nexport const communitiesRequestFailed = (errors) => ({\n type: COMMUNITIES_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const communitySearchRequested = (searchString) => ({\n type: COMMUNITY_SEARCH_REQUESTED,\n payload: { searchString },\n});\n\nexport const communitySearchRequestSucceeded = (communities) => ({\n type: COMMUNITY_SEARCH_REQUEST_SUCCEEDED,\n payload: { communities },\n});\n\nexport const communitySearchRequestFailed = (errors) => ({\n type: COMMUNITY_SEARCH_REQUEST_FAILED,\n payload: { errors },\n});\n\nexport const communityShareImageRequested = (communityId) => ({\n type: COMMUNITY_SHARE_IMAGE_REQUESTED,\n payload: { communityId },\n});\n\nexport const communityShareImageRequestSucceeded = (url) => ({\n type: COMMUNITY_SHARE_IMAGE_REQUEST_SUCCEEDED,\n payload: { url },\n});\n\nexport const communityShareImageRequestFailed = (errors) => ({\n type: COMMUNITY_SHARE_IMAGE_REQUEST_FAILED,\n payload: { errors },\n});\n\nexport const uploadCommunityFileRequested = (communityId, file) => ({\n type: UPLOAD_COMMUNITY_FILE_REQUESTED,\n payload: {\n communityId,\n file,\n },\n});\n\nexport const uploadCommunityFileRequestSucceeded = (response) => ({\n type: UPLOAD_COMMUNITY_FILE_REQUEST_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const uploadCommunityFileRequestFailed = (errors) => ({\n type: UPLOAD_COMMUNITY_FILE_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n","import {\n COMMUNITY_REQUEST_FAILED,\n COMMUNITY_REQUEST_SUCCEEDED,\n COMMUNITY_REQUESTED,\n COMMUNITY_UPDATE_REQUEST_FAILED,\n COMMUNITY_UPDATE_REQUEST_SUCCEEDED,\n COMMUNITY_UPDATE_REQUESTED,\n JOIN_COMMUNITY_REQUESTED,\n JOIN_COMMUNITY_REQUEST_SUCCEEDED,\n JOIN_COMMUNITY_REQUEST_FAILED,\n CLEAR_COMMUNITY_ERRORS,\n UNJOIN_COMMUNITY_REQUESTED,\n UNJOIN_COMMUNITY_REQUEST_SUCCEEDED,\n UNJOIN_COMMUNITY_REQUEST_FAILED,\n COMMUNITY_INVITE_LINK_REQUESTED,\n COMMUNITY_INVITE_LINK_REQUEST_SUCCEEDED,\n COMMUNITY_INVITE_LINK_REQUEST_FAILED,\n CREATE_COMMUNITY_REQUESTED,\n CREATE_COMMUNITY_REQUEST_SUCCEEDED,\n CREATE_COMMUNITY_REQUEST_FAILED,\n COMMUNITIES_REQUEST_FAILED,\n COMMUNITIES_REQUEST_SUCCEEDED,\n COMMUNITIES_REQUESTED,\n COMMUNITY_SEARCH_REQUESTED,\n COMMUNITY_SEARCH_REQUEST_SUCCEEDED,\n COMMUNITY_SEARCH_REQUEST_FAILED,\n COMMUNITY_SHARE_IMAGE_REQUESTED,\n COMMUNITY_SHARE_IMAGE_REQUEST_SUCCEEDED,\n COMMUNITY_SHARE_IMAGE_REQUEST_FAILED,\n UPLOAD_COMMUNITY_FILE_REQUESTED,\n UPLOAD_COMMUNITY_FILE_REQUEST_SUCCEEDED,\n UPLOAD_COMMUNITY_FILE_REQUEST_FAILED,\n} from './actions';\n\nconst initialState = {\n loading: false,\n errors: [],\n community: null,\n update: {\n loading: false,\n errors: [],\n result: null,\n },\n join: {\n loading: false,\n errors: [],\n response: null,\n },\n unjoin: {\n loading: false,\n errors: [],\n response: null,\n },\n create: {\n loading: false,\n errors: [],\n response: null,\n },\n communities: {\n loading: false,\n errors: [],\n communities: [],\n },\n search: {\n loading: false,\n errors: [],\n response: null,\n },\n inviteLink: {\n loading: false,\n errors: [],\n },\n shareImage: {\n loading: false,\n errors: [],\n url: '',\n },\n bulkJoin: {\n loading: false,\n errors: [],\n response: null,\n },\n url: '',\n};\n\nconst communityReducer = (state = initialState, action) => {\n const { type, payload = {} } = action;\n switch (type) {\n case COMMUNITY_REQUESTED:\n return {\n ...state,\n loading: true,\n };\n case COMMUNITY_REQUEST_SUCCEEDED:\n return {\n ...state,\n loading: false,\n errors: [],\n community: payload.community,\n };\n case COMMUNITY_REQUEST_FAILED:\n return {\n ...state,\n loading: false,\n errors: payload.errors,\n };\n case COMMUNITY_UPDATE_REQUESTED:\n return {\n ...state,\n update: {\n ...state.update,\n loading: true,\n },\n };\n case COMMUNITY_UPDATE_REQUEST_SUCCEEDED:\n return {\n ...state,\n update: {\n ...state.update,\n loading: false,\n errors: [],\n result: payload.response,\n },\n };\n case COMMUNITY_UPDATE_REQUEST_FAILED:\n return {\n ...state,\n update: {\n ...state.update,\n loading: false,\n errors: payload.errors,\n },\n };\n case JOIN_COMMUNITY_REQUESTED: {\n return {\n ...state,\n join: { ...state.join, loading: true, errors: [] },\n };\n }\n case JOIN_COMMUNITY_REQUEST_SUCCEEDED: {\n return {\n ...state,\n join: {\n ...state.join,\n loading: false,\n response: payload.response,\n },\n };\n }\n case JOIN_COMMUNITY_REQUEST_FAILED: {\n return {\n ...state,\n join: { ...state.join, loading: false, errors: payload.errors },\n };\n }\n case CLEAR_COMMUNITY_ERRORS: {\n return {\n ...state,\n errors: [],\n join: { ...state.join, errors: [] },\n unjoin: { ...state.unjoin, errors: [] },\n create: { ...state.create, errors: [] },\n communities: { ...state.communities, errors: [] },\n shareImage: { ...state.shareImage, errors: [] },\n inviteLink: { ...state.shareImage, errors: [] },\n bulkJoin: { ...state.bulkJoin, errors: [], response: null },\n };\n }\n case UNJOIN_COMMUNITY_REQUESTED: {\n return {\n ...state,\n unjoin: { ...state.unjoin, loading: true, errors: [] },\n };\n }\n case UNJOIN_COMMUNITY_REQUEST_SUCCEEDED: {\n return {\n ...state,\n unjoin: {\n ...state.unjoin,\n loading: false,\n response: payload.response,\n },\n };\n }\n case UNJOIN_COMMUNITY_REQUEST_FAILED: {\n return {\n ...state,\n unjoin: {\n ...state.unjoin,\n loading: false,\n errors: payload.errors,\n },\n };\n }\n case COMMUNITY_INVITE_LINK_REQUESTED:\n return {\n ...state,\n inviteLink: {\n loading: true,\n },\n };\n case COMMUNITY_INVITE_LINK_REQUEST_SUCCEEDED:\n return {\n ...state,\n inviteLink: {\n ...state.inviteLink,\n loading: false,\n },\n url: payload.url,\n };\n case COMMUNITY_INVITE_LINK_REQUEST_FAILED:\n return {\n ...state,\n inviteLink: {\n ...state.inviteLink,\n loading: false,\n errors: payload.errors,\n },\n };\n case CREATE_COMMUNITY_REQUESTED:\n return {\n ...state,\n create: {\n ...state.create,\n loading: true,\n },\n };\n case CREATE_COMMUNITY_REQUEST_SUCCEEDED:\n return {\n ...state,\n create: {\n ...state.create,\n loading: false,\n response: payload.response,\n },\n };\n case CREATE_COMMUNITY_REQUEST_FAILED:\n return {\n ...state,\n create: {\n ...state.create,\n loading: false,\n errors: payload.errors,\n },\n };\n case COMMUNITIES_REQUESTED:\n return {\n ...state,\n communities: {\n ...state.communities,\n loading: true,\n },\n };\n case COMMUNITIES_REQUEST_SUCCEEDED:\n return {\n ...state,\n communities: {\n ...state.communities,\n loading: false,\n communities: payload.communities,\n },\n };\n case COMMUNITIES_REQUEST_FAILED:\n return {\n ...state,\n communities: {\n ...state.communities,\n loading: false,\n errors: payload.errors,\n },\n };\n case COMMUNITY_SEARCH_REQUESTED:\n return {\n ...state,\n search: {\n ...state.search,\n isLoading: true,\n },\n };\n case COMMUNITY_SEARCH_REQUEST_SUCCEEDED:\n return {\n ...state,\n search: {\n ...state.search,\n isLoading: false,\n response: payload.communities,\n },\n };\n case COMMUNITY_SEARCH_REQUEST_FAILED:\n return {\n ...state,\n search: {\n ...state.search,\n isLoading: false,\n errors: payload.errors,\n },\n };\n case COMMUNITY_SHARE_IMAGE_REQUESTED:\n return {\n ...state,\n shareImage: {\n ...state.shareImage,\n loading: true,\n },\n };\n case COMMUNITY_SHARE_IMAGE_REQUEST_SUCCEEDED:\n return {\n ...state,\n shareImage: {\n ...state.shareImage,\n loading: false,\n url: payload.url,\n },\n };\n case COMMUNITY_SHARE_IMAGE_REQUEST_FAILED:\n return {\n ...state,\n shareImage: {\n ...state.shareImage,\n loading: false,\n errors: payload.errors,\n },\n };\n case UPLOAD_COMMUNITY_FILE_REQUESTED:\n return {\n ...state,\n bulkJoin: {\n ...state.bulkJoin,\n loading: true,\n },\n };\n case UPLOAD_COMMUNITY_FILE_REQUEST_SUCCEEDED:\n return {\n ...state,\n bulkJoin: {\n ...state.bulkJoin,\n loading: false,\n response: payload.response,\n },\n };\n case UPLOAD_COMMUNITY_FILE_REQUEST_FAILED:\n return {\n ...state,\n bulkJoin: {\n ...state.bulkJoin,\n loading: false,\n errors: payload.errors,\n },\n };\n default:\n return state;\n }\n};\n\nexport default communityReducer;\n","export const IMAGE_UPLOAD_REQUESTED = 'IMAGE_UPLOAD_REQUESTED';\nexport const IMAGE_UPLOAD_REQUEST_SUCCEEDED = 'IMAGE_UPLOAD_REQUEST_SUCCEEDED';\nexport const IMAGE_UPLOAD_REQUEST_FAILED = 'IMAGE_UPLOAD_REQUEST_FAILED';\nexport const CLEAR_UPLOADED_IMAGE = 'CLEAR_UPLOADED_IMAGE';\nexport const IMAGE_UPLOAD_CLEAR_ERRORS = 'IMAGE_UPLOAD_CLEAR_ERRORS';\n\nexport const imageUploadRequested = (request) => ({\n type: IMAGE_UPLOAD_REQUESTED,\n payload: request,\n});\n\nexport const imageUploadRequestSucceeded = (response) => ({\n type: IMAGE_UPLOAD_REQUEST_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const imageUploadRequestFailed = (errors) => ({\n type: IMAGE_UPLOAD_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const clearUploadedImage = () => ({\n type: CLEAR_UPLOADED_IMAGE,\n});\n\nexport const imageUploadClearErrors = () => ({\n type: IMAGE_UPLOAD_CLEAR_ERRORS,\n});\n","import {\n IMAGE_UPLOAD_REQUEST_FAILED,\n IMAGE_UPLOAD_REQUEST_SUCCEEDED,\n IMAGE_UPLOAD_REQUESTED,\n CLEAR_UPLOADED_IMAGE,\n} from './actions';\n\nconst initialState = {\n imageUploadResponse: null,\n isImageUploadRequestPending: false,\n imageUploadErrors: [],\n uploadId: '',\n};\n\nconst imageReducer = (state = initialState, action) => {\n const { type, payload = {} } = action;\n switch (type) {\n case IMAGE_UPLOAD_REQUESTED:\n return {\n ...state,\n isImageUploadRequestPending: true,\n uploadId: payload.id,\n };\n case IMAGE_UPLOAD_REQUEST_SUCCEEDED:\n return {\n ...state,\n imageUploadResponse: payload.response,\n isImageUploadRequestPending: false,\n imageUploadErrors: [],\n };\n case IMAGE_UPLOAD_REQUEST_FAILED:\n return {\n ...state,\n isImageUploadRequestPending: false,\n imageUploadErrors: payload.errors,\n };\n case CLEAR_UPLOADED_IMAGE:\n return { ...state, imageUploadResponse: null, uploadId: '' };\n default:\n return state;\n }\n};\n\nexport default imageReducer;\n","export const FLAGGED_CONTENT_REQUESTED = 'FLAGGED_CONTENT_REQUESTED';\nexport const FLAGGED_CONTENT_REQUEST_SUCCEEDED =\n 'FLAGGED_CONTENT_REQUEST_SUCCEEDED';\nexport const FLAGGED_CONTENT_REQUEST_FAILED = 'FLAGGED_CONTENT_REQUEST_FAILED';\n\nexport const FLAG_EXCLUDE_REQUESTED = 'FLAG_EXCLUDE_REQUESTED';\nexport const FLAG_EXCLUDE_REQUEST_SUCCEEDED = 'FLAG_EXCLUDE_REQUEST_SUCCEEDED';\nexport const FLAG_EXCLUDE_REQUEST_FAILED = 'FLAG_EXCLUDE_REQUEST_FAILED';\n\nexport const FLAG_IGNORE_REQUESTED = 'FLAG_IGNORE_REQUESTED';\nexport const FLAG_IGNORE_REQUEST_SUCCEEDED = 'FLAG_IGNORE_REQUEST_SUCCEEDED';\nexport const FLAG_IGNORE_REQUEST_FAILED = 'FLAG_IGNORE_REQUEST_FAILED';\n\nexport const FLAG_REPORT_REQUESTED = 'FLAG_REPORT_REQUESTED';\nexport const FLAG_REPORT_REQUEST_SUCCEEDED = 'FLAG_REPORT_REQUEST_SUCCEEDED';\nexport const FLAG_REPORT_REQUEST_FAILED = 'FLAG_REPORT_REQUEST_FAILED';\nexport const FLAG_REPORT_CLEAR_MESSAGES = 'FLAG_REPORT_CLEAR_MESSAGES';\n\nexport const flaggedContentRequested = (request) => ({\n type: FLAGGED_CONTENT_REQUESTED,\n payload: {\n request,\n },\n});\n\nexport const flaggedContentRequestSucceeded = (response) => ({\n type: FLAGGED_CONTENT_REQUEST_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const flaggedContentRequestFailed = (errors) => ({\n type: FLAGGED_CONTENT_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const flagExcludeRequested = (request) => ({\n type: FLAG_EXCLUDE_REQUESTED,\n payload: {\n request,\n },\n});\n\nexport const flagExcludeRequestSucceeded = (response) => ({\n type: FLAG_EXCLUDE_REQUEST_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const flagExcludeRequestFailed = (errors) => ({\n type: FLAG_EXCLUDE_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const flagIgnoreRequested = (request) => ({\n type: FLAG_IGNORE_REQUESTED,\n payload: {\n request,\n },\n});\n\nexport const flagIgnoreRequestSucceeded = (response) => ({\n type: FLAG_IGNORE_REQUEST_SUCCEEDED,\n payload: {\n response,\n },\n});\n\nexport const flagIgnoreRequestFailed = (errors) => ({\n type: FLAG_IGNORE_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const activityReportRequested = (contentId, commentId) => ({\n type: FLAG_REPORT_REQUESTED,\n payload: {\n contentId,\n commentId,\n },\n});\n\nexport const profileReportRequested = (contentId, commentId) => ({\n type: FLAG_REPORT_REQUESTED,\n payload: {\n contentId,\n commentId,\n type: 'user',\n },\n});\n\nexport const activityReportRequestSucceeded = (contentId) => ({\n type: FLAG_REPORT_REQUEST_SUCCEEDED,\n payload: {\n contentId,\n },\n});\nexport const activityReportRequestFailed = (errors) => ({\n type: FLAG_REPORT_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const clearFlagMessages = () => ({\n type: FLAG_REPORT_CLEAR_MESSAGES,\n});\n","import {\n FLAG_EXCLUDE_REQUEST_FAILED,\n FLAG_EXCLUDE_REQUEST_SUCCEEDED,\n FLAG_EXCLUDE_REQUESTED,\n FLAG_IGNORE_REQUEST_FAILED,\n FLAG_IGNORE_REQUEST_SUCCEEDED,\n FLAG_IGNORE_REQUESTED,\n FLAGGED_CONTENT_REQUEST_FAILED,\n FLAGGED_CONTENT_REQUEST_SUCCEEDED,\n FLAGGED_CONTENT_REQUESTED,\n FLAG_REPORT_REQUESTED,\n FLAG_REPORT_REQUEST_SUCCEEDED,\n FLAG_REPORT_REQUEST_FAILED,\n FLAG_REPORT_CLEAR_MESSAGES,\n} from './actions';\nimport i18n from 'i18next';\n\nconst initialState = {\n loading: false,\n errors: [],\n messages: [],\n content: null,\n total: null,\n reportPost: {\n contentId: null,\n },\n};\n\nconst flagsReducer = (state = initialState, action) => {\n const { type, payload = {} } = action;\n switch (type) {\n case FLAG_EXCLUDE_REQUESTED:\n case FLAG_IGNORE_REQUESTED:\n case FLAGGED_CONTENT_REQUESTED:\n return {\n ...state,\n loading: true,\n };\n case FLAGGED_CONTENT_REQUEST_SUCCEEDED:\n return {\n ...state,\n loading: false,\n errors: [],\n content: payload.response.content,\n total: payload.response.total,\n };\n case FLAG_IGNORE_REQUEST_SUCCEEDED:\n case FLAG_EXCLUDE_REQUEST_SUCCEEDED:\n return {\n ...state,\n loading: false,\n errors: [],\n };\n case FLAGGED_CONTENT_REQUEST_FAILED:\n case FLAG_EXCLUDE_REQUEST_FAILED:\n case FLAG_IGNORE_REQUEST_FAILED:\n return {\n ...state,\n loading: false,\n errors: payload.errors,\n };\n case FLAG_REPORT_REQUESTED:\n return {\n ...state,\n reportPost: {\n contentId: payload.contentId,\n },\n };\n case FLAG_REPORT_REQUEST_FAILED:\n return {\n ...state,\n errors: payload.errors,\n reportPost: {\n contentId: null,\n },\n };\n case FLAG_REPORT_REQUEST_SUCCEEDED:\n return {\n ...state,\n reportPost: {\n contentId: null,\n },\n messages: [i18n.t('activitiesPage.addFlagSuccess')],\n };\n case FLAG_REPORT_CLEAR_MESSAGES:\n return {\n ...state,\n messages: [],\n errors: [],\n };\n default:\n return state;\n }\n};\n\nexport default flagsReducer;\n","export const SAVE_DRAFT_REQUESTED = 'SAVE_DRAFT_REQUESTED';\nexport const SAVE_DRAFT_SUCCEEDED = 'SAVE_DRAFT_SUCCEEDED';\nexport const SAVE_DRAFT_FAILED = 'SAVE_DRAFT_FAILED';\nexport const CLEAR_SAVE_ERRORS = 'CLEAR_SAVE_ERRORS';\n\nexport const saveDraftRequested = (request) => ({\n type: SAVE_DRAFT_REQUESTED,\n payload: request,\n});\n\nexport const saveDraftSucceeded = (publish) => ({\n type: SAVE_DRAFT_SUCCEEDED,\n payload: {\n publish: publish,\n },\n});\n\nexport const saveDraftFailed = (errors) => ({\n type: SAVE_DRAFT_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const clearSaveErrors = () => ({\n type: CLEAR_SAVE_ERRORS,\n});\n","import {\n SAVE_DRAFT_REQUESTED,\n SAVE_DRAFT_FAILED,\n SAVE_DRAFT_SUCCEEDED,\n CLEAR_SAVE_ERRORS,\n} from './actions';\n\nexport const initialState = {\n saveInProgress: false,\n saveSuccessful: false,\n publish: false,\n errors: [],\n};\n\nexport default (state = initialState, action) => {\n const { type, payload = {} } = action;\n switch (type) {\n case SAVE_DRAFT_REQUESTED: {\n return {\n ...state,\n saveInProgress: true,\n saveSuccessful: false,\n errors: [],\n };\n }\n case SAVE_DRAFT_SUCCEEDED: {\n return {\n ...state,\n publish: payload.publish,\n saveInProgress: false,\n saveSuccessful: true,\n };\n }\n case SAVE_DRAFT_FAILED: {\n return {\n ...state,\n ...payload,\n saveInProgress: false,\n saveSuccessful: false,\n };\n }\n case CLEAR_SAVE_ERRORS: {\n return {\n ...state,\n errors: [],\n saveSuccessful: false,\n };\n }\n default: {\n return state;\n }\n }\n};\n","export const THEMES_REQUESTED = 'THEMES_REQUESTED';\nexport const THEMES_REQUEST_SUCCEEDED = 'THEMES_REQUEST_SUCCEEDED';\nexport const THEMES_REQUEST_FAILED = 'THEMES_REQUEST_FAILED';\n\nexport const THEMES_UPDATE_REQUESTED = 'THEMES_UPDATE_REQUESTED';\nexport const THEMES_UPDATE_REQUEST_SUCCEEDED =\n 'THEMES_UPDATE_REQUEST_SUCCEEDED';\nexport const THEMES_UPDATE_REQUEST_FAILED = 'THEMES_UPDATE_REQUEST_FAILED';\n\nexport const CLEAR_THEMES_ERRORS = 'CLEAR_THEMES_ERRORS';\n\nexport const themesRequested = (communityId, includeCategories = false) => ({\n type: THEMES_REQUESTED,\n payload: {\n communityId,\n includeCategories,\n },\n});\n\nexport const themesRequestSucceeded = (themes) => ({\n type: THEMES_REQUEST_SUCCEEDED,\n payload: {\n themes,\n },\n});\n\nexport const themesRequestFailed = (errors) => ({\n type: THEMES_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const themesUpdateRequested = (\n themeIds,\n orgId,\n nextLocation = null,\n) => ({\n type: THEMES_UPDATE_REQUESTED,\n payload: {\n themeIds,\n orgId,\n nextLocation,\n },\n});\n\nexport const themesUpdateRequestSucceeded = (themes) => ({\n type: THEMES_UPDATE_REQUEST_SUCCEEDED,\n payload: {\n themes,\n },\n});\n\nexport const themesUpdateRequestFailed = (errors) => ({\n type: THEMES_UPDATE_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const clearThemesErrors = () => ({\n type: CLEAR_THEMES_ERRORS,\n});\n","import {\n CLEAR_THEMES_ERRORS,\n THEMES_REQUEST_FAILED,\n THEMES_REQUEST_SUCCEEDED,\n THEMES_REQUESTED,\n THEMES_UPDATE_REQUEST_FAILED,\n THEMES_UPDATE_REQUEST_SUCCEEDED,\n THEMES_UPDATE_REQUESTED,\n} from './actions';\n\nconst initialState = {\n themes: {\n loading: false,\n errors: [],\n themes: [],\n },\n update: {\n loading: false,\n errors: [],\n },\n};\n\nconst themesReducer = (state = initialState, action) => {\n const { type, payload = {} } = action;\n switch (type) {\n case THEMES_REQUESTED:\n return {\n ...state,\n themes: {\n ...state.themes,\n loading: true,\n },\n };\n case THEMES_REQUEST_SUCCEEDED:\n return {\n ...state,\n themes: {\n ...state.themes,\n loading: false,\n errors: [],\n themes: payload.themes,\n },\n };\n case THEMES_REQUEST_FAILED:\n return {\n ...state,\n themes: {\n ...state.themes,\n loading: false,\n errors: payload.errors,\n },\n };\n case THEMES_UPDATE_REQUESTED:\n return {\n ...state,\n update: {\n ...state.update,\n loading: true,\n },\n };\n case THEMES_UPDATE_REQUEST_SUCCEEDED:\n return {\n ...state,\n themes: {\n ...state.themes,\n themes: payload.themes,\n },\n update: {\n ...state.update,\n loading: false,\n errors: [],\n },\n };\n case THEMES_UPDATE_REQUEST_FAILED:\n return {\n ...state,\n update: {\n ...state.update,\n loading: false,\n errors: payload.errors,\n },\n };\n case CLEAR_THEMES_ERRORS:\n return {\n ...state,\n update: {\n ...state.update,\n errors: [],\n },\n themes: {\n ...state.themes,\n errors: [],\n },\n };\n default:\n return state;\n }\n};\n\nexport default themesReducer;\n","export const SET_ACTION_DUPLICATION_COMMUNITIES =\n 'SET_ACTION_DUPLICATION_COMMUNITIES';\n\nexport const SLACK_INTEGRATION_REQUESTED = 'SLACK_INTEGRATION_REQUESTED';\nexport const SLACK_INTEGRATION_REMOVE_REQUESTED =\n 'SLACK_INTEGRATION_REMOVE_REQUESTED';\nexport const INTEGRATIONS_REQUESTED = 'INTEGRATIONS_REQUESTED';\nexport const INTEGRATIONS_REQUEST_SUCCEEDED = 'INTEGRATIONS_REQUEST_SUCCEEDED';\nexport const INTEGRATIONS_REQUEST_FAILED = 'INTEGRATIONS_REQUEST_FAILED';\n\nexport const OIDC_INTEGRATION_REQUESTED = 'OIDC_INTEGRATION_REQUESTED';\n\nexport const OIDC_INTEGRATION_REMOVE_REQUESTED =\n 'OIDC_INTEGRATION_REMOVE_REQUESTED';\n\nexport const CLEAR_SETTINGS_RESPONSE = 'CLEAR_SETTINGS_RESPONSE';\n\nexport const setActionDuplicationCommunities = (communities) => ({\n type: SET_ACTION_DUPLICATION_COMMUNITIES,\n payload: {\n communities,\n },\n});\n\nexport const requestSlackIntegration = (code) => ({\n type: SLACK_INTEGRATION_REQUESTED,\n payload: {\n code,\n },\n});\n\nexport const requestOIDCIntegration = (\n accessToken,\n refreshToken,\n authorizationCode = '',\n codeVerifier = '',\n) => ({\n type: OIDC_INTEGRATION_REQUESTED,\n payload: {\n accessToken,\n refreshToken,\n authorizationCode,\n codeVerifier,\n },\n});\n\nexport const requestOIDCIntegrationRemove = (authType) => ({\n type: OIDC_INTEGRATION_REMOVE_REQUESTED,\n payload: {\n authType,\n },\n});\n\nexport const requestSlackIntegrationRemove = () => ({\n type: SLACK_INTEGRATION_REMOVE_REQUESTED,\n});\n\nexport const requestIntegrations = () => ({\n type: INTEGRATIONS_REQUESTED,\n});\n\nexport const integrationsRequestFailed = (errors) => ({\n type: INTEGRATIONS_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const integrationsRequestSucceeded = (\n integrations,\n responseMessage,\n) => ({\n type: INTEGRATIONS_REQUEST_SUCCEEDED,\n payload: {\n integrations,\n responseMessage,\n },\n});\n\nexport const clearResponse = () => ({\n type: CLEAR_SETTINGS_RESPONSE,\n});\n","import {\n CLEAR_SETTINGS_RESPONSE,\n INTEGRATIONS_REQUEST_FAILED,\n INTEGRATIONS_REQUEST_SUCCEEDED,\n INTEGRATIONS_REQUESTED,\n OIDC_INTEGRATION_REMOVE_REQUESTED,\n SET_ACTION_DUPLICATION_COMMUNITIES,\n} from './actions';\nimport { LOGOUT_REQUESTED } from '../../auth/actions';\nimport { SET_ACTIVE_COMMUNITY } from '../../user/actions';\n\nconst initialState = {\n actionDuplicationCommunities: [],\n loading: false,\n errors: [],\n response: [],\n integrations: {\n slack: null,\n oidc: [],\n },\n isAccountUpgradeNotificationVisible: true,\n};\n\nconst settingsReducer = (state = initialState, action) => {\n const { type, payload = {} } = action;\n switch (type) {\n case SET_ACTION_DUPLICATION_COMMUNITIES:\n return {\n ...state,\n actionDuplicationCommunities: payload.communities,\n };\n case LOGOUT_REQUESTED:\n case SET_ACTIVE_COMMUNITY:\n return initialState;\n case INTEGRATIONS_REQUESTED:\n case OIDC_INTEGRATION_REMOVE_REQUESTED:\n return {\n ...state,\n loading: true,\n };\n case INTEGRATIONS_REQUEST_FAILED:\n return {\n ...state,\n loading: false,\n errors: payload.errors,\n };\n case INTEGRATIONS_REQUEST_SUCCEEDED:\n return {\n ...state,\n loading: false,\n response: payload.responseMessage,\n integrations: payload.integrations,\n };\n case CLEAR_SETTINGS_RESPONSE:\n return {\n ...state,\n errors: [],\n response: [],\n };\n default:\n return state;\n }\n};\n\nexport default settingsReducer;\n","import { CLEAR_QUEUED_DEEP_LINK, QUEUE_DEEP_LINK } from './actions';\n\nexport const deepLinksInitialState = {\n queuedDeepLinkPath: null,\n};\n\nexport default function deepLinksReducer(\n state = deepLinksInitialState,\n action,\n) {\n const { type, payload = {} } = action;\n switch (type) {\n case QUEUE_DEEP_LINK:\n return {\n ...state,\n queuedDeepLinkPath: payload.deepLinkPath,\n };\n case CLEAR_QUEUED_DEEP_LINK:\n return {\n ...state,\n queuedDeepLinkPath: null,\n };\n default:\n return state;\n }\n}\n","export const INVITE_USERS_REQUESTED = 'INVITE_USERS_REQUESTED';\nexport const INVITE_USERS_REQUEST_SUCCEEDED = 'INVITE_USERS_REQUEST_SUCCEEDED';\nexport const INVITE_USERS_REQUEST_FAILED = 'INVITE_USERS_REQUEST_FAILED';\nexport const INVITE_USERS_RESET = 'INVITE_USERS_RESET';\n\nexport const inviteUsersRequested = (communityId, invites) => ({\n type: INVITE_USERS_REQUESTED,\n payload: {\n invites,\n communityId,\n },\n});\n\nexport const inviteUsersRequestSucceeded = () => ({\n type: INVITE_USERS_REQUEST_SUCCEEDED,\n});\n\nexport const inviteUsersRequestFailed = (errors = []) => ({\n type: INVITE_USERS_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const inviteUsersReset = () => ({\n type: INVITE_USERS_RESET,\n});\n","import {\n INVITE_USERS_REQUEST_FAILED,\n INVITE_USERS_REQUEST_SUCCEEDED,\n INVITE_USERS_REQUESTED,\n INVITE_USERS_RESET,\n} from './actions';\nimport i18n from '../../localization/i18n';\n\nconst initialState = {\n loading: false,\n success: false,\n failure: false,\n errors: [],\n messages: [],\n};\n\nexport default function authReducer(state = initialState, action) {\n const { type, payload: { errors = [] } = {} } = action;\n\n switch (type) {\n case INVITE_USERS_REQUESTED: {\n return {\n ...state,\n loading: true,\n errors: [],\n messages: [],\n failure: false,\n success: false,\n };\n }\n case INVITE_USERS_REQUEST_SUCCEEDED: {\n return {\n ...state,\n success: true,\n messages: [i18n.t('signUp.inviteSucceeded')],\n errors: [],\n loading: false,\n };\n }\n case INVITE_USERS_REQUEST_FAILED: {\n return {\n ...state,\n loading: false,\n errors: errors,\n success: false,\n };\n }\n case INVITE_USERS_RESET: {\n return {\n ...initialState,\n };\n }\n default: {\n return state;\n }\n }\n}\n","// The feeds that a user can select to filter\nexport const ACTIVITIES_FEED_TYPE_TRENDING = 'trending';\nexport const ACTIVITIES_FEED_TYPE_FOLLOWING = 'following';\nexport const ACTIVITIES_FEED_TYPE_RECENT = 'recent';\n\n// The feeds that are filter automatically by the platform (ie. viewing a challenge page)\nexport const ACTIVITIES_FEED_TYPE_CHALLENGE = 'challenge';\nexport const ACTIVITIES_FEED_TYPE_TEAM = 'team';\nexport const ACTIVITIES_FEED_TYPE_USER = 'user';\n\n// This is the type of feed we will default to for filtering purposes\nexport const DEFAULT_ACTIVITY_FEED_TYPE = ACTIVITIES_FEED_TYPE_TRENDING;\n\n// All the types of feed the user is allowed to filter through\nexport const ACTIVITY_FEED_SUPPORTED_TYPES = [ACTIVITIES_FEED_TYPE_TRENDING];\n","import {\n ACTIVITY_ADD_COMMENT_REQUEST_FAILED,\n ACTIVITY_ADD_COMMENT_REQUEST_SUCCEEDED,\n ACTIVITY_ADD_COMMENT_REQUESTED,\n ACTIVITY_CLEAR_ERRORS,\n ACTIVITY_DATA_REQUEST_FAILED,\n ACTIVITY_DATA_REQUEST_SUCCEEDED,\n ACTIVITY_DATA_REQUESTED,\n ACTIVITY_DETAIL_REQUEST_FAILED,\n ACTIVITY_DETAIL_REQUEST_SUCCEEDED,\n ACTIVITY_DETAIL_REQUESTED,\n ACTIVITY_LIKE_REQUEST_FAILED,\n ACTIVITY_LIKE_REQUEST_SUCCEEDED,\n ACTIVITY_LIKE_REQUESTED,\n ACTIVITY_SHARE_URL_REQUEST_FAILED,\n ACTIVITY_SHARE_URL_REQUEST_SUCCEEDED,\n ACTIVITY_SHARE_URL_REQUESTED,\n CLEAR_ACTIVITIES,\n} from './actions';\nimport { mergeItemById, mergePaginatedResponse } from '../common/utils';\nimport {\n ACTIVITIES_FEED_TYPE_CHALLENGE,\n ACTIVITIES_FEED_TYPE_FOLLOWING,\n ACTIVITIES_FEED_TYPE_TEAM,\n ACTIVITIES_FEED_TYPE_TRENDING,\n ACTIVITIES_FEED_TYPE_USER,\n} from './constants';\n\nexport const initialState = {\n activities: {\n [ACTIVITIES_FEED_TYPE_TRENDING]: {\n activities: [],\n loading: false,\n },\n [ACTIVITIES_FEED_TYPE_FOLLOWING]: {\n activities: [],\n loading: false,\n },\n [ACTIVITIES_FEED_TYPE_CHALLENGE]: {\n activities: [],\n loading: false,\n },\n [ACTIVITIES_FEED_TYPE_TEAM]: {\n activities: [],\n loading: false,\n },\n [ACTIVITIES_FEED_TYPE_USER]: {\n activities: [],\n loading: false,\n },\n },\n errors: [],\n messages: [],\n activityDetail: {\n loading: false,\n activity: null,\n errors: [],\n },\n likePost: {\n activityId: null,\n },\n addComment: {\n activityId: null,\n },\n shareURL: {\n activityId: null,\n },\n};\n\n/**\n * Merge the updated activity into all of the activity lists\n * that we currently have in the state\n * @param activities current state.activities\n * @param activity The activity to merge\n * @returns {string} The new state.activities\n */\nconst mergeActivityState = (activities, activity) => {\n return Object.keys(activities)?.reduce((a, key) => {\n a[key].activities = mergeItemById(a[key].activities, activity);\n return a;\n }, activities);\n};\n\nexport default function activitiesReducer(state = initialState, action) {\n const { type, payload = {} } = action;\n switch (type) {\n case ACTIVITY_DATA_REQUESTED:\n return {\n ...state,\n activities: {\n ...state.activities,\n [payload.activitiesType]: {\n ...state.activities[payload.activitiesType],\n loading: true,\n },\n },\n };\n case ACTIVITY_DATA_REQUEST_SUCCEEDED:\n return {\n ...state,\n loading: false,\n activities: {\n ...state.activities,\n [payload.activitiesType]: {\n loading: false,\n activities: mergePaginatedResponse(\n state.activities[payload.activitiesType].activities,\n payload.newActivityData,\n payload.skip,\n ),\n },\n },\n };\n case ACTIVITY_DATA_REQUEST_FAILED:\n return {\n ...state,\n activities: {\n ...state.activities,\n [payload.activitiesType]: {\n ...state.activities[payload.activitiesType],\n loading: false,\n },\n },\n errors: payload.errors,\n };\n case ACTIVITY_DETAIL_REQUESTED:\n return {\n ...state,\n activityDetail: {\n ...state.activityDetail,\n errors: [],\n loading: true,\n activity: null,\n },\n };\n case ACTIVITY_DETAIL_REQUEST_SUCCEEDED:\n return {\n ...state,\n activityDetail: {\n ...state.activityDetail,\n activity: payload.activity,\n errors: [],\n loading: false,\n },\n };\n case ACTIVITY_DETAIL_REQUEST_FAILED:\n return {\n ...state,\n activityDetail: {\n ...state.activityDetail,\n loading: false,\n errors: payload.errors,\n },\n };\n case ACTIVITY_SHARE_URL_REQUESTED:\n return {\n ...state,\n shareURL: {\n ...state.shareURL,\n activityId: payload.activityId,\n },\n };\n case ACTIVITY_SHARE_URL_REQUEST_SUCCEEDED: {\n const activity = Object.values(state.activities)\n .flatMap((activities) => activities.activities)\n .find((activity) => activity?.id === payload.activityId);\n if (activity) {\n activity.shareURL = payload.url;\n return {\n ...state,\n activities: mergeActivityState(state.activities, activity),\n shareURL: {\n ...state.shareURL,\n activityId: null,\n },\n };\n }\n return {\n ...state,\n shareURL: {\n ...state.shareURL,\n activityId: null,\n },\n };\n }\n case ACTIVITY_SHARE_URL_REQUEST_FAILED:\n return {\n ...state,\n errors: payload.errors,\n shareURL: {\n ...state.shareURL,\n activityId: null,\n },\n };\n case ACTIVITY_LIKE_REQUESTED:\n return {\n ...state,\n likePost: {\n ...state.likePost,\n activityId: payload.activityId,\n },\n };\n case ACTIVITY_LIKE_REQUEST_SUCCEEDED:\n return {\n ...state,\n activities: mergeActivityState(\n state.activities,\n payload.activity,\n ),\n likePost: {\n ...state.likePost,\n activityId: null,\n },\n activityDetail: {\n ...state.activityDetail,\n activity: payload.activity,\n },\n };\n case ACTIVITY_LIKE_REQUEST_FAILED:\n return {\n ...state,\n errors: payload.errors,\n likePost: {\n ...state.likePost,\n activityId: null,\n },\n };\n case ACTIVITY_ADD_COMMENT_REQUESTED:\n return {\n ...state,\n addComment: {\n ...state.addComment,\n activityId: payload.activityId,\n },\n };\n case ACTIVITY_ADD_COMMENT_REQUEST_SUCCEEDED:\n return {\n ...state,\n activities: mergeActivityState(\n state.activities,\n payload.activity,\n ),\n addComment: {\n ...state.addComment,\n activityId: null,\n },\n activityDetail: {\n ...state.activityDetail,\n activity: payload.activity,\n },\n };\n case ACTIVITY_ADD_COMMENT_REQUEST_FAILED:\n return {\n ...state,\n errors: payload.errors,\n addComment: {\n ...state.addComment,\n activityId: null,\n },\n };\n case ACTIVITY_CLEAR_ERRORS:\n return {\n ...state,\n errors: [],\n messages: [],\n };\n case CLEAR_ACTIVITIES: {\n return {\n ...state,\n activities: {\n ...state.activities,\n [payload.activitiesType]: {\n activities: [],\n loading: false,\n },\n },\n };\n }\n default:\n return state;\n }\n}\n","export const SUBSCRIPTION_REQUESTED = 'SUBSCRIPTION_REQUESTED';\nexport const SUBSCRIPTION_REQUEST_SUCCEEDED = 'SUBSCRIPTION_REQUEST_SUCCEEDED';\nexport const SUBSCRIPTION_REQUEST_FAILED = 'SUBSCRIPTION_REQUEST_FAILED';\n\nexport const RETRIEVE_STRIPE_PLAN_ID = 'RETRIEVE_STRIPE_PLAN_ID';\n\nexport const SUBSCRIPTION_SESSION_REQUESTED = 'SUBSCRIPTION_SESSION_REQUESTED';\nexport const SUBSCRIPTION_SESSION_REQUEST_SUCCEEDED =\n 'SUBSCRIPTION_SESSION_REQUEST_SUCCEEDED';\nexport const SUBSCRIPTION_SESSION_REQUEST_FAILED =\n 'SUBSCRIPTION_SESSION_REQUEST_FAILED';\nexport const SUBSCRIPTION_SESSION_CLEAR_ERRORS =\n 'SUBSCRIPTION_SESSION_CLEAR_ERRORS';\n\nexport const SUBSCRIPTION_RECORDS_REQUESTED = 'SUBSCRIPTION_RECORDS_REQUESTED';\nexport const SUBSCRIPTION_RECORDS_REQUEST_SUCCEEDED =\n 'SUBSCRIPTION_RECORDS_REQUEST_SUCCEEDED';\nexport const SUBSCRIPTION_RECORDS_REQUEST_FAILED =\n 'SUBSCRIPTION_RECORDS_REQUEST_FAILED';\n\nexport const SUBSCRIPTION_TIERS_REQUESTED = 'SUBSCRIPTION_TIERS_REQUESTED';\nexport const SUBSCRIPTION_TIERS_REQUEST_SUCCEEDED =\n 'SUBSCRIPTION_TIERS_REQUEST_SUCCEEDED';\nexport const SUBSCRIPTION_TIERS_REQUEST_FAILED =\n 'SUBSCRIPTION_TIERS_REQUEST_FAILED';\n\nexport const SUBSCRIPTION_VERIFICATION_REQUESTED =\n 'SUBSCRIPTION_VERIFICATION_REQUESTED';\nexport const SUBSCRIPTION_VERIFICATION_REQUEST_SUCCEEDED =\n 'SUBSCRIPTION_VERIFICATION_REQUEST_SUCCEEDED';\nexport const SUBSCRIPTION_VERIFICATION_REQUEST_FAILED =\n 'SUBSCRIPTION_VERIFICATION_REQUEST_FAILED';\n\nexport const SUBSCRIPTION_MANAGEMENT_LINK_REQUESTED =\n 'SUBSCRIPTION_MANAGEMENT_LINK_REQUESTED';\nexport const SUBSCRIPTION_MANAGEMENT_LINK_REQUEST_SUCCEEDED =\n 'SUBSCRIPTION_MANAGEMENT_LINK_REQUEST_SUCCEEDED';\nexport const SUBSCRIPTION_MANAGEMENT_LINK_REQUEST_FAILED =\n 'SUBSCRIPTION_MANAGEMENT_LINK_REQUEST_FAILED';\n\nexport const subscriptionRequested = (request) => ({\n type: SUBSCRIPTION_REQUESTED,\n payload: request,\n});\n\nexport const subscriptionRequestSucceeded = (currentSubscription) => ({\n type: SUBSCRIPTION_REQUEST_SUCCEEDED,\n payload: { currentSubscription },\n});\n\nexport const subscriptionRequestFailed = (errors = []) => ({\n type: SUBSCRIPTION_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const subscriptionRecordsRequested = ({ groupId }) => ({\n type: SUBSCRIPTION_RECORDS_REQUESTED,\n payload: {\n groupId,\n },\n});\n\nexport const subscriptionRecordsRequestSucceeded = (records) => ({\n type: SUBSCRIPTION_RECORDS_REQUEST_SUCCEEDED,\n payload: {\n records: records,\n },\n});\n\nexport const subscriptionRecordsRequestFailed = (errors) => ({\n type: SUBSCRIPTION_RECORDS_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const subscriptionTiersRequested = () => ({\n type: SUBSCRIPTION_TIERS_REQUESTED,\n});\n\nexport const subscriptionTiersRequestSucceeded = (tiers) => ({\n type: SUBSCRIPTION_TIERS_REQUEST_SUCCEEDED,\n payload: {\n tiers,\n },\n});\n\nexport const subscriptionTiersRequestFailed = (errors) => ({\n type: SUBSCRIPTION_TIERS_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const retrieveStripePlanId = (planId) => ({\n type: RETRIEVE_STRIPE_PLAN_ID,\n payload: {\n planId,\n },\n});\n\nexport const subscriptionSessionRequested = (\n groupId,\n successUrl,\n cancelUrl,\n planId,\n quantity,\n) => ({\n type: SUBSCRIPTION_SESSION_REQUESTED,\n payload: { groupId, successUrl, cancelUrl, planId, quantity },\n});\n\nexport const subscriptionSessionRequestSucceeded = (url, planId) => ({\n type: SUBSCRIPTION_SESSION_REQUEST_SUCCEEDED,\n payload: {\n url,\n planId,\n },\n});\n\nexport const subscriptionSessionRequestFailed = (errors) => ({\n type: SUBSCRIPTION_SESSION_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const subscriptionSessionClearErrors = () => ({\n type: SUBSCRIPTION_SESSION_CLEAR_ERRORS,\n});\n\nexport const subscriptionVerificationRequested = (groupId, planId) => ({\n type: SUBSCRIPTION_VERIFICATION_REQUESTED,\n payload: { groupId, planId },\n});\n\nexport const subscriptionVerificationRequestSucceeded = (\n invoice,\n subscription,\n) => ({\n type: SUBSCRIPTION_VERIFICATION_REQUEST_SUCCEEDED,\n payload: {\n invoice,\n subscription,\n },\n});\n\nexport const subscriptionVerificationRequestFailed = (errors) => ({\n type: SUBSCRIPTION_VERIFICATION_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n\nexport const subscriptionManagementLinkRequested = (groupId, returnUrl) => ({\n type: SUBSCRIPTION_MANAGEMENT_LINK_REQUESTED,\n payload: {\n groupId,\n returnUrl,\n },\n});\n\nexport const subscriptionManagementLinkRequestSucceeded = (url) => ({\n type: SUBSCRIPTION_MANAGEMENT_LINK_REQUEST_SUCCEEDED,\n payload: {\n url,\n },\n});\n\nexport const subscriptionManagementLinkRequestFailed = (errors) => ({\n type: SUBSCRIPTION_MANAGEMENT_LINK_REQUEST_FAILED,\n payload: {\n errors,\n },\n});\n","import {\n RETRIEVE_STRIPE_PLAN_ID,\n SUBSCRIPTION_MANAGEMENT_LINK_REQUEST_FAILED,\n SUBSCRIPTION_MANAGEMENT_LINK_REQUEST_SUCCEEDED,\n SUBSCRIPTION_MANAGEMENT_LINK_REQUESTED,\n SUBSCRIPTION_RECORDS_REQUEST_FAILED,\n SUBSCRIPTION_RECORDS_REQUEST_SUCCEEDED,\n SUBSCRIPTION_RECORDS_REQUESTED,\n SUBSCRIPTION_REQUEST_FAILED,\n SUBSCRIPTION_REQUEST_SUCCEEDED,\n SUBSCRIPTION_REQUESTED,\n SUBSCRIPTION_SESSION_REQUEST_FAILED,\n SUBSCRIPTION_SESSION_REQUEST_SUCCEEDED,\n SUBSCRIPTION_SESSION_REQUESTED,\n SUBSCRIPTION_TIERS_REQUEST_FAILED,\n SUBSCRIPTION_TIERS_REQUEST_SUCCEEDED,\n SUBSCRIPTION_TIERS_REQUESTED,\n SUBSCRIPTION_VERIFICATION_REQUEST_FAILED,\n SUBSCRIPTION_VERIFICATION_REQUEST_SUCCEEDED,\n SUBSCRIPTION_VERIFICATION_REQUESTED,\n SUBSCRIPTION_SESSION_CLEAR_ERRORS,\n} from './actions';\n\nconst initialState = {\n accountPlan: {\n accountType: '',\n currentUsers: 0,\n maxUsers: 0,\n currentSubscription: null,\n errors: [],\n loading: false,\n },\n paymentMethod: null,\n stripePlanId: '',\n billingSession: {\n url: '',\n errors: [],\n loading: false,\n },\n subscriptionRecords: {\n loading: false,\n errors: [],\n records: [],\n },\n subscriptionTiers: {\n loading: false,\n errors: [],\n tiers: [],\n },\n management: {\n loading: false,\n errors: [],\n url: '',\n },\n};\n\nconst subscriptionReducer = (state = initialState, action) => {\n const { type, payload = {} } = action;\n switch (type) {\n case SUBSCRIPTION_REQUESTED:\n return {\n ...state,\n accountPlan: {\n ...state.accountPlan,\n loading: true,\n },\n };\n case RETRIEVE_STRIPE_PLAN_ID:\n return {\n ...state,\n stripePlanId: payload.planId,\n };\n case SUBSCRIPTION_SESSION_REQUESTED:\n return {\n ...state,\n billingSession: {\n ...initialState.billingSession,\n loading: true,\n },\n };\n case SUBSCRIPTION_SESSION_REQUEST_SUCCEEDED:\n return {\n ...state,\n billingSession: {\n ...state.billingSession,\n url: payload.url,\n errors: [],\n loading: false,\n },\n };\n case SUBSCRIPTION_SESSION_REQUEST_FAILED:\n return {\n ...state,\n billingSession: {\n ...state.billingSession,\n errors: payload.errors,\n loading: false,\n },\n };\n case SUBSCRIPTION_SESSION_CLEAR_ERRORS:\n return {\n ...state,\n billingSession: {\n ...state.billingSession,\n errors: [],\n },\n };\n case SUBSCRIPTION_VERIFICATION_REQUESTED:\n return {\n ...state,\n billingSession: {\n ...state.billingSession,\n loading: true,\n },\n };\n case SUBSCRIPTION_VERIFICATION_REQUEST_SUCCEEDED:\n return {\n ...state,\n accountPlan: {\n ...state.accountPlan,\n currentSubscription: payload.subscription,\n },\n billingSession: {\n ...state.billingSession,\n errors: [],\n loading: false,\n },\n };\n case SUBSCRIPTION_VERIFICATION_REQUEST_FAILED:\n return {\n ...state,\n billingSession: {\n ...state.billingSession,\n errors: payload.errors,\n loading: false,\n },\n };\n case SUBSCRIPTION_REQUEST_SUCCEEDED:\n return {\n ...state,\n accountPlan: {\n ...state.accountPlan,\n currentSubscription: payload.currentSubscription,\n errors: [],\n loading: false,\n },\n };\n case SUBSCRIPTION_REQUEST_FAILED:\n return {\n ...state,\n accountPlan: {\n ...state.accountPlan,\n errors: payload.errors,\n loading: false,\n },\n };\n case SUBSCRIPTION_RECORDS_REQUESTED:\n return {\n ...state,\n subscriptionRecords: {\n ...state.subscriptionRecords,\n loading: true,\n },\n };\n case SUBSCRIPTION_RECORDS_REQUEST_SUCCEEDED:\n return {\n ...state,\n subscriptionRecords: {\n ...state.subscriptionRecords,\n loading: false,\n records: payload.records,\n },\n };\n case SUBSCRIPTION_RECORDS_REQUEST_FAILED:\n return {\n ...state,\n subscriptionRecords: {\n ...state.subscriptionRecords,\n loading: false,\n errors: payload.errors,\n },\n };\n case SUBSCRIPTION_TIERS_REQUESTED:\n return {\n ...state,\n subscriptionTiers: {\n ...state.subscriptionTiers,\n loading: true,\n errors: [],\n tiers: [],\n },\n };\n case SUBSCRIPTION_TIERS_REQUEST_SUCCEEDED:\n return {\n ...state,\n subscriptionTiers: {\n ...state.subscriptionTiers,\n loading: false,\n tiers: payload.tiers,\n },\n };\n case SUBSCRIPTION_TIERS_REQUEST_FAILED:\n return {\n ...state,\n subscriptionTiers: {\n ...state.subscriptionTiers,\n loading: false,\n errors: payload.errors,\n },\n };\n case SUBSCRIPTION_MANAGEMENT_LINK_REQUESTED:\n return {\n ...state,\n management: {\n ...initialState.management,\n loading: true,\n },\n };\n case SUBSCRIPTION_MANAGEMENT_LINK_REQUEST_SUCCEEDED:\n return {\n ...state,\n management: {\n ...state.management,\n loading: false,\n errors: [],\n url: payload.url,\n },\n };\n case SUBSCRIPTION_MANAGEMENT_LINK_REQUEST_FAILED:\n return {\n ...state,\n management: {\n ...state.management,\n loading: false,\n errors: payload.errors,\n },\n };\n\n default:\n return state;\n }\n};\n\nexport default subscriptionReducer;\n","import { combineReducers } from 'redux';\nimport { connectRouter } from 'connected-react-router';\nimport { persistReducer } from 'redux-persist';\nimport reduxPersistStorage from 'redux-persist/lib/storage';\nimport initReducer from '../init/reducer';\nimport authReducer from '../auth/reducer';\nimport userReducer from '../user/reducer';\nimport viewActionReducer from '../actions/reducer';\nimport analyticsPhotoReducer from '../analytics/photos/reducer';\nimport analyticsReducer from '../analytics/reducer';\nimport viewChallengeReducer from '../challenges/reducer';\nimport challengesReducer from '../screens/ChallengesScreen/reducer';\nimport notificationsReducer from '../notifications/reducer';\nimport communityReducer from '../community/reducer';\nimport imageReducer from '../image/reducer';\nimport flagsReducer from '../flags/reducer';\nimport updateChalllengeReducer from '../screens/UpdateChallengeScreen/reducer';\nimport themesReducer from '../communityThemes/reducer';\nimport settingsReducer from '../screens/SettingsScreen/reducer';\nimport deepLinksReducer from '../deepLinks/reducer';\nimport inviteUsersReducer from '../store/inviteUsers/reducer';\nimport activitiesReducer from '../activities/reducer';\nimport subscriptionReducer from '../subscriptions/reducer';\n\nconst authPersistConfig = {\n key: 'auth',\n storage: reduxPersistStorage,\n whitelist: ['token', 'onBoarding', 'sso'],\n};\n\nconst subscriptionPersistConfig = {\n key: 'subscription',\n storage: reduxPersistStorage,\n whitelist: ['stripePlanId'],\n};\n\n// Persist challenge creation so that refreshing the /get-started/invite page doesn't break it\nconst viewChallengePersistConfig = {\n key: 'viewChallenge',\n storage: reduxPersistStorage,\n whitelist: ['creation'],\n};\n\nconst userPersistConfig = {\n key: 'user',\n storage: reduxPersistStorage,\n whitelist: [\n 'user',\n 'dismissedInfoCardIds',\n 'userViewActive',\n 'activeCommunity',\n ],\n};\n\nexport default function createRootReducer(history) {\n return combineReducers({\n router: connectRouter(history),\n init: initReducer,\n deepLinks: deepLinksReducer,\n auth: persistReducer(authPersistConfig, authReducer),\n user: persistReducer(userPersistConfig, userReducer),\n viewChallenge: persistReducer(\n viewChallengePersistConfig,\n viewChallengeReducer,\n ),\n viewAction: viewActionReducer,\n analyticsPhoto: analyticsPhotoReducer,\n analytics: analyticsReducer,\n activities: activitiesReducer,\n challenges: challengesReducer,\n flags: flagsReducer,\n notifications: notificationsReducer,\n community: communityReducer,\n themes: themesReducer,\n image: imageReducer,\n updateChallenge: updateChalllengeReducer,\n settings: settingsReducer,\n inviteUsers: inviteUsersReducer,\n subscription: persistReducer(\n subscriptionPersistConfig,\n subscriptionReducer,\n ),\n });\n}\n","import { call, put } from 'redux-saga/effects';\nimport {\n appStringsRequestFailed,\n appStringsRequestSucceeded,\n initializationSucceeded,\n} from './actions';\nimport {\n fetchWithoutAuth,\n getErrorsFromPossibleAPIErrorResponse,\n} from '../utils/api';\nimport { getProperties, setApplicationConfig } from '../utils';\nimport { setTrackingProperties } from '../utils/analytics';\n\nexport default function* initSaga() {\n setTrackingProperties({ platform: 'dashboard' });\n try {\n const configResponse = yield call(\n fetchWithoutAuth,\n '/application/config',\n {\n query: {\n client_secret: getProperties()?.clientSecret,\n client_id: getProperties()?.clientId,\n },\n },\n );\n const stringResponse = yield call(\n fetchWithoutAuth,\n '/application/strings',\n {\n query: {\n client_secret: getProperties()?.clientSecret,\n client_id: getProperties()?.clientId,\n },\n },\n );\n const config = configResponse?.response?.applications?.[0];\n yield put(appStringsRequestSucceeded(stringResponse));\n if (config) {\n setApplicationConfig(config);\n }\n } catch (error) {\n // Fallback to defaults if this fails\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get application strings',\n );\n yield put(appStringsRequestFailed(errors));\n }\n yield put(initializationSucceeded());\n}\n","import { getFullURI, setToken } from '../utils/api';\nimport { getProperties } from '../utils';\nimport {\n LOGIN_METHOD_MICROSOFT,\n LOGIN_METHOD_OKTA,\n} from '../properties/constants';\nimport APIErrorResponse from '../utils/api/APIErrorResponse';\n\nconst getUserAgentApplicationInstance = () => {\n return new window.Msal.UserAgentApplication(\n getProperties()?.microsoftClientId,\n getProperties()?.microsoftClientAuthority,\n null,\n {\n navigateToLoginRequestUrl: false,\n redirectUri: `${window.location.protocol}//${window.location.host}/shine/login/`,\n },\n );\n};\n\nexport const onGetOAuthToken = async (token, accessToken, loginMethod) => {\n const body = {\n client_secret: getProperties()?.clientSecret,\n client_id: getProperties()?.clientId,\n };\n if (loginMethod === LOGIN_METHOD_MICROSOFT) {\n body.microsoftIdToken = token;\n body.microsoftAccessToken = accessToken;\n } else if (loginMethod === LOGIN_METHOD_OKTA) {\n body.authorizationCode = token;\n }\n const res = await fetch(`${getProperties()?.apiUri}/login/${loginMethod}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json;charset=utf-8',\n },\n body: JSON.stringify(body),\n });\n\n const response = await res.json();\n\n if (response.meta?.code >= 400 && response.meta?.message) {\n throw Error(response.meta?.message);\n }\n\n if (response.access_token) {\n setToken(response.access_token);\n return response.access_token;\n }\n};\n\n/**\n * Trigger MSAL login flow and retrieve auth token from the server\n * Note that this function will throw if any step of the flow fails.\n * @throws\n * @returns {Promise<*>}\n */\nexport const microsoftLogin = async () => {\n const graphScopes = ['user.read'];\n const userAgentApplicationInstance = getUserAgentApplicationInstance();\n const idToken = await userAgentApplicationInstance.loginPopup(graphScopes);\n const msalAccessToken = await userAgentApplicationInstance.acquireTokenSilent(\n graphScopes,\n );\n const token = await onGetOAuthToken(\n idToken,\n msalAccessToken,\n LOGIN_METHOD_MICROSOFT,\n );\n return token;\n};\n\nexport const login = async (data) => {\n const { username, password } = data;\n\n const uri = getFullURI('/login');\n const res = await fetch(uri, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json;charset=utf-8',\n },\n body: JSON.stringify({\n client_secret: getProperties()?.clientSecret,\n client_id: getProperties()?.clientId,\n username,\n password,\n }),\n });\n\n const body = await res.json();\n\n if (body.meta && body.meta.code >= 400) {\n const errorResponse = new APIErrorResponse();\n errorResponse.json = body;\n errorResponse.response = res;\n throw errorResponse;\n }\n\n if (body.access_token) {\n setToken(body.access_token);\n return body.access_token;\n }\n};\n","import { getProperties } from '../utils';\n\nconst config = getProperties()?.intercomConfig;\nexport const setupIntercomForUsers = (user, community) => {\n const {\n name,\n username: email,\n dateJoined,\n intercomHash,\n id,\n intercomRole,\n } = user;\n const settings = {\n user_hash: intercomHash,\n user_id: id,\n name: name, // Full name\n email: email, // Email address\n created_at: dateJoined, // Signup date as a Unix timestamp\n role: intercomRole,\n company: {\n /*\n * Todo: pull in additional params related to subscription\n * monthly_spend, user_count, size, website, plan\n */\n name: community.name,\n id: community.id,\n created_at: community.created || '',\n },\n };\n initIntercom(settings);\n};\n\nexport const setupIntercomForLeads = () => {\n initIntercom();\n};\n\nexport const showIntercomChat = () => {\n window.Intercom('showNewMessage', '');\n};\n\nexport const initTour = (tourId) => {\n window.Intercom('startTour', tourId);\n};\n\nexport const initChallengeEditingTour = () => {\n initTour(config.productTours.challengeEdit);\n};\n\nexport const updateIntercomUserData = (userData = {}) => {\n window.Intercom('update', {\n ...window.intercomSettings,\n ...userData,\n });\n};\n\nexport const updateIntercomCompanyData = (companyData = {}) => {\n window.Intercom('update', {\n ...window.intercomSettings,\n company: {\n ...window.intercomSettings.company,\n ...companyData,\n },\n });\n};\n\nexport const shutDownIntercom = () => {\n try {\n window.Intercom('shutdown');\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('error shutting down intercom');\n }\n};\n\nconst initIntercom = (settings) => {\n window.intercomSettings = settings;\n if (!config.enabled) {\n return;\n }\n const baseSettings = {\n api_base: config.apiBase,\n app_id: config.appId,\n };\n window.Intercom('boot', { ...baseSettings, ...settings });\n};\n","import { createSelector } from 'reselect';\n\nexport const getDeepLinksState = (state) => state.deepLinks;\n\nexport const getQueuedDeepLink = createSelector(\n getDeepLinksState,\n (deepLinks) => deepLinks.queuedDeepLinkPath,\n);\n","import { uniq } from 'ramda';\n\n/**\n * Ensure any given value is either `null` or a non empty array of errors.\n *\n * @param {{string|Error|null|object|(string|Error|null|object)[]} errorOrErrors\n * @returns {null|*[]}\n */\nexport function coerceIntoErrors(errorOrErrors) {\n if (\n !errorOrErrors ||\n (Array.isArray(errorOrErrors) && errorOrErrors.length === 0)\n ) {\n return null;\n }\n\n if (Array.isArray(errorOrErrors)) {\n return errorOrErrors;\n }\n\n return [errorOrErrors];\n}\n\n/**\n * Given an error or errors, coerce them into a unique array of human readable error messages.\n *\n * @param {string|Error|null|object|(string|Error|null|object)[]} errors\n * @param {string=} fallback\n * @param {boolean=} obscureJSErrors\n * @returns {string[]|null}\n */\nexport function coerceErrorsIntoErrorMessages(\n errors,\n fallback = 'An unknown error occurred.',\n obscureJSErrors = process.env.NODE_ENV !== 'development',\n) {\n // Ensure we actually have a non empty array of errors.\n const parsedErrors = coerceIntoErrors(errors);\n if (!parsedErrors) {\n return [];\n }\n\n // Parse the errors, coercing Error object into strings if we're allowed to\n const finalErrors = parsedErrors.reduce((errors, error) => {\n if (error) {\n if (\n typeof error === 'object' &&\n error.message &&\n !obscureJSErrors\n ) {\n errors.push(\n error.name\n ? `${error.name}: ${error.message}`\n : error.message,\n );\n } else if (typeof error === 'string') {\n errors.push(error);\n }\n }\n return errors;\n }, []);\n\n // If we have any errors to show, return them; otherwise, return the fallback error.\n return finalErrors.length === 0 ? [fallback] : uniq(finalErrors);\n}\n","import i18n from 'i18next';\n\nexport const prettyFormatNumber = (\n value,\n fixed = 1,\n thousandsAbreviate = false,\n) => {\n let response;\n if (value >= Math.pow(10, 12)) {\n response = {\n value: (value / Math.pow(10, 12)).toLocaleString([], {\n minimumFractionDigits: fixed,\n maximumFractionDigits: fixed,\n }),\n weight: i18n.t('prefixes.Trillion'),\n };\n } else if (value >= Math.pow(10, 9)) {\n response = {\n value: (value / Math.pow(10, 9)).toFixed(fixed),\n weight: i18n.t('prefixes.Billion'),\n };\n } else if (value >= Math.pow(10, 6)) {\n response = {\n value: (value / Math.pow(10, 6)).toFixed(fixed),\n weight: i18n.t('prefixes.Million'),\n };\n } else if (!thousandsAbreviate && value >= Math.pow(10, 4)) {\n response = {\n value: (value / 1000).toFixed(fixed),\n weight: i18n.t('prefixes.Thousand'),\n };\n } else if (thousandsAbreviate && value >= Math.pow(10, 3)) {\n response = {\n value: (value / 1000).toFixed(fixed),\n weight: i18n.t('prefixes.Thousand'),\n };\n } else if (value < 1) {\n response = {\n value: value.toFixed(fixed),\n weight: '',\n };\n } else {\n fixed = fixed === 1 ? 0 : fixed;\n response = {\n value: value.toLocaleString([], {\n minimumFractionDigits: fixed,\n maximumFractionDigits: fixed,\n }),\n weight: '',\n };\n }\n return response;\n};\n\nconst fixImpactStat = (stat = {}) => {\n return stat.unit?.symbol === 's'\n ? {\n ...stat,\n value: stat.value / 60 / 60,\n unit: {\n ...stat.unit,\n name: 'hour',\n namePlural: 'hours',\n },\n }\n : stat;\n};\n\nexport const transformImpactStatsToTotals = (stats) =>\n stats\n ?.map(fixImpactStat)\n ?.map(({ name, themeColor, value, unit: { symbol }, ...rest }) => ({\n title: `${name}`,\n colorTitle: `#${themeColor}`,\n colorContent: `#${themeColor}`,\n color: `#${themeColor}`,\n unit: symbol,\n ...rest,\n ...prettyFormatNumber(value),\n }));\n\n/**\n * Copied from the legacy dashboard. Hack that needs to be updated if any s3 stuff changes\n * Changes imageSizes 'url' property that is received from the API into a 'file' property\n * that can be understood by the api\n */\nexport const transformImageSizes = (sizes) => {\n return sizes.map((size) => {\n if (!size?.file && size?.url) {\n const splitUrl = size.url.split('static.joulebug.com/');\n return {\n width: size.width,\n height: size.height,\n file: {\n s3_reference: {\n bucket_name: 'jb-content',\n file_name: splitUrl[1],\n },\n },\n };\n } else {\n return size;\n }\n });\n};\n","import { getAppImages } from '../utils';\n\nexport const transformActivities = (activities) => {\n return activities?.map((activity) => transformActivity(activity));\n};\n\nexport const transformActivity = (activity) => {\n const { name: userName, id: userId, imageSizes } = activity?.user || {};\n const userImage =\n imageSizes?.[imageSizes.length - 1]?.url ||\n getAppImages().defaultProfileIcon;\n\n const {\n actions,\n created: activityCreated,\n photoSizes,\n message,\n liked,\n comments: otherComments,\n } = activity || {};\n\n const action =\n actions.filter((action) => action.actionName === 'buzzBaseAction') ||\n [];\n\n const masteries = actions\n ?.filter((action) => action.actionName === 'pinEarn')\n .map(\n ({\n actionDefaultText,\n content: { imageSizes: activityImageSizes },\n actionId,\n }) => {\n return {\n activityName: actionDefaultText,\n activityImage:\n activityImageSizes[activityImageSizes.length - 1]?.url,\n id: actionId,\n };\n },\n );\n\n const badges = actions\n ?.filter((action) => action.actionName === 'badgeEarn')\n .map(\n ({\n actionDefaultText,\n content: { imageSizes: activityImageSizes },\n actionId,\n }) => {\n return {\n activityName: actionDefaultText,\n activityImage:\n activityImageSizes[activityImageSizes.length - 1]?.url,\n id: actionId,\n };\n },\n );\n\n const activityName = action?.[0].actionDefaultText;\n const {\n content: { contentType, id: contentId, imageSizes: activityImageSizes },\n } = action?.[0] || { content: {} };\n const activityImage =\n activityImageSizes?.[activityImageSizes.length - 1]?.url;\n const photoUrl = photoSizes?.[photoSizes.length - 1]?.url;\n const numLikes = liked?.length;\n const selfComment = message && {\n commentUser: userName,\n commentText: message,\n isCaption: true,\n };\n const otherCommentsOnCard =\n otherComments?.map(\n ({ message: commentText, user: { name: commentUser }, id }) => ({\n commentUser,\n commentText,\n id,\n }),\n ) || [];\n const comments = selfComment\n ? [selfComment, ...otherCommentsOnCard]\n : otherCommentsOnCard;\n return {\n id: activity?.id,\n shareURL: activity?.shareURL,\n userId,\n userName,\n userImage,\n activityCreated,\n activityName,\n activityImage,\n badges,\n masteries,\n photoUrl,\n likes: liked,\n numLikes,\n comments,\n contentType,\n contentId,\n };\n};\n","import { createSelector } from 'reselect';\n\nimport { coerceIntoErrors } from '../common/errors';\nimport { transformImpactStatsToTotals } from '../common/transforms';\nimport {\n getHighResProfilePicture,\n transformAvailableCommunities,\n transformUsers,\n transformUserTrophies,\n transformUserWithIntercomRole,\n transformJoinedCommunities,\n} from './transforms';\nimport { deriveActiveCommunityFromUser } from '../utils/user';\nimport { ACTIVE_STATUS_ACTIVE, ACTIVE_STATUS_DEACTIVATED } from './constants';\nimport { transformActivities } from '../activities/transforms';\n\nexport const getUserState = (state) => state.user;\nexport const getSettingsState = (state) => state.settings;\n\nexport const getUser = createSelector(getUserState, (user) => user?.user);\n\nexport const getUserId = createSelector(getUser, (user) => user?.id);\n\nexport const getUserCommunities = createSelector(getUser, (user) =>\n transformJoinedCommunities(user?.communityMemberships),\n);\n\nexport const getUserMemberOrganization = createSelector(\n getUser,\n (user) => user?.organization,\n);\n\nexport const getUserMemberOrganizationId = createSelector(\n getUserMemberOrganization,\n (organization) => organization.id,\n);\n\nexport const getCurrentUserPermissions = createSelector(\n getUser,\n (user) => user?.communityPermissions || {},\n);\n\nexport const isUserOrganizationOwner = createSelector(\n getUser,\n (user) => user?.isOrganizationOwner,\n);\n\nexport const getUserWithIntercomRole = createSelector(getUser, (user) =>\n transformUserWithIntercomRole(user),\n);\n\nexport const isUserLoading = createSelector(\n getUserState,\n (user) => !!user.loading.user,\n);\n\nexport const getUserErrors = createSelector(getUserState, (user) =>\n coerceIntoErrors(user.errors),\n);\n\nexport const getUserName = createSelector(getUser, (user) => user?.name);\n\nexport const getUserEmail = createSelector(getUser, (user) => user?.username);\n\nexport const isUserViewActive = createSelector(\n getUserState,\n (user) => user?.userViewActive,\n);\n\nexport const getActiveCommunity = createSelector(\n getUserState,\n getUser,\n isUserViewActive,\n (userState, user, userViewActive) =>\n userState?.activeCommunity?.id\n ? userState.activeCommunity\n : deriveActiveCommunityFromUser(user, userViewActive),\n);\n\nexport const getActiveCommunityName = createSelector(\n getActiveCommunity,\n (community = {}) => {\n return community.name;\n },\n);\n\nexport const getActiveCommunityImage = createSelector(\n getActiveCommunity,\n (community = {}) => {\n return (\n community.imageSizes &&\n community.imageSizes.length > 0 &&\n community.imageSizes[0].url\n );\n },\n);\n\nexport const getActiveCommunityId = createSelector(\n getActiveCommunity,\n (community) => community.id,\n);\n\nexport const getActiveCommunityOrgId = createSelector(\n getActiveCommunity,\n (community) => community.organizationId,\n);\n\nexport const isOrganization = createSelector(\n getActiveCommunity,\n (community) => community.organizationId === community.id,\n);\n\nexport const isActiveCommunityLoading = createSelector(\n getActiveCommunity,\n (activeCommunity = {}) => activeCommunity.loading,\n);\n\nexport const getActiveCommunityErrors = createSelector(\n getActiveCommunity,\n (activeCommunity = {}) => activeCommunity.errors,\n);\n\nexport const getAvailableCommunities = createSelector(getUser, (user) =>\n transformAvailableCommunities(user),\n);\n\nexport const getUserProfile = createSelector(getUser, (user) => ({\n id: user.id,\n image: getHighResProfilePicture(user),\n name: user.name,\n headline: user.headline,\n followers: user.followers.length,\n following: user.following.length,\n impactTotals: transformImpactStatsToTotals(\n user.impactStats?.impactStatTypes,\n ),\n activityTotals: {\n points: user.score,\n logs: user.buzzes,\n actions: user.pinTotal,\n badges: user.badgeTotal,\n },\n}));\n\nexport const getSelectedUser = createSelector(\n getUserState,\n (userState) => userState.selectedUser,\n);\n\nexport const isSelectedUserLoading = createSelector(\n getUserState,\n (userState) => userState.selectedUserLoading,\n);\n\nexport const getSelectedUserErrors = createSelector(getUserState, (userState) =>\n coerceIntoErrors(userState.selectedUserErrors),\n);\n\nexport const getSelectedUserProfile = createSelector(\n getSelectedUser,\n (selectedUser) =>\n selectedUser && {\n id: selectedUser.id,\n image: getHighResProfilePicture(selectedUser),\n name: selectedUser.name,\n headline: selectedUser.headline,\n followers: selectedUser.followers.length,\n following: selectedUser.following.length,\n impactTotals: transformImpactStatsToTotals(\n selectedUser.impactStats?.impactStatTypes,\n ),\n activityTotals: {\n points: selectedUser.score,\n logs: selectedUser.buzzes,\n actions: selectedUser.pinTotal,\n badges: selectedUser.badgeTotal,\n },\n },\n);\n\nexport const getSelectedUserActivities = createSelector(\n getUserState,\n (userState) => userState.selectedUserActivities,\n);\n\nexport const getSelectedUserActivityItems = createSelector(\n getSelectedUserActivities,\n (activities = []) => transformActivities(activities),\n);\n\nexport const isSelectedUserActivitesLoading = createSelector(\n getUserState,\n (userState) => userState.selectedUserActivitiesLoading,\n);\n\nexport const getSelectedUserActivitiesErrors = createSelector(\n getUserState,\n (userState) => coerceIntoErrors(userState.selectedUserActivitiesErrors),\n);\n\nexport const getSelectedUserTrophies = createSelector(\n getSelectedUser,\n (selectedUser) => transformUserTrophies(selectedUser),\n);\n\nexport const getUserTrophies = createSelector(getUser, (user) =>\n transformUserTrophies(user),\n);\n\nexport const getUserUpdateState = createSelector(\n getUserState,\n (userState) => userState.update,\n);\n\nexport const isUserUpdateLoading = createSelector(\n getUserUpdateState,\n (updateState) => updateState.loading,\n);\n\nexport const getUserUpdateErrors = createSelector(\n getUserUpdateState,\n (updateState) => coerceIntoErrors(updateState.errors),\n);\n\nexport const getUserUpdateResult = createSelector(\n getUserUpdateState,\n (updateState) => updateState.result,\n);\n\nexport const getActiveMembers = createSelector(\n getUserState,\n (user) => user[ACTIVE_STATUS_ACTIVE]?.data,\n);\n\nexport const getDeactivatedMembers = createSelector(\n getUserState,\n (user) => user[ACTIVE_STATUS_DEACTIVATED]?.data,\n);\n\nexport const getActiveMembersTable = createSelector(\n getActiveMembers,\n getActiveCommunityId,\n (activeMembers, communityId) => transformUsers(activeMembers, communityId),\n);\nexport const getDeactivatedMembersTable = createSelector(\n getDeactivatedMembers,\n getActiveCommunityId,\n (deactivatedMembers, communityId) =>\n transformUsers(deactivatedMembers, communityId),\n);\n\nexport const getPermissions = createSelector(\n getUserState,\n (user) => user.permissions,\n);\n\nexport const getRoles = createSelector(getUserState, (user) => user.roles);\n\nexport const getActiveMembersLoading = createSelector(\n getUserState,\n (user) => user[ACTIVE_STATUS_ACTIVE]?.loading,\n);\n\nexport const getDeactivatedMembersLoading = createSelector(\n getUserState,\n (user) => user[ACTIVE_STATUS_DEACTIVATED]?.loading,\n);\n\nexport const getActiveMembersTotalCount = createSelector(\n getUserState,\n (user) => user[ACTIVE_STATUS_ACTIVE]?.totalCount,\n);\n\nexport const getDeactivatedMembersTotalCount = createSelector(\n getUserState,\n (user) => user[ACTIVE_STATUS_DEACTIVATED]?.totalCount,\n);\n\nexport const getErrors = createSelector(getUserState, (user) => user.errors);\n\nexport const getDismissedInfoCardIds = createSelector(\n getUserState,\n (user) => user.dismissedInfoCardIds,\n);\n\nexport const getOtherCommunities = createSelector(\n getUserState,\n (userState) => userState.communities.response,\n);\n\nexport const isLoadingOtherCommunities = createSelector(\n getUserState,\n (userState) => userState.communities.loading,\n);\n\nexport const getUserContactEmail = createSelector(\n getUser,\n (user) => user.contact.email,\n);\n","import keys from 'lodash/keys';\nimport { transformCommunityPermission } from '../user/transforms';\n\nexport const deriveActiveCommunityFromUser = (\n user = {},\n userViewActive = false,\n) => {\n const whitelist = {\n superAdmin: 1,\n orgAdmin: 2,\n communityAdmin: 3,\n jbWhiteLabelAdmin: 3,\n };\n let highestPermission;\n let activeCommunity = {};\n if (user) {\n const { communityPermissions, organization } = user;\n const userCommunities = keys(communityPermissions);\n if (userCommunities.length === 0 || userViewActive) {\n return {\n id: organization.id,\n name: organization.name,\n description: organization.description,\n contentType: organization.contentType,\n imageSizes: organization.imageSizes,\n contentURL: organization.contentURL,\n created: organization.created,\n };\n }\n userCommunities.forEach((communityId) => {\n const role = communityPermissions[communityId].role;\n\n if (role === 'superAdmin') {\n highestPermission = whitelist[role];\n activeCommunity = transformCommunityPermission(\n communityPermissions[communityId],\n );\n } else if (role === 'orgAdmin' && highestPermission !== 1) {\n highestPermission = whitelist[role];\n activeCommunity = transformCommunityPermission(\n communityPermissions[communityId],\n );\n } else {\n highestPermission = whitelist[role];\n activeCommunity = transformCommunityPermission(\n communityPermissions[communityId],\n );\n }\n });\n }\n return activeCommunity;\n};\n","import { createSelector } from 'reselect';\nimport { getUserState } from '../user/selectors';\nimport { coerceIntoErrors } from '../common/errors';\n\nexport const getAuthState = (state) => {\n return state.auth;\n};\n\nexport const getToken = createSelector(getAuthState, (auth) => auth.token);\n\nexport const isAuthLoading = createSelector(\n getAuthState,\n (auth) => !!auth.loading,\n);\n\nexport const isAuthenticated = createSelector(\n getAuthState,\n getUserState,\n (auth, user) => !!auth.token && !!user.user?.id,\n);\n\nexport const getAuthMessages = createSelector(\n getAuthState,\n (auth) => auth.messages,\n);\n\nexport const getLoginErrors = createSelector(\n getAuthState,\n (auth) => coerceIntoErrors(auth.errors.login) || [],\n);\n\nexport const getRedirect = createSelector(\n getAuthState,\n (auth) => auth.redirect,\n);\n\nexport const getAuthErrors = createSelector(getAuthState, (auth) => auth);\n\nexport const getPwResetErrors = createSelector(\n getAuthState,\n (auth) => auth.errors.pwReset || [],\n);\n\nexport const getEmailVerificationErrors = createSelector(\n getAuthState,\n (auth) => auth.errors.emailVerificationErrors || [],\n);\n\nexport const getEmailVerificationMessages = createSelector(\n getAuthState,\n (auth) => auth.onBoarding.verificationMessages,\n);\n\nexport const getEmailVerificationCode = createSelector(\n getAuthState,\n (auth) => auth.onBoarding.verificationCode,\n);\n\nexport const getEmailVerifiedStatus = createSelector(\n getAuthState,\n (auth) => auth.onBoarding?.verified,\n);\n\nexport const getOnboardingEmail = createSelector(\n getAuthState,\n (auth) => auth.onBoarding?.accountDetails?.email,\n);\n\nexport const getOnBoardingAccountDetails = createSelector(\n getAuthState,\n (auth) => auth.onBoarding?.accountDetails,\n);\n\nexport const isOrgValid = createSelector(\n getAuthState,\n (auth) => auth.onBoarding?.orgValid,\n);\n\nexport const getOrganizationCreationErrors = createSelector(\n getAuthState,\n (auth) => coerceIntoErrors(auth.errors.signup) || '',\n);\n\nexport const getUserCreateErrors = createSelector(\n getAuthState,\n (auth) => coerceIntoErrors(auth.errors.userCreateErrors) || [],\n);\n\nexport const getPasswordResetReturnURL = createSelector(\n getAuthState,\n (auth) => auth.passwordResetReturnURL,\n);\n\nexport const getAutofillEmail = createSelector(\n getAuthState,\n (auth) => auth.onBoarding?.accountDetails?.email,\n);\n\nexport const getSSOConfig = createSelector(getAuthState, (auth) => auth.sso);\n\nexport const getSSOReturnLocation = createSelector(\n getAuthState,\n (auth) => auth.sso?.returnLocation,\n);\n\nexport const hasOrgSignupInfo = createSelector(\n getAuthState,\n (auth) =>\n auth.onBoarding?.accountDetails?.email &&\n auth.onBoarding?.accountDetails?.organization &&\n auth.onBoarding?.accountDetails?.username,\n);\n","import { BasicQueryStringUtils } from '@openid/appauth';\n\nexport class QueryStringUtils extends BasicQueryStringUtils {\n parse(input, useHash) {\n return this.parseQueryString(input.search);\n }\n}\n","import {\n getString,\n fetchAndActivate,\n getRemoteConfig,\n getBoolean,\n} from 'firebase/remote-config';\n\nimport posthog from 'posthog-js';\n\nconst remoteConfig = getRemoteConfig();\n// one hour\nremoteConfig.settings.minimumFetchIntervalMillis = 3600000;\n\nexport const REMOTE_CONFIG_SHOW_IMPACT_GRAPHS = 'SHOW_IMPACT_GRAPHS';\nexport const REMOTE_CONFIG_USER_VIEW_ENABLED =\n 'REMOTE_CONFIG_USER_VIEW_ENABLED';\nexport const REMOTE_CONFIG_SHOW_HABITAT_SAVED_GRAPH =\n 'SHOW_HABITAT_SAVED_GRAPH';\nexport const REMOTE_CONFIG_SHOW_SUBSCRIPTION = 'SHOW_SUBSCRIPTION';\nexport const REMOTE_CONFIG_SHOW_CHALLENGE_INVITE_MODAL_BUTTON =\n 'SHOW_CHALLENGE_INVITE_MODAL_BUTTON';\n\nconst defaultConfig = {\n [REMOTE_CONFIG_SHOW_IMPACT_GRAPHS]: true,\n [REMOTE_CONFIG_USER_VIEW_ENABLED]: true,\n [REMOTE_CONFIG_SHOW_HABITAT_SAVED_GRAPH]: false,\n [REMOTE_CONFIG_SHOW_SUBSCRIPTION]: true,\n [REMOTE_CONFIG_SHOW_CHALLENGE_INVITE_MODAL_BUTTON]: false,\n};\n\nremoteConfig.defaultConfig = defaultConfig;\n\nfetchAndActivate(remoteConfig);\n\nexport const getFeatureFlagValue = (key) => {\n if (process.env.REACT_APP_FEATURE_FLAG_PROVIDER === 'posthog') {\n try {\n return posthog.isFeatureEnabled(key);\n } catch (e) {\n // Posthog issue here when posthog isn't initialized https://github.com/PostHog/posthog-js/issues/283\n }\n } else {\n return getBoolean(remoteConfig, key);\n }\n};\n\nexport const getStringRemoteConfigValue = (key) => {\n return getString(remoteConfig, key);\n};\n","import { all, call, delay, put, select, takeLatest } from 'redux-saga/effects';\nimport {\n clearEmailVerification,\n CREATE_USER_REQUESTED,\n createUserFailed,\n createUserSucceeded,\n EMAIL_VERIFICATION_VERIFY,\n emailVerificationVerifyFailed,\n emailVerificationVerifySucceeded,\n INITIAL_FORM_SUBMIT,\n initialFormSubmitFailed,\n initialFormSubmitSucceeded,\n LOGIN_BY_MICROSOFT_REQUEST,\n LOGIN_BY_OKTA_REQUEST,\n LOGIN_REQUESTED,\n loginRequestFailed,\n loginRequestSucceeded,\n LOGOUT_REQUESTED,\n logoutSucceeded,\n redirectionAutofill,\n RESET_PASSWORD_EMAIL_REQUESTED,\n RESET_PASSWORD_REQUESTED,\n resetPasswordEmailSent,\n resetPasswordFailedToSend,\n resetPasswordRequestFailed,\n resetPasswordRequestSucceeded,\n SIGN_UP_REQUESTED,\n signUpRequestFailed,\n signUpRequestSucceeded,\n SSO_AUTH_REQUESTED,\n SSO_CODE_EXCHANGE_REQUESTED,\n SSO_LOGIN_REQUEST_FAILED,\n SSO_LOGIN_REQUESTED,\n SSOLoginRequested,\n SSOLoginRequestFailed,\n SSOLoginRequestSucceeded,\n SSOStoreConfig,\n} from './actions';\nimport { login, microsoftLogin, onGetOAuthToken } from './api';\nimport { trackEvent } from '../utils/analytics';\nimport { USER_REQUEST_SUCCEEDED, userRequested } from '../user/actions';\nimport {\n fetchWithAuth,\n fetchWithoutAuth,\n getErrorsFromPossibleAPIErrorResponse,\n setToken,\n} from '../utils/api';\nimport { getProperties } from '../utils';\nimport {\n CLIENT_SIDE_PKCE,\n LOGIN_METHOD_AZURE_AD,\n LOGIN_METHOD_GOOGLE,\n LOGIN_METHOD_MICROSOFT,\n LOGIN_METHOD_OKTA,\n SERVER_SIDE_NON_PKCE,\n} from '../properties/constants';\nimport { push, replace } from 'connected-react-router';\nimport { shutDownIntercom } from '../config/intercom';\nimport i18n from 'i18next';\nimport APIErrorResponse from '../utils/api/APIErrorResponse';\nimport { getQueuedDeepLink } from '../deepLinks/selectors';\nimport { clearQueuedDeepLink } from '../deepLinks/actions';\nimport {\n AuthorizationNotifier,\n AuthorizationRequest,\n AuthorizationServiceConfiguration,\n BaseTokenRequestHandler,\n DefaultCrypto,\n FetchRequestor,\n GRANT_TYPE_AUTHORIZATION_CODE,\n LocalStorageBackend,\n RedirectRequestHandler,\n TokenRequest,\n} from '@openid/appauth';\nimport {\n RETURN_LOCATION_ADMIN_SIGNUP,\n RETURN_LOCATION_SETTINGS,\n} from './constants';\nimport { getSSOConfig } from './selectors';\nimport { requestOIDCIntegration } from '../screens/SettingsScreen/actions';\nimport { store } from '../App';\nimport { QueryStringUtils } from './utils';\nimport {\n getFeatureFlagValue,\n REMOTE_CONFIG_USER_VIEW_ENABLED,\n} from '../utils/remoteConfig';\nimport { SNACKBAR_DURATION } from '../common/SnackbarAlert/constants';\nimport {\n EVENT_ACCOUNT_LOGIN,\n EVENT_ONBOARDING_GOOGLE_ORGANIZATION_CREATED,\n EVENT_ONBOARDING_EMAIL_VERIFIED,\n EVENT_ONBOARDING_ORGANIZATION_CREATE_BEGAN,\n EVENT_ONBOARDING_ORGANIZATION_DETAILS_SUBMITTED,\n EVENT_ACCOUNT_SSO_LOGGED_IN,\n} from '../constants/analyticsEvents';\n\nexport function* handleLoginRequest(action) {\n const { data } = action.payload;\n\n trackEvent(EVENT_ACCOUNT_LOGIN);\n\n try {\n const token = yield call(login, data);\n yield put(loginRequestSucceeded(token));\n yield put(userRequested(true));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Incorrect username or password was supplied. Please try again.',\n );\n yield put(loginRequestFailed(errors));\n }\n}\n\nexport function* authedRedirect(action) {\n if (action.payload.isAuthenticating) {\n const deepLinkPath = yield select(getQueuedDeepLink);\n if (deepLinkPath) {\n yield put(push(deepLinkPath));\n yield put(clearQueuedDeepLink());\n } else {\n yield put(push('/'));\n }\n }\n}\n\nfunction* handleOAuthLoginRequest(loginFunction) {\n try {\n const token = yield call(loginFunction);\n if (!token) {\n yield put(loginRequestFailed(['Unable to fetch auth token']));\n } else {\n yield put(loginRequestSucceeded(token));\n yield put(userRequested(true));\n }\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Incorrect username or password was supplied. Please try again.',\n );\n yield put(loginRequestFailed(errors));\n }\n}\n\nexport function* handleLoginByMicrosoftRequest() {\n yield handleOAuthLoginRequest(microsoftLogin);\n}\n\nexport function* handleLoginByOktaRequest({ payload: { code } }) {\n yield handleOAuthLoginRequest(() =>\n onGetOAuthToken(code, null, LOGIN_METHOD_OKTA),\n );\n}\n\nexport function* handleSignUpRequest(action) {\n const { form } = action.payload;\n\n let params = null;\n if (form.authType) {\n params = { authType: form.authType };\n }\n trackEvent(EVENT_ONBOARDING_ORGANIZATION_DETAILS_SUBMITTED, params);\n\n try {\n const data = yield call(\n fetchWithoutAuth,\n '/signup/organization/email',\n {\n method: 'POST',\n body: {\n ...form,\n client_secret: getProperties()?.clientSecret,\n client_id: getProperties()?.clientId,\n },\n },\n );\n setToken(data.access_token);\n yield put(\n signUpRequestSucceeded(\n data.access_token,\n data.organization_passphrase,\n ),\n );\n\n yield put(userRequested(false));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('error.unknown'),\n );\n yield put(signUpRequestFailed(errors));\n }\n}\n\nexport function* requestPasswordReset({ payload }) {\n try {\n const data = yield call(fetchWithoutAuth, '/changepassword', {\n method: 'POST',\n body: {\n newPassword1: payload.password,\n newPassword2: payload.passwordConfirm,\n userId: payload.userId,\n resetToken: payload.token,\n client_secret: getProperties()?.clientSecret,\n client_id: getProperties()?.clientId,\n },\n });\n const returnURL = data.response.returnURL;\n if (!returnURL) {\n yield put(push('/login'));\n }\n yield put(resetPasswordRequestSucceeded(returnURL));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('passwordReset.resetFailed'),\n );\n yield put(resetPasswordRequestFailed(errors));\n }\n}\n\nexport function* requestPasswordResetLink(action) {\n try {\n const email = action.payload && action.payload.email;\n yield call(fetchWithoutAuth, '/forgotpassword', {\n method: 'POST',\n body: {\n email,\n client_secret: getProperties()?.clientSecret,\n client_id: getProperties()?.clientId,\n },\n });\n yield put(resetPasswordEmailSent());\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('passwordReset.resetSendFailed'),\n );\n yield put(resetPasswordFailedToSend(errors));\n }\n}\n\nexport function* requestLogout() {\n try {\n setToken(null);\n shutDownIntercom();\n // Wipe states\n yield put(logoutSucceeded());\n yield call(fetchWithAuth, '/logout', {\n method: 'POST',\n });\n yield put(push('/login'));\n } catch (error) {\n // Do nothing\n }\n}\n\nexport function* submitForm({ payload: { email, ...values } }) {\n trackEvent(EVENT_ONBOARDING_ORGANIZATION_CREATE_BEGAN);\n try {\n const data = yield call(fetchWithoutAuth, '/user/lookup', {\n method: 'POST',\n body: {\n email,\n ...values,\n client_secret: getProperties()?.clientSecret,\n client_id: getProperties()?.clientId,\n },\n });\n const successCode = data.meta.successCode;\n switch (successCode) {\n case 107:\n yield put(\n initialFormSubmitSucceeded(\n email,\n values.resendVerification,\n ),\n );\n break;\n case 106:\n yield put(redirectionAutofill(email));\n yield put(push('/login'));\n yield put(\n initialFormSubmitFailed(\n email,\n i18n.t('onBoarding.alreadyExists'),\n ),\n );\n break;\n case 103:\n case 104:\n yield put(redirectionAutofill(email));\n if (getFeatureFlagValue(REMOTE_CONFIG_USER_VIEW_ENABLED)) {\n yield put(push('/signup/create-account'));\n yield put(\n initialFormSubmitFailed(\n email,\n i18n.t('onBoarding.domainExists.webSignup'),\n ),\n );\n } else {\n yield put(\n initialFormSubmitFailed(\n email,\n i18n.t('onBoarding.domainExists.appSignup'),\n ),\n );\n yield delay(SNACKBAR_DURATION);\n yield put(push('/download'));\n }\n break;\n default:\n yield put(\n initialFormSubmitFailed(email, i18n.t('error.unknown')),\n );\n }\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to send email for verification.',\n );\n yield put(initialFormSubmitFailed(email, errors));\n }\n}\n\nexport function* verifyEmailAddress({ payload: { email, verificationCode } }) {\n trackEvent(EVENT_ONBOARDING_EMAIL_VERIFIED);\n\n try {\n yield call(fetchWithoutAuth, '/signup/verification/verify', {\n method: 'POST',\n body: {\n email,\n client_secret: getProperties()?.clientSecret,\n client_id: getProperties()?.clientId,\n verification_code: verificationCode,\n },\n });\n yield put(emailVerificationVerifySucceeded(email));\n yield put(clearEmailVerification());\n yield put(push('/get-started/profile'));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to verify the email address.',\n );\n yield put(emailVerificationVerifyFailed(errors));\n }\n}\n\nexport function* createUser({\n payload: {\n username,\n password,\n organizationPassphrase,\n marketingEmailOptIn,\n },\n}) {\n try {\n const data = yield call(fetchWithoutAuth, '/signup', {\n method: 'POST',\n body: {\n username,\n password,\n organizationPassphrase,\n client_secret: getProperties()?.clientSecret,\n client_id: getProperties()?.clientId,\n marketingEmailOptIn,\n },\n });\n try {\n setToken(data.access_token);\n try {\n yield put(loginRequestSucceeded(data.access_token));\n yield put(createUserSucceeded(data.access_token));\n yield put(push('/signup/create-profile'));\n } catch {\n yield put(\n createUserFailed([i18n.t('userCreate.stateUpdateFailed')]),\n );\n yield put(push('/login'));\n }\n } catch {\n yield put(createUserFailed([i18n.t('userCreate.setTokenFailed')]));\n }\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to create user',\n );\n yield put(createUserFailed(errors));\n if (\n error instanceof APIErrorResponse &&\n error.getError()?.errorCode === 1\n ) {\n yield put(redirectionAutofill(username));\n yield put(push('/login'));\n }\n }\n}\n\nexport function* handleSSOLoginFailure({ payload: { error } }) {\n if (error?.errorDescription) {\n yield put(\n loginRequestFailed(error.errorDescription.replaceAll('+', ' ')),\n );\n }\n\n if (Array.isArray(error)) {\n yield put(loginRequestFailed(error));\n }\n const config = yield select(getSSOConfig);\n switch (config?.returnLocation) {\n case RETURN_LOCATION_SETTINGS:\n yield put(replace('/settings'));\n break;\n case RETURN_LOCATION_ADMIN_SIGNUP:\n yield put(replace('/get-started'));\n break;\n default:\n yield put(replace('/login'));\n }\n}\n\nexport function* handleSSOAuthRedirect({\n payload: { config, returnLocation },\n}) {\n try {\n const res = yield call(\n AuthorizationServiceConfiguration.fetchFromIssuer,\n config.issuer,\n new FetchRequestor(),\n );\n const authorizationHandler = new RedirectRequestHandler();\n const extras = { access_type: 'offline' };\n\n switch (config.authType) {\n // Google requires a prompt for consent, or it will fail to fetch refresh tokens\n case LOGIN_METHOD_GOOGLE:\n extras.prompt = 'consent';\n break;\n // Okta requires a prompt for login, or it will fail to authenticate if the uses is not already logged in\n case LOGIN_METHOD_OKTA:\n extras.prompt = 'login';\n break;\n // Microsoft and Azure AD require a prompt to select an account, or it will fail to authenticate if the user is not already logged in\n case LOGIN_METHOD_MICROSOFT:\n case LOGIN_METHOD_AZURE_AD:\n extras.prompt = 'select_account';\n break;\n default:\n break;\n }\n\n const request = new AuthorizationRequest(\n {\n client_id: config.clientId,\n redirect_uri: config.redirectURI,\n scope: config.scopes?.join(' '),\n response_type: AuthorizationRequest.RESPONSE_TYPE_CODE,\n extras,\n },\n new DefaultCrypto(),\n config.codeExchangeMethod !== SERVER_SIDE_NON_PKCE,\n );\n authorizationHandler.performAuthorizationRequest(res, request);\n yield put(SSOStoreConfig(config, res, returnLocation));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('error.unknown'),\n );\n yield put(loginRequestFailed(errors));\n }\n}\n\nfunction onAuthorizationComplete(config) {\n return (request, response, error) => {\n if (error) {\n store.dispatch(SSOLoginRequestFailed(error));\n return;\n }\n if (config?.config?.codeExchangeMethod === CLIENT_SIDE_PKCE) {\n // For client side PKCE, we do the code exchange on the client, then send the token to the server\n const tokenHandler = new BaseTokenRequestHandler(\n new FetchRequestor(),\n );\n const r = new TokenRequest({\n client_id: config?.config?.clientId,\n redirect_uri: config?.config?.redirectURI,\n grant_type: GRANT_TYPE_AUTHORIZATION_CODE,\n code: response.code,\n extras: { code_verifier: request.internal.code_verifier },\n });\n tokenHandler\n .performTokenRequest(config?.serviceConfig, r)\n .catch((e) => {\n store.dispatch(\n SSOLoginRequestFailed([\n 'Unable to perform token request with SSO provider',\n ]),\n );\n })\n .then((response) => {\n if (response && response.accessToken) {\n store.dispatch(\n SSOLoginRequested(\n response.accessToken,\n response.refreshToken,\n ),\n );\n } else {\n store.dispatch(\n SSOLoginRequestFailed([\n 'Did not receive a token from the SSO provider',\n ]),\n );\n }\n });\n } else {\n // Otherwise we need to send the code to the server to complete the code exchange\n if (config?.returnLocation === RETURN_LOCATION_SETTINGS) {\n // If we're in the settings, we need to see if we can turn on google auth for the organization\n store.dispatch(\n requestOIDCIntegration(\n null,\n null,\n response.code,\n request.internal?.code_verifier,\n ),\n );\n } else {\n // Otherwise, we're just logging in\n store.dispatch(\n SSOLoginRequested(\n null,\n null,\n response.code,\n request.internal?.code_verifier,\n ),\n );\n }\n }\n };\n}\n\nexport function* attemptSSOCodeExchange() {\n const config = yield select(getSSOConfig);\n const handler = new RedirectRequestHandler(\n new LocalStorageBackend(),\n new QueryStringUtils(),\n window.location,\n );\n const notifier = new AuthorizationNotifier();\n handler.setAuthorizationNotifier(notifier);\n notifier.setAuthorizationListener(onAuthorizationComplete(config));\n handler.completeAuthorizationRequestIfPossible().catch((e) => {\n store.dispatch(\n SSOLoginRequestFailed([\n 'Unable to complete authorization request with SSO provider',\n ]),\n );\n });\n}\n\nexport function* handleSSOLoginRequest({\n payload: { accessToken, refreshToken, authorizationCode, codeVerifier },\n}) {\n const config = yield select(getSSOConfig);\n try {\n const response = yield call(fetchWithoutAuth, `/login/oidc`, {\n method: 'POST',\n body: {\n accessToken,\n refreshToken,\n authorizationCode,\n codeVerifier,\n clientId: config?.config?.clientId,\n client_secret: getProperties()?.clientSecret,\n client_id: getProperties()?.clientId,\n userType:\n config?.returnLocation === RETURN_LOCATION_ADMIN_SIGNUP\n ? 'admin'\n : 'user',\n },\n });\n if (response.access_token) {\n trackEvent(EVENT_ACCOUNT_SSO_LOGGED_IN, {\n auth_type: config?.authType,\n });\n setToken(response.access_token);\n yield put(loginRequestSucceeded(response.access_token));\n yield put(userRequested(true));\n } else if (\n response.meta?.code === 201 &&\n config?.returnLocation === RETURN_LOCATION_ADMIN_SIGNUP\n ) {\n trackEvent(EVENT_ONBOARDING_GOOGLE_ORGANIZATION_CREATED);\n yield put(SSOLoginRequestSucceeded(response.response?.email));\n yield put(replace('/get-started/oauth'));\n }\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('error.unknown'),\n );\n yield put(loginRequestFailed(errors));\n if (config?.returnLocation === RETURN_LOCATION_ADMIN_SIGNUP) {\n yield put(replace('/get-started'));\n } else {\n yield put(replace('/login'));\n }\n }\n}\n\nexport default function* loginSaga() {\n yield all([\n takeLatest(LOGIN_REQUESTED, handleLoginRequest),\n takeLatest(USER_REQUEST_SUCCEEDED, authedRedirect),\n takeLatest(LOGIN_BY_MICROSOFT_REQUEST, handleLoginByMicrosoftRequest),\n takeLatest(LOGIN_BY_OKTA_REQUEST, handleLoginByOktaRequest),\n takeLatest(SIGN_UP_REQUESTED, handleSignUpRequest),\n takeLatest(RESET_PASSWORD_EMAIL_REQUESTED, requestPasswordResetLink),\n takeLatest(RESET_PASSWORD_REQUESTED, requestPasswordReset),\n takeLatest(LOGOUT_REQUESTED, requestLogout),\n takeLatest(INITIAL_FORM_SUBMIT, submitForm),\n takeLatest(EMAIL_VERIFICATION_VERIFY, verifyEmailAddress),\n takeLatest(CREATE_USER_REQUESTED, createUser),\n takeLatest(SSO_AUTH_REQUESTED, handleSSOAuthRedirect),\n takeLatest(SSO_LOGIN_REQUESTED, handleSSOLoginRequest),\n takeLatest(SSO_LOGIN_REQUEST_FAILED, handleSSOLoginFailure),\n takeLatest(SSO_CODE_EXCHANGE_REQUESTED, attemptSSOCodeExchange),\n ]);\n}\n","export const SNACKBAR_DURATION = 3000;\nexport const SUCCESS = 'success';\n","import {\n all,\n call,\n put,\n select,\n takeEvery,\n takeLatest,\n} from 'redux-saga/effects';\nimport {\n ACTIVATE_USERS_REQUESTED,\n activateUsersRequestFailed,\n activateUsersRequestSucceeded,\n CURRENT_USER_REQUESTED,\n DEACTIVATE_USERS_REQUESTED,\n deactivateUsersRequestFailed,\n deactivateUsersRequestSucceeded,\n DELETE_USER_ACCOUNT_REQUESTED,\n DELETE_USER_REQUESTED,\n deleteUserAccountRequestFailed,\n deleteUserAccountRequestSucceeded,\n deleteUserRequestFailed,\n deleteUserRequestSucceeded,\n MEMBERS_REQUESTED,\n MEMBERS_SEARCH_REQUESTED,\n membersRequested,\n membersRequestFailed,\n membersRequestSucceeded,\n membersSearchRequestFailed,\n membersSearchRequestSucceeded,\n MOVE_USER_ORGANIZATION_REQUESTED,\n moveUserOrganizationFailed,\n moveUserOrganizationSucceeded,\n OTHER_COMMUNITIES_REQUESTED,\n otherCommunitiesRequestFailed,\n otherCommunitiesRequestSucceeded,\n PERMISSIONS_AND_ROLES_REQUESTED,\n permissionsAndRolesRequestFailed,\n permissionsAndRolesRequestSucceeded,\n SET_ACTIVE_COMMUNITY,\n setActiveCommunityFailed,\n setActiveCommunitySucceeded,\n TOGGLE_USER_VIEW,\n UPDATE_USER_PERMISSIONS_REQUESTED,\n updateUserPermissionsFailed,\n updateUserPermissionsSucceeded,\n USER_DETAILS_REQUESTED,\n USER_EMAIL_UPDATE_REQUESTED,\n USER_REQUEST_SUCCEEDED,\n USER_UPDATE_REQUESTED,\n userDetailsRequestFailed,\n userDetailsRequestSucceeded,\n userEmailUpdateFailed,\n userEmailUpdateSucceeded,\n userRequested,\n userRequestFailed,\n userRequestSucceeded,\n userUpdateFailed,\n userUpdateSucceeded,\n} from './actions';\nimport {\n fetchWithAuth,\n getErrorsFromPossibleAPIErrorResponse,\n getToken,\n uploadWithAuth,\n} from '../utils/api';\nimport {\n setAnalyticsCommunity,\n setUserID,\n trackEvent,\n} from '../utils/analytics';\nimport {\n getActiveCommunity,\n getUser,\n isOrganization,\n isUserViewActive,\n} from './selectors';\nimport ability, { getUserPermissions } from '../casl/ability';\nimport { ACTIVE_STATUS_ACTIVE, ACTIVE_STATUS_DEACTIVATED } from './constants';\nimport { INITIALIZATION_SUCCEEDED } from '../init/actions';\nimport i18n from 'i18next';\nimport { replace } from 'connected-react-router';\nimport {\n EVENT_PROFILE_ACTIVATED,\n EVENT_PROFILE_DEACTIVATED,\n} from '../constants/analyticsEvents';\n\nexport function* getCurrentUser(action) {\n const token = getToken();\n if (!token || token === 'null') {\n return;\n }\n try {\n const data = yield call(fetchWithAuth, '/user/self');\n const user = data.response.users[0];\n const isUserView = yield select(isUserViewActive);\n if (!isUserView) {\n const activeCommunity = yield select(getActiveCommunity);\n const rules = getUserPermissions(user, activeCommunity?.id);\n rules.push({ actions: 'read', subject: 'all' });\n localStorage.setItem('rules', JSON.stringify(rules));\n ability.update(rules);\n }\n yield put(\n userRequestSucceeded(user, action?.payload?.isAuthenticating),\n );\n setUserID(user?.id);\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get authenticated user details.',\n );\n yield put(userRequestFailed(errors));\n }\n}\n\nexport function* updateUser(action) {\n try {\n const {\n payload: {\n request: { communityId, userId, name, headline, file },\n isCreating,\n },\n } = action;\n const body = new FormData();\n body.append('id', userId);\n body.append('name', name);\n body.append('headline', headline);\n if (file != null) {\n body.append('file', file);\n }\n const updateData = yield call(\n uploadWithAuth,\n `/user/${userId}/update`,\n {\n method: 'POST',\n query: {\n communityId,\n },\n body,\n },\n );\n const response = updateData.response.users[0];\n yield put(userUpdateSucceeded(response));\n if (isCreating) {\n yield put(userRequested(true));\n }\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to update user',\n );\n yield put(userUpdateFailed(errors));\n }\n}\n\nexport function* updateUserEmail(action) {\n try {\n const {\n request: { userId, email },\n } = action.payload;\n\n const body = new FormData();\n body.append('id', userId);\n body.append('email', email);\n\n const updateResponse = yield call(\n uploadWithAuth,\n `/user/${userId}/update`,\n {\n method: 'POST',\n body,\n },\n );\n const response = updateResponse.response.users[0];\n\n yield put(userEmailUpdateSucceeded(response));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to update user email',\n );\n yield put(userEmailUpdateFailed(errors));\n }\n}\n\nexport function* getMembers(action) {\n const { communityId, activeStatus, options } = action.payload;\n try {\n const data = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/members`,\n {\n query: {\n activeStatus,\n context: 'group',\n ...options,\n },\n },\n );\n yield put(\n membersRequestSucceeded({\n users: data.response.users || [],\n totalCount: data.response.totalCount,\n activeStatus,\n }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('usersPage.getMembersFailed'),\n );\n yield put(membersRequestFailed(activeStatus, errors));\n }\n}\n\nexport function* searchMembers(action) {\n const { communityId, searchString, activeStatus, options } = action.payload;\n try {\n const data = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/members/search`,\n {\n query: {\n context: 'group',\n searchString,\n activeStatus,\n ...options,\n },\n },\n );\n yield put(\n membersSearchRequestSucceeded({\n users: data.response.users || [],\n totalCount: data.response.totalCount,\n activeStatus,\n }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('usersPage.getMembersFailed'),\n );\n yield put(membersSearchRequestFailed(activeStatus, errors));\n }\n}\n\nexport function* getPermissions(action) {\n try {\n const { communityId } = action.payload;\n const data = yield call(\n fetchWithAuth,\n `kiosk/group/${communityId}/permissions`,\n );\n\n const permissions = data.response.permissions;\n const roles = data.response.roles;\n\n yield put(permissionsAndRolesRequestSucceeded(permissions, roles));\n } catch (error) {\n yield put(permissionsAndRolesRequestFailed());\n }\n}\n\nexport function* activateUsers(action) {\n trackEvent(EVENT_PROFILE_ACTIVATED);\n\n try {\n const { communityId, userIds } = action.payload;\n yield call(\n fetchWithAuth,\n `/kiosk/organization/${communityId}/user/reactivate`,\n {\n method: 'POST',\n body: {\n userIds: userIds.join(','),\n },\n },\n );\n\n yield put(activateUsersRequestSucceeded());\n yield put(\n membersRequested(communityId, ACTIVE_STATUS_ACTIVE, { limit: 10 }),\n );\n yield put(\n membersRequested(communityId, ACTIVE_STATUS_DEACTIVATED, {\n limit: 10,\n }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to activate users.',\n );\n yield put(activateUsersRequestFailed(errors));\n }\n}\n\nexport function* deactivateUsers(action) {\n trackEvent(EVENT_PROFILE_DEACTIVATED);\n\n try {\n const { communityId, userIds } = action.payload;\n yield call(\n fetchWithAuth,\n `/kiosk/organization/${communityId}/user/deactivate`,\n {\n method: 'POST',\n body: {\n userIds: userIds.join(','),\n },\n },\n );\n\n yield put(deactivateUsersRequestSucceeded());\n yield put(\n membersRequested(communityId, ACTIVE_STATUS_ACTIVE, { limit: 10 }),\n );\n yield put(\n membersRequested(communityId, ACTIVE_STATUS_DEACTIVATED, {\n limit: 10,\n }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to deactivate users.',\n );\n yield put(deactivateUsersRequestFailed(errors));\n }\n}\n\nexport function* handleUpdatedCommunity() {\n try {\n const user = yield select(getUser);\n const activeCommunity = yield select(getActiveCommunity);\n const isUserView = yield select(isUserViewActive);\n let activeCommunityId = activeCommunity?.id;\n let rules = getUserPermissions(user, activeCommunityId);\n if (isUserView) {\n activeCommunityId = user.organization.id;\n rules = [];\n }\n rules.push({ actions: 'read', subject: 'all' });\n localStorage.setItem('rules', JSON.stringify(rules));\n ability.update(rules);\n const params = new URLSearchParams(window.location.search);\n if (params.get('communityId') !== activeCommunityId) {\n params.delete('communityId');\n params.append('communityId', activeCommunityId);\n yield put(replace({ search: params.toString() }));\n setAnalyticsCommunity(activeCommunity);\n }\n yield put(setActiveCommunitySucceeded(activeCommunityId || ''));\n } catch (error) {\n yield put(\n setActiveCommunityFailed([\n 'Failed to set permissions for the selected community. Please contact your administrator.',\n ]),\n );\n }\n}\n\nexport function* removeUser(action) {\n const { communityId, userIds } = action.payload;\n const isOrg = yield select(isOrganization);\n if (isOrg) {\n /*\n * Can't remove a user from their org\n * TODO: Update error string\n */\n yield put(deleteUserRequestFailed(['Can not remove user from org']));\n return;\n }\n\n try {\n yield call(fetchWithAuth, `/kiosk/group/${communityId}/users/remove`, {\n method: 'DELETE',\n body: {\n userIds: userIds,\n },\n });\n\n yield put(deleteUserRequestSucceeded());\n yield put(\n membersRequested(communityId, ACTIVE_STATUS_ACTIVE, { limit: 10 }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to delete user.',\n );\n yield put(deleteUserRequestFailed(errors));\n }\n}\nexport function* deleteUser(action) {\n try {\n const { communityId, userIds } = action.payload;\n const isOrg = yield select(isOrganization);\n if (!isOrg) {\n // The behavior to 'remove' a user from a community differs from a organization.\n return yield call(removeUser, action);\n }\n yield call(\n fetchWithAuth,\n `/kiosk/organization/${communityId}/user/${userIds[0]}/delete`,\n { method: 'DELETE' },\n );\n yield put(deleteUserRequestSucceeded());\n yield put(\n membersRequested(communityId, ACTIVE_STATUS_ACTIVE, { limit: 10 }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to delete user.',\n );\n yield put(deleteUserRequestFailed(errors));\n }\n}\n\nexport function* deleteAccount(action) {\n try {\n const {\n payload: { userId },\n } = action;\n yield call(fetchWithAuth, `/kiosk/user/${userId}/deleteuser`, {\n method: 'DELETE',\n });\n yield put(deleteUserAccountRequestSucceeded());\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to delete account.',\n );\n yield put(deleteUserAccountRequestFailed(errors));\n }\n}\n\nexport function* updatePermissions(action) {\n const {\n payload: { communityId, ...body },\n } = action;\n try {\n yield call(fetchWithAuth, `/kiosk/group/${communityId}/setRole`, {\n method: 'POST',\n body,\n });\n yield put(updateUserPermissionsSucceeded());\n const activeCommunity = yield select(getActiveCommunity);\n yield put(\n membersRequested(activeCommunity.id, ACTIVE_STATUS_ACTIVE, {\n limit: 10,\n }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to update user role and/or permissions.',\n );\n yield put(updateUserPermissionsFailed(errors));\n }\n}\n\nexport function* moveOrgs(action) {\n const {\n payload: { communityId, userId, newOrganizationId },\n } = action;\n try {\n yield call(\n fetchWithAuth,\n `/kiosk/organization/${communityId}/user/${userId}/moveorg`,\n {\n method: 'POST',\n query: { newOrganizationId },\n },\n );\n yield put(moveUserOrganizationSucceeded());\n yield put(\n membersRequested(communityId, ACTIVE_STATUS_ACTIVE, { limit: 10 }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to switch organizations.',\n );\n yield put(moveUserOrganizationFailed(errors));\n }\n}\n\nexport function* fetchUserDetails(action) {\n try {\n const {\n payload: { userId },\n } = action;\n const data = yield call(fetchWithAuth, `/user/${userId}`);\n const user = data.response.users[0];\n yield put(userDetailsRequestSucceeded(user));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get user information.',\n );\n yield put(userDetailsRequestFailed(errors));\n }\n}\n\nexport function* fetchOtherCommunities(action) {\n try {\n const data = yield call(fetchWithAuth, `/community/available`, {\n query: {\n skip: 0,\n limit: 5,\n },\n });\n\n const communities = data.response.communities;\n yield put(otherCommunitiesRequestSucceeded(communities));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get other communities.',\n );\n yield put(otherCommunitiesRequestFailed(errors));\n }\n}\n\nexport default function*() {\n yield all([\n takeLatest(USER_DETAILS_REQUESTED, fetchUserDetails),\n takeLatest(CURRENT_USER_REQUESTED, getCurrentUser),\n takeLatest(INITIALIZATION_SUCCEEDED, getCurrentUser),\n takeLatest(USER_UPDATE_REQUESTED, updateUser),\n takeLatest(USER_EMAIL_UPDATE_REQUESTED, updateUserEmail),\n takeEvery(MEMBERS_REQUESTED, getMembers),\n takeEvery(MEMBERS_SEARCH_REQUESTED, searchMembers),\n takeLatest(PERMISSIONS_AND_ROLES_REQUESTED, getPermissions),\n takeLatest(ACTIVATE_USERS_REQUESTED, activateUsers),\n takeLatest(DEACTIVATE_USERS_REQUESTED, deactivateUsers),\n takeLatest(SET_ACTIVE_COMMUNITY, handleUpdatedCommunity),\n takeLatest(USER_REQUEST_SUCCEEDED, handleUpdatedCommunity),\n takeLatest(TOGGLE_USER_VIEW, handleUpdatedCommunity),\n takeLatest(DELETE_USER_REQUESTED, deleteUser),\n takeLatest(DELETE_USER_ACCOUNT_REQUESTED, deleteAccount),\n takeLatest(UPDATE_USER_PERMISSIONS_REQUESTED, updatePermissions),\n takeLatest(MOVE_USER_ORGANIZATION_REQUESTED, moveOrgs),\n takeLatest(OTHER_COMMUNITIES_REQUESTED, fetchOtherCommunities),\n ]);\n}\n","import { get } from 'lodash';\n\nexport const getVideoId = (video) => {\n const matchResult = video.match(\n /^(?:http(?:s)?:\\/\\/)?(?:www\\.)?(?:youtu\\.be\\/|youtube\\.com\\/watch\\?(?:.*&)?v=)([^&?]+)/,\n );\n if (matchResult) {\n return matchResult[1];\n }\n // assume it's a video ID rather than a URL\n return video;\n};\n\nexport const toVideoURL = (video) => {\n return video ? `https://youtube.com/embed/${getVideoId(video)}` : null;\n};\n\nexport const transformAction = (action) => ({\n ...action,\n headlinePhotoUrl:\n action?.headlinePhoto?.photoSizes?.[\n action.headlinePhoto.photoSizes.length - 1\n ]?.url,\n headlinePhotoAuthor: action?.headlinePhoto?.photoAuthorName,\n headlinePhotoId: action?.headlinePhoto?.id,\n iconUrl: action?.imageSizes?.[action.imageSizes.length - 1]?.url,\n contentBonuses: action?.contentBonuses?.map((bonus) => ({\n name: bonus?.name,\n value: bonus?.bonusValue,\n imageUrl: bonus?.backgroundImage?.[0]?.url,\n })),\n videos: action?.pinYouTubes?.map((video) => ({\n name: video?.name,\n description: video?.description,\n videoId: video?.videoID,\n isCommunity: !!video?.community,\n })),\n sponsor: {\n id: action?.sponsors[Object.keys(action.sponsors)[0]]?.id,\n name: action?.sponsors[Object.keys(action.sponsors)[0]]?.shortName,\n imageUrl:\n action?.sponsors[Object.keys(action.sponsors)[0]]?.imageSizes?.[0]\n ?.url,\n },\n rawLinks: action?.pinURLs,\n links: action?.pinURLs?.map((link) => ({\n name: link?.name,\n description: link?.description,\n imageUrl: get(\n link,\n 'imageSizes.0.url',\n require('../assets/images/defaultImage.png'),\n ),\n linkUrl: link?.url,\n isCommunity: !!link?.community,\n sizes: link?.imageSizes,\n sponsorId: link?.sponsorId,\n key: link?.id,\n })),\n impactConversions: action?.impactConversions?.map((conversion) => ({\n leadingPhrase: conversion.leadingPhrase,\n trailingPhrase: conversion.trailingPhrase,\n value: conversion.value,\n backgroundImage: conversion.photo?.photoSizes?.[0]?.url,\n photoAuthor: conversion.photo?.photoAuthorName,\n })),\n sustainableDevelopmentGoals: action?.sustainableDevelopmentGoals?.map(\n (sdg) => ({\n imageUrl: sdg.imageSizes?.[0]?.url,\n linkUrl: sdg.url,\n ...sdg,\n }),\n ),\n});\n","export const GROUP_KEY_INDIVIDUAL = 'individual';\nexport const GROUP_KEY_TEAM = 'team';\n\nexport const DATETIME_FORMAT = 'MM/DD/YYYY hh:mm A';\n\nexport const GROUP_INDIVIDUAL = 'individual';\nexport const GROUP_TEAM = 'team';\nexport const GROUP_KEYS = {\n [GROUP_INDIVIDUAL]: GROUP_KEY_INDIVIDUAL,\n [GROUP_TEAM]: GROUP_KEY_TEAM,\n};\n\nexport const TEAMS_TYPE_MANUAL = 'manual';\nexport const TEAMS_TYPE_USER_CREATED = 'user_created';\n\nexport const COMPETITION_COMPETITIVE = 'Competitive';\nexport const COMPETITION_GOALS = 'Goals';\n\nexport const GOALS_TYPE_USER = 'user';\nexport const GOALS_TYPE_TEAM = 'team';\nexport const GOALS_TYPE_CHALLENGE = 'challenge';\n\nexport const MIN_NAME_LENGTH = 3;\nexport const MAX_NAME_LENGTH = 60;\n\nexport const MAX_TEAM_COUNT = 999;\nexport const MIN_TEAM_COUNT = 2;\n","import get from 'lodash/get';\nimport { CHALLENGE_UNIT_TEAM, CHALLENGE_UNIT_USER } from './constants';\nimport {\n COMPETITION_GOALS,\n GROUP_INDIVIDUAL,\n GROUP_TEAM,\n TEAMS_TYPE_USER_CREATED,\n} from '../screens/CreateChallengeScreen/CustomizeChallenge/constants';\nimport i18n from 'i18next';\nimport { mapSortAddRank } from '../utils';\nimport { transformAction } from '../actions/transforms';\n\nexport const transformUsers = (data) =>\n mapSortAddRank(\n (get(data, 'activities') || []).map((item, index) => ({\n id: `top-user-${index}`,\n label: item.contentName || '',\n value: item.points,\n image: get(item, 'images[0].url') || '',\n })),\n );\n\nexport const transformActivity = (data) =>\n mapSortAddRank(\n (data || []).reduce(\n (result, item, index) =>\n item.contentName\n ? [\n ...result,\n {\n id: `top-actions-${index}`,\n label: item.contentName,\n value: item.total,\n image: get(item, 'images[0].url') || '',\n },\n ]\n : result,\n [],\n ),\n );\n\nexport const transformLeaderboardItem = (\n { status, rank, item: { score = 0, id, name, imageSizes } },\n includeScore = false,\n) => {\n const transformedTeam = {\n id,\n label: name,\n image: imageSizes?.[imageSizes.length - 1]?.url,\n disabled: status === 'unjoined',\n status,\n rank,\n };\n if (includeScore) {\n transformedTeam.value = score;\n }\n return transformedTeam;\n};\n\nconst reorderLeaderboardItems = (items) =>\n Array.prototype.concat.apply(\n ...items.reduce(\n ([enabled, disabled], item) => [\n item.disabled ? [...enabled] : [...enabled, item],\n item.disabled ? [...disabled, item] : [...disabled],\n ],\n [[], []],\n ),\n );\n\nexport const transformLeaderboardItems = (\n leaderboard,\n includeScore = false,\n) => {\n return reorderLeaderboardItems(\n leaderboard.map((team) => transformLeaderboardItem(team, includeScore)),\n );\n};\n\nexport const transformChallengeCreateQuery = (params) => {\n const {\n teams,\n challengeName,\n challengeDescription,\n startDate,\n endDate,\n language,\n selectedGroup,\n teamsType,\n selectedCompetition,\n goalPointValue,\n goalsType,\n themeId,\n challengeToDuplicateId,\n icon,\n ...restParams\n } = params;\n const body = {\n challengeName: { [language]: challengeName },\n challengeDescription: { [language]: challengeDescription },\n challengeUnit:\n selectedGroup === GROUP_INDIVIDUAL\n ? CHALLENGE_UNIT_USER\n : CHALLENGE_UNIT_TEAM,\n startDate: startDate.toISOString(),\n endDate: endDate.toISOString(),\n competitionType: selectedCompetition,\n language,\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n duplicateChallengeId: challengeToDuplicateId,\n ...restParams,\n };\n if (icon) {\n body.icon = {\n sizes: icon,\n };\n }\n if (!challengeToDuplicateId) {\n body.themeId = themeId;\n }\n if (selectedGroup === GROUP_TEAM) {\n body.teamCreationEnabled = teamsType === TEAMS_TYPE_USER_CREATED;\n if (teamsType === TEAMS_TYPE_USER_CREATED) {\n body.playersPerTeam = teams;\n } else {\n body.teams = teams;\n }\n }\n if (selectedCompetition === COMPETITION_GOALS) {\n body.goalPointValue = goalPointValue;\n body.goalsType = goalsType;\n }\n return body;\n};\n\nexport const transformChallenge = (challenge, actions) =>\n challenge && {\n rulesType: challenge.rulesType,\n unit: challenge.challengeUnit,\n contentFilterUrl: challenge.contentFilterIcon?.[0]?.url,\n contentFilterText: challenge.contentFilterText,\n description: challenge.basicsInfo.description,\n howToWin: challenge.howToWinInfo.description,\n rules: challenge.rulesInfo.description,\n prizes: challenge.prizes,\n autoJoin: challenge.joinCommunityMembersAutomatically,\n makeChallengeCategory: challenge.makeChallengeCategory,\n includeActionIds: challenge.includeActionIds || [],\n excludeActionIds: challenge.excludeActionIds || [],\n actions: {\n ...actions,\n data: actions?.data?.map((action) => transformAction(action)) || [],\n },\n };\n\nexport const transformUpdateChallengeRequest = (\n image,\n author,\n iconData,\n info,\n startDate,\n endDate,\n name,\n teams,\n) => ({\n ...(image != null\n ? {\n headlinePhoto: {\n photo: {\n sizes: image,\n },\n photoAuthorName: author,\n },\n }\n : {}),\n ...(iconData != null\n ? {\n icon: {\n sizes: iconData,\n },\n }\n : {}),\n basicDescription: {\n [i18n.language]: info.description,\n },\n startDate: startDate.valueOf(),\n endDate: endDate.valueOf(),\n howToWin: {\n [i18n.language]: info.howToWin,\n },\n rulesInfo: {\n [i18n.language]: info.rules,\n },\n challengeName: {\n [i18n.language]: name,\n },\n prizes: info.prizes.map((prize) => {\n const transformedPrize = {\n ...prize,\n id: prize.id,\n name: {\n [i18n.language]: prize.name,\n },\n description: {\n [i18n.language]: prize.description,\n },\n };\n /*\n * The prize imageSizes will only have a file field if a new image was uploaded\n * due to a quirk in the API\n */\n if (prize.imageSizes?.[0]?.file) {\n transformedPrize.updateImage = {\n sizes: prize.imageSizes,\n };\n }\n return transformedPrize;\n }),\n teams,\n joinCommunityMembersAutomatically: info.autoJoin,\n makeChallengeCategory: info.makeChallengeCategory,\n includeActionIds: info.includeActionIds,\n excludeActionIds: info.excludeActionIds,\n});\n","export const CHALLENGE_UNIT_USER = 'User';\nexport const CHALLENGE_UNIT_TEAM = 'Team';\nexport const CHALLENGE_PARTICIPATION_JOINED_STATUS = 'joined';\nexport const CHALLENGE_PARTICIPATION_UN_JOINED_STATUS = 'unjoined';\n","import { all, call, put, takeEvery, takeLatest } from 'redux-saga/effects';\nimport get from 'lodash/get';\nimport {\n analyticsActivityFailed,\n analyticsActivitySucceeded,\n analyticsImpactFailed,\n analyticsImpactSucceeded,\n analyticsPhotosFailed,\n analyticsPhotosSucceeded,\n analyticsUsersFailed,\n analyticsUsersSucceeded,\n CHALLENGE_ACTIVATION_REQUESTED,\n CHALLENGE_ADMIN_SHARE_IMAGE_URL_REQUESTED,\n CHALLENGE_ANALYTICS_ACTIVITY_REQUESTED,\n CHALLENGE_ANALYTICS_IMPACT_REQUESTED,\n CHALLENGE_ANALYTICS_PHOTOS_REQUESTED,\n CHALLENGE_ANALYTICS_USERS_REQUESTED,\n CHALLENGE_CREATION_REQUESTED,\n CHALLENGE_DEACTIVATION_REQUESTED,\n CHALLENGE_GRAPH_DATA_REQUESTED,\n CHALLENGE_LEADERBOARD_REQUESTED,\n CHALLENGE_PENALTIES_REQUESTED,\n CHALLENGE_REMOVE_USER_REQUESTED,\n CHALLENGE_REPORT_REQUESTED,\n CHALLENGE_SHARE_URL_REQUESTED,\n CHALLENGE_WARN_USER_REQUESTED,\n challengeActivationRequestFailed,\n challengeActivationRequestSucceeded,\n challengeAdminShareImageURLRequestFailed,\n challengeAdminShareImageURLRequestSucceeded,\n challengeCreationRequestFailed,\n challengeCreationRequestSucceeded,\n challengeDeactivationRequestFailed,\n challengeDeactivationRequestSucceeded,\n challengeLeaderboardFailed,\n challengeLeaderboardLoaded,\n challengeLeaderboardRequested,\n challengeReportRequestFailed,\n challengeReportRequestSucceeded,\n CHALLENGES_REQUESTED,\n challengeShareURLRequestFailed,\n challengeShareURLRequestSucceeded,\n challengesRequestFailed,\n challengesRequestSucceeded,\n graphDataFailed,\n graphDataSucceeded,\n JOIN_CHALLENGE_REQUESTED,\n joinChallengeFailed,\n joinChallengeSucceeded,\n penaltiesFailed,\n penaltiesSuccessed,\n removeUserRequestFailed,\n removeUserRequestSucceeded,\n TEAM_DETAILS_REQUESTED,\n TEAM_LEADERBOARD_REQUESTED,\n teamDetailsRequestFailed,\n teamDetailsRequestSucceeded,\n teamLeaderboardRequestFailed,\n teamLeaderboardRequestSucceeded,\n UNJOIN_CHALLENGE_REQUESTED,\n unjoinChallengeFailed,\n unjoinChallengeSucceeded,\n USER_CHALLENGES_REQUESTED,\n userChallengesFailed,\n userChallengesSucceeded,\n VIEW_CHALLENGE_REQUESTED,\n viewChallengeFailed,\n viewChallengeSucceeded,\n warnUserRequestFailed,\n warnUserRequestSucceeded,\n CHALLENGE_SEARCH_REQUESTED,\n challengeSearchRequestSucceeded,\n challengeSearchRequestFailed,\n CHALLENGE_DELETION_REQUESTED,\n challengeDeletionRequestSucceeded,\n challengeDeletionRequestFailed,\n} from './actions';\nimport {\n fetchWithAuth,\n getErrorsFromPossibleAPIErrorResponse,\n postWithAuth,\n} from '../utils/api';\nimport { transformChallengeCreateQuery } from './transforms';\nimport i18n from 'i18next';\nimport { trackEvent } from '../utils/analytics';\nimport {\n EVENT_CHALLENGE_CREATED,\n EVENT_CHALLENGE_JOINED,\n} from '../constants/analyticsEvents';\n\nexport function* getViewChallengeData(action) {\n const { challengeId, communityId } = action.payload;\n try {\n const challengeData = yield call(\n fetchWithAuth,\n `/challenges/${challengeId}`,\n { query: { communityId } },\n );\n const challenge = challengeData.response.challenges[0];\n\n yield put(\n viewChallengeSucceeded({\n challenge,\n }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get View Challenge data',\n );\n yield put(viewChallengeFailed(errors));\n }\n}\n\nexport function* joinChallenge(action) {\n const { challengeId, communityId, teamId } = action.payload;\n trackEvent(EVENT_CHALLENGE_JOINED, {\n challenge_id: challengeId,\n });\n try {\n yield call(fetchWithAuth, `challenges/${challengeId}/join`, {\n method: 'POST',\n body: { communityId, teamId },\n });\n yield all([\n put(joinChallengeSucceeded({ teamId })),\n put(challengeLeaderboardRequested({ challengeId, communityId })),\n ]);\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get Join Challenge data',\n );\n yield put(joinChallengeFailed(errors));\n }\n}\n\nexport function* unjoinChallenge(action) {\n try {\n const { challengeId, communityId } = action.payload;\n yield call(fetchWithAuth, `challenges/${challengeId}/unjoin`, {\n method: 'POST',\n body: { communityId },\n });\n yield all([\n put(unjoinChallengeSucceeded()),\n put(challengeLeaderboardRequested({ challengeId, communityId })),\n ]);\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get Unjoin Challenge data',\n );\n yield put(unjoinChallengeFailed(errors));\n }\n}\n\nexport function* getChallengeLeaderboard(action) {\n try {\n const {\n challengeId,\n communityId,\n limit = 25,\n skip = 0,\n challengeUnit = null,\n } = action.payload;\n const query = {\n communityId,\n includeGoals: false,\n limit,\n skip,\n };\n if (challengeUnit) {\n query.challengeUnit = challengeUnit;\n }\n const leaderboardData = yield call(\n fetchWithAuth,\n `/challenges/${challengeId}/leaderboard`,\n { query },\n );\n const leaderboard = leaderboardData?.response?.leaderboard || [];\n yield put(\n challengeLeaderboardLoaded({\n leaderboard,\n challengeUnit,\n skip,\n }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get Challenge Leaderboard data',\n );\n yield put(challengeLeaderboardFailed(errors));\n }\n}\n\nexport function* analyticsGraphDataRequested({ payload }) {\n try {\n const { communityId, challengeId, type, ...paramsQuery } = payload;\n\n const result = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/challenge/${challengeId}/${type}`,\n {\n query: paramsQuery,\n },\n );\n const graphData = get(result, 'response.analytics[0]');\n\n yield put(graphDataSucceeded(graphData));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get analytics graph data, please try again later.',\n );\n yield put(graphDataFailed(errors));\n }\n}\n\nexport function* penaltiesRequested({ payload }) {\n try {\n const { communityId, challengeId, sortBy } = payload;\n let options = {};\n if (sortBy) {\n const { id, desc } = sortBy;\n options = {\n sort: id === 'points' ? 'score' : id,\n order: desc ? -1 : 1,\n };\n }\n const queryParams = Object.assign({ skip: 0, limit: 30 }, options);\n const penaltiesData = yield call(\n fetchWithAuth,\n `kiosk/group/${communityId}/challenges/${challengeId}/penalties`,\n { query: queryParams },\n );\n const penalties = penaltiesData.response.challenges;\n\n yield put(penaltiesSuccessed(penalties));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get Penalties data',\n );\n yield put(penaltiesFailed(errors));\n }\n}\n\nexport function* analyticsActivityRequested({ payload }) {\n try {\n const {\n communityId,\n challengeId,\n startDate,\n endDate,\n summaryType,\n } = payload;\n const result = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/challenge/${challengeId}/timeseries/summary`,\n {\n query: {\n summaryType,\n startDateIso: startDate,\n endDateIso: endDate,\n },\n },\n );\n\n yield put(\n analyticsActivitySucceeded(\n get(result, 'response.analytics[0].activities') || [],\n ),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get analytics Activity data, please try again later.',\n );\n\n yield put(analyticsActivityFailed(errors));\n }\n}\n\nexport function* analyticsUsersRequested({ payload }) {\n try {\n const {\n challengeId,\n communityId,\n startDate,\n endDate,\n summaryType,\n } = payload;\n const result = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/challenge/${challengeId}/timeseries/summary`,\n {\n query: {\n summaryType,\n startDateIso: startDate,\n endDateIso: endDate,\n },\n },\n );\n const analyticsUsers = get(result, 'response.analytics[0]');\n\n yield put(analyticsUsersSucceeded(analyticsUsers));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get analytics Users data',\n );\n yield put(analyticsUsersFailed(errors));\n }\n}\n\nexport function* analyticsImpactRequested({ payload }) {\n try {\n const { communityId, challengeId, startDate, endDate } = payload;\n const result = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/challenge/${challengeId}/impact/summary`,\n {\n query: {\n metric: 'buzzBaseAction',\n startDateIso: startDate,\n endDateIso: endDate,\n },\n },\n );\n yield put(analyticsImpactSucceeded(result.response['impact-stats']));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get analytics Impact data, please try again later.',\n );\n yield put(analyticsImpactFailed(errors));\n }\n}\n\nexport function* analyticsPhotosRequested({ payload }) {\n try {\n const { communityId, challengeId, skip, limit } = payload;\n const result = yield call(\n fetchWithAuth,\n `/challenges/${challengeId}/buzz`,\n {\n query: {\n communityId,\n limit,\n skip,\n },\n },\n );\n const analyticsPhotos = get(result, 'response') || [];\n\n yield put(analyticsPhotosSucceeded(analyticsPhotos));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get analytics photos data',\n );\n yield put(analyticsPhotosFailed(errors));\n }\n}\n\nexport function* createChallenge(action) {\n try {\n const body = transformChallengeCreateQuery(action.payload);\n trackEvent(EVENT_CHALLENGE_CREATED, {\n theme_id: action.payload?.themeId,\n community_id: action.payload.communityId,\n });\n const data = yield call(\n fetchWithAuth,\n `/kiosk/group/${action.payload.communityId}/challenges/create`,\n {\n method: 'POST',\n body,\n },\n );\n let challenge = data.response.challenges[0];\n challenge = {\n ...challenge,\n description: action.payload.challengeDescription,\n };\n yield put(\n challengeCreationRequestSucceeded({\n challenge,\n }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n\n 'Failed to create challenge',\n );\n yield put(challengeCreationRequestFailed(errors));\n }\n}\n\nexport function* getGroupedChallenges(action) {\n try {\n const { communityId, group } = action.payload;\n let limit = 1000;\n const data = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/challenges`,\n {\n query: {\n communityId,\n groupBy: group,\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n sortBy: 'startDate',\n order: -1,\n limit,\n context: 'group',\n },\n },\n );\n let challenges;\n if (!data.response || !data.response.totalCount) {\n challenges = [];\n } else {\n challenges = data.response.challenges;\n if (data.response.totalCount > limit) {\n limit = data.response.totalCount;\n const allData = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/challenges`,\n {\n query: {\n communityId,\n groupBy: group,\n timezone: Intl.DateTimeFormat().resolvedOptions()\n .timeZone,\n sortBy: 'startDate',\n order: -1,\n limit,\n context: 'group',\n },\n },\n );\n challenges = allData.response?.challenges || [];\n }\n }\n yield put(\n challengesRequestSucceeded({\n challenges,\n group,\n }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get Challenges',\n );\n yield put(challengesRequestFailed(errors, action.payload.group));\n }\n}\n\nexport function* activateChallenge(action) {\n try {\n const {\n payload: { request },\n } = action;\n const responseData = yield call(\n fetchWithAuth,\n `/kiosk/group/${request.communityId}/challenges/activate`,\n {\n method: 'POST',\n body: request,\n },\n );\n const response = responseData.response;\n yield put(challengeActivationRequestSucceeded(response));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to activate challenge',\n );\n yield put(challengeActivationRequestFailed(errors));\n }\n}\n\nexport function* deactivateChallenge(action) {\n try {\n const {\n payload: { request },\n } = action;\n const responseData = yield call(\n fetchWithAuth,\n `/kiosk/group/${request.communityId}/challenges/optout`,\n {\n method: 'POST',\n body: request,\n },\n );\n const response = responseData.response;\n yield put(challengeDeactivationRequestSucceeded(response));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to deactivate challenge',\n );\n yield put(challengeDeactivationRequestFailed(errors));\n }\n}\n\nexport function* getTeamDetails(action) {\n try {\n const {\n payload: {\n request: { communityId, teamId },\n },\n } = action;\n const responseData = yield call(fetchWithAuth, `/teams/${teamId}`, {\n query: {\n communityId,\n },\n });\n const team = responseData.response.teams[0];\n yield put(teamDetailsRequestSucceeded(team));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get team details',\n );\n yield put(teamDetailsRequestFailed(errors));\n }\n}\n\nexport function* getTeamLeaderboard(action) {\n try {\n const {\n payload: {\n request: { communityId, teamId },\n },\n } = action;\n const responseData = yield call(\n fetchWithAuth,\n `/teams/${teamId}/leaderboard`,\n {\n query: {\n communityId,\n },\n },\n );\n const leaderboard = responseData.response?.leaderboard || [];\n yield put(teamLeaderboardRequestSucceeded(leaderboard));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get team leaderboard',\n );\n yield put(teamLeaderboardRequestFailed(errors));\n }\n}\n\nexport function* requestChallengeReport({ payload: { challengeId } }) {\n try {\n yield call(fetchWithAuth, `/challenges/${challengeId}/report`, {\n method: 'GET',\n json: false,\n });\n yield put(challengeReportRequestSucceeded(i18n.t('report.queued')));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('report.failed'),\n );\n yield put(challengeReportRequestFailed(errors));\n }\n}\n\nexport function* postWarnUser({\n payload: { challengeId, userId, communityId },\n}) {\n try {\n yield call(\n postWithAuth,\n `kiosk/organization/${communityId}/challenges/${challengeId}/penalties/${userId}/warn`,\n );\n yield put(\n warnUserRequestSucceeded(\n i18n.t('challenge.penalties.warn.success'),\n ),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('challenge.penalties.warn.failed'),\n );\n yield put(warnUserRequestFailed(errors));\n }\n}\n\nexport function* postRemoveUser({\n payload: { challengeId, userId, communityId },\n}) {\n try {\n yield call(\n postWithAuth,\n `kiosk/organization/${communityId}/challenges/${challengeId}/penalties/${userId}/remove`,\n );\n yield put(\n removeUserRequestSucceeded(\n i18n.t('challenge.penalties.remove.success'),\n ),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('challenge.penalties.remove.failed'),\n );\n yield put(removeUserRequestFailed(errors));\n }\n}\n\nexport function* getUserChallenges({ payload: { options } }) {\n try {\n const response = yield call(fetchWithAuth, '/challenges', {\n query: { ...options },\n });\n yield put(userChallengesSucceeded(response.response?.challenges || []));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get user challenges',\n );\n yield put(userChallengesFailed(errors));\n }\n}\n\nexport function* getChallengeShareURL({\n payload: { challengeId, includeOrgInvite },\n}) {\n try {\n const response = yield call(\n fetchWithAuth,\n `/challenges/${challengeId}/share`,\n {\n query: {\n includeOrgInvite: !!includeOrgInvite,\n },\n },\n );\n const url = response.response['dynamic-links'][0].url;\n yield put(challengeShareURLRequestSucceeded(url));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('challenge.saga.errors.shareURL'),\n );\n yield put(challengeShareURLRequestFailed(errors));\n }\n}\n\nexport function* getChallengeAdminShareImageURL({\n payload: { communityId, challengeId, includeOrgInvite },\n}) {\n try {\n const response = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/challenges/${challengeId}/shareImage`,\n {\n query: {\n includeOrgInvite: !!includeOrgInvite,\n },\n },\n );\n const url = response.response.urls[0].url;\n yield put(challengeAdminShareImageURLRequestSucceeded(url));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('challenge.saga.errors.shareURL'),\n );\n yield put(challengeAdminShareImageURLRequestFailed(errors));\n }\n}\n\nexport function* searchChallenges({ payload: { searchString } }) {\n try {\n const data = yield call(fetchWithAuth, `/challenges/search`, {\n query: {\n searchString,\n },\n });\n const challenges = data.response ? data.response.challenges : [];\n yield put(challengeSearchRequestSucceeded(challenges));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('challenge.saga.errors.search'),\n );\n yield put(challengeSearchRequestFailed(errors));\n }\n}\n\nexport function* deleteChallenge({ payload: { request } }) {\n try {\n yield call(\n fetchWithAuth,\n `/kiosk/group/${request.communityId}/challenges/${request.challengeId}/delete`,\n {\n method: 'DELETE',\n },\n );\n yield put(\n challengeDeletionRequestSucceeded(\n i18n.t('challenge.delete.success'),\n ),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('error.unknown'),\n );\n yield put(challengeDeletionRequestFailed(errors));\n }\n}\n\nexport default function* challengeSaga() {\n yield all([\n takeLatest(VIEW_CHALLENGE_REQUESTED, getViewChallengeData),\n takeLatest(CHALLENGE_LEADERBOARD_REQUESTED, getChallengeLeaderboard),\n takeLatest(JOIN_CHALLENGE_REQUESTED, joinChallenge),\n takeLatest(UNJOIN_CHALLENGE_REQUESTED, unjoinChallenge),\n takeLatest(CHALLENGE_GRAPH_DATA_REQUESTED, analyticsGraphDataRequested),\n takeLatest(\n CHALLENGE_ANALYTICS_ACTIVITY_REQUESTED,\n analyticsActivityRequested,\n ),\n takeLatest(\n CHALLENGE_ANALYTICS_USERS_REQUESTED,\n analyticsUsersRequested,\n ),\n takeLatest(\n CHALLENGE_ANALYTICS_IMPACT_REQUESTED,\n analyticsImpactRequested,\n ),\n takeLatest(\n CHALLENGE_ANALYTICS_PHOTOS_REQUESTED,\n analyticsPhotosRequested,\n ),\n takeLatest(CHALLENGE_PENALTIES_REQUESTED, penaltiesRequested),\n takeLatest(CHALLENGE_CREATION_REQUESTED, createChallenge),\n takeEvery(CHALLENGES_REQUESTED, getGroupedChallenges),\n takeLatest(CHALLENGE_ACTIVATION_REQUESTED, activateChallenge),\n takeLatest(CHALLENGE_DEACTIVATION_REQUESTED, deactivateChallenge),\n takeLatest(CHALLENGE_REPORT_REQUESTED, requestChallengeReport),\n takeLatest(TEAM_DETAILS_REQUESTED, getTeamDetails),\n takeLatest(TEAM_LEADERBOARD_REQUESTED, getTeamLeaderboard),\n takeLatest(CHALLENGE_WARN_USER_REQUESTED, postWarnUser),\n takeLatest(CHALLENGE_REMOVE_USER_REQUESTED, postRemoveUser),\n takeLatest(USER_CHALLENGES_REQUESTED, getUserChallenges),\n takeLatest(CHALLENGE_SHARE_URL_REQUESTED, getChallengeShareURL),\n takeLatest(\n CHALLENGE_ADMIN_SHARE_IMAGE_URL_REQUESTED,\n getChallengeAdminShareImageURL,\n ),\n takeLatest(CHALLENGE_SEARCH_REQUESTED, searchChallenges),\n takeLatest(CHALLENGE_DELETION_REQUESTED, deleteChallenge),\n ]);\n}\n","export const CHALLENGE_TEMPLATE_STATUS_DRAFT = 'Draft';\nexport const CHALLENGE_TEMPLATE_STATUS_PUBLISHED = 'Published';\nexport const CHALLENGE_TEMPLATE_STATUS_CUSTOM = 'Custom';\nexport const CHALLENGE_TEMPLATE_STATUSES = [\n CHALLENGE_TEMPLATE_STATUS_PUBLISHED,\n CHALLENGE_TEMPLATE_STATUS_DRAFT,\n CHALLENGE_TEMPLATE_STATUS_CUSTOM,\n];\n","import { call, put, takeLatest } from 'redux-saga/effects';\nimport {\n SAVE_DRAFT_REQUESTED,\n saveDraftFailed,\n saveDraftSucceeded,\n} from './actions';\nimport {\n fetchWithAuth,\n getErrorsFromPossibleAPIErrorResponse,\n} from '../../utils/api';\nimport { viewChallengeRequested } from '../../challenges/actions';\nimport { trackEvent } from '../../utils/analytics';\nimport { updateIntercomCompanyData } from '../../config/intercom';\nimport {\n EVENT_CHALLENGE_EDITED,\n EVENT_CHALLENGE_PUBLISHED,\n} from '../../constants/analyticsEvents';\nimport { CHALLENGE_TEMPLATE_STATUS_DRAFT } from '../../constants/challenges';\nimport i18n from '../../localization/i18n';\n\nfunction* saveDraft(action) {\n const {\n payload: { challengeId, communityId, body, startDate, endDate },\n } = action;\n\n trackEvent(EVENT_CHALLENGE_EDITED, {\n challenge_id: challengeId,\n });\n try {\n yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/challenges/${challengeId}/edit`,\n {\n method: 'POST',\n body,\n query: {\n communityId,\n /*\n * This particular request, for some reason, must contain this param,\n * otherwise 500 Interval Server Error happens.\n */\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n },\n },\n );\n yield put(saveDraftSucceeded(body?.publish));\n if (body?.publish) {\n trackEvent(EVENT_CHALLENGE_PUBLISHED, {\n startDate: startDate,\n endDate: endDate,\n });\n }\n\n // If the challenge is no longer a draft, it has likely been published prior and we can update intercom data.\n if (body?.status !== CHALLENGE_TEMPLATE_STATUS_DRAFT) {\n updateIntercomCompanyData({\n last_challenge_start_at: startDate,\n last_challenge_end_at: endDate,\n });\n }\n\n yield put(viewChallengeRequested({ challengeId, communityId }));\n } catch (error) {\n const message =\n body?.status === CHALLENGE_TEMPLATE_STATUS_DRAFT\n ? i18n.t('challenge.save.failed.draft')\n : i18n.t('challenge.save.failed.published');\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n message,\n );\n yield put(saveDraftFailed(errors));\n }\n}\n\nexport default function* updateChallengeSaga() {\n yield takeLatest(SAVE_DRAFT_REQUESTED, saveDraft);\n}\n","import { CHEATING_ACTIONS } from './constants';\n\nexport const getCheatingAction = (actions) =>\n actions?.find((action) => CHEATING_ACTIONS.includes(action.actionName));\n","import {\n all,\n call,\n put,\n select,\n takeLatest,\n takeEvery,\n} from 'redux-saga/effects';\nimport {\n fetchWithAuth,\n getErrorsFromPossibleAPIErrorResponse,\n uploadWithAuth,\n} from '../utils/api';\nimport { trackEvent } from '../utils/analytics';\nimport {\n ACTION_CATEGORIES_REQUESTED,\n ACTION_CUSTOMIZATION_REQUESTED,\n ACTION_REQUESTED,\n ACTION_SHARE_URL_REQUESTED,\n actionCategoriesRequestFailed,\n actionCategoriesRequestSucceeded,\n actionCustomizationRequestFailed,\n actionCustomizationRequestSucceeded,\n actionRequested,\n actionRequestFailed,\n actionRequestSucceeded,\n ACTIONS_REQUESTED,\n actionShareURLRequestFailed,\n actionShareURLRequestSucceeded,\n actionsRequested,\n actionsRequestFailed,\n actionsRequestSucceeded,\n ADD_EXCLUDE_ACTION_REQUESTED,\n ADD_INCLUDE_ACTION_REQUESTED,\n LOG_ACTION_REQUESTED,\n logActionFailed,\n logActionSucceeded,\n SDGS_REQUESTED,\n sdgsRequestFailed,\n sdgsRequestSucceeded,\n URL_METADATA_REQUESTED,\n urlMetadataRequestFailed,\n urlMetadataRequestSucceeded,\n} from './actions';\nimport { getActiveCommunityId } from '../user/selectors';\nimport { getCheatingAction } from './utils';\nimport i18n from 'i18next';\nimport { PIN_ADMIN_VISIBILITY_EXCLUDED } from './constants';\nimport {\n EVENT_ACTION_EDITED,\n EVENT_ACTION_LOGGED,\n} from '../constants/analyticsEvents';\n\nexport function* getAction({ payload: { actionId, communityId } }) {\n try {\n const actionData = yield call(fetchWithAuth, `/pins/${actionId}`, {\n query: { communityId },\n });\n const action = actionData.response.pins[0];\n yield put(actionRequestSucceeded({ action }));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get Action data',\n );\n yield put(actionRequestFailed(errors));\n }\n}\n\nexport function* getActions({ payload: { communityId, filters } }) {\n try {\n const result = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/actions`,\n { query: filters },\n );\n const actions = result.response?.pins;\n const count = result.response?.totalCount;\n filters = {\n ...filters,\n pagination: {\n totalCount: count,\n },\n };\n\n yield put(actionsRequestSucceeded(actions, filters));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get exclude action data',\n );\n yield put(actionsRequestFailed(errors, filters));\n }\n}\n\nexport function* logAction({\n payload: { actionId, communityId, options = {} },\n}) {\n trackEvent(EVENT_ACTION_LOGGED, {\n action_id: actionId,\n });\n try {\n const { file = null, ...body } = options;\n const logActionData = yield call(fetchWithAuth, `/buzz/create`, {\n method: 'POST',\n body: { pinId: actionId, communityId, ...body },\n });\n const logActionResponse = logActionData.response;\n yield put(logActionSucceeded(logActionResponse));\n const activity = logActionResponse?.activities?.[0];\n if (activity && !getCheatingAction(activity.actions)) {\n try {\n const formData = new FormData();\n file && formData.append('file', file);\n formData.append('buzz', activity.id);\n options.message && formData.append('message', options.message);\n formData.append('pinId', actionId);\n yield call(uploadWithAuth, `/buzz/${activity.id}/post`, {\n method: 'POST',\n body: formData,\n });\n } catch (error) {\n // fail silently\n }\n }\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to Log Action',\n );\n yield put(logActionFailed(errors, error.response.status));\n }\n}\n\nexport function* addExcludeAction({\n payload: { actionIds, actionDuplicationCommunityIds, filters },\n}) {\n try {\n const state = yield select();\n const communityId = getActiveCommunityId(state);\n const result = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/action/exclude`,\n {\n method: 'POST',\n body: {\n pinIds: actionIds,\n actionDuplicationCommunityIds,\n },\n },\n );\n const excludedAction = result.response?.pins;\n\n yield put(\n actionsRequestSucceeded(excludedAction, {\n visibility: PIN_ADMIN_VISIBILITY_EXCLUDED,\n }),\n );\n yield put(actionsRequested(communityId, filters));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to add exclude Actions',\n );\n yield put(logActionFailed(errors));\n }\n}\n\nexport function* addIncludeAction({\n payload: { actionIds, actionDuplicationCommunityIds, filters },\n}) {\n try {\n const state = yield select();\n const communityId = getActiveCommunityId(state);\n const result = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/action/include`,\n {\n method: 'POST',\n body: {\n pinIds: actionIds,\n actionDuplicationCommunityIds,\n },\n },\n );\n const excludedAction = result.response?.pins;\n\n yield put(\n actionsRequestSucceeded(excludedAction, {\n visibility: PIN_ADMIN_VISIBILITY_EXCLUDED,\n }),\n );\n yield put(actionsRequested(communityId, filters));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to add include Actions',\n );\n yield put(logActionFailed(errors));\n }\n}\n\nexport function* getUrlMetadata(action) {\n try {\n const {\n payload: { url, saveImage = false, confirm = false },\n } = action;\n const response = yield call(fetchWithAuth, '/urlmetadata', {\n query: {\n url,\n saveImage,\n },\n });\n yield put(urlMetadataRequestSucceeded(response, confirm));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get URL metadata',\n );\n yield put(urlMetadataRequestFailed(errors));\n }\n}\n\nexport function* customizeAction(action) {\n const {\n payload: {\n request: {\n urls,\n videos,\n photos,\n communityId,\n actionId,\n descriptions,\n actionDuplicationCommunityIds,\n },\n },\n } = action;\n trackEvent(EVENT_ACTION_EDITED, {\n action_id: actionId,\n });\n try {\n const requestBody = {\n pinId: actionId,\n communityURLs: urls,\n communityPhotos: photos,\n communityYouTubes: videos,\n actionDuplicationCommunityIds,\n };\n if (descriptions != null) {\n requestBody.communityDescriptions = descriptions;\n }\n yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/action/${actionId}/customize`,\n {\n method: 'POST',\n query: {\n communityId,\n },\n body: requestBody,\n },\n );\n yield put(actionCustomizationRequestSucceeded(i18n.t('action.save')));\n yield put(actionRequested({ communityId, actionId }));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to customize action',\n );\n yield put(actionCustomizationRequestFailed(errors));\n }\n}\n\nexport function* getActionCategories({ payload: { options } }) {\n try {\n const response = yield call(fetchWithAuth, '/categories', {\n query: { ...options },\n });\n yield put(\n actionCategoriesRequestSucceeded(response.response?.categories),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get categories',\n );\n yield put(actionCategoriesRequestFailed(errors));\n }\n}\n\nexport function* getActionShareURL({ payload: { actionId } }) {\n try {\n const data = yield call(fetchWithAuth, `/pins/${actionId}/share`);\n const url = data.response['dynamic-links'][0].url;\n if (url) {\n yield put(actionShareURLRequestSucceeded(url, actionId));\n } else {\n yield put(\n actionShareURLRequestFailed([\n i18n.t('activitiesPage.getShareURLError'),\n ]),\n );\n }\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('activitiesPage.getShareURLError'),\n );\n yield put(actionShareURLRequestFailed(errors));\n }\n}\n\nexport function* getSDGs() {\n try {\n const data = yield call(fetchWithAuth, `/pins/sdgs`);\n const sdgs = data.response['sustainable-development-goals'];\n if (sdgs) {\n yield put(sdgsRequestSucceeded(sdgs));\n } else {\n yield put(sdgsRequestFailed([i18n.t('error.unknown')]));\n }\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('error.unknown'),\n );\n yield put(sdgsRequestFailed(errors));\n }\n}\n\nexport default function* actionSaga() {\n yield all([\n takeLatest(ACTION_REQUESTED, getAction),\n takeEvery(ACTIONS_REQUESTED, getActions),\n takeLatest(LOG_ACTION_REQUESTED, logAction),\n takeLatest(ADD_EXCLUDE_ACTION_REQUESTED, addExcludeAction),\n takeLatest(ADD_INCLUDE_ACTION_REQUESTED, addIncludeAction),\n takeLatest(URL_METADATA_REQUESTED, getUrlMetadata),\n takeLatest(ACTION_CUSTOMIZATION_REQUESTED, customizeAction),\n takeLatest(ACTION_CATEGORIES_REQUESTED, getActionCategories),\n takeLatest(ACTION_SHARE_URL_REQUESTED, getActionShareURL),\n takeLatest(SDGS_REQUESTED, getSDGs),\n ]);\n}\n","import { all, call, put, takeLatest } from 'redux-saga/effects';\nimport {\n fetchWithAuth,\n getErrorsFromPossibleAPIErrorResponse,\n} from '../../utils/api';\nimport {\n CHALLENGE_PHOTOS_REQUESTED,\n challengePhotosRequestFailed,\n challengePhotosRequestSucceeded,\n COMMUNITY_PHOTOS_REQUESTED,\n communityPhotosRequestFailed,\n communityPhotosRequestSucceeded,\n} from './actions';\n\nexport function* getMorePhotos({ payload }) {\n try {\n const data = yield call(\n fetchWithAuth,\n `/community/${payload.communityId}/buzz`,\n {\n query: {\n communityId: payload.communityId,\n afterTimestamp: payload.afterTimestamp,\n beforeTimestamp: payload.beforeTimestamp,\n skip: payload.skip,\n limit: payload.limit,\n photosOnly: true,\n sort: 'likesfirst',\n },\n },\n );\n const activities = (data.response && data.response.activities) || [];\n yield put(\n communityPhotosRequestSucceeded({\n photos: activities,\n skip: payload.skip,\n }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to load photos',\n );\n yield put(communityPhotosRequestFailed(errors));\n }\n}\n\nexport function* getMoreChallengePhotos({ payload }) {\n try {\n const data = yield call(\n fetchWithAuth,\n `/challenges/${payload.challengeId}/buzz`,\n {\n query: {\n communityId: payload.communityId,\n skip: payload.skip,\n limit: payload.limit,\n photosOnly: true,\n sort: 'likesfirst',\n },\n },\n );\n const activities = (data.response && data.response.activities) || [];\n yield put(\n challengePhotosRequestSucceeded({\n photos: activities,\n skip: payload.skip,\n }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to load photos',\n );\n yield put(challengePhotosRequestFailed(errors));\n }\n}\n\nexport default function* analyticsPhotoSaga() {\n yield all([\n takeLatest(COMMUNITY_PHOTOS_REQUESTED, getMorePhotos),\n takeLatest(CHALLENGE_PHOTOS_REQUESTED, getMoreChallengePhotos),\n ]);\n}\n","import { all, call, put, takeEvery, takeLatest } from 'redux-saga/effects';\nimport {\n ACTIVITIES_REQUESTED,\n activitiesRequestFailed,\n activitiesRequestSucceeded,\n ANALYTICS_GRAPH_DATA_REQUESTED,\n analyticsGraphDataRequestFailed,\n analyticsGraphDataRequestSucceeded,\n GRAPH_DATA_REQUESTED,\n graphDataRequestFailed,\n graphDataRequestSucceeded,\n IMPACT_STATS_REQUESTED,\n impactStatsRequestFailed,\n impactStatsRequestSucceeded,\n USERS_ANALYTIC_REQUESTED,\n usersAnalyticRequestFailed,\n usersAnalyticRequestSucceeded,\n} from './actions';\nimport {\n fetchWithAuth,\n getErrorsFromPossibleAPIErrorResponse,\n} from '../utils/api';\n\nexport function* getActivitiesStats({ payload: { options, communityId } }) {\n try {\n const activityData = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/analytics/timeseries/summary`,\n {\n query: { ...options, summaryType: 'activity' },\n },\n );\n const activities = activityData.response.analytics[0].activities;\n yield put(activitiesRequestSucceeded(activities));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get Activity Stats',\n );\n yield put(activitiesRequestFailed(errors));\n }\n}\n\nexport function* getUsersAnalytic({ payload: { options, communityId } }) {\n try {\n const userData = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/analytics/timeseries/summary`,\n {\n query: { ...options, summaryType: 'users' },\n },\n );\n\n const usersAnalytic = userData.response.analytics[0];\n yield put(usersAnalyticRequestSucceeded(usersAnalytic));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get User Stats',\n );\n yield put(usersAnalyticRequestFailed(errors));\n }\n}\n\nexport function* getImpactStats({ payload: { options, communityId } }) {\n try {\n const userData = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/analytics/impact/summary`,\n {\n query: { ...options, metric: 'buzzBaseAction' },\n },\n );\n const impacts = userData.response['impact-stats'] || [];\n yield put(impactStatsRequestSucceeded(impacts));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get Impact Stats',\n );\n yield put(impactStatsRequestFailed(errors));\n }\n}\n\nexport function* getGraphData({ payload: { options, communityId } }) {\n try {\n const rawGraphData = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/analytics/timeseries`,\n {\n query: options,\n },\n );\n const graphData = rawGraphData.response.analytics[0];\n yield put(graphDataRequestSucceeded(graphData, options?.metric));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get Graph Data',\n );\n yield put(graphDataRequestFailed(errors));\n }\n}\n\nfunction* handleSingleAnalyticsRequest(payload) {\n const { options, communityId, metrics } = payload;\n const requestOptions = { ...options, metric: metrics.join(',') };\n const allMetricData = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/analytics/timeseries`,\n {\n query: requestOptions,\n },\n );\n const graphDataArray = allMetricData.response.analytics;\n yield put(\n analyticsGraphDataRequestSucceeded({\n newGraphData: graphDataArray,\n metrics: metrics,\n }),\n );\n}\n\nfunction* asyncFetchMultipleAnalyticsGraphs(payload) {\n const { options, communityId, metrics } = payload;\n const allMetricData = yield all(\n metrics.map((metric) => {\n const requestOptions = { ...options, metric };\n return call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/analytics/timeseries`,\n {\n query: requestOptions,\n },\n );\n }),\n );\n const graphDataArray = allMetricData.map((data) => {\n return { ...data.response.analytics[0] };\n });\n yield put(\n analyticsGraphDataRequestSucceeded({\n newGraphData: graphDataArray,\n metrics: metrics,\n }),\n );\n}\n\nexport function* getAnalyticsGraphData({ payload }) {\n const { options, metrics } = payload;\n try {\n const { singleRequest = false } = options;\n if (singleRequest) {\n yield call(handleSingleAnalyticsRequest, payload);\n } else {\n yield call(asyncFetchMultipleAnalyticsGraphs, payload);\n }\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get Graph Data',\n );\n yield put(analyticsGraphDataRequestFailed(errors, metrics));\n }\n}\n\nexport default function* analyticsSaga() {\n yield all([\n takeLatest(ACTIVITIES_REQUESTED, getActivitiesStats),\n takeLatest(USERS_ANALYTIC_REQUESTED, getUsersAnalytic),\n takeLatest(IMPACT_STATS_REQUESTED, getImpactStats),\n takeLatest(GRAPH_DATA_REQUESTED, getGraphData),\n takeEvery(ANALYTICS_GRAPH_DATA_REQUESTED, getAnalyticsGraphData),\n ]);\n}\n","import { transformImpactStatsToTotals } from '../common/transforms';\nimport i18next from 'i18next';\n\nexport const transformCommunity = (community) =>\n community && {\n id: community.id,\n image: community.imageSizes?.[0]?.url,\n name: community.name,\n description: community.description,\n impactTotals: transformImpactStatsToTotals(\n community.impactStats?.impactStatTypes,\n ),\n activityTotals: {\n points: community.score,\n logs: community.buzzes,\n actions: community.pinTotal,\n badges: community.badgeTotal,\n members: community.membersCount,\n },\n created: community.created,\n };\n\nexport const transformAdminCommunity = (community) =>\n community && {\n id: community.id,\n image: community.imageSizes?.[0]?.url,\n name: community.name,\n description: community.description,\n members: community.membersCount,\n visibility: community.visibility,\n hasPassword: community.hasPassword,\n created: community.created,\n };\n\nexport const transformCommunityEditRequest = (data) => {\n const lang = i18next.language;\n return {\n ...data,\n internalName: data.name,\n name: { [lang]: data.name },\n description: { [lang]: data.description },\n additionalAdmins: data.additionalAdmins?.map((admin) => admin.title),\n image: data.imageSizes && {\n sizes: data.imageSizes,\n },\n };\n};\n","import { all, call, put, select, takeLatest } from 'redux-saga/effects';\nimport {\n COMMUNITIES_REQUESTED,\n communitiesRequestFailed,\n communitiesRequestSucceeded,\n COMMUNITY_INVITE_LINK_REQUESTED,\n COMMUNITY_REQUESTED,\n COMMUNITY_SEARCH_REQUESTED,\n COMMUNITY_SHARE_IMAGE_REQUESTED,\n COMMUNITY_UPDATE_REQUESTED,\n communityInviteLinkRequestFailed,\n communityInviteLinkRequestSucceeded,\n communityRequestFailed,\n communityRequestSucceeded,\n communitySearchRequestFailed,\n communitySearchRequestSucceeded,\n communityShareImageRequestFailed,\n communityShareImageRequestSucceeded,\n communityUpdateRequestFailed,\n communityUpdateRequestSucceeded,\n CREATE_COMMUNITY_REQUESTED,\n createCommunityRequestFailed,\n createCommunityRequestSucceeded,\n JOIN_COMMUNITY_REQUESTED,\n joinCommunityRequestFailed,\n joinCommunityRequestSucceeded,\n UNJOIN_COMMUNITY_REQUESTED,\n unjoinCommunityRequestFailed,\n unjoinCommunityRequestSucceeded,\n UPLOAD_COMMUNITY_FILE_REQUESTED,\n uploadCommunityFileRequestFailed,\n uploadCommunityFileRequestSucceeded,\n} from './actions';\nimport {\n fetchWithAuth,\n getErrorsFromPossibleAPIErrorResponse,\n uploadWithAuth,\n} from '../utils/api';\nimport i18next from 'i18next';\nimport {\n otherCommunitiesRequested,\n updateUserCommunities,\n} from '../user/actions';\nimport i18n from '../localization/i18n';\nimport { push } from 'connected-react-router';\nimport { getCurrentUser } from '../user/saga';\nimport { getActiveCommunityId } from '../user/selectors';\nimport { transformCommunityEditRequest } from './transforms';\n\nexport function* getCommunity(action) {\n try {\n const {\n payload: { communityId },\n } = action;\n const data = yield call(fetchWithAuth, `/community/${communityId}`, {\n query: {\n communityId,\n },\n });\n const community = data?.response?.communities[0];\n yield put(communityRequestSucceeded(community));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get community data',\n );\n yield put(communityRequestFailed(errors));\n }\n}\n\nexport function* updateCommunity(action) {\n try {\n const {\n payload: { request },\n } = action;\n if (!request.communityId) {\n throw new Error('Community ID is required');\n }\n const updateData = yield call(\n fetchWithAuth,\n `/kiosk/group/${request.communityId}/edit`,\n {\n method: 'POST',\n body: transformCommunityEditRequest(request),\n },\n );\n const response = updateData.response.communities[0];\n yield put(communityUpdateRequestSucceeded(response));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to update community',\n );\n yield put(communityUpdateRequestFailed(errors));\n }\n}\n\nexport function* joinCommunity(action) {\n try {\n const { communityId } = action.payload;\n\n const data = yield call(\n fetchWithAuth,\n `/community/${communityId}/join`,\n {\n method: 'POST',\n },\n );\n\n const response = data.response?.communities;\n yield put(updateUserCommunities(response));\n yield put(otherCommunitiesRequested());\n yield put(joinCommunityRequestSucceeded(response));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18next.t('settings.user.communities.errors.join'),\n );\n\n yield put(joinCommunityRequestFailed(errors));\n }\n}\n\nexport function* unjoinCommunity(action) {\n try {\n const { communityId } = action.payload;\n\n const data = yield call(\n fetchWithAuth,\n `/community/${communityId}/unjoin`,\n {\n method: 'POST',\n },\n );\n\n const response = data.response?.communities;\n yield put(updateUserCommunities(response));\n yield put(otherCommunitiesRequested());\n yield put(unjoinCommunityRequestSucceeded(response));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18next.t('settings.user.communities.errors.leave'),\n );\n yield put(unjoinCommunityRequestFailed(errors));\n }\n}\n\nexport function* getInviteLink(action) {\n try {\n const {\n payload: { communityId },\n } = action;\n const data = yield call(\n fetchWithAuth,\n `/kiosk/organization/${communityId}/invite`,\n {\n query: {\n communityId,\n },\n },\n );\n const url = data.response['dynamic-links'][0].url;\n yield put(communityInviteLinkRequestSucceeded(url));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('community.saga.errors.shareLink'),\n );\n yield put(communityInviteLinkRequestFailed(errors));\n }\n}\n\nexport function* createCommunity(action) {\n try {\n const {\n payload: { requestBody, communityId },\n } = action;\n const data = yield call(\n fetchWithAuth,\n `/kiosk/organization/${communityId}/communities/create`,\n {\n method: 'POST',\n body: transformCommunityEditRequest(requestBody),\n },\n );\n const community = data.response?.communities[0];\n // Get the current user so we get the updated permissions in the background\n yield call(getCurrentUser, {\n payload: { isAuthenticating: false },\n });\n yield put(createCommunityRequestSucceeded(community));\n // Add a query parameter to the URL so we can show a product tour for switching communities\n yield put(push(`/communities/${community.id}?created=1`));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('error.unknown'),\n );\n yield put(createCommunityRequestFailed(errors));\n }\n}\n\nexport function* getCommunities(action) {\n try {\n const communityId = yield select(getActiveCommunityId);\n const data = yield call(\n fetchWithAuth,\n `/kiosk/organization/${communityId}/communities`,\n {\n query: action.payload.options,\n },\n );\n yield put(\n communitiesRequestSucceeded(data.response?.communities || []),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('error.unknown'),\n );\n yield put(communitiesRequestFailed(errors));\n }\n}\n\nexport function* searchCommunities({ payload: { searchString } }) {\n try {\n const data = yield call(fetchWithAuth, `/community/search`, {\n query: {\n searchString,\n },\n });\n const communities = data.response ? data.response.communities : [];\n yield put(communitySearchRequestSucceeded(communities));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18next.t('settings.user.communities.errors.search'),\n );\n yield put(communitySearchRequestFailed(errors));\n }\n}\n\nexport function* getCommunityShareImageUrl({ payload: { communityId } }) {\n try {\n const data = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/shareImage`,\n );\n const url = data.response.urls[0].url;\n yield put(communityShareImageRequestSucceeded(url));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('community.saga.errors.shareLink'),\n );\n yield put(communityShareImageRequestFailed(errors));\n }\n}\n\nexport function* uploadCommunityFile({ payload: { communityId, file } }) {\n try {\n const formData = new FormData();\n formData.append('file', file);\n const response = yield call(\n uploadWithAuth,\n `/kiosk/group/${communityId}/bulk-join`,\n {\n method: 'POST',\n body: formData,\n },\n );\n yield put(uploadCommunityFileRequestSucceeded(response.meta.message));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('error.unknown'),\n );\n yield put(uploadCommunityFileRequestFailed(errors));\n }\n}\n\nexport default function* communitySaga() {\n yield all([\n takeLatest(COMMUNITY_REQUESTED, getCommunity),\n takeLatest(COMMUNITY_UPDATE_REQUESTED, updateCommunity),\n takeLatest(JOIN_COMMUNITY_REQUESTED, joinCommunity),\n takeLatest(UNJOIN_COMMUNITY_REQUESTED, unjoinCommunity),\n takeLatest(COMMUNITY_INVITE_LINK_REQUESTED, getInviteLink),\n takeLatest(COMMUNITY_SEARCH_REQUESTED, searchCommunities),\n takeLatest(CREATE_COMMUNITY_REQUESTED, createCommunity),\n takeLatest(COMMUNITIES_REQUESTED, getCommunities),\n takeLatest(COMMUNITY_SHARE_IMAGE_REQUESTED, getCommunityShareImageUrl),\n takeLatest(UPLOAD_COMMUNITY_FILE_REQUESTED, uploadCommunityFile),\n ]);\n}\n","import { call, put, takeLatest, all } from 'redux-saga/effects';\nimport {\n getErrorsFromPossibleAPIErrorResponse,\n uploadWithAuth,\n} from '../utils/api';\nimport {\n IMAGE_UPLOAD_REQUESTED,\n imageUploadRequestFailed,\n imageUploadRequestSucceeded,\n} from './actions';\n\nexport function* uploadImage(action) {\n try {\n const {\n payload: { communityId, file },\n } = action;\n const formData = new FormData();\n formData.append('file', file);\n const response = yield call(uploadWithAuth, '/image', {\n method: 'POST',\n query: { communityId },\n body: formData,\n });\n yield put(imageUploadRequestSucceeded(response));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to upload image',\n );\n yield put(imageUploadRequestFailed(errors));\n }\n}\n\nexport default function* imageSaga() {\n yield all([takeLatest(IMAGE_UPLOAD_REQUESTED, uploadImage)]);\n}\n","export const AUDIENCE_VALUE_USERS = 'users';\nexport const AUDIENCE_VALUE_COMMUNITIES = 'communities';\nexport const AUDIENCE_VALUE_COMMUNITY_MEMBERS = 'communityMembers';\nexport const AUDIENCE_VALUE_COMMUNITY_MEMBERS_NOT_JOINED =\n 'communityMembersNotJoined';\nexport const AUDIENCE_VALUE_CHALLENGE_TEAMS = 'challengeTeams';\nexport const AUDIENCE_VALUE_CHALLENGE_MEMBERS = 'challengeMembers';\n\nexport const GENERAL_SUBJECT_TYPE = 'general';\nexport const CHALLENGE_SUBJECT_TYPE = 'Challenge';\nexport const ACTION_SUBJECT_TYPE = 'Pin';\n\nexport const VALUE_GENERAL_SUBJECT_TYPE = 'general';\nexport const VALUE_CHALLENGE_SUBJECT_TYPE = 'challenge';\nexport const VALUE_ACTION_SUBJECT_TYPE = 'pin';\n\nexport const SUBJECT_TYPES_MAP = {\n [VALUE_GENERAL_SUBJECT_TYPE]: GENERAL_SUBJECT_TYPE,\n [VALUE_CHALLENGE_SUBJECT_TYPE]: CHALLENGE_SUBJECT_TYPE,\n [VALUE_ACTION_SUBJECT_TYPE]: ACTION_SUBJECT_TYPE,\n};\n\nexport const SETTING_TYPE_PIN = 'pin';\nexport const SETTING_TYPE_CHALLENGE = 'challenge';\n\nexport const SAFE_COMMUNITY_CHALLENGE_AUDIENCE_TYPES = [\n AUDIENCE_VALUE_USERS,\n AUDIENCE_VALUE_CHALLENGE_TEAMS,\n AUDIENCE_VALUE_CHALLENGE_MEMBERS,\n];\n","import {\n AUDIENCE_VALUE_CHALLENGE_MEMBERS,\n AUDIENCE_VALUE_CHALLENGE_TEAMS,\n AUDIENCE_VALUE_COMMUNITIES,\n AUDIENCE_VALUE_COMMUNITY_MEMBERS,\n AUDIENCE_VALUE_COMMUNITY_MEMBERS_NOT_JOINED,\n AUDIENCE_VALUE_USERS,\n} from '../../../notifications/constants';\n\nexport const FORM_FIELD_AUDIENCES = 'audiences';\nexport const FORM_FIELD_AUDIENCE_TYPE = 'audienceType';\nexport const FORM_FIELD_SUBJECT = 'subject';\nexport const FORM_FIELD_SUBJECT_CONTENT_ID = 'subjectContentID';\nexport const FORM_FIELD_SUBJECT_CONTENT_TYPE = 'subjectContentType';\nexport const FORM_FIELD_MESSAGE = 'message';\nexport const FORM_FIELD_SEND_DATE = 'sendDate';\n\nexport const AUDIENCE_TYPE_CHALLENGE_TEAMS = {\n id: 'audience-5',\n title: 'Team',\n value: AUDIENCE_VALUE_CHALLENGE_TEAMS,\n iconName: 'jb-community',\n};\n\nexport const ALL_AUDIENCE_TYPES = [\n {\n id: 'audience-0',\n title: 'Everyone',\n value: AUDIENCE_VALUE_COMMUNITY_MEMBERS,\n iconName: 'jb-diversity',\n },\n {\n id: 'audience-1',\n title: 'User',\n value: AUDIENCE_VALUE_USERS,\n iconName: 'jb-profile',\n },\n {\n id: 'audience-2',\n title: 'Joined',\n value: AUDIENCE_VALUE_CHALLENGE_MEMBERS,\n iconName: 'jb-challenge-member',\n },\n {\n id: 'audience-3',\n title: 'Not Joined',\n value: AUDIENCE_VALUE_COMMUNITY_MEMBERS_NOT_JOINED,\n iconName: 'jb-challenge-join',\n },\n {\n id: 'audience-4',\n title: 'Community',\n value: AUDIENCE_VALUE_COMMUNITIES,\n iconName: 'jb-community',\n },\n AUDIENCE_TYPE_CHALLENGE_TEAMS,\n];\n\nexport const DEFAULT_AUDIENCE_TYPES = [\n AUDIENCE_VALUE_USERS,\n AUDIENCE_VALUE_COMMUNITIES,\n AUDIENCE_VALUE_COMMUNITY_MEMBERS,\n].map((type) => ALL_AUDIENCE_TYPES.find((item) => item.value === type));\n\nexport const AUDIENCE_TYPES_WITH_AUDIENCE = [\n AUDIENCE_VALUE_COMMUNITIES,\n AUDIENCE_VALUE_CHALLENGE_TEAMS,\n AUDIENCE_VALUE_USERS,\n];\n\nexport const MAX_MSG_LENGTH = 140;\n","import { get } from 'lodash';\nimport moment from 'moment';\nimport IMAGES from '../constants/images';\nimport i18next from 'i18next';\n\nimport {\n AUDIENCE_VALUE_CHALLENGE_TEAMS,\n AUDIENCE_VALUE_USERS,\n GENERAL_SUBJECT_TYPE,\n SETTING_TYPE_CHALLENGE,\n SETTING_TYPE_PIN,\n SUBJECT_TYPES_MAP,\n} from './constants';\nimport { ALL_AUDIENCE_TYPES } from '../screens/UpdateNotificationScreen/NotificationForm/constants';\nimport { DATETIME_FORMAT_FOR_DATETIME_PICKERS } from '../constants/dates';\nimport { getAppImages } from '../utils';\nimport { CONTENT_TYPE_USER } from '../constants/contentType';\n\nconst getAudienceMembers = (audiences) => {\n let audienceString = audiences\n .map((audienceMember) => audienceMember.name)\n .slice(0, 10)\n .join(', ');\n if (audiences.length > 10) {\n audienceString += '...';\n }\n return audienceString;\n};\n\nconst getDefaultIcon = (settingsType) => {\n switch (settingsType) {\n case SETTING_TYPE_CHALLENGE:\n return getAppImages().defaultChallengeIcon;\n case SETTING_TYPE_PIN:\n return IMAGES.defaultPinIcon;\n default:\n return null;\n }\n};\n\nexport const notificationToTableCell = (notification) => {\n const {\n subjectReference: {\n name: subject,\n imageSizes,\n type: contentType,\n id: subjectId,\n } = {},\n userCount,\n audiences,\n content,\n audienceType,\n sendDate,\n settingsType,\n id,\n } = notification || {};\n\n const language = i18next.language;\n const message = get(\n content,\n `0.message.${language}`,\n content[0].message.en,\n );\n const audience = getAudienceMembers(audiences);\n const contentTitle = get(\n content,\n `0.title.${language}`,\n content[0].title.en,\n );\n\n return {\n id,\n // is this notification subject a challenge?\n isChallenge: settingsType === SETTING_TYPE_CHALLENGE,\n // Main subject of the notification. Could be a title for the notification or the name of the subject in context\n subject: subject || contentTitle,\n subjectId,\n\n // Icon to show in the data table for this row\n icon: get(imageSizes, '0.url', getDefaultIcon(settingsType)),\n\n // The type of subject.\n contentType,\n\n // Actual localized message\n message,\n\n // Number of users who will or did receive the notification\n userCount,\n\n // The members who received this notification ie multiple communities or multiple users\n audience,\n\n // See audienceTypes\n audienceType: i18next.t(`notifications.audienceTypes.${audienceType}`),\n\n // When this message was set to be delivered\n sendDate: sendDate,\n };\n};\n\nexport const notificationResponseToTableCellData = (\n notificationResponseData,\n) => {\n return notificationResponseData.map((notificationData) =>\n notificationToTableCell(notificationData),\n );\n};\n\nexport const transformNotification = (data, language) => {\n const audienceType = get(data, 'audienceType');\n let audiences = get(data, 'audiences');\n switch (audienceType) {\n case AUDIENCE_VALUE_CHALLENGE_TEAMS:\n audiences = transformTeams(audiences);\n break;\n case AUDIENCE_VALUE_USERS:\n default:\n audiences = transformUsers(audiences);\n }\n return {\n subjectContentType: get(data, 'settingsType'),\n subjectContentID: get(data, 'subjectReference.id'),\n subject:\n get(data, `content[0].title[${language}]`) ||\n get(data, 'content[1].title.en'),\n message:\n get(data, `content[0].message[${language}]`) ||\n get(data, 'content[0].message.en'),\n audienceType: audienceType,\n audiences: audiences,\n sendDate: get(data, 'sendDate'),\n iconUrl: get(data, 'subjectReference.imageSizes[0].url'),\n };\n};\n\nexport const transformActions = (data) =>\n data?.map(({ id, name: value, iconUrl }) => ({\n id,\n value,\n iconUrl,\n })) || [];\n\nexport const transformAdmins = (data) =>\n data\n ? data.map(({ id, username, imageSizes = [] }) => ({\n id,\n title: username,\n value: id,\n iconUrl: imageSizes[0]?.url || getAppImages().defaultProfileIcon,\n }))\n : null;\n\nexport const transformUsers = (data) =>\n data\n ? data.map(({ id, name, label, imageSizes = [] }) => ({\n id,\n title: `${name || label} (${id})`,\n value: id,\n iconUrl: imageSizes[0]?.url || getAppImages().defaultProfileIcon,\n }))\n : null;\n\nconst transformTeams = (team) =>\n team\n ? team.map(({ id, name, icon, score }) => ({\n id,\n title: `${name} (${id}) score: ${score}`,\n value: id,\n iconUrl: icon[0]?.url || getAppImages().defaultCommunityIcon,\n score,\n }))\n : null;\n\nexport const transformChallenges = (role, data) =>\n data.map(\n ({\n id,\n name: value,\n icon,\n startDate,\n endDate,\n teamsInfo: teams,\n sponsoringCommunities,\n }) => ({\n id,\n value,\n subTitle: `${moment(startDate).format(\n DATETIME_FORMAT_FOR_DATETIME_PICKERS,\n )} - ${moment(endDate).format(\n DATETIME_FORMAT_FOR_DATETIME_PICKERS,\n )}`,\n iconUrl: icon[0]?.url || getAppImages().defaultChallengeIcon,\n role,\n isChallenge: true,\n teams: transformTeams(teams),\n sponsoringCommunities,\n }),\n );\n\nexport const transformOptionsQuery = (options) => {\n const {\n subjectContentType,\n subject,\n message,\n sendDate,\n language,\n } = options;\n const audienceType = ALL_AUDIENCE_TYPES.find(\n (item) => item.value === options.audienceType,\n )?.title;\n const audiences = options.audiences.map(({ id }) => id);\n const body = {\n subject,\n localSubject: { [language]: subject },\n message,\n localMessage: { [language]: message },\n audienceType,\n sendDate: Math.floor(new Date(sendDate).getTime() / 1000),\n language,\n audiences,\n };\n\n if (subjectContentType !== GENERAL_SUBJECT_TYPE) {\n body.subjectContentType = SUBJECT_TYPES_MAP[subjectContentType];\n body.subjectContentID = options.subjectContentID;\n body.image = options.image;\n }\n\n if (options.notificationId) {\n body.id = options.notificationId;\n }\n\n return body;\n};\n\nexport const transformCreateNotification = (notification = {}) => {\n const { audiences = [] } = notification;\n return {\n ...notification,\n audiences: transformUsers(audiences),\n };\n};\n\nexport const transformUserNotifications = (notifications) =>\n notifications?.map((notification) => {\n const pictureContentType =\n notification.content?.subjectPictureData?.contentType;\n let defaultLeftIcon = getAppImages().defaultAppIcon;\n if (pictureContentType === CONTENT_TYPE_USER) {\n defaultLeftIcon = getAppImages().defaultProfileIcon;\n }\n return {\n created: moment(notification.created),\n title: notification.content?.title,\n message: notification.content?.message,\n targetView: notification.content?.targetView,\n leftIcon:\n notification.content?.subjectPictureData?.imageSizes?.[0]\n ?.url || defaultLeftIcon,\n leftIconType: notification.content?.subjectPictureData?.contentType,\n rightIconName: notification.content?.iconName,\n status: notification.status,\n };\n });\n","import { all, call, put, takeEvery, takeLatest } from 'redux-saga/effects';\nimport get from 'lodash/get';\nimport {\n CREATE_NOTIFICATION_REQUESTED,\n DELETE_NOTIFICATION_REQUESTED,\n MARK_USER_NOTIFICATIONS_REQUESTED,\n markUserNotificationsRequestFailed,\n markUserNotificationsRequestSucceeded,\n NOTIFICATION_REQUESTED,\n notificationRequestSucceeded,\n NOTIFICATIONS_REQUESTED,\n notificationsRequest,\n notificationsRequestFailed,\n notificationsRequestSucceeded,\n OPEN_CREATE_NOTIFICATION,\n UPDATE_NOTIFICATION_REQUESTED,\n updateNotificationFailed,\n updateNotificationSucceeded,\n USER_NOTIFICATIONS_REQUESTED,\n userNotificationsRequestFailed,\n userNotificationsRequestSucceeded,\n} from './actions';\nimport {\n fetchWithAuth,\n getErrorsFromPossibleAPIErrorResponse,\n} from '../utils/api';\nimport { trackEvent } from '../utils/analytics';\nimport {\n GROUP_NAMES,\n GROUP_TYPE_QUEUED,\n} from '../screens/NotificationsScreen/AdminNotificationsScreen/constants';\nimport { transformOptionsQuery } from './transforms';\nimport { push } from 'connected-react-router';\nimport i18n from 'i18next';\nimport {\n EVENT_NOTIFICATION_CREATE_FINISHED,\n EVENT_NOTIFICATION_DELETED,\n EVENT_NOTIFICATION_EDIT_FINISHED,\n} from '../constants/analyticsEvents';\n\nexport function* getNotificationsData({\n payload: { communityId, group, options },\n}) {\n try {\n const result = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/master-notifications`,\n {\n query: {\n limit: 10,\n ...options,\n group,\n },\n },\n );\n\n const notifications = result?.response?.['master-notifications'] || [];\n const totalCount = result?.response?.totalCount || 0;\n yield put(\n notificationsRequestSucceeded({ group, notifications, totalCount }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n `Failed to get ${GROUP_NAMES[group]} Data`,\n );\n\n yield put(notificationsRequestFailed({ group, errors }));\n }\n}\n\nexport function* deleteNotificationRequest({\n payload: { communityId, notificationId, challengeId, options },\n}) {\n trackEvent(EVENT_NOTIFICATION_DELETED);\n\n try {\n const query = challengeId ? { challengeId } : {};\n\n yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/master-notifications/${notificationId}`,\n {\n method: 'DELETE',\n query,\n },\n );\n\n yield put(\n notificationsRequest(communityId, GROUP_TYPE_QUEUED, options),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n `Failed to remove Notification`,\n );\n\n yield put(\n notificationsRequestFailed({ group: GROUP_TYPE_QUEUED, errors }),\n );\n }\n}\n\nexport function* getNotificationData({\n payload: { communityId, notificationId },\n}) {\n try {\n const result = yield call(\n fetchWithAuth,\n `/kiosk/organization/${communityId}/master-notifications/${notificationId}`,\n );\n const notification =\n get(result, 'response.master-notifications[0]') || null;\n\n yield put(notificationRequestSucceeded({ notification }));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n `Failed to get nofification Data`,\n );\n\n yield put(\n notificationsRequestFailed({ group: 'notification', errors }),\n );\n }\n}\n\nexport function* createNotificationRequest({\n payload: { communityId, options },\n}) {\n trackEvent(EVENT_NOTIFICATION_CREATE_FINISHED);\n\n try {\n const body = transformOptionsQuery(options);\n\n yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/master-notifications`,\n {\n method: 'POST',\n mode: 'no-cors',\n body,\n },\n );\n yield put(updateNotificationSucceeded(i18n.t('notifications.publish')));\n yield put(push('/notifications'));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to create notification.',\n );\n yield put(\n updateNotificationFailed(errors, get(error, 'response.status')),\n );\n }\n}\n\nexport function* updateNotificationRequest({\n payload: { communityId, notificationId, options },\n}) {\n trackEvent(EVENT_NOTIFICATION_EDIT_FINISHED);\n\n try {\n const body = transformOptionsQuery({ ...options, notificationId });\n yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/master-notifications/${notificationId}`,\n {\n method: 'PUT',\n body,\n },\n );\n yield put(updateNotificationSucceeded(i18n.t('notifications.update')));\n yield put(push('/notifications'));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to update notification.',\n );\n yield put(\n updateNotificationFailed(errors, get(error, 'response.status')),\n );\n }\n}\n\nexport function* openCreateNotificationScreen() {\n yield put(push('/notifications/create'));\n}\n\nexport function* getUserNotifications({ payload: options }) {\n try {\n const data = yield call(fetchWithAuth, '/notification', {\n query: {\n transmissionType: 'notificationCenter',\n ...options,\n },\n });\n yield put(\n userNotificationsRequestSucceeded(\n data.response.notifications,\n options?.skip,\n ),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get notifications.',\n );\n yield put(userNotificationsRequestFailed(errors));\n }\n}\n\nexport function* markUserNotifications() {\n try {\n yield call(fetchWithAuth, '/notification/mark', {\n method: 'POST',\n query: {\n markBeforeTimestamp: Math.round(new Date() / 1000),\n status: 'read',\n },\n });\n yield put(markUserNotificationsRequestSucceeded());\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to mark notifications.',\n );\n yield put(markUserNotificationsRequestFailed(errors));\n }\n}\n\nexport default function* notificationsSaga() {\n yield all([\n takeEvery(NOTIFICATIONS_REQUESTED, getNotificationsData),\n takeLatest(DELETE_NOTIFICATION_REQUESTED, deleteNotificationRequest),\n takeLatest(NOTIFICATION_REQUESTED, getNotificationData),\n takeLatest(CREATE_NOTIFICATION_REQUESTED, createNotificationRequest),\n takeLatest(UPDATE_NOTIFICATION_REQUESTED, updateNotificationRequest),\n takeLatest(OPEN_CREATE_NOTIFICATION, openCreateNotificationScreen),\n takeLatest(MARK_USER_NOTIFICATIONS_REQUESTED, markUserNotifications),\n takeLatest(USER_NOTIFICATIONS_REQUESTED, getUserNotifications),\n ]);\n}\n","import { all, call, takeLatest, put } from 'redux-saga/effects';\nimport {\n FLAG_EXCLUDE_REQUESTED,\n FLAG_IGNORE_REQUESTED,\n flagExcludeRequestFailed,\n flagExcludeRequestSucceeded,\n FLAGGED_CONTENT_REQUESTED,\n flaggedContentRequestFailed,\n flaggedContentRequestSucceeded,\n flagIgnoreRequestFailed,\n flagIgnoreRequestSucceeded,\n FLAG_REPORT_REQUESTED,\n activityReportRequestSucceeded,\n activityReportRequestFailed,\n flaggedContentRequested,\n} from './actions';\n\nimport {\n fetchWithAuth,\n getErrorsFromPossibleAPIErrorResponse,\n} from '../utils/api';\nimport i18n from 'i18next';\n\nfunction* getFlaggedContent(action) {\n try {\n const {\n payload: { request },\n } = action;\n const data = yield call(\n fetchWithAuth,\n `/kiosk/group/${request.communityId}/activity/flags`,\n {\n query: {\n ...request,\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n },\n },\n );\n const content = data?.response?.activities || [];\n const total = data?.response?.totalCount;\n yield put(\n flaggedContentRequestSucceeded({\n content,\n total,\n }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get flagged content',\n );\n yield put(flaggedContentRequestFailed(errors));\n }\n}\n\nfunction* ignoreFlaggedContent(action) {\n try {\n const {\n payload: { request },\n } = action;\n const data = yield call(\n fetchWithAuth,\n `/kiosk/group/${request.communityId}/activity/${request.activityId}/unflag`,\n {\n method: 'POST',\n query: {\n ...request,\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n },\n },\n );\n const content = data?.response?.activities || [];\n const total = data?.response?.totalCount;\n yield put(\n flagIgnoreRequestSucceeded({\n content,\n total,\n }),\n );\n yield put(\n flaggedContentRequested({\n communityId: request.communityId,\n context: 'group',\n skip: 0,\n limit: 50,\n }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to unflag content',\n );\n yield put(flagIgnoreRequestFailed(errors));\n }\n}\n\nfunction* excludeFlaggedContent(action) {\n try {\n const {\n payload: { request },\n } = action;\n const data = yield call(\n fetchWithAuth,\n `/kiosk/group/${request.communityId}/activity/${request.activityId}/remove`,\n {\n method: 'POST',\n query: {\n ...request,\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n },\n },\n );\n const content = data?.response?.activities || [];\n const total = data?.response?.totalCount;\n yield put(\n flagExcludeRequestSucceeded({\n content,\n total,\n }),\n );\n yield put(\n flaggedContentRequested({\n communityId: request.communityId,\n context: 'group',\n skip: 0,\n limit: 50,\n }),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to remove activity',\n );\n yield put(flagExcludeRequestFailed(errors));\n }\n}\n\nexport function* addFlagReport({\n payload: { contentId, commentId, type = 'buzz' },\n}) {\n try {\n const activityData = yield call(\n fetchWithAuth,\n `/${type}/${contentId}/flag`,\n {\n method: 'POST',\n body: {\n commentId,\n },\n },\n );\n\n let responseId = null;\n switch (type) {\n case 'buzz':\n responseId = activityData.response.activities[0].id;\n break;\n case 'user':\n responseId = activityData.response.users[0].id;\n break;\n default:\n break;\n }\n\n yield put(activityReportRequestSucceeded(responseId));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('activitiesPage.addFlagError'),\n );\n yield put(activityReportRequestFailed(errors));\n }\n}\n\nexport default function* flaggedContentSaga() {\n yield all([\n takeLatest(FLAGGED_CONTENT_REQUESTED, getFlaggedContent),\n takeLatest(FLAG_IGNORE_REQUESTED, ignoreFlaggedContent),\n takeLatest(FLAG_EXCLUDE_REQUESTED, excludeFlaggedContent),\n takeLatest(FLAG_REPORT_REQUESTED, addFlagReport),\n ]);\n}\n","import { all, call, put, takeLatest } from 'redux-saga/effects';\nimport {\n THEMES_REQUESTED,\n THEMES_UPDATE_REQUESTED,\n themesRequestFailed,\n themesRequestSucceeded,\n themesUpdateRequestFailed,\n themesUpdateRequestSucceeded,\n} from './actions';\nimport {\n fetchWithAuth,\n getErrorsFromPossibleAPIErrorResponse,\n} from '../utils/api';\nimport { push } from 'connected-react-router';\n\nexport function* getThemes({ payload: { communityId, includeCategories } }) {\n try {\n const data = yield call(\n fetchWithAuth,\n `/kiosk/organization/${communityId}/themes`,\n {\n query: {\n includeCategories,\n },\n },\n );\n yield put(themesRequestSucceeded(data.response['community-themes']));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to get themes',\n );\n yield put(themesRequestFailed(errors));\n }\n}\n\nexport function* updateCommunityThemes(action) {\n try {\n const {\n payload: { orgId, themeIds, nextLocation },\n } = action;\n const updateData = yield call(\n fetchWithAuth,\n `/kiosk/organization/${orgId}/themes/edit`,\n {\n method: 'POST',\n body: {\n themeIds: themeIds?.join(','),\n },\n },\n );\n const themes = updateData.response.themes;\n yield put(themesUpdateRequestSucceeded(themes));\n if (nextLocation) {\n yield put(push(nextLocation));\n }\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed to update community',\n );\n yield put(themesUpdateRequestFailed(errors));\n }\n}\n\nexport default function* themesSaga() {\n yield all([\n takeLatest(THEMES_REQUESTED, getThemes),\n takeLatest(THEMES_UPDATE_REQUESTED, updateCommunityThemes),\n ]);\n}\n","import { all, put, select, takeLatest } from 'redux-saga/effects';\nimport { clearQueuedDeepLink, OPEN_QUEUED_DEEP_LINK } from './actions';\nimport { getQueuedDeepLink } from './selectors';\nimport { push } from 'connected-react-router';\n\nexport function* openDeepLink() {\n const deepLinkPath = yield select(getQueuedDeepLink);\n if (deepLinkPath) {\n yield put(push(deepLinkPath));\n yield put(clearQueuedDeepLink());\n }\n}\n\nexport default function* deepLinksSaga() {\n yield all([takeLatest(OPEN_QUEUED_DEEP_LINK, openDeepLink)]);\n}\n","import { all, call, put, takeLatest } from 'redux-saga/effects';\nimport { trackEvent } from '../../utils/analytics';\nimport {\n fetchWithAuth,\n getErrorsFromPossibleAPIErrorResponse,\n} from '../../utils/api';\nimport {\n INVITE_USERS_REQUESTED,\n inviteUsersRequestFailed,\n inviteUsersRequestSucceeded,\n} from '../inviteUsers/actions';\n\nexport function* handleInviteUsers(action) {\n trackEvent({\n name: 'onboarding_invite_users',\n });\n\n try {\n const { communityId, invites } = action.payload;\n yield call(fetchWithAuth, '/kiosk/organization/invite', {\n method: 'POST',\n body: {\n invites,\n communityId,\n },\n });\n yield put(inviteUsersRequestSucceeded());\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n 'Failed send invites to users',\n );\n yield put(inviteUsersRequestFailed(errors));\n }\n}\n\nexport default function* loginSaga() {\n yield all([takeLatest(INVITE_USERS_REQUESTED, handleInviteUsers)]);\n}\n","import { all, call, put, select, takeLatest } from 'redux-saga/effects';\nimport {\n INTEGRATIONS_REQUESTED,\n integrationsRequestFailed,\n integrationsRequestSucceeded,\n OIDC_INTEGRATION_REMOVE_REQUESTED,\n OIDC_INTEGRATION_REQUESTED,\n SLACK_INTEGRATION_REMOVE_REQUESTED,\n SLACK_INTEGRATION_REQUESTED,\n} from './actions';\nimport {\n fetchWithAuth,\n getErrorsFromPossibleAPIErrorResponse,\n} from '../../utils/api';\nimport i18n from 'i18next';\nimport { trackEvent } from '../../utils/analytics';\nimport { getActiveCommunityId } from '../../user/selectors';\nimport { getProperties } from '../../utils';\nimport { push } from 'connected-react-router';\nimport { getSSOConfig } from '../../auth/selectors';\nimport {\n EVENT_ORGANIZATION_DOMAIN_RESTRICTED,\n EVENT_SLACK_INTEGRATED,\n} from '../../constants/analyticsEvents';\n\nexport function* handleSlackIntegrationRequest(action) {\n const { code } = action.payload;\n trackEvent(EVENT_SLACK_INTEGRATED);\n const communityId = yield select(getActiveCommunityId);\n try {\n const response = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/integrations/slack/add`,\n {\n method: 'POST',\n body: {\n code,\n redirect_uri: getProperties()?.integrationCredentials?.slack\n ?.redirectURI,\n },\n },\n );\n const slackIntegration = response.response.integrations[0].slack;\n yield put(\n integrationsRequestSucceeded(\n slackIntegration,\n i18n.t('settings.integrations.slack.integrateSuccess'),\n ),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('settings.integrations.slack.integrateFailure'),\n );\n yield put(integrationsRequestFailed(errors));\n }\n}\n\nexport function* handleSlackIntegrationRemoveRequest() {\n const communityId = yield select(getActiveCommunityId);\n try {\n const response = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/integrations/slack/remove`,\n {\n method: 'POST',\n },\n );\n const integrations = response.response.integrations[0];\n yield put(integrationsRequestSucceeded(integrations));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('settings.integrations.slack.removeFailure'),\n );\n yield put(integrationsRequestFailed(errors));\n }\n}\n\nexport function* handleOIDCIntegrationRequest({ payload: body }) {\n const communityId = yield select(getActiveCommunityId);\n yield put(push('/settings'));\n const config = yield select(getSSOConfig);\n try {\n const response = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/integrations/oidc/add`,\n {\n method: 'POST',\n body: {\n ...body,\n clientId: config?.config?.clientId,\n },\n },\n );\n const integrations = response.response.integrations[0];\n trackEvent(EVENT_ORGANIZATION_DOMAIN_RESTRICTED, { type: 'google' });\n yield put(\n integrationsRequestSucceeded(\n integrations,\n i18n.t('settings.integrations.oidc.integrateSuccess'),\n ),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('settings.integrations.oidc.integrateFailure'),\n );\n yield put(integrationsRequestFailed(errors));\n }\n}\n\nexport function* handleOIDCIntegrationRemoveRequest({ payload: { authType } }) {\n const communityId = yield select(getActiveCommunityId);\n try {\n const response = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/integrations/oidc/remove`,\n {\n method: 'POST',\n body: {\n authType,\n },\n },\n );\n const integrations = response.response.integrations[0];\n yield put(integrationsRequestSucceeded(integrations));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('settings.integrations.oidc.removeFailure'),\n );\n yield put(integrationsRequestFailed(errors));\n }\n}\n\nexport function* getIntegrations() {\n const communityId = yield select(getActiveCommunityId);\n try {\n const response = yield call(\n fetchWithAuth,\n `/kiosk/group/${communityId}/integrations`,\n );\n const integrations = response.response.integrations[0];\n yield put(integrationsRequestSucceeded(integrations));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('settings.integrations.fetchFailure'),\n );\n yield put(integrationsRequestFailed(errors));\n }\n}\n\nexport default function* settingsSaga() {\n yield all([\n takeLatest(SLACK_INTEGRATION_REQUESTED, handleSlackIntegrationRequest),\n takeLatest(\n SLACK_INTEGRATION_REMOVE_REQUESTED,\n handleSlackIntegrationRemoveRequest,\n ),\n takeLatest(INTEGRATIONS_REQUESTED, getIntegrations),\n takeLatest(OIDC_INTEGRATION_REQUESTED, handleOIDCIntegrationRequest),\n takeLatest(\n OIDC_INTEGRATION_REMOVE_REQUESTED,\n handleOIDCIntegrationRemoveRequest,\n ),\n ]);\n}\n","export const SCROLLER_BATCH_SIZE = 25;\n","import { all, call, put, takeLatest } from 'redux-saga/effects';\nimport {\n fetchWithAuth,\n getErrorsFromPossibleAPIErrorResponse,\n} from '../utils/api';\nimport {\n ACTIVITY_ADD_COMMENT_REQUESTED,\n ACTIVITY_DATA_REQUESTED,\n ACTIVITY_DETAIL_REQUESTED,\n ACTIVITY_LIKE_REQUESTED,\n ACTIVITY_SHARE_URL_REQUESTED,\n activityDataRequestFailed,\n activityDataRequestSucceeded,\n activityDetailRequestFailed,\n activityDetailRequestSucceeded,\n activityLikeRequestFailed,\n activityLikeRequestSucceeded,\n activityShareURLRequestFailed,\n activityShareURLRequestSucceeded,\n addCommentRequestFailed,\n addCommentRequestSucceeded,\n} from './actions';\nimport {\n ACTIVITIES_FEED_TYPE_CHALLENGE,\n ACTIVITIES_FEED_TYPE_FOLLOWING,\n ACTIVITIES_FEED_TYPE_TEAM,\n ACTIVITIES_FEED_TYPE_TRENDING,\n ACTIVITIES_FEED_TYPE_USER,\n} from './constants';\nimport { SCROLLER_BATCH_SIZE } from '../common/InfiniteScroller/constants';\nimport i18n from 'i18next';\n\nexport function* getActivityData({ payload: { activitiesType, options } }) {\n const getURL = () => {\n switch (activitiesType) {\n case ACTIVITIES_FEED_TYPE_TRENDING:\n return `/community/${options.communityId}/buzz`;\n case ACTIVITIES_FEED_TYPE_CHALLENGE:\n return `/challenges/${options.challengeId}/buzz`;\n case ACTIVITIES_FEED_TYPE_TEAM:\n return `/teams/${options.teamId}/buzz`;\n case ACTIVITIES_FEED_TYPE_USER:\n return `user/${options.userId}/buzz`;\n case ACTIVITIES_FEED_TYPE_FOLLOWING:\n default:\n return '/buzz/recent';\n }\n };\n try {\n const activityData = yield call(fetchWithAuth, getURL(), {\n query: {\n limit: SCROLLER_BATCH_SIZE,\n ...options,\n },\n });\n yield put(\n activityDataRequestSucceeded(\n activitiesType,\n activityData.response?.activities || [],\n options.skip,\n ),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('activitiesPage.fetchError'),\n );\n yield put(activityDataRequestFailed(activitiesType, errors));\n }\n}\n\nexport function* getActivityDetail({ payload: { activityId } }) {\n try {\n const activityData = yield call(fetchWithAuth, `/buzz/${activityId}`);\n yield put(\n activityDetailRequestSucceeded(activityData.response.activities[0]),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('activitiesPage.fetchError'),\n );\n yield put(activityDetailRequestFailed(errors));\n }\n}\nexport function* likeActivity({ payload: { activityId, like } }) {\n try {\n const activityData = yield call(\n fetchWithAuth,\n `/buzz/${activityId}/like`,\n {\n method: 'POST',\n body: {\n like,\n },\n },\n );\n yield put(\n activityLikeRequestSucceeded(activityData.response.activities[0]),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('activitiesPage.likeError'),\n );\n yield put(activityLikeRequestFailed(errors));\n }\n}\nexport function* addComment({ payload: { activityId, comment } }) {\n try {\n const activityData = yield call(\n fetchWithAuth,\n `/buzz/${activityId}/addcomment`,\n {\n method: 'POST',\n body: {\n comment,\n },\n },\n );\n yield put(\n addCommentRequestSucceeded(activityData.response.activities[0]),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('activitiesPage.addCommentError'),\n );\n yield put(addCommentRequestFailed(errors));\n }\n}\nexport function* getShareURL({ payload: { activityId } }) {\n try {\n const activityData = yield call(\n fetchWithAuth,\n `/buzz/${activityId}/social`,\n );\n\n yield put(\n activityShareURLRequestSucceeded(\n activityId,\n activityData.response['dynamic-links'][0].url,\n ),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('activitiesPage.getShareURLError'),\n );\n yield put(activityShareURLRequestFailed(errors));\n }\n}\n\nexport default function* activitiesSaga() {\n yield all([\n takeLatest(ACTIVITY_DATA_REQUESTED, getActivityData),\n takeLatest(ACTIVITY_DETAIL_REQUESTED, getActivityDetail),\n takeLatest(ACTIVITY_LIKE_REQUESTED, likeActivity),\n takeLatest(ACTIVITY_SHARE_URL_REQUESTED, getShareURL),\n takeLatest(ACTIVITY_ADD_COMMENT_REQUESTED, addComment),\n ]);\n}\n","import i18n from 'i18next';\nimport { all, call, put, select, takeLatest } from 'redux-saga/effects';\nimport {\n SUBSCRIPTION_MANAGEMENT_LINK_REQUESTED,\n SUBSCRIPTION_RECORDS_REQUESTED,\n SUBSCRIPTION_REQUESTED,\n SUBSCRIPTION_SESSION_REQUESTED,\n SUBSCRIPTION_TIERS_REQUESTED,\n SUBSCRIPTION_VERIFICATION_REQUESTED,\n subscriptionManagementLinkRequestFailed,\n subscriptionManagementLinkRequestSucceeded,\n subscriptionRecordsRequestFailed,\n subscriptionRecordsRequestSucceeded,\n subscriptionRequestFailed,\n subscriptionRequestSucceeded,\n subscriptionSessionRequestFailed,\n subscriptionSessionRequestSucceeded,\n subscriptionTiersRequestFailed,\n subscriptionTiersRequestSucceeded,\n subscriptionVerificationRequestFailed,\n subscriptionVerificationRequestSucceeded,\n} from './actions';\nimport {\n fetchWithAuth,\n getErrorsFromPossibleAPIErrorResponse,\n} from '../utils/api';\nimport { getProperties } from '../utils';\nimport { setAnalyticsCommunity } from '../utils/analytics';\nimport { getActiveCommunity } from '../user/selectors';\nimport { updateIntercomCompanyData } from '../config/intercom';\n\nexport function* getSubscription(action) {\n try {\n const {\n payload: { groupId },\n } = action;\n\n const data = yield call(\n fetchWithAuth,\n `/kiosk/group/${groupId}/subscriptions`,\n );\n\n const currentSubscription =\n data.response.communityBillingSubscription[0];\n yield put(subscriptionRequestSucceeded(currentSubscription));\n setAnalyticsCommunity(yield select(getActiveCommunity), {\n subscription: currentSubscription?.id,\n });\n let amount = currentSubscription?.amount / 100;\n if (currentSubscription?.interval === 'year') {\n amount = amount / 12;\n }\n updateIntercomCompanyData({\n monthly_spend: amount,\n plan: currentSubscription?.subscriptionTier?.internalName,\n user_count: currentSubscription?.currentUserCount,\n trial_end: currentSubscription?.trialEnd,\n });\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('account.saga.errors.subscription'),\n );\n\n yield put(subscriptionRequestFailed(errors));\n }\n}\n\nexport function* getSubscriptionSession(action) {\n try {\n const {\n groupId,\n successUrl,\n cancelUrl,\n planId,\n quantity,\n } = action.payload;\n const query = {\n successUrl,\n cancelUrl,\n planId,\n };\n if (quantity) {\n query.quantity = quantity;\n }\n const data = yield call(\n fetchWithAuth,\n `/kiosk/group/${groupId}/subscriptions/session`,\n {\n query,\n },\n );\n\n const url = data.response.billingSession[0].url;\n\n yield put(subscriptionSessionRequestSucceeded(url));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('account.saga.errors.subscriptionSession'),\n );\n\n yield put(subscriptionSessionRequestFailed(errors));\n }\n}\n\nexport function* getSubscriptionVerification(action) {\n try {\n const { groupId, planId } = action.payload;\n const data = yield call(\n fetchWithAuth,\n `/kiosk/group/${groupId}/subscriptions/verification`,\n {\n query: {\n planId,\n },\n },\n );\n\n const subscription = data.response.communityBillingSubscription[0];\n const invoice = subscription.invoice;\n\n yield put(\n subscriptionVerificationRequestSucceeded(invoice, subscription),\n );\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('account.saga.errors.subscriptionVerification'),\n );\n\n yield put(subscriptionVerificationRequestFailed(errors));\n }\n}\n\nexport function* getSubscriptionsRecords(action) {\n try {\n const {\n payload: { groupId },\n } = action;\n const data = yield call(\n fetchWithAuth,\n `/kiosk/group/${groupId}/subscriptions/records`,\n {\n query: {\n limit: 100,\n },\n },\n );\n\n const billingHistory = data.response?.billingSubscriptionRecords;\n yield put(subscriptionRecordsRequestSucceeded(billingHistory));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('account.saga.errors.subscriptionRecords'),\n );\n yield put(subscriptionRecordsRequestFailed(errors));\n }\n}\n\nexport function* getSubscriptionsTiers() {\n try {\n const data = yield call(fetchWithAuth, '/kiosk/subscriptions/tiers', {\n query: {\n client_secret: getProperties()?.clientSecret,\n client_id: getProperties()?.clientId,\n },\n });\n const billingTiers = data.response?.billingSubscriptionTiers;\n yield put(subscriptionTiersRequestSucceeded(billingTiers));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('account.saga.errors.subscriptionTiers'),\n );\n yield put(subscriptionTiersRequestFailed(errors));\n yield put(subscriptionRecordsRequestFailed(errors));\n }\n}\n\nexport function* getSubscriptionManagementLink(action) {\n try {\n const { groupId, returnUrl } = action.payload;\n const data = yield call(\n fetchWithAuth,\n `/kiosk/group/${groupId}/subscriptions/session/update`,\n {\n query: {\n returnUrl,\n },\n },\n );\n const response = data.response;\n\n const url = response.billingSession[0].url;\n\n yield put(subscriptionManagementLinkRequestSucceeded(url));\n } catch (error) {\n const errors = yield call(\n getErrorsFromPossibleAPIErrorResponse,\n error,\n i18n.t('account.saga.errors.subscriptionManagement'),\n );\n yield put(subscriptionManagementLinkRequestFailed(errors));\n }\n}\n\nexport default function* subscriptionSaga() {\n yield all([\n takeLatest(SUBSCRIPTION_REQUESTED, getSubscription),\n takeLatest(SUBSCRIPTION_SESSION_REQUESTED, getSubscriptionSession),\n takeLatest(\n SUBSCRIPTION_VERIFICATION_REQUESTED,\n getSubscriptionVerification,\n ),\n takeLatest(SUBSCRIPTION_RECORDS_REQUESTED, getSubscriptionsRecords),\n takeLatest(SUBSCRIPTION_TIERS_REQUESTED, getSubscriptionsTiers),\n takeLatest(\n SUBSCRIPTION_MANAGEMENT_LINK_REQUESTED,\n getSubscriptionManagementLink,\n ),\n ]);\n}\n","import { all, call } from 'redux-saga/effects';\nimport initSaga from '../init/saga';\nimport authSaga from '../auth/saga';\nimport userSaga from '../user/saga';\nimport viewChallengeSaga from '../challenges/saga';\nimport updateChallengeSaga from '../screens/UpdateChallengeScreen/saga';\nimport viewActionSaga from '../actions/saga';\nimport analyticsPhotoSaga from '../analytics/photos/saga';\nimport analyticsSaga from '../analytics/saga';\nimport communitySaga from '../community/saga';\nimport imageSaga from '../image/saga';\nimport notificationsSaga from '../notifications/saga';\nimport flaggedContentSaga from '../flags/saga';\nimport themesSaga from '../communityThemes/saga';\nimport deepLinksSaga from '../deepLinks/saga';\nimport inviteUsersSaga from '../store/inviteUsers/saga';\nimport settingsSaga from '../screens/SettingsScreen/saga';\nimport activitiesSaga from '../activities/saga';\nimport subscriptionSaga from '../subscriptions/saga';\n\nexport default function* rootSaga() {\n yield all([\n call(initSaga),\n call(authSaga),\n call(deepLinksSaga),\n call(userSaga),\n call(viewChallengeSaga),\n call(updateChallengeSaga),\n call(viewActionSaga),\n call(analyticsPhotoSaga),\n call(analyticsSaga),\n call(activitiesSaga),\n call(flaggedContentSaga),\n call(communitySaga),\n call(imageSaga),\n call(notificationsSaga),\n call(themesSaga),\n call(imageSaga),\n call(inviteUsersSaga),\n call(settingsSaga),\n call(subscriptionSaga),\n ]);\n}\n","// Create browser history object for tracking browser state\nimport { createBrowserHistory } from 'history';\n\nconst browserHistory = createBrowserHistory();\nexport default browserHistory;\n","import { getFontFamily } from '../utils';\n\nexport default (theme) => ({\n '#root': {\n minHeight: '100%',\n backgroundColor: theme.custom.bgColor,\n },\n body: {\n fontFamily: `\"${getFontFamily() ||\n 'effra'}\",\"Helvetica Neue\",Helvetica,Arial,sans-serif`,\n\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n },\n a: {\n color: theme.palette.primary,\n '&:visited': {\n color: theme.palette.disabled,\n },\n '&:hover, &:active': {\n backgroundColor: theme.palette.primary,\n color: theme.palette.primaryForeground,\n },\n },\n});\n","/**\n * Some sane cross-browser resets that take into account our theme, borrowed from `@material-ui/core` and merged\n * with some modern reset CSS from the below article.\n *\n * @see https://github.com/mui-org/material-ui/blob/v4.9.0/packages/material-ui/src/CssBaseline/CssBaseline.js\n * @see https://dev.to/hankchizljaw/a-modern-css-reset-6p3\n *\n * @param {object} theme\n * @returns {object}\n */\nexport default (theme) => ({\n 'html, body': {\n minHeight: '100vh',\n overflowX: 'hidden',\n },\n html: {\n // Anti-aliasing.\n WebkitFontSmoothing: 'antialiased',\n MozOsxFontSmoothing: 'grayscale',\n // Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n boxSizing: 'border-box',\n },\n '*, *::before, *::after': {\n boxSizing: 'inherit',\n },\n 'strong, b': {\n fontWeight: 'bolder',\n },\n body: {\n // Remove the margin in all browsers.\n margin: 0,\n color: theme.palette.foreground,\n ...theme.typography.normal,\n backgroundColor: theme.palette.background,\n scrollBehavior: 'smooth',\n textRendering: 'optimizeSpeed',\n '@media print': {\n // Save printer ink.\n backgroundColor: '#ffffff',\n },\n /*\n * Add support for document.body.requestFullScreen(). Other elements, if background transparent, are not\n * supported.\n */\n '&::backdrop': {\n backgroundColor: theme.palette.background,\n },\n },\n 'ul[class], ol[class]': {\n padding: 0,\n listStyle: 'none',\n },\n 'body, h1, h2, h3, h4, h5, h6, p, ul[class], ol[class], li, figure, figcaption, blockquote, dl, dd': {\n margin: 0,\n },\n 'h1, h2, h3, h4, h5, h6': {\n marginTop: '0.5em',\n marginBottom: '0.3em',\n },\n p: {\n marginBottom: '0.5em',\n },\n code: {\n whiteSpace: 'pre',\n },\n 'a:not([class])': {\n textDecorationSkipInk: 'auto',\n },\n img: {\n maxWidth: '100%',\n display: 'block',\n },\n 'article > * + *': {\n marginTop: '1em',\n },\n 'input, button, textarea, select': {\n font: 'inherit',\n },\n '@media (prefers-reduced-motion: reduce)': {\n '*': {\n animationDuration: '0.01ms !important',\n animationIterationCount: '1 !important',\n transitionDuration: '0.01ms !important',\n scrollBehavior: 'auto !important',\n },\n },\n});\n","import React from 'react';\nimport { withStyles } from '@material-ui/styles';\nimport rawGlobalStyles from './global';\nimport rawResetStyles from './reset';\n\n/**\n * A \"ghost\" component that injects global styles.\n *\n * @type {React.FunctionComponent<{ children?: React.ReactNode }>}\n */\nconst GlobalStyles = withStyles(\n (theme) => ({\n '@global': {\n ...(typeof rawResetStyles === 'function'\n ? rawResetStyles(theme)\n : rawResetStyles),\n ...(typeof rawGlobalStyles === 'function'\n ? rawGlobalStyles(theme)\n : rawGlobalStyles),\n },\n }),\n {\n name: 'GlobalStyles',\n },\n)(function GlobalStyles({ children = null }) {\n return <>{children};\n});\n\nexport default GlobalStyles;\n","const styles = (theme) => ({\n form: {\n position: 'relative',\n width: '100%',\n },\n setupFormButton: {\n width: '30%',\n marginTop: '13px',\n [theme.breakpoints.down('xs')]: {\n width: '50%',\n marginTop: '13px',\n },\n },\n buttonWrapper: {\n paddingTop: '20px',\n paddingBottom: '20px',\n [theme.breakpoints.down('xs')]: {\n paddingTop: '13px',\n paddingBottom: '13px',\n },\n },\n});\n\nexport default styles;\n","import { makeStyles } from '@material-ui/core';\nimport { darken, fade } from '@material-ui/core/styles/colorManipulator';\n\nconst useStyles = makeStyles((theme) => ({\n root: (props) => {\n const themeType = props.color === 'secondary' ? 'secondary' : 'primary';\n const colorTheme = theme.palette[themeType].main;\n const darkColorTheme = theme.palette[themeType].dark;\n const activeBgColor = fade(props.btnColor || colorTheme, 0.25);\n\n if (props.variant === 'text') {\n const color = props.textColor || colorTheme;\n const hoverBgColor = fade(props.btnColor || colorTheme, 0.1);\n\n return {\n color,\n\n '&:hover': {\n backgroundColor: hoverBgColor,\n },\n\n '&:active': {\n backgroundColor: activeBgColor,\n },\n\n '&:disabled': {\n color,\n opacity: 0.65,\n },\n };\n }\n if (props.variant === 'contained') {\n const color = props.textColor || theme.palette.primary.contrastText;\n const backgroundColor = props.btnColor || colorTheme;\n const hoverBgColor = props.btnColor\n ? darken(props.btnColor, 0.1)\n : darkColorTheme || darken(colorTheme, 0.1);\n\n return {\n color,\n backgroundColor,\n\n '&:hover': {\n backgroundColor: hoverBgColor,\n },\n\n '&:active': {\n backgroundColor: activeBgColor,\n },\n\n '&:disabled': {\n color,\n backgroundColor,\n opacity: 0.65,\n },\n };\n }\n if (props.variant === 'outlined') {\n const color = props.textColor || colorTheme;\n const borderColor = props.btnColor || colorTheme;\n const hoverBgColor = fade(props.btnColor || colorTheme, 0.1);\n\n return {\n color,\n borderColor,\n\n '&:hover': {\n backgroundColor: hoverBgColor,\n borderColor,\n },\n\n '&:active': {\n backgroundColor: activeBgColor,\n },\n\n '&:disabled': {\n color,\n borderColor,\n opacity: 0.65,\n },\n };\n }\n return {};\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button } from '@material-ui/core';\nimport BUTTON_COLORS from '../constants';\nimport useStyles from './styles';\n\nconst RawButton = ({\n children,\n variant,\n color,\n btnColor,\n textColor,\n ...props\n}) => {\n const defaultColor = color === 'secondary' ? 'secondary' : 'default';\n const classes = useStyles({ variant, color, btnColor, textColor });\n\n return (\n \n {children}\n \n );\n};\n\nRawButton.propTypes = {\n children: PropTypes.node,\n variant: PropTypes.string,\n color: PropTypes.oneOf(BUTTON_COLORS),\n btnColor: PropTypes.string,\n textColor: PropTypes.string,\n};\n\nRawButton.defaultProps = {\n children: PropTypes.node,\n variant: 'contained',\n color: 'default',\n btnColor: null,\n textColor: null,\n};\n\nexport default RawButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ThemeProvider } from '@material-ui/styles';\nimport BUTTON_COLORS from './constants';\nimport RawButton from './RawButton';\nimport { CircularProgress, Grid, useTheme } from '@material-ui/core';\nimport { createTheme } from '@material-ui/core/styles';\nimport theme from '../../theme';\n\nconst AdminButton = ({ children, color, loading, ...props }) => {\n const currentTheme = useTheme();\n const themes = {\n default: currentTheme.palette.default,\n primary: currentTheme.palette.primary,\n accent: currentTheme.palette.accent,\n danger: currentTheme.palette.error,\n warning: currentTheme.palette.warning,\n success: currentTheme.palette.success,\n info: currentTheme.palette.info,\n white: currentTheme.palette.white,\n gray: currentTheme.palette.gray,\n light: currentTheme.palette.light,\n };\n const selectedTheme = createTheme({\n ...currentTheme,\n palette: {\n primary: themes[color],\n },\n });\n return (\n \n \n \n {children}\n \n {loading && (\n \n \n \n )}\n \n \n );\n};\n\nAdminButton.propTypes = {\n children: PropTypes.node,\n color: PropTypes.oneOf(BUTTON_COLORS),\n loading: PropTypes.bool,\n};\n\nAdminButton.defaultProps = {\n children: PropTypes.node,\n color: 'default',\n loading: false,\n};\n\nexport default AdminButton;\n","const styles = (theme) => ({\n actionButton: {\n marginRight: '10px',\n paddingLeft: '40px',\n paddingRight: '40px',\n [theme.breakpoints.down('xs')]: {\n width: '48.3%',\n paddingLeft: '20px',\n paddingRight: '20px',\n },\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, withStyles } from '@material-ui/core';\nimport styles from './styles';\nimport Button from '../../Button';\nimport { noop } from '../../../utils';\n\nconst NextAndBackButtons = ({ onBack, isValid, submitBtnText, classes }) => {\n const { t } = useTranslation();\n\n return (\n \n \n {t('back')}\n \n \n {submitBtnText}\n \n \n );\n};\n\nNextAndBackButtons.propTypes = {\n classes: PropTypes.object.isRequired,\n onBack: PropTypes.func.isRequired,\n isValid: PropTypes.bool.isRequired,\n submitBtnText: PropTypes.string.isRequired,\n};\n\nNextAndBackButtons.defaultProps = {\n onBack: noop,\n isValid: false,\n submitBtnText: '',\n};\n\nexport default withStyles(styles)(NextAndBackButtons);\n","import React from 'react';\nimport { Formik, Form } from 'formik';\nimport PropTypes from 'prop-types';\nimport { Grid, withStyles } from '@material-ui/core';\nimport styles from './styles';\nimport Button from '../Button';\nimport NextAndBackButtons from './NextAndBackButtons';\nimport { useTranslation } from 'react-i18next';\n\nconst ShineForm = ({\n children,\n classes,\n initialValues,\n validator,\n validationSchema,\n onSubmit,\n submitBtnType,\n submitBtnColor,\n submitBtnTextColor,\n submitBtnText,\n enableReinitialize,\n hasNext,\n onBack,\n loading,\n disabled,\n submitBtnClass,\n}) => {\n const { t } = useTranslation();\n return (\n \n {({ isValid, ...formikProps }) => (\n
\n \n {typeof children === 'function'\n ? children(formikProps)\n : children}\n {onBack ? (\n \n ) : (\n \n {submitBtnText || t('Submit')}\n \n )}\n \n
\n )}\n \n );\n};\n\nShineForm.propTypes = {\n children: PropTypes.oneOfType([\n // Specify Formik field(s)\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n\n // Can supply a function as the form children to get access to Formik props\n PropTypes.func,\n ]),\n classes: PropTypes.object.isRequired,\n initialValues: PropTypes.object.isRequired,\n validator: PropTypes.func,\n validationSchema: PropTypes.object,\n onSubmit: PropTypes.func.isRequired,\n submitBtnType: PropTypes.string,\n submitBtnColor: PropTypes.string,\n submitBtnTextColor: PropTypes.string,\n submitBtnText: PropTypes.string,\n enableReinitialize: PropTypes.bool,\n hasNext: PropTypes.bool,\n onBack: PropTypes.func,\n disabled: PropTypes.bool,\n loading: PropTypes.bool,\n submitBtnClass: PropTypes.object,\n};\n\nShineForm.defaultProps = {\n children: null,\n validator: null,\n validationSchema: null,\n submitBtnType: 'accent',\n submitBtnColor: null,\n submitBtnTextColor: null,\n submitBtnText: '',\n enableReinitialize: false,\n hasNext: false,\n onBack: null,\n disabled: false,\n loading: false,\n submitBtnClass: null,\n};\n\nexport default withStyles(styles)(ShineForm);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: ({ noBottomMargin, borderColor }) => ({\n width: '100%',\n marginBottom: noBottomMargin ? 0 : '7px',\n padding: '10px 16px',\n border: `1px solid ${\n borderColor == null ? theme.palette.primary.main : borderColor\n } !important`,\n borderRadius: '8px',\n backgroundColor: theme.custom.inputBackground,\n fontSize: '18px',\n\n '&:before, &:after': {\n display: 'none',\n },\n\n '&:hover': {\n backgroundColor: theme.custom.bgLightColor,\n },\n\n '&:active:not(.Mui-disabled)': {\n backgroundColor: theme.palette.common.white,\n },\n\n '&.Mui-focused': {\n borderColor:\n borderColor == null ? theme.palette.primary.dark : borderColor,\n },\n }),\n input: {\n height: '24px',\n padding: 0,\n },\n container: (props) => ({\n position: 'relative',\n width: '100%',\n height: props.autoHeight ? 'auto' : '78px',\n }),\n inputLabel: {\n color: theme.palette.primary.main,\n },\n icon: {\n position: 'absolute',\n right: '0',\n width: '44px',\n height: '44px',\n padding: '12px',\n color: theme.custom.grey20,\n\n '&:hover': {\n color: theme.palette.secondary.dark,\n cursor: 'pointer',\n },\n },\n errorBelow: (props) => ({\n margin: `0 0 10px ${props.noLeftMargin ? 0 : '20px'}`,\n color: props.errorTextColor,\n }),\n}));\n\nexport default useStyles;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n marginBottom: '5px',\n fontWeight: 700,\n display: 'flex',\n },\n fieldLabel: {\n color: theme.palette.primary.main,\n fontWeight: 700,\n fontSize: 14,\n },\n}));\n\nexport default useStyles;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n icon: {\n marginLeft: '5px',\n color: theme.custom.iconColor,\n fontSize: '18px',\n '&:hover': {\n color: theme.custom.iconColorHover,\n cursor: 'pointer',\n },\n },\n}));\n\nexport default useStyles;\n","import PropTypes from 'prop-types';\n\nexport const tooltipPlacementPropType = PropTypes.oneOf([\n 'bottom-end',\n 'bottom-start',\n 'bottom',\n 'left-end',\n 'left-start',\n 'left',\n 'right-end',\n 'right-start',\n 'right',\n 'top-end',\n 'top-start',\n 'top',\n]);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n arrow: {\n color: theme.palette.common.black,\n },\n tooltip: {\n backgroundColor: theme.palette.common.black,\n },\n button: {\n padding: 0,\n backgroundColor: 'transparent',\n '&:hover': {\n backgroundColor: 'transparent',\n },\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Tooltip as TooltipUI } from '@material-ui/core';\nimport useStyles from './styles';\nimport { tooltipPlacementPropType } from './propTypes';\nimport { noop } from '../../utils';\n\nconst Tooltip = ({ title, placement, children, onClick, ...props }) => {\n const classes = useStyles();\n\n if (title === null) {\n props.disableHoverListener = true;\n props.disableFocusListener = true;\n }\n\n return (\n \n \n \n );\n};\n\nTooltip.propTypes = {\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n placement: tooltipPlacementPropType,\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n onClick: PropTypes.func,\n};\n\nTooltip.defaultProps = {\n title: '',\n placement: 'top',\n children: null,\n onClick: noop,\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport useStyles from './styles';\nimport { tooltipPlacementPropType } from '../Tooltip/propTypes';\nimport Tooltip from '../Tooltip';\nimport { InfoOutlined } from '@material-ui/icons';\n\nconst InfoTooltip = ({ text, placement, intercomTarget, Icon, ...props }) => {\n const classes = useStyles();\n\n return (\n \n \n \n );\n};\n\nInfoTooltip.propTypes = {\n text: PropTypes.string,\n placement: tooltipPlacementPropType,\n intercomTarget: PropTypes.string,\n Icon: PropTypes.elementType,\n};\n\nInfoTooltip.defaultProps = {\n text: '',\n placement: 'right',\n intercomTarget: '',\n Icon: InfoOutlined,\n};\n\nexport default InfoTooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport useStyles from './styles';\nimport { Grid, Typography } from '@material-ui/core';\nimport InfoTooltip from '../InfoTooltip';\n\nconst Label = ({ text, tooltipText, tooltipPlacement, intercomTarget }) => {\n const classes = useStyles();\n\n return (\n \n \n \n {text}\n \n \n \n {(tooltipText || intercomTarget) && (\n \n )}\n \n \n );\n};\n\nLabel.propTypes = {\n text: PropTypes.string.isRequired,\n tooltipText: PropTypes.string,\n tooltipPlacement: PropTypes.string,\n intercomTarget: PropTypes.string,\n};\n\nLabel.defaultProps = {\n tooltipText: null,\n tooltipPlacement: 'right',\n intercomTarget: 'Field Tooltip',\n};\n\nexport default Label;\n","import React from 'react';\nimport { ErrorMessage, Field } from 'formik';\nimport PropTypes from 'prop-types';\nimport { Grid, Input } from '@material-ui/core';\nimport classNames from 'classnames';\n\nimport useStyles from './styles';\nimport theme from '../../../theme';\nimport FieldLabel from '../../FieldLabel';\n\nconst FormInput = ({\n errorTextColor,\n noLeftMargin,\n noBottomMargin,\n autoHeight,\n noErrorMessage,\n borderColor,\n Icon,\n onIconClick,\n label,\n as,\n useFormik,\n additionalClasses,\n Component,\n tooltipText,\n tooltipIntercomTarget,\n intercomTargetPrefix,\n name,\n ...props\n}) => {\n const classes = useStyles({\n errorTextColor,\n noLeftMargin,\n noBottomMargin,\n autoHeight,\n borderColor,\n });\n const inputClasses = {\n root: classes.root,\n input: classes.input,\n };\n\n return (\n \n {label && (\n \n )}\n \n {useFormik ? (\n \n ) : (\n \n )}\n {Icon && (\n \n )}\n {noErrorMessage ? null : (\n \n )}\n \n \n );\n};\n\nFormInput.propTypes = {\n name: PropTypes.string.isRequired,\n errorTextColor: PropTypes.string,\n // whether the error message should have left margin\n noLeftMargin: PropTypes.bool,\n // whether the field should have bottom margin\n noBottomMargin: PropTypes.bool,\n // whether the error message should be displayed\n noErrorMessage: PropTypes.bool,\n // whether the input container has smaller container height\n autoHeight: PropTypes.bool,\n borderColor: PropTypes.string,\n\n label: PropTypes.string,\n\n // whether to use Formik's Field component\n useFormik: PropTypes.bool,\n // Can be used to deep merge classes\n additionalClasses: PropTypes.object,\n\n // an instance of a material UI icon, which is just an object\n Icon: PropTypes.object,\n onIconClick: PropTypes.func,\n as: PropTypes.elementType,\n Component: PropTypes.elementType,\n tooltipText: PropTypes.string,\n tooltipIntercomTarget: PropTypes.string,\n intercomTargetPrefix: PropTypes.string,\n};\n\nFormInput.defaultProps = {\n errorTextColor: theme.palette.error.main,\n noLeftMargin: false,\n noBottomMargin: false,\n noErrorMessage: false,\n autoHeight: true,\n borderColor: null,\n useFormik: true,\n Icon: null,\n onIconClick: null,\n as: Input,\n label: '',\n additionalClasses: {},\n Component: Input,\n tooltipText: null,\n tooltipIntercomTarget: null,\n intercomTargetPrefix: '',\n};\n\nexport default FormInput;\n","import IMAGES from '../../constants/images';\nimport { makeStyles } from '@material-ui/core';\nconst styles = (theme) => ({\n container: {\n overflowY: 'auto',\n height: 'calc(100% - 72px)',\n [theme.breakpoints.down('sm')]: {\n height: 'auto',\n },\n },\n overlay: {\n opacity: 0.2,\n },\n loginScreen: ({ leftBackgroundImage, rightBackgroundImage }) => ({\n height: '100vh',\n width: '100%',\n position: 'relative',\n zIndex: '2',\n '&:after': {\n content: '\"\"',\n position: 'absolute',\n width: '23.5%',\n height: '100%',\n bottom: '69px',\n left: '0',\n backgroundImage: `url(${rightBackgroundImage || IMAGES.loginBg1})`,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n zIndex: '-1',\n backgroundPosition: 'left,bottom',\n '@media only screen and (min-width: 1024px) and (orientation: portrait)': {\n display: 'none',\n },\n [theme.breakpoints.down('sm')]: {\n display: 'none',\n },\n },\n '&:before': {\n content: '\"\"',\n position: 'absolute',\n width: '19.5%',\n height: '100%',\n bottom: '39px',\n right: '0',\n backgroundImage: `url(${leftBackgroundImage || IMAGES.loginBg2})`,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n zIndex: '-1',\n backgroundPosition: 'right, bottom',\n '@media only screen and (min-width: 1024px) and (orientation: portrait)': {\n display: 'none',\n },\n [theme.breakpoints.down('sm')]: {\n display: 'none',\n },\n },\n [theme.breakpoints.down('sm')]: {\n height: 'calc(100vh - 160px)',\n background: 'none',\n '@media (orientation: landscape)': {\n height: 'auto',\n },\n },\n }),\n wrapper: {\n padding: '0 5px',\n marginTop: '50px',\n marginBottom: '30px',\n },\n createAccountText: {\n marginBottom: '10px',\n marginRight: '5px',\n },\n link: {\n color: '#1D8DC7',\n marginTop: 20,\n marginBottom: 20,\n textDecoration: 'underline',\n\n '&:hover': {\n textDecoration: 'underline',\n color: theme.custom.bgBlackTransparent,\n backgroundColor: 'transparent',\n },\n },\n loginOptionsText: {\n marginBottom: '20px',\n },\n title: {\n fontWeight: '700',\n margin: '20px 0 10px',\n textAlign: 'center',\n },\n loader: {\n maxWidth: '80px',\n height: 'auto',\n padding: '0px',\n backgroundColor: theme.custom.bgBlackTransparent,\n border: '2px',\n borderRadius: '5px',\n },\n inputLabel: {\n color: theme.palette.primary.main,\n },\n footer: {\n backgroundColor: 'transparent',\n },\n text: {\n marginBottom: '10px',\n textAlign: 'center',\n },\n});\n\nexport default styles;\n\nexport const useStyles = makeStyles(styles);\n","import theme from '../../../theme';\nimport templateStyles from '../styles';\n\nconst styles = () => ({\n ...templateStyles(theme),\n title: {\n margin: '20px 0 10px',\n fontSize: '30px',\n fontWeight: 'bold',\n textAlign: 'center',\n },\n text: {\n marginBottom: '10px',\n textAlign: 'center',\n },\n});\n\nexport default styles;\n","const styles = (theme) => ({\n container: {\n width: '100%',\n maxWidth: theme.custom.containerMaxWidth,\n position: 'fixed',\n [theme.breakpoints.down('md')]: {\n position: 'relative',\n },\n },\n innerContainer: {\n width: '100%',\n margin: '0 auto',\n padding: `0 ${theme.custom.containerPadding}px`,\n [theme.breakpoints.down('md')]: {\n flexDirection: 'column',\n },\n [theme.breakpoints.down('xs')]: {\n padding: '13px',\n },\n },\n menuAndLogoutGridItem: {\n flexGrow: 1,\n },\n lightMoodContainer: {\n backgroundColor: 'red',\n '$ img': {\n width: 500,\n filter: 'brightness(0) invert(1',\n },\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core';\nimport { getAppImages } from '../../utils';\n\nconst styles = (theme) => ({\n logo: {\n marginTop: 15,\n height: 'auto',\n width: '175px',\n [theme.breakpoints.down('md')]: {\n width: '150px',\n },\n },\n});\n\nconst Logo = ({ classes, isLogoWhite }) => {\n const logoURL = () => {\n if (isLogoWhite) {\n return getAppImages().onBoardingLogoWhite;\n }\n return getAppImages().onBoardingLogo;\n };\n\n return \"JouleBug\";\n};\nLogo.propTypes = {\n // From withStyles we expect to get classes\n classes: PropTypes.object.isRequired,\n isLogoWhite: PropTypes.bool,\n};\nLogo.defaultProps = {\n isLogoWhite: false,\n};\nexport default withStyles(styles)(Logo);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, withStyles } from '@material-ui/core';\nimport styles from './styles';\nimport Logo from '../Logo';\n\nconst OnboardingHeader = ({ classes, isLightMode }) => {\n return (\n \n \n \n \n \n \n \n );\n};\n\nOnboardingHeader.propTypes = {\n classes: PropTypes.object.isRequired,\n isLightMode: PropTypes.bool,\n};\nOnboardingHeader.defaultProps = {\n isLightMode: false,\n};\nexport default withStyles(styles)(OnboardingHeader);\n","const styles = (theme) => ({\n onBoardingFooterContainer: {\n backgroundColor: theme.custom.bgOnboardingFooter,\n padding: '5px 27px 5px 27px',\n zIndex: '4',\n [theme.breakpoints.down('sm')]: {\n position: 'relative',\n },\n [theme.breakpoints.down('xs')]: {\n padding: '13px',\n },\n },\n onBoardingFooterContainerFixed: {\n backgroundColor: theme.custom.bgOnboardingFooter,\n padding: '5px 27px 5px 27px',\n zIndex: '4',\n position: 'fixed',\n bottom: '0px',\n height: '72px',\n [theme.breakpoints.down('sm')]: {\n position: 'relative',\n },\n [theme.breakpoints.down('xs')]: {\n padding: '13px',\n },\n },\n gridLeft: {\n flexDirection: 'row-reverse',\n [theme.breakpoints.down('xs')]: {\n flexDirection: 'revert',\n },\n },\n listItem: {\n display: 'flex',\n padding: '10px 10px 10px 10px',\n [theme.breakpoints.down('xs')]: {\n padding: '0px',\n marginRight: '13px',\n marginBottom: '10px',\n width: '50%',\n },\n },\n inlineListSection: {\n display: 'flex',\n flexDirection: 'row',\n padding: 0,\n [theme.breakpoints.down('xs')]: {\n display: 'flex',\n flexDirection: 'revert',\n width: '100%',\n },\n },\n onBoardingFooterText: {\n color: theme.palette.white.main,\n opacity: 0.75,\n },\n storeBadge: {\n maxWidth: '125px',\n [theme.breakpoints.down('xs')]: {\n maxWidth: '129px',\n },\n },\n lightModeContainer: {\n backgroundColor: 'white',\n padding: '5px 27px 5px 27px',\n zIndex: '0',\n position: 'fixed',\n bottom: '0px',\n [theme.breakpoints.down('sm')]: {\n position: 'relative',\n backgroundColor: theme.custom.white,\n },\n [theme.breakpoints.down('xs')]: {\n padding: '13px',\n },\n '& a': {\n color: theme.custom.textDarkSecondaryColor,\n },\n },\n downloadLinks: {\n justifyContent: 'flex-end',\n },\n});\n\nexport default styles;\n","const styles = (theme) => ({\n onBoardingFooterContainer: {\n backgroundColor: theme.custom.bgOnboardingFooter,\n padding: '5px 27px 5px 27px',\n zIndex: '4',\n [theme.breakpoints.down('sm')]: {\n position: 'relative',\n },\n [theme.breakpoints.down('xs')]: {\n padding: '13px',\n },\n },\n onBoardingFooterContainerFixed: {\n backgroundColor: theme.custom.bgOnboardingFooter,\n padding: '5px 27px 5px 27px',\n zIndex: '4',\n position: 'fixed',\n bottom: '0px',\n height: '72px',\n [theme.breakpoints.down('sm')]: {\n position: 'relative',\n },\n [theme.breakpoints.down('xs')]: {\n padding: '13px',\n },\n },\n gridLeft: {\n flexDirection: 'row-reverse',\n [theme.breakpoints.down('xs')]: {\n flexDirection: 'revert',\n },\n },\n listItem: {\n display: 'flex',\n padding: '10px 10px 10px 10px',\n [theme.breakpoints.down('xs')]: {\n padding: '0px',\n marginRight: '13px',\n marginBottom: '10px',\n width: '50%',\n },\n },\n inlineListSection: {\n display: 'flex',\n flexDirection: 'row',\n padding: 0,\n [theme.breakpoints.down('xs')]: {\n display: 'flex',\n flexDirection: 'revert',\n width: '100%',\n },\n },\n onBoardingFooterText: {\n color: theme.palette.white.main,\n opacity: 0.75,\n },\n storeBadge: {\n maxWidth: '125px',\n [theme.breakpoints.down('xs')]: {\n maxWidth: '129px',\n },\n },\n lightModeContainer: {\n backgroundColor: 'white',\n padding: '5px 27px 5px 27px',\n zIndex: '0',\n position: 'fixed',\n bottom: '0px',\n [theme.breakpoints.down('sm')]: {\n position: 'relative',\n backgroundColor: theme.custom.white,\n },\n [theme.breakpoints.down('xs')]: {\n padding: '13px',\n },\n '& a': {\n color: theme.custom.textDarkSecondaryColor,\n },\n },\n});\n\nexport default styles;\n","import { Grid, Link, List, withStyles } from '@material-ui/core';\nimport { getAppStoreLink, getPlayStoreLink } from '../../utils';\nimport IMAGES from '../../constants/images';\nimport React from 'react';\nimport styles from './styles';\nimport { useTranslation } from 'react-i18next';\n\nconst AppDownloadLinks = ({ classes }) => {\n const { t } = useTranslation();\n return (\n \n \n {getAppStoreLink() && (\n
  • \n \n \n \n
  • \n )}\n {getPlayStoreLink() && (\n
  • \n \n \n \n
  • \n )}\n
    \n \n );\n};\n\nexport default withStyles(styles)(AppDownloadLinks);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, Link, List, Typography, withStyles } from '@material-ui/core';\nimport styles from './styles';\nimport { getPrivacyLink, getTermsLink } from '../../utils';\nimport AppDownloadLinks from '../AppDownloadLinks';\n\nconst OnboardingFooter = ({ classes, isLightMode, positionFixed }) => {\n const { t } = useTranslation();\n\n return (\n \n \n \n
  • \n \n \n {t('termsOfService')}\n \n \n
  • \n \n \n \n {t('privacyPolicy')}\n \n \n \n
    \n \n \n \n );\n};\n\nOnboardingFooter.propTypes = {\n classes: PropTypes.object.isRequired,\n isLightMode: PropTypes.bool,\n positionFixed: PropTypes.bool,\n};\nOnboardingFooter.defaultProps = {\n isLightMode: false,\n positionFixed: true,\n};\n\nexport default withStyles(styles)(OnboardingFooter);\n","const styles = (theme) => ({\n snackBar: {\n bottom: '86px',\n [theme.breakpoints.down('sm')]: {\n bottom: '134px',\n },\n [theme.breakpoints.down('xs')]: {\n bottom: '8px',\n },\n },\n successAlert: {\n color: theme.palette.alert.contrastText,\n backgroundColor: theme.palette.alert.main,\n },\n errorAlert: {\n color: theme.palette.error.contrastText,\n backgroundColor: theme.palette.error.main,\n },\n});\nexport default styles;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Snackbar, Typography, withStyles } from '@material-ui/core';\nimport MuiAlert from '@material-ui/lab/Alert';\nimport { SNACKBAR_DURATION, SUCCESS } from './constants';\nimport { noop } from '../../utils';\nimport styles from './styles';\n\nconst SnackbarAlert = ({\n messages,\n severity,\n classes,\n clearMessages,\n ...props\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n useEffect(() => {\n if (messages?.length > 0) {\n setIsOpen(true);\n } else setIsOpen(false);\n }, [messages, clearMessages]);\n\n const onClose = () => {\n setIsOpen(false);\n clearMessages();\n };\n\n return (\n \n \n {messages}\n \n \n );\n};\n\nSnackbarAlert.propTypes = {\n clearMessages: PropTypes.func,\n messages: PropTypes.oneOf([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n severity: PropTypes.string,\n classes: PropTypes.object.isRequired,\n color: PropTypes.string,\n};\n\nSnackbarAlert.defaultProps = {\n clearMessages: noop,\n messages: '',\n severity: 'success',\n color: null,\n};\n\nexport default withStyles(styles)(SnackbarAlert);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { noop } from '../../utils';\nimport SnackbarAlert from '../index';\n\nconst SnackBarAPIResponse = ({ messages, errors, clearResponse, ...props }) => {\n return (\n <>\n \n \n \n );\n};\n\nSnackBarAPIResponse.propTypes = {\n clearResponse: PropTypes.func,\n messages: PropTypes.oneOf([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n errors: PropTypes.oneOf([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n};\n\nSnackBarAPIResponse.defaultProps = {\n clearResponse: noop,\n messages: '',\n errors: '',\n};\n\nexport default SnackBarAPIResponse;\n","const styles = (theme) => ({\n container: {\n zIndex: 1000,\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n wrapper: {\n zIndex: 1002,\n position: 'relative',\n width: 'auto',\n padding: '10px 15px',\n margin: '15px',\n borderRadius: '4px',\n backgroundColor: '#f5f6f7',\n },\n loader: {\n maxWidth: '100px',\n height: '40px',\n borderRadius: '6px',\n backgroundColor: 'rgba(0,0,0,.5)',\n },\n overlay: {\n zIndex: 1001,\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: '#e0e0e0',\n opacity: 0.8,\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, withStyles, Typography } from '@material-ui/core';\nimport IMAGES from '../../constants/images';\nimport styles from './styles';\nimport { useTranslation } from 'react-i18next';\n\nexport const RequestLoader = ({ classes, isLoading, title }) => {\n const { t } = useTranslation();\n\n if (!isLoading) return null;\n\n return (\n \n \n \n \n {title || t('loading.descriptor')}\n \n \n
    \n \n );\n};\n\nRequestLoader.propTypes = {\n classes: PropTypes.object,\n isLoading: PropTypes.bool.isRequired,\n title: PropTypes.string,\n};\n\nRequestLoader.defaultProps = {\n classes: {},\n title: '',\n};\n\nexport const StyledRequestLoader = withStyles(styles)(RequestLoader);\nexport default StyledRequestLoader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { clearAuthErrors } from '../../auth/actions';\nimport {\n getAuthMessages,\n getEmailVerificationErrors,\n getLoginErrors,\n getOrganizationCreationErrors,\n getPwResetErrors,\n getUserCreateErrors,\n isAuthLoading,\n} from '../../auth/selectors';\nimport { isUserLoading } from '../../user/selectors';\nimport { Grid } from '@material-ui/core';\nimport { useStyles } from './styles';\nimport OnboardingHeader from '../../common/OnboardingHeader';\nimport OnboardingFooter from '../../common/OnboardingFooter';\nimport SnackBarAPIResponse from '../../common/SnackbarAlert/SnackBarAPIResponse';\nimport RequestLoader from '../../common/RequestLoader';\nimport { noop } from '../../utils';\nimport IMAGES from '../../constants/images';\n\nexport const SignInScreenTemplate = ({\n loginLoading,\n userLoading,\n loginErrors,\n userCreateErrors,\n passwordResetErrors,\n emailVerificationErrors,\n messages,\n orgCreateErrors,\n leftBackgroundImage,\n rightBackgroundImage,\n clearErrors,\n children,\n}) => {\n const classes = useStyles({ leftBackgroundImage, rightBackgroundImage });\n const isLoading = loginLoading || userLoading;\n return (\n \n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n \n );\n};\n\nSignInScreenTemplate.propTypes = {\n loginLoading: PropTypes.bool,\n userLoading: PropTypes.bool,\n messages: PropTypes.arrayOf(PropTypes.string),\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n clearErrors: PropTypes.func,\n emailVerificationErrors: PropTypes.arrayOf(PropTypes.string),\n loginErrors: PropTypes.arrayOf(PropTypes.string),\n userCreateErrors: PropTypes.arrayOf(PropTypes.string),\n passwordResetErrors: PropTypes.arrayOf(PropTypes.string),\n orgCreateErrors: PropTypes.arrayOf(PropTypes.string),\n leftBackgroundImage: PropTypes.string,\n rightBackgroundImage: PropTypes.string,\n};\n\nSignInScreenTemplate.defaultProps = {\n loginLoading: false,\n userLoading: false,\n messages: [],\n children: null,\n cancelOnboarding: noop,\n emailVerificationErrors: [],\n loginErrors: [],\n userCreateErrors: [],\n passwordResetErrors: [],\n orgCreateErrors: [],\n clearErrors: noop,\n leftBackgroundImage: IMAGES.loginBg2,\n rightBackgroundImage: IMAGES.loginBg1,\n};\n\nconst mapStateToProps = (state) => ({\n loginErrors: getLoginErrors(state),\n userCreateErrors: getUserCreateErrors(state),\n passwordResetErrors: getPwResetErrors(state),\n emailVerificationErrors: getEmailVerificationErrors(state),\n orgCreateErrors: getOrganizationCreationErrors(state),\n messages: getAuthMessages(state),\n loginLoading: isAuthLoading(state),\n userLoading: isUserLoading(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n clearErrors: () => dispatch(clearAuthErrors()),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(SignInScreenTemplate);\n","import React, { useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport * as Yup from 'yup';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport { Link } from 'react-router-dom';\nimport { resetPasswordEmailRequested } from '../../../auth/actions';\nimport { useTranslation } from 'react-i18next';\nimport Form from '../../../common/Form';\nimport FormInput from '../../../common/Form/FormInput';\nimport styles from './styles';\nimport SignInScreenTemplate from '../index';\nimport AdminButton from '../../../common/Button';\nimport { getAuthMessages } from '../../../auth/selectors';\n\nconst ForgotPasswordScreen = ({ classes, onResetPassword, successMessage }) => {\n const { t } = useTranslation();\n\n const ValidationSchema = Yup.object().shape({\n email: Yup.string()\n .email(t('userCreate.emailInvalid'))\n .required(t('userCreate.inputRequired')),\n });\n\n useEffect(() => {\n if (successMessage?.length > 0) {\n setShowForm(false);\n }\n }, [successMessage]);\n\n const submitHandler = (value) => {\n onResetPassword(value.email);\n };\n\n const [showForm, setShowForm] = useState(true);\n\n return (\n \n \n \n \n {t('passwordReset.title')}\n \n \n {showForm ? (\n <>\n \n \n {t('passwordReset.resetSendDescription')}\n \n \n \n \n \n \n ) : (\n setShowForm(true)}\n >\n {t('passwordReset.resendEmail')}\n \n )}\n \n {t('passwordReset.returnToLogin')}\n \n \n \n );\n};\n\nForgotPasswordScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n onResetPassword: PropTypes.func.isRequired,\n successMessage: PropTypes.arrayOf(PropTypes.string),\n};\n\nForgotPasswordScreen.defaultProps = {\n successMessage: [],\n};\n\nexport const StyledResetPasswordScreen = withStyles(styles)(\n ForgotPasswordScreen,\n);\n\nconst mapStateToProps = (state) => ({\n successMessage: getAuthMessages(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n onResetPassword: (email) => dispatch(resetPasswordEmailRequested(email)),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledResetPasswordScreen);\n","import { makeStyles } from '@material-ui/styles';\n\nexport default makeStyles((theme) => ({\n container: {\n paddingTop: '50px',\n height: '100vh',\n backgroundImage: `linear-gradient(${theme.palette.accent.main}, ${theme.palette.primary.main}, ${theme.palette.secondary.main})`,\n color: theme.palette.common.white,\n },\n wrapper: {\n padding: '0 5px',\n },\n logo: {\n margin: '0 auto 28px',\n maxWidth: '50%',\n },\n link: {\n marginBottom: '10px',\n color: theme.palette.common.white,\n textDecoration: 'none',\n\n '&:hover': {\n color: 'rgba(0, 0, 0, 0.5)',\n backgroundColor: 'transparent',\n textDecoration: 'underline',\n },\n },\n title: {\n margin: '20px 0 10px',\n fontSize: '30px',\n fontWeight: 'bold',\n textAlign: 'center',\n },\n text: {\n marginBottom: '10px',\n textAlign: 'center',\n },\n button: {\n margin: '10px 0 15px',\n textDecoration: 'none',\n },\n loader: {\n maxWidth: '80px',\n height: 'auto',\n padding: '0px',\n backgroundColor: 'rgba(0,0,0,0.5)',\n border: '2px',\n borderRadius: '5px',\n },\n form: {\n width: '100%',\n },\n footer: {\n marginTop: '100px',\n backgroundColor: 'transparent',\n },\n returnToLoginButton: {\n marginTop: theme.spacing(4),\n },\n}));\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport * as Yup from 'yup';\nimport { Button, Grid, Typography } from '@material-ui/core';\nimport { useHistory } from 'react-router-dom';\nimport { resetPasswordRequested } from '../../../auth/actions';\nimport { useTranslation } from 'react-i18next';\nimport Form from '../../../common/Form';\nimport FormInput from '../../../common/Form/FormInput';\nimport useStyles from './styles';\nimport SignInScreenTemplate from '../index';\nimport { getPasswordResetReturnURL } from '../../../auth/selectors';\nimport AdminButton from '../../../common/Button';\n\nconst ResetPasswordScreen = ({ returnURL, onSubmit }) => {\n const classes = useStyles();\n const { t } = useTranslation();\n\n const ValidationSchema = Yup.object().shape({\n password: Yup.string()\n .min(8, t('userCreate.passwordLength', { length: 8 }))\n .required(t('userCreate.inputRequired')),\n passwordConfirm: Yup.string()\n .required(t('userCreate.inputRequired'))\n .oneOf(\n [Yup.ref('password'), null],\n t('userCreate.confirmPasswordMatch'),\n ),\n });\n\n const history = useHistory();\n\n const query = new URLSearchParams(window.location.search);\n const userId = query.get('user');\n const token = query.get('reset_token');\n if (!userId || !token) {\n history.push('/login');\n }\n\n const submitHandler = (value) => {\n onSubmit(value.password, value.passwordConfirm, userId, token);\n };\n\n return (\n \n \n \n \n {t('passwordReset.title')}\n \n \n {!returnURL ? (\n <>\n \n \n {t('passwordReset.resetDescription')}\n \n \n \n \n \n \n \n ) : (\n \n (window.location.href = returnURL)}\n color=\"accent\"\n size=\"large\"\n style={{ width: '100%' }}\n >\n {t('passwordReset.returnToLogin')}\n \n \n \n {menuItems.map((menuItem) => (\n \n {\n menuItem.onClick && menuItem.onClick();\n setAnchorEl(null);\n }}\n to={menuItem.url}\n >\n {menuItem.label}\n \n \n ))}\n \n \n );\n};\n\nUserDropdown.propTypes = {\n menuItems: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n }),\n ),\n title: PropTypes.string.isRequired,\n classes: PropTypes.object.isRequired,\n};\n\nUserDropdown.defaultProps = {\n menuItems: [],\n};\n\nexport default withStyles(styles)(UserDropdown);\n","const styles = (theme) => ({\n root: {\n height: 'auto',\n boxShadow: 'none',\n zIndex: theme.zIndex.drawer + 1,\n borderBottom: `1px solid ${theme.palette.secondary.main}`,\n },\n toolbar: {\n minHeight: theme.custom.headerHeight,\n height: theme.custom.headerHeight,\n padding: '0 0 0 16px',\n },\n menuIconWrapper: {\n // flex: 3,\n },\n menuIcon: {\n fontSize: '28px',\n\n '&:hover': {\n cursor: 'pointer',\n },\n },\n title: {\n padding: '15px 8px',\n fontSize: '18px',\n lineHeight: '20px',\n textDecoration: 'none',\n color: theme.palette.common.white,\n\n '&:hover': {\n color: theme.palette.secondary.main,\n },\n },\n userDropdown: {\n flex: 1,\n display: 'flex',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport { getUserName, isUserViewActive } from '../../user/selectors';\nimport { AppBar, Grid, Toolbar, withStyles } from '@material-ui/core';\nimport { Menu } from '@material-ui/icons';\nimport { useTranslation } from 'react-i18next';\nimport UserDropdown from '../UserDropdown';\nimport styles from './styles';\nimport { getAppName } from '../../utils';\nimport { logoutRequested } from '../../auth/actions';\nimport { toggleUserView } from '../../user/actions';\nimport { Can } from '../../casl/ability-context';\n\nconst PageHeader = ({\n classes,\n userName,\n onClick,\n showHamburger,\n onLogout,\n toggleUserView,\n isUserViewActive,\n}) => {\n const { t } = useTranslation();\n\n const handleUserViewToggle = () => {\n toggleUserView();\n };\n\n const menuItems = [\n { label: t('profile.descriptor'), url: '/profile/self' },\n { label: t('Logout'), url: '/login', onClick: () => onLogout() },\n ];\n const prevAsAdminMenuItems = [\n {\n label: t('switchDesktopUser'),\n url: '/',\n onClick: () => handleUserViewToggle(),\n },\n ...menuItems,\n ];\n const prevAsUserMenuItems = [\n {\n label: t('switchAdmin'),\n url: '/',\n onClick: () => handleUserViewToggle(),\n },\n ...menuItems,\n ];\n\n return (\n \n \n \n \n {showHamburger && (\n \n )}\n \n {getAppName()}\n \n \n \n \n {isUserViewActive ? (\n \n ) : (\n \n )}\n \n\n \n \n \n \n \n \n \n );\n};\n\nPageHeader.propTypes = {\n classes: PropTypes.object.isRequired,\n userName: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n showHamburger: PropTypes.bool,\n onLogout: PropTypes.func.isRequired,\n toggleUserView: PropTypes.func.isRequired,\n isUserViewActive: PropTypes.bool,\n};\n\nPageHeader.defaultProps = {\n onClick: null,\n showHamburger: true,\n isUserViewActive: false,\n};\n\nexport const StyledPageHeader = withStyles(styles)(PageHeader);\n\nconst mapStateToProps = (state) => ({\n userName: getUserName(state),\n isUserViewActive: isUserViewActive(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n onLogout: () => dispatch(logoutRequested()),\n toggleUserView: () => dispatch(toggleUserView()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(StyledPageHeader);\n","import React from 'react';\nimport withStyles from '@material-ui/core/styles/withStyles';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\nimport Avatar from '@material-ui/core/Avatar';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { noop } from '../utils';\nimport styles from './styles';\nimport { getAppImages } from '../../utils';\n\nconst CommunityCard = ({ classes, name, url, active, ...props }) => {\n return (\n \n \n \n \n \n \n );\n};\n\nCommunityCard.propTypes = {\n classes: PropTypes.object.isRequired,\n name: PropTypes.string.isRequired,\n url: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n active: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nCommunityCard.defaultProps = {\n url: null,\n active: false,\n onClick: noop,\n};\n\nexport default withStyles(styles)(CommunityCard);\n","export default (theme) => ({\n listItemRoot: {\n padding: '10px',\n backgroundColor: theme.custom.bgLightColor,\n },\n listItemButton: {\n '&:hover': {\n backgroundColor: theme.custom.bgLightColor,\n },\n },\n img: {\n width: 50,\n height: 50,\n marginRight: 10,\n borderRadius: 6,\n border: '1px solid #fff',\n },\n title: {\n ...theme.typography,\n fontSize: 18,\n align: 'center',\n },\n active: {\n color: theme.palette.primary.main,\n },\n});\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n panel: {\n width: '100%',\n boxShadow: 'none',\n '&:not(:last-child)': {\n borderBottom: 0,\n },\n '&:before': {\n display: 'none',\n },\n '&$expanded': {\n margin: 0,\n },\n },\n panelSummary: (props) => ({\n backgroundColor: theme.custom.grey93,\n padding: 0,\n minHeight: 'auto',\n\n '&.Mui-expanded': {\n minHeight: '60px',\n backgroundColor: theme.custom.bgLightColor,\n },\n\n '&:hover': {\n backgroundColor: theme.custom.bgLightColor,\n },\n }),\n content: {\n width: '100%',\n margin: 0,\n\n '&$expanded': {\n margin: 0,\n },\n },\n panelDetails: {\n padding: 0,\n backgroundColor: theme.custom.bgLightColor,\n },\n panelWrapper: {\n display: 'flex',\n flexDirection: 'column',\n marginLeft: '34px',\n padding: '0 15px 5px 40px',\n borderLeft: `1px solid ${theme.custom.bgAccentColor}`,\n },\n expanded: {\n margin: 0,\n },\n link: {\n marginBottom: '10px',\n textDecoration: 'none',\n color: theme.custom.darkGrey,\n backgroundColor: theme.custom.bgLightColor,\n },\n activeLink: {\n color: theme.palette.primary.main,\n },\n titleLink: (props) => ({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n height: '60px',\n boxSizing: 'border-box',\n fontSize: '18px',\n textDecoration: 'none',\n color:\n (props.match && props.match.url) === props.titleUrl\n ? theme.palette.primary.main\n : theme.custom.textDarkSecondaryMutedColor,\n fill:\n (props.match && props.match.url) === props.titleUrl\n ? theme.palette.primary.main\n : theme.custom.textDarkSecondaryMutedColor,\n\n '&:hover': {\n color:\n (props.match && props.match.url) !== props.titleUrl\n ? theme.custom.textDarkSecondaryColor\n : theme.palette.primary.main,\n\n fill:\n (props.match && props.match.url) !== props.titleUrl\n ? theme.custom.textDarkSecondaryColor\n : theme.palette.primary.main,\n },\n }),\n titleLeftPartLink: {\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n height: '100%',\n },\n titleArrowWrapper: {\n display: 'flex',\n alignItems: 'center',\n height: '100%',\n marginRight: '10px',\n },\n titleArrow: (props) => ({\n transition: 'transform 0.3s linear',\n transform: props.expanded && 'rotate(90deg)',\n }),\n titleIcon: {\n marginLeft: '25px',\n marginRight: '25px',\n },\n}));\n\nexport default useStyles;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { NavLink, useRouteMatch, useHistory } from 'react-router-dom';\nimport {\n ExpansionPanel,\n ExpansionPanelSummary,\n ExpansionPanelDetails,\n} from '@material-ui/core';\nimport { ChevronRight } from '@material-ui/icons';\nimport { Can } from '../../casl/ability-context';\nimport useStyles from './styles';\n\nconst MenuDropdown = ({\n menuItems,\n title,\n id,\n titleUrl,\n TitleIcon,\n iconName,\n isExpandBlocked,\n isExpanded,\n handleSelfExpand,\n}) => {\n const [expanded, setExpanded] = useState(false);\n const match = useRouteMatch(titleUrl);\n const history = useHistory();\n const classes = useStyles({ expanded, match, titleUrl });\n\n const handleNavigate = () => {\n if (titleUrl) {\n history.push(titleUrl);\n }\n handleSelfExpand(id);\n !isExpandBlocked && setExpanded(!expanded);\n };\n\n useEffect(() => {\n if (!isExpanded) setExpanded(false);\n }, [isExpanded]);\n\n useEffect(() => {\n if (isExpandBlocked) {\n setExpanded(false);\n }\n }, [isExpandBlocked]);\n\n const withCan = (children, actions, subject, id) => {\n if (!actions) return children;\n\n return (\n \n {children}\n \n );\n };\n\n return (\n \n \n
    \n \n
    \n \n
    \n {title}\n
    \n {\n handleSelfExpand(title);\n !isExpandBlocked && setExpanded(!expanded);\n }}\n >\n \n
    \n \n \n \n
    \n {menuItems.map((menuItem) =>\n withCan(\n \n {menuItem.label}\n ,\n menuItem.actions,\n menuItem.subject,\n menuItem.label,\n ),\n )}\n
    \n
    \n \n );\n};\n\nMenuDropdown.propTypes = {\n menuItems: PropTypes.arrayOf(\n PropTypes.shape({\n url: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n }),\n ),\n title: PropTypes.string.isRequired,\n titleUrl: PropTypes.string,\n TitleIcon: PropTypes.func.isRequired,\n iconName: PropTypes.string.isRequired,\n isExpandBlocked: PropTypes.bool,\n isExpanded: PropTypes.bool,\n handleSelfExpand: PropTypes.func.isRequired,\n // A unique string id that identifies this dropdown\n id: PropTypes.string.isRequired,\n};\n\nMenuDropdown.defaultProps = {\n menuItems: [],\n titleUrl: null,\n isExpandBlocked: false,\n isExpanded: false,\n};\n\nexport default MenuDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport IcomoonReact from 'icomoon-react';\nimport iconSet from '../../assets/icomoon/selection.json';\n\nconst IcomoonIcon = ({ color, size, icon, className }) => {\n return (\n \n );\n};\n\nIcomoonIcon.propTypes = {\n className: PropTypes.string,\n color: PropTypes.string,\n icon: PropTypes.string.isRequired,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n};\n\nIcomoonIcon.defaultProps = {\n className: '',\n color: '',\n size: '100%',\n};\n\nexport default IcomoonIcon;\n","var _polygon, _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgAccountMenuIcon = function SvgAccountMenuIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 48 48\",\n enableBackground: \"new 0 0 48 48\",\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _polygon || (_polygon = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"36,12 12,12 11,8 37,8 \"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13,14v26h9v-6h4v6h9V14H13z M20,32h-4v-4h4V32z M20,26h-4v-4h4V26z M20,20h-4v-4h4V20z M26,32h-4v-4h4V32z M26,26h-4v-4h4 V26z M26,20h-4v-4h4V20z M32,32h-4v-4h4V32z M32,26h-4v-4h4V26z M32,20h-4v-4h4V20z\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgAccountMenuIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/account-menu-icon.38086f69.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgChatBubble = function SvgChatBubble(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_4\",\n \"data-name\": \"Layer 4\",\n viewBox: \"0 0 40 40\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill-rule:evenodd;}\"))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M21,2C10.51,2,2,9.16,2,18a14,14,0,0,0,2.43,7.81,1.33,1.33,0,0,1,0,1.47L.53,33.19a1.3,1.3,0,0,0,1.63,1.9l7.66-3.53a1.33,1.33,0,0,1,1.15,0A21.57,21.57,0,0,0,21,34c10.49,0,19-7.17,19-16S31.49,2,21,2Z\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgChatBubble, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/chat-bubble.9c9b6bf6.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgCivicIcon = function SvgCivicIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 51.414,\n height: 32.159,\n viewBox: \"0 0 51.414 32.159\",\n fill: \"#FFF\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"noun_Handshake_3488144\",\n transform: \"translate(-1.493 -14.056)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_121\",\n \"data-name\": \"Path 121\",\n d: \"M52.12,28.212,45.371,15.506a1.792,1.792,0,0,0-1.091-.877,1.769,1.769,0,0,0-1.388.183l-2.906,1.7a1.777,1.777,0,0,0-.663,2.372l.175.343a25.367,25.367,0,0,1-7.07-1.152.641.641,0,0,0-.206,0l-5.415-.038a9.914,9.914,0,0,0-5.575,2.143.709.709,0,0,0-.16.175l-.381.595a20.027,20.027,0,0,1-5.125-1.823l.092-.153a1.792,1.792,0,0,0-.694-2.555h0L12.12,14.9a1.769,1.769,0,0,0-2.379.633L2.259,27.861a1.785,1.785,0,0,0,.671,2.494L5.775,31.88a1.853,1.853,0,0,0,.862.221,1.769,1.769,0,0,0,1.525-.854l.107-.175a16.55,16.55,0,0,0,2.288,2.463,2.531,2.531,0,0,0-.32,3.378,3.051,3.051,0,0,0,2.021.862,3.134,3.134,0,0,0,0,1.434,2.387,2.387,0,0,0,2.349,1.8h.145a3.561,3.561,0,0,0,.763-.137,2.585,2.585,0,0,0,1.327,2.479,2.578,2.578,0,0,0,1.48.473,2.791,2.791,0,0,0,.435-.038,2.517,2.517,0,0,0,.564-.168,3.249,3.249,0,0,0,1.121,1.67l.076.053a2.555,2.555,0,0,0,1.35.374,3.256,3.256,0,0,0,2.684-1.647l.153-.16c.305.16.595.305.854.419A8.709,8.709,0,0,0,29.7,45.646a4.439,4.439,0,0,0,1.281-.153,3.813,3.813,0,0,0,2.288-1.922,3.754,3.754,0,0,0,3.051-1.182,2.608,2.608,0,0,0,.465-1.693,3.31,3.31,0,0,0,2.585-1.167,3.051,3.051,0,0,0,.435-1.754,5.27,5.27,0,0,0,.717-.107,3.15,3.15,0,0,0,2.387-3.1,3.912,3.912,0,0,0-.053-.763A9.4,9.4,0,0,0,45.9,31.224l.175.32a1.746,1.746,0,0,0,1.091.892,1.7,1.7,0,0,0,.48.069,1.823,1.823,0,0,0,.908-.244l2.9-1.708A1.777,1.777,0,0,0,52.12,28.212ZM6.5,30.5,3.655,28.974a.229.229,0,0,1-.13-.13.252.252,0,0,1,0-.2l7.5-12.278a.252.252,0,0,1,.214-.122.236.236,0,0,1,.137.038l2.845,1.525a.236.236,0,0,1,.122.153.252.252,0,0,1,0,.2l-.564.93h0L6.858,30.431a.275.275,0,0,1-.358.084Zm6.7,5.338a1.525,1.525,0,0,1-.808.45,1.525,1.525,0,0,1-1.037-.4c-.526-.641.763-1.823.763-1.823A1.449,1.449,0,0,1,13,33.787a.587.587,0,0,1,.4.282.534.534,0,0,0,.107.122.991.991,0,0,1,.175,1.022,4.44,4.44,0,0,0-.488.618Zm1.449,3.676a.877.877,0,0,1-.93-.618,3.188,3.188,0,0,1,.686-2.113,5.979,5.979,0,0,0,.564-.763c.969-1.4,1.746-1.769,2.227-1.83a1.182,1.182,0,0,1,.854.206l.092.076c.343.229.038,1.289-.5,2.288l-1.281,1.8a2.715,2.715,0,0,1-1.716.946Zm3.874,2.791a1,1,0,0,1-.763-.16l-.137-.092c-.892-.458-.5-1.708-.389-2.021l.351-.5a8.946,8.946,0,0,0,.908-1.144c.092-.137.259-.4.45-.763a1.335,1.335,0,0,1,1.929,0c.686.633.313,1.609-.069,2.288l-1.258,1.67a.45.45,0,0,0-.076.13v.046a1.777,1.777,0,0,1-.946.534Zm4.835.877c-.885,1.342-1.739,1.022-1.96.908a1.525,1.525,0,0,1-.61-1.525,7.032,7.032,0,0,0,.763-1.03,5.8,5.8,0,0,0,.488-.679,1.792,1.792,0,0,1,1.7,0c.458.313.488.6.5.694a1.746,1.746,0,0,1-.366,1.03h0a3.813,3.813,0,0,1-.389.488A.816.816,0,0,0,23.354,43.182Zm16.854-6.993a3.9,3.9,0,0,1-1.121.076l-6.154-4.042a.763.763,0,1,0-.839,1.274l6.139,4.027a1.411,1.411,0,0,1-.092,1.136h0c-.45.61-1.731.549-2.288.458L30.7,35.975a.763.763,0,0,0-.793,1.3l5.178,3.157a.862.862,0,0,1,0,1.068c-.305.427-1.35.564-2.067.534L28.57,39.3a.764.764,0,1,0-.808,1.3l3.981,2.463a2.2,2.2,0,0,1-1.243.969c-1.777.549-4.156-.976-4.179-.991l-.107-.061c-.221-.092-.465-.214-.725-.351a2.707,2.707,0,0,0,.2-1.22,2.471,2.471,0,0,0-1.2-1.853,3.76,3.76,0,0,0-1.8-.45,2.639,2.639,0,0,0-.763-2.562,2.852,2.852,0,0,0-2.212-.816,2.2,2.2,0,0,0-.671-2.479,2.662,2.662,0,0,0-1.975-.564,3.722,3.722,0,0,0-2.1,1.007,2.5,2.5,0,0,0-.4-.564,2.09,2.09,0,0,0-1.35-.847,2.631,2.631,0,0,0-1.525.244,15.451,15.451,0,0,1-2.608-2.875L14.728,20.4a27,27,0,0,0,5.041,1.914l-2.288,3.645a.763.763,0,0,0,.076.915,3.386,3.386,0,0,0,3.051,1.335c2.036-.267,3.584-2.57,4.194-3.615a10.967,10.967,0,0,0,2.364-.214l11.211,7.863,1.99,1.4a2.288,2.288,0,0,0,.412.252l.114.069a2.288,2.288,0,0,0,.442.137h0a2.738,2.738,0,0,1,0,.488,1.632,1.632,0,0,1-1.167,1.6ZM41.9,32.574h-.038a.663.663,0,0,1-.275,0,1.068,1.068,0,0,1-.13-.069.9.9,0,0,1-.145-.076l-3.051-2.158-10.5-7.321a.763.763,0,0,0-.229-.107h0a.709.709,0,0,0-.175,0H27.3l-2.944.191h0a.763.763,0,0,0-.259.069l-.084.061a.473.473,0,0,0-.137.107.366.366,0,0,0-.069.084.458.458,0,0,0-.069.1c-.4.763-1.846,3.051-3.287,3.264a1.624,1.624,0,0,1-1.3-.442l3.18-5.011a8.389,8.389,0,0,1,4.522-1.716l5.285.038c.946.267,5.644,1.563,8.145,1.091l3.813,7.062,1.106,2.074c-.93,1.1-2.357,2.623-3.348,2.761Zm8.824-3.3-2.967,1.7a.252.252,0,0,1-.2,0,.29.29,0,0,1-.16-.13l-.7-1.327V29.47l-1.411-2.646-4.622-8.656a.259.259,0,0,1,.1-.343l2.9-1.7h0a.229.229,0,0,1,.13-.038h.069a.267.267,0,0,1,.16.13l6.787,12.713a.267.267,0,0,1-.122.343Z\",\n strokeWidth: 1\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCivicIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/civic-icon.dfacf35a.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgCompetitiveIcon = function SvgCompetitiveIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 29.795,\n height: 29.795,\n viewBox: \"0 0 29.795 29.795\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_123\",\n \"data-name\": \"Path 123\",\n d: \"M881.791,197.912v-2.483H860.273v2.483h-4.139v3.922c0,2.214.55,13.464,8,13.464l1.1-.006,1.054,1.384c1.526,1.54,2.8,2.505,3.912,3.582v3.311h-8.276v1.655h18.208v-1.655H871.86v-3.311c1.129-1.067,2.4-2.053,3.912-3.582l1.053-1.384a7,7,0,0,1,1.078.036c7.449,0,8.026-11.28,8.026-13.494v-3.922Zm-24,4v-2.342h2.483c.459,7.143,1.8,11.281,3.6,14.145h-.113c-6.1,0-5.97-9.815-5.97-11.8m26.484,0c0,1.988.124,11.8-5.97,11.8h-.114c1.8-2.865,3.141-7.009,3.6-14.145h2.483Z\",\n transform: \"translate(-856.134 -195.429)\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCompetitiveIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/competitive-icon.4ec4c512.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgDaysIcon = function SvgDaysIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Group_31\",\n \"data-name\": \"Group 31\",\n width: 29.795,\n height: 29.795,\n viewBox: \"0 0 29.795 29.795\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_129\",\n \"data-name\": \"Path 129\",\n d: \"M972.343,145.485a2.709,2.709,0,0,0,2.709,2.709h24.377a2.709,2.709,0,0,0,2.709-2.709V129.158H972.343Zm20.691-13.844H998v14.07h-4.966v-9.1l-2.388,1.767-2.231-3.464Zm-11.152,8.8a4.581,4.581,0,0,0-1.493-.2l-.934-.114v-2.845l1.093-.307a2.95,2.95,0,0,0,1.215-.21.8.8,0,0,0,.458-.806.649.649,0,0,0-.358-.637,1.668,1.668,0,0,0-.758-.18,1.5,1.5,0,0,0-.915.309,1.346,1.346,0,0,0-.518.906l-4.4-.936a5.55,5.55,0,0,1,1.016-1.942,5.428,5.428,0,0,1,1.5-1.264,6.441,6.441,0,0,1,1.813-.688,8.984,8.984,0,0,1,1.9-.209,8.643,8.643,0,0,1,1.931.229,5.934,5.934,0,0,1,1.813.737,4.274,4.274,0,0,1,1.334,1.3,3.374,3.374,0,0,1,.518,1.9,2.762,2.762,0,0,1-.626,1.9,3.19,3.19,0,0,1-1.524.966v.079a3.728,3.728,0,0,1,.985.5,3.513,3.513,0,0,1,.767.736,3.294,3.294,0,0,1,.489.907,3.008,3.008,0,0,1,.168.985,4.147,4.147,0,0,1-.517,2.122,4.471,4.471,0,0,1-1.355,1.454,5.812,5.812,0,0,1-1.892.826,8.9,8.9,0,0,1-2.131.259,9.139,9.139,0,0,1-2.122-.249,6.4,6.4,0,0,1-1.911-.787,5.858,5.858,0,0,1-1.515-1.354,5.043,5.043,0,0,1-.925-1.952l4.421-1.035a1.89,1.89,0,0,0,.588.955,1.69,1.69,0,0,0,1.205.439,1.866,1.866,0,0,0,.419-.05,1.311,1.311,0,0,0,.4-.159.969.969,0,0,0,.3-.289.912.912,0,0,0-.438-1.295M999.429,118.4H975.052a2.709,2.709,0,0,0-2.709,2.709V127.5h29.795v-6.395a2.709,2.709,0,0,0-2.709-2.709m-18.283,6.621a2.483,2.483,0,1,1,2.483-2.483,2.483,2.483,0,0,1-2.483,2.483m12.189,0a2.483,2.483,0,1,1,2.483-2.483,2.483,2.483,0,0,1-2.483,2.483\",\n transform: \"translate(-972.343 -118.399)\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgDaysIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/days-icon.ed186c58.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgDiversityIcon = function SvgDiversityIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 37.419,\n height: 31.662,\n viewBox: \"0 0 37.419 31.662\",\n fill: \"#FFF\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_1164\",\n \"data-name\": \"Rectangle 1164\",\n width: 37.419,\n height: 31.662\n })))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_28\",\n \"data-name\": \"Group 28\",\n transform: \"translate(-628.955 -522.903)\",\n style: {\n isolation: \"isolate\"\n }\n }, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_27\",\n \"data-name\": \"Group 27\",\n transform: \"translate(628.955 522.903)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_26\",\n \"data-name\": \"Group 26\",\n transform: \"translate(0)\",\n clipPath: \"url(#clip-path)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_119\",\n \"data-name\": \"Path 119\",\n d: \"M664.765,538.43c-4.257,7.8-15.81,15.564-16.3,15.892a1.425,1.425,0,0,1-1.595,0c-.493-.325-12.046-8.091-16.3-15.892a10.066,10.066,0,0,1,8.466-15.526c4.084,0,7.109,3.389,8.637,5.159,1.524-1.77,4.55-5.159,8.634-5.159a10.066,10.066,0,0,1,8.463,15.526\",\n transform: \"translate(-628.955 -522.904)\"\n }))))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgDiversityIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/diversity-icon.4655faa1.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgEcoActionsIcon = function SvgEcoActionsIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 38.08 37.21\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_4\",\n \"data-name\": \"Layer 4\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.39.67,8.3.57l-.09.1C5.11,3.82,2.77,8.58,2.77,11.74A5.59,5.59,0,0,0,8.3,17.37a5.59,5.59,0,0,0,5.53-5.63C13.83,8.68,11.39,3.72,8.39.67Zm.88,6.94a.92.92,0,0,1,.59-1.15,1.26,1.26,0,0,1,.27,0,.91.91,0,0,1,.86.65.93.93,0,0,1-.6,1.15.82.82,0,0,1-.26,0A.89.89,0,0,1,9.27,7.61Zm2.82,4.59a5.48,5.48,0,0,1-.55,1.53l-.08.18a.89.89,0,0,1-.82.54,1,1,0,0,1-.37-.08.93.93,0,0,1-.45-1.21A1.09,1.09,0,0,1,10,13a1.76,1.76,0,0,0,.41-.95,2.93,2.93,0,0,0-.1-1.1c0-.11,0-.21,0-.28a.92.92,0,0,1,.82-1h.08a.91.91,0,0,1,.89.84s0,.12,0,.2A8.2,8.2,0,0,1,12.09,12.2Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.86,10.08h0a2.09,2.09,0,0,1,.17.41H33.94L32.26,7.58,33,7.7A2,2,0,0,0,35.2,6.42l.22-.58ZM28.43,0h2.68a1.74,1.74,0,0,1,1.52.88l1.26,2.17.93-.54a.29.29,0,0,1,.33,0,.28.28,0,0,1,.08.31l-1.1,2.94a.9.9,0,0,1-1,.59h0L30,5.87a.28.28,0,0,1-.23-.23.27.27,0,0,1,.13-.29l.93-.54L28.1,0A1.84,1.84,0,0,1,28.43,0Zm-1.62.9a1.91,1.91,0,0,1,.27-.35l2,3.54-1.7,3-.27-.71a2,2,0,0,0-2.23-1.28l-.55.09ZM22.9,14.3l-1.37-2.36h0a1.8,1.8,0,0,1,0-1.81l1.26-2.21-.94-.54a.3.3,0,0,1-.15-.31.29.29,0,0,1,.24-.23h0l3.16-.52a.94.94,0,0,1,1.05.59l1.13,3a.3.3,0,0,1-.08.32.29.29,0,0,1-.33,0l-.95-.55L23.1,14.58A2.83,2.83,0,0,1,22.9,14.3Zm6.14.26.41.49h-5A1.61,1.61,0,0,1,24,15l2.07-3.59h3.44L29,12A2.06,2.06,0,0,0,29,14.56Zm7.52-.43h0A1.81,1.81,0,0,1,35,15h-2.6v1.08a.4.4,0,0,1-.08.2.25.25,0,0,1-.2.09.27.27,0,0,1-.22-.11l-2-2.47a.94.94,0,0,1,0-1.2l2-2.48a.29.29,0,0,1,.22-.1c.15,0,.28.13.28.43v.91h5.69a3.09,3.09,0,0,1-.14.32Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M34.94,37.1c-.06-.27-.45-7.63-5.3-10,3.27,3.24,3.61,6.87,3.46,6.88-2.34.18-7.35-1-8.36-5.29,0,0-1.19-6.37.36-9.26.23.25.9,2.68,3.22,2.83,1,.07,10.3.33,7.37,10.61,0,0,.88,2.92.89,3.37S35,37.49,34.94,37.1Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.56,34.14a1.58,1.58,0,0,1-.36,0v0H4.44v0c-.56,0-.38,0-.53,0A3.9,3.9,0,0,1,0,30.29a3.86,3.86,0,0,1,4.92-3.71,5.61,5.61,0,0,1,10.85,2,5.94,5.94,0,0,1-.08.93,2.48,2.48,0,0,1,.9-.17A2.39,2.39,0,0,1,19,31.73,2.42,2.42,0,0,1,16.56,34.14Z\"\n })))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgEcoActionsIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/eco-actions-icon.066ac0f6.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgFitnessIcon = function SvgFitnessIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 53.942,\n height: 33.053,\n viewBox: \"0 0 53.942 33.053\",\n fill: \"#FFF\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_114\",\n \"data-name\": \"Path 114\",\n d: \"M896.886,665.854a10.444,10.444,0,0,0-3.936.536c-.815-1.807-1.769-3.924-2.884-6.406l.711-1.958,1.444-.027a1.139,1.139,0,0,0,1.058-1.1,1.121,1.121,0,0,0-1.065-1.093h-7.107a1.081,1.081,0,0,0-1.026,1.111v.021a.985.985,0,0,0,1.026,1h3.2l-.709,2.129H869.5c1.143-3.9.625-4.149,5.02-4.122a1.01,1.01,0,0,0,1.041-1v-.021a1.035,1.035,0,0,0-1.038-1.031c-6.448.019-5.441-.158-9.314,12.3a10.467,10.467,0,1,0,2.173.656c.228-.717.473-1.481.736-2.3,15.312,16.152,9.567,13.533,17.807,13.86.039,0,.077,0,.116,0a10.468,10.468,0,1,0,10.843-12.552m-25.578,10.624a8.026,8.026,0,1,1-6.845-7.931c-2.555,8.055-2.249,7.137-2.263,7.817a1.068,1.068,0,0,0,1.031,1.066c1.043-.105.807.067,3.411-8.233a8.024,8.024,0,0,1,4.666,7.28m10.335-.555L868.793,662.2h18.1Zm4.19.347-1.948-.006L888.937,663l1.96,4.343a10.473,10.473,0,0,0-5.064,8.926m6.082-6.673,3.023,6.7-6.658-.018a8.022,8.022,0,0,1,3.635-6.68m4.383,14.728a8.032,8.032,0,0,1-7.74-5.926c8.345.007,9.089.435,9.206-1.013-.012-.421-.167-.711-3.8-8.748a8.018,8.018,0,1,1,2.334,15.688\",\n transform: \"translate(-852.823 -653.891)\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgFitnessIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/fitness-icon.59e06734.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgHabitsIcon = function SvgHabitsIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Group_30\",\n \"data-name\": \"Group 30\",\n width: 29.137,\n height: 36.546,\n viewBox: \"0 0 29.137 36.546\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_29\",\n \"data-name\": \"Group 29\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_124\",\n \"data-name\": \"Path 124\",\n d: \"M692.385,506.156a5.862,5.862,0,0,1,2.893-1.258,3.035,3.035,0,0,0-5.786,0,5.862,5.862,0,0,1,2.893,1.258\",\n transform: \"translate(-682.227 -502.781)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_125\",\n \"data-name\": \"Path 125\",\n d: \"M708.323,520.23a3.032,3.032,0,0,1-5.315-1.9,3.029,3.029,0,0,0-2.456,1.257,2.9,2.9,0,0,0-2.746-2.015c-.908,0-1.34.4-2.167,1.032v-1.729a2.3,2.3,0,0,1-1.909-1.079l-1.3-2.043-1.057,2.056c-.4.635-1.524,1.006-1.524,1.065v10.277l-2-2.312a3.184,3.184,0,0,0-4.376-.579,3.123,3.123,0,0,0-.641,4.317l8.056,10.747h14.9l2.542-2.6a11.544,11.544,0,0,0,3.041-7.391v-6.069a3.04,3.04,0,0,0-3.041-3.035\",\n transform: \"translate(-682.227 -502.781)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_126\",\n \"data-name\": \"Path 126\",\n d: \"M688.971,512.453c-2.489,0-3.6-1.524-3.6-3.035s1.115-3.034,3.6-3.034c2.264,0,3.972,2.505,4.044,2.611l.284.423-.284.423c-.072.107-1.78,2.612-4.044,2.612m0-4.552c-1.306,0-2.086.567-2.086,1.517s.78,1.518,2.086,1.518a1.7,1.7,0,1,0,0-3.035\",\n transform: \"translate(-682.227 -502.781)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_127\",\n \"data-name\": \"Path 127\",\n d: \"M695.8,512.454c-2.264,0-3.972-2.5-4.044-2.612l-.284-.423.284-.423c.072-.107,1.78-2.612,4.044-2.612,2.489,0,3.6,1.524,3.6,3.035s-1.115,3.035-3.6,3.035m-2.456-3.032a3.8,3.8,0,0,0,2.456,1.514c1.306,0,2.086-.567,2.086-1.517s-.78-1.517-2.086-1.517a3.778,3.778,0,0,0-2.456,1.52\",\n transform: \"translate(-682.227 -502.781)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_128\",\n \"data-name\": \"Path 128\",\n d: \"M695.562,515.369a.759.759,0,0,1-.648-.363l-2.534-4.142L689.8,515.01a.759.759,0,1,1-1.29-.8l3.225-5.192a.778.778,0,0,1,.647-.358.759.759,0,0,1,.645.362l3.176,5.192a.757.757,0,0,1-.251,1.043.75.75,0,0,1-.395.112\",\n transform: \"translate(-682.227 -502.781)\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgHabitsIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/habits-icon.ab528f6a.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgIndividualIcon = function SvgIndividualIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Group_33\",\n \"data-name\": \"Group 33\",\n width: 32.375,\n height: 32.376,\n viewBox: \"0 0 32.375 32.376\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_32\",\n \"data-name\": \"Group 32\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_130\",\n \"data-name\": \"Path 130\",\n d: \"M1055.1,277.424a8.094,8.094,0,1,1-8.1,8.094,8.093,8.093,0,0,1,8.1-8.094\",\n transform: \"translate(-1038.907 -277.424)\",\n fillRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_131\",\n \"data-name\": \"Path 131\",\n d: \"M1064.968,289.011h-13.489a9.443,9.443,0,0,0-9.444,9.442V302.5h32.375v-4.047a9.442,9.442,0,0,0-9.442-9.442\",\n transform: \"translate(-1042.035 -270.125)\",\n fillRule: \"evenodd\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIndividualIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/individual-icon.cddaa001.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgNutritionIcons = function SvgNutritionIcons(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 33.648,\n height: 33.106,\n viewBox: \"0 0 33.648 33.106\",\n fill: \"#FFF\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_1163\",\n \"data-name\": \"Rectangle 1163\",\n width: 33.648,\n height: 33.106\n })))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_24\",\n \"data-name\": \"Group 24\",\n transform: \"translate(-926.521 -351.126)\",\n style: {\n isolation: \"isolate\"\n }\n }, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_25\",\n \"data-name\": \"Group 25\",\n transform: \"translate(926.521 351.126)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_24-2\",\n \"data-name\": \"Group 24\",\n clipPath: \"url(#clip-path)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_115\",\n \"data-name\": \"Path 115\",\n d: \"M968.593,351.126h-.92L962.156,373.2l3.678,1.839-1.849,6.166a2.354,2.354,0,0,0,2.254,3.031h0a2.354,2.354,0,0,0,2.354-2.354Z\",\n transform: \"translate(-949.938 -351.126)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_116\",\n \"data-name\": \"Path 116\",\n d: \"M935.717,351.126v7.817a1.379,1.379,0,1,1-2.759,0v-7.817h-1.839v7.817a1.379,1.379,0,1,1-2.759,0v-7.817h-1.839v10.541a2.5,2.5,0,0,0,1.212,2.141l2.029,1.217a2.5,2.5,0,0,1,1.2,2.389l-1.407,14.072a2.5,2.5,0,1,0,4.968,0l-1.407-14.072a2.5,2.5,0,0,1,1.2-2.389l2.029-1.217a2.5,2.5,0,0,0,1.212-2.141V351.126Z\",\n transform: \"translate(-926.521 -351.126)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_117\",\n \"data-name\": \"Path 117\",\n d: \"M1002.836,391.358l-1.578,16.565a2.509,2.509,0,1,0,4.995,0l-1.578-16.565Z\",\n transform: \"translate(-975.627 -377.564)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_118\",\n \"data-name\": \"Path 118\",\n d: \"M1003.506,358.483c0,4.063-2.47,7.357-5.518,7.357s-5.518-3.294-5.518-7.357,2.47-7.357,5.518-7.357,5.518,3.294,5.518,7.357\",\n transform: \"translate(-969.859 -351.126)\"\n }))))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgNutritionIcons, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/nutrition-icons.342efe46.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgRemoteIcon = function SvgRemoteIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 35.027,\n height: 34.94,\n viewBox: \"0 0 35.027 34.94\",\n fill: \"#FFF\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"noun_Office_738331\",\n transform: \"translate(96 -522)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_120\",\n \"data-name\": \"Path 120\",\n d: \"M44.285,44.94H10.655A.672.672,0,0,1,10,44.285v-1.31a.672.672,0,0,1,.655-.655h1.31V10.655A.672.672,0,0,1,12.62,10H26.858a.672.672,0,0,1,.655.655v9.7H42.407a.672.672,0,0,1,.655.655V42.363h1.31a.672.672,0,0,1,.655.655v1.31A.841.841,0,0,1,44.285,44.94ZM24.893,42.363V34.589H20.351v7.774h4.542Zm-10.351,0h4.542V34.589H14.542Zm3.887-29.786H14.542v3.887h3.887Zm0,6.464H14.542v3.887h3.887Zm0,6.508H14.542v3.887h3.887Zm6.464-12.971H21.006v3.887h3.887Zm0,6.464H21.006v3.887h3.887Zm0,6.508H21.006v3.887h3.887Zm1.267,6.464H13.232v1.31H26.16Zm7.774-9.084H30.047v3.887h3.887Zm0,6.464H30.047v3.887h3.887Zm0,6.508H30.047v3.887h3.887ZM40.4,22.928H36.511v3.887H40.4Zm0,6.464H36.511v3.887H40.4Zm0,6.508H36.511v3.887H40.4Z\",\n transform: \"translate(-106 512)\",\n fillRule: \"evenodd\"\n }))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgRemoteIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/remote-icon.b5c9741b.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgRemoteIcon2 = function SvgRemoteIcon2(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_4\",\n \"data-name\": \"Layer 4\",\n viewBox: \"0 0 40 40\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20,0A14.88,14.88,0,0,0,8.56,24.4L20,40,31.44,24.4A14.88,14.88,0,0,0,20,0Zm0,23a8,8,0,1,1,8-8A8,8,0,0,1,20,23Z\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgRemoteIcon2, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/remote-icon-2.7845bba9.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgSustainabilityIcon = function SvgSustainabilityIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22.823,\n height: 33.106,\n viewBox: \"0 0 22.823 33.106\",\n fill: \"#FFF\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_113\",\n \"data-name\": \"Path 113\",\n d: \"M705.086,681.4c-.12-.507-.851-14.193-9.866-18.643,6.082,6.012,6.714,12.77,6.432,12.792-4.343.333-13.658-1.824-15.531-9.835,0,0-2.218-11.845.662-17.214.43.454,1.673,4.967,6,5.257,1.8.12,19.143.609,13.688,19.722,0,0,1.639,5.433,1.661,6.269.029,1.063-2.872,2.369-3.042,1.652\",\n transform: \"translate(-685.306 -648.496)\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgSustainabilityIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/sustainability-icon.ca9652f6.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgWarningIcon = function SvgWarningIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 48,\n height: 48,\n viewBox: \"0 0 48 48\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h48v48h-48z\",\n fill: \"none\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 42h44l-22-38-22 38zm24-6h-4v-4h4v4zm0-8h-4v-8h4v8z\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgWarningIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/warning-icon.2ee9df1d.svg\";\nexport { ForwardRef as ReactComponent };","var _title, _circle, _path, _path2;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgFollow = function SvgFollow(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_5\",\n \"data-name\": \"Layer 5\",\n viewBox: \"0 0 40 40\",\n ref: svgRef\n }, props), title === undefined ? _title || (_title = /*#__PURE__*/React.createElement(\"title\", null, \"follow\")) : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 16,\n cy: 12,\n r: 8\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.55,32A4,4,0,0,1,22,30a4,4,0,0,1,4-4h2V24a4,4,0,0,1,.1-.86A8,8,0,0,0,24,22H8a8,8,0,0,0-8,8l2,2Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38,28H34V24a2,2,0,0,0-4,0v4H26a2,2,0,0,0,0,4h4v4a2,2,0,0,0,4,0V32h4a2,2,0,0,0,0-4Z\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgFollow, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/follow.bb368d6d.svg\";\nexport { ForwardRef as ReactComponent };","var _title, _path, _path2;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgPhotoAdded = function SvgPhotoAdded(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_5\",\n \"data-name\": \"Layer 5\",\n viewBox: \"0 0 40 40\",\n ref: svgRef\n }, props), title === undefined ? _title || (_title = /*#__PURE__*/React.createElement(\"title\", null, \"photo-added\")) : title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.55,30A4,4,0,0,1,22,28a4,4,0,0,1,4-4h2V22a4,4,0,0,1,4-4,4,4,0,0,1,2,.55V12a4,4,0,0,0-4-4H22L20,4H12L10,8H4a4,4,0,0,0-4,4V26a4,4,0,0,0,4,4ZM26,12h4v2H26ZM16,12a6,6,0,1,1-6,6A6,6,0,0,1,16,12Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38,26H34V22a2,2,0,0,0-4,0v4H26a2,2,0,0,0,0,4h4v4a2,2,0,0,0,4,0V30h4a2,2,0,0,0,0-4Z\"\n })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPhotoAdded, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/photo-added.a2c99109.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgCommunitiesIcon = function SvgCommunitiesIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 31.07,\n height: 15.535,\n viewBox: \"0 0 31.07 15.535\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_897\",\n \"data-name\": \"Group 897\",\n transform: \"translate(-18 -788)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_896\",\n \"data-name\": \"Group 896\",\n transform: \"translate(18 788)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_316\",\n \"data-name\": \"Path 316\",\n d: \"M36.825,18A2.825,2.825,0,1,1,34,20.825,2.825,2.825,0,0,1,36.825,18Z\",\n transform: \"translate(-11.403 -15.175)\",\n fill: \"#2f2f2f\",\n fillRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_317\",\n \"data-name\": \"Path 317\",\n d: \"M11.649,20.825A2.825,2.825,0,1,1,8.825,18,2.825,2.825,0,0,1,11.649,20.825Z\",\n transform: \"translate(-3.175 -15.175)\",\n fill: \"#2f2f2f\",\n fillRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_318\",\n \"data-name\": \"Path 318\",\n d: \"M6.237,31.531A4.924,4.924,0,0,1,7.728,28h-2.9A2.825,2.825,0,0,0,2,30.825a1.412,1.412,0,0,0,1.412,1.412H6.237Z\",\n transform: \"translate(-2 -18.114)\",\n fill: \"#2f2f2f\",\n fillRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_319\",\n \"data-name\": \"Path 319\",\n d: \"M40.7,28h-3.12a5.276,5.276,0,0,1,1.707,3.884,3.068,3.068,0,0,1-.036.353h2.861a1.412,1.412,0,0,0,1.412-1.412A2.825,2.825,0,0,0,40.7,28Z\",\n transform: \"translate(-12.456 -18.114)\",\n fill: \"#2f2f2f\",\n fillRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_320\",\n \"data-name\": \"Path 320\",\n d: \"M25.888,28h-12A3.883,3.883,0,0,0,10,31.884h0a1.765,1.765,0,0,0,1.765,1.765H28.007a1.765,1.765,0,0,0,1.765-1.765h0A3.883,3.883,0,0,0,25.888,28Z\",\n transform: \"translate(-4.351 -18.114)\",\n fill: \"#2f2f2f\",\n fillRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_321\",\n \"data-name\": \"Path 321\",\n d: \"M22.237,14A4.237,4.237,0,1,1,18,18.237,4.237,4.237,0,0,1,22.237,14Z\",\n transform: \"translate(-6.702 -14)\",\n fill: \"#2f2f2f\",\n fillRule: \"evenodd\"\n })))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCommunitiesIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/communities-icon.b231be7b.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n },\n inputRoot: (props) => ({\n color: '#999',\n padding: '0 !important',\n backgroundColor: props.bgColor,\n\n '& .MuiOutlinedInput-notchedOutline': {\n border: 0,\n },\n\n '&:hover .MuiOutlinedInput-notchedOutline': {\n border: `1px solid ${theme.palette.primary.dark}`,\n },\n\n '&.Mui-focused .MuiOutlinedInput-notchedOutline': {\n border: `1px solid ${theme.palette.primary.dark}`,\n },\n\n '& input:focus': {\n backgroundColor: 'white',\n },\n }),\n input: {\n padding: '6px 35px 6px 12px !important',\n height: '24px',\n },\n option: {\n padding: '3px 10px',\n },\n popper: {\n minWidth: '200px',\n },\n communityIndent: {\n borderLeft: `1px solid ${theme.custom.grey88}`,\n borderBottom: `1px solid ${theme.custom.grey88}`,\n marginLeft: 9.5,\n marginRight: 5,\n width: 10,\n height: 12,\n alignSelf: 'flex-start',\n },\n groupCard: {\n cursor: 'pointer',\n paddingLeft: 10,\n '&:hover': {\n backgroundColor: '#f5f6f7',\n },\n },\n}));\n\nexport default useStyles;\n","const styles = (theme) => ({\n image: {\n width: '20px',\n height: '20px',\n marginRight: '5px',\n borderRadius: '5px',\n },\n loader: {\n marginRight: '5px',\n },\n hidden: {\n display: 'none',\n },\n});\n\nexport default styles;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { CircularProgress, withStyles } from '@material-ui/core';\nimport styles from './styles.js';\nimport { getAppImages } from '../../../utils';\n\nconst CommunityAvatar = ({ url, title, classes }) => {\n const [successLoad, setSuccessLoad] = useState(false);\n const [failLoad, setFailLoad] = useState(false);\n\n const onError = () => {\n setFailLoad(true);\n };\n\n const onLoad = () => {\n setSuccessLoad(true);\n };\n\n if (!url || failLoad)\n return (\n \n );\n\n return (\n \n \n {!successLoad && (\n \n )}\n \n );\n};\n\nCommunityAvatar.propTypes = {\n url: PropTypes.string,\n title: PropTypes.string,\n classes: PropTypes.object.isRequired,\n};\n\nCommunityAvatar.defaultProps = {\n url: null,\n title: null,\n};\n\nexport default withStyles(styles)(CommunityAvatar);\n","import { Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport CommunityAvatar from '../CommunityAvatar';\nconst CommunityCard = ({ title, url }) => {\n return (\n <>\n \n {title}\n \n );\n};\n\nCommunityCard.propTypes = {\n title: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n};\n\nexport default CommunityCard;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, Paper, TextField } from '@material-ui/core';\nimport { Autocomplete } from '@material-ui/lab';\nimport useStyles from './styles';\nimport CommunityCard from './CommunityCard';\n\nconst CommunityDropdown = ({\n paperRef,\n value,\n communities,\n placeholder,\n onChange,\n bgColor,\n groupBy,\n inputValue,\n ...props\n}) => {\n const { t } = useTranslation();\n const classes = useStyles({ bgColor });\n\n const [currentValue, setCurrentValue] = useState(inputValue);\n const [groups, setGroups] = useState([]);\n\n useEffect(() => {\n if (inputValue !== currentValue) {\n setCurrentValue(inputValue);\n setGroups([]);\n }\n }, [inputValue, currentValue]);\n\n const renderOption = useCallback(\n (option) => {\n if (\n option.isOrganization &&\n groups.some((group) => group === option.organizationId)\n )\n return;\n return (\n \n {!option.isOrganization && (\n <>\n
    \n \n )}\n \n \n );\n },\n [classes, groups],\n );\n\n const renderGroup = useCallback(\n (params) => {\n const isGroup = !!params.group;\n if (isGroup && !groups.some((group) => group === params.group))\n setGroups([...groups, params.group]);\n const community = communities.filter(\n (community) =>\n community.isOrganization &&\n community.organizationId === params.group,\n )?.[0];\n\n return (\n <>\n {isGroup && community && (\n \n onChange(null, {\n content: { id: params.group },\n organizationId: params.group,\n })\n }\n className={classes.groupCard}\n >\n \n \n )}\n {params.children}\n \n );\n },\n [classes, communities, groups, onChange],\n );\n\n const renderPaper = ({ children }) => (\n {children}\n );\n\n const renderInput = (params) => (\n \n );\n return (\n {\n return option?.title || '';\n }}\n classes={classes}\n value={value}\n groupBy={\n groupBy ||\n ((option) =>\n option.isOrganization ? null : option.organizationId)\n }\n options={communities}\n onChange={onChange}\n renderInput={renderInput}\n renderOption={renderOption}\n renderGroup={groupBy ? null : renderGroup}\n PaperComponent={renderPaper}\n {...props}\n />\n );\n};\n\nCommunityDropdown.propTypes = {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n communities: PropTypes.array.isRequired,\n placeholder: PropTypes.string,\n bgColor: PropTypes.string,\n groupBy: PropTypes.func,\n onChange: PropTypes.func.isRequired,\n paperRef: PropTypes.shape({ current: PropTypes.any }),\n inputValue: PropTypes.string,\n};\n\nCommunityDropdown.defaultProps = {\n collapsed: false,\n value: null,\n bgColor: 'transparent',\n placeholder: null,\n paperRef: null,\n inputValue: '',\n groupBy: null,\n};\n\nexport default CommunityDropdown;\n","export const actionItems = [\n {\n label: 'active',\n url: '/actions/active',\n actions: 'view',\n subject: 'ActionsAdmin',\n },\n {\n label: 'deactivated',\n url: '/actions/deactivated',\n actions: 'edit',\n subject: 'CommunityActionExclude',\n },\n];\n\nexport const challengeItems = [\n {\n label: 'create',\n url: '/challenges/create',\n actions: 'create',\n subject: 'Challenge',\n },\n {\n label: 'active',\n url: '/challenges/active',\n actions: 'view',\n subject: 'ChallengesAdmin',\n },\n {\n label: 'challenge.status.draft',\n url: '/challenges/drafts',\n actions: 'view',\n subject: 'ChallengesAdmin',\n },\n {\n label: 'challenge.status.upcoming',\n url: '/challenges/upcoming',\n actions: 'view',\n subject: 'ActionsAdmin',\n },\n {\n label: 'challenge.status.past',\n url: '/challenges/past',\n actions: 'view',\n subject: 'ActionsAdmin',\n },\n {\n label: 'deactivated',\n url: '/challenges/deactivated',\n actions: 'view',\n subject: 'ActionsAdmin',\n },\n];\n\nexport const notificationsItems = [\n {\n label: 'create',\n url: '/notifications/create',\n actions: 'manage',\n subject: 'MasterNotifications',\n },\n {\n label: 'notifications.groups.queued',\n url: '/notifications/queued',\n actions: 'view',\n subject: 'MasterNotifications',\n },\n {\n label: 'notifications.groups.delivered',\n url: '/notifications/sent',\n actions: 'view',\n subject: 'MasterNotifications',\n },\n];\n\nexport const usersItems = [\n {\n label: 'active',\n url: '/members/active',\n actions: 'view',\n subject: 'CommunityMembers',\n },\n {\n label: 'deactivated',\n url: '/members/deactivated',\n actions: 'view',\n subject: 'CommunityMembers',\n },\n];\n\nexport const TAB_CHALLENGES = 'challenge';\nexport const TAB_ACTIONS = 'actions';\nexport const TAB_NOTIFICATIONS = 'notifications';\nexport const TAB_USERS = 'users';\n","// import { TFunction } from 'i18next';\n\n/**\n *\n * @param {Function} t The i18n t-function for performing localization\n * @param {{str, array}} fields\n * @param {{object, array}} objects\n */\nexport const localizeFieldsInObject = (t, fields = [], objects = []) => {\n if (typeof fields === 'string') {\n fields = [fields];\n }\n if (typeof objects.length === 'undefined') {\n objects = [objects];\n }\n return objects.map((object) => {\n const localizedObject = object;\n fields.forEach((field) => {\n if (typeof object[field] === 'string') {\n localizedObject[field] = t(object[field]);\n }\n });\n return localizedObject;\n });\n};\n","const styles = (theme) => ({\n drawer: {\n flexShrink: 0,\n width: '240px',\n },\n paper: {\n width: '240px',\n paddingTop: '50px',\n borderRight: 0,\n backgroundColor: '#edeff0',\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: '250ms',\n }),\n [theme.breakpoints.down('sm')]: {\n width: '70px',\n },\n [theme.breakpoints.down('xs')]: {\n width: 0,\n },\n },\n openDrawer: {\n width: '240px',\n overflowY: 'auto',\n },\n hideDrawer: {\n width: '70px',\n [theme.breakpoints.down('xs')]: {\n width: 0,\n },\n },\n menuItem: {\n borderTop: `1px solid ${theme.custom.bgAccentColor}`,\n padding: 0,\n },\n dropdown: {\n display: 'flex',\n padding: '0 10px 10px',\n backgroundColor: theme.custom.bgLightColor,\n },\n icon: {\n margin: '0 22px 0 12px',\n fontSize: '26px',\n },\n importedIcon: {\n margin: '0 22px 0 12px',\n width: '26px',\n },\n iconMoon: {\n flexShrink: 0,\n margin: '0 25px 0 15px',\n },\n navLink: {\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'center',\n width: '100%',\n height: '60px',\n padding: '15px 10px',\n fontSize: '18px',\n lineHeight: '20px',\n textDecoration: 'none',\n color: theme.custom.textDarkSecondaryMutedColor,\n fill: theme.custom.textDarkSecondaryMutedColor,\n\n '&:hover': {\n backgroundColor: theme.custom.bgLightColor,\n color: theme.custom.textDarkSecondaryColor,\n fill: theme.custom.textDarkSecondaryColor,\n cursor: 'pointer',\n },\n },\n navLinkActive: {\n color: theme.palette.primary.main,\n fill: theme.palette.primary.main,\n backgroundColor: theme.custom.bgLightColor,\n\n '&:hover': {\n color: theme.palette.primary.main,\n fill: theme.palette.primary.main,\n },\n },\n notificationBadge: {\n paddingLeft: '20px',\n },\n backToOrgButtonContainer: {\n backgroundColor: theme.custom.bgLightColor,\n padding: 10,\n },\n backToOrgButton: {\n color: theme.palette.primary.main,\n cursor: 'pointer',\n },\n});\n\nexport default styles;\n","export const EMPLOYEE_COUNT_DROPDOWN_VALUES = [\n '1-100',\n '101-1000',\n '1001-5000',\n '5000+',\n];\n\nexport const SAMPLE_UNITS = [\n {\n value: 250,\n unit: 'kg',\n subtitle: 'CO2 Saved',\n },\n {\n value: 300,\n unit: 'L',\n subtitle: 'Water Saved',\n },\n {\n value: 320,\n unit: 'kg',\n subtitle: 'Waste Diverted',\n },\n];\n","import PropTypes from 'prop-types';\n\nexport const activeCommunityPropType = PropTypes.shape({\n id: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n url: PropTypes.string,\n});\n\nexport const availableCommunitiesPropType = PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string.isRequired,\n url: PropTypes.string,\n role: PropTypes.string,\n content: {\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n },\n }),\n);\n","const baseUrl = window.location.host;\nconst protocol = baseUrl.includes('localhost') ? 'http' : 'https';\n\nexport const CREATE_SUCCESS_URL = (planId) =>\n `${protocol}://${baseUrl}/payment/success?planId=${planId}`;\nexport const ONBOARDING_CREATE_CANCEL_URL = `${protocol}://${baseUrl}/get-started/payment?cancel=true`;\n\nexport const CREATE_CANCEL_URL = `${protocol}://${baseUrl}/payment`;\nexport const MANAGE_RETURN_URL = `${protocol}://${baseUrl}/account?stripeCancellation=true`;\n\nexport const FREE_PLAN_INDEX = 0;\n\n// The number of users allowed per bucket in our pricing tiers.\nexport const SUBSCRIPTION_BUCKET_QUANTITY = 5;\n","import { getProperties } from '../utils';\nimport { SAMPLE_UNITS } from '../screens/AccountScreen/constants';\nimport { SUBSCRIPTION_BUCKET_QUANTITY } from './constants';\nimport {\n getFeatureFlagValue,\n REMOTE_CONFIG_SHOW_SUBSCRIPTION,\n} from '../utils/remoteConfig';\n\nexport const getCurrencyString = (amount, currency, includeDecimals = true) => {\n let formattedAmount = 0;\n if (amount) {\n formattedAmount = (amount / 100).toLocaleString([], {\n minimumFractionDigits: includeDecimals ? 2 : 0,\n maximumFractionDigits: includeDecimals ? 2 : 0,\n });\n }\n switch (currency) {\n default:\n return '$' + formattedAmount;\n }\n};\n\nexport const shouldShowSubscription = () => {\n return (\n // If we should allow org creation, we also need to show subscriptions\n getProperties()?.shouldShowSignUp &&\n getFeatureFlagValue(REMOTE_CONFIG_SHOW_SUBSCRIPTION)\n );\n};\n\nexport const calcBillingRate = (amount, interval) => {\n if (interval === 'month') return amount;\n else {\n return amount / 12;\n }\n};\n\nexport const getAccountPropsFromSub = (subscription) => {\n const interval = subscription?.interval;\n const maxUsers = subscription?.quotas?.maxUserCount;\n // Fixme: If the subscription has a value for minUsers, it likely means we are charging per bucket (ie usage based)\n const nextAmount =\n maxUsers && subscription?.subscriptionTier?.minUsers\n ? subscription?.amount * (maxUsers / SUBSCRIPTION_BUCKET_QUANTITY)\n : subscription?.amount;\n\n const rate = getCurrencyString(\n calcBillingRate(nextAmount, interval),\n subscription?.currency,\n );\n\n return {\n ...subscription,\n accountType: subscription?.subscriptionTier?.name,\n description: subscription?.subscriptionTier?.description,\n rate,\n nextAmount: subscription?.formattedAmount,\n rawAmount: subscription?.amount,\n nextDate: subscription?.nextBillDate,\n interval,\n units: SAMPLE_UNITS,\n estimateUserCount: maxUsers,\n maxUsers,\n currentUsers: subscription?.currentUserCount,\n };\n};\n","import { createSelector } from 'reselect';\nimport sumBy from 'lodash/sumBy';\nimport { coerceIntoErrors } from '../common/errors';\nimport {\n transformActivity,\n transformChallenge,\n transformLeaderboardItems,\n transformUsers,\n} from './transforms';\nimport {\n prettyFormatNumber,\n transformImpactStatsToTotals,\n} from '../common/transforms';\nimport { transformActivities } from '../activities/transforms';\nimport moment from 'moment';\nimport {\n CHALLENGE_PARTICIPATION_JOINED_STATUS,\n CHALLENGE_PARTICIPATION_UN_JOINED_STATUS,\n} from './constants';\n\nexport const getViewChallengeState = (state) => state.viewChallenge;\n\nexport const isChallengeLoading = createSelector(\n getViewChallengeState,\n (viewChallenge) => viewChallenge.isChallengeLoading,\n);\n\nexport const getChallengeErrors = createSelector(\n getViewChallengeState,\n (viewChallenge) => coerceIntoErrors(viewChallenge.challengeErrors),\n);\n\nexport const isLeaderboardLoading = createSelector(\n getViewChallengeState,\n (viewChallenge) => viewChallenge.isLeaderboardLoading,\n);\n\nexport const getLeaderboardErrors = createSelector(\n getViewChallengeState,\n (viewChallenge) => coerceIntoErrors(viewChallenge.leaderboardErrors),\n);\n\nexport const getSearchedChallenges = createSelector(\n getViewChallengeState,\n (viewChallenge) => viewChallenge.challenges?.searchResult,\n);\n\nexport const isChallengesLoading = createSelector(\n getViewChallengeState,\n (viewChallenge) => viewChallenge.challenges?.isLoading,\n);\n\nexport const getChallenge = createSelector(\n getViewChallengeState,\n (viewChallenge) => viewChallenge.challenge,\n);\n\nexport const getChallengePaginatedActions = createSelector(\n getChallenge,\n (challenge) => challenge && challenge?.actions,\n);\n\nexport const getChallengeName = createSelector(\n getChallenge,\n (challenge) => challenge && challenge.name,\n);\n\nexport const getChallengeStartDate = createSelector(\n getChallenge,\n (challenge) => challenge && new Date(Date.parse(challenge.startDate)),\n);\n\nexport const getChallengeEndDate = createSelector(\n getChallenge,\n (challenge) => challenge && new Date(Date.parse(challenge.endDate)),\n);\n\nexport const getChallengeId = createSelector(\n getChallenge,\n (challenge) => challenge?.id,\n);\n\nexport const isChallengeEditable = createSelector(\n getChallenge,\n (challenge) => challenge && challenge.isEditable,\n);\n\nexport const getChallengeParticipationStatus = createSelector(\n getChallenge,\n (challenge) => challenge && challenge.participationStatus,\n);\n\nexport const getChallengeTemplateStatus = createSelector(\n getChallenge,\n (challenge) => challenge?.challengeTemplateStatus,\n);\n\nexport const getHeadlinePhotoUrl = createSelector(\n getChallenge,\n (challenge) =>\n challenge &&\n challenge.headlinePhoto &&\n challenge.headlinePhoto.photoSizes &&\n challenge.headlinePhoto.photoSizes.length > 0 &&\n challenge.headlinePhoto.photoSizes[\n challenge.headlinePhoto.photoSizes.length - 1\n ].url,\n);\n\nexport const getHeadlinePhotoAuthor = createSelector(\n getChallenge,\n (challenge) => challenge?.headlinePhoto?.photoAuthorName,\n);\n\nexport const getChallengeIconUrl = createSelector(\n getChallenge,\n (challenge) =>\n challenge &&\n challenge.imageSizes &&\n challenge.imageSizes.length > 0 &&\n challenge.imageSizes[challenge.imageSizes.length - 1].url,\n);\n\nexport const getChallengeUnit = createSelector(\n getChallenge,\n (challenge) => challenge && challenge.challengeUnit,\n);\n\nexport const getChallengeScoringType = createSelector(\n getChallenge,\n (challenge) => challenge && challenge.scoringType,\n);\n\nexport const getLeaderboard = createSelector(\n getViewChallengeState,\n (viewChallenge) => viewChallenge.leaderboard,\n);\n\nexport const getLeaderboardItems = createSelector(\n getLeaderboard,\n (leaderboard) =>\n leaderboard && transformLeaderboardItems(leaderboard, true),\n);\n\nexport const getSecondaryLeaderboard = createSelector(\n getViewChallengeState,\n (viewChallenge) => viewChallenge.UserLeaderboard || [],\n);\n\nexport const getSecondaryLeaderboardItems = createSelector(\n getSecondaryLeaderboard,\n (leaderboard) =>\n leaderboard && transformLeaderboardItems(leaderboard, true),\n);\n\nexport const getTeamItems = createSelector(\n getLeaderboard,\n (leaderboard) => leaderboard && transformLeaderboardItems(leaderboard),\n);\n\nexport const getChallengeTeams = createSelector(\n getChallenge,\n (challenge) => challenge?.teams,\n);\n\nexport const getChallengeTeamsInfo = createSelector(\n getChallengeTeams,\n (teams) =>\n teams?.map((team) => ({\n id: team.id,\n name: team.name,\n headline: team.description || '',\n imageSizes: team.imageSizes,\n image: team.imageSizes?.[0]?.url,\n joined: team.participationStatus === 'joined',\n })),\n);\n\nexport const getChallengeImpactItems = createSelector(\n getChallenge,\n (challenge) =>\n transformImpactStatsToTotals(challenge?.impactStats?.impactStatTypes),\n);\n\nexport const getChallengeActivityTotals = createSelector(\n getChallenge,\n (challenge) =>\n challenge && {\n points: challenge.score || 0,\n logs: challenge.buzzes || 0,\n actions: challenge.pinTotal || 0,\n badges: challenge.badgeTotal || 0,\n members: challenge.membersCount || 0,\n },\n);\n\nexport const getChallengeInfo = createSelector(\n getChallenge,\n getChallengePaginatedActions,\n (challenge, actions) => transformChallenge(challenge, actions) || {},\n);\n\nexport const getGraphData = createSelector(\n getViewChallengeState,\n (challenge) => challenge.graphData,\n);\n\nexport const getGraphDataLoading = createSelector(\n getViewChallengeState,\n (challenge) => challenge.isGraphDataLoading,\n);\n\nexport const getGraphDataErrors = createSelector(\n getViewChallengeState,\n (challenge) => coerceIntoErrors(challenge.graphDataErrors),\n);\n\nexport const getActivityTab = createSelector(\n getViewChallengeState,\n ({ analyticsActivity }) => {\n if (!analyticsActivity) return [];\n\n const sumByTotal = prettyFormatNumber(\n sumBy(analyticsActivity, 'total'),\n );\n const sumByPoints = prettyFormatNumber(\n sumBy(analyticsActivity, 'points'),\n );\n const sumByActionEarned = prettyFormatNumber(\n sumBy(analyticsActivity, 'actionEarned'),\n );\n\n return [\n {\n id: 'activity-tab-0',\n title: 'Total Logs',\n info:\n \"Total Logs shows the total number of times any Action was performed by all of your community's users within the selected time period.\",\n ...sumByTotal,\n },\n {\n id: 'activity-tab-1',\n title: 'Points',\n info:\n \"Points shows the total number of points earned by all of your community's users within the selected time period.\",\n ...sumByPoints,\n },\n {\n id: 'activity-tab-2',\n title: 'Actions Mastered',\n info:\n \"Actions Mastered shows the total number of Actions that were mastered by all of your community's users within the selected time period.\",\n ...sumByActionEarned,\n },\n {\n id: 'activity-tab-3',\n title: 'Unique Actions',\n info:\n \"Unique actions show how many unique types of Actions were performed by all of your community's users within the selected time period.\",\n value: analyticsActivity.length,\n },\n ];\n },\n);\n\nexport const getUsersTab = createSelector(\n getViewChallengeState,\n ({ analyticsUsers }) =>\n analyticsUsers\n ? [\n {\n id: 'users-tab-0',\n title: 'Active Users',\n info:\n 'Active Users shows the total number of unique users who were seen within the selected time period.',\n value: analyticsUsers.activeUsers,\n },\n {\n id: 'users-tab-1',\n title: 'Logs per User',\n info:\n 'Logs per User shows the average number of Actions performed by a single user within the selected time period. It is derived by dividing the total number of Logs by the total number of Active Users.',\n value: analyticsUsers.avgActions.toFixed(2),\n },\n {\n id: 'users-tab-2',\n title: 'Logs per User per Day',\n info:\n 'Logs per User per Day shows the average number of Actions performed by a single user on an average day within the selected time period. It is derived by dividing the total number of Logs per Active Users divided by the number of days in the selected time period.',\n value: analyticsUsers.avgActionsPerDay.toFixed(2),\n },\n ]\n : [],\n);\n\nexport const getTopUsers = createSelector(\n getViewChallengeState,\n ({ analyticsUsers }) => transformUsers(analyticsUsers),\n);\n\nexport const getAnalyticsUsersErrors = createSelector(\n getViewChallengeState,\n (challenge) => challenge.analyticsUsersErrors,\n);\n\nexport const getAnalyticsUsersLoading = createSelector(\n getViewChallengeState,\n (challenge) => challenge.isAnalyticsUsersLoading,\n);\n\nexport const getTopActions = createSelector(\n getViewChallengeState,\n ({ analyticsActivity }) => transformActivity(analyticsActivity),\n);\n\nexport const getAnalyticsActivityErrors = createSelector(\n getViewChallengeState,\n (challenge) => challenge.analyticsActivityErrors,\n);\n\nexport const getAnalyticsActivityLoading = createSelector(\n getViewChallengeState,\n (challenge) => challenge.isAnalyticsActivityLoading,\n);\n\nexport const getChallengeImpactStats = createSelector(\n getViewChallengeState,\n (challenge) =>\n transformImpactStatsToTotals(challenge.analyticsImpact) || [],\n);\n\nexport const getAnalyticsImpactErrors = createSelector(\n getViewChallengeState,\n (challenge) => challenge.analyticsImpactErrors,\n);\n\nexport const getAnalyticsImpactLoading = createSelector(\n getViewChallengeState,\n (challenge) => challenge.isAnalyticsImpactLoading,\n);\n\nexport const getTopPhotos = createSelector(\n getViewChallengeState,\n (challenge) => challenge.analyticsPhotos,\n);\n\nexport const getTopPhotosErrors = createSelector(\n getViewChallengeState,\n (challenge) => challenge.analyticsPhotosErrors,\n);\n\nexport const getTopsPhotosLoading = createSelector(\n getViewChallengeState,\n (challenge) => challenge.isAnalyticsPhotosLoading,\n);\n\nexport const getPenalties = createSelector(\n getViewChallengeState,\n (challenge = {}) => challenge.penalties,\n);\n\nexport const isPenaltiesLoading = createSelector(\n getViewChallengeState,\n (challenge = {}) => challenge.penaltiesLoading,\n);\n\nexport const isPenaltiesActionLoading = createSelector(\n getViewChallengeState,\n (challenge = {}) => challenge.penaltiesActions.loading,\n);\n\nexport const getPenaltiesActionsResponse = createSelector(\n getViewChallengeState,\n (challenge = {}) => challenge.penaltiesActions.response,\n);\n\nexport const getPenaltiesActionsErrors = createSelector(\n getViewChallengeState,\n (challenge = {}) => challenge.penaltiesActions.errors,\n);\n\nexport const getChallengeCreationState = createSelector(\n getViewChallengeState,\n (viewChallengeState = {}) => viewChallengeState.creation,\n);\n\nexport const isChallengeCreationRequested = createSelector(\n getChallengeCreationState,\n (creationState = {}) => creationState.isChallengeCreationRequested,\n);\n\nexport const getChallengeCreationErrors = createSelector(\n getChallengeCreationState,\n (creationState = {}) =>\n coerceIntoErrors(creationState.challengeCreationErrors) || [],\n);\n\nexport const getCreatedChallenge = createSelector(\n getChallengeCreationState,\n (creationState = {}) => creationState.createdChallenge,\n);\n\nexport const isChallengeCreationLoading = createSelector(\n getChallengeCreationState,\n (creationState = {}) => creationState.loading,\n);\n\nexport const getTeamDetailsState = createSelector(\n getViewChallengeState,\n (viewChallenge) => viewChallenge.teamDetails,\n);\n\nexport const areTeamDetailsLoading = createSelector(\n getTeamDetailsState,\n (teamDetails) => teamDetails.loading,\n);\n\nexport const getTeamDetailsErrors = createSelector(\n getTeamDetailsState,\n (teamDetails) => coerceIntoErrors(teamDetails.errors),\n);\n\nexport const getTeam = createSelector(\n getTeamDetailsState,\n (teamDetails) => teamDetails.team,\n);\n\nexport const getTeamDetails = createSelector(getTeam, (team) =>\n team\n ? {\n id: team.id,\n name: team.name,\n headline: team.description,\n image: team.imageSizes?.[0]?.url,\n impactTotals: transformImpactStatsToTotals(\n team.impactStats?.impactStatTypes,\n ),\n activityTotals: {\n points: team.score || 0,\n logs: team.buzzes || 0,\n actions: team.pinTotal || 0,\n badges: team.badgeTotal || 0,\n members: team.membersCount || 0,\n },\n }\n : null,\n);\n\nexport const getParticipationStatus = createSelector(\n getTeam,\n (team) => team.participationStatus,\n);\n\nexport const getTeamLeaderboardState = createSelector(\n getViewChallengeState,\n (viewChallenge) => viewChallenge.teamLeaderboard,\n);\n\nexport const isTeamLeaderboardLoading = createSelector(\n getTeamLeaderboardState,\n (teamLeaderboard) => teamLeaderboard.loading,\n);\n\nexport const getTeamLeaderboardErrors = createSelector(\n getTeamLeaderboardState,\n (teamLeaderboard) => coerceIntoErrors(teamLeaderboard.errors),\n);\n\nexport const getTeamLeaderboard = createSelector(\n getTeamLeaderboardState,\n (teamLeaderboard) => teamLeaderboard.leaderboard,\n);\n\nexport const getTeamLeaderboardItems = createSelector(\n getTeamLeaderboard,\n (leaderboard) =>\n leaderboard?.map(({ item, statusInfoTitle = null }) => {\n return {\n ...item,\n disabled: statusInfoTitle && statusInfoTitle === 'Not Joined',\n };\n }),\n);\n\nexport const getPresentableTeamLeaderboardItems = createSelector(\n getTeamLeaderboardItems,\n (items) =>\n items?.map(({ id, name, score = 0, imageSizes, ...rest }) => ({\n id,\n label: name,\n value: score,\n image: imageSizes?.[0]?.url,\n ...rest,\n })),\n);\n\nexport const getTeamActivitiesState = createSelector(\n getViewChallengeState,\n (viewChallenge) => viewChallenge.teamActivities,\n);\n\nexport const areTeamActivitiesLoading = createSelector(\n getTeamActivitiesState,\n (teamActivities) => teamActivities.loading,\n);\n\nexport const getTeamActivitiesErrors = createSelector(\n getTeamActivitiesState,\n (teamActivities) => coerceIntoErrors(teamActivities.errors),\n);\n\nexport const getTeamActivities = createSelector(\n getTeamActivitiesState,\n (teamActivities) => teamActivities.activities,\n);\n\nexport const getTeamActivityItems = createSelector(\n getTeamActivities,\n (activities) => transformActivities(activities),\n);\n\nexport const getAllChallenges = createSelector(\n getViewChallengeState,\n (challenge) => {\n return challenge?.challenges?.challenges?.map((challenge) => ({\n id: challenge?.id,\n backgroundImageUrl: challenge?.photos?.[0]?.photoSizes?.[0]?.url,\n iconUrl: challenge?.imageSizes?.[0]?.url,\n name: challenge?.name,\n teams: challenge?.teams,\n members: challenge?.members,\n startDate: challenge?.startDate,\n endDate: challenge?.endDate,\n isOrgChallenge: challenge?.isOrgChallenge,\n participationStatus: challenge?.participationStatus,\n }));\n },\n);\nexport const getAvailableChallenges = createSelector(\n getAllChallenges,\n (allChallenges) => {\n const currentDate = moment();\n return allChallenges?.filter(\n (challenge) =>\n moment(challenge.endDate).unix() > currentDate.unix() &&\n challenge.participationStatus ===\n CHALLENGE_PARTICIPATION_UN_JOINED_STATUS,\n );\n },\n);\nexport const getUserSubscribedChallenges = createSelector(\n getAllChallenges,\n (allChallenges) => {\n const currentDate = moment();\n return allChallenges?.filter(\n (challenge) =>\n moment(challenge.endDate).unix() > currentDate.unix() &&\n challenge.participationStatus ===\n CHALLENGE_PARTICIPATION_JOINED_STATUS,\n );\n },\n);\nexport const getUserPreviousChallenges = createSelector(\n getAllChallenges,\n (allChallenges) => {\n const currentDate = moment();\n return allChallenges?.filter((challenge) => {\n return currentDate.unix() > moment(challenge.endDate).unix();\n });\n },\n);\n\nconst getChallengeShareURLState = createSelector(\n getViewChallengeState,\n (viewChallenge) => {\n return viewChallenge.challenge?.id ===\n viewChallenge.shareURL.challengeId\n ? viewChallenge.shareURL\n : {};\n },\n);\n\nexport const getChallengeShareURL = createSelector(\n getChallengeShareURLState,\n (shareURL) => shareURL.url,\n);\n\nexport const isChallengeShareURLLoading = createSelector(\n getChallengeShareURLState,\n (shareURL) => shareURL.loading,\n);\n\nexport const getChallengeShareURLErrors = createSelector(\n getChallengeShareURLState,\n (shareURL) => shareURL.errors,\n);\n\nconst getChallengeAdminShareImageURLState = createSelector(\n getViewChallengeState,\n (viewChallenge) => {\n return viewChallenge.challenge?.id ===\n viewChallenge.adminShareImageURL.challengeId\n ? viewChallenge.adminShareImageURL\n : {};\n },\n);\n\nexport const getChallengeAdminShareImageURL = createSelector(\n getChallengeAdminShareImageURLState,\n (shareURL) => shareURL.url,\n);\n\nexport const isChallengeAdminShareImageURLLoading = createSelector(\n getChallengeAdminShareImageURLState,\n (shareURL) => shareURL.loading,\n);\n\nexport const getChallengeAdminShareImageURLErrors = createSelector(\n getChallengeAdminShareImageURLState,\n (shareURL) => shareURL.errors,\n);\n\nexport const getChallengeThemeName = createSelector(\n getChallenge,\n (challenge) => challenge.themeName,\n);\n","import { createSelector } from 'reselect';\nimport { coerceIntoErrors } from '../../common/errors';\nimport { getViewChallengeState } from '../../challenges/selectors';\nimport { GROUPS } from './constants';\n\nexport const getChallengesState = (state) => state.challenges;\n\nexport const getGroupState = createSelector(\n getChallengesState,\n (state, group) => group,\n (challengesState, group) => challengesState[group],\n);\n\nexport const isGroupLoading = createSelector(\n getGroupState,\n (groupState) => groupState?.isLoading,\n);\n\nexport const getGroupLoadingStates = createSelector(\n getChallengesState,\n (challengesState) => {\n const groups = {};\n GROUPS.forEach((group) => {\n groups[group] = challengesState[group]?.isLoading;\n });\n return groups;\n },\n);\n\nexport const getGroupErrors = createSelector(getGroupState, (groupState) =>\n coerceIntoErrors(groupState.errors),\n);\n\nexport const getChallengesScreenActions = createSelector(\n getViewChallengeState,\n (viewChallengeState = {}) => viewChallengeState.challengesScreenActions,\n);\n\nexport const isChallengesScreenActionLoading = createSelector(\n getChallengesScreenActions,\n (activation = {}) => activation.loading,\n);\n\nexport const getChallengesScreenActionErrors = createSelector(\n getChallengesScreenActions,\n (challengesScreenActions = {}) =>\n coerceIntoErrors(challengesScreenActions.errors),\n);\n\nexport const getChallengesScreenActionResponse = createSelector(\n getChallengesScreenActions,\n (challengesScreenActions = {}) => challengesScreenActions.response,\n);\n\nexport const getGroupChallenges = createSelector(\n getGroupState,\n (groupState) => groupState.challenges,\n);\n\nexport const getGroupTableData = createSelector(\n getGroupChallenges,\n (challenges) => {\n return (challenges || []).map((challenge) => {\n return {\n ...challenge,\n icon: {\n url: challenge.icon[0]?.url,\n communityId: challenge.sponsoringCommunities[0]?.id,\n communityName: challenge.sponsoringCommunities[0]?.name,\n },\n title: challenge.name,\n };\n });\n },\n);\n","import { createSelector } from 'reselect';\nimport { coerceIntoErrors } from '../common/errors';\nimport { transformAction } from './transforms';\nimport { uniqBy } from 'lodash';\nimport { flatten } from 'ramda';\nimport {\n CHEATING_ACTIONS,\n PIN_ADMIN_VISIBILITY_INCLUDED_FOR_THEME,\n} from './constants';\n\nexport const getViewActionState = (state) => state.viewAction;\n\nexport const isActionLoading = createSelector(\n getViewActionState,\n (viewAction) => viewAction.isLoading,\n);\n\nexport const isLogActionLoading = createSelector(\n getViewActionState,\n (viewAction) => viewAction.isLogActionLoading,\n);\n\nexport const isActionShareURLLoading = createSelector(\n getViewActionState,\n (viewAction) => viewAction.actionShareURL.loading,\n);\n\nexport const getActionShareURLErrors = createSelector(\n getViewActionState,\n (viewAction) => viewAction.actionShareURL.errors,\n);\n\nexport const getActionErrors = createSelector(\n getViewActionState,\n (viewAction) => coerceIntoErrors(viewAction.errors),\n);\n\nexport const getAction = createSelector(getViewActionState, (viewAction) =>\n transformAction(viewAction.action),\n);\n\nexport const getLogAction = createSelector(\n getViewActionState,\n (viewAction = {}) => viewAction.logAction,\n);\n\nexport const getLoggedActivityId = createSelector(\n getLogAction,\n (logAction) => logAction?.activities?.[0].id || '',\n);\n\nexport const getShareURL = createSelector(\n getLogAction,\n (logAction) => logAction?.shareURL?.url,\n);\n\nexport const isShareURLLoading = createSelector(\n getLogAction,\n (logAction) => logAction?.shareURL?.loading,\n);\n\nexport const getLogErrors = createSelector(\n getViewActionState,\n (viewAction = {}) => coerceIntoErrors(viewAction.logErrors),\n);\n\nexport const getLogStatus = createSelector(\n getViewActionState,\n (viewAction = {}) => viewAction.logStatus,\n);\n\nexport const didLogAction = createSelector(getLogAction, (logAction) =>\n Boolean(logAction),\n);\n\nexport const hasLogActionOverloaded = createSelector(\n getLogAction,\n (logAction = {}) =>\n logAction?.activities?.[0]?.actions?.some((action) =>\n CHEATING_ACTIONS.includes(action.actionName),\n ),\n);\n\nexport const getLogActionEncouragements = createSelector(\n getLogAction,\n (logAction) => logAction?.encouragements || [],\n);\n\nexport const getLogActionChallengeUpdates = createSelector(\n getLogAction,\n (logAction) => logAction?.['challenge-updates'] || [],\n);\nexport const getLogActionBonuses = createSelector(getLogAction, (logAction) =>\n logAction?.activities?.[0]?.actions?.map((action) => ({\n name: action.title,\n actionName: action.actionName,\n description: action.subtitle,\n points: action.actionMultiplier,\n })),\n);\n\nexport const getActions = createSelector(\n [getViewActionState, (state, visibility) => visibility],\n (actions = {}, visibility = PIN_ADMIN_VISIBILITY_INCLUDED_FOR_THEME) => ({\n ...actions.actions?.[visibility],\n data: actions.actions?.[visibility]?.data?.map((action) =>\n transformAction(action),\n ),\n }),\n);\n\nexport const getLinkState = createSelector(\n getViewActionState,\n (viewActionState = {}) => viewActionState.link,\n);\n\nexport const isMetadataLoading = createSelector(\n getLinkState,\n (linkState = {}) => linkState.isMetadataLoading,\n);\n\nexport const getMetadataErrors = createSelector(getLinkState, (linkState) =>\n coerceIntoErrors(linkState.errors),\n);\n\nexport const getMetadata = createSelector(\n getLinkState,\n (linkState = {}) => linkState.metadata,\n);\n\nexport const getCustomizationState = createSelector(\n getViewActionState,\n (viewAction = {}) => viewAction.customize,\n);\n\nexport const isCustomizationRequested = createSelector(\n getCustomizationState,\n (customizationState = {}) => customizationState.isCustomizationRequested,\n);\n\nexport const getCustomizationMessage = createSelector(\n getCustomizationState,\n (customizationState = {}) => customizationState.customizationMessage,\n);\n\nexport const getCustomizationErrors = createSelector(\n getCustomizationState,\n (customizationState = {}) => customizationState.customizationErrors,\n);\n\nexport const getActionCategoriesState = createSelector(\n getViewActionState,\n (viewAction) => viewAction.actionCategories,\n);\n\nexport const isActionCategoriesLoading = createSelector(\n getActionCategoriesState,\n (actionCategories) => actionCategories?.isLoading,\n);\n\nexport const getActionTabNames = createSelector(\n getActionCategoriesState,\n (actionCategories) =>\n actionCategories?.categories?.map((category) => category.name),\n);\n\nexport const getActionPins = createSelector(\n getActionCategoriesState,\n (actionCategories) =>\n actionCategories?.categories?.map((category) =>\n category.pins.map((pin) => transformAction(pin)),\n ) || [],\n);\n\nexport const getLastVisitedActionCategoryIndex = createSelector(\n getActionCategoriesState,\n (actionCategories) => actionCategories.lastActiveTabIndex,\n);\n\nexport const getSearchablePins = createSelector(getActionPins, (actionPins) =>\n uniqBy(flatten(actionPins), 'id'),\n);\n\nexport const getConfirmLinkStatus = createSelector(\n getLinkState,\n (linkState = {}) => linkState.confirmed,\n);\n\nexport const getSDGs = createSelector(\n getViewActionState,\n (viewActionState = {}) => viewActionState.sdgs.data,\n);\n","import { createSelector } from 'reselect';\nimport { coerceIntoErrors } from '../common/errors';\nimport {\n GROUP_TYPE_DELIVERED,\n GROUP_TYPE_QUEUED,\n} from '../screens/NotificationsScreen/AdminNotificationsScreen/constants';\nimport {\n notificationResponseToTableCellData,\n transformActions,\n transformAdmins,\n transformChallenges,\n transformCreateNotification,\n transformUserNotifications,\n transformUsers,\n} from './transforms';\nimport {\n GROUP_ACTIVE,\n GROUP_PAST,\n GROUP_UPCOMING,\n} from '../screens/ChallengesScreen/constants';\nimport { getChallengesState } from '../screens/ChallengesScreen/selectors';\nimport { getActiveMembers } from '../user/selectors';\nimport { getActions } from '../actions/selectors';\n\nexport const getNotificationsState = (state) => state.notifications;\n\nexport const getGroupTableData = createSelector(\n getNotificationsState,\n (notifications) => ({\n [GROUP_TYPE_QUEUED]: notificationResponseToTableCellData(\n notifications[GROUP_TYPE_QUEUED].data,\n ),\n [GROUP_TYPE_DELIVERED]: notificationResponseToTableCellData(\n notifications[GROUP_TYPE_DELIVERED].data,\n ),\n }),\n);\n\nexport const getGroupLoader = createSelector(\n getNotificationsState,\n (notifications) => ({\n [GROUP_TYPE_QUEUED]: notifications[GROUP_TYPE_QUEUED].isLoading,\n [GROUP_TYPE_DELIVERED]: notifications[GROUP_TYPE_DELIVERED].isLoading,\n }),\n);\n\nexport const getGroupTotalCount = createSelector(\n getNotificationsState,\n (notifications) => ({\n [GROUP_TYPE_QUEUED]: notifications[GROUP_TYPE_QUEUED].totalCount,\n [GROUP_TYPE_DELIVERED]: notifications[GROUP_TYPE_DELIVERED].totalCount,\n }),\n);\n\nexport const getQueuedErrors = createSelector(\n getNotificationsState,\n (notifications) =>\n coerceIntoErrors(notifications[GROUP_TYPE_QUEUED].errors),\n);\n\nexport const getDeliveredErrors = createSelector(\n getNotificationsState,\n (notifications) =>\n coerceIntoErrors(notifications[GROUP_TYPE_DELIVERED].errors),\n);\n\nexport const getNotificationData = createSelector(\n getNotificationsState,\n (notifications) => notifications?.notification?.data || [],\n);\n\nexport const getNotificationLoader = createSelector(\n getNotificationsState,\n (notifications) => notifications.notification?.isLoading,\n);\n\nexport const getNotificationErrors = createSelector(\n getNotificationsState,\n (notifications) => coerceIntoErrors(notifications.notification?.errors),\n);\n\nexport const getNotificationUpdateMessage = createSelector(\n getNotificationsState,\n (notifications) => notifications.notification?.message,\n);\n\nexport const getNotificationActions = createSelector(getActions, (actions) =>\n transformActions(actions?.data),\n);\n\nexport const getCommunityUsers = createSelector(\n getActiveMembers,\n (activeMembers) => transformUsers(activeMembers),\n);\n\nexport const getCommunityAdmins = createSelector(\n getActiveMembers,\n (activeMembers) => transformAdmins(activeMembers),\n);\n\nexport const getChallenges = createSelector(getChallengesState, (groupState) =>\n [GROUP_ACTIVE, GROUP_UPCOMING, GROUP_PAST].reduce((res, group) => {\n if (groupState[group].challenges) {\n return [\n ...res,\n ...transformChallenges(\n group,\n groupState[group]?.challenges || [],\n ),\n ];\n }\n return res;\n }, []),\n);\n\nexport const getUpdateErrors = createSelector(\n getNotificationsState,\n (notifications) => coerceIntoErrors(notifications.notification?.errors),\n);\n\nexport const getUpdateErrorStatus = createSelector(\n getNotificationsState,\n (notifications) => notifications.notification?.errorStatus,\n);\n\nexport const getCreate = createSelector(\n getNotificationsState,\n (notifications) =>\n transformCreateNotification(notifications.create.notification),\n);\n\nexport const areUserNotificationsLoading = createSelector(\n getNotificationsState,\n (notifications) => notifications.userNotifications.loading,\n);\n\nexport const getUserNotifications = createSelector(\n getNotificationsState,\n (notifications) =>\n transformUserNotifications(\n notifications.userNotifications?.notifications || [],\n ),\n);\n\nexport const getUserNotificationCounts = createSelector(\n getNotificationsState,\n (notifications) => notifications.userNotifications?.counts,\n);\n","export const CONTENT_TYPE_BADGE = 'Badge';\nexport const CONTENT_TYPE_PIN = 'Pin';\nexport const CONTENT_TYPE_USER = 'User';\n\nexport const CONTENT_TYPES = [CONTENT_TYPE_BADGE, CONTENT_TYPE_PIN];\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { connect } from 'react-redux';\nimport {\n getActiveCommunityId,\n getActiveCommunityImage,\n getActiveCommunityName,\n getActiveCommunityOrgId,\n getAvailableCommunities,\n isActiveCommunityLoading,\n isUserViewActive,\n} from '../../user/selectors';\nimport { NavLink, useHistory, useRouteMatch } from 'react-router-dom';\nimport {\n Badge,\n Drawer,\n Grid,\n isWidthDown,\n isWidthUp,\n List,\n ListItem,\n Tooltip,\n Typography,\n withStyles,\n} from '@material-ui/core';\nimport {\n AssessmentOutlined,\n Folder,\n Group,\n Home,\n Settings,\n} from '@material-ui/icons';\nimport CommunityCard from '../CommunityCard';\nimport MenuDropdown from '../MenuDropdown';\nimport { Can } from '../../casl/ability-context';\nimport IcomoonIcon from '../IcomoonIcon';\nimport {\n AccountMenuIcon,\n CommunitiesIcon,\n} from '../../assets/images/svg/index';\nimport CommunityDropdown from '../CommunityDropdown';\nimport {\n actionItems,\n challengeItems,\n notificationsItems,\n TAB_ACTIONS,\n TAB_CHALLENGES,\n TAB_NOTIFICATIONS,\n TAB_USERS,\n usersItems,\n} from './constants';\nimport { localizeFieldsInObject } from '../../localization/transforms';\nimport { useTranslation } from 'react-i18next';\nimport styles from './styles';\nimport { setActiveCommunity } from '../../user/actions';\nimport { availableCommunitiesPropType } from '../../user/propTypes';\nimport { shouldShowSubscription } from '../../subscriptions/utils';\nimport { getUserNotificationCounts } from '../../notifications/selectors';\n\nexport const LeftColumn = ({\n classes,\n activeCommunityName,\n activeCommunityId,\n activeCommunityOrgId,\n activeCommunityImage,\n communities,\n width,\n isOpen,\n setIsOpen,\n changeCommunity,\n activeCommunityLoading,\n userViewActive,\n notificationCounts,\n}) => {\n const { t } = useTranslation();\n const [communitySelectOpen, setCommunitySelectOpen] = useState(false);\n const history = useHistory();\n const isCommunitySelected = useRouteMatch(\n `/communities/${activeCommunityId}`,\n );\n\n // expandable panel states\n const [adminActionTabOpen, setAdminActionTabOpen] = useState(false);\n const [adminChallengeTabOpen, setAdminChallengeTabOpen] = useState(false);\n const [adminNotificationsTabOpen, setAdminNotificationsTabOpen] = useState(\n false,\n );\n const [adminUsersTabOpen, setAdminUsersTabOpen] = useState(false);\n\n // localize menu items\n const tUsersItems = useMemo(\n () => localizeFieldsInObject(t, 'label', usersItems),\n [t],\n );\n const tActionItems = useMemo(\n () => localizeFieldsInObject(t, 'label', actionItems),\n [t],\n );\n const tChallengeItems = useMemo(\n () => localizeFieldsInObject(t, 'label', challengeItems),\n [t],\n );\n const tNotificationsItems = useMemo(\n () => localizeFieldsInObject(t, 'label', notificationsItems),\n [t],\n );\n\n const handleTabClick = () => {\n if (isWidthDown('xs', width)) {\n setIsOpen(false);\n }\n };\n\n const handleCloseExpandedTabs = () => {\n setAdminActionTabOpen(false);\n setAdminChallengeTabOpen(false);\n setAdminNotificationsTabOpen(false);\n setAdminUsersTabOpen(false);\n handleTabClick();\n };\n\n const handleSelfExpand = (id) => {\n if (id === TAB_ACTIONS) setAdminActionTabOpen(!adminActionTabOpen);\n else setAdminActionTabOpen(false);\n\n if (id === TAB_CHALLENGES)\n setAdminChallengeTabOpen(!adminChallengeTabOpen);\n else setAdminChallengeTabOpen(false);\n\n if (id === TAB_NOTIFICATIONS)\n setAdminNotificationsTabOpen(!adminNotificationsTabOpen);\n else setAdminNotificationsTabOpen(false);\n\n if (id === TAB_USERS) setAdminUsersTabOpen(!adminUsersTabOpen);\n else setAdminUsersTabOpen(false);\n };\n\n const setStateByResize = useCallback(() => {\n if (isWidthUp('md', width)) {\n setIsOpen(true);\n } else {\n setIsOpen(false);\n }\n }, [setIsOpen, width]);\n\n const changeCommunityHandler = (value) => {\n const params = new URLSearchParams(window.location.search);\n params.delete('communityId');\n params.append('communityId', value.content?.id || value.organizationId);\n\n const searchParams = params.toString();\n const communityId = value.organizationId;\n let newUrl;\n if (window.location.pathname.startsWith('/communities')) {\n newUrl = `/communities/${communityId}?communityId=${communityId}`;\n } else {\n newUrl = `${window.location.pathname}?${searchParams}&communityId=${communityId}`;\n }\n history.push(newUrl);\n changeCommunity(value.organizationId);\n changeCommunity(value.content?.id || value.organizationId);\n };\n\n const communityClickHandler = () => {\n handleTabClick();\n history.push(`/communities/${activeCommunityId}`);\n };\n\n useEffect(() => {\n setStateByResize();\n }, [setStateByResize]);\n\n const [communitySearchValue, setCommunitySearchValue] = useState('');\n\n const communityDropdownPaperRef = useRef(null);\n\n useEffect(() => {\n function handleClickOutside(event) {\n if (\n !communityDropdownPaperRef.current?.contains(event.target) &&\n setCommunitySelectOpen &&\n !isOpen\n ) {\n setCommunitySelectOpen(false);\n }\n }\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [\n communitySelectOpen,\n setCommunitySelectOpen,\n communityDropdownPaperRef,\n isOpen,\n ]);\n\n const isOrganization = activeCommunityOrgId === activeCommunityId;\n\n return (\n \n {!isOrganization &&\n communities.some(\n (comm) => comm.content.id === activeCommunityOrgId,\n ) && (\n \n \n changeCommunity(activeCommunityOrgId)\n }\n >\n {t('community.backToOrg')}\n \n \n )}\n \n \n {!userViewActive && communities.length > 1 && (\n \n {!isOpen && (\n \n {\n setCommunitySelectOpen(\n !communitySelectOpen,\n );\n }}\n />\n \n )}\n {\n setCommunitySearchValue(newInputValue);\n if (\n communities?.length > 100 &&\n newInputValue?.length < 2\n ) {\n setCommunitySelectOpen(false);\n }\n }}\n onChange={(e, val) => {\n changeCommunityHandler(val);\n setCommunitySearchValue('');\n setCommunitySelectOpen(false);\n }}\n loading={activeCommunityLoading}\n disabled={activeCommunityLoading}\n open={communitySelectOpen}\n onOpen={() => {\n if (\n communities?.length < 100 ||\n communitySearchValue?.length > 0\n ) {\n setCommunitySelectOpen(true);\n }\n }}\n onClose={() => setCommunitySelectOpen(false)}\n clearOnEscape\n />\n \n )}\n \n \n \n \n {t('home.descriptor')}\n \n \n \n \n \n \n \n {t('action.descriptor_plural')}\n \n \n \n \n \n \n {t('challenge_plural')}\n \n \n \n \n \n \n {t('activities')}\n \n \n \n \n \n \n {t('notifications.descriptor')}\n \n \n \n \n \n \n {t('profile.descriptor')}\n \n \n \n \n\n \n \n \n \n {t('analytics')}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {isOrganization && (\n \n \n \n \n {t('community.community_plural')}\n \n \n \n )}\n {isOrganization && shouldShowSubscription() && (\n \n \n \n \n {t('Account')}\n \n \n \n )}\n \n \n \n \n {t('Flags')}\n \n \n \n \n {/* Disabled for everyone for now -- route was also removed JB-2120 */}\n {false && (\n \n )}\n \n \n \n \n {t('Settings')}\n \n \n \n \n );\n};\n\nLeftColumn.propTypes = {\n classes: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n setIsOpen: PropTypes.func.isRequired,\n width: PropTypes.string.isRequired,\n activeCommunityName: PropTypes.string.isRequired,\n activeCommunityId: PropTypes.string.isRequired,\n activeCommunityOrgId: PropTypes.string,\n activeCommunityImage: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n ]).isRequired,\n communities: availableCommunitiesPropType.isRequired,\n changeCommunity: PropTypes.func.isRequired,\n activeCommunityLoading: PropTypes.bool,\n userViewActive: PropTypes.bool.isRequired,\n notificationCounts: PropTypes.object.isRequired,\n};\n\nLeftColumn.defaultProps = {\n activeCommunityLoading: false,\n activeCommunityOrgId: '',\n};\n\nexport const StyledLeftColumn = withStyles(styles)(LeftColumn);\n\nconst mapStateToProps = (state) => ({\n activeCommunityName: getActiveCommunityName(state),\n activeCommunityId: getActiveCommunityId(state),\n activeCommunityOrgId: getActiveCommunityOrgId(state),\n activeCommunityImage: getActiveCommunityImage(state),\n communities: getAvailableCommunities(state),\n activeCommunityLoading: isActiveCommunityLoading(state),\n userViewActive: isUserViewActive(state),\n notificationCounts: getUserNotificationCounts(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n changeCommunity: (communityId) => dispatch(setActiveCommunity(communityId)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(StyledLeftColumn);\n","const styles = (theme) => ({\n footerContainer: {\n backgroundColor: theme.palette.secondary.main,\n height: 50,\n [theme.breakpoints.down('md')]: {\n height: 35,\n },\n },\n logo: {\n maxWidth: '20px',\n },\n footerText: {\n color: theme.custom.textDarkColor,\n letterSpacing: 3,\n opacity: 0.75,\n },\n});\n\nexport default styles;\n","import PropTypes from 'prop-types';\n\nconst Copyright = ({ symbol, name }) => {\n return `${symbol} ${name} ${new Date().getFullYear()} `;\n};\n\nCopyright.propTypes = {\n // The symbol to use as a string. Defaults to the copyright symbol.\n symbol: PropTypes.string,\n\n // The company name to show.\n name: PropTypes.string.isRequired,\n};\n\nCopyright.defaultProps = {\n symbol: String.fromCharCode(169),\n};\n\nexport default Copyright;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport styles from './styles';\n\nimport Copyright from '../Copyright';\nimport IMAGES from '../../constants/images';\n\nconst Footer = ({ classes, ...props }) => {\n return (\n \n \n \n \n \n {` | v${process.env.REACT_APP_VERSION}`}\n \n \n \n );\n};\nFooter.propTypes = {\n // From withStyles we expect to get classes\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles)(Footer);\n","const styles = (theme) => ({\n pageTitle: {\n marginTop: '30px',\n fontSize: '30px',\n },\n});\n\nexport default styles;\n","import { makeStyles } from '@material-ui/styles';\nimport { HEADER_VARIANT, ACCOUNT_VARIANT } from './constants';\n\nexport default makeStyles((theme) => ({\n root: ({ maxUsers, currentUsers }) => ({\n '& .MuiLinearProgress-colorPrimary': {\n backgroundColor: theme.palette.white.main,\n },\n '& .MuiLinearProgress-barColorPrimary': {\n backgroundColor:\n currentUsers >= maxUsers\n ? theme.custom.red219\n : theme.palette.primary.main,\n },\n }),\n container: ({ variant }) => ({\n backgroundColor: theme.custom.grey93,\n padding: variant === HEADER_VARIANT ? '5px 10px 10px 5px' : '10px',\n borderRadius: variant === HEADER_VARIANT ? '0px 0px 5px 5px' : '5px',\n display: 'flex',\n }),\n accountType: {\n fontWeight: 700,\n lineHeight: 1,\n },\n progressBar: {\n height: '10px',\n borderRadius: '3px',\n marginTop: '7px',\n },\n progressBarContainer: ({ variant }) => ({\n paddingTop: variant === ACCOUNT_VARIANT && '0px',\n [theme.breakpoints.down('sm')]: {\n alignSelf: 'flex-start',\n },\n [theme.breakpoints.up('md')]: {\n flex: 1,\n },\n }),\n userCount: {\n color: theme.custom.grey60,\n fontSize: '12px',\n },\n iconContainer: ({ variant }) => ({\n display: 'flex',\n alignItems: variant === HEADER_VARIANT && 'center',\n justifyContent: variant === HEADER_VARIANT && 'center',\n height: variant === HEADER_VARIANT && '40px',\n }),\n warningIcon: ({ variant }) => ({\n width: variant === HEADER_VARIANT ? '80%' : '24px',\n height: variant === ACCOUNT_VARIANT && '24px',\n fill: theme.custom.red219,\n }),\n upgradeBtn: {\n padding: 5,\n borderRadius: '10px',\n marginTop: '5px',\n backgroundColor: theme.palette.white.main,\n },\n link: {\n textDecoration: 'none',\n },\n}));\n","export const HEADER_VARIANT = 'header';\nexport const ACCOUNT_VARIANT = 'account';\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, LinearProgress, Typography } from '@material-ui/core';\nimport Button from '../Button';\nimport { WarningIcon } from '../../assets/images/svg';\nimport useStyles from './styles';\nimport { ACCOUNT_VARIANT, HEADER_VARIANT } from './constants';\nimport { useHistory } from 'react-router-dom';\nimport { trackEvent } from '../../utils/analytics';\nimport { EVENT_SUBSCRIPTION_PRESS_UPGRADE } from '../../constants/analyticsEvents';\nimport { PARAM_ORIGIN } from '../../constants/analyticsParams';\n\nconst UserCounter = ({ accountType, maxUsers, currentUsers, variant }) => {\n const { t } = useTranslation();\n\n const classes = useStyles({ maxUsers, currentUsers, variant });\n const history = useHistory();\n\n const UserCountBar = () => {\n return (\n \n \n
    \n \n
    \n
    \n \n \n {`${currentUsers}/${maxUsers} Users`}\n \n \n
    \n );\n };\n\n const calcUserPercentage = () => {\n if (currentUsers >= maxUsers) return 100;\n return Math.round((currentUsers / maxUsers) * 100);\n };\n\n const calcRemainingUserCount = () => {\n return maxUsers - currentUsers;\n };\n\n const handleUpgradeClick = () => {\n trackEvent(EVENT_SUBSCRIPTION_PRESS_UPGRADE, {\n [PARAM_ORIGIN]: variant,\n });\n history.push('/payment');\n };\n\n return (\n \n {variant === HEADER_VARIANT && (\n \n {currentUsers >= maxUsers && (\n \n
    \n \n
    \n
    \n )}\n \n \n \n {t('account.accountTypeText')}\n \n \n \n \n {accountType}\n \n \n \n \n )}\n {variant === ACCOUNT_VARIANT && (\n \n {currentUsers >= maxUsers ? (\n \n \n
    \n \n
    \n
    \n \n \n {t('account.maxedOutText')}\n \n \n
    \n ) : (\n \n \n {t('account.remainingUserText', {\n remainingUserCount: calcRemainingUserCount(),\n })}\n \n \n )}\n \n )}\n \n \n \n \n \n {t('account.upgradeButtonText')}\n \n \n \n );\n};\n\nUserCounter.propTypes = {\n accountType: PropTypes.string.isRequired,\n maxUsers: PropTypes.number.isRequired,\n currentUsers: PropTypes.number.isRequired,\n variant: PropTypes.oneOf([HEADER_VARIANT, ACCOUNT_VARIANT]),\n};\n\nUserCounter.defaultProps = {\n variant: HEADER_VARIANT,\n};\n\nexport default UserCounter;\n","import { createSelector } from 'reselect';\nimport { getCurrencyString } from './utils';\nimport { sortSubscriptionTiers } from './transforms';\nimport { coerceIntoErrors } from '../common/errors';\n\nexport const getSubscriptionState = (state) => state.subscription;\n\nexport const getCurrentSubscription = createSelector(\n getSubscriptionState,\n (subscriptionState) => ({\n ...subscriptionState.accountPlan?.currentSubscription,\n formattedAmount: getCurrencyString(\n subscriptionState.accountPlan?.currentSubscription?.upcomingAmount,\n subscriptionState.accountPlan?.currentSubscription?.currency,\n ),\n loading: subscriptionState.accountPlan?.loading,\n }),\n);\n\nexport const getSubscriptionName = createSelector(\n getCurrentSubscription,\n (currentSubscription) => currentSubscription?.subscriptionTier?.name,\n);\n\nexport const getSubscriptionId = createSelector(\n getCurrentSubscription,\n (currentSubscription) => currentSubscription?.subscriptionTier?.id,\n);\n\nexport const getSubscriptionAmount = createSelector(\n getCurrentSubscription,\n (currentSubscription) => currentSubscription?.amount,\n);\n\nexport const isSubscriptionCanceled = createSelector(\n getCurrentSubscription,\n (currentSubscription) => currentSubscription?.cancelAtPeriodEnd,\n);\n\nexport const getLatestInvoice = createSelector(\n getSubscriptionState,\n (subscriptionState) => ({\n ...subscriptionState.accountPlan?.currentSubscription?.invoice,\n amountPaid: getCurrencyString(\n subscriptionState.accountPlan?.currentSubscription?.invoice\n ?.amountPaid,\n subscriptionState.accountPlan?.currentSubscription?.currency,\n ),\n subTotal: getCurrencyString(\n subscriptionState.accountPlan?.currentSubscription?.invoice\n ?.subTotal,\n subscriptionState.accountPlan?.currentSubscription?.currency,\n ),\n salesTax: getCurrencyString(\n subscriptionState.accountPlan?.currentSubscription?.invoice\n ?.salesTax,\n subscriptionState.accountPlan?.currentSubscription?.currency,\n ),\n amountDue: getCurrencyString(\n subscriptionState.accountPlan?.currentSubscription?.invoice\n ?.amountDue,\n subscriptionState.accountPlan?.currentSubscription?.currency,\n ),\n }),\n);\n\nexport const getPaymentMethod = createSelector(\n getSubscriptionState,\n (subscriptionState) => subscriptionState.paymentMethod,\n);\n\nexport const getStripePlanId = createSelector(\n getSubscriptionState,\n (subscriptionState) => subscriptionState.stripePlanId,\n);\n\nexport const getBillingSessionUrl = createSelector(\n getSubscriptionState,\n (subscriptionState) => subscriptionState.billingSession.url,\n);\n\nexport const getBillingSessionErrors = createSelector(\n getSubscriptionState,\n (subscriptionState) => subscriptionState.billingSession.errors,\n);\nexport const getBillingSessionLoading = createSelector(\n getSubscriptionState,\n (subscriptionState) => subscriptionState.billingSession.loading,\n);\n\nexport const getSubscriptionRecords = createSelector(\n getSubscriptionState,\n (subscriptionState) =>\n subscriptionState?.subscriptionRecords?.records?.map((record) => ({\n ...record,\n formattedAmount: getCurrencyString(\n record.invoice.amountPaid,\n record.currency,\n ),\n })),\n);\n\nexport const getSubscriptionTiers = createSelector(\n getSubscriptionState,\n (subscriptionState) =>\n sortSubscriptionTiers(subscriptionState.subscriptionTiers?.tiers),\n);\n\nexport const areSubscriptionTiersLoading = createSelector(\n getSubscriptionState,\n (subscriptionState) => subscriptionState.subscriptionTiers?.loading,\n);\n\nexport const getSubscriptionTierErrors = createSelector(\n getSubscriptionState,\n (subscriptionState) =>\n coerceIntoErrors(subscriptionState.subscriptionTiers?.errors),\n);\n\nexport const getSubscriptionSessionLoadingState = createSelector(\n getSubscriptionState,\n (subscriptionState) => subscriptionState?.billingSession?.loading,\n);\n\nexport const getSubscriptionManagementUrl = createSelector(\n getSubscriptionState,\n (subscriptionState) => subscriptionState.management.url,\n);\n","/**\n * Sorts available subscription tiers in the order of free -> premium -> custom\n * @param tiers\n */\nexport const sortSubscriptionTiers = (tiers) => {\n if (!tiers) {\n return [];\n }\n const sortedOrder = tiers.sort((a, b) => {\n if (!a.quotas.maxUserCount) return 1;\n if (!b.quotas.maxUserCount) return -1;\n if (a.quotas.maxUserCount < b.quotas.maxUserCount) return -1;\n if (a.quotas.maxUserCount > b.quotas.maxUserCount) return 1;\n return 0;\n });\n\n return (\n (sortedOrder &&\n sortedOrder.map((tier, index) => {\n if (index > 0 && tier.quotas) {\n const previousMaxUserCount =\n sortedOrder[index - 1].quotas?.maxUserCount;\n\n if (index === sortedOrder.length - 1) {\n return {\n ...tier,\n quotas: {\n ...tier.quotas,\n maxUserCount: previousMaxUserCount,\n },\n };\n }\n\n return {\n ...tier,\n quotas: {\n ...tier.quotas,\n minUserCount: previousMaxUserCount + 1,\n },\n };\n } else return tier;\n })) ||\n []\n );\n};\n","import React, { useCallback, useEffect, useMemo } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport styles from './styles';\nimport UserCounter from '../UserCounter/index';\nimport { shouldShowSubscription } from '../../subscriptions/utils';\nimport { getActiveCommunityId, isOrganization } from '../../user/selectors';\nimport { isAuthenticated } from '../../auth/selectors';\nimport {\n getCurrentSubscription,\n getSubscriptionName,\n} from '../../subscriptions/selectors';\nimport { subscriptionRequested } from '../../subscriptions/actions';\nimport { connect } from 'react-redux';\n\nconst MainHeader = ({\n classes,\n isAuth,\n subscription,\n subscriptionName,\n communityId,\n fetchCurrentSubscription,\n isOrganization,\n}) => {\n const { t } = useTranslation();\n const location = useLocation();\n\n useEffect(() => {\n if (isOrganization && shouldShowSubscription()) {\n fetchCurrentSubscription({ groupId: communityId });\n }\n }, [communityId, fetchCurrentSubscription, isOrganization]);\n\n const getPageTitle = useCallback(() => {\n if (isAuth) {\n if (location.pathname === '/' || location.pathname === '/login') {\n return t('home.pageName');\n }\n }\n }, [t, isAuth, location]);\n\n const maxUsers = useMemo(() => subscription?.quotas?.maxUserCount, [\n subscription,\n ]);\n\n const shouldShowUserCounter = useCallback(() => {\n return (\n isOrganization &&\n location.pathname !== '/account' &&\n !location.pathname.toString().includes('/payment') &&\n maxUsers &&\n shouldShowSubscription()\n );\n }, [isOrganization, location.pathname, maxUsers]);\n\n return (\n \n {shouldShowUserCounter() && (\n \n \n \n {getPageTitle()}\n \n \n \n \n \n \n )}\n \n );\n};\n\nMainHeader.propTypes = {\n classes: PropTypes.object.isRequired,\n isAuth: PropTypes.bool.isRequired,\n subscription: PropTypes.object.isRequired,\n subscriptionName: PropTypes.string.isRequired,\n communityId: PropTypes.string.isRequired,\n fetchCurrentSubscription: PropTypes.func.isRequired,\n isOrganization: PropTypes.bool,\n};\n\nMainHeader.defaultProps = {\n isOrganization: true,\n};\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n isOrganization: isOrganization(state),\n isAuth: isAuthenticated(state),\n subscription: getCurrentSubscription(state),\n subscriptionName: getSubscriptionName(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n fetchCurrentSubscription: (request) =>\n dispatch(subscriptionRequested(request)),\n});\n\nexport const StyledMainHeader = withStyles(styles)(MainHeader);\n\nexport default connect(mapStateToProps, mapDispatchToProps)(StyledMainHeader);\n","import { createSelector } from 'reselect';\nimport { coerceIntoErrors } from '../common/errors';\nimport IMAGES from '../constants/images';\nimport { transformAdminCommunity, transformCommunity } from './transforms';\n\nexport const getCommunityState = (state) => state.community;\n\nexport const isCommunityLoading = createSelector(\n getCommunityState,\n (communityState) => communityState.loading,\n);\n\nexport const getCommunityErrors = createSelector(\n getCommunityState,\n (communityState) => coerceIntoErrors(communityState.errors),\n);\n\nexport const getCommunity = createSelector(\n getCommunityState,\n (communityState) => communityState.community,\n);\n\nexport const getCommunityProfile = createSelector(getCommunity, (community) =>\n transformCommunity(community),\n);\n\nexport const getCommunityAccessCode = createSelector(\n getCommunity,\n (community) => community?.orgAccessCode,\n);\n\nexport const getCommunityUpdateState = createSelector(\n getCommunityState,\n (communityState) => communityState.update,\n);\n\nexport const isCommunityUpdateLoading = createSelector(\n getCommunityUpdateState,\n (update) => update.loading,\n);\n\nexport const getCommunityUpdateErrors = createSelector(\n getCommunityUpdateState,\n (update) => coerceIntoErrors(update.errors),\n);\n\nexport const getCommunityUpdateResult = createSelector(\n getCommunityUpdateState,\n (update) => update.result,\n);\n\nexport const getCommunityAssets = createSelector(\n getCommunity,\n (community) => community?.communityAssets,\n);\n\nexport const getPresentableCommunityAssets = createSelector(\n getCommunityAssets,\n (assets) =>\n assets?.reduce((result, asset) => {\n if (asset.assetFileType === 'image') {\n return [\n ...result,\n {\n title: asset.name,\n imageUrl: asset.image?.sizes?.[0]?.file?.url,\n assetUrl: asset.image?.sizes?.[0]?.file?.url,\n assetType: asset.assetFileType,\n },\n ];\n }\n\n const fileUrl = asset.file?.url;\n const fileType = (/[.]/.exec(fileUrl)\n ? /[^.]+$/.exec(fileUrl)[0]\n : 'other'\n ).toUpperCase();\n\n return [\n ...result,\n {\n title: asset.name,\n imageUrl: IMAGES[fileType] || IMAGES.OTHER,\n assetUrl: fileUrl,\n assetType: asset.assetFileType,\n description: asset.description,\n },\n ];\n }, []),\n);\nexport const getAccountPlan = createSelector(\n getCommunityState,\n (communityState) => communityState.accountPlan,\n);\n\nexport const isJoinRequestLoading = createSelector(\n getCommunityState,\n (communityState) => communityState.join?.loading,\n);\n\nexport const getJoinRequestErrors = createSelector(\n getCommunityState,\n (communityState) => coerceIntoErrors(communityState.join?.errors),\n);\n\nexport const isUnjoinRequestLoading = createSelector(\n getCommunityState,\n (communityState) => communityState.unjoin?.loading,\n);\n\nexport const getUnjoinRequestErrors = createSelector(\n getCommunityState,\n (communityState) => coerceIntoErrors(communityState.unjoin?.errors),\n);\n\nexport const getCommunityInviteLink = createSelector(\n getCommunityState,\n (communityState) => communityState.url,\n);\n\nexport const isCommunityInviteLinkLoading = createSelector(\n getCommunityState,\n (communityState) => communityState.inviteLink?.loading,\n);\n\nexport const getCommunityInviteLinkErrors = createSelector(\n getCommunityState,\n (communityState) => communityState.inviteLink?.errors,\n);\n\nexport const communitiesLoading = createSelector(\n getCommunityState,\n (state) => state.communities?.loading,\n);\n\nexport const getCommunitiesErrors = createSelector(getCommunityState, (state) =>\n coerceIntoErrors(state.communities?.errors),\n);\n\nexport const getCommunities = createSelector(\n getCommunityState,\n (state) =>\n state.communities.communities.map((community) =>\n transformCommunity(community),\n ) || [],\n);\n\nexport const getCommunitiesAdmin = createSelector(getCommunityState, (state) =>\n state.communities.communities.map((community) =>\n transformAdminCommunity(community),\n ),\n);\n\nexport const createCommunityLoading = createSelector(\n getCommunityState,\n (state) => state.create?.loading,\n);\n\nexport const createCommunityErrors = createSelector(\n getCommunityState,\n (state) => coerceIntoErrors(state.create?.errors),\n);\n\nexport const getSearchedCommunities = createSelector(\n getCommunityState,\n (communityState) => communityState.search?.response,\n);\n\nexport const isCommunitySearchLoading = createSelector(\n getCommunityState,\n (communityState) => communityState.search?.isLoading,\n);\n\nexport const getCommunityShareImage = createSelector(\n getCommunityState,\n (communityState) => communityState.shareImage?.url,\n);\n\nexport const isCommunityShareImageLoading = createSelector(\n getCommunityState,\n (communityState) => communityState.shareImage?.loading,\n);\n\nexport const getCommunityShareImageErrors = createSelector(\n getCommunityState,\n (communityState) => communityState.shareImage?.errors,\n);\n\nexport const getCommunityBulkJoinResponse = createSelector(\n getCommunityState,\n (communityState) => communityState.bulkJoin?.response,\n);\n\nexport const isCommunityBulkJoinLoading = createSelector(\n getCommunityState,\n (communityState) => communityState.bulkJoin?.loading,\n);\n\nexport const getCommunityBulkJoinErrors = createSelector(\n getCommunityState,\n (communityState) => communityState.bulkJoin?.errors,\n);\n","import React, { Fragment, useState, useEffect, useContext } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport {\n CssBaseline,\n Grid,\n isWidthDown,\n isWidthUp,\n withStyles,\n} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport withWidth from '@material-ui/core/withWidth';\nimport clsx from 'clsx';\nimport styles from './styles';\nimport { AbilityContext, Can } from '../../casl/ability-context';\nimport PageHeader from '../../common/PageHeader';\nimport LeftColumn from '../../common/LeftColumn';\nimport Footer from '../../common/Footer';\nimport MainHeader from '../../common/MainHeader';\nimport { accountPlanDataRequested } from '../../community/actions';\nimport { getAccountPlan } from '../../community/selectors';\nimport { isAuthenticated } from '../../auth/selectors';\nimport { setActiveCommunity } from '../../user/actions';\nimport { getActiveCommunityId, getUser } from '../../user/selectors';\nimport { useTranslation } from 'react-i18next';\nimport { handleCommunityIdQueryParam } from '../../utils';\nimport SnackBarAPIResponse from '../../common/SnackbarAlert/SnackBarAPIResponse';\nimport RequestLoader from '../../common/RequestLoader';\n\nconst MainScreen = ({\n classes,\n isAuth,\n accountPlanData,\n children,\n loading,\n width,\n user,\n communityId,\n changeCommunity,\n}) => {\n const { t } = useTranslation();\n const location = useLocation();\n const [snackbarError, setSnackbarError] = useState('');\n const ability = useContext(AbilityContext);\n const history = useHistory();\n\n const [showFooter, setShowFooter] = useState(true);\n const [open, setOpen] = useState(isWidthUp('md', width));\n\n const toggleHandler = () => {\n setOpen(!open);\n };\n\n useEffect(() => {\n ability.can('view', 'AdminScreens') &&\n handleCommunityIdQueryParam(\n user.communityPermissions,\n communityId,\n changeCommunity,\n setSnackbarError,\n t,\n history,\n );\n }, [\n ability,\n user,\n communityId,\n changeCommunity,\n setSnackbarError,\n t,\n history,\n location.pathname,\n ]);\n\n useEffect(() => {\n switch (location.pathname) {\n case '/settings':\n setShowFooter(false);\n break;\n default:\n setShowFooter(true);\n }\n }, [location]);\n\n return (\n \n \n \n \n \n {isWidthDown('xs', width) && open && (\n setOpen(false)}\n />\n )}\n \n \n \n
    \n \n
    \n
    \n
    {children}
    \n
    \n {showFooter && (\n \n
    \n \n )}\n \n setSnackbarError('')}\n />\n \n );\n};\n\nMainScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n isAuth: PropTypes.bool.isRequired,\n width: PropTypes.string.isRequired,\n accountPlanData: PropTypes.object.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n loading: PropTypes.bool,\n communityId: PropTypes.string.isRequired,\n user: PropTypes.object.isRequired,\n changeCommunity: PropTypes.func.isRequired,\n};\n\nMainScreen.defaultProps = {\n children: null,\n loading: false,\n};\n\nexport const StyledMainScreen = withWidth()(withStyles(styles)(MainScreen));\n\nconst mapStateToProps = (state) => ({\n isAuth: isAuthenticated(state),\n accountPlanData: getAccountPlan(state),\n communityId: getActiveCommunityId(state),\n user: getUser(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n fetchAccountPlan: (request) => dispatch(accountPlanDataRequested(request)),\n changeCommunity: (communityId) => dispatch(setActiveCommunity(communityId)),\n});\nexport default connect(mapStateToProps, mapDispatchToProps)(StyledMainScreen);\n","const styles = (theme) => ({\n container: {\n paddingTop: '9px',\n paddingLeft: '16px',\n paddingRight: '16px',\n },\n counterContainer: { paddingBottom: '30px' },\n pageNameContainer: {\n display: 'flex',\n alignItems: 'flex-end',\n },\n pageName: {\n lineHeight: 0.5,\n fontSize: '28px',\n fontWeight: 700,\n },\n header: {\n lineHeight: '1.1',\n fontWeight: 600,\n },\n title: {\n margin: '0px 0 10px',\n fontSize: '36px',\n\n [theme.breakpoints.up('sm')]: {\n fontSize: '64px',\n },\n },\n text: {\n marginBottom: '15px',\n fontSize: '21px',\n fontWeight: 200,\n },\n proTipsSection: {\n marginBottom: '30px',\n marginTop: '30px',\n marginLeft: '5%',\n marginRight: '5%',\n },\n photoSection: {\n marginTop: '20px',\n },\n photoSectionTitle: {\n fontWeight: '600',\n marginBottom: '20px',\n },\n placeholderTextContainer: {\n textAlign: 'center',\n },\n placeholderText: {\n fontWeight: 600,\n color: theme.custom.textLightSecondaryColor,\n },\n analyticsDatePickerContainer: {\n margin: '20px 0px',\n },\n graphContainer: {\n // padding: '30px',\n },\n emptyTextContainer: {\n textAlign: 'center',\n },\n emptyText: {\n fontWeight: 600,\n color: theme.custom.textLightSecondaryColor,\n },\n activeChallengeWrapper: {\n background: `${theme.palette.white.main} 0% 0% no-repeat padding-box`,\n boxShadow: '3px 5px 10px #00000026',\n border: '1px solid #DBDBDB',\n borderRadius: '5px',\n opacity: 1,\n margin: '0 0 20px 0',\n padding: '20px',\n width: '100%',\n },\n contentLoaderContainer: {\n width: '100%',\n height: 388,\n },\n visualItemIcon: {\n width: '20px',\n marginTop: '-2px',\n },\n});\n\nexport default styles;\n","const styles = (theme) => ({\n container: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n border: `solid 3px ${theme.palette.primary.main}`,\n borderRadius: '4px',\n padding: '10px 50px 10px 50px',\n [theme.breakpoints.down('md')]: {\n padding: '20px',\n },\n },\n logoSection: {\n margin: 'auto',\n [theme.breakpoints.down('sm')]: {\n marginRight: 'auto',\n marginLeft: 'inherit',\n },\n },\n logo: {\n width: '40px',\n height: 'auto',\n },\n tipTitleSection: {\n display: 'flex',\n alignItems: 'center',\n marginRight: '10px',\n minWidth: '59px',\n },\n tipTitle: {\n fontWeight: '700',\n },\n tipContent: {\n display: 'flex',\n alignItems: 'center',\n [theme.breakpoints.down('md')]: {\n display: 'block',\n },\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { withStyles, Grid, Typography } from '@material-ui/core';\nimport styles from './styles';\nimport IMAGES from '../../constants/images';\n\nconst ProTips = ({ tip, classes }) => {\n const { t } = useTranslation();\n\n return (\n \n \n
    \n \n
    \n
    \n\n \n
    \n
    \n \n {t('proTips.title')}\n \n
    \n
    \n \n {tip}\n \n
    \n
    \n \n \n );\n};\n\nProTips.propTypes = {\n tip: PropTypes.string.isRequired,\n classes: PropTypes.object.isRequired,\n};\n\nPropTypes.defaultProps = {\n tip: '',\n};\n\nexport default withStyles(styles)(ProTips);\n","const styles = (theme) => ({\n root: {\n width: '100%',\n borderRadius: '8px',\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n backgroundColor: theme.custom.inputBackground,\n '&:before, &:after': {\n display: 'none',\n },\n\n '&:active:not(.Mui-disabled)': {\n backgroundColor: theme.palette.common.white,\n },\n\n '&.Mui-focused': {\n borderColor: theme.palette.primary.dark,\n\n '& .MuiOutlinedInput-notchedOutline': {\n // border: `1px solid ${theme.palette.primary.main}`,\n borderRight: 'none',\n borderRadius: '6px 0px 0px 6px',\n },\n },\n\n '& .MuiOutlinedInput-notchedOutline': {\n border: 'none',\n top: '0px',\n },\n\n '&:hover': {\n backgroundColor: theme.custom.bgLightColor,\n\n '& .MuiOutlinedInput-notchedOutline': {\n borderColor: 'transparent',\n },\n },\n },\n input: {\n width: '100%',\n padding: '14px 12px',\n border: '1px solid',\n borderColor: theme.palette.primary.main,\n borderRadius: '6px 0px 0px 6px',\n borderRight: 'none',\n },\n clearButton: {\n borderRadius: 0,\n maxHeight: 49,\n borderTopRightRadius: '6px',\n borderBottomRightRadius: '6px',\n border: '1px solid',\n borderColor: theme.palette.primary.main,\n backgroundColor: theme.custom.inputBackground,\n color: theme.palette.primary.dark,\n borderLeft: 'none',\n '&:hover': {\n backgroundColor: theme.custom.grey88,\n },\n },\n clearButtonWithError: {\n maxHeight: 49,\n },\n bottomMargin: {\n marginBottom: 16,\n },\n});\n\nexport default styles;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, withStyles } from '@material-ui/core';\nimport {\n DatePicker as DatePickerUI,\n MuiPickersUtilsProvider,\n} from '@material-ui/pickers';\nimport MomentUtils from '@date-io/moment';\nimport { Event } from '@material-ui/icons';\nimport omit from 'lodash/omit';\nimport Button from '../Button';\nimport styles from './styles';\n\nconst DatePicker = (props) => {\n const [open, setOpen] = useState(false);\n const onClose = () => setOpen(false);\n const openHandler = () => props.disabled || setOpen(true);\n const {\n classes,\n value,\n format,\n onChange,\n rightBtnType,\n as,\n isBottomMargin,\n ...datePickerProps\n } = props;\n\n const pickerUI = React.createElement(as, {\n classes: null,\n open,\n value,\n format,\n onChange,\n onClose,\n autoOk: true,\n variant: 'inline',\n inputVariant: 'outlined',\n InputProps: {\n classes: omit(classes, ['clearButton', 'bottomMargin']),\n onClick: openHandler,\n },\n style: { width: '100%' },\n ...datePickerProps,\n });\n\n return (\n \n \n {pickerUI}\n \n \n \n \n \n );\n};\n\nDatePicker.propTypes = {\n classes: PropTypes.object.isRequired,\n value: PropTypes.string,\n format: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n rightBtnType: PropTypes.string,\n disabled: PropTypes.bool,\n as: PropTypes.elementType,\n isBottomMargin: PropTypes.bool,\n};\n\nDatePicker.defaultProps = {\n value: null,\n format: 'MM.DD.YYYY',\n rightBtnType: 'accent',\n disabled: false,\n as: DatePickerUI,\n isBottomMargin: false,\n};\n\nexport default withStyles(styles)(DatePicker);\n","import React, { useCallback, useState } from 'react';\nimport { Grid, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { withStyles } from '@material-ui/styles';\nimport DatePicker from '../DatePicker';\nimport styles from './styles';\nimport moment from 'moment';\nimport { getTimezoneAbbrev } from '../../utils/dates';\n\nconst DatePickerRange = ({ handleDateChange, classes, startDate, endDate }) => {\n const [filterError, setFilterError] = useState();\n\n const { t, i18n } = useTranslation();\n\n const handleActions = useCallback(\n (newStartDate, newEndDate) => {\n setFilterError('');\n if (\n newStartDate.toDate().getTime() >= newEndDate.toDate().getTime()\n ) {\n setFilterError(t('datePickers.endAfterStart'));\n } else {\n handleDateChange({\n startDate: newStartDate,\n endDate: newEndDate,\n });\n }\n },\n [handleDateChange, t],\n );\n\n const onStartDateChange = (value) => {\n handleActions(value, endDate);\n };\n\n const onEndDateChange = (value) => {\n handleActions(startDate, value);\n };\n\n return (\n \n \n \n {t('from')}\n \n \n \n {t('to')}\n \n \n \n \n {`(${getTimezoneAbbrev(i18n.language)})`}\n \n \n \n\n {filterError && (\n
    \n {filterError}\n
    \n )}\n \n );\n};\n\nDatePickerRange.propTypes = {\n handleDateChange: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n startDate: PropTypes.instanceOf(moment),\n endDate: PropTypes.instanceOf(moment),\n};\n\nDatePickerRange.defaultProps = {\n endDate: moment(),\n startDate: moment().subtract(1, 'months'),\n};\n\nexport default withStyles(styles)(DatePickerRange);\n","export default (theme) => ({\n filterLabel: {\n color: theme.palette.primary.main,\n fontWeight: 600,\n padding: '0 10px',\n fontSize: '13px',\n },\n\n filterField: {\n width: '200px',\n },\n errors: {\n color: theme.palette.error.main,\n width: '100%',\n lineHeight: '14px',\n fontSize: '14px',\n padding: '15px 0',\n textAlign: 'right',\n },\n timezone: {\n fontSize: '13.5px',\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n timezoneContainer: {\n alignSelf: 'center',\n marginLeft: 8,\n },\n});\n","import IMAGES from '../../constants/images';\nconst styles = (theme) => ({\n navLink: {\n color: theme.palette.primary.main,\n },\n title: {\n lineHeight: 1.1,\n fontWeight: 600,\n color: theme.custom.textDarkSecondaryColor,\n },\n container: {\n fontFamily: `'effra',sans-serif`,\n },\n header: {\n paddingBottom: '20px',\n },\n activeChallengeCover: {\n height: '351px',\n borderRadius: '5px',\n // opacity: '0.66',\n backgroundImage: `linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url(${IMAGES.defaultActiveChallengeBg})`,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n backgroundPosition: '50% 50%',\n },\n activeChallengeCoverHeader: {\n padding: '10px',\n flexWrap: 'nowrap',\n height: '100%',\n width: '100%',\n },\n editCover: {\n borderColor: theme.palette.primary.main,\n borderStyle: 'solid',\n border: '2px',\n fontWeight: 600,\n backgroundColor: theme.palette.white.main,\n '&:hover': {\n color: theme.palette.primary.dark,\n borderColor: theme.palette.primary.dark,\n backgroundColor: theme.palette.white.main,\n },\n },\n buttonIcon: {\n marginRight: '5px',\n },\n activeChallengeCoverBodyRow: {\n height: '100%',\n },\n activeChallengeCoverBodyHeader: {\n height: '50px',\n },\n activeChallengeCoverBodyRowFooter: {\n display: 'flex',\n flexWrap: 'nowrap',\n flexDirection: 'row',\n alignContent: 'stretch',\n justifyContent: 'flex-start',\n height: '100px',\n alignItems: 'flex-end',\n padding: '10px',\n },\n activeChallengeCoverBodyRowMiddle: {\n display: 'flex',\n flexWrap: 'nowrap',\n flexDirection: 'row',\n alignContent: 'stretch',\n justifyContent: 'flex-start',\n height: '250px',\n alignItems: 'flex-end',\n padding: '10px',\n },\n challengeMeta: {\n width: '100%',\n },\n challengePeopleMeta: {\n width: '200px',\n padding: '15px',\n },\n challengeTitleWrapper: {\n padding: '0 10px',\n },\n challengeTitle: {\n fontSize: '24px',\n lineHeight: 1.1,\n fontWeight: 600,\n color: theme.palette.white.main,\n },\n challengeDates: {\n color: theme.palette.white.main,\n padding: '10px 10px 0px 10px',\n },\n peopleIcon: {\n width: '45px',\n height: '45px',\n '& svg': {\n fill: theme.palette.white.main,\n fontSize: '30px',\n },\n },\n challengeText: {\n color: theme.palette.white.main,\n },\n activityItemsWrapper: {\n backgroundColor: theme.custom.grey93,\n padding: '15px',\n },\n focusVisible: {},\n imageBackdrop: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n backgroundColor: theme.palette.common.black,\n opacity: 0.4,\n transition: theme.transitions.create('opacity'),\n },\n activityItem: {\n position: 'relative',\n height: '74px',\n width: '74px',\n border: `1px solid ${theme.palette.white.main}`,\n marginLeft: '5px',\n [theme.breakpoints.down('xs')]: {\n width: '100% !important', // Overrides inline-style\n height: 100,\n },\n '&:hover, &$focusVisible': {\n zIndex: 1,\n '& $imageBackdrop': {\n opacity: 0.15,\n },\n },\n },\n activityItemSeeAll: {\n height: '74px',\n width: '113px',\n marginLeft: '5px',\n lineHeight: '74px',\n textAlign: 'center',\n color: theme.palette.primary.main,\n border: `2px solid ${theme.palette.primary.main}`,\n },\n imageSrc: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n backgroundSize: 'cover',\n backgroundPosition: 'center 40%',\n },\n image: {\n position: 'relative',\n height: 200,\n },\n});\n\nexport default styles;\n","import PropTypes from 'prop-types';\n\nexport const IconComponentPropType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.elementType,\n]);\n\nexport const ButtonsCellPropType = PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.string.isRequired,\n actions: PropTypes.string.isRequired,\n subject: PropTypes.string.isRequired,\n tooltip: PropTypes.string.isRequired,\n icon: IconComponentPropType.component,\n }),\n);\n","import IMAGES from '../../../constants/images';\n\nconst styles = (theme) => ({\n navLink: {\n color: theme.palette.primary.main,\n },\n title: {\n fontSize: '24px',\n lineHeight: 1.1,\n fontWeight: 600,\n color: theme.custom.textDarkSecondaryColor,\n },\n container: {\n fontFamily: `'effra',sans-serif`,\n },\n header: {\n paddingBottom: '20px',\n },\n activeChallengeCover: {\n height: '351px',\n borderRadius: '5px',\n // opacity: '0.66',\n backgroundImage: `linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url(${IMAGES.defaultActiveChallengeBg})`,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n backgroundPosition: '50% 50%',\n position: 'relative',\n },\n activeChallengeCoverHeader: {\n padding: '10px',\n flexWrap: 'nowrap',\n height: '100%',\n width: '100%',\n },\n editCover: {\n borderColor: theme.palette.primary.main,\n borderStyle: 'solid',\n border: '2px',\n fontWeight: 600,\n backgroundColor: theme.palette.white.main,\n '&:hover': {\n color: theme.palette.primary.dark,\n borderColor: theme.palette.primary.dark,\n backgroundColor: theme.palette.white.main,\n },\n },\n buttonIcon: {\n marginRight: '5px',\n },\n activeChallengeCoverBodyRow: {\n height: '100%',\n },\n activeChallengeCoverBodyHeader: {\n height: '50px',\n },\n activeChallengeCoverBodyRowFooter: {\n display: 'flex',\n flexWrap: 'nowrap',\n flexDirection: 'row',\n alignContent: 'stretch',\n justifyContent: 'flex-start',\n height: '100px',\n alignItems: 'flex-end',\n padding: '10px',\n },\n activeChallengeCoverBodyRowMiddle: {\n display: 'flex',\n flexWrap: 'nowrap',\n flexDirection: 'row',\n alignContent: 'stretch',\n justifyContent: 'flex-start',\n height: '250px',\n alignItems: 'flex-end',\n padding: '10px',\n },\n challengeMeta: {\n width: '100%',\n },\n challengePeopleMeta: {\n width: '200px',\n padding: '15px',\n },\n challengeTitleWrapper: {\n padding: '0 10px',\n },\n challengeTitle: {\n fontSize: '24px',\n lineHeight: 1.1,\n fontWeight: 600,\n color: theme.palette.white.main,\n },\n challengeDates: {\n color: theme.palette.white.main,\n padding: '10px 10px 0px 10px',\n },\n peopleIcon: {\n width: '45px',\n height: '45px',\n '& svg': {\n fill: theme.palette.white.main,\n fontSize: '30px',\n },\n },\n challengeText: {\n color: theme.palette.white.main,\n },\n loadingIndicator: {\n position: 'absolute',\n top: '50%',\n width: '100%',\n textAlign: 'center',\n color: theme.palette.white.main,\n },\n});\n\nexport default styles;\n","const styles = (theme) => ({\n mainWrapper: {\n position: 'relative',\n backgroundColor: 'red',\n },\n shareButton: {\n borderColor: theme.palette.primary.main,\n borderStyle: 'solid',\n border: '2px',\n fontWeight: 600,\n backgroundColor: theme.palette.white.main,\n '&:hover': {\n color: theme.palette.primary.dark,\n borderColor: theme.palette.primary.dark,\n backgroundColor: theme.palette.white.main,\n },\n zIndex: 200,\n position: 'absolute',\n right: '15px',\n top: '15px',\n },\n shareButtonIcon: {\n marginRight: '5px',\n },\n shareChallengeWrapper: {\n borderRadius: '3px',\n fontFamily: `'effra',sans-serif`,\n zIndex: 100,\n minHeight: '200px',\n background: `${theme.palette.white.main} 0% 0% no-repeat padding-box`,\n boxShadow: '3px 5px 10px #000000',\n border: '1px solid #DBDBDB',\n position: 'absolute',\n top: '0px',\n right: 0,\n width: '300px',\n transition: '0.5s',\n },\n shareChallengeInner: {\n minHeight: '200px',\n padding: '70px 15px 15px 15px',\n fontFamily: 'inherit',\n zIndex: 99,\n },\n hide: {\n visibility: 'hidden',\n },\n textMutedLink: {\n textDecoration: 'underline',\n color: theme.custom.textDarkDisabledColor,\n lineHeight: '40px',\n },\n shareActionContainer: {\n position: 'relative',\n },\n title: {\n fontSize: '24px',\n lineHeight: 1.1,\n fontWeight: 600,\n color: theme.custom.textDarkSecondaryColor,\n },\n shareOptionIcon: {\n height: '24px',\n width: '24px',\n lineHeight: '24px',\n margin: '5px 10px 5px 0',\n color: theme.palette.primary.main,\n },\n shareOption: {\n padding: '5px 0',\n borderTop: '1px',\n borderTopStyle: 'solid',\n borderTopColor: theme.custom.bgAccentColor,\n },\n});\n\nexport default styles;\n","import React, { useState } from 'react';\nimport Button from '../../Button';\nimport ShareIcon from '@material-ui/icons/Share';\nimport LinkIcon from '@material-ui/icons/Link';\nimport { withStyles, Grid, Typography, Link } from '@material-ui/core';\nimport styles from './styles';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport copy from 'copy-to-clipboard';\n\nconst ShareChallenge = ({\n classes,\n url,\n sharingOptions,\n onSocialLinkClicked,\n}) => {\n const [toggle, setToggle] = useState(false);\n const { t } = useTranslation();\n\n const onMouseOver = () => {\n setToggle(true);\n };\n\n const onCopy = () => {\n copy(url);\n setToggle(false);\n };\n\n return (\n
    \n \n \n \n {t('activeChallenges.share')}\n \n \n {toggle && (\n \n \n \n {t('activeChallenges.shareAndInviteOther')}\n \n\n {url && (\n \n {url}\n
    \n )}\n\n {url && (\n \n \n \n {t('activeChallenges.copyLinkToClipboard')}\n \n \n )}\n\n {sharingOptions &&\n sharingOptions.map((option) => (\n \n
    \n \n
    \n \n onSocialLinkClicked(option)\n }\n >\n {option.url}\n \n \n ))}\n \n \n )}\n
    \n );\n};\n\nexport const SharingOptions = PropTypes.shape({\n type: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n iconUrl: PropTypes.string.isRequired,\n});\n\nShareChallenge.propTypes = {\n classes: PropTypes.object.isRequired,\n url: PropTypes.string.isRequired,\n sharingOptions: PropTypes.arrayOf(SharingOptions).isRequired,\n onSocialLinkClicked: PropTypes.func.isRequired,\n};\n\nShareChallenge.defaultProps = {\n url: '',\n};\n\nexport default withStyles(styles)(ShareChallenge);\n","import { makeStyles } from '@material-ui/styles';\n\nexport default makeStyles((theme) => ({\n icon: ({ iconUrl }) => ({\n minWidth: '128px',\n width: '128px',\n height: '128px',\n backgroundImage: `url(${iconUrl})`,\n backgroundSize: 'cover',\n position: 'relative',\n }),\n btnEditIcon: {\n position: 'absolute',\n right: 0,\n bottom: 0,\n padding: '8px',\n },\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid } from '@material-ui/core';\nimport { Edit } from '@material-ui/icons';\n\nimport useStyles from './styles';\n\nimport Button from '../Button';\n\nconst defaultIconStyle = {\n border: '2px solid #fff',\n borderRadius: '6px 6px 50% 50%',\n};\n\nconst ChallengeIcon = ({ iconUrl, iconStyle, canEdit, onChangeIcon }) => {\n const classes = useStyles({ iconUrl });\n\n return (\n \n {!!canEdit && (\n \n )}\n \n );\n};\n\nChallengeIcon.propTypes = {\n iconUrl: PropTypes.string.isRequired,\n iconStyle: PropTypes.object,\n canEdit: PropTypes.bool.isRequired,\n onChangeIcon: PropTypes.func.isRequired,\n};\n\nChallengeIcon.defaultProps = {\n iconStyle: defaultIconStyle,\n};\n\nexport default ChallengeIcon;\n","import React from 'react';\nimport { Grid, IconButton } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport Tooltip from '../../Tooltip';\nimport { useTranslation } from 'react-i18next';\nimport { withStyles } from '@material-ui/styles';\nimport styles from './styles';\nimport { ButtonsCellPropType } from '../propTypes';\n\nconst QuickActions = ({ classes, id, buttonsCell, onButtonsCell }) => {\n const { t } = useTranslation();\n return (\n \n {buttonsCell.map(({ key, tooltip, icon: Icon }) => (\n
    \n \n onButtonsCell(id, key)}\n >\n \n \n \n
    \n ))}\n
    \n );\n};\n\nQuickActions.propTypes = {\n id: PropTypes.string.isRequired,\n buttonsCell: ButtonsCellPropType.isRequired,\n onButtonsCell: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles)(QuickActions);\n","export default (theme) => ({\n iconLink: {\n color: theme.palette.white.main,\n },\n icon: {\n fontSize: 35,\n },\n});\n","const styles = (theme) => ({\n challengeTitle: {\n fontSize: '24px',\n lineHeight: 1.1,\n fontWeight: 600,\n color: theme.palette.white.main,\n },\n\n peopleIcon: {\n width: '45px',\n height: '45px',\n '& svg': {\n fill: theme.palette.white.main,\n fontSize: '30px',\n },\n },\n challengeText: {\n color: theme.palette.white.main,\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport styles from './styles';\n\nconst ChallengeStats = ({\n classes,\n icon: Icon,\n placeholder,\n stat,\n color,\n flexJustify,\n}) => {\n return (\n \n
    \n \n
    \n
    \n \n {stat}\n \n \n {placeholder}\n \n
    \n
    \n );\n};\n\nChallengeStats.propTypes = {\n icon: PropTypes.elementType.isRequired,\n classes: PropTypes.object.isRequired,\n placeholder: PropTypes.string.isRequired,\n stat: PropTypes.string.isRequired,\n color: PropTypes.string.isRequired,\n flexJustify: PropTypes.string,\n};\n\nChallengeStats.defaultProps = {\n flexJustify: 'flex-start',\n};\nexport default withStyles(styles)(ChallengeStats);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport styles from './styles';\nimport ShareChallenge from '../ShareChallenge';\nimport IMAGES from '../../../constants/images';\nimport ChallengeIcon from '../../ChallengeIcon';\nimport QuickActions from '../QuickActions';\nimport { noop } from '../../../utils';\nimport { ButtonsCellPropType } from '../propTypes';\nimport PersonIcon from '@material-ui/icons/Person';\nimport ChallengeStats from '../ChallengeStats';\nimport theme from '../../../theme';\nimport { useTranslation } from 'react-i18next';\nimport { createChallengeEndString, createChallengeStartString } from './utils';\n\nconst circleIconStyle = {\n border: `2px solid ${theme.palette.white.main}`,\n borderRadius: '50%',\n backgroundColor: theme.palette.white.main,\n width: '96px',\n height: '96px',\n minWidth: '96px',\n};\n\nconst ActiveCard = ({\n sharingOptions,\n name,\n startDate,\n endDate,\n id,\n classes,\n onButtonsCell,\n buttonsCell,\n memberCount,\n imageUrl,\n iconUrl,\n onSocialLinkClicked,\n isLoading,\n}) => {\n const { t } = useTranslation();\n\n const now = new Date();\n\n return (\n \n \n {isLoading && (\n
    \n {t('activeChallenges.loading')}\n
    \n )}\n {!isLoading && (\n \n
    \n \n {sharingOptions?.length > 0 && (\n
    \n {\n onSocialLinkClicked(option);\n }}\n sharingOptions={sharingOptions}\n url={`http://joulebug.com/share/links/${id}`}\n />\n
    \n )}\n \n
    \n
    \n
    \n \n \n alert(\n 'This should not have happened',\n )\n }\n />\n
    \n \n \n \n {name}\n \n
    \n {startDate && endDate && (\n \n {now.getTime() >\n startDate.getTime()\n ? createChallengeEndString(\n endDate,\n t,\n )\n : createChallengeStartString(\n startDate,\n t,\n )}\n
    \n )}\n \n
    \n \n \n \n \n \n \n \n \n \n
    \n )}\n \n \n );\n};\n\nexport const SharingOptions = PropTypes.shape({\n type: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n});\n\nActiveCard.propTypes = {\n sharingOptions: PropTypes.arrayOf(SharingOptions).isRequired,\n name: PropTypes.string.isRequired,\n startDate: PropTypes.instanceOf(Date).isRequired,\n endDate: PropTypes.instanceOf(Date).isRequired,\n id: PropTypes.string.isRequired,\n imageUrl: PropTypes.string.isRequired,\n memberCount: PropTypes.number,\n classes: PropTypes.object.isRequired,\n onButtonsCell: PropTypes.func,\n buttonsCell: ButtonsCellPropType,\n onSocialLinkClicked: PropTypes.func,\n isLoading: PropTypes.bool,\n iconUrl: PropTypes.string.isRequired,\n};\n\nActiveCard.defaultProps = {\n onButtonsCell: noop,\n onSocialLinkClicked: noop,\n buttonsCell: null,\n memberCount: 0,\n isLoading: false,\n};\n\nexport default withStyles(styles)(ActiveCard);\n","import moment from 'moment';\nimport { TIME_FORMAT, DATE_FORMAT } from './constants';\n\nexport const createChallengeStartString = (startDate, t) => {\n return `${t('activeChallenges.challengeStartAt')} ${moment(\n startDate,\n ).format(TIME_FORMAT)} ${t('activeChallenges.on')} ${moment(\n startDate,\n ).format(DATE_FORMAT)}`;\n};\nexport const createChallengeEndString = (endDate, t) => {\n return `${t('activeChallenges.challengeEndsAt')} ${moment(endDate).format(\n TIME_FORMAT,\n )} ${t('activeChallenges.on')} ${moment(endDate).format(DATE_FORMAT)}`;\n};\n","export const DATE_FORMAT = 'MM/DD/YYYY';\nexport const TIME_FORMAT = 'h:mma';\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport styles from './styles';\nimport { NavLink } from 'react-router-dom';\nimport { noop } from '../../utils';\nimport { ButtonsCellPropType } from './propTypes';\nimport ActiveCard from './ActiveCard';\nimport { useTranslation } from 'react-i18next';\nimport Alert from '@material-ui/lab/Alert';\nimport moment from 'moment';\n\nconst ActiveChallenges = ({\n activityItem,\n activityTitle,\n classes,\n onButtonsCell,\n buttonsCell,\n sharingOptions,\n isLoading,\n defaultCoverImageUrl,\n}) => {\n const { t } = useTranslation();\n const onSocialLinkClicked = (data) => {\n // trigger when click on social link\n alert('onSocialLinkClicked: ' + JSON.stringify(data));\n };\n\n return (\n
    \n \n \n {activityTitle}\n \n \n {t('activeChallenges.seeAllChallenges')}\n \n \n \n {activityItem && activityItem.name && (\n \n )}\n \n {activityItem && !isLoading && !activityItem.name && (\n \n {t('activeChallenges.activeChallengesNotAvailable')}\n \n )}\n
    \n );\n};\n\nexport const SharingOptions = PropTypes.shape({\n type: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n});\n\nexport const ActivityItem = PropTypes.shape({\n name: PropTypes.string.isRequired,\n startDate: PropTypes.instanceOf(Date),\n endDate: PropTypes.instanceOf(Date),\n id: PropTypes.string.isRequired,\n members: PropTypes.string.isRequired,\n imageUrl: PropTypes.string.isRequired,\n iconUrl: PropTypes.string.isRequired,\n icon: PropTypes.array.isRequired,\n defaultCoverImageUrl: PropTypes.string,\n});\n\nActiveChallenges.propTypes = {\n activityItem: ActivityItem,\n activityTitle: PropTypes.string,\n classes: PropTypes.object.isRequired,\n onButtonsCell: PropTypes.func,\n buttonsCell: ButtonsCellPropType,\n sharingOptions: PropTypes.arrayOf(SharingOptions),\n isLoading: PropTypes.bool,\n defaultCoverImageUrl: PropTypes.string,\n};\n\nActiveChallenges.defaultProps = {\n activityItem: {},\n activityTitle: '',\n onButtonsCell: noop,\n onSocialLinkClicked: noop,\n buttonsCell: null,\n sharingOptions: [],\n isLoading: false,\n defaultCoverImageUrl: null,\n};\n\nexport default withStyles(styles)(ActiveChallenges);\n","const styles = (theme) => ({\n container: {\n background: `${theme.palette.primary.main} linear-gradient(rgba(0, 0, 0, 0.2) 50%, rgba(0, 0, 0, 0.7)) 50%`,\n borderRadius: '5px',\n },\n header: {\n paddingTop: '100px',\n paddingBottom: '50px',\n },\n logoSection: {\n padding: '0 30px',\n },\n logoContainer: {\n borderRadius: '50%',\n },\n logo: {\n width: '75px',\n height: '75px',\n objectFit: 'cover',\n borderRadius: '50%',\n },\n title: {\n fontWeight: 600,\n color: '#fff',\n padding: '5px 30px',\n },\n body: {\n color: '#fff',\n padding: '35px 30px',\n },\n createBtn: {\n padding: '10px 30px',\n marginLeft: '30px',\n textTransform: 'none',\n },\n textSection: {\n maxWidth: '350px',\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { withStyles, Grid, Typography } from '@material-ui/core';\n\nimport Button from '../../Button';\nimport { getAppImages } from '../../../utils';\nimport styles from './styles';\n\nconst CreateSection = ({ classes, communityImage, isOrg }) => {\n const { t } = useTranslation();\n const history = useHistory();\n\n const handleRedirect = () => {\n history.push('/challenges/create');\n };\n\n const entityType = isOrg ? 'organization' : 'community';\n\n return (\n
    \n \n \n
    \n \n
    \n
    \n \n \n {t('challenge.new.title')}\n \n \n {t('challenge.new.body', { entityType })}\n \n \n {t('challenge.new.create')}\n \n \n
    \n
    \n );\n};\n\nCreateSection.propTypes = {\n classes: PropTypes.object.isRequired,\n communityImage: PropTypes.string,\n isOrg: PropTypes.bool,\n};\n\nCreateSection.defaultProps = {\n communityImage: null,\n isOrg: false,\n};\n\nexport default withStyles(styles)(CreateSection);\n","const styles = (theme) => ({\n title: {\n lineHeight: 1.1,\n fontWeight: 600,\n color: theme.custom.textDarkSecondaryColor,\n },\n header: {\n paddingBottom: '20px',\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { withStyles, Grid, Typography } from '@material-ui/core';\n\nimport CreateSection from './CreateSection';\n\nimport styles from './styles';\n\nconst CreateChallengeBanner = ({ classes, communityImage, isOrg }) => {\n const { t } = useTranslation();\n\n return (\n
    \n \n \n {t('challenge.new.getStarted')}\n \n \n \n \n \n
    \n );\n};\n\nCreateChallengeBanner.propTypes = {\n classes: PropTypes.object.isRequired,\n communityImage: PropTypes.string,\n isOrg: PropTypes.bool,\n};\n\nCreateChallengeBanner.defaultProps = {\n communityImage: null,\n isOrg: false,\n};\n\nexport default withStyles(styles)(CreateChallengeBanner);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Dialog } from '@material-ui/core';\n\nconst Modal = ({ isOpen, onClose, children, ...props }) => {\n return (\n \n {children}\n \n );\n};\n\nModal.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]).isRequired,\n};\n\nexport default Modal;\n","const styles = (theme) => ({\n scrollPaper: {\n alignItems: 'flex-start',\n },\n modal: {\n border: '1px solid rgba(0,0,0,.2)',\n borderRadius: '8px',\n backgroundColor: theme.custom.bgLightAccentColor,\n boxShadow: '0 5px 15px rgba(0,0,0,.5)',\n\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n },\n title: {\n padding: '15px',\n fontSize: '18px',\n backgroundColor: theme.custom.bgLightColor,\n },\n container: {\n width: '100%',\n padding: '20px',\n },\n footer: {\n marginTop: '15px',\n padding: '19px 20px 20px',\n },\n button: {\n marginLeft: '5px',\n },\n closeIcon: {\n opacity: 0.2,\n\n '&:hover': {\n opacity: 0.5,\n cursor: 'pointer',\n },\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, withStyles, CircularProgress, Fade } from '@material-ui/core';\nimport { Close } from '@material-ui/icons';\n\nimport Modal from '../Modal';\nimport Button from '../Button';\nimport styles from './styles';\nimport clsx from 'clsx';\n\nconst ConfirmModal = ({\n title,\n titleStyle,\n modalStyle,\n children,\n isOpen,\n classes,\n confirmBtnLoading,\n confirmBtnText,\n confirmBtnType,\n confirmBtnColor,\n confirmBtnTextColor,\n confirmBtnDisabled,\n confirmBtnHidden,\n cancelBtnText,\n cancelBtnType,\n cancelBtnColor,\n cancelBtnTextColor,\n cancelBtnDisabled,\n cancelBtnHidden,\n centeredButtons,\n onClose,\n onCancel,\n onConfirm,\n ...modalProps\n}) => {\n return (\n \n \n \n \n {title}\n \n \n \n \n \n \n {children}\n \n {(!cancelBtnHidden || !confirmBtnHidden) && (\n \n \n \n \n {!cancelBtnHidden && (\n \n {cancelBtnText}\n \n )}\n {!confirmBtnHidden && (\n \n {confirmBtnText}\n \n )}\n \n )}\n \n \n );\n};\n\nConfirmModal.propTypes = {\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,\n titleStyle: PropTypes.object,\n modalStyle: PropTypes.object,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n classes: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n confirmBtnLoading: PropTypes.bool,\n confirmBtnText: PropTypes.string,\n confirmBtnType: PropTypes.string,\n confirmBtnColor: PropTypes.string,\n confirmBtnTextColor: PropTypes.string,\n confirmBtnDisabled: PropTypes.bool,\n confirmBtnHidden: PropTypes.bool,\n cancelBtnText: PropTypes.string,\n cancelBtnType: PropTypes.string,\n cancelBtnColor: PropTypes.string,\n cancelBtnTextColor: PropTypes.string,\n cancelBtnDisabled: PropTypes.bool,\n cancelBtnHidden: PropTypes.bool,\n centeredButtons: PropTypes.bool,\n onClose: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n onConfirm: PropTypes.func.isRequired,\n};\n\nConfirmModal.defaultProps = {\n children: null,\n confirmBtnLoading: false,\n confirmBtnText: 'confirm',\n confirmBtnType: 'default',\n confirmBtnColor: null,\n confirmBtnTextColor: null,\n confirmBtnDisabled: false,\n confirmBtnHidden: false,\n cancelBtnText: 'cancel',\n cancelBtnType: 'default',\n cancelBtnColor: null,\n cancelBtnTextColor: null,\n cancelBtnDisabled: false,\n cancelBtnHidden: false,\n centeredButtons: false,\n titleStyle: {},\n modalStyle: {},\n};\n\nexport default withStyles(styles)(ConfirmModal);\n","const styles = (theme) => ({\n confirmMessage: {\n paddingBottom: '10px',\n },\n identifier: {\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n description: {\n marginTop: '10px',\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { withStyles, Grid } from '@material-ui/core';\n\nimport styles from './styles';\n\nconst Activate = ({ classes, description, isActivate, items, headerKey }) => {\n const { t } = useTranslation();\n const verb = isActivate ? t('activate') : t('deactivate');\n\n return (\n \n \n \n Are you sure you want to\n {{ verb }} \n this item?\n \n \n {items.map(({ name, iconUrl, identifier }, index) => (\n \n \n \n \"\"\n \n {name}\n \n \n {identifier}\n \n \n ))}\n {description}\n \n );\n};\n\nActivate.propTypes = {\n classes: PropTypes.object.isRequired,\n isActivate: PropTypes.bool.isRequired,\n\n // Should be a translation key\n headerKey: PropTypes.string.isRequired,\n items: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n iconUrl: PropTypes.string.isRequired,\n identifier: PropTypes.string.isRequired,\n }).isRequired,\n ).isRequired,\n description: PropTypes.string.isRequired,\n};\n\nexport default withStyles(styles)(Activate);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport ConfirmModal from '../ConfirmModal';\nimport Activate from './Activate';\n\nconst ActivateModal = ({\n isOpen,\n isActivate,\n items,\n headerKey,\n description,\n onClose,\n onCancel,\n onConfirm,\n ...props\n}) => {\n const { t } = useTranslation();\n const action = isActivate ? t('activate') : t('deactivate');\n\n return (\n \n \n \n );\n};\n\nActivateModal.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n isActivate: PropTypes.bool,\n items: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n iconUrl: PropTypes.string.isRequired,\n identifier: PropTypes.string.isRequired,\n }).isRequired,\n ).isRequired,\n description: PropTypes.string.isRequired,\n // Should be a translation key\n headerKey: PropTypes.string.isRequired,\n onClose: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n onConfirm: PropTypes.func.isRequired,\n};\n\nActivateModal.defaultProps = {\n isActivate: false,\n};\n\nexport default ActivateModal;\n","import PropTypes from 'prop-types';\n\n/**\n * A component class, function, or string (e.g. html element).\n *\n * @type {*}\n */\nexport const component = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.elementType,\n]);\n\n/**\n * A single error or an array of errors. Can be passed to an ErrorList.\n *\n * @type {*}\n */\nexport const errors = PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({ message: PropTypes.string.isRequired }),\n ]),\n ),\n PropTypes.string,\n PropTypes.shape({ message: PropTypes.string.isRequired }),\n]);\n\nconst CommonPropTypes = {\n component,\n errors,\n};\n\nexport default CommonPropTypes;\n\nexport const stringOrNumber = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n]);\n","import {\n ACTIVATE_ACTION,\n BTN_ACTIVATE_CHALLENGE,\n BTN_DEACTIVATE_CHALLENGE,\n BTN_DELETE_CHALLENGE,\n BTN_DOWNLOAD_CHALLENGE_REPORT,\n BTN_DUPLICATE_CHALLENGE,\n BTN_EDIT_CHALLENGE,\n BTN_PUBLISH_CHALLENGE,\n BTN_VIEW_ANALYTICS,\n BTN_VIEW_CHALLENGE,\n BTN_VIEW_PENALTIES,\n DEACTIVATE_ACTION,\n DELETE_CHALLENGE_ACTION,\n GENERATE_REPORT_ACTION,\n} from '../screens/ChallengesScreen/constants';\n\nexport const handleReport = (\n id,\n challengeName,\n challengeIcon,\n setModalDetails,\n t,\n) => {\n setModalDetails({\n isOpen: true,\n title: t('report.generateTitle'),\n confirmBtnText: t('report.generateTitle'),\n isActivate: true,\n action: GENERATE_REPORT_ACTION,\n items: [\n {\n name: challengeName,\n iconUrl: challengeIcon,\n identifier: id,\n },\n ],\n headerKey: 'report.areYouSureChallenge',\n description: t('report.description'),\n });\n};\n\nexport const showActivationModal = (\n id,\n isActivate,\n challengeName,\n challengeIcon,\n setModalDetails,\n t,\n) => {\n setModalDetails({\n isOpen: true,\n isActivate,\n action: isActivate ? ACTIVATE_ACTION : DEACTIVATE_ACTION,\n items: [\n {\n name: challengeName,\n iconUrl: challengeIcon,\n identifier: id,\n },\n ],\n description: isActivate\n ? t('challenge.activate.description')\n : t('challenge.deactivate.description'),\n });\n};\n\nconst handlePublish = (\n id,\n challengeName,\n challengeIcon,\n setModalDetails,\n t,\n) => {\n setModalDetails({\n isOpen: true,\n isActivate: true,\n action: ACTIVATE_ACTION,\n items: [\n {\n name: challengeName,\n iconUrl: challengeIcon,\n identifier: id,\n },\n ],\n description: t('challenge.publish.description'),\n });\n};\n\nexport const handleButtonsCell = (\n id,\n key,\n challengeName,\n challengeIcon,\n history,\n setModalDetails,\n t,\n) => {\n switch (key) {\n case BTN_VIEW_CHALLENGE.key:\n history.push(`/challenges/${id}`);\n break;\n case BTN_EDIT_CHALLENGE.key:\n history.push(`/challenges/${id}/edit`);\n break;\n case BTN_DEACTIVATE_CHALLENGE.key:\n showActivationModal(\n id,\n false,\n challengeName,\n challengeIcon,\n setModalDetails,\n t,\n );\n break;\n case BTN_ACTIVATE_CHALLENGE.key:\n showActivationModal(\n id,\n true,\n challengeName,\n challengeIcon,\n setModalDetails,\n t,\n );\n break;\n case BTN_VIEW_ANALYTICS.key:\n history.push(`/challenges/${id}/analytics`);\n break;\n case BTN_VIEW_PENALTIES.key:\n history.push(`/challenges/${id}/penalties`);\n break;\n case BTN_PUBLISH_CHALLENGE.key:\n handlePublish(id, challengeName, challengeIcon, setModalDetails, t);\n break;\n case BTN_DELETE_CHALLENGE.key:\n setModalDetails({\n isOpen: true,\n title: t('delete'),\n confirmBtnText: t('delete'),\n isActivate: false,\n action: DELETE_CHALLENGE_ACTION,\n items: [\n {\n name: challengeName,\n iconUrl: challengeIcon,\n identifier: id,\n },\n ],\n headerKey: 'challenge.delete.description',\n description: t('cannotBeUndone'),\n });\n break;\n case BTN_DOWNLOAD_CHALLENGE_REPORT.key:\n handleReport(id, challengeName, challengeIcon, setModalDetails, t);\n break;\n case BTN_DUPLICATE_CHALLENGE.key:\n history.push({\n pathname: '/challenges/create',\n search: `?challengeId=${id}`,\n });\n break;\n default:\n break;\n }\n};\n","import { createSelector } from 'reselect';\nimport {\n transformActivityStats,\n transformTopActions,\n transformTopUsers,\n transformUserStats,\n} from './transforms';\nimport {\n GRAPH_METRIC_ACTIVE_USERS,\n GRAPH_METRIC_NEW_USERS,\n GRAPH_METRIC_TOTAL_LOGS,\n} from '../common/Graph/ChartItem/constants';\nimport { transformImpactStatsToTotals } from '../common/transforms';\n\nexport const getAnalyticsState = (state) => state.analytics;\n\nexport const getActivities = createSelector(\n getAnalyticsState,\n (analytics) => analytics.activities,\n);\n\nexport const getActivityStats = createSelector(getActivities, (activities) =>\n transformActivityStats(activities),\n);\n\nexport const getUsersAnalytic = createSelector(\n getAnalyticsState,\n (analytics) => analytics.usersAnalytic,\n);\n\nexport const getUserStats = createSelector(getUsersAnalytic, (usersAnalytic) =>\n transformUserStats(usersAnalytic),\n);\n\nexport const getImpactStats = createSelector(getAnalyticsState, (analytics) =>\n transformImpactStatsToTotals(analytics.impactStats),\n);\n\nexport const getAllGraphData = createSelector(\n getAnalyticsState,\n (analytics) => analytics.graphData,\n);\n\nconst getGraphData = (metric) => {\n return createSelector(\n getAnalyticsState,\n (analytics) => analytics.graphData[metric],\n );\n};\n\nexport const getTotalLogsGraphData = getGraphData(GRAPH_METRIC_TOTAL_LOGS);\nexport const getNewUsersGraphData = getGraphData(GRAPH_METRIC_NEW_USERS);\nexport const getActiveUsersGraphData = getGraphData(GRAPH_METRIC_ACTIVE_USERS);\n\nexport const getAnalyticsGraphData = createSelector(\n getAnalyticsState,\n (analytics) => analytics.graphData,\n);\n\nexport const getTopActions = createSelector(getActivities, (activities) =>\n transformTopActions(activities),\n);\n\nexport const getTopFiveActions = createSelector(getTopActions, (actions) =>\n actions.slice(0, 5),\n);\n\nexport const getTopUsers = createSelector(getUsersAnalytic, (usersAnalytic) =>\n transformTopUsers(usersAnalytic?.activities),\n);\n\nexport const getTopFiveUsers = createSelector(getTopUsers, (users) =>\n users.slice(0, 5),\n);\n\nexport const getAnalyticsLoaders = createSelector(\n getAnalyticsState,\n (analytics) => analytics.loading,\n);\n\nexport const isActivityStatsLoading = createSelector(\n getAnalyticsLoaders,\n (loading) => loading.activity,\n);\n\nexport const isUserStatsLoading = createSelector(\n getAnalyticsLoaders,\n (loading) => loading.user,\n);\n\nexport const isImpactStatsLoading = createSelector(\n getAnalyticsLoaders,\n (loading) => loading.impact,\n);\n\nexport const isGraphDataLoading = createSelector(\n getAnalyticsLoaders,\n (loading) => loading.graph,\n);\n","import get from 'lodash/get';\nimport { prettyFormatNumber } from '../common/transforms';\nimport { mapSortAddRank } from '../utils';\n\nexport const transformTopActions = (data = []) =>\n mapSortAddRank(\n data.map((activity = {}) => ({\n value: activity.total,\n label: activity.contentName,\n image: get(activity, 'images[0].url'),\n })),\n );\n\nexport const transformActivityStats = (data = []) => {\n const activityStats = data.reduce(\n (\n total = [0, 0, 0, 0],\n activity = { total: 0, points: 0, actionEarned: 0 },\n ) => {\n return [\n total[0] + activity.total || 0,\n total[1] + activity.points || 0,\n total[2] + activity.actionEarned || 0,\n total[3],\n ];\n },\n [0, 0, 0, data.length],\n );\n return activityStats.map((stat) => {\n return prettyFormatNumber(stat);\n });\n};\n\nexport const transformTopUsers = (data = []) =>\n mapSortAddRank(\n data.map((activity = {}) => ({\n id: activity.id,\n value: activity.points,\n label: activity.contentName,\n image: get(activity, 'images[0].url'),\n })),\n );\n\nexport const transformUserStats = (data = {}) => {\n const {\n activeUsers = 0,\n newUsers = 0,\n avgActions = 0,\n avgActionsPerDay = 0,\n } = data;\n\n return [\n prettyFormatNumber(activeUsers, 0),\n prettyFormatNumber(newUsers, 0),\n prettyFormatNumber(avgActions, 2),\n prettyFormatNumber(avgActionsPerDay, 2),\n ];\n};\n","import React, { useEffect, useState } from 'react';\nimport { withStyles } from '@material-ui/styles';\nimport PropTypes from 'prop-types';\nimport styles from './styles';\nimport { Line } from 'react-chartjs-2';\nimport 'chartjs-adapter-date-fns'; // needed to parse & format timeseries data in x/y axis\n\nconst LineChart = ({ classes, options, data }) => {\n const [chartOptions, setChartOptions] = useState({});\n\n useEffect(() => {\n const chartDefaultOptions = {\n responsive: true,\n legend: {\n display: false,\n },\n plugins: {\n legend: {\n display: false,\n },\n },\n scales: {\n x: {\n display: true,\n grid: {\n display: true,\n },\n },\n y: {\n display: true,\n grid: {\n display: true,\n },\n title: {\n display: true,\n },\n },\n },\n interaction: {\n mode: 'index',\n intersect: true,\n },\n ...options,\n };\n\n setChartOptions(chartDefaultOptions);\n }, [options]);\n return (\n
    \n \n
    \n );\n};\n\nLineChart.propTypes = {\n classes: PropTypes.object.isRequired,\n options: PropTypes.object.isRequired,\n data: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles)(LineChart);\n","export default (theme) => ({\n chartWrapper: {\n position: 'relative',\n height: '100%',\n },\n});\n","import React, { useEffect, useState } from 'react';\nimport { withStyles } from '@material-ui/styles';\nimport ContentLoader from 'react-content-loader';\nimport { Grid, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport styles from './styles';\nimport LineChart from '../../Charts/LineChart';\nimport { LineChartSeries } from '../propTypes';\nimport theme from '../../../theme';\n\nconst LINE_STYLE_DASHED = 'Dashed';\n\nconst VisualItem = ({\n classes,\n type,\n title,\n description,\n Icon,\n flagColor,\n flagRGBColor,\n total,\n goal,\n series,\n loading,\n}) => {\n const [lineChartData, setLineChartData] = useState({\n labels: [],\n datasets: [],\n });\n\n useEffect(() => {\n const solidObjectProperties = {\n fill: true,\n backgroundColor: flagRGBColor,\n borderColor: flagRGBColor,\n pointRadius: 3,\n pointHoverRadius: 5,\n pointBackgroundColor: function(context) {\n return theme.palette.white.main;\n },\n };\n\n const dashedObjectProperties = {\n fill: false,\n backgroundColor: theme.custom.bgChartDashedColor,\n borderColor: theme.custom.bgChartDashedColor,\n tension: 0.4,\n borderDash: [1, 3],\n pointRadius: 3,\n pointHoverRadius: 5,\n pointBackgroundColor: function() {\n return theme.custom.bgChartDashedColor;\n },\n };\n\n const chartDecorator = {};\n const labels = new Set(); // make it as Set to avoid duplicate labels\n const dataSet = [];\n if (!loading) {\n series.forEach((element) => {\n const additionalProperties =\n element.style === LINE_STYLE_DASHED\n ? { ...dashedObjectProperties }\n : { ...solidObjectProperties };\n\n dataSet.push({\n label: element.name,\n data: element.data,\n ...additionalProperties,\n });\n element.labels.forEach((label) => {\n labels.add(label);\n });\n });\n }\n\n chartDecorator.labels = [...labels];\n chartDecorator.datasets = [...dataSet];\n // eslint-disable-next-line no-console\n setLineChartData(chartDecorator);\n }, [series, flagRGBColor, loading]);\n\n const lineChartOptions = {\n responsive: true,\n plugins: {\n legend: {\n display: false,\n },\n },\n scales: {\n x: {\n display: false,\n },\n y: {\n display: false,\n grid: {\n display: true,\n drawBorder: false,\n drawOnChartArea: true,\n drawTicks: false,\n },\n title: {\n display: false,\n text: 'Value',\n },\n beginAtZero: true,\n },\n },\n };\n\n const Loader = ({ type }) => {\n const titleLoader = (\n \n \n \n );\n\n const chartLoader = (\n \n \n \n \n \n \n );\n\n const loaders = {\n title: titleLoader,\n chart: chartLoader,\n };\n\n return loaders[type];\n };\n\n return (\n \n \n \n
    \n

    {type}

    \n
    \n \n \n
    \n\n \n
    \n {loading ? (\n \n \n \n ) : (\n \n {Icon}\n
    {title}
    \n \n )}\n
    \n
    \n {loading ? (\n
    \n \n
    \n ) : (\n
    \n \n {total && (\n \n {total}\n \n )}\n {goal && (\n \n {goal}\n \n )}\n \n\n \n
    \n \n
    \n \n
    \n )}\n
    \n\n
    \n \n \n {description}\n \n \n
    \n
    \n
    \n );\n};\n\nVisualItem.propTypes = {\n classes: PropTypes.object.isRequired,\n type: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n Icon: PropTypes.node.isRequired,\n flagColor: PropTypes.string.isRequired,\n flagRGBColor: PropTypes.string.isRequired,\n total: PropTypes.string.isRequired,\n goal: PropTypes.string.isRequired,\n series: PropTypes.arrayOf(LineChartSeries).isRequired,\n loading: PropTypes.bool.isRequired,\n};\n\nexport default withStyles(styles)(VisualItem);\n","import PropTypes from 'prop-types';\n\nexport const LineChartSeries = PropTypes.shape({\n name: PropTypes.string.isRequired,\n style: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(PropTypes.number),\n labels: PropTypes.arrayOf(PropTypes.string),\n});\n","export default (theme) => ({\n visualItemWrapper: {\n display: 'flex',\n width: '100%',\n position: 'relative',\n },\n visualFlag: {\n width: '10px',\n borderRadius: '4px 0 0px 4px',\n position: 'absolute',\n right: 0,\n height: '100%',\n },\n visualItem: {\n width: '90%',\n backgroundColor: theme.custom.grey93,\n padding: '15px',\n borderRadius: '0px 4px 4px 0px',\n },\n visualFlagTitleCover: {\n position: 'relative',\n width: '10%',\n background: 'none',\n },\n visualFlagTitle: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.white.main,\n\n position: 'absolute',\n top: '0',\n right: '0',\n width: '100%',\n height: '50%',\n lineHeight: '30px',\n borderRadius: '4px 4px 0 4px',\n fontWeight: 600,\n textAlign: 'center',\n padding: '0 10px',\n fontSize: '13px',\n },\n visualFlagTitleCard: {\n position: 'relative',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n zIndex: '1',\n },\n visualFlagTitleText: {\n transform: 'rotate(270deg)',\n position: 'absolute',\n top: '50%',\n width: '100%',\n },\n visualItemHeader: {\n paddingBottom: '10px',\n '& .MuiGrid-root': {},\n },\n icon: {\n width: '20px',\n height: '20px',\n },\n title: {\n fontSize: '16px',\n fontWeight: '600',\n padding: '0 10px',\n },\n visualItemBody: {\n backgroundColor: theme.palette.white.main,\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n },\n visualItemFooter: {\n width: '100%',\n paddingTop: '10px',\n },\n detailButton: {\n width: '25%',\n borderColor: theme.palette.primary.main,\n borderStyle: 'solid',\n border: '2px',\n fontWeight: 600,\n backgroundColor: theme.palette.white.main,\n },\n footerLeft: {\n width: '75%',\n paddingRight: '10px',\n fontSize: '13px',\n },\n metaHeading: {\n position: 'absolute',\n top: '15px',\n right: '15px',\n zIndex: 100,\n },\n totalHeading: {\n fontSize: '24px',\n margin: 0,\n fontWeight: 600,\n },\n goalHeading: {\n color: '#959393',\n fontSize: '11px',\n margin: 0,\n },\n chartWrapper: {\n height: '100%',\n width: '100%',\n justifyContent: 'flex-end',\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden',\n position: 'relative',\n paddingTop: '64px',\n },\n chartInner: {\n height: '82%',\n width: '100%',\n },\n});\n","import { AssessmentRounded, Folder, Help } from '@material-ui/icons';\nimport {\n GRAPH_METRIC_ACTIVE_USERS,\n GRAPH_METRIC_IMPACT_CARBON,\n GRAPH_METRIC_IMPACT_WASTE,\n GRAPH_METRIC_IMPACT_WATER,\n GRAPH_METRIC_PHOTO_ADDED,\n GRAPH_METRIC_TOTAL_LOGS,\n} from '../../common/Graph/ChartItem/constants';\n\nexport const sections = [\n {\n route: '/analytics',\n label: 'View Analytics',\n icon: AssessmentRounded,\n subject: 'CommunityAnalytics',\n },\n {\n route: '/actions',\n label: 'Modify Actions',\n iconName: 'jb-buzz',\n subject: 'ActionsAdmin',\n },\n {\n route: '/challenges',\n label: 'Manage Challenges',\n iconName: 'jb-challenge',\n subject: 'ChallengesAdmin',\n },\n {\n route: '/notifications',\n label: 'Manage Notifications',\n iconName: 'jb-notifications',\n subject: 'MasterNotifications',\n },\n {\n route: '/members',\n label: 'Manage Users',\n iconName: 'jb-profile',\n subject: 'CommunityMembers',\n },\n {\n route: '/flags',\n label: 'Monitor Flagged Content',\n iconName: 'jb-flag',\n subject: 'FlaggedContent',\n },\n {\n route: '/assets',\n label: 'Download Assets',\n icon: Folder,\n subject: 'Assets',\n },\n {\n route: '/support',\n label: 'View Support & Promotion',\n icon: Help,\n subject: 'Support',\n },\n];\n\nexport const metrics = [\n GRAPH_METRIC_TOTAL_LOGS,\n GRAPH_METRIC_PHOTO_ADDED,\n GRAPH_METRIC_ACTIVE_USERS,\n];\n\nexport const impactMetrics = [\n GRAPH_METRIC_IMPACT_WATER,\n GRAPH_METRIC_IMPACT_CARBON,\n GRAPH_METRIC_IMPACT_WASTE,\n];\n\nexport const globalDateRegex = /(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}).(\\d{3})Z/g;\nexport const dateRegex = /(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}).(\\d{3})Z/;\n","import moment from 'moment';\n\nexport const getResolution = (startDate, endDate) => {\n const diffDays = moment(endDate).diff(moment(startDate), 'days');\n const diffMonths = moment(endDate).diff(moment(startDate), 'months');\n const diffYears = moment(endDate).diff(moment(startDate), 'years');\n\n if (diffDays <= 31) {\n return 'day';\n } else if (diffDays > 31 && diffMonths < 12) {\n return 'week';\n } else if (diffYears >= 1 && diffYears < 3) {\n return 'month';\n } else return 'year';\n};\n","import React, { useCallback, useEffect, useMemo } from 'react';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport { analyticsGraphDataRequested } from '../../../../analytics/actions';\nimport {\n getAnalyticsGraphData,\n isGraphDataLoading,\n} from '../../../../analytics/selectors';\nimport BuzzIcon from '../../../../assets/images/buzz.png';\nimport CommunityIcon from '../../../../assets/images/community.png';\nimport PhotoIcon from '../../../../assets/images/photo.png';\nimport CarbonIcon from '../../../../assets/images/carbon.png';\nimport WaterIcon from '../../../../assets/images/water.png';\nimport WasteIcon from '../../../../assets/images/waste.png';\nimport theme from '../../../../theme';\nimport styles from './../styles';\nimport VisualItem from '../../../../common/DatePickerRange/VisualItem';\nimport { impactMetrics, metrics } from '../../constants';\nimport { prettyFormatNumber } from '../../../../common/transforms';\nimport { getResolution } from '../../../../analytics/utils';\nimport {\n getFeatureFlagValue,\n REMOTE_CONFIG_SHOW_HABITAT_SAVED_GRAPH,\n REMOTE_CONFIG_SHOW_IMPACT_GRAPHS,\n} from '../../../../utils/remoteConfig';\nimport { Landscape } from '@material-ui/icons';\nimport {\n GRAPH_METRIC_ACTIVE_USERS,\n GRAPH_METRIC_IMPACT_CARBON,\n GRAPH_METRIC_IMPACT_HABITAT_SAVED,\n GRAPH_METRIC_IMPACT_WASTE,\n GRAPH_METRIC_IMPACT_WATER,\n GRAPH_METRIC_PHOTO_ADDED,\n GRAPH_METRIC_TOTAL_LOGS,\n} from '../../../../common/Graph/ChartItem/constants';\nimport { getActiveCommunityId } from '../../../../user/selectors';\n\nexport const Graphs = ({\n classes,\n communityId,\n fetchGraphData,\n analyticsGraphData,\n isGraphLoading,\n startDate,\n endDate,\n}) => {\n const { t } = useTranslation();\n\n const communityImpactMetrics = useMemo(() => {\n let metrics = [];\n if (getFeatureFlagValue(REMOTE_CONFIG_SHOW_IMPACT_GRAPHS)) {\n metrics = impactMetrics;\n }\n if (getFeatureFlagValue(REMOTE_CONFIG_SHOW_HABITAT_SAVED_GRAPH)) {\n metrics = [\n GRAPH_METRIC_IMPACT_CARBON,\n GRAPH_METRIC_IMPACT_HABITAT_SAVED,\n ];\n }\n return metrics;\n }, []);\n\n // Fetch Data\n useEffect(() => {\n const options = {\n startDateIso: startDate.toISOString(),\n endDateIso: endDate.toISOString(),\n scope: 'organization',\n resolution: getResolution(startDate, endDate),\n };\n fetchGraphData(options, communityId, metrics);\n if (communityImpactMetrics?.length > 0) {\n fetchGraphData(\n { ...options, singleRequest: true },\n communityId,\n communityImpactMetrics,\n );\n }\n }, [\n startDate,\n endDate,\n communityId,\n fetchGraphData,\n communityImpactMetrics,\n ]);\n\n const graphType = useCallback(\n (metric) => {\n const dataMap = {\n [GRAPH_METRIC_TOTAL_LOGS]: 'Actions',\n [GRAPH_METRIC_ACTIVE_USERS]: 'Engagement',\n [GRAPH_METRIC_PHOTO_ADDED]: 'Engagement',\n [GRAPH_METRIC_IMPACT_CARBON]: 'Sustainability',\n [GRAPH_METRIC_IMPACT_WASTE]: 'Sustainability',\n [GRAPH_METRIC_IMPACT_WATER]: 'Sustainability',\n [GRAPH_METRIC_IMPACT_HABITAT_SAVED]: 'Sustainability',\n };\n\n return t(dataMap[metric]);\n },\n [t],\n );\n\n const graphIcon = useCallback(\n (metric) => {\n if (metric === GRAPH_METRIC_IMPACT_HABITAT_SAVED) {\n return ;\n }\n const icons = {\n [GRAPH_METRIC_TOTAL_LOGS]: BuzzIcon,\n [GRAPH_METRIC_ACTIVE_USERS]: CommunityIcon,\n [GRAPH_METRIC_PHOTO_ADDED]: PhotoIcon,\n [GRAPH_METRIC_IMPACT_CARBON]: CarbonIcon,\n [GRAPH_METRIC_IMPACT_WASTE]: WasteIcon,\n [GRAPH_METRIC_IMPACT_WATER]: WaterIcon,\n };\n return (\n \n );\n },\n [classes],\n );\n\n const graphColors = useCallback((type) => {\n const colors = {\n Actions: {\n flagColor: theme.custom.bgWellness,\n flagRGBColor: theme.custom.bgChartWellness,\n },\n Engagement: {\n flagColor: theme.custom.bgEngagement,\n flagRGBColor: theme.custom.bgChartEngagement,\n },\n Sustainability: {\n flagColor: theme.custom.bgSustainability,\n flagRGBColor: theme.custom.bgSustainability,\n },\n };\n\n return colors[type];\n }, []);\n\n const graphData = useMemo(() => {\n // Start with template data so we can show a pretty loading screen\n let data = [...metrics, ...communityImpactMetrics].map((metric) => {\n const newGraphType = graphType(metric);\n return {\n metric,\n ...graphColors(newGraphType),\n type: newGraphType,\n Icon: graphIcon(metric),\n loading: true,\n };\n });\n\n data = data.map((data) => {\n if (Object.keys(analyticsGraphData).includes(data.metric)) {\n const dataset = analyticsGraphData[data.metric];\n const total =\n dataset.roundedTotal ||\n dataset.data?.[0]?.reduce((value, sum) => sum + value) ||\n 0;\n const totalWithSuffix = prettyFormatNumber(total, 0);\n const formattedTotal = `${totalWithSuffix.value}${totalWithSuffix.weight} ${dataset.series?.[0]?.name}`;\n const newLabels = dataset.labels?.map((label) => {\n return moment(label).format('MM.DD.YYYY');\n });\n return {\n ...data,\n dataset,\n ...analyticsGraphData[data.metric],\n total: formattedTotal,\n series: [\n {\n name: dataset.series?.[0]?.name,\n style: 'solid',\n data: dataset.data?.[0],\n labels: newLabels,\n },\n ],\n loading: isGraphLoading[data.metric],\n };\n }\n return null;\n });\n // Remove the graph if it fails to load\n data = data?.filter(\n (data) => data?.loading || data?.series?.length > 0,\n );\n return data;\n }, [\n analyticsGraphData,\n isGraphLoading,\n graphColors,\n graphIcon,\n graphType,\n communityImpactMetrics,\n ]);\n\n const isGraphDataEmpty = useMemo(\n () =>\n Object.values(graphData).filter(\n (item) => item.data.length > 0 || item.loading,\n ).length === 0,\n [graphData],\n );\n\n return (\n \n {graphData.map((graphObject) => {\n const {\n key,\n title,\n type,\n flagColor,\n flagRGBColor,\n Icon,\n total,\n xAxisLabel,\n yAxisLabel,\n series,\n loading,\n } = graphObject;\n return (\n \n \n \n );\n })}\n {isGraphDataEmpty && (\n \n
    \n \n {t('data.empty')}\n \n
    \n
    \n )}\n \n );\n};\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n analyticsGraphData: getAnalyticsGraphData(state),\n isGraphLoading: isGraphDataLoading(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n fetchGraphData: (options, communityId, metrics) =>\n dispatch(analyticsGraphDataRequested(options, communityId, metrics)),\n});\n\nGraphs.propTypes = {\n communityId: PropTypes.string.isRequired,\n fetchGraphData: PropTypes.func.isRequired,\n analyticsGraphData: PropTypes.object.isRequired,\n isGraphLoading: PropTypes.bool.isRequired,\n classes: PropTypes.object.isRequired,\n startDate: PropTypes.string.isRequired,\n endDate: PropTypes.string.isRequired,\n};\n\nconst StyledGraphs = withStyles(styles)(Graphs);\n\nexport default connect(mapStateToProps, mapDispatchToProps)(StyledGraphs);\n","import makeStyles from '@material-ui/styles/makeStyles';\n\nconst invertFilter = {\n red:\n 'invert(22%) sepia(66%) saturate(2254%) hue-rotate(355deg) brightness(100%) contrast(126%);',\n};\n\nexport default makeStyles((theme) => ({\n container: ({ borderColor }) => ({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '4px',\n padding: '30px',\n background: theme.custom.grey93,\n [theme.breakpoints.down('md')]: {\n padding: '20px',\n },\n border: `solid 2px ${borderColor || theme.custom.red}`,\n }),\n closeButtonWrapper: {\n width: '100%',\n height: '15px',\n display: 'flex',\n justifyContent: 'flex-end',\n zIndex: '2',\n top: '25px',\n right: '25px',\n position: 'relative',\n },\n\n closeButton: {\n cursor: 'pointer',\n },\n logoSection: {\n margin: 'auto',\n [theme.breakpoints.down('sm')]: {\n marginRight: 'auto',\n marginLeft: 'inherit',\n },\n },\n\n logo: ({ logoColor }) => ({\n flex: 1,\n height: 'auto',\n filter: `${logoColor ? invertFilter[logoColor] : 'none'}`,\n }),\n\n tipTitleSection: {\n display: 'flex',\n alignItems: 'center',\n marginRight: '10px',\n minWidth: '59px',\n },\n tipTitle: {\n display: 'flex',\n fontWeight: '700',\n '& span': {\n color: theme.palette.primary.main,\n marginLeft: '5px',\n },\n marginBottom: '5px',\n },\n tipContent: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n [theme.breakpoints.down('md')]: {\n display: 'block',\n },\n },\n\n actionWrapper: {\n display: 'flex',\n justifyContent: 'flex-end',\n width: '100%',\n },\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, Typography } from '@material-ui/core';\nimport classNames from 'classnames';\n\nimport styles from './styles';\nimport IMAGES from '../../../constants/images';\nimport { noop } from '../../../utils';\n\nconst NotificationCard = ({\n tipTitle,\n tipDescription,\n image,\n borderColor,\n logoColor,\n isOpen,\n onClose,\n children,\n isDismissible,\n ...props\n}) => {\n const classes = styles({ borderColor, logoColor, isDismissible });\n\n if (!isOpen) {\n return null;\n }\n return (\n \n {isDismissible && (\n
    \n \n
    \n )}\n \n \n
    \n \"\"\n
    \n
    \n\n \n
    \n
    \n \n {tipTitle}\n \n
    \n
    \n \n {tipDescription}\n \n
    \n
    \n
    \n \n
    {children}
    \n
    \n \n \n );\n};\n\nNotificationCard.propTypes = {\n tipTitle: PropTypes.oneOfType([PropTypes.string, PropTypes.node])\n .isRequired,\n tipDescription: PropTypes.oneOfType([PropTypes.string, PropTypes.node])\n .isRequired,\n children: PropTypes.node,\n image: PropTypes.string.isRequired,\n logoColor: PropTypes.oneOf(['red', '']),\n borderColor: PropTypes.string,\n isOpen: PropTypes.bool,\n onClose: PropTypes.func,\n isDismissible: PropTypes.bool,\n};\n\nNotificationCard.defaultProps = {\n tipTitle: '',\n tipDescription: '',\n children: [],\n image: '',\n logoColor: '',\n borderColor: null,\n isOpen: true,\n onClose: noop,\n isDismissible: true,\n};\n\nexport default NotificationCard;\n","const styles = (theme) => ({\n container: {\n margin: '0 0 25px',\n },\n buttonWhite: {\n border: `1px solid ${theme.palette.primary.main}`,\n margin: '5px',\n },\n buttonGreen: {\n border: `1px solid ${theme.palette.primary.main}`,\n margin: '5px',\n background: theme.palette.primary.main,\n '&:hover': {\n background: theme.palette.primary.dark,\n testDecoration: 'none',\n },\n },\n\n underlined: {\n textDecoration: 'underline',\n '&:hover': {\n cursor: 'pointer',\n color: theme.palette.primary.dark,\n },\n },\n\n tipSelectPlan: {\n display: 'flex',\n alignItems: 'flex-start',\n marginTop: '10px',\n [theme.breakpoints.down('md')]: {\n display: 'block',\n },\n '& span': {\n textDecoration: 'underline',\n marginLeft: '5px',\n\n '& a': {\n color: theme.custom.linkColor,\n '&:hover': {\n cursor: 'pointer',\n color: theme.custom.linkHoverColor,\n },\n },\n },\n },\n closeButton: {\n margin: '6px 12px',\n backgroundColor: theme.palette.accent.main,\n\n '&:hover': {\n backgroundColor: theme.palette.accent.dark,\n },\n },\n});\n\nexport default styles;\n","import React, { useMemo, useState } from 'react';\nimport { withStyles, Typography, Grid } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport Link from '@material-ui/core/Link';\nimport PropTypes from 'prop-types';\n\nimport NotificationCard from './NotificationCard';\n\nimport styles from './styles';\nimport Button from '../Button';\nimport theme from '../../theme';\nimport IMAGES from '../../constants/images';\nimport {\n FREE_TIER_ID,\n CUSTOM_TIER_ID,\n TRIAL_MAX_USER_COUNT,\n} from './constants';\nimport { useHistory } from 'react-router-dom';\nimport { trackEvent } from '../../utils/analytics';\nimport {\n EVENT_SUBSCRIPTION_PRESS_CONTACT,\n EVENT_SUBSCRIPTION_PRESS_UPGRADE,\n} from '../../constants/analyticsEvents';\nimport {\n PARAM_ORIGIN,\n PARAM_SUBSCRIPTION_ID,\n} from '../../constants/analyticsParams';\nimport { showIntercomChat } from '../../config/intercom';\n\nconst AccountTierNotifications = ({ classes, accountPlanData }) => {\n const { t } = useTranslation();\n const history = useHistory();\n\n const [isOpen, setIsOpen] = useState(true);\n const maxUserCount =\n accountPlanData?.subscriptionTier?.quotas?.maxUserCount ||\n TRIAL_MAX_USER_COUNT;\n\n const limitExceed = () => (\n setIsOpen(false)}\n isDismissible={false}\n >\n \n {\n trackEvent(EVENT_SUBSCRIPTION_PRESS_UPGRADE, {\n [PARAM_ORIGIN]: 'banner',\n });\n history.push('/payment');\n }}\n >\n {t('account.accountNotifications.upgradeButtonLabel')}\n \n \n {\n trackEvent(EVENT_SUBSCRIPTION_PRESS_CONTACT, {\n [PARAM_SUBSCRIPTION_ID]:\n accountPlanData?.subscriptionTier?.id,\n });\n showIntercomChat();\n }}\n >\n {t('account.accountNotifications.contactUsButtonLabel')}\n \n \n );\n\n const welcomeFreeTier = () => (\n \n {t(`account.accountNotifications.defaultFreeTrial.title`)}\n \n {t(\n `account.accountNotifications.defaultFreeTrial.greenTitleSection`,\n )}\n \n \n {t(\n `account.accountNotifications.defaultFreeTrial.greenTileUnderlinedSection`,\n { maxUserCount },\n )}\n \n \n }\n tipDescription={\n <>\n {t(\n `account.accountNotifications.defaultFreeTrial.description`,\n { maxUserCount },\n )}\n
    \n \n {t(\n `account.accountNotifications.defaultFreeTrial.selectPlan`,\n )}\n \n \n {t(\n `account.accountNotifications.defaultFreeTrial.selectPlanLink`,\n )}\n \n \n \n
    \n \n }\n image={IMAGES.greenLogo}\n borderColor={theme.palette.primary.main}\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n >\n \n \n {t('account.accountNotifications.upgradeButtonLabel')}\n \n \n \n );\n\n const isUserCountNotExceeded = useMemo(() => {\n if (accountPlanData) {\n const userCount = accountPlanData.currentUserCount || 0;\n return maxUserCount > userCount;\n }\n return false;\n }, [accountPlanData, maxUserCount]);\n\n if (accountPlanData?.loading) {\n return null;\n }\n\n return (\n \n {isUserCountNotExceeded\n ? FREE_TIER_ID === accountPlanData?.subscriptionTier?.id &&\n welcomeFreeTier()\n : CUSTOM_TIER_ID !== accountPlanData?.subscriptionTier?.id &&\n limitExceed()}\n \n );\n};\n\nAccountTierNotifications.propTypes = {\n accountPlanData: PropTypes.array,\n classes: PropTypes.object.isRequired,\n};\n\nAccountTierNotifications.defaultProps = {\n accountPlanData: [],\n};\n\nexport default withStyles(styles)(AccountTierNotifications);\n","/**\n * Identifying the tier is required to display Account user count exceed message\n * & Free tier welcome message\n */\nexport const FREE_TIER_ID = '61ef0a7db41a64a06400f1ed';\nexport const CUSTOM_TIER_ID = '61ef0a7db41a64a06400f1f5';\nexport const PREMIUM_TIER_ID = '61ef0a7db41a64a06400f204';\n\nexport const TRIAL_MAX_USER_COUNT = 10;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n noDataLabelContainer: {\n color: theme.custom.textDarkColor,\n },\n noDataLabel: {\n width: '50%',\n color: theme.custom.textDarkColor,\n textAlign: 'center',\n opacity: '.5',\n alignSelf: 'center',\n paddingTop: 10,\n },\n notFoundImage: {\n alignSelf: 'center',\n maxWidth: 100,\n maxHeight: 100,\n },\n}));\n\nexport default useStyles;\n","import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, Typography } from '@material-ui/core';\nimport CommonPropTypes from '../propTypes';\nimport useStyles from './styles';\nimport { useTranslation } from 'react-i18next';\nimport RequestLoader from '../RequestLoader';\nimport { noop } from '../utils';\nimport { SCROLLER_BATCH_SIZE } from './constants';\nimport IMAGES from '../../constants/images';\n\nconst InfiniteScroller = ({\n isLoading,\n errors,\n items,\n loadFunc,\n renderFunc,\n listEmptyText,\n fetchLimit,\n Loader,\n}) => {\n const bottomRef = useRef(null);\n const { t } = useTranslation();\n\n const [prevItemsCount, setPrevItemsCount] = useState(0);\n\n const classes = useStyles();\n\n useEffect(() => {\n const itemsCount = (items && items.length) || 0;\n const intersectionObserver = new IntersectionObserver(\n (entries) => {\n if (entries.some((entry) => entry.intersectionRatio === 1)) {\n if (prevItemsCount + fetchLimit <= itemsCount) {\n setPrevItemsCount(itemsCount);\n loadFunc({\n limit: fetchLimit,\n skip: itemsCount,\n });\n }\n }\n },\n { threshold: 1 },\n );\n const targetElement = bottomRef.current;\n if (targetElement) {\n intersectionObserver.observe(targetElement);\n return () => intersectionObserver.unobserve(targetElement);\n }\n }, [\n loadFunc,\n items,\n prevItemsCount,\n setPrevItemsCount,\n bottomRef,\n fetchLimit,\n ]);\n\n const renderItems = () => {\n if (items?.length > 0) {\n return items.map((item, index) => renderFunc(item, index));\n } else if (!isLoading) {\n return (\n \n \n \"not\n \n \n {listEmptyText}\n \n \n );\n }\n };\n return (\n <>\n {errors?.length > 0 ? (\n errors.map((err, i) => {err})\n ) : (\n <>\n \n {renderItems()}\n \n {Loader ? (\n isLoading && Loader\n ) : (\n \n )}\n
    \n \n )}\n \n );\n};\n\nInfiniteScroller.propTypes = {\n isLoading: PropTypes.bool.isRequired,\n renderFunc: PropTypes.func.isRequired,\n errors: CommonPropTypes.errors,\n items: PropTypes.array,\n loadFunc: PropTypes.func,\n listEmptyText: PropTypes.string,\n fetchLimit: PropTypes.number,\n Loader: PropTypes.node,\n};\n\nInfiniteScroller.defaultProps = {\n errors: null,\n items: [],\n loadFunc: noop,\n listEmptyText: '',\n fetchLimit: SCROLLER_BATCH_SIZE,\n Loader: null,\n};\n\nexport default InfiniteScroller;\n","import { makeStyles } from '@material-ui/core';\nimport { CONTENT_TYPE_PIN } from '../../../constants/contentType';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n backgroundColor: theme.custom.bgLightColor,\n paddingTop: '10px',\n padding: '10px 20px',\n },\n userImage: ({ userId }) => ({\n maxWidth: '60px',\n maxHeight: '60px',\n marginRight: '8px',\n width: '100%',\n borderRadius: '5px',\n overflow: 'hidden',\n cursor: userId ? 'pointer' : 'auto',\n alignSelf: 'center',\n [theme.breakpoints.down('xs')]: {\n maxWidth: '40px',\n maxHeight: '40px',\n alignSelf: 'flex-start',\n },\n }),\n userName: ({ userId }) => ({\n marginRight: '10px',\n fontSize: 'min(22px, 5vw)',\n lineHeight: 1.1,\n fontWeight: 800,\n textOverflow: 'ellipsis',\n color: theme.palette.common.black,\n cursor: userId ? 'pointer' : 'auto',\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n }),\n textBlock: {\n border: '0 !important',\n },\n activityName: {\n fontSize: '18px',\n fontWeight: 500,\n color: theme.custom.bgDarkColor,\n },\n activityCreated: {\n fontSize: '14px',\n fontWeight: 500,\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n activityImage: ({ contentType, contentId }) => ({\n marginLeft: '8px',\n overflow: 'hidden',\n border: '0 !important',\n maxWidth: '80px',\n width: '100%',\n cursor:\n contentId && contentType === CONTENT_TYPE_PIN ? 'pointer' : 'auto',\n [theme.breakpoints.down('xs')]: {\n maxWidth: '45px',\n maxHeight: '45px',\n },\n }),\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, Typography } from '@material-ui/core';\nimport IMAGES from '../../../constants/images';\nimport useStyles from './styles';\nimport { getAppImages } from '../../../utils';\nimport { getRelativeTime } from '../../utils';\nimport { useHistory } from 'react-router-dom';\nimport {\n CONTENT_TYPE_PIN,\n CONTENT_TYPES,\n} from '../../../constants/contentType';\n\nconst ActivityCardHeader = ({\n userName,\n userImage,\n userId,\n activityName,\n activityImage,\n activityCreated,\n contentType,\n contentId,\n}) => {\n const classes = useStyles({ userId, contentId, contentType });\n const history = useHistory();\n const onContentClick = (e) => {\n if (contentId && contentType === CONTENT_TYPE_PIN) {\n history.push(`/actions/${contentId}`);\n e.stopPropagation();\n }\n };\n\n const onProfileClick = (e) => {\n if (userId) {\n history.push(`/profile/${userId}`);\n e.stopPropagation();\n }\n };\n return (\n \n \n \n \"user\"\n \n \n \n \n {userName}\n \n \n {getRelativeTime(activityCreated)}\n \n \n {activityName}\n \n \n \n \n \n \n );\n};\n\nActivityCardHeader.propTypes = {\n userName: PropTypes.string.isRequired,\n userImage: PropTypes.string,\n userId: PropTypes.string.isRequired,\n activityName: PropTypes.string.isRequired,\n activityImage: PropTypes.string,\n activityCreated: PropTypes.string.isRequired,\n contentType: PropTypes.oneOf([CONTENT_TYPES]),\n contentId: PropTypes.string,\n};\n\nActivityCardHeader.defaultProps = {\n userImage: getAppImages().defaultProfileIcon,\n activityImage: IMAGES.defaultPinIcon,\n contentType: null,\n contentId: null,\n};\n\nexport default ActivityCardHeader;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n backgroundColor: theme.custom.bgLightColor,\n padding: '5px 20px',\n },\n andBlock: {\n width: '60px',\n height: '100%',\n fontWeight: '700',\n fontSize: '25px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: theme.custom.textLightDisabledColor,\n },\n badgeName: {\n marginLeft: '8px',\n },\n badgeImage: {\n marginLeft: '8px',\n maxWidth: '80px',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, Typography } from '@material-ui/core';\nimport useStyles from './styles';\n\nconst ActivityCardBadge = ({ activities }) => {\n const classes = useStyles();\n\n return (\n \n {activities.map((activity, index) => (\n \n \n \n \n &\n \n \n \n \n {activity.activityName}\n \n \n \n \n \n \n \n ))}\n \n );\n};\n\nActivityCardBadge.propTypes = {\n activities: PropTypes.array.isRequired,\n};\n\nexport default ActivityCardBadge;\n","const styles = (theme) => ({\n photo: {\n width: '100%',\n height: 'auto',\n position: 'relative',\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, withStyles } from '@material-ui/core';\nimport styles from './styles';\nimport { useTranslation } from 'react-i18next';\n\nconst ActivityCardPhoto = ({ classes, photoUrl }) => {\n const { t } = useTranslation();\n if (!photoUrl) {\n return null;\n }\n\n return (\n \n \n \n );\n};\n\nActivityCardPhoto.propTypes = {\n classes: PropTypes.object.isRequired,\n photoUrl: PropTypes.string,\n};\n\nActivityCardPhoto.defaultProps = {\n photoUrl: null,\n};\n\nexport default withStyles(styles)(ActivityCardPhoto);\n","const styles = (theme) => ({\n container: {\n backgroundColor: theme.custom.bgLightAccentColor,\n color: theme.custom.bgDarkColor,\n },\n icon: {\n height: '54px',\n padding: '16px 0',\n margin: '0 30px 0 40px',\n },\n text: {\n padding: '16px 0',\n fontSize: '18px',\n lineHeight: '24px',\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport pluralize from 'pluralize';\nimport { Grid, withStyles, Typography } from '@material-ui/core';\nimport styles from './styles';\nimport { Favorite } from '@material-ui/icons';\n\nconst ActivityCardLikes = ({ classes, likes }) => {\n if (!likes) {\n return null;\n }\n\n return (\n \n \n \n {pluralize('Like', likes, true)}\n \n \n );\n};\n\nActivityCardLikes.propTypes = {\n classes: PropTypes.object.isRequired,\n likes: PropTypes.number,\n};\n\nActivityCardLikes.defaultProps = {\n likes: null,\n};\n\nexport default withStyles(styles)(ActivityCardLikes);\n","const styles = (theme) => ({\n container: {\n backgroundColor: theme.custom.bgLightAccentColor,\n color: theme.custom.bgDarkColor,\n borderTop: `1px solid ${theme.custom.bgSeparator}`,\n },\n icon: {\n height: '54px',\n padding: '16px 0',\n margin: '0 28px 0 38px',\n },\n textBlock: {\n padding: '16px 0',\n border: '0 !important',\n },\n commentUser: {\n fontSize: '18px',\n lineHeight: '24px',\n fontWeight: 600,\n },\n commentText: {\n fontSize: '16px',\n lineHeight: '24px',\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, withStyles, Typography } from '@material-ui/core';\nimport { FormatQuoteRounded } from '@material-ui/icons';\nimport styles from './styles';\n\nconst ActivityCardComment = ({\n classes,\n commentUser,\n commentText,\n children,\n}) => {\n return (\n \n \n \n \n {commentUser}\n \n \n {commentText}\n \n \n {children}\n \n );\n};\n\nActivityCardComment.propTypes = {\n classes: PropTypes.object.isRequired,\n commentUser: PropTypes.string.isRequired,\n commentText: PropTypes.string.isRequired,\n children: PropTypes.node,\n};\n\nActivityCardComment.defaultProps = {\n children: null,\n};\nexport default withStyles(styles)(ActivityCardComment);\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Grid, Menu, MenuItem } from '@material-ui/core';\n\nimport { useTranslation } from 'react-i18next';\nimport ConfirmModal from '../../ConfirmModal';\nimport {\n BUTTON_DANGER_COLOR,\n BUTTON_DEFAULT_COLOR,\n} from '../../Button/constants';\nimport { noop } from '../../utils';\n\nconst ActivityOptionsPopper = ({\n content,\n options,\n onSelect,\n isLoading,\n ...props\n}) => {\n const { t } = useTranslation();\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [isConfirmationShown, setConfirmationShown] = useState(false);\n const [optionId, setSelectedOptionId] = useState(null);\n\n useEffect(() => {\n if (!isLoading) {\n handleClose();\n }\n }, [isLoading]);\n\n const open = Boolean(anchorEl);\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n const handleClose = () => {\n setAnchorEl(null);\n setConfirmationShown(false);\n };\n\n const id = 'demo-positioned-button';\n\n return (\n <>\n {\n onSelect(content, optionId);\n }}\n >\n \n {t('flag.reportConfirmationDescription')}\n \n \n \n \n . . .\n \n \n {options.map((option, key) => {\n return (\n {\n setSelectedOptionId(option.id);\n setConfirmationShown(true);\n }}\n >\n {option.label}\n \n );\n })}\n \n \n \n );\n};\n\nActivityOptionsPopper.propTypes = {\n // pass back with the onSelect callback for context.\n content: PropTypes.object,\n // An object containing all the different options that will be available in the popper\n options: PropTypes.arrayOf(\n PropTypes.shape({\n // What is displayed to the user\n label: PropTypes.string,\n // a unique id for this option\n id: PropTypes.string,\n }),\n ),\n /*\n * Called whe one of the options in the popper is selected\n * passes the content and the option that was selcted as it's args\n */\n onSelect: PropTypes.func,\n isLoading: PropTypes.bool,\n};\n\nActivityOptionsPopper.defaultProps = {\n content: {},\n options: [],\n onSelect: noop,\n isLoading: false,\n};\n\nexport default ActivityOptionsPopper;\n","export const BUTTON_PRIMARY_COLOR = 'primary';\nexport const BUTTON_SECONDARY_COLOR = 'secondary';\nexport const BUTTON_DEFAULT_COLOR = 'default';\nexport const BUTTON_ACCENT_COLOR = 'accent';\nexport const BUTTON_DANGER_COLOR = 'danger';\nexport const BUTTON_WARNING_COLOR = 'warning';\nexport const BUTTON_SUCCESS_COLOR = 'success';\nexport const BUTTON_INFO_COLOR = 'info';\nexport const BUTTON_WHITE_COLOR = 'white';\nexport const BUTTON_GRAY_COLOR = 'gray';\nexport const BUTTON_LIGHT_COLOR = 'light';\n\nconst BUTTON_COLORS = [\n BUTTON_PRIMARY_COLOR,\n BUTTON_SECONDARY_COLOR,\n BUTTON_DEFAULT_COLOR,\n BUTTON_ACCENT_COLOR,\n BUTTON_DANGER_COLOR,\n BUTTON_WARNING_COLOR,\n BUTTON_SUCCESS_COLOR,\n BUTTON_INFO_COLOR,\n BUTTON_WHITE_COLOR,\n BUTTON_GRAY_COLOR,\n BUTTON_LIGHT_COLOR,\n];\n\nexport default BUTTON_COLORS;\n","import { makeStyles } from '@material-ui/core';\n\nexport default makeStyles((theme) => ({\n container: {\n maxWidth: '800px',\n border: `1px solid ${theme.custom.bgSeparator}`,\n boxShadow: `0 0 0.2px 0.2px ${theme.custom.bgSeparator}`,\n borderRadius: '5px',\n overflow: 'hidden',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '650px',\n },\n },\n actionsContainer: {\n padding: '7px',\n borderTop: `1px solid ${theme.custom.bgSeparator}`,\n backgroundColor: theme.custom.bgLightColor,\n },\n icon: {\n [theme.breakpoints.up('xs')]: {\n paddingRight: '4px',\n maxWidth: '650px',\n },\n fontSize: '24px',\n },\n commentContainer: {\n padding: '5px 10px',\n backgroundColor: theme.custom.bgLightAccentColor,\n maxWidth: '800px',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '650px',\n },\n '& fieldset': {\n borderRadius: '20px',\n },\n },\n commentInput: {\n marginRight: '10px',\n backgroundColor: theme.custom.bgLightAccentColor,\n borderRadius: '20px',\n flex: 7,\n },\n commentPopper: {\n minWidth: 40,\n },\n input: {\n padding: '0px',\n },\n commentButton: {\n color: theme.palette.primary.main,\n flex: 1,\n },\n actionContainer: {\n flex: 1,\n cursor: 'pointer',\n },\n actionText: {\n [theme.breakpoints.down('xs')]: {\n display: 'none',\n },\n },\n}));\n","import { createSelector } from 'reselect';\nimport { transformActivities, transformActivity } from './transforms';\nimport { coerceIntoErrors } from '../common/errors';\n\nexport const getActivitiesState = (state) => state.activities;\n\nexport const activitiesLoading = createSelector(\n [getActivitiesState, (state, activitiesType) => activitiesType],\n (state, activitiesType) => state.activities[activitiesType].loading,\n);\nexport const getErrors = createSelector(getActivitiesState, (state) =>\n coerceIntoErrors(state.errors),\n);\n\nexport const getMessages = createSelector(\n getActivitiesState,\n (state) => state.messages,\n);\n\nexport const activityLoading = createSelector(\n getActivitiesState,\n (state) => state.activityDetail.loading,\n);\n\nexport const activityErrors = createSelector(\n getActivitiesState,\n (state) => state.activityDetail.errors,\n);\nexport const activityDetail = createSelector(getActivitiesState, (state) =>\n transformActivity(state.activityDetail.activity),\n);\n\nexport const getLikeLoadingActivityId = createSelector(\n getActivitiesState,\n (state) => state.likePost.activityId,\n);\nexport const getShareURLLoadingActivityId = createSelector(\n getActivitiesState,\n (state) => state.shareURL.activityId,\n);\nexport const getAddCommentLoadingActivityId = createSelector(\n getActivitiesState,\n (state) => state.addComment.activityId,\n);\n\nexport const getActivities = createSelector(\n [getActivitiesState, (state, activitiesType) => activitiesType],\n (state, activitiesType) => {\n const activities = state.activities[activitiesType]?.activities;\n return activities && activities.length > 0\n ? transformActivities(activities)\n : [];\n },\n);\n","import { getAppImages } from '../utils';\n\nexport const flaggedContentToTableRow = (flaggedContent) => {\n const {\n id,\n photoSizes,\n message,\n flags,\n created,\n updated,\n user,\n isComment,\n } = flaggedContent || {};\n return {\n id,\n icon: user?.imageSizes?.[0]?.url || getAppImages().defaultProfileIcon,\n user: user?.name || '',\n comment: message,\n photo: photoSizes?.[0]?.url,\n count: isComment\n ? flags.length\n : flags.filter((flag) => !flag.flaggedCommentId).length,\n created: created,\n flaggedOn: updated,\n };\n};\n\nexport const getCommentRows = (data) => {\n const commentIds = [];\n return data?.flatMap((item) =>\n item.flags\n .filter(\n (flag) =>\n flag.flaggedCommentId &&\n item.comments.some((c) => c.id === flag.flaggedCommentId) &&\n !commentIds.includes(flag.flaggedCommentId) &&\n commentIds.push(flag.flaggedCommentId),\n )\n .map((flag) => {\n const comment = item.comments.find(\n (comment) => comment?.id === flag.flaggedCommentId,\n );\n return flaggedContentToTableRow({\n ...item,\n photoSizes: [],\n flags: item.flags.filter(\n (f) => f.flaggedCommentId === flag.flaggedCommentId,\n ),\n message: comment?.message,\n user: comment?.user,\n created: comment?.postedOn,\n id: item.id,\n commentId: comment?.id,\n isComment: true,\n });\n }),\n );\n};\n\nexport const flaggedContentToTableData = (data) => {\n const dat = data;\n return data\n ?.filter((item) => item.flags.some((flag) => !flag.flaggedCommentId))\n .map((item) => flaggedContentToTableRow(item))\n .concat(getCommentRows(dat));\n};\n","import { createSelector } from 'reselect';\nimport { coerceIntoErrors } from '../common/errors';\nimport { flaggedContentToTableData } from './transforms';\n\nexport const getFlaggedState = (state) => state.flags;\n\nexport const isFlaggedContentLoading = createSelector(\n getFlaggedState,\n (flagged) => flagged.loading,\n);\n\nexport const getFlaggedContentErrors = createSelector(\n getFlaggedState,\n (flagged) => coerceIntoErrors(flagged.errors),\n);\n\nexport const getFlaggedContent = createSelector(\n getFlaggedState,\n (flagged) => flagged.content,\n);\n\nexport const getPresentableFlaggedContent = createSelector(\n getFlaggedContent,\n (content) => flaggedContentToTableData(content),\n);\n\nexport const getFlaggedContentTotalCount = createSelector(\n getFlaggedState,\n (flagged) => flagged.total,\n);\n\nexport const getFlaggedContentTotal = createSelector(\n getFlaggedState,\n (flagged) => flagged.total,\n);\n\nexport const getReportPostContentId = createSelector(\n getFlaggedState,\n (state) => state.reportPost.contentId,\n);\n\nexport const getErrors = createSelector(getFlaggedState, (state) =>\n coerceIntoErrors(state.errors),\n);\n\nexport const getMessages = createSelector(\n getFlaggedState,\n (state) => state.messages,\n);\n","import React, { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Button,\n CircularProgress,\n Grid,\n TextField,\n Typography,\n} from '@material-ui/core';\n\nimport ActivityCardHeader from './ActivityCardHeader';\nimport ActivityCardBadge from './ActivityCardBadge';\nimport ActivityCardPhoto from './ActivityCardPhoto';\nimport ActivityCardLikes from './ActivityCardLikes';\nimport ActivityCardComment from './ActivityCardComment';\nimport ActivityOptionsPopper from './ActivityOptionsPopper';\nimport useStyles from './styles';\nimport { AddComment, Favorite, FavoriteBorder } from '@material-ui/icons';\nimport ShareIcon from '@material-ui/icons/Share';\nimport { useTranslation } from 'react-i18next';\nimport copy from 'copy-to-clipboard';\nimport { connect } from 'react-redux';\nimport {\n activityLikeRequested,\n activityShareURLRequested,\n addCommentRequested,\n} from '../../activities/actions';\nimport { noop } from '../../utils';\nimport { activityReportRequested } from '../../flags/actions';\n\nimport {\n getAddCommentLoadingActivityId,\n getLikeLoadingActivityId,\n getShareURLLoadingActivityId,\n} from '../../activities/selectors';\nimport { getUserId } from '../../user/selectors';\nimport SnackbarAlert from '../SnackbarAlert';\nimport { getReportPostContentId } from '../../flags/selectors';\nimport {\n REPORT_TYPE_CAPTION,\n REPORT_TYPE_PHOTO,\n REPORT_TYPE_POST,\n REPORT_TYPE_COMMENT,\n} from './ActivityOptionsPopper/constants';\n\nconst ActivityCard = ({\n activity,\n addComment,\n getShareURL,\n likePost,\n likeLoadingActivityId,\n addCommentLoadingActivityId,\n shareURLLoadingActivityId,\n userId,\n submitReport,\n activityReportLoadingId,\n ...props\n}) => {\n const { t } = useTranslation();\n\n const [comment, setComment] = useState('');\n const [showComment, setShowComment] = useState(false);\n const [snackbarMessage, setSnackbarMessage] = useState('');\n const [shareRequested, setShareRequested] = useState(false);\n\n const comments = activity.comments || [];\n\n const isLiked = useMemo(\n () => activity.likes?.some((like) => like.user?.id === userId),\n [activity.likes, userId],\n );\n\n const likeLoading = useMemo(() => likeLoadingActivityId === activity.id, [\n likeLoadingActivityId,\n activity.id,\n ]);\n\n const shareURLLoading = useMemo(\n () => shareURLLoadingActivityId === activity.id,\n [shareURLLoadingActivityId, activity.id],\n );\n\n const addCommentLoading = useMemo(\n () => addCommentLoadingActivityId === activity.id,\n [addCommentLoadingActivityId, activity.id],\n );\n\n const addReportLoading = useMemo(\n () => activityReportLoadingId === activity.id,\n [activityReportLoadingId, activity.id],\n );\n\n const classes = useStyles();\n\n const submitComment = () => {\n if (comment?.length > 0) {\n addComment(activity.id, comment);\n }\n };\n\n useEffect(() => {\n setShowComment(false);\n }, [comments.length]);\n\n useEffect(() => {\n if (activity.shareURL && shareRequested) {\n copy(activity.shareURL);\n setSnackbarMessage(t('sharing.copied'));\n setShareRequested(false);\n }\n }, [activity.shareURL, shareRequested, t]);\n\n const openComments = () => {\n setShowComment(true);\n };\n\n const onShare = () => {\n if (!activity.shareURL) {\n getShareURL(activity.id);\n setShareRequested(true);\n } else {\n copy(activity.shareURL);\n setSnackbarMessage(t('sharing.copied'));\n }\n };\n\n const onLike = () => {\n likePost(activity.id, !isLiked);\n };\n\n const getReportingOptionsForActivity = () => {\n const reportTypes = [REPORT_TYPE_POST];\n // if the current user is the creator, they shouldn't be able to report. deleting and modifying needed instead (FEAT JB-1145)\n\n // If an image is contained, in can be reported\n if (activity.photoUrl) {\n reportTypes.push(REPORT_TYPE_PHOTO);\n }\n // Otherwise, only the post (and it's caption) can be reported\n return reportTypes.map((reportType) => {\n return {\n id: reportType,\n label: t(`flag.${reportType}`),\n };\n });\n };\n\n const featuredActivity =\n activity?.badges?.[0] || activity?.masteries?.[0] || activity;\n const otherActivities = activity?.badges\n ?.filter((badge) => badge.id !== featuredActivity.id)\n .concat(\n activity?.masteries?.filter(\n (mastery) => mastery.id !== featuredActivity.id,\n ) || Array(activity),\n );\n\n return (\n \n \n {otherActivities.length > 0 && (\n \n )}\n \n \n \n \n {likeLoading ? (\n \n ) : (\n <>\n {isLiked ? (\n \n ) : (\n \n )}\n \n {!isLiked\n ? t('activitiesPage.like')\n : t('activitiesPage.unlike')}\n \n \n )}\n \n \n \n \n {t('activitiesPage.comment')}\n \n \n \n {shareURLLoading ? (\n \n ) : (\n <>\n \n \n {t('share')}\n \n \n )}\n \n {\n submitReport(activity.id);\n }}\n isLoading={addReportLoading}\n content={activity}\n options={getReportingOptionsForActivity()}\n />\n \n {showComment && (\n \n setComment(e.target.value)}\n value={comment}\n variant=\"outlined\"\n InputProps={{\n style: { paddingTop: '5px', paddingBottom: '5px' },\n }}\n margin=\"none\"\n />\n \n {addCommentLoading ? (\n \n ) : (\n \n {t('post')}\n \n )}\n \n \n )}\n {activity.comments &&\n activity.comments.map((comment, index) => (\n \n \n {\n submitReport(activity.id, comment.id);\n }}\n isLoading={addReportLoading}\n content={activity}\n options={\n comment.isCaption\n ? [\n {\n id: REPORT_TYPE_CAPTION,\n label: t(\n `flag.${REPORT_TYPE_CAPTION}`,\n ),\n },\n ]\n : [\n {\n id: REPORT_TYPE_COMMENT,\n label: t(\n `flag.${REPORT_TYPE_COMMENT}`,\n ),\n },\n ]\n }\n />\n \n \n ))}\n setSnackbarMessage('')}\n />\n \n );\n};\n\nActivityCard.propTypes = {\n activity: PropTypes.shape({\n id: PropTypes.string.isRequired,\n userId: PropTypes.string.isRequired,\n contentId: PropTypes.string,\n contentType: PropTypes.string,\n shareURL: PropTypes.string,\n userName: PropTypes.string.isRequired,\n userImage: PropTypes.string,\n activityName: PropTypes.string.isRequired,\n activityImage: PropTypes.string,\n activityCreated: PropTypes.string.isRequired,\n masteries: PropTypes.arrayOf(\n PropTypes.shape({\n activityName: PropTypes.string,\n acxtivityImage: PropTypes.string,\n id: PropTypes.string,\n }),\n ).isRequired,\n badges: PropTypes.arrayOf(\n PropTypes.shape({\n activityName: PropTypes.string,\n acxtivityImage: PropTypes.string,\n id: PropTypes.string,\n }),\n ).isRequired,\n photoUrl: PropTypes.string,\n likes: PropTypes.object.isRequired,\n numLikes: PropTypes.number,\n comments: PropTypes.arrayOf(\n PropTypes.shape({\n commentUser: PropTypes.string,\n commentText: PropTypes.string,\n }),\n ),\n }).isRequired,\n likeLoadingActivityId: PropTypes.string,\n shareURLLoadingActivityId: PropTypes.string,\n addCommentLoadingActivityId: PropTypes.string,\n activityReportLoadingId: PropTypes.string,\n addComment: PropTypes.func,\n likePost: PropTypes.func,\n getShareURL: PropTypes.func,\n userId: PropTypes.string,\n submitReport: PropTypes.func,\n};\n\nActivityCard.defaultProps = {\n likeLoadingActivityId: '',\n shareURLLoadingActivityId: '',\n addCommentLoadingActivityId: '',\n activityReportLoadingId: '',\n addComment: noop,\n likePost: noop,\n getShareURL: noop,\n userId: '',\n submitReport: noop,\n};\n\nconst mapStateToProps = (state) => ({\n likeLoadingActivityId: getLikeLoadingActivityId(state),\n shareURLLoadingActivityId: getShareURLLoadingActivityId(state),\n addCommentLoadingActivityId: getAddCommentLoadingActivityId(state),\n activityReportLoadingId: getReportPostContentId(state),\n userId: getUserId(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n getShareURL: (activityId) =>\n dispatch(activityShareURLRequested(activityId)),\n submitReport: (activityId, commentId) =>\n dispatch(activityReportRequested(activityId, commentId)),\n likePost: (activityId, like) =>\n dispatch(activityLikeRequested(activityId, like)),\n addComment: (activityId, comment) =>\n dispatch(addCommentRequested(activityId, comment)),\n});\n\nexport const UnconnectedActivityCard = ActivityCard;\nexport default connect(mapStateToProps, mapDispatchToProps)(ActivityCard);\n","export const REPORT_TYPE_POST = 'post';\nexport const REPORT_TYPE_PHOTO = 'photo';\nexport const REPORT_TYPE_CAPTION = 'caption';\nexport const REPORT_TYPE_COMMENT = 'comment';\nexport const REPORT_TYPE_PROFILE = 'profile';\n","import { makeStyles } from '@material-ui/core';\n\nexport default makeStyles((theme) => ({\n cardLoaderContainer: {\n padding: '20px 10px 20px 20px',\n width: '100%',\n maxWidth: '800px',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '650px',\n },\n },\n}));\n","import ContentLoader from 'react-content-loader';\nimport React from 'react';\nimport useStyles from './styles';\nimport { Grid } from '@material-ui/core';\n\nconst ActivityCardLoader = () => {\n const classes = useStyles();\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default ActivityCardLoader;\n","import { makeStyles } from '@material-ui/core';\n\nexport default makeStyles((theme) => ({\n cardContainer: {\n marginBottom: '20px',\n },\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport InfiniteScroller from '../../InfiniteScroller';\nimport ActivityCard from '../index';\nimport ActivityCardLoader from '../ActivityCardLoader';\nimport useStyles from './styles';\nimport SnackBarAPIResponse from '../../SnackbarAlert/SnackBarAPIResponse';\nimport { noop } from '../../../utils';\nimport { connect } from 'react-redux';\nimport { getErrors, getMessages } from '../../../activities/selectors';\nimport {\n getErrors as getFlagErrors,\n getMessages as getFlagMessages,\n} from '../../../flags/selectors';\nimport { clearActivityErrors } from '../../../activities/actions';\nimport { clearFlagMessages } from '../../../flags/actions';\nimport { Grid } from '@material-ui/core';\n\nexport const ActivityCardScroller = ({\n loading,\n errors,\n messages,\n loadFunc,\n items,\n clearErrors,\n}) => {\n const { t } = useTranslation();\n const classes = useStyles();\n return (\n \n (\n \n )}\n items={items}\n listEmptyText={t('activity.empty')}\n Loader={\n \n \n \n \n }\n />\n \n \n );\n};\n\nActivityCardScroller.propTypes = {\n loading: PropTypes.bool.isRequired,\n errors: PropTypes.array.isRequired,\n messages: PropTypes.array.isRequired,\n loadFunc: PropTypes.func.isRequired,\n items: PropTypes.object.isRequired,\n clearErrors: PropTypes.func,\n};\n\nActivityCardScroller.defaultProps = {\n errors: [],\n messages: [],\n flagErrors: [],\n flagMessages: [],\n clearErrors: noop,\n};\n\nconst mapStateToProps = (state) => ({\n errors: [...(getErrors(state) || []), ...(getFlagErrors(state) || [])],\n messages: [...getMessages(state), ...getFlagMessages(state)],\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n clearErrors: () => {\n dispatch(clearActivityErrors());\n dispatch(clearFlagMessages());\n },\n});\n\nconst ConnectedActivityCardScroller = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(ActivityCardScroller);\n\nexport default ConnectedActivityCardScroller;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport { useHistory } from 'react-router-dom';\nimport {\n getActiveCommunityId,\n getActiveCommunityName,\n getActiveCommunityImage,\n getActiveCommunity,\n getActiveCommunityOrgId,\n} from '../../../user/selectors';\nimport styles from './styles';\nimport ProTips from '../../../common/ProTips';\nimport DatePickerRange from '../../../common/DatePickerRange';\nimport ActiveChallenges from '../../../common/ActiveChallenges';\nimport CreateChallengeBanner from '../../../common/CreateChallengeBanner';\nimport ActivateModal from '../../../common/ActivateModal';\nimport CommonPropTypes from '../../../common/propTypes';\nimport {\n getChallengesScreenActionErrors,\n getChallengesScreenActionResponse,\n getGroupChallenges,\n isChallengesScreenActionLoading,\n isGroupLoading,\n} from '../../ChallengesScreen/selectors';\nimport {\n getHeadlinePhotoUrl,\n isChallengeLoading,\n} from '../../../challenges/selectors';\nimport {\n challengeActivationRequested,\n challengeDeactivationRequested,\n challengeReportRequested,\n challengesRequested,\n clearChallengesScreenActionErrors,\n viewChallengeRequested,\n} from '../../../challenges/actions';\nimport {\n BUTTONS_CELL,\n DEACTIVATE_ACTION,\n GENERATE_REPORT_ACTION,\n GROUP_ACTIVE,\n GROUP_UPCOMING,\n} from '../../ChallengesScreen/constants';\nimport { handleButtonsCell } from '../../../utils/challengeButtons';\nimport SnackBarAPIResponse from '../../../common/SnackbarAlert/SnackBarAPIResponse';\nimport { noop } from '../../../common/utils';\nimport { trackEvent } from '../../../utils/analytics';\nimport ContentLoader from 'react-content-loader';\nimport Graphs from './Graphs';\n\nimport AccountTierNotificationCard from '../../../common/AccountTierNotificationCard';\nimport { getCurrentSubscription } from '../../../subscriptions/selectors';\nimport { shouldShowSubscription } from '../../../subscriptions/utils';\nimport { Can } from '../../../casl/ability-context';\nimport { ANALYTICS_FILTER_CHANGED } from '../../../constants/analyticsEvents';\nimport { activityDataRequested } from '../../../activities/actions';\nimport { ActivityCardScroller } from '../../../common/ActivityCard/ActivityCardScroller';\nimport { ACTIVITIES_FEED_TYPE_TRENDING } from '../../../activities/constants';\nimport { getActivities } from '../../../activities/selectors';\n\nexport const AdminHome = ({\n classes,\n communityId,\n isLoading,\n isLoadingActive,\n isLoadingUpcoming,\n actionResponse,\n loadFunc,\n activeChallenge,\n upcomingChallenge,\n requestDeactivation,\n requestChallengeReport,\n isActionLoading,\n actionErrors,\n clearErrors,\n requestChallenge,\n challengeCoverPhotoUrl,\n accountPlanData,\n activities,\n fetchCommunityActivities,\n communityName,\n communityImage,\n community,\n activeCommunityOrgId,\n}) => {\n useEffect(() => {\n if (communityId) {\n fetchCommunityActivities(communityId);\n }\n }, [communityId, fetchCommunityActivities]);\n const { t } = useTranslation();\n const history = useHistory();\n const [modalDetails, setModalDetails] = useState(null);\n const [isActionSent, setActionSent] = useState(false);\n const [tip, setTip] = useState('');\n const [haveRequestedChallenges, setHaveRequestedChallenges] = useState(\n false,\n );\n\n const loadMoreActivities = useCallback(\n (options) => {\n fetchCommunityActivities(communityId, options);\n },\n [fetchCommunityActivities, communityId],\n );\n\n const [startDate, setStartDate] = useState(moment().subtract(1, 'months'));\n const [endDate, setEndDate] = useState(moment());\n\n // eslint-disable-next-line react/prop-types\n const filteredActivities = activities.filter((activity) => {\n const activityDate = moment(activity.activityCreated);\n return activityDate.isBetween(startDate, endDate, 'day', '[]');\n });\n\n const isOrganization = activeCommunityOrgId === communityId;\n const entityType = isOrganization ? 'Organization' : 'Community';\n\n const handleDateChange = (values) => {\n trackEvent(ANALYTICS_FILTER_CHANGED);\n setStartDate(values.startDate);\n setEndDate(values.endDate);\n };\n\n useEffect(() => {\n const proTips = t('proTips.tips', { returnObjects: true });\n const randomProTip =\n proTips[Math.floor(Math.random() * proTips.length)];\n setTip(randomProTip.tip);\n }, [t]);\n\n const loadActiveChallenges = useCallback(() => {\n loadFunc({\n communityId,\n group: GROUP_ACTIVE,\n });\n }, [loadFunc, communityId]);\n\n const loadUpcomingChallenges = useCallback(() => {\n loadFunc({\n communityId,\n group: GROUP_UPCOMING,\n });\n }, [loadFunc, communityId]);\n\n useEffect(() => {\n loadActiveChallenges();\n loadUpcomingChallenges();\n }, [loadActiveChallenges, loadUpcomingChallenges]);\n\n useEffect(() => {\n if (activeChallenge?.[0]) {\n const challenge = activeChallenge[0];\n requestChallenge({ challengeId: challenge.id, communityId });\n }\n if (upcomingChallenge?.[upcomingChallenge.length - 1]) {\n const challenge = upcomingChallenge[upcomingChallenge.length - 1];\n requestChallenge({ challengeId: challenge.id, communityId });\n }\n setHaveRequestedChallenges(true);\n }, [activeChallenge, upcomingChallenge, requestChallenge, communityId]);\n\n useEffect(() => {\n if (\n isActionSent &&\n !isActionLoading &&\n actionErrors == null &&\n actionResponse != null\n ) {\n loadActiveChallenges();\n setActionSent(false);\n }\n }, [\n isActionSent,\n isActionLoading,\n actionErrors,\n actionResponse,\n loadActiveChallenges,\n ]);\n\n const handleCloseModal = () => {\n modalDetails && setModalDetails({ ...modalDetails, isOpen: false });\n };\n\n const handleConfirm = () => {\n handleCloseModal();\n const challengeId = modalDetails.items[0].identifier;\n const requestBody = {\n communityId,\n challengeId,\n };\n switch (modalDetails.action) {\n case DEACTIVATE_ACTION:\n requestDeactivation(requestBody);\n setActionSent(true);\n break;\n case GENERATE_REPORT_ACTION:\n requestChallengeReport(challengeId);\n break;\n default:\n break;\n }\n };\n\n const onButtonsCell = (id, key) => {\n const challenge = activeChallenge.find((item) => item.id === id);\n handleButtonsCell(\n id,\n key,\n challenge?.name,\n challenge?.icon?.[0]?.url,\n history,\n setModalDetails,\n t,\n );\n };\n\n return (\n \n {modalDetails && (\n \n )}\n \n {shouldShowSubscription() && (\n \n )}\n \n \n \n {`${t('adminDash')} — ${communityName}`}\n \n \n {t('welcomeManage', { entityType })}\n \n \n {isLoading ||\n isLoadingActive ||\n isLoadingUpcoming ||\n !haveRequestedChallenges ? (\n \n \n \n \n \n \n ) : challengeCoverPhotoUrl !== null && activeChallenge?.[0] ? (\n
    \n \n
    \n ) : challengeCoverPhotoUrl !== null && upcomingChallenge?.[0] ? (\n
    \n \n
    \n ) : (\n
    \n \n
    \n )}\n\n \n \n \n \n \n \n \n {t('impact.homeHeader')}\n \n \n \n \n \n \n \n \n\n \n \n \n {t('Activity')}\n \n \n \n\n \n\n \n \n );\n};\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n communityName: getActiveCommunityName(state),\n communityImage: getActiveCommunityImage(state),\n isLoading:\n isChallengeLoading(state) ||\n isGroupLoading(state, GROUP_ACTIVE) ||\n isGroupLoading(state, GROUP_UPCOMING),\n isLoadingActive: isGroupLoading(state, GROUP_ACTIVE),\n isLoadingUpcoming: isGroupLoading(state, GROUP_UPCOMING),\n isActionLoading: isChallengesScreenActionLoading(state),\n actionErrors: getChallengesScreenActionErrors(state),\n actionResponse: getChallengesScreenActionResponse(state),\n activeChallenge: getGroupChallenges(state, GROUP_ACTIVE),\n upcomingChallenge: getGroupChallenges(state, GROUP_UPCOMING),\n challengeCoverPhotoUrl: getHeadlinePhotoUrl(state),\n accountPlanData: getCurrentSubscription(state),\n activities: getActivities(state, ACTIVITIES_FEED_TYPE_TRENDING),\n community: getActiveCommunity(state),\n activeCommunityOrgId: getActiveCommunityOrgId(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n loadFunc: (request) => dispatch(challengesRequested(request)),\n requestActivation: (request) =>\n dispatch(challengeActivationRequested(request)),\n requestDeactivation: (request) =>\n dispatch(challengeDeactivationRequested(request)),\n requestChallengeReport: (challengeId) =>\n dispatch(challengeReportRequested(challengeId)),\n clearErrors: () => dispatch(clearChallengesScreenActionErrors()),\n requestChallenge: ({ challengeId, communityId }) =>\n dispatch(viewChallengeRequested({ challengeId, communityId })),\n fetchCommunityActivities: (communityId) =>\n dispatch(\n activityDataRequested(ACTIVITIES_FEED_TYPE_TRENDING, {\n communityId,\n }),\n ),\n});\n\nAdminHome.propTypes = {\n fetchCommunityActivities: PropTypes.func.isRequired,\n activities: PropTypes.shape({\n community: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n actionId: PropTypes.string,\n actionName: PropTypes.string,\n imageSizes: PropTypes.arrayOf(\n PropTypes.shape({\n url: PropTypes.string,\n }),\n ),\n comments: PropTypes.arrayOf(\n PropTypes.shape({\n commentUser: PropTypes.string,\n commentText: PropTypes.string,\n }),\n ),\n Liked: PropTypes.arrayOf(\n PropTypes.shape({\n user: PropTypes.string,\n }),\n ),\n photoSizes: PropTypes.arrayOf(\n PropTypes.shape({\n url: PropTypes.string,\n }),\n ),\n }),\n ).isRequired,\n created: PropTypes.string,\n badges: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n }),\n ),\n masteries: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n }),\n ),\n user: PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n imageSizes: PropTypes.arrayOf(\n PropTypes.shape({\n url: PropTypes.string,\n }),\n ),\n }).isRequired,\n }),\n ).isRequired,\n }).isRequired,\n communityId: PropTypes.string.isRequired,\n classes: PropTypes.object.isRequired,\n isLoading: PropTypes.bool.isRequired,\n isLoadingActive: PropTypes.bool.isRequired,\n isLoadingUpcoming: PropTypes.bool.isRequired,\n actionResponse: PropTypes.object,\n loadFunc: PropTypes.func.isRequired,\n activeChallenge: PropTypes.array,\n upcomingChallenge: PropTypes.array,\n requestDeactivation: PropTypes.func.isRequired,\n requestChallengeReport: PropTypes.func.isRequired,\n isActionLoading: PropTypes.bool.isRequired,\n actionErrors: CommonPropTypes.errors,\n clearErrors: PropTypes.func.isRequired,\n challengeCoverPhotoUrl: PropTypes.string,\n requestChallenge: PropTypes.func.isRequired,\n accountPlanData: PropTypes.array,\n communityName: PropTypes.string.isRequired,\n communityImage: PropTypes.string,\n community: PropTypes.object,\n activeCommunityOrgId: PropTypes.string,\n};\n\nAdminHome.defaultProps = {\n actionResponse: null,\n loadFunc: noop,\n tableData: null,\n actionErrors: null,\n activeChallenge: null,\n upcomingChallenge: null,\n challengeCoverPhotoUrl: null,\n accountPlanData: [],\n community: null,\n communityImage: null,\n activeCommunityOrgId: '',\n activities: [],\n};\n\nconst StyledAdminHome = withStyles(styles)(AdminHome);\n\nexport default connect(mapStateToProps, mapDispatchToProps)(StyledAdminHome);\n","const styles = (theme) => ({\n container: {\n padding: `29px 0px`,\n maxWidth: theme.custom.mainContentWidth,\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n header: {\n paddingLeft: theme.custom.mainContentHorizontalPadding,\n paddingRight: theme.custom.mainContentHorizontalPadding,\n },\n bannerTitle: {\n marginBottom: 10,\n marginTop: 10,\n fontSize: 30,\n fontWeight: 'bold',\n },\n bannerBody: {\n margin: '0 0 10px',\n fontSize: 24,\n },\n sectionHeading: {\n marginTop: '20px',\n marginBottom: '10px',\n },\n title: {\n fontSize: '36px',\n },\n infoIcon: {\n marginLeft: '6px',\n fontSize: '28px',\n color: 'rgba(51,51,51,.25)',\n cursor: 'pointer',\n\n '&:hover': {\n color: 'rgba(51,51,51,.5)',\n },\n },\n searchContainer: {\n position: 'relative',\n paddingBottom: '20px',\n },\n emptyTextContainer: {\n textAlign: 'center',\n },\n emptyText: {\n fontWeight: 600,\n color: theme.custom.textLightSecondaryColor,\n },\n searchList: {\n border: 'solid 1px',\n borderColor: theme.custom.grey,\n display: 'inline-block',\n borderRadius: '5px',\n maxHeight: '300px',\n height: 'auto',\n overflowY: 'auto',\n position: 'absolute',\n left: '50px',\n zIndex: '9999',\n backgroundColor: 'white',\n boxShadow: '0 6px 12px rgb(0 0 0 / 18%)',\n '&::-webkit-scrollbar': {\n width: '0.7em',\n },\n '&::-webkit-scrollbar-track': {\n boxShadow: 'inset 0 0 6px rgba(0,0,0,0.00)',\n webkitBoxShadow: 'inset 0 0 6px rgba(0,0,0,0.00)',\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: 'white',\n borderRadius: '20px',\n },\n '& li': {\n padding: '5px 25px',\n '&:hover': {\n backgroundColor: theme.palette.primary.main,\n '& a': {\n color: 'white',\n },\n },\n '& a': {\n display: 'flex',\n textDecoration: 'none',\n color: theme.custom.textDarkColor,\n '&:focus-visible': {\n outline: 'none',\n },\n '& img': {\n width: '25px',\n marginRight: '10px',\n },\n },\n },\n '&:hover': {\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: 'rgba(0,0,0,.1)',\n borderRadius: '20px',\n },\n },\n },\n});\n\nexport default styles;\n","const styles = (theme) => ({\n appBar: {\n backgroundColor: 'transparent',\n color: theme.custom.grey60,\n fontSize: '14px',\n position: 'relative',\n '&:after': {\n content: '\"\"',\n position: 'absolute',\n width: '100%',\n height: '3px',\n bottom: '0',\n left: '0',\n backgroundColor: '#e5e5e5',\n zIndex: '-1',\n },\n '& .MuiTabs-scrollButtonsDesktop': {\n display: 'flex',\n },\n },\n tab: {\n minWidth: '0px',\n padding: '10px 16px',\n '&:hover': {\n color: '#757575',\n borderBottomColor: '#757575',\n },\n '&.Mui-selected': {\n color: theme.palette.primary.main,\n borderBottomColor: theme.palette.primary.main,\n },\n },\n});\nexport default styles;\n","const styles = (theme) => ({\n mainContainer: {\n padding: '10px 0px',\n paddingLeft: 12,\n },\n emptyTextContainer: {\n textAlign: 'center',\n },\n emptyText: {\n fontWeight: 600,\n color: theme.custom.textLightSecondaryColor,\n },\n});\n\nexport default styles;\n","import makeStyles from '@material-ui/styles/makeStyles';\n\nexport default makeStyles((theme) => ({\n navContainer: {\n textDecoration: 'none',\n },\n cardContainer: ({ backgroundImageURL }) => ({\n borderRadius: '3px',\n position: 'relative',\n backgroundImage: `url(${backgroundImageURL})`,\n backgroundPosition: '50% 50%',\n backgroundSize: 'cover',\n padding: '100px 10px 10px 10px',\n height: '100%',\n flexWrap: 'nowrap',\n alignItems: 'center',\n [theme.breakpoints.up('lg')]: {\n height: '100%',\n },\n '&:after': {\n content: '\"\"',\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: '0',\n left: '0',\n backgroundColor: '#00000080',\n transition: '0.1s',\n },\n '&:hover': {\n '&::after': {\n backgroundColor: '#00000090',\n transition: '0.1s',\n },\n },\n }),\n iconBox: {\n zIndex: 1,\n paddingRight: '10px',\n },\n icon: {\n width: '123px',\n [theme.breakpoints.down('xs')]: {\n width: '90px',\n },\n },\n infoContainer: {\n width: '100%',\n color: theme.palette.common.white,\n zIndex: 1,\n },\n name: {\n fontSize: '20px',\n marginBottom: '4px',\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: 2,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n lineHeight: '1.1',\n fontWeight: '500',\n },\n description: {\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: 3,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n lineHeight: '1.4',\n },\n iconChallenge: {\n border: `2px solid ${theme.palette.common.white}`,\n borderRadius: '6px 6px 50% 50%',\n [theme.breakpoints.down('xs')]: {\n width: '90px',\n },\n },\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport parse from 'html-react-parser';\nimport { NavLink } from 'react-router-dom';\nimport { Grid, Typography } from '@material-ui/core';\nimport useStyles from './styles';\nimport IMAGES from '../../constants/images';\n\nconst ActionCard = ({\n backgroundImageURL,\n iconImageURL,\n name,\n description,\n actionLink,\n}) => {\n const classes = useStyles({ backgroundImageURL });\n const { t } = useTranslation();\n\n return (\n \n \n \n \n \n \n \n \n {name}\n \n \n \n \n {description && parse(description)}\n \n \n \n \n \n );\n};\n\nActionCard.propTypes = {\n backgroundImageURL: PropTypes.string.isRequired,\n iconImageURL: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n actionLink: PropTypes.string.isRequired,\n};\n\nActionCard.defaultProps = {\n backgroundImageURL: '',\n iconImageURL: '',\n name: '',\n description: '',\n actionLink: '',\n};\n\nexport default ActionCard;\n","import PropTypes from 'prop-types';\nimport CommonPropTypes from '../common/propTypes';\n\nexport const LinkPropType = PropTypes.shape({\n name: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n imageUrl: PropTypes.string.isRequired,\n linkUrl: PropTypes.string.isRequired,\n isCommunity: PropTypes.bool.isRequired,\n sizes: PropTypes.array.isRequired,\n});\n\nexport const BonusPropType = PropTypes.shape({\n name: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired,\n imageUrl: PropTypes.string.isRequired,\n});\n\nexport const VideoPropType = PropTypes.shape({\n name: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n videoId: PropTypes.string.isRequired,\n isCommunity: PropTypes.bool.isRequired,\n});\n\nexport const actionPropType = PropTypes.shape({\n headlinePhotoUrl: PropTypes.string,\n headlinePhotoAuthor: PropTypes.string,\n headlinePhotoId: PropTypes.string,\n iconUrl: PropTypes.string,\n name: PropTypes.string,\n description: PropTypes.string,\n originalDescription: PropTypes.string,\n contentBonuses: PropTypes.arrayOf(BonusPropType),\n videos: PropTypes.arrayOf(VideoPropType),\n rawLinks: PropTypes.array,\n links: PropTypes.arrayOf(LinkPropType),\n});\n\nexport const actionTablePropType = PropTypes.shape({\n data: PropTypes.arrayOf(actionPropType),\n pagination: PropTypes.shape({\n totalCount: PropTypes.number,\n }),\n loading: PropTypes.bool.isRequired,\n errors: CommonPropTypes.errors,\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { withStyles, Grid, Typography } from '@material-ui/core';\nimport styles from './styles';\nimport ActionCard from '../../ActionCard';\nimport { actionPropType } from '../../../actions/propTypes';\nimport { noop } from '../../utils';\n\nconst TabPanel = ({ classes, actionCards, value, index, onCardClick }) => {\n const { t } = useTranslation();\n\n return (\n
    \n );\n};\n\nTabPanel.propTypes = {\n classes: PropTypes.object.isRequired,\n actionCards: PropTypes.arrayOf(actionPropType).isRequired,\n value: PropTypes.number.isRequired,\n index: PropTypes.number.isRequired,\n onCardClick: PropTypes.func,\n};\n\nTabPanel.defaultProps = {\n onCardClick: noop,\n};\n\nexport default withStyles(styles)(TabPanel);\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { AppBar, Tab, Tabs, withStyles } from '@material-ui/core';\nimport styles from './styles';\nimport TabPanel from './TabPanel';\nimport { useTranslation } from 'react-i18next';\nimport SwipeableViews from 'react-swipeable-views';\nimport { noop } from '../utils';\n\nconst ActionTabMenu = ({\n classes,\n tabs,\n allActionCards,\n onCardClick,\n lastVisitedTabIndex,\n tabAction,\n}) => {\n const [value, setValue] = useState(lastVisitedTabIndex);\n\n const handleChange = (event, newValue) => {\n tabAction(newValue);\n setValue(newValue);\n };\n const { t } = useTranslation();\n\n const a11yProps = (index) => {\n return {\n id: `simple-tab-${index}`,\n 'aria-controls': `simple-tabpanel-${index}`,\n };\n };\n\n return (\n <>\n \n \n {tabs.map((tab, index) => (\n \n ))}\n \n \n handleChange('', value)}\n >\n {allActionCards.map((actionCards, index) => (\n \n ))}\n \n \n );\n};\n\nActionTabMenu.propTypes = {\n classes: PropTypes.object.isRequired,\n tabs: PropTypes.arrayOf(PropTypes.string).isRequired,\n allActionCards: PropTypes.arrayOf(PropTypes.object),\n onCardClick: PropTypes.func,\n lastVisitedTabIndex: PropTypes.number,\n tabAction: PropTypes.func,\n};\n\nActionTabMenu.defaultProps = {\n tabs: [],\n allActionCards: [],\n onCardClick: noop,\n lastVisitedTabIndex: 1,\n tabAction: noop,\n};\n\nexport default withStyles(styles)(ActionTabMenu);\n","const searchFieldRootBasic = (theme) => ({\n width: '100%',\n borderRadius: '8px',\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n padding: '10px 16px',\n border: '1px solid transparent',\n backgroundColor: theme.custom.inputBackground,\n fontSize: '18px',\n\n '&:before, &:after': {\n display: 'none',\n },\n\n '&:hover': {\n backgroundColor: theme.custom.bgLightColor,\n },\n\n '&:active:not(.Mui-disabled)': {\n backgroundColor: theme.palette.common.white,\n },\n\n '&.Mui-focused': {\n borderColor: theme.palette.primary,\n },\n});\n\nconst styles = (theme) => ({\n searchButton: {\n borderRadius: 0,\n borderTopLeftRadius: '8px',\n borderBottomLeftRadius: '8px',\n backgroundColor: theme.custom.inputBackground,\n },\n clearButton: {\n borderRadius: 0,\n borderTopRightRadius: '8px',\n borderBottomRightRadius: '8px',\n backgroundColor: theme.custom.inputBackground,\n },\n searchFieldRootEmpty: {\n ...searchFieldRootBasic(theme),\n },\n searchFieldRootWithText: {\n ...searchFieldRootBasic(theme),\n borderRadius: 0,\n },\n searchFieldInput: {\n height: '24px',\n padding: 0,\n },\n});\n\nexport default styles;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles, Input, IconButton, Grid } from '@material-ui/core';\nimport SearchIcon from '@material-ui/icons/Search';\nimport ClearIcon from '@material-ui/icons/Clear';\n\nimport styles from './styles';\nimport { noop } from '../../utils';\nimport { useTranslation } from 'react-i18next';\n\nconst SearchBar = ({\n classes,\n placeholder = 'Search',\n handleTextChange,\n runSearch,\n}) => {\n const [value, setValue] = useState('');\n const { t } = useTranslation();\n\n const onSearchButtonClicked = () => runSearch(value);\n const onSearchTextChanged = (event) => {\n setValue(event.target.value);\n handleTextChange(event.target.value);\n };\n const clear = () => {\n setValue('');\n handleTextChange('');\n };\n\n return (\n \n \n \n \n {\n if (e.key === 'Enter') {\n e.preventDefault();\n setTimeout(onSearchButtonClicked, 200);\n }\n }}\n />\n {value === '' ? null : (\n \n \n \n )}\n \n );\n};\n\nSearchBar.propTypes = {\n classes: PropTypes.object.isRequired,\n handleTextChange: PropTypes.func,\n runSearch: PropTypes.func.isRequired,\n placeholder: PropTypes.string,\n};\n\nSearchBar.defaultProps = {\n placeholder: 'Search',\n handleTextChange: noop,\n};\n\nexport default withStyles(styles)(SearchBar);\n","import makeStyles from '@material-ui/styles/makeStyles';\n\nexport default makeStyles((theme) => ({\n infoIcon: {\n marginLeft: '6px',\n fontSize: '28px',\n color: 'rgba(51,51,51,.25)',\n cursor: 'pointer',\n\n '&:hover': {\n color: 'rgba(51,51,51,.5)',\n },\n },\n}));\n","import makeStyles from '@material-ui/styles/makeStyles';\n\nexport default makeStyles((theme) => ({\n root: ({ isFullWidth }) => ({\n maxWidth: isFullWidth ? 'none' : 800,\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n borderRadius: 8,\n }),\n content: {\n display: 'flex',\n flexDirection: 'row',\n margin: 30,\n padding: 0,\n '&:last-child': {\n padding: 0,\n },\n },\n cardAction: {\n justifyContent: 'flex-end',\n padding: 0,\n },\n cardActionContainer: {\n width: '100%',\n },\n button: {\n padding: '6px 12px',\n border: '1px solid #fff',\n borderRadius: 6,\n textTransform: 'capitalize',\n color: theme.custom.white,\n whiteSpace: 'nowrap',\n },\n helpBtn: {\n display: 'flex',\n alignItems: 'center',\n textDecoration: 'none',\n borderRadius: 6,\n '&:link': {\n textDecoration: 'none',\n },\n '&:focus': {\n textDecoration: 'none',\n },\n color: '#fff',\n },\n helpIcon: {\n marginRight: 2,\n },\n}));\n","import React from 'react';\nimport Grow from '@material-ui/core/Grow';\nimport Card from '@material-ui/core/Card';\nimport Grid from '@material-ui/core/Grid';\nimport CardMedia from '@material-ui/core/CardMedia';\nimport CardActions from '@material-ui/core/CardActions';\nimport Link from '@material-ui/core/Link';\nimport HelpIcon from '@material-ui/icons/Help';\nimport DoneIcon from '@material-ui/icons/Done';\nimport CardContent from '@material-ui/core/CardContent';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Button from '../Button';\nimport useStyles from './styles';\nimport { noop } from '../../utils';\nimport { connect } from 'react-redux';\nimport { useTheme } from '@material-ui/core';\nimport { dismissInfoCard } from '../../user/actions';\nimport { getDismissedInfoCardIds } from '../../user/selectors';\nimport { useTranslation } from 'react-i18next';\n\nexport const InfoCard = ({\n infoCardId,\n hideCard,\n image,\n helpLink,\n onClose,\n dismissedInfoCardIds,\n isFullWidth,\n children,\n cardActions,\n ...props\n}) => {\n const classes = useStyles({ isFullWidth });\n const theme = useTheme();\n const { t } = useTranslation();\n const isDismissed = hideCard || dismissedInfoCardIds.includes(infoCardId);\n\n if (!cardActions) {\n cardActions = [\n onClose(infoCardId)}\n data-test=\"doneButton\"\n >\n \n {t('acknowledge')}\n ,\n ];\n\n if (helpLink) {\n cardActions.push(\n \n \n {t('moreHelp')}\n ,\n );\n }\n }\n\n return (\n \n \n \n \n {image && (\n \n \n \n )}\n \n {children}\n \n \n {cardActions}\n \n \n \n \n \n \n \n );\n};\n\nInfoCard.propTypes = {\n infoCardId: PropTypes.oneOf([PropTypes.string, PropTypes.number])\n .isRequired,\n image: PropTypes.string,\n helpLink: PropTypes.string,\n hideCard: PropTypes.bool,\n isFullWidth: PropTypes.bool,\n dismissedInfoCardIds: PropTypes.array,\n onClose: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]).isRequired,\n cardActions: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n};\n\nInfoCard.defaultProps = {\n image: null,\n helpLink: '',\n afterClose: noop,\n isFullWidth: false,\n hideCard: false,\n dismissedInfoCardIds: [],\n cardActions: [],\n};\n\nconst mapStateToProps = (state) => ({\n dismissedInfoCardIds: getDismissedInfoCardIds(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n onClose: (infoCardId) => dispatch(dismissInfoCard(infoCardId)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(InfoCard);\n","const styles = (theme) => ({\n root: {\n flex: 1,\n padding: '20px 0',\n justifyContent: 'space-between',\n alignItems: 'center',\n margin: '0px 0 20px',\n },\n underlined: {\n borderBottom: `1px solid ${theme.custom.bgDarkHover}`,\n },\n titleContainer: {\n flex: 1,\n alignItems: 'center',\n margin: '10px 0 10px',\n },\n title: {\n fontSize: '36px',\n },\n link: {\n marginLeft: '6px',\n fontSize: '18px',\n color: 'rgba(51,51,51,.25)',\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport HelpIcon from '@material-ui/icons/Help';\nimport PropTypes from 'prop-types';\nimport Tooltip from '../Tooltip';\nimport styles from './styles';\nimport { showIntercomChat } from '../../config/intercom';\n\nconst HeaderPage = ({\n classes,\n title,\n subtitle,\n helpLink,\n rightContent,\n underlined,\n}) => {\n const { t } = useTranslation();\n const containerStyle = [classes.root];\n if (underlined) {\n containerStyle.push(classes.underlined);\n }\n return (\n \n \n \n {title}\n \n {typeof helpLink === 'string' ? (\n \n showIntercomChat()}\n data-intercom-target=\"pageHeader\"\n className={classes.link}\n />\n \n ) : (\n helpLink\n )}\n \n {subtitle}\n {rightContent ? {rightContent} : null}\n \n );\n};\n\nHeaderPage.propTypes = {\n classes: PropTypes.object.isRequired,\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n helpLink: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n rightContent: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n underlined: PropTypes.bool,\n};\n\nHeaderPage.defaultProps = {\n subtitle: null,\n helpLink: '',\n rightContent: null,\n underlined: true,\n};\n\nexport default withStyles(styles)(HeaderPage);\n","import React from 'react';\nimport Grid from '@material-ui/core/Grid';\nimport PropTypes from 'prop-types';\nimport useStyles from './styles';\nimport { connect, useDispatch } from 'react-redux';\nimport { dismissInfoCard, showInfoCard } from '../../user/actions';\nimport { getDismissedInfoCardIds } from '../../user/selectors';\nimport InfoCard from '../InfoCard';\nimport HeaderPage from '../HeaderPage';\nimport { InfoOutlined } from '@material-ui/icons';\n\nexport const InfoCardHeader = ({\n infoCardId,\n image,\n pageTitle,\n hideCard,\n helpLink,\n hasHelpLink,\n rightContent,\n dismissedInfoCardIds,\n onClose,\n children,\n}) => {\n const classes = useStyles();\n\n const dispatch = useDispatch();\n\n const isDismissed = dismissedInfoCardIds.includes(infoCardId) || hideCard;\n\n return (\n <>\n onClose(infoCardId)}\n infoCardId={infoCardId}\n hideCard={hideCard}\n isFullWidth\n >\n {children}\n \n \n {\n dispatch(showInfoCard(infoCardId));\n }}\n />\n )\n }\n rightContent={rightContent}\n />\n \n \n );\n};\n\nInfoCardHeader.propTypes = {\n infoCardId: PropTypes.number.isRequired,\n image: PropTypes.string,\n pageTitle: PropTypes.string,\n hideCard: PropTypes.bool,\n rightContent: PropTypes.node,\n onClose: PropTypes.func.isRequired,\n dismissedInfoCardIds: PropTypes.array,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]).isRequired,\n // If true, we show the info icon for the user to get to the help links\n hasHelpLink: PropTypes.bool,\n helpLink: PropTypes.string,\n};\n\nInfoCardHeader.defaultProps = {\n image: null,\n hideCard: false,\n rightContent: null,\n dismissedInfoCardIds: [],\n pageTitle: '',\n hasHelpLink: true,\n helpLink: '',\n};\n\nconst mapStateToProps = (state) => ({\n dismissedInfoCardIds: getDismissedInfoCardIds(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n onClose: (infoCardId) => dispatch(dismissInfoCard(infoCardId)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(InfoCardHeader);\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport Paper from '@material-ui/core/Paper';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport MenuList from '@material-ui/core/MenuList';\nimport { connect } from 'react-redux';\nimport filter from 'lodash/filter';\nimport { Link } from 'react-router-dom';\n\nimport styles from './styles';\nimport {\n getActionPins,\n getActionTabNames,\n getLastVisitedActionCategoryIndex,\n getSearchablePins,\n isActionCategoriesLoading,\n} from '../../../actions/selectors';\nimport {\n actionCategoriesRequested,\n setAction,\n setLastVisitedActionCategoryIndex,\n} from '../../../actions/actions';\nimport ActionTabMenu from '../../../common/ActionTabMenu';\nimport SearchBar from '../../../common/Search';\nimport { getAppImages, getAppName, noop } from '../../../utils';\nimport InfoCardHeader from '../../../common/InfoCardHeader';\nimport { INFO_CARD_USER_ACTIONS } from '../../../common/InfoCard/constants';\n\nexport const UserActionsScreen = ({\n classes,\n isLoading,\n loadActionCategoriesFunction,\n actionTabNames,\n actionPins,\n searchablePins,\n setAction,\n lastVisitedTabIndex,\n setLastVisitedTabIndex,\n}) => {\n const { t } = useTranslation();\n\n const [filteredItems, setSetFilteredItems] = useState([]);\n\n useEffect(() => {\n loadActionCategoriesFunction({});\n }, [loadActionCategoriesFunction]);\n\n const searchPins = useCallback(\n (search, data = []) => {\n if (!data) return [];\n const filterList = search\n ? filter(\n data,\n ({ name, description }) =>\n name.toLowerCase().includes(search.toLowerCase()) ||\n description\n .toLowerCase()\n .includes(search.toLowerCase()),\n )\n : data;\n if (filterList.length > 0) {\n setSetFilteredItems(filterList);\n }\n },\n [setSetFilteredItems],\n );\n\n const onSearch = (text) => {\n if (!text) {\n setSetFilteredItems([]);\n return;\n }\n searchPins(text, searchablePins);\n };\n\n const handleSearchItemClick = () => {};\n\n return (\n \n \n \n \n {t('actionPage.bannerTitle', {\n appName: getAppName(),\n })}\n \n \n {t('actionPage.bannerBody')}\n
    \n {t('actionPage.bannerBody2')}\n
    \n \n \n \n {filteredItems?.length > 0 && (\n \n \n {filteredItems?.map((item) => (\n \n \n \"\"\n \n {item.name}\n \n \n \n ))}\n \n \n )}\n \n
    \n\n \n {!isLoading ? (\n
    \n {actionTabNames ? (\n \n ) : (\n
    \n \n {t('data.empty')}\n \n
    \n )}\n
    \n ) : (\n
    \n \n {t('loading.descriptor')}\n \n
    \n )}\n
    \n
    \n );\n};\n\nUserActionsScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n loadActionCategoriesFunction: PropTypes.func.isRequired,\n isLoading: PropTypes.bool.isRequired,\n actionTabNames: PropTypes.arrayOf(PropTypes.string).isRequired,\n actionPins: PropTypes.arrayOf(PropTypes.object).isRequired,\n searchablePins: PropTypes.arrayOf(PropTypes.object).isRequired,\n setAction: PropTypes.func.isRequired,\n lastVisitedTabIndex: PropTypes.number.isRequired,\n setLastVisitedTabIndex: PropTypes.func.isRequired,\n};\n\nUserActionsScreen.defaultProps = {\n loadActionCategoriesFunction: noop,\n isLoading: false,\n actionCategories: null,\n actionPins: [],\n searchablePins: [],\n lastVisitedTabIndex: 1,\n};\n\nconst StyledUserHomeScreen = withStyles(styles)(UserActionsScreen);\n\nconst mapStateToProps = (state) => ({\n isLoading: isActionCategoriesLoading(state),\n searchablePins: getSearchablePins(state),\n actionTabNames: getActionTabNames(state),\n actionPins: getActionPins(state),\n lastVisitedTabIndex: getLastVisitedActionCategoryIndex(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n setAction: (action) => dispatch(setAction(action?.id)),\n setLastVisitedTabIndex: (index) =>\n dispatch(setLastVisitedActionCategoryIndex(index)),\n loadActionCategoriesFunction: (request) =>\n dispatch(actionCategoriesRequested(request)),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledUserHomeScreen);\n","export const INFO_CARD_USER_ACTIONS = 1;\nexport const INFO_CARD_USER_ACTIVITY = 2;\nexport const INFO_CARD_PROFILE = 3;\nexport const INFO_CARD_USER_CHALLENGE = 4;\nexport const INFO_CARD_CHALLENGE_UPDATE = 5;\n","import React from 'react';\n\nimport { Can } from '../../casl/ability-context';\nimport AdminHome from './AdminHome';\nimport UserActionsScreen from '../ActionsScreen/UserActionsScreen';\n\nexport const HomeScreen = () => {\n return (\n <>\n \n \n \n \n \n \n \n );\n};\n\nexport default HomeScreen;\n","const styles = (theme) => ({\n root: {\n paddingBottom: '32px',\n },\n container: {\n maxWidth: theme.custom.mainContentWidth,\n paddingLeft: theme.custom.mainContentHorizontalPadding,\n paddingRight: theme.custom.mainContentHorizontalPadding,\n },\n description: {\n marginTop: '26px',\n fontSize: '24px',\n color: theme.custom.textDarkColor,\n whiteSpace: 'pre-line',\n },\n bonusesRow: {},\n rowHeader: {\n marginTop: '26px',\n marginBottom: '10px',\n },\n rowIcon: {\n marginRight: '8px',\n },\n rowLabel: {\n color: theme.custom.textDarkSecondaryColor,\n fontSize: '24px',\n fontWeight: '600',\n },\n linkItem: {\n backgroundColor: theme.custom.bgLightColor,\n borderRadius: '6px',\n marginBottom: '6px',\n\n '&:hover': {\n backgroundColor: theme.custom.bgLightAccentColor,\n },\n },\n linkImage: {\n borderTopLeftRadius: '6px',\n borderBottomLeftRadius: '6px',\n width: 100,\n height: 100,\n },\n linkInfo: {\n paddingLeft: '8px',\n paddingRight: '8px',\n paddingTop: '8px',\n flex: 1,\n },\n linkName: {\n marginBottom: '5px',\n fontSize: '14px',\n fontWeight: '600',\n },\n linkDescription: {\n color: theme.custom.textDarkSecondaryColor,\n },\n showMoreBtnItem: {\n marginTop: '6px',\n },\n sameImpactAsContainer: {\n overflowX: 'auto',\n paddingRight: '20px',\n },\n conversionContainer: {\n flexShrink: 0,\n marginRight: '5px',\n },\n helpIcon: {\n color: theme.custom.tooltipIconColor,\n marginLeft: '5px',\n '&:hover': {\n cursor: 'pointer',\n },\n },\n});\n\nexport default styles;\n","import makeStyles from '@material-ui/styles/makeStyles';\n\nexport default makeStyles((theme) => ({\n root: ({ photoUrl }) => ({\n width: '100%',\n minHeight: 300,\n borderRadius: 0,\n backgroundSize: 'cover',\n backgroundPosition: '50% 50%',\n backgroundImage: `linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url(${photoUrl})`,\n justifyContent: 'space-between',\n display: 'flex',\n flexDirection: 'column',\n paddingBottom: '20px',\n }),\n headerRoot: {\n padding: '5px',\n width: '100%',\n },\n headerContent: {\n flex: 0,\n whiteSpace: 'nowrap',\n },\n headerAction: {\n display: 'flex',\n flex: 1,\n justifyContent: 'space-between',\n margin: 0,\n },\n content: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'flex-start',\n color: theme.palette.common.white,\n '&:last-child': {\n padding: '0 16px 8px',\n },\n },\n backIcon: {\n padding: 0,\n color: theme.palette.common.white,\n },\n icon: ({ iconUrl }) => ({\n minWidth: '110px',\n width: '110px',\n height: '110px',\n backgroundImage: `url(${iconUrl})`,\n backgroundSize: 'cover',\n position: 'relative',\n marginRight: '20px',\n [theme.breakpoints.down('xs')]: {\n marginRight: '5px',\n width: '60px',\n height: '60px',\n minWidth: '60px',\n },\n }),\n btnEditIcon: {\n position: 'absolute',\n right: 0,\n bottom: 0,\n padding: '4px',\n borderRadius: '50%',\n color: 'white',\n backgroundColor: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: theme.palette.primary.dark,\n },\n },\n btnReset: {\n marginLeft: 3,\n },\n rightBody: {\n paddingLeft: '5px',\n },\n name: {\n marginTop: '25px',\n maxHeight: '214px',\n fontSize: 'min(10vw, 38px)',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n '&& svg': {\n fontSize: '65%',\n backgroundColor: theme.palette.primary.main,\n borderRadius: '50%',\n padding: '5px',\n verticalAlign: 'middle',\n marginLeft: '10px',\n },\n [theme.breakpoints.down('xs')]: {\n marginTop: '5px',\n },\n },\n editName: {\n '&:hover': {\n backgroundColor: 'rgba(255,255,255,.25)',\n borderRadius: '6px',\n cursor: 'pointer',\n },\n },\n status: {\n marginBottom: '10px',\n fontSize: '18px',\n },\n editCover: {\n borderColor: theme.palette.primary.main,\n borderStyle: 'solid',\n border: '2px',\n backgroundColor: theme.palette.white.main,\n borderRadius: '10px',\n '&:hover': {\n color: theme.palette.white.main,\n borderColor: theme.palette.primary.dark,\n backgroundColor: theme.palette.primary.dark,\n },\n },\n cardContent: {\n maxWidth: theme.custom.mainContentWidth,\n },\n}));\n","import React from 'react';\nimport {\n Edit,\n Visibility,\n IndeterminateCheckBox,\n AddBox,\n Add,\n} from '@material-ui/icons';\nimport { Typography } from '@material-ui/core';\n\nexport const baseColumns = [\n {\n accessor: 'iconUrl',\n Cell: ({ row }) => (\n \n ),\n sortable: false,\n },\n { Header: 'name', accessor: 'name' },\n { Header: 'description', accessor: 'description' },\n];\nexport const tableColumn = [\n ...baseColumns,\n {\n Header: 'action.sdgs',\n accessor: 'sustainableDevelopmentGoals',\n sortable: false,\n Cell: ({ row }) => (\n \n {row.original.sustainableDevelopmentGoals\n ?.filter((sdg) => sdg.color && sdg.number)\n ?.slice(0, 3)\n ?.map((sdg) => (\n \n \n {sdg.number}\n \n \n ))}\n {row.original.sustainableDevelopmentGoals?.length > 3 && (\n \n \n \n )}\n \n ),\n },\n { accessor: 'actions' },\n];\n\nexport const activeButtonsCell = [\n {\n key: 'viewActionsAdmin',\n actions: 'view',\n subject: 'ActionsAdmin',\n tooltip: 'view',\n icon: Visibility,\n },\n {\n key: 'editActions',\n actions: 'edit',\n subject: 'Actions',\n tooltip: 'edit',\n icon: Edit,\n },\n {\n key: 'deactivateActionExclude',\n actions: 'edit',\n subject: 'CommunityActionExclude',\n tooltip: 'deactivate',\n icon: IndeterminateCheckBox,\n },\n];\n\nexport const deactivatedButtonsCell = [\n {\n key: 'viewActionsAdmin',\n actions: 'view',\n subject: 'ActionsAdmin',\n tooltip: 'View',\n icon: Visibility,\n },\n {\n key: 'activateActionExclude',\n actions: 'edit',\n subject: 'CommunityActionExclude',\n tooltip: 'Activate',\n icon: AddBox,\n },\n];\n\nexport const challengeAddButtonsCell = [\n {\n key: 'editChallenge',\n actions: 'edit',\n subject: 'Challenge',\n tooltip: 'add',\n icon: AddBox,\n },\n];\n\nexport const challengeEditButtonsCell = [\n {\n key: 'viewActionsAdmin',\n actions: 'view',\n subject: 'ActionsAdmin',\n tooltip: 'view',\n icon: Visibility,\n },\n {\n key: 'editActions',\n actions: 'edit',\n subject: 'Actions',\n tooltip: 'edit',\n icon: Edit,\n },\n {\n key: 'editChallenge',\n actions: 'edit',\n subject: 'Challenge',\n tooltip: 'remove',\n icon: IndeterminateCheckBox,\n },\n];\n\nexport const challengeViewButtonsCell = [\n {\n key: 'viewActionsAdmin',\n tooltip: 'view',\n icon: Visibility,\n },\n];\n\nexport const VIEW_ACTION = 'view';\nexport const EDIT_ACTION = 'edit';\nexport const ACTIONS = 'Actions';\n\nexport const INTERCOM_TARGET_PREFIX = 'actions';\n","import React, { Fragment } from 'react';\nimport {\n Card,\n CardContent,\n CardHeader,\n Grid,\n IconButton,\n Typography,\n} from '@material-ui/core';\nimport { ArrowBack, Edit } from '@material-ui/icons';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport useStyles from './styles';\n\nimport Button from '../Button';\nimport { Can } from '../../casl/ability-context';\nimport { noop } from '../../utils';\nimport {\n ACTIONS,\n EDIT_ACTION,\n} from '../../screens/ActionsScreen/AdminActionsScreen/constants';\n\nconst BackgroundHeader = ({\n photoUrl,\n iconUrl,\n iconStyle,\n name,\n status,\n action,\n subject,\n allowReset,\n onChangePhoto,\n onReset,\n onChangeIcon,\n onChangeName,\n children,\n intercomTargetPrefix,\n}) => {\n const classes = useStyles({ photoUrl, iconUrl });\n const { t } = useTranslation();\n const history = useHistory();\n\n return (\n \n \n \n \n \n \n \n {() => (\n \n \n {t('coverPhoto.edit')}\n \n )}\n \n {allowReset && (\n \n {() => (\n \n {t('Reset')}\n \n )}\n \n )}\n \n \n }\n />\n \n \n {(can) => (\n \n \n {!!can && (\n \n \n \n )}\n \n \n \n {(can) => (\n \n {name}\n {!!can &&\n !(\n action === EDIT_ACTION &&\n subject === ACTIONS\n ) && }\n \n )}\n \n {!!status && (\n \n {status}\n \n )}\n {children}\n \n \n )}\n \n \n \n );\n};\n\nBackgroundHeader.propTypes = {\n photoUrl: PropTypes.string,\n iconUrl: PropTypes.string,\n iconStyle: PropTypes.object,\n name: PropTypes.string.isRequired,\n status: PropTypes.string,\n action: PropTypes.string.isRequired,\n subject: PropTypes.string.isRequired,\n allowReset: PropTypes.bool,\n onChangePhoto: PropTypes.func,\n onReset: PropTypes.func,\n onChangeIcon: PropTypes.func,\n onChangeName: PropTypes.func,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n // Used to identify this common background header on intercom targets\n intercomTargetPrefix: PropTypes.string,\n};\n\nBackgroundHeader.defaultProps = {\n photoUrl: null,\n iconUrl: null,\n iconStyle: {},\n status: null,\n allowReset: false,\n onChangePhoto: noop,\n onReset: noop,\n onChangeIcon: noop,\n onChangeName: noop,\n children: null,\n intercomTargetPrefix: '',\n};\n\nexport default BackgroundHeader;\n","const styles = (theme) => ({\n logActionIcon: {\n marginRight: 4,\n },\n logActionButton: {\n [theme.breakpoints.down('xs')]: {\n marginTop: '5px',\n padding: '8px 8px',\n },\n },\n buttonsContainer: {\n [theme.breakpoints.down('xs')]: {\n flexDirection: 'column',\n },\n },\n shareButton: {\n fontSize: 'min(18px, 5vw)',\n marginLeft: 20,\n [theme.breakpoints.down('xs')]: {\n marginLeft: 0,\n marginTop: '5px',\n padding: '8px 8px',\n },\n },\n});\n\nexport default styles;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/styles';\n\nimport BackgroundHeader from '../../../common/BackgroundHeader';\nimport Button from '../../../common/Button';\nimport { useTranslation } from 'react-i18next';\nimport IcomoonIcon from '../../../common/IcomoonIcon';\nimport styles from './styles';\nimport {\n ACTIONS,\n VIEW_ACTION,\n} from '../../ActionsScreen/AdminActionsScreen/constants';\nimport { Share } from '@material-ui/icons';\nimport copy from 'copy-to-clipboard';\nimport { connect } from 'react-redux';\nimport {\n actionShareURLRequested,\n clearActionShareURLErrors,\n} from '../../../actions/actions';\nimport {\n getActionShareURLErrors,\n isActionShareURLLoading,\n} from '../../../actions/selectors';\nimport { Grid } from '@material-ui/core';\nimport SnackBarAPIResponse from '../../../common/SnackbarAlert/SnackBarAPIResponse';\n\nconst ActionHeader = ({\n classes,\n logActionFunc,\n headlineUrl,\n iconUrl,\n name,\n shareURL,\n actionId,\n fetchShareURL,\n shareURLLoading,\n errors,\n clearErrors,\n}) => {\n const { t } = useTranslation();\n\n const [snackbarMessage, setSnackbarMessage] = useState('');\n const [shareURLRequested, setShareURLRequested] = useState(false);\n\n const copyLink = useCallback(() => {\n copy(shareURL);\n setSnackbarMessage(t('sharing.copied'));\n setShareURLRequested(false);\n }, [shareURL, t]);\n\n useEffect(() => {\n if (shareURL && shareURLRequested) {\n copyLink();\n }\n }, [shareURL, shareURLRequested, copyLink]);\n\n const handleCopyDeepLink = useCallback(() => {\n if (shareURL) {\n copyLink();\n } else {\n fetchShareURL(actionId);\n setShareURLRequested(true);\n }\n }, [shareURL, copyLink, fetchShareURL, actionId]);\n\n return (\n <>\n \n \n {\n logActionFunc();\n }}\n aria-label={t('logAction')}\n >\n \n \n {t('logAction')}\n \n \n \n \n \n {t('copyShareLink')}\n \n \n \n \n {\n clearErrors();\n setSnackbarMessage(null);\n }}\n />\n \n );\n};\n\nActionHeader.propTypes = {\n classes: PropTypes.object.isRequired,\n logActionFunc: PropTypes.func.isRequired,\n headlineUrl: PropTypes.string.isRequired,\n iconUrl: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n actionId: PropTypes.string.isRequired,\n fetchShareURL: PropTypes.func.isRequired,\n clearErrors: PropTypes.func.isRequired,\n shareURL: PropTypes.string,\n shareURLLoading: PropTypes.bool,\n errors: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n shareURLLoading: isActionShareURLLoading(state),\n errors: getActionShareURLErrors(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n fetchShareURL: (actionId) => dispatch(actionShareURLRequested(actionId)),\n clearErrors: () => dispatch(clearActionShareURLErrors()),\n});\n\nActionHeader.defaultProps = {\n shareURL: '',\n shareURLLoading: false,\n errors: [],\n};\n\nexport const StyledActionHeader = withStyles(styles)(ActionHeader);\n\nexport default connect(mapStateToProps, mapDispatchToProps)(StyledActionHeader);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n padding: '0 8px',\n width: '176px',\n [theme.breakpoints.down('xs')]: {\n width: '110px',\n },\n },\n count: (props) => ({\n width: '160px',\n height: '160px',\n margin: '24px auto',\n padding: '10px',\n borderRadius: '50%',\n fontSize: '100px',\n textAlign: 'center',\n color: theme.palette.common.white,\n backgroundColor: theme.palette.primary.main,\n backgroundImage: `url(${props.imageUrl})`,\n backgroundPosition: '50% 50%',\n backgroundSize: 'cover',\n [theme.breakpoints.down('xs')]: {\n height: '100px',\n width: '100px',\n fontSize: '55px',\n },\n }),\n title: {\n marginBottom: '10px',\n textAlign: 'center',\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid } from '@material-ui/core';\nimport useStyles from './styles';\n\nconst BonusPoints = ({ count, title, imageUrl }) => {\n const classes = useStyles({ imageUrl });\n\n return (\n \n \n {count}\n \n \n {title}\n \n \n );\n};\n\nBonusPoints.propTypes = {\n count: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n imageUrl: PropTypes.string.isRequired,\n};\n\nexport default BonusPoints;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n container: {},\n divider: {\n height: '1px',\n border: 'none',\n background: 'black',\n },\n info: {\n paddingTop: '5px',\n paddingLeft: '10px',\n },\n name: ({ cheatingAction }) => ({\n paddingBottom: '10px',\n textAlign: cheatingAction && 'center',\n }),\n description: ({ cheatingAction }) => ({\n maxWidth: !cheatingAction && '50%',\n display: cheatingAction && 'flex',\n justifyContent: cheatingAction && 'center',\n }),\n cheatMessage: {\n width: '50%',\n textAlign: 'center',\n },\n points: {\n fontSize: '24px',\n paddingRight: '5px',\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid } from '@material-ui/core';\n\nimport useStyles from './styles';\n\nconst LogActionItem = ({ name, description, points, cheatingAction }) => {\n const classes = useStyles({ cheatingAction });\n return (\n <>\n
    \n \n \n \n {name}\n \n \n {cheatingAction ? (\n
    \n {description}\n
    \n ) : (\n description\n )}\n
    \n \n {!cheatingAction && (\n \n {points}\n \n )}\n \n \n );\n};\n\nLogActionItem.propTypes = {\n name: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n points: PropTypes.number,\n cheatingAction: PropTypes.bool,\n};\n\nLogActionItem.defaultProps = {\n points: null,\n cheatingAction: false,\n};\n\nexport default LogActionItem;\n","const styles = (theme) => ({\n modal: {\n backgroundColor: theme.custom.bgLightAccentColor,\n padding: '5px',\n minWidth: '650px',\n minHeight: '300px',\n },\n scrollPaper: {\n alignItems: 'flex-start',\n },\n titleBar: {\n padding: '15px',\n fontSize: '18px',\n fontWeight: 100,\n },\n title: {},\n closeButton: {},\n closeIcon: {\n opacity: 0.2,\n\n '&:hover': {\n opacity: 0.5,\n cursor: 'pointer',\n },\n },\n summary: {},\n summaryImage: {\n margin: '10px',\n width: '64px',\n height: '64px',\n },\n summaryPoints: {\n fontSize: '40px',\n paddingRight: '5px',\n },\n ok: {\n marginTop: '40px',\n marginBottom: '15px',\n },\n okButton: {\n width: '60%',\n },\n icon: {\n paddingRight: '5px',\n fontSize: '24px',\n },\n share: { height: '46px' },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport {\n Grid,\n Typography,\n CircularProgress,\n withStyles,\n} from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport ShareIcon from '@material-ui/icons/Share';\nimport Button from '../../Button';\nimport LogActionItem from '../LogActionItem';\nimport styles from './styles';\nimport { getCheatingAction } from '../../../actions/utils';\n\nconst SummaryModal = ({\n classes,\n onClose,\n summaryImageLink,\n bonuses,\n encouragements,\n challengeUpdates,\n okayFn,\n onShare,\n shareURLLoading,\n}) => {\n const { t } = useTranslation();\n\n const cheatingAction = getCheatingAction(bonuses);\n\n const summaryPoints = cheatingAction\n ? 0\n : bonuses?.reduce((acc, { points }) => acc + points, 0);\n\n const makeBonusItems = () =>\n cheatingAction ? (\n \n ) : (\n bonuses?.map((bonus, i) => (\n \n ))\n );\n\n const getPositionText = (rank) => {\n if (rank === 1) {\n return t('leaderboardPosition.position.1', { count: rank });\n } else if (rank === 2) {\n return t('leaderboardPosition.position.2', { count: rank });\n } else if (rank === 3) {\n return t('leaderboardPosition.position.3', { count: rank });\n } else {\n return t('leaderboardPosition.position.other', { count: rank });\n }\n };\n\n const makeChallengeUpdates = () =>\n challengeUpdates?.map((update, index) => (\n \n ));\n\n const items = makeBonusItems();\n const challengeItems = makeChallengeUpdates();\n\n return (\n \n \n \n \n {cheatingAction\n ? t('action.log.noPoints')\n : t('action.log.totalPoints')}\n \n \n \n \n \n \n {encouragements.map((encouragement, i) => (\n \n {encouragement}\n \n ))}\n \n \n \n \n \n {summaryPoints}\n \n \n {items}\n {!cheatingAction && challengeItems && challengeItems.length > 0 && (\n <>\n \n {t('summaryModal.challengeContributions')}\n \n \n {challengeItems}\n \n \n )}\n \n \n {t('Ok')}\n \n \n {!cheatingAction && (\n \n {shareURLLoading ? (\n \n ) : (\n \n \n {t('share')}\n \n )}\n \n )}\n \n );\n};\n\nSummaryModal.propTypes = {\n classes: PropTypes.object.isRequired,\n onClose: PropTypes.func.isRequired,\n summaryImageLink: PropTypes.string.isRequired,\n encouragements: PropTypes.arrayOf(PropTypes.string),\n challengeUpdates: PropTypes.arrayOf(\n PropTypes.shape({\n challenge: PropTypes.shape({\n name: PropTypes.string.isRequired,\n }).isRequired,\n leaderboardItem: PropTypes.shape({\n rank: PropTypes.number.isRequired,\n value: PropTypes.number.isRequired,\n item: PropTypes.shape({\n name: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n }),\n ),\n bonuses: PropTypes.arrayOf(\n PropTypes.shape({\n points: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n }),\n ),\n okayFn: PropTypes.func.isRequired,\n onShare: PropTypes.func.isRequired,\n shareURLLoading: PropTypes.bool.isRequired,\n};\n\nSummaryModal.defaultProps = {\n encouragements: [],\n challengeUpdates: [],\n bonuses: null,\n};\n\nexport default withStyles(styles)(SummaryModal);\n","import PropTypes from 'prop-types';\n\nexport const upload = {\n classes: PropTypes.object.isRequired,\n title: PropTypes.string.isRequired,\n\n // If no photoTooltip is provided, we'll use photoTooltipKey which defaults to an existing localization key.\n photoTooltip: PropTypes.string,\n photoTooltipKey: PropTypes.string,\n\n // See https://react-dropzone.js.org/\n DropzoneProps: PropTypes.object,\n\n // If provided, this will be used when the error message for a rejected file has a code, 'file-too-large'\n fileTooLargeErrorMessage: PropTypes.string,\n\n // See https://www.npmjs.com/package/react-image-crop\n hideTip: PropTypes.bool,\n border: PropTypes.bool,\n borderRadius: PropTypes.string,\n disabled: PropTypes.bool,\n placeholder: PropTypes.node,\n maxHeight: PropTypes.string,\n};\n\nexport default {\n upload,\n};\n","import PropTypes from 'prop-types';\nimport UploadPropTypes from '../Upload/propTypes';\n\nexport const photo = {\n ...UploadPropTypes.upload,\n classes: PropTypes.object.isRequired,\n photo: PropTypes.string,\n setCroppedImageData: PropTypes.func.isRequired,\n\n // See https://www.npmjs.com/package/react-image-crop\n CropProps: PropTypes.object,\n initCrop: PropTypes.object,\n intercomTarget: PropTypes.string,\n};\n\nexport default {\n photo,\n};\n","import { makeStyles } from '@material-ui/styles';\n\nexport default makeStyles((theme) => ({\n photoContainer: {\n cursor: 'pointer',\n },\n container: {\n maxWidth: '500px',\n backgroundColor: '#e4e4e4',\n },\n photo: ({ border, maxHeight, hasImage }) => ({\n width: hasImage && maxHeight ? 'auto' : '100%',\n border: border ? `1px dashed ${theme.custom.bgDarkColor}` : 'none',\n backgroundColor: theme.palette.common.white,\n borderRadius: '6px',\n }),\n modal: {\n display: 'flex',\n justifyContent: 'center',\n },\n image: ({ borderRadius, maxHeight }) => ({\n display: 'block',\n height: maxHeight,\n width: '100%',\n borderRadius: borderRadius,\n }),\n title: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: '5px',\n fontSize: 'min(14px, 4vw)',\n fontWeight: 700,\n },\n icon: {\n marginLeft: '5px',\n color: theme.custom.iconColor,\n\n '&:hover': {\n color: theme.custom.iconColorHover,\n },\n },\n smallText: {\n fontSize: '85%',\n },\n defaultPhoto: {\n height: '70%',\n width: '70%',\n fill: theme.palette.primary.main,\n },\n}));\n","import { makeStyles } from '@material-ui/styles';\n\nexport default makeStyles((theme) => ({\n photoContainer: {\n cursor: 'pointer',\n },\n container: {\n maxWidth: '500px',\n backgroundColor: '#e4e4e4',\n },\n photo: ({ border, maxHeight, hasImage }) => ({\n width: hasImage && maxHeight ? 'auto' : '100%',\n border: border ? `1px dashed ${theme.custom.bgDarkColor}` : 'none',\n backgroundColor: theme.palette.common.white,\n borderRadius: '6px',\n }),\n modal: {\n display: 'flex',\n justifyContent: 'center',\n },\n image: ({ borderRadius, maxHeight }) => ({\n display: 'block',\n height: maxHeight,\n width: '100%',\n borderRadius: borderRadius,\n }),\n title: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: '5px',\n fontSize: 'min(14px, 4vw)',\n fontWeight: 700,\n },\n icon: {\n marginLeft: '5px',\n color: theme.custom.iconColor,\n\n '&:hover': {\n color: theme.custom.iconColorHover,\n },\n },\n smallText: {\n fontSize: '85%',\n },\n defaultPhoto: {\n height: '70%',\n width: '70%',\n fill: theme.palette.primary.main,\n },\n}));\n","import React, { useState } from 'react';\nimport UploadPropTypes from './propTypes';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, Typography } from '@material-ui/core';\nimport Dropzone from 'react-dropzone';\nimport useStyles from './styles';\n\nimport 'react-image-crop/dist/ReactCrop.css';\nimport { AddPhotoIcon } from '../../assets/images/svg';\nimport InfoTooltip from '../InfoTooltip';\n\nconst FILE_TOO_LARGE_CODE = 'file-too-large';\n\nconst Upload = ({\n title,\n DropzoneProps,\n value,\n photoTooltip,\n photoTooltipKey,\n fileTooLargeErrorMessage,\n hideTip,\n border,\n borderRadius,\n disabled,\n maxHeight,\n onDropAccepted,\n placeholder,\n acceptTypes,\n}) => {\n const { t } = useTranslation();\n\n const [errorMessages, setErrorMessages] = useState([]);\n\n const classes = useStyles({\n border,\n borderRadius,\n maxHeight,\n });\n\n const _onDropAccepted = (acceptedFiles) => {\n if (acceptedFiles?.[0]) {\n onDropAccepted(acceptedFiles);\n setErrorMessages([]);\n }\n };\n\n const onDropRejected = (rejectedFiles = []) => {\n if (rejectedFiles.length) {\n setErrorMessages(\n rejectedFiles.map(({ errors = [] }) => {\n if (errors.length) {\n return errors.map(({ message, code }) => {\n if (\n code === FILE_TOO_LARGE_CODE &&\n fileTooLargeErrorMessage\n ) {\n return fileTooLargeErrorMessage;\n } else {\n return message;\n }\n });\n }\n return [];\n }),\n );\n }\n };\n\n return (\n \n {title && (\n \n {title}\n \n \n )}\n \n {({ getRootProps, getInputProps }) => (\n \n \n {value ? (\n \"\"\n ) : (\n placeholder || (\n \n )\n )}\n \n )}\n \n {!hideTip && (\n \n {t('photo.drop.tip')}\n \n )}\n {errorMessages.map((errorMessage) => {\n return (\n \n \n {errorMessage}\n \n \n );\n })}\n \n );\n};\n\nUpload.propTypes = UploadPropTypes.upload;\n\nUpload.defaultProps = {\n photoTooltip: null,\n placeholder: null,\n maxHeight: null,\n photoTooltipKey: 'photo.tooltip',\n DropzoneProps: {\n maxSize: 10000000,\n },\n hideTip: false,\n border: true,\n borderRadius: '0px',\n disabled: false,\n acceptType: ['image/jpg', 'image/jpeg', 'image/png'],\n};\n\nexport default Upload;\n","import React, { useEffect, useState } from 'react';\nimport PhotoPropTypes from './propTypes';\nimport { useTranslation } from 'react-i18next';\nimport { Grid } from '@material-ui/core';\nimport ReactCrop from 'react-image-crop';\nimport ConfirmModal from '../ConfirmModal';\nimport { dataURLtoFile } from '../../utils';\nimport useStyles from './styles';\n\nimport 'react-image-crop/dist/ReactCrop.css';\nimport Upload from '../Upload';\n\nconst Photo = ({\n photo,\n setCroppedImageData,\n initCrop,\n CropProps,\n intercomTarget,\n ...props\n}) => {\n const { t } = useTranslation();\n\n const [open, setOpen] = useState(false);\n const [image, setImage] = useState(photo);\n const [imageRef, setImageRef] = useState(null);\n const [imageToCrop, setImageToCrop] = useState(null);\n const [crop, setCrop] = useState(\n initCrop || {\n aspect: 1,\n unit: 'px',\n width: 80,\n },\n );\n\n const classes = useStyles({\n hasImage: !!image,\n });\n\n const onCancel = () => {\n setImage(photo);\n setOpen(false);\n };\n\n const onConfirm = () => {\n getCroppedImg(imageRef, crop);\n setOpen(false);\n };\n\n const onDropAccepted = (acceptedFiles) => {\n if (acceptedFiles?.[0]) {\n setImageToCrop(URL.createObjectURL(acceptedFiles[0]));\n setOpen(true);\n }\n };\n\n const onImageLoaded = (image) => {\n setImageRef(image);\n };\n\n const getCroppedImg = async (image, crop) => {\n const canvas = document.createElement('canvas');\n const scaleX = image.naturalWidth / image.width;\n const scaleY = image.naturalHeight / image.height;\n\n const ctx = canvas.getContext('2d');\n\n if (!crop.height || !crop.width) {\n canvas.width = image.width;\n canvas.height = image.height;\n } else {\n canvas.width = Math.ceil(crop.width * scaleX);\n canvas.height = Math.ceil(crop.height * scaleY);\n }\n\n ctx.drawImage(\n image,\n crop.x * scaleX,\n crop.y * scaleY,\n crop.width * scaleX,\n crop.height * scaleY,\n 0,\n 0,\n crop.width * scaleX,\n crop.height * scaleY,\n );\n\n const base64Image = canvas.toDataURL('image/jpeg', 1.0);\n const file = dataURLtoFile(base64Image, 'cropped.jpg');\n\n setImage(base64Image);\n setCroppedImageData(file);\n };\n\n useEffect(() => {\n setImage(photo);\n }, [photo]);\n\n return (\n \n \n \n \n \n {\n if (newCrop.width > 0 && newCrop.height > 0) {\n setCrop(newCrop);\n }\n }}\n onImageLoaded={onImageLoaded}\n {...CropProps}\n />\n \n \n \n \n );\n};\n\nPhoto.propTypes = PhotoPropTypes.photo;\n\nPhoto.defaultProps = {\n photoTooltip: null,\n placeholder: null,\n maxHeight: null,\n photoTooltipKey: 'photo.tooltip',\n DropzoneProps: {\n maxSize: 10000000,\n },\n CropProps: {},\n initCrop: null,\n hideTip: false,\n border: true,\n borderRadius: '0px',\n disabled: false,\n photo: null,\n intercomTarget: null,\n};\n\nexport default Photo;\n","const styles = (theme) => ({\n logActionIcon: {\n marginRight: 4,\n },\n form: {\n width: '100%',\n },\n lable: {\n fontWeight: 700,\n fontSize: 14,\n marginBottom: 5,\n },\n closeIcon: {\n opacity: 0.2,\n\n '&:hover': {\n opacity: 0.5,\n cursor: 'pointer',\n },\n },\n titleBar: {\n padding: '15px',\n fontSize: '18px',\n fontWeight: 100,\n },\n content: {\n padding: 15,\n },\n button: {\n paddingLeft: 20,\n paddingRight: 20,\n },\n buttonCancel: {\n background: 'none',\n marginRight: 10,\n },\n modalFooter: {\n padding: 15,\n marginTop: 10,\n },\n icon: {\n [theme.breakpoints.down('xs')]: {\n display: 'none',\n },\n },\n});\n\nexport default styles;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, TextField, Typography, withStyles } from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { useTranslation } from 'react-i18next';\nimport * as Yup from 'yup';\nimport { Form, Formik } from 'formik';\nimport { noop } from '../../utils';\nimport PhotoPropTypes from '../../Photo/propTypes';\nimport Photo from '../../Photo';\nimport FormInput from '../../Form/FormInput';\nimport Button from '../../Button';\nimport IcomoonIcon from '../../IcomoonIcon';\nimport styles from './styles';\nimport md5 from 'md5';\n\nconst CommentModal = ({\n classes,\n onClose,\n onCancel,\n onSubmit,\n DropzoneProps,\n PhotoProps,\n initCrop,\n}) => {\n const { t } = useTranslation();\n\n const [croppedData, setCroppedData] = useState(null);\n const [croppedDataLoading, setCroppedDataLoading] = useState(false);\n\n const MultilineTextField = ({ placeholder, onChange, value }) => (\n \n );\n\n useEffect(() => {\n setCroppedData(null);\n }, []);\n\n const handleAddImage = (file) => {\n setCroppedDataLoading(true);\n setCroppedData({ file, md5: md5(file) });\n setCroppedDataLoading(false);\n };\n\n const handleSubmit = useCallback(\n (values) => {\n onSubmit(values.caption, croppedData?.file, croppedData?.md5);\n },\n [onSubmit, croppedData],\n );\n\n const validationSchema = useMemo(\n () =>\n Yup.object().shape({\n caption: Yup.string(),\n }),\n [],\n );\n\n const initialValues = useMemo(() => ({ caption: '' }), []);\n\n return (\n handleSubmit(values)}\n >\n {(formikProps) => {\n return (\n
    \n \n \n \n {t('action.log.details')}\n \n \n \n \n \n \n \n \n \n \n \n \n \n {t('caption')}\n \n \n \n {\n formikProps.setFieldValue(\n 'caption',\n event.target.value,\n );\n }}\n />\n \n \n \n \n \n \n {t('cancel')}\n \n \n \n \n \n {t('logAction')}\n \n \n \n \n );\n }}\n \n );\n};\n\nCommentModal.propTypes = {\n classes: PropTypes.object.isRequired,\n onClose: PropTypes.func,\n onCancel: PropTypes.func,\n onSubmit: PropTypes.func.isRequired,\n\n // See https://react-dropzone.js.org/\n DropzoneProps: PropTypes.object,\n\n PhotoProps: PhotoPropTypes.photo,\n\n initCrop: PropTypes.object,\n};\n\nCommentModal.defaultProps = {\n onClose: noop,\n onCancel: noop,\n DropzoneProps: {\n maxSize: 10000000,\n },\n PhotoProps: {},\n initCrop: {\n aspect: 1,\n width: 500,\n unit: 'px',\n },\n};\n\nexport const StyledCommentModal = withStyles(styles)(CommentModal);\n\nexport default StyledCommentModal;\n","const styles = (theme) => ({\n modal: {\n backgroundColor: theme.custom.bgLightAccentColor,\n padding: '5px',\n minHeight: '300px',\n width: '600px',\n [theme.breakpoints.down('xs')]: {\n width: '100%',\n marginLeft: theme.custom.mainContentHorizontalPadding,\n marginRight: theme.custom.mainContentHorizontalPadding,\n },\n },\n scrollPaper: {\n alignItems: 'flex-start',\n },\n titleBar: {\n padding: '15px',\n fontSize: '18px',\n fontWeight: 100,\n },\n title: {},\n closeButton: {},\n closeIcon: {\n opacity: 0.2,\n\n '&:hover': {\n opacity: 0.5,\n cursor: 'pointer',\n },\n },\n summary: {},\n summaryItem: {\n marginLeft: '20px',\n },\n summaryImage: {\n margin: '10px',\n width: '64px',\n height: '64px',\n },\n summaryPoints: {\n fontSize: '40px',\n paddingRight: '5px',\n },\n ok: {\n marginTop: '40px',\n marginBottom: '15px',\n },\n okButton: {\n width: '60%',\n },\n});\n\nexport default styles;\n","import React, { useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core';\n\nimport Modal from '../Modal';\nimport SummaryModal from './SummaryModal';\nimport CommentModal from './CommentModal';\n\nimport styles from './styles';\nimport { MODAL_STATE_COMMENT, MODAL_STATE_SUMMARY } from './constants';\nimport RequestLoader from '../RequestLoader';\n\nconst LogAction = ({\n classes,\n isOpen,\n onClose,\n onCancel,\n summaryImageLink,\n bonuses,\n encouragements,\n challengeUpdates,\n okayFn,\n logActionFunc,\n onShare,\n shareURLLoading,\n loading,\n}) => {\n const [modalState, setModalState] = useState(MODAL_STATE_COMMENT);\n\n const handleOnClose = useCallback(() => {\n setModalState(MODAL_STATE_COMMENT);\n onClose();\n }, [setModalState, onClose]);\n\n const handleSubmit = useCallback(\n (message, imageFile, imageMD5) => {\n logActionFunc(message, imageFile, imageMD5);\n setModalState(MODAL_STATE_SUMMARY);\n },\n [logActionFunc],\n );\n\n const handleOnOkay = useCallback(() => {\n setModalState(MODAL_STATE_COMMENT);\n okayFn();\n }, [okayFn]);\n\n const handleOnShare = useCallback(() => {\n onShare();\n }, [onShare]);\n\n const modalContents = useCallback(() => {\n if (loading) {\n return ;\n } else if (modalState === MODAL_STATE_COMMENT) {\n return (\n \n );\n } else if (modalState === MODAL_STATE_SUMMARY) {\n return (\n \n );\n }\n }, [\n loading,\n onCancel,\n summaryImageLink,\n bonuses,\n encouragements,\n challengeUpdates,\n modalState,\n handleOnOkay,\n handleSubmit,\n handleOnClose,\n handleOnShare,\n shareURLLoading,\n ]);\n\n return (\n \n {modalContents()}\n \n );\n};\n\nLogAction.propTypes = {\n classes: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n summaryImageLink: PropTypes.string.isRequired,\n encouragements: PropTypes.arrayOf(PropTypes.string),\n challengeUpdates: PropTypes.arrayOf(PropTypes.string),\n bonuses: PropTypes.arrayOf(\n PropTypes.shape({\n points: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n }),\n ),\n okayFn: PropTypes.func.isRequired,\n logActionFunc: PropTypes.func.isRequired,\n onShare: PropTypes.func.isRequired,\n shareURLLoading: PropTypes.bool,\n loading: PropTypes.bool,\n};\n\nLogAction.defaultProps = {\n challengeUpdates: [],\n encouragements: [],\n bonuses: null,\n shareURLLoading: false,\n loading: false,\n};\n\nexport default withStyles(styles)(LogAction);\n","export const MODAL_STATE_COMMENT = 'COMMENT';\nexport const MODAL_STATE_SUMMARY = 'SUMMARY';\n","const styles = (theme) => ({\n container: {\n backgroundColor: theme.custom.bgLightAccentColor,\n },\n header: {\n padding: '15px',\n backgroundColor: theme.custom.redDark,\n },\n title: {\n fontSize: '18px',\n fontWeight: 600,\n color: theme.palette.common.white,\n },\n icon: {\n color: theme.palette.common.black,\n opacity: 0.2,\n\n '&:hover': {\n opacity: 0.5,\n cursor: 'pointer',\n },\n },\n main: {\n padding: '20px',\n },\n topMessage: {\n marginBottom: '10px',\n fontSize: '14px',\n },\n bottomMessage: {\n margin: '10px 0',\n fontSize: '14px',\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n email: {\n color: theme.palette.primary.dark,\n textDecoration: 'none',\n\n '&:hover': {\n color: theme.custom.linkPrimaryHover,\n textDecoration: 'underline',\n },\n },\n footer: {\n marginTop: '15px',\n padding: '20px',\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, withStyles, Typography } from '@material-ui/core';\nimport { Close } from '@material-ui/icons';\nimport Modal from '../Modal';\nimport Button from '../Button';\nimport styles from './styles';\n\nconst ErrorModal = ({ classes, error, isOpen, onClose, onCancel }) => {\n const { t } = useTranslation();\n\n const getErrorTitle = () => {\n const errorText = t('error.descriptor');\n const { status = false } = error;\n\n if (status) {\n const errorStatusDescription = t(`error.${status}`, '');\n if (errorStatusDescription) {\n return `${status} - ${errorStatusDescription}`;\n } else {\n return `${status} - ${errorText}`;\n }\n }\n\n return errorText;\n };\n\n return (\n \n \n \n \n {getErrorTitle()}\n \n \n \n \n \n {error.message}\n \n \n {t('serverErrorDefaultMessage')}\n \n support@joulebug.com\n \n \n \n \n \n \n \n \n );\n};\n\nErrorModal.propTypes = {\n classes: PropTypes.object.isRequired,\n error: PropTypes.shape({\n status: PropTypes.number,\n message: PropTypes.string.isRequired,\n }).isRequired,\n isOpen: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles)(ErrorModal);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n linkItem: ({ shouldHighlight }) => {\n const base = {\n backgroundColor: theme.custom.bgLightColor,\n borderRadius: '6px',\n marginBottom: '6px',\n };\n if (shouldHighlight) {\n base['&:hover'] = theme.custom.bgLightAccentColor;\n }\n return base;\n },\n imageContainer: {\n position: 'relative',\n },\n linkImage: {\n borderTopLeftRadius: '6px',\n borderBottomLeftRadius: '6px',\n },\n topRightImage: {\n position: 'absolute',\n top: 5,\n right: 5,\n },\n linkInfo: {\n paddingLeft: '8px',\n paddingRight: '8px',\n paddingTop: '8px',\n flex: 1,\n },\n linkName: {\n marginBottom: '5px',\n fontSize: '14px',\n fontWeight: '600',\n },\n linkDescription: {\n color: theme.custom.textDarkSecondaryColor,\n },\n linkControls: {\n marginTop: '6px',\n marginBottom: '20px',\n },\n buttonIcon: {\n marginRight: '3px',\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, Link } from '@material-ui/core';\nimport { Edit } from '@material-ui/icons';\n\nimport useStyles from './styles';\n\nimport { Can } from '../../casl/ability-context';\nimport Button from '../Button';\nimport { noop } from '../../utils';\n\nconst defaultImageUrl = require('../../assets/images/defaultImage.png');\n\nconst ImageCaptionCard = ({\n name,\n description,\n imageUrl,\n linkUrl,\n withControls,\n onEdit,\n onRemove,\n onClick,\n editPermissionAction,\n topRightImageUrl,\n}) => {\n const { t } = useTranslation();\n\n const classes = useStyles(!!linkUrl);\n\n const linkWrapper = (children) =>\n linkUrl ? (\n \n {children}\n \n ) : (\n children\n );\n\n const buttons = () => (\n \n \n \n \n \n \n \n \n );\n\n return (\n \n {linkWrapper(\n \n \n \n {topRightImageUrl && (\n \n )}\n \n \n \n {name}\n \n \n {description}\n \n \n ,\n )}\n {withControls &&\n (editPermissionAction ? (\n \n {() => buttons()}\n \n ) : (\n buttons()\n ))}\n \n );\n};\n\nImageCaptionCard.propTypes = {\n // The card's title\n name: PropTypes.string.isRequired,\n\n // The card's description\n description: PropTypes.string.isRequired,\n\n // The URL of the image for the card\n imageUrl: PropTypes.string.isRequired,\n\n // The permission necessary for editing this card\n editPermissionAction: PropTypes,\n\n // The url of this card's link\n linkUrl: PropTypes.string,\n\n // Should we show edit/remove buttons below the card if the user has permissions\n withControls: PropTypes.bool,\n\n // Function called when pressing the edit button\n onEdit: PropTypes.func,\n\n // Function called when clicking on the card\n onClick: PropTypes.func,\n\n // Function called when pressing the remove button\n onRemove: PropTypes.func,\n\n // Image that will be be shown in the top right corner on top of the main image\n topRightImageUrl: PropTypes.string,\n};\n\nImageCaptionCard.defaultProps = {\n onEdit: noop,\n onRemove: noop,\n onClick: noop,\n linkUrl: '',\n withControls: false,\n editPermissionAction: '',\n topRightImageUrl: '',\n};\n\nexport default ImageCaptionCard;\n","import { makeStyles } from '@material-ui/core';\n\nexport default makeStyles((theme) => ({\n container: ({ backgroundImage }) => ({\n width: '250px',\n height: '200px',\n margin: '5px 0px',\n color: theme.palette.common.white,\n backgroundSize: 'cover',\n borderRadius: '3px',\n background: `linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url(${backgroundImage})`,\n }),\n phraseText: {\n fontWeight: '400',\n fontSize: '16px',\n textAlign: 'center',\n paddingRight: '20px',\n paddingLeft: '20px',\n },\n valueText: {\n fontWeight: '700',\n fontSize: '36px',\n textAlign: 'center',\n },\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport useStyles from './styles';\n\nimport { Grid, Typography } from '@material-ui/core';\n\nconst ImpactConversion = ({\n leadingPhrase,\n value,\n trailingPhrase,\n backgroundImage,\n}) => {\n const classes = useStyles({ backgroundImage });\n return (\n \n \n {leadingPhrase}\n \n {value}\n \n {trailingPhrase}\n \n \n );\n};\nImpactConversion.propTypes = {\n leadingPhrase: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n trailingPhrase: PropTypes.string.isRequired,\n backgroundImage: PropTypes.string.isRequired,\n};\n\nImpactConversion.defaultProps = {};\n\nexport default ImpactConversion;\n","import { makeStyles } from '@material-ui/core';\n\nexport default makeStyles((theme) => ({\n tooltip: {\n color: theme.palette.white.main,\n },\n icon: {\n color: theme.custom.tooltipIconColor,\n marginLeft: '3px',\n\n '&:hover': {\n cursor: 'pointer',\n },\n },\n}));\n","import React from 'react';\nimport useStyles from './styles';\nimport Tooltip from '../Tooltip';\nimport { getImpactLink } from '../../utils';\nimport { Help } from '@material-ui/icons';\nimport { useTranslation } from 'react-i18next';\n\nconst ImpactToolTip = () => {\n const classes = useStyles();\n const { t } = useTranslation();\n return (\n {t('impact.tooltip')}\n }\n >\n \n \n \n \n );\n};\nexport default ImpactToolTip;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n linksHeader: {\n marginTop: '26px',\n marginBottom: '10px',\n },\n linksIcon: {\n marginRight: '8px',\n },\n linksLabel: {\n color: theme.custom.textDarkSecondaryColor,\n fontSize: '24px',\n fontWeight: '600',\n },\n buttonIcon: {\n marginRight: '3px',\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid } from '@material-ui/core';\nimport { AddCircle } from '@material-ui/icons';\n\nimport useStyles from './styles';\nimport { Can } from '../../../casl/ability-context';\nimport Button from '../../../common/Button';\n\nconst PinSubheader = ({\n title,\n addText,\n imageSrc,\n imageAlt,\n editAction,\n onAdd,\n}) => {\n const classes = useStyles();\n\n return (\n \n \n {imageSrc && (\n \n \n \n )}\n \n {title}\n \n \n \n \n {() => (\n \n \n {addText}\n \n )}\n \n \n \n );\n};\n\nPinSubheader.propTypes = {\n title: PropTypes.string,\n addText: PropTypes.string,\n imageSrc: PropTypes.string,\n imageAlt: PropTypes.string,\n editAction: PropTypes.string,\n onAdd: PropTypes.func,\n};\n\nPinSubheader.defaultProps = {\n title: '',\n addText: '',\n imageSrc: '',\n imageAlt: '',\n editAction: '',\n onAdd: () => {},\n};\n\nexport default PinSubheader;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n showMoreBtnItem: {\n marginTop: '6px',\n },\n noLinks: {\n opacity: 0.5,\n paddingTop: '10px',\n paddingBottom: '10px',\n fontWeight: 600,\n },\n}));\n\nexport default useStyles;\n","import React, { useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport useStyles from './styles';\n\nimport ImageCaptionCard from '../../../common/ImageCaptionCard';\nimport { Collapse, Grid } from '@material-ui/core';\nimport Button from '../../../common/Button';\nimport { LinkPropType } from '../../../actions/propTypes';\n\nconst ActionCards = ({ content, onEdit, onRemove, sponsorLogo }) => {\n const { t } = useTranslation();\n\n const classes = useStyles();\n\n const [moreContentShown, setMoreContentShown] = useState(false);\n const toggleMoreContentShown = useCallback(\n () => setMoreContentShown(!moreContentShown),\n [setMoreContentShown, moreContentShown],\n );\n\n if (content == null || content.length === 0) {\n return (\n \n {t('links.noneAdded')}\n \n );\n }\n\n const [first = {}, ...rest] = content;\n\n return (\n <>\n onEdit(first.key)}\n onRemove={() => onRemove(first.key)}\n topRightImageUrl={first.sponsorId && sponsorLogo}\n />\n {rest.length > 0 ? (\n <>\n \n {rest.map((card) => (\n onEdit(card.key)}\n onRemove={() => onRemove(card.key)}\n topRightImageUrl={card.sponsorId && sponsorLogo}\n />\n ))}\n \n \n \n \n \n ) : null}\n \n );\n};\n\nActionCards.propTypes = {\n content: PropTypes.arrayOf(LinkPropType),\n onEdit: PropTypes.func,\n onRemove: PropTypes.func,\n sponsorLogo: PropTypes.string,\n};\n\nActionCards.defaultProps = {\n content: [],\n sponsorLogo: '',\n onEdit: () => {},\n onRemove: () => {},\n};\n\nexport default ActionCards;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { connect } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport parse from 'html-react-parser';\nimport PropTypes from 'prop-types';\nimport copy from 'copy-to-clipboard';\nimport {\n Collapse,\n Grid,\n Typography,\n useTheme,\n withStyles,\n} from '@material-ui/core';\nimport { trackEvent, useTrackScreenView } from '../../utils/analytics';\nimport IMAGES from '../../constants/images';\nimport styles from './styles';\nimport CommonPropTypes from '../../common/propTypes';\nimport { actionRequested, logActionRequested } from '../../actions/actions';\nimport ActionHeader from './ActionHeader';\nimport BonusPoints from '../../common/BonusPoints';\nimport {\n didLogAction,\n getAction,\n getActionErrors,\n getLogActionBonuses,\n getLogActionChallengeUpdates,\n getLogActionEncouragements,\n getLogErrors,\n getLoggedActivityId,\n getLogStatus,\n getShareURL,\n isActionLoading,\n isLogActionLoading,\n isShareURLLoading,\n} from '../../actions/selectors';\nimport Button from '../../common/Button';\nimport LogAction from '../../common/LogAction';\nimport { getActiveCommunityId } from '../../user/selectors';\nimport ErrorModal from '../../common/ErrorModal';\nimport { actionPropType } from '../../actions/propTypes';\nimport ImageCaptionCard from '../../common/ImageCaptionCard';\nimport ImpactConversion from '../../common/ImpactConversion';\nimport IcomoonIcon from '../../common/IcomoonIcon';\nimport {\n activityShareURLRequested,\n clearActivityErrors,\n} from '../../activities/actions';\nimport SnackBarAPIResponse from '../../common/SnackbarAlert/SnackBarAPIResponse';\nimport { getErrors } from '../../activities/selectors';\nimport ImpactToolTip from '../../common/ImpactTooltip';\nimport { useRouteMatch } from 'react-router-dom';\nimport PinSubheader from '../UpdateActionScreen/PinSubheader';\nimport ActionCards from '../UpdateActionScreen/ActionCards';\nimport {\n EVENT_ACTION_LINK_VIEWED,\n EVENT_ACTION_VIDEO_VIEWED,\n} from '../../constants/analyticsEvents';\n\nconst Loader = () => (\n \n \"loader\"\n \n);\n\nconst Errors = ({ errors }) => (\n <>\n {errors.map((err, i) => (\n {err}\n ))}\n \n);\n\nconst ViewActionScreen = ({\n classes,\n communityId,\n action,\n isLoading,\n isLogActionLoading,\n errors,\n didLog,\n logActionBonuses,\n logActionEncouragements,\n logActionChallengeUpdates,\n loadFunc,\n logActionFunc,\n logActionErrors,\n logActionStatus,\n shareURL,\n shareURLLoading,\n fetchShareURL,\n activityId,\n clearShareURLMessages,\n shareURLErrors,\n}) => {\n const { t } = useTranslation();\n const theme = useTheme();\n const {\n params: { actionId },\n } = useRouteMatch();\n\n useEffect(() => {\n loadFunc({ actionId, communityId });\n }, [actionId, communityId, loadFunc]);\n\n useTrackScreenView('action_view_detail', {\n action_id: actionId,\n });\n\n const [isLogShown, setLogShown] = useState(false);\n const [logActionClicked, setLogActionClicked] = useState(false);\n const [isErrorShown, setErrorShown] = useState(false);\n const [snackbarMessage, setSnackbarMessage] = useState('');\n const [linkRequested, setLinkRequested] = useState(false);\n\n useEffect(() => {\n if (logActionClicked && didLog) {\n setLogShown(true);\n }\n }, [logActionClicked, didLog, setLogShown]);\n\n useEffect(() => {\n if (\n logActionClicked &&\n logActionErrors != null &&\n logActionStatus != null\n ) {\n setErrorShown(true);\n }\n }, [logActionClicked, logActionErrors, logActionStatus, setErrorShown]);\n\n const handleLinkClick = useCallback(() => {\n trackEvent(EVENT_ACTION_LINK_VIEWED, {\n action_id: actionId,\n });\n }, [actionId]);\n\n const [moreLinksShown, setMoreLinksShown] = useState(false);\n const toggleMoreLinksShown = () => setMoreLinksShown(!moreLinksShown);\n\n const handleLogActionFunc = useCallback(\n (message, imageFile, imageMD5) => {\n setLogActionClicked(true);\n const options = {};\n if (message?.length > 0) {\n options.message = message;\n }\n if (imageFile && imageMD5) {\n options.photoMD5 = imageMD5;\n options.file = imageFile;\n }\n logActionFunc({\n actionId,\n communityId,\n options,\n });\n },\n [actionId, communityId, logActionFunc],\n );\n\n useEffect(() => {\n if (shareURL && linkRequested) {\n copy(shareURL);\n setSnackbarMessage(t('sharing.copied'));\n setLinkRequested(false);\n }\n }, [t, shareURL, setSnackbarMessage, linkRequested, setLinkRequested]);\n\n const handleShareActivity = useCallback(() => {\n if (shareURL) {\n copy(shareURL);\n setSnackbarMessage(t('sharing.copied'));\n } else {\n setLinkRequested(true);\n fetchShareURL(activityId);\n }\n }, [t, shareURL, fetchShareURL, activityId, setLinkRequested]);\n\n const iframeRef = useRef(null);\n const iframeCallbackRef = useCallback((node) => {\n iframeRef.current = node;\n }, []);\n\n useEffect(() => {\n const onBlur = () => {\n if (\n document.activeElement &&\n document.activeElement.nodeName.toLowerCase() === 'iframe' &&\n iframeRef.current &&\n iframeRef.current === document.activeElement\n ) {\n trackEvent(EVENT_ACTION_VIDEO_VIEWED, {\n action_id: actionId,\n });\n }\n };\n\n window.addEventListener('blur', onBlur);\n\n return () => {\n window.removeEventListener('blur', onBlur);\n };\n }, [actionId]);\n return (\n \n {!action.name && isLoading && }\n {errors && }\n {!errors && action.name && (\n <>\n {isErrorShown ? (\n setErrorShown(false)}\n onCancel={() => setErrorShown(false)}\n />\n ) : null}\n setLogShown(false)}\n onCancel={() => setLogShown(false)}\n okayFn={() => setLogShown(false)}\n onShare={handleShareActivity}\n logActionFunc={handleLogActionFunc}\n loading={isLogActionLoading}\n shareURLLoading={shareURLLoading}\n challengeUpdates={logActionChallengeUpdates}\n />\n {\n setLogShown(true);\n }}\n headlineUrl={action.headlinePhotoUrl}\n iconUrl={action.iconUrl}\n name={action.name}\n shareURL={action.shareURL}\n />\n \n \n \n {action.description &&\n parse(action.description)}\n \n {action.contentBonuses?.length > 0 && (\n \n \n \n \n \n {t('bonusPoints')}\n \n \n )}\n \n {action.contentBonuses?.map((bonus, index) => (\n \n ))}\n \n {action.sustainableDevelopmentGoals?.length > 0 && (\n <>\n \n \n \n )}\n {action.impactConversions?.length > 0 && (\n <>\n \n \n \n \n \n {t('actionPage.sameYearlyImpactAs')}\n \n \n \n \n {action.impactConversions.map(\n (conversion, index) => (\n \n \n \n ),\n )}\n \n \n )}\n {action.videos?.length > 0 && (\n <>\n \n \n \n \n \n {t('Videos')}\n \n \n {action.videos.map((video, index) => (\n \n \n \n ))}\n \n )}\n {action.links?.length > 0 && (\n <>\n \n \n \n \n \n {t('Links')}\n \n \n \n {action.links.length > 1 && (\n <>\n \n {action.links\n .slice(1)\n .map((link, index) => (\n \n ))}\n \n \n \n Show\n {moreLinksShown\n ? t('Less')\n : t('More')}\n \n \n \n )}\n \n )}\n \n \n \n )}\n \n clearShareURLMessages() && setSnackbarMessage('')\n }\n />\n \n );\n};\n\nViewActionScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n communityId: PropTypes.string.isRequired,\n action: actionPropType,\n isLoading: PropTypes.bool.isRequired,\n isLogActionLoading: PropTypes.bool.isRequired,\n errors: CommonPropTypes.errors,\n didLog: PropTypes.bool,\n logActionBonuses: PropTypes.array,\n logActionEncouragements: PropTypes.arrayOf(PropTypes.string),\n logActionChallengeUpdates: PropTypes.arrayOf(PropTypes.string),\n loadFunc: PropTypes.func.isRequired,\n logActionFunc: PropTypes.func.isRequired,\n logActionErrors: CommonPropTypes.errors,\n logActionStatus: PropTypes.number,\n shareURL: PropTypes.string,\n shareURLLoading: PropTypes.bool,\n fetchShareURL: PropTypes.func.isRequired,\n activityId: PropTypes.string,\n clearShareURLMessages: PropTypes.func.isRequired,\n shareURLErrors: PropTypes.array,\n};\n\nViewActionScreen.defaultProps = {\n errors: null,\n action: {},\n didLog: false,\n logActionBonuses: null,\n logActionEncouragements: [],\n logActionChallengeUpdates: [],\n logActionErrors: null,\n logActionStatus: null,\n activityId: '',\n shareURLLoading: false,\n shareURL: '',\n shareURLErrors: [],\n};\n\nconst StyledViewActionScreen = withStyles(styles)(ViewActionScreen);\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n action: getAction(state),\n isLoading: isActionLoading(state),\n isLogActionLoading: isLogActionLoading(state),\n errors: getActionErrors(state),\n didLog: didLogAction(state),\n logActionBonuses: getLogActionBonuses(state),\n logActionEncouragements: getLogActionEncouragements(state),\n logActionChallengeUpdates: getLogActionChallengeUpdates(state),\n logActionErrors: getLogErrors(state),\n logActionStatus: getLogStatus(state),\n shareURL: getShareURL(state),\n shareURLLoading: isShareURLLoading(state),\n activityId: getLoggedActivityId(state),\n shareURLErrors: getErrors(state),\n challengeUpdates: getLogActionChallengeUpdates(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n fetchShareURL: (activityId) =>\n dispatch(activityShareURLRequested(activityId)),\n loadFunc: ({ actionId, communityId }) =>\n dispatch(actionRequested({ actionId, communityId })),\n logActionFunc: ({ actionId, communityId, options }) =>\n dispatch(logActionRequested({ actionId, communityId, options })),\n clearShareURLMessages: () => dispatch(clearActivityErrors()),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledViewActionScreen);\n","const styles = (theme) => ({\n root: {\n paddingBottom: '32px',\n },\n container: {\n width: theme.custom.mainContentWidth,\n },\n button: {\n flexGrow: 1,\n fontSize: '18px',\n },\n buttonIcon: {\n marginRight: '3px',\n },\n noVideos: {\n opacity: 0.5,\n paddingTop: '10px',\n paddingBottom: '10px',\n fontWeight: 600,\n },\n});\n\nexport default styles;\n","const styles = (theme) => ({\n logActionIcon: {\n marginRight: 4,\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/styles';\n\nimport BackgroundHeader from '../../../common/BackgroundHeader';\nimport styles from './styles';\nimport { noop } from '../../../utils';\nimport {\n ACTIONS,\n EDIT_ACTION,\n} from '../../ActionsScreen/AdminActionsScreen/constants';\n\nconst ActionHeader = ({\n classes,\n actionId,\n communityId,\n headlineUrl,\n iconUrl,\n name,\n allowReset,\n onReset,\n onChangePhoto,\n}) => {\n return (\n <>\n \n \n );\n};\n\nActionHeader.propTypes = {\n classes: PropTypes.object.isRequired,\n actionId: PropTypes.string.isRequired,\n communityId: PropTypes.string.isRequired,\n headlineUrl: PropTypes.string.isRequired,\n iconUrl: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n allowReset: PropTypes.bool,\n onReset: PropTypes.func,\n onChangePhoto: PropTypes.func.isRequired,\n};\n\nActionHeader.defaultProps = {\n allowReset: false,\n onReset: noop,\n};\n\nexport default withStyles(styles)(ActionHeader);\n","const styles = (theme) => ({\n container: {},\n icon: {\n color: theme.custom.tooltipIconColor,\n marginLeft: '3px',\n marginTop: '3px',\n '&:hover': {\n cursor: 'pointer',\n },\n },\n tooltip: {\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n descriptionLabel: {},\n placementHint: {\n marginBottom: '10px',\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n textarea: theme.shineAdmin.textarea,\n placementLabel: {},\n select: {\n minWidth: '50%',\n backgroundColor: theme.custom.inputBackground,\n fontSize: '14px',\n borderRadius: '4px',\n border: 'solid 1px',\n borderColor: theme.palette.primary.main,\n },\n check: {\n minWidth: '20px',\n paddingTop: '3px',\n },\n menuItem: {\n paddingTop: '1px',\n paddingBottom: '1px',\n paddingLeft: '1px',\n fontSize: '14px',\n },\n inputRoot: {\n paddingTop: '8px',\n paddingBottom: '8px',\n paddingLeft: '5px',\n },\n selectPaper: {\n backgroundColor: theme.palette.white,\n color: theme.palette.black,\n borderRadius: '4px',\n },\n translation: {\n marginTop: '10px',\n marginBottom: '10px',\n },\n translationLabel: {\n marginRight: '5px',\n },\n previewLabel: {\n marginBottom: '10px',\n },\n preview: {},\n previewIcon: {\n width: '64px',\n height: '64px',\n },\n previewInfo: {\n marginLeft: '10px',\n },\n previewName: {},\n previewDescription: {},\n});\n\nexport default styles;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n title: {\n fontSize: '18px',\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n },\n link: {\n display: 'flex',\n },\n icon: {\n marginLeft: '3px',\n color: theme.custom.tooltipIconColor,\n cursor: 'pointer',\n\n '&:hover': {\n color: theme.custom.tooltipIconHoverColor,\n },\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Typography } from '@material-ui/core';\nimport { Help } from '@material-ui/icons';\n\nimport useStyles from './styles';\nimport Tooltip from '../Tooltip';\nimport { showIntercomChat } from '../../config/intercom';\n\nconst ModalTitle = ({ text, Icon, tooltipText, tooltipPlacement }) => {\n const classes = useStyles();\n\n return (\n \n {text}\n \n \n \n \n );\n};\n\nModalTitle.propTypes = {\n text: PropTypes.string.isRequired,\n Icon: PropTypes.elementType,\n tooltipText: PropTypes.string.isRequired,\n tooltipPlacement: PropTypes.string,\n};\n\nModalTitle.defaultProps = {\n Icon: Help,\n tooltipPlacement: 'right',\n};\n\nexport default ModalTitle;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport parse from 'html-react-parser';\nimport {\n Grid,\n MenuItem,\n Select,\n TextareaAutosize,\n withStyles,\n} from '@material-ui/core';\nimport CheckIcon from '@material-ui/icons/Check';\nimport UnfoldMoreIcon from '@material-ui/icons/UnfoldMore';\n\nimport styles from './styles';\n\nimport ConfirmModal from '../ConfirmModal';\nimport { noop } from '../../utils';\nimport ModalTitle from '../ModalTitle';\nimport InfoTooltip from '../InfoTooltip';\nimport { INTERCOM_TARGET_PREFIX } from '../../screens/UpdateActionScreen/constants';\n\nconst ActionDescription = ({\n classes,\n isOpen,\n setOpen,\n onClose,\n onCancel,\n onConfirm,\n originalDescription,\n preview: { name, description, imageLink },\n}) => {\n const { t, i18n } = useTranslation();\n const PLACEMENTS = {\n APPEND_BEFORE: t('action.edit.appendBefore'),\n APPEND_AFTER: t('action.edit.appendAfter'),\n OVERWRITE: t('action.edit.overwrite'),\n };\n\n const PLACEMENT_VALUES = {\n [PLACEMENTS.APPEND_BEFORE]: 'appendBefore',\n [PLACEMENTS.APPEND_AFTER]: 'appendAfter',\n [PLACEMENTS.OVERWRITE]: 'overwrite',\n };\n\n const PLACEMENT_HINTS = {\n [PLACEMENTS.APPEND_BEFORE]: t('action.edit.appendBeforeDescription'),\n [PLACEMENTS.APPEND_AFTER]: t('action.edit.appendAfterDescription'),\n [PLACEMENTS.OVERWRITE]: t('action.edit.overwriteDescription'),\n };\n\n const PLACEMENT_TRANSFORMS = {\n [PLACEMENTS.APPEND_BEFORE]: (text, moreText) => `${moreText}${text}`,\n [PLACEMENTS.APPEND_AFTER]: (text, moreText) => `${text}${moreText}`,\n [PLACEMENTS.OVERWRITE]: (text, moreText) => moreText,\n };\n\n const [placement, setPlacement] = useState(PLACEMENTS.APPEND_BEFORE);\n const [text, setText] = useState('');\n useEffect(() => {\n const splits = description?.split(originalDescription);\n if (splits?.length === 1) {\n setPlacement(PLACEMENTS.OVERWRITE);\n setText(description);\n } else if (splits?.[0] === '') {\n setPlacement(PLACEMENTS.APPEND_AFTER);\n setText(splits?.[1]);\n } else {\n setPlacement(PLACEMENTS.APPEND_BEFORE);\n setText(splits?.[0]);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [description, originalDescription, isOpen]);\n\n const onTextChange = (event) => setText(event.target.value);\n const onPlacementChange = (event) => setPlacement(event.target.value);\n\n const fullDescription = PLACEMENT_TRANSFORMS[placement](\n originalDescription,\n text,\n );\n\n const makeMenuItem = (placementKey) => {\n const placementItem = PLACEMENTS[placementKey];\n return (\n \n \n \n {placement === placementItem ? (\n \n ) : null}\n \n {placementItem}\n \n \n );\n };\n\n const menuItems = Object.keys(PLACEMENTS).map((placementKey) =>\n makeMenuItem(placementKey),\n );\n\n const [key, setKey] = useState(0);\n const clearState = useCallback(() => {\n setText('');\n setPlacement(PLACEMENTS.APPEND_BEFORE);\n setKey(key + 1);\n }, [key, PLACEMENTS.APPEND_BEFORE]);\n\n const handleClose = () => {\n onClose();\n setOpen(false);\n clearState();\n };\n\n const handleCancel = () => {\n onCancel();\n setOpen(false);\n clearState();\n };\n\n const handleConfirm = () => {\n onConfirm({\n fullDescription,\n description: text,\n textPlacement: PLACEMENT_VALUES[placement],\n });\n clearState();\n };\n\n return (\n \n }\n isOpen={isOpen}\n confirmBtnText={t('OK')}\n confirmBtnType=\"accent\"\n cancelBtnText={t('cancel')}\n cancelBtnType=\"default\"\n onClose={handleClose}\n onCancel={handleCancel}\n onConfirm={handleConfirm}\n >\n \n \n \n {t('description')}\n \n \n \n \n \n \n {PLACEMENT_HINTS[placement]}\n \n \n \n \n \n {t('actions.textPlacement')}\n \n \n }\n MenuProps={{\n classes: {\n paper: classes.selectPaper,\n },\n }}\n renderValue={(value) => value}\n >\n {menuItems}\n \n \n \n \n \n {t('settings.translations.translatingIn')}:\n \n \n {i18n.language}\n \n \n {t('preview')}\n \n \n \n \n \n \n \n {name}\n \n \n {parse(fullDescription)}\n \n \n \n \n \n );\n};\n\nActionDescription.propTypes = {\n classes: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n setOpen: PropTypes.func.isRequired,\n onClose: PropTypes.func,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func.isRequired,\n preview: PropTypes.shape({\n name: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n imageLink: PropTypes.string.isRequired,\n }).isRequired,\n originalDescription: PropTypes.string.isRequired,\n};\n\nActionDescription.defaultProps = {\n onClose: noop,\n onCancel: noop,\n};\n\nexport default withStyles(styles)(ActionDescription);\n","export const INTERCOM_TARGET_PREFIX = 'updateAction';\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n checkboxRoot: {\n cursor: 'auto',\n '&:hover': {\n backgroundColor: theme.custom.bgLightAccentColor,\n },\n '&.Mui-checked:hover': {\n backgroundColor: theme.custom.bgLightAccentColor,\n },\n },\n checkboxSecondaryColor: {\n '&.Mui-checked': {\n color: '#4991e7',\n },\n },\n form: {\n width: '100%',\n },\n customize: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n },\n customizeLabel: {\n fontWeight: 700,\n fontSize: '18px',\n },\n sponsorLabel: {\n fontWeight: 600,\n fontSize: '14px',\n },\n dropzoneRoot: {\n width: '120px',\n height: '120px',\n border: `2px dashed ${theme.custom.textLightSecondaryColor}`,\n cursor: 'pointer',\n\n '&:hover': {\n borderColor: '#fff',\n backgroundColor: theme.custom.bgAccentColor,\n },\n },\n dndLabel: {\n fontSize: '85%',\n },\n previewLabel: {\n fontSize: '14px',\n fontWeight: 600,\n marginTop: '10px',\n marginBottom: '10px',\n },\n preview: {\n position: 'relative',\n },\n previewImageWrapper: {\n position: 'relative',\n maxWidth: '100px',\n },\n previewImage: {\n borderTopLeftRadius: '6px',\n borderBottomLeftRadius: '6px',\n },\n sponsorLogo: {\n position: 'absolute',\n top: 5,\n right: 5,\n },\n previewSummary: {\n borderTopRightRadius: '6px',\n borderBottomRightRadius: '6px',\n paddingLeft: '10px',\n paddingRight: '10px',\n paddingTop: '10px',\n minHeight: '112px',\n\n '&:not(:hover)': {\n backgroundColor: theme.custom.bgLightColor,\n },\n },\n previewSummaryTitle: {\n marginBottom: '5px',\n fontSize: '14px',\n fontWeight: 600,\n },\n previewSummaryDescription: {\n marginBottom: '10px',\n fontSize: '14px',\n color: theme.custom.textDarkSecondaryColor,\n },\n link: {\n textDecoration: 'none',\n color: 'inherit',\n },\n}));\n\nexport default useStyles;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n checkbox: {\n backgroundColor: 'white',\n padding: 2,\n height: 16,\n width: 16,\n borderRadius: 2,\n border: '1px solid',\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\n\nimport useStyles from './styles';\n\nconst CheckboxIcon = () => {\n const classes = useStyles();\n return
    ;\n};\n\nexport default CheckboxIcon;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/styles';\nimport clsx from 'clsx';\nimport CommonPropTypes from '../../propTypes';\nimport styles from './styles';\nimport { coerceErrorsIntoErrorMessages } from '../';\n\nfunction ErrorList({\n classes,\n className,\n component: Component,\n errorComponent: ErrorComponent,\n errors,\n ...restProps\n}) {\n const parsedErrors = useMemo(() => coerceErrorsIntoErrorMessages(errors), [\n errors,\n ]);\n\n if (!parsedErrors) {\n return null;\n }\n\n return (\n \n {parsedErrors.map((error) => (\n \n {error}\n \n ))}\n \n );\n}\n\nErrorList.propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n component: CommonPropTypes.component,\n errorComponent: CommonPropTypes.component,\n errors: CommonPropTypes.errors,\n};\n\nErrorList.defaultProps = {\n className: null,\n component: 'div',\n errorComponent: 'div',\n errors: [],\n};\n\nexport default withStyles(styles)(ErrorList);\n","export default (theme) => ({\n root: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n },\n error: {\n background: theme.palette.danger,\n color: theme.palette.dangerForeground,\n boxShadow: theme.shadows[1],\n fontWeight: 'bold',\n textAlign: 'left',\n padding: 16,\n marginTop: 4,\n marginBottom: 4,\n },\n});\n","import { createSelector } from 'reselect';\nimport { coerceIntoErrors } from '../common/errors';\n\nexport const getImageState = (state) => state.image;\n\nexport const isImageUploadRequestPending = createSelector(\n getImageState,\n (imageState) => imageState.isImageUploadRequestPending,\n);\n\nexport const getImageUploadErrors = createSelector(\n getImageState,\n (imageState) => coerceIntoErrors(imageState.imageUploadErrors),\n);\n\nexport const getImageUploadResponse = createSelector(\n getImageState,\n (imageState) => imageState.imageUploadResponse,\n);\n\nexport const getImageId = createSelector(\n getImageState,\n (imageState) => imageState.uploadId,\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport const ARef = (props) => \n \n \n \n \n {t('Save Changes')}\n \n \n \n );\n};\n\nMainControls.propTypes = {\n discardDisabled: PropTypes.bool.isRequired,\n saveDisabled: PropTypes.bool.isRequired,\n onDiscard: PropTypes.func.isRequired,\n onSave: PropTypes.func.isRequired,\n};\n\nexport default MainControls;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n description: {\n marginTop: '26px',\n fontSize: '24px',\n color: theme.custom.textDarkColor,\n },\n descriptionControls: {\n marginTop: '6px',\n marginBottom: '20px',\n },\n buttonIcon: {\n marginRight: '3px',\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport parse from 'html-react-parser';\nimport { Grid } from '@material-ui/core';\nimport { Edit } from '@material-ui/icons';\n\nimport useStyles from './styles';\n\nimport { Can } from '../../../casl/ability-context';\nimport Button from '../../../common/Button';\n\nconst Description = ({ description, onEdit, onReset }) => {\n const { t } = useTranslation();\n\n const classes = useStyles();\n\n return (\n \n \n {description && parse(description)}\n \n \n {() => (\n \n \n \n \n {t('action.edit.editDescription')}\n \n \n \n \n {t('Reset')}\n \n \n \n )}\n \n \n );\n};\n\nDescription.propTypes = {\n description: PropTypes.string.isRequired,\n onEdit: PropTypes.func.isRequired,\n onReset: PropTypes.func.isRequired,\n};\n\nexport default Description;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n form: {\n width: '100%',\n },\n}));\n\nexport default useStyles;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport * as Yup from 'yup';\nimport { Form, Formik } from 'formik';\n\nimport useStyles from './styles';\nimport ModalTitle from '../ModalTitle';\nimport FieldLabel from '../FieldLabel';\n\nimport ConfirmModal from '../ConfirmModal';\nimport { noop } from '../../utils';\nimport { BUTTON_ACCENT_COLOR, BUTTON_DEFAULT_COLOR } from '../Button/constants';\nimport FormInput from '../Form/FormInput';\nimport Photo from '../Photo';\nimport PhotoPropTypes from '../Photo/propTypes';\nimport CommonPropTypes from '../propTypes';\nimport { connect } from 'react-redux';\nimport {\n getImageUploadErrors,\n getImageUploadResponse,\n isImageUploadRequestPending,\n} from '../../image/selectors';\nimport { imageUploadRequested } from '../../image/actions';\nimport { getActiveCommunityId } from '../../user/selectors';\n\nconst UpdateCoverPhoto = ({\n communityId,\n isOpen,\n setOpen,\n author: initialAuthor,\n photo: initialPhoto,\n requestImageUpload,\n uploadRequestPending,\n uploadErrors,\n uploadResponse,\n onClose,\n onCancel,\n onConfirm,\n fileTooLargeErrorMessage,\n DropzoneProps,\n PhotoProps,\n CropProps,\n initCrop,\n}) => {\n const classes = useStyles();\n\n const { t } = useTranslation();\n\n const [croppedData, setCroppedData] = useState(null);\n const [uploadedImage, setUploadedImage] = useState(null);\n\n useEffect(() => {\n setCroppedData(null);\n setUploadedImage(null);\n }, [isOpen]);\n\n useEffect(() => {\n if (croppedData != null) {\n requestImageUpload({ communityId, file: croppedData });\n }\n }, [requestImageUpload, communityId, croppedData]);\n\n useEffect(() => {\n if (\n !uploadRequestPending &&\n uploadErrors == null &&\n uploadResponse != null\n ) {\n setUploadedImage(uploadResponse);\n }\n }, [uploadRequestPending, uploadErrors, uploadResponse, setUploadedImage]);\n\n const handleClose = useCallback(() => {\n onClose();\n setOpen(false);\n }, [onClose, setOpen]);\n\n const handleCancel = useCallback(() => {\n onCancel();\n setOpen(false);\n }, [onCancel, setOpen]);\n\n const handleConfirm = useCallback(\n (formik) => {\n onConfirm({\n image: uploadedImage,\n author: formik.values.author,\n });\n },\n [onConfirm, uploadedImage],\n );\n\n const errorAuthorRequired = useMemo(() => t('coverPhoto.authorRequired'), [\n t,\n ]);\n\n const initialValues = useMemo(\n () => ({\n author: initialAuthor,\n }),\n [initialAuthor],\n );\n\n const validationSchema = Yup.object().shape({\n author: Yup.string()\n .trim()\n .ensure()\n .required(errorAuthorRequired),\n });\n\n return (\n \n {(formikProps) => (\n \n }\n confirmBtnText={t('OK')}\n confirmBtnType={BUTTON_ACCENT_COLOR}\n confirmBtnDisabled={!formikProps.isValid}\n cancelBtnText={t('cancel')}\n cancelBtnType={BUTTON_DEFAULT_COLOR}\n onClose={handleClose}\n onCancel={handleCancel}\n onConfirm={() => handleConfirm(formikProps)}\n >\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n \n );\n};\n\nUpdateCoverPhoto.propTypes = {\n communityId: PropTypes.string.isRequired,\n isOpen: PropTypes.bool.isRequired,\n setOpen: PropTypes.func.isRequired,\n author: PropTypes.string.isRequired,\n photo: PropTypes.string.isRequired,\n requestImageUpload: PropTypes.func.isRequired,\n uploadRequestPending: PropTypes.bool.isRequired,\n uploadErrors: CommonPropTypes.errors,\n uploadResponse: PropTypes.object,\n onClose: PropTypes.func,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func.isRequired,\n\n // See https://react-dropzone.js.org/\n DropzoneProps: PropTypes.object,\n\n PhotoProps: PhotoPropTypes.photo,\n fileTooLargeErrorMessage: PropTypes.string,\n\n // See https://www.npmjs.com/package/react-image-crop\n CropProps: PropTypes.object,\n initCrop: PropTypes.object,\n};\n\nUpdateCoverPhoto.defaultProps = {\n uploadErrors: null,\n uploadResponse: null,\n onClose: noop,\n onCancel: noop,\n DropzoneProps: null,\n fileTooLargeErrorMessage: null,\n PhotoProps: {},\n CropProps: {\n minWidth: 800,\n minHeight: 500,\n maxWidth: 1080,\n maxHeight: 1920,\n },\n initCrop: {\n aspect: 16 / 9,\n width: 500,\n unit: 'px',\n },\n};\n\nexport { UpdateCoverPhoto as DumbUpdateCoverPhoto };\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n uploadRequestPending: isImageUploadRequestPending(state),\n uploadErrors: getImageUploadErrors(state),\n uploadResponse: getImageUploadResponse(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n requestImageUpload: (request) => dispatch(imageUploadRequested(request)),\n});\n\nconst ConnectedUpdateCoverPhoto = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(UpdateCoverPhoto);\nexport default ConnectedUpdateCoverPhoto;\n","const styles = (theme) => ({\n previewColumn: {\n width: '50%',\n marginRight: '10px',\n },\n previewVideo: {\n backgroundColor: theme.custom.inputBackground,\n },\n formColumn: {\n width: '100%',\n },\n textarea: theme.shineAdmin.textarea,\n icon: {\n color: theme.custom.tooltipIconColor,\n marginTop: '3px',\n marginLeft: '3px',\n\n '&:hover': {\n cursor: 'pointer',\n color: '#562732',\n },\n },\n});\n\nexport default styles;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n textarea: {\n display: 'flex',\n width: '100%',\n padding: '10px 16px',\n border: '1px solid',\n borderRadius: '8px',\n borderColor: theme.palette.primary.main,\n backgroundColor: theme.custom.inputBackground,\n fontSize: '14px',\n resize: 'vertical',\n '&:before, &:after': {\n display: 'none',\n },\n\n '&:hover': {\n backgroundColor: theme.custom.bgLightColor,\n },\n\n '&:active&:not(&:disabled)': {\n backgroundColor: theme.palette.common.white,\n },\n\n '&:focus': {\n borderColor: theme.palette.primary.dark,\n },\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport { TextareaAutosize } from '@material-ui/core';\n\nimport useStyles from './styles';\n\nconst Textarea = (props) => {\n const classes = useStyles();\n return ;\n};\n\nexport default Textarea;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, withStyles } from '@material-ui/core';\nimport { Form, Formik } from 'formik';\nimport * as Yup from 'yup';\n\nimport styles from './styles';\n\nimport ConfirmModal from '../ConfirmModal';\nimport FormInput from '../Form/FormInput';\nimport { noop } from '../../utils';\nimport { getVideoId, toVideoURL } from '../../actions/transforms';\nimport { VideoPropType } from '../../actions/propTypes';\nimport Textarea from '../Textarea';\nimport ModalTitle from '../ModalTitle';\nimport { INTERCOM_TARGET_PREFIX } from '../../screens/UpdateActionScreen/constants';\n\nconst initialValues = (video) => ({\n video: video?.videoId || '',\n name: video?.name || '',\n description: video?.description || '',\n});\n\nconst validationSchema = Yup.object().shape({\n video: Yup.string().required('VideoID or URL is required.'),\n name: Yup.string(),\n description: Yup.string(),\n});\n\nconst ActionVideo = ({\n classes,\n isOpen,\n setOpen,\n onClose,\n onCancel,\n onConfirm,\n initialVideo,\n}) => {\n const { t } = useTranslation();\n return (\n \n {({ isValid, ...formikProps }) => {\n const handleClose = () => {\n onClose();\n setOpen(false);\n };\n const handleCancel = () => {\n onCancel();\n setOpen(false);\n };\n const handleConfirm = () => {\n onConfirm({\n ...formikProps.values,\n video: getVideoId(formikProps.values.video),\n });\n };\n return (\n \n }\n isOpen={isOpen}\n confirmBtnText={t('OK')}\n confirmBtnType=\"accent\"\n cancelBtnText={t('cancel')}\n cancelBtnType=\"default\"\n onClose={handleClose}\n onCancel={handleCancel}\n onConfirm={handleConfirm}\n confirmBtnDisabled={\n formikProps.values.video === '' || !isValid\n }\n >\n \n \n \n {t('preview')}\n \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n );\n }}\n \n );\n};\n\nActionVideo.propTypes = {\n classes: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n setOpen: PropTypes.func.isRequired,\n onClose: PropTypes.func,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func.isRequired,\n initialVideo: VideoPropType,\n};\n\nActionVideo.defaultProps = {\n onClose: noop,\n onCancel: noop,\n initialVideo: null,\n};\n\nexport default withStyles(styles)(ActionVideo);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n showMoreBtnItem: {\n marginTop: '6px',\n },\n noVideos: {\n opacity: 0.5,\n paddingTop: '10px',\n paddingBottom: '10px',\n fontWeight: 600,\n },\n}));\n\nexport default useStyles;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n videoControls: {\n marginTop: '6px',\n marginBottom: '20px',\n },\n buttonIcon: {\n marginRight: '3px',\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid } from '@material-ui/core';\nimport { Edit } from '@material-ui/icons';\n\nimport useStyles from './styles';\n\nimport { Can } from '../../../casl/ability-context';\nimport Button from '../../../common/Button';\nimport { noop } from '../../../utils';\nimport { VideoPropType } from '../../../actions/propTypes';\nimport { toVideoURL } from '../../../actions/transforms';\n\nconst VideoComponent = ({ video, onEdit, onRemove }) => {\n const { t } = useTranslation();\n\n const classes = useStyles();\n\n const { videoId, isCommunity: withControls } = video;\n\n return (\n \n \n \n \n {withControls ? (\n \n {() => (\n \n \n \n \n {t('edit')}\n \n \n \n \n {t('Remove')}\n \n \n \n )}\n \n ) : null}\n \n );\n};\n\nVideoComponent.propTypes = {\n video: VideoPropType.isRequired,\n onEdit: PropTypes.func,\n onRemove: PropTypes.func,\n};\n\nVideoComponent.defaultProps = {\n onEdit: noop,\n onRemove: noop,\n};\n\nexport default VideoComponent;\n","import React, { useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport useStyles from './styles';\n\nimport VideoComponent from '../VideoComponent';\nimport { Collapse, Grid } from '@material-ui/core';\nimport Button from '../../../common/Button';\nimport { VideoPropType } from '../../../actions/propTypes';\n\nconst Videos = ({ videos, onVideoEdit, onVideoRemove }) => {\n const { t } = useTranslation();\n\n const classes = useStyles();\n\n const [moreVideosShown, setMoreVideosShown] = useState(false);\n const toggleMoreVideosShown = useCallback(\n () => setMoreVideosShown(!moreVideosShown),\n [setMoreVideosShown, moreVideosShown],\n );\n\n if (videos == null || videos.length === 0) {\n return (\n \n {t('videos.noneAdded')}\n \n );\n }\n\n const [first, ...rest] = videos;\n\n return (\n <>\n onVideoEdit(0)}\n onRemove={() => onVideoRemove(0)}\n />\n {rest.length > 0 ? (\n <>\n \n {rest.map((video, index) => (\n onVideoEdit(index + 1)}\n onRemove={() => onVideoRemove(index + 1)}\n />\n ))}\n \n \n \n \n \n ) : null}\n \n );\n};\n\nVideos.propTypes = {\n videos: PropTypes.arrayOf(VideoPropType),\n onVideoEdit: PropTypes.func.isRequired,\n onVideoRemove: PropTypes.func.isRequired,\n};\n\nVideos.defaultProps = {\n videos: null,\n};\n\nexport default Videos;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { withStyles, Paper } from '@material-ui/core';\nimport styles from './styles';\n\nconst MessagePaper = ({ type, withGutter, classes, ...rest }) => {\n return (\n \n );\n};\n\nMessagePaper.propTypes = {\n // From withStyles we expect to get classes\n classes: PropTypes.object.isRequired,\n\n // The type must be error or success.\n type: PropTypes.oneOf(['error', 'success', 'info']),\n\n // Whether or not to add a bottom margin to the paper.\n withGutter: PropTypes.bool,\n};\n\nMessagePaper.defaultProps = {\n // No type by default.\n type: null,\n\n // No bottom margin by default.\n withGutter: false,\n};\n\nexport default withStyles(styles)(MessagePaper);\n","export default (theme) => ({\n root: {\n padding: '1em 1em',\n textAlign: 'center',\n },\n withGutter: {\n marginBottom: 10,\n },\n error: {\n backgroundColor: theme.custom.red,\n color: theme.palette.primary.contrastText,\n },\n success: {\n backgroundColor: theme.palette.primary.main,\n color: '#8a6d3b',\n border: '1px solid #faebcc',\n borderRadius: 6,\n },\n info: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n },\n});\n","import { makeStyles } from '@material-ui/core';\n\nexport default makeStyles((theme) => ({\n banner: {\n marginTop: '60px',\n marginBottom: '30px',\n borderRadius: 5,\n backgroundColor: theme.palette.primary.contrastText,\n border: '3px',\n borderColor: theme.custom.EditingBannerBackground,\n borderStyle: 'solid',\n color: theme.custom.bgDarkAccentColor,\n },\n link: {\n color: theme.palette.primary.main,\n fontWeight: '700',\n },\n messageGridItem: {\n flex: 1,\n marginLeft: 25,\n marginRight: 25,\n },\n messageText: {\n color: theme.palette.primaryForeground,\n fontSize: 14,\n fontWeight: 'normal',\n letterSpacing: 0,\n textAlign: 'left',\n },\n}));\n","import React from 'react';\nimport { Can } from '../../casl/ability-context';\nimport { Link } from 'react-router-dom';\nimport { getLanguageDisplay } from '../../localization/utils';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { Grid, Typography } from '@material-ui/core';\nimport MessagePaper from '../MessagePaper';\nimport useStyles from './styles';\nimport { availableCommunitiesPropType } from '../../user/propTypes';\n\nconst EditingBanner = ({ actionDuplicationCommunities, ...props }) => {\n const classes = useStyles();\n const { t, i18n } = useTranslation();\n return (\n \n \n \n \n \n \n You are editing in the\n \n {{\n displayLanguage: getLanguageDisplay(\n i18n.language,\n ),\n }}\n \n Language.\n \n \n {actionDuplicationCommunities.length > 0 && (\n \n \n Your edits are being duplicated in\n \n {{\n communities: actionDuplicationCommunities\n .map(\n (community) =>\n community.content.name,\n )\n .join(', '),\n }}\n \n \n \n )}\n \n \n \n {t('editingBanner.settings')}\n \n \n \n \n \n );\n};\n\nEditingBanner.propTypes = {\n actionDuplicationCommunities: availableCommunitiesPropType,\n};\n\nEditingBanner.defaultProps = {\n actionDuplicationCommunities: [],\n};\n\nexport default EditingBanner;\n","import {\n DEFAULT_LANGUAGE,\n SUPPORTED_LANGUAGE_CODES,\n SUPPORTED_LANGUAGES,\n} from './constants';\n\nexport const getLanguageDisplay = (languageCode) => {\n return languageCode && SUPPORTED_LANGUAGE_CODES.includes(languageCode)\n ? SUPPORTED_LANGUAGES[languageCode]\n : SUPPORTED_LANGUAGES[DEFAULT_LANGUAGE];\n};\n","import { createSelector } from 'reselect';\n\nexport const getSettingsState = (state) => state.settings;\n\nexport const getActionDuplicationCommunities = createSelector(\n getSettingsState,\n (settings) => settings.actionDuplicationCommunities,\n);\n\nexport const getResponse = createSelector(\n getSettingsState,\n (settings) => settings.response,\n);\n\nexport const getErrors = createSelector(\n getSettingsState,\n (settings) => settings.errors,\n);\n\nexport const getIntegrations = createSelector(\n getSettingsState,\n (settings) => settings.integrations,\n);\n\nexport const settingsLoading = createSelector(\n getSettingsState,\n (settings) => settings.loading,\n);\n","import React, { useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { Checkbox, Grid, Typography, withStyles } from '@material-ui/core';\n\nimport styles from './styles';\n\nimport ConfirmModal from '../ConfirmModal';\nimport {\n activeCommunityPropType,\n availableCommunitiesPropType,\n} from '../../user/propTypes';\n\nconst ActionDuplicationModal = ({\n classes,\n actionDuplicationCommunities,\n activeCommunity,\n isOpen,\n onClose,\n onCancel,\n onConfirm,\n children,\n ...props\n}) => {\n const { t } = useTranslation();\n const title = (\n \n Confirm Save\n \n );\n\n const [checkedCommunityIds, setCheckedCommunityIds] = useState(\n actionDuplicationCommunities.reduce((checkedMap, community) => {\n checkedMap[community.content.id] = true;\n return checkedMap;\n }, {}),\n );\n\n const handleCheckChange = useCallback(\n (event) => {\n const checked = {\n ...checkedCommunityIds,\n [event.target.value]: !checkedCommunityIds[event.target.value],\n };\n setCheckedCommunityIds(checked);\n },\n [checkedCommunityIds, setCheckedCommunityIds],\n );\n\n const renderCommunity = useCallback(\n (name, id, checkOverride = false, handleChange = handleCheckChange) => (\n \n \n {name}\n \n \n \n ),\n [classes, checkedCommunityIds, handleCheckChange],\n );\n\n return (\n \n onConfirm(\n Object.keys(checkedCommunityIds).filter(\n (key) => checkedCommunityIds[key],\n ),\n )\n }\n classes={\n actionDuplicationCommunities.length > 0 && {\n footer: classes.footer,\n container: classes.container,\n }\n }\n {...props}\n >\n \n {children}\n {actionDuplicationCommunities.length > 0 && (\n <>\n \n {t('action.duplicationModal.description')}\n \n {renderCommunity(\n {activeCommunity.name},\n activeCommunity.id,\n true,\n () => {},\n )}\n {actionDuplicationCommunities.map((community) =>\n renderCommunity(\n community.content.name,\n community.content.id,\n ),\n )}\n \n )}\n \n \n );\n};\n\nActionDuplicationModal.propTypes = {\n classes: PropTypes.object.isRequired,\n activeCommunity: activeCommunityPropType.isRequired,\n actionDuplicationCommunities: availableCommunitiesPropType.isRequired,\n isOpen: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n onConfirm: PropTypes.func.isRequired,\n children: PropTypes.node,\n};\n\nActionDuplicationModal.defaultProps = {\n children: null,\n};\n\nexport default withStyles(styles)(ActionDuplicationModal);\n","export default (theme) => ({\n duplicationContainer: {\n marginTop: 20,\n },\n communityCheckContainer: {\n marginTop: 10,\n display: 'flex',\n },\n footer: {\n marginTop: 0,\n paddingTop: 0,\n },\n container: {\n paddingBottom: 0,\n },\n communityName: {\n alignItems: 'center',\n flex: 1,\n },\n});\n","/* eslint-disable no-undefined */\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport { findIndex, propEq, remove } from 'ramda';\nimport { useTranslation } from 'react-i18next';\n\nimport IMAGES from '../../constants/images';\nimport styles from './styles';\nimport CommonPropTypes from '../../common/propTypes';\nimport {\n actionCustomizationRequested,\n actionRequested,\n clearActionCustomizationErrors,\n setUrlMetadata,\n} from '../../actions/actions';\nimport ActionHeader from './ActionHeader';\nimport BonusPoints from '../../common/BonusPoints';\nimport {\n getAction,\n getActionErrors,\n getCustomizationErrors,\n getCustomizationMessage,\n isActionLoading,\n} from '../../actions/selectors';\nimport { getActiveCommunity } from '../../user/selectors';\nimport ActionDescription from '../../common/ActionDescription';\nimport AddLink from './AddLink';\nimport MainControls from './MainControls';\nimport Description from './Description';\nimport PinSubheader from './PinSubheader';\nimport ActionCards from './ActionCards';\nimport UpdateCoverPhoto from '../../common/UpdateCoverPhoto';\nimport ActionVideo from '../../common/ActionVideo';\nimport Videos from './Videos';\nimport PhotoPropTypes from '../../common/Photo/propTypes';\nimport ConfirmModal from '../../common/ConfirmModal';\nimport EditingBanner from '../../common/EditingBanner';\nimport { actionPropType } from '../../actions/propTypes';\nimport { getActionDuplicationCommunities } from '../SettingsScreen/selectors';\nimport {\n activeCommunityPropType,\n availableCommunitiesPropType,\n} from '../../user/propTypes';\nimport ActionDuplicationModal from '../../common/ActionDuplicationModal';\nimport { transformImageSizes } from '../../common/transforms';\nimport { useRouteMatch } from 'react-router-dom';\nimport SnackBarAPIResponse from '../../common/SnackbarAlert/SnackBarAPIResponse';\n\nconst Loader = () => (\n \n \"loader\"\n \n);\n\nconst Errors = ({ errors }) => (\n <>\n {errors.map((err, i) => (\n {err}\n ))}\n \n);\n\nconst UpdateActionScreen = ({\n classes,\n activeCommunity,\n action,\n isLoading,\n errors,\n loadFunc,\n requestCustomization,\n setMetadata,\n PhotoProps,\n actionDuplicationCommunities,\n message,\n customizationErrors,\n clearSnackBarErrors,\n}) => {\n const { t, i18n } = useTranslation();\n const {\n params: { actionId },\n } = useRouteMatch();\n const [snackBarMessage, setSnackBarMessage] = useState();\n\n useEffect(() => {\n loadFunc({ actionId, communityId: activeCommunity.id });\n }, [actionId, activeCommunity.id, loadFunc]);\n\n const [headlineImage, setHeadlineImage] = useState(null);\n const [headline, setHeadline] = useState(action.headlinePhotoUrl);\n const [author, setAuthor] = useState(action.headlinePhotoAuthor);\n const [editVideo, setEditVideo] = useState(null);\n const resetHeadline = useCallback(() => {\n setHeadlineImage(null);\n setHeadline(action.headlinePhotoUrl);\n setAuthor(action.headlinePhotoAuthor);\n }, [\n setHeadline,\n action.headlinePhotoUrl,\n setAuthor,\n action.headlinePhotoAuthor,\n setHeadlineImage,\n ]);\n const headlinePristine = useMemo(\n () => headline === action.headlinePhotoUrl,\n [headline, action.headlinePhotoUrl],\n );\n const [editHeadlineShown, setEditHeadlineShown] = useState(false);\n\n const [newDescription, setNewDescription] = useState(null);\n const [descriptionData, setDescriptionData] = useState(null);\n const resetDescription = useCallback(() => {\n setNewDescription(action.description);\n setDescriptionData(null);\n }, [setNewDescription, action.description]);\n\n const revertDescription = useCallback(() => {\n setNewDescription(action.originalDescription);\n setDescriptionData([]);\n }, [setNewDescription, action.originalDescription]);\n\n const descriptionPristine = useMemo(\n () => action.description === newDescription,\n [action.description, newDescription],\n );\n\n const [newLinks, setNewLinks] = useState(null);\n\n const resetLinks = useCallback(() => {\n setNewLinks(action.links);\n }, [setNewLinks, action.links]);\n\n const linksPristine = useMemo(() => action.links === newLinks, [\n action.links,\n newLinks,\n ]);\n\n const [newVideos, setNewVideos] = useState(null);\n const resetVideos = useCallback(() => {\n setNewVideos(action.videos);\n }, [setNewVideos, action.videos]);\n const videosPristine = useMemo(() => action.videos === newVideos, [\n action.videos,\n newVideos,\n ]);\n\n const [isEditDescriptionShown, setEditDescriptionShown] = useState(false);\n const [isAddLinkShown, setAddLinkShown] = useState(false);\n const [isAddVideoShown, setAddVideoShown] = useState(false);\n const [linkEditModeEnabled, setLinkEditModeEnabled] = useState(false);\n\n const [resetModalOpen, setResetModalOpen] = useState(false);\n const [confirmModalOpen, setConfirmModalOpen] = useState(false);\n\n const descriptionPreview = useMemo(\n () => ({\n name: action.name,\n description: newDescription,\n imageLink: action.iconUrl,\n }),\n [action.name, newDescription, action.iconUrl],\n );\n\n const handleDescriptionEdit = useCallback(\n (descriptionEdit) => {\n setEditDescriptionShown(false);\n setNewDescription(descriptionEdit.fullDescription);\n setDescriptionData([\n {\n description: {\n [i18n.language]: descriptionEdit.description,\n },\n textPlacement: descriptionEdit.textPlacement,\n },\n ]);\n },\n [\n setEditDescriptionShown,\n setNewDescription,\n setDescriptionData,\n i18n.language,\n ],\n );\n\n const handleLinkAddOrUpdate = useCallback(\n (link) => {\n const {\n url: linkUrl,\n title: name,\n description,\n sizes,\n imageUrl,\n sponsorId,\n custom,\n key = Date.now(),\n } = link;\n const newLink = {\n name,\n description,\n imageUrl,\n linkUrl,\n sponsorId,\n isCommunity: true,\n sizes,\n key,\n custom,\n };\n const indexToReplace = findIndex(propEq('key', key))(newLinks);\n const test =\n indexToReplace > -1\n ? newLinks.map((existingLink) => {\n if (newLink.key === existingLink.key) {\n return newLink;\n } else {\n return existingLink;\n }\n })\n : [newLink, ...newLinks];\n setNewLinks(test);\n setAddLinkShown(false);\n setLinkEditModeEnabled(false);\n },\n [setAddLinkShown, setNewLinks, newLinks],\n );\n\n const allPristine = useMemo(\n () =>\n descriptionPristine &&\n linksPristine &&\n videosPristine &&\n headlinePristine,\n [descriptionPristine, linksPristine, videosPristine, headlinePristine],\n );\n const resetAll = useCallback(() => {\n resetDescription();\n resetLinks();\n resetVideos();\n resetHeadline();\n }, [resetDescription, resetLinks, resetVideos, resetHeadline]);\n\n useEffect(() => {\n resetAll();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [action.name]);\n\n useEffect(() => {\n if (message) {\n setSnackBarMessage(message);\n }\n }, [message, t]);\n\n const handleLinkRemove = useCallback(\n (key) => {\n const indexToRemove = findIndex(propEq('key', key))(newLinks);\n setNewLinks(remove(indexToRemove, 1, newLinks));\n },\n [setNewLinks, newLinks],\n );\n\n const handleVideoRemove = useCallback(\n (index) => {\n setNewVideos([\n ...newVideos.slice(0, index),\n ...newVideos.slice(index + 1),\n ]);\n },\n [setNewVideos, newVideos],\n );\n\n const handleVideoEdit = useCallback(\n (index) => {\n const video = newVideos[index];\n setEditVideo({ ...video, index });\n setAddVideoShown(true);\n },\n [newVideos],\n );\n\n const handleAddOrUpdateVideoShown = useCallback((value) => {\n if (!value) {\n setEditVideo(null);\n }\n setAddVideoShown(value);\n }, []);\n\n const handleAddOrUpdateVideo = useCallback(\n ({ name, description, video }) => {\n setAddVideoShown(false);\n const newVideo = {\n name,\n description,\n videoId: video,\n isCommunity: true,\n };\n\n setEditVideo(null);\n setNewVideos(\n newVideos.reduce(\n (result, item, index) =>\n index === editVideo?.index\n ? [...result, newVideo]\n : [...result, item],\n editVideo ? [] : [newVideo],\n ),\n );\n },\n [newVideos, editVideo],\n );\n\n const handleSave = useCallback(\n (actionDuplicationCommunityIds) => {\n if (\n actionDuplicationCommunities.length > 0 &&\n confirmModalOpen === false\n ) {\n return setConfirmModalOpen(true);\n }\n const requestBody = {\n communityId: activeCommunity.id,\n actionId,\n videos: newVideos\n .filter(({ isCommunity }) => !!isCommunity)\n .map((video) => ({\n community: {\n id: activeCommunity.id,\n },\n description: {\n [i18n.language]: video.description,\n },\n internalName: video.name,\n name: {\n [i18n.language]: video.name,\n },\n videoID: video.videoId,\n })),\n urls: newLinks\n .filter(({ isCommunity }) => !!isCommunity)\n .map((link) => ({\n autoPreview: true,\n community: {\n id: activeCommunity.id,\n },\n description: {\n [i18n.language]: link.description,\n },\n internalName: link.name,\n name: {\n [i18n.language]: link.name,\n },\n updateMetadataAutomatically: !link.custom,\n sponsorId: link.sponsorId || '',\n url: link.linkUrl,\n urlType: null,\n image: {\n sizes:\n transformImageSizes(\n link.sizes === null ||\n link.sizes === undefined\n ? []\n : link.sizes,\n ) || [],\n },\n })),\n };\n if (headlineImage != null) {\n requestBody.photos = [\n {\n community: {\n id: activeCommunity.id,\n },\n photo: {\n sizes: headlineImage,\n },\n photoSizes: headlineImage,\n photoAuthorName: author,\n id: action.headlinePhotoId,\n },\n ];\n }\n if (descriptionData != null) {\n requestBody.descriptions = descriptionData;\n }\n if (\n actionDuplicationCommunities.length > 0 &&\n actionDuplicationCommunityIds?.length > 0\n ) {\n requestBody.actionDuplicationCommunityIds = actionDuplicationCommunityIds;\n }\n requestCustomization(requestBody);\n setConfirmModalOpen(false);\n },\n [\n newLinks,\n confirmModalOpen,\n activeCommunity.id,\n descriptionData,\n requestCustomization,\n actionId,\n newVideos,\n headlineImage,\n author,\n action.headlinePhotoId,\n actionDuplicationCommunities,\n i18n.language,\n ],\n );\n\n const handleLinkEdit = useCallback(\n (key) => {\n const link = newLinks.find(\n ({ key: currentKey }) => currentKey === key,\n );\n setMetadata({\n url: link?.linkUrl,\n title: link?.name,\n description: link?.description,\n sponsorId: link?.sponsorId,\n imageUrl: link?.imageUrl,\n updateMetadataAutomatically: link?.updateMetadataAutomatically,\n image: {\n sizes: link?.sizes,\n },\n key: link?.key,\n });\n setLinkEditModeEnabled(true);\n setAddLinkShown(true);\n },\n [setMetadata, newLinks, setLinkEditModeEnabled, setAddLinkShown],\n );\n\n return (\n \n {isLoading && }\n {errors && }\n {!isLoading && !errors && action.name && (\n <>\n \n {isAddLinkShown ? (\n setAddLinkShown(false)}\n onClose={() => setAddLinkShown(false)}\n onConfirm={handleLinkAddOrUpdate}\n editMode={linkEditModeEnabled}\n sponsor={action.sponsor}\n />\n ) : null}\n {isAddVideoShown ? (\n \n ) : null}\n {\n setHeadlineImage(image);\n if (image && image.length) {\n setHeadline(image[0].file.url);\n }\n setAuthor(newAuthor);\n setEditHeadlineShown(false);\n }}\n PhotoProps={PhotoProps}\n />\n setEditHeadlineShown(true)}\n />\n \n \n \n \n \n setResetModalOpen(true)}\n onSave={handleSave}\n />\n setEditDescriptionShown(true)}\n onReset={revertDescription}\n />\n \n \n {action.contentBonuses.map((bonus, index) => (\n \n ))}\n \n {action.sustainableDevelopmentGoals?.length > 0 && (\n <>\n \n \n \n )}\n setAddVideoShown(true)}\n />\n \n setAddLinkShown(true)}\n />\n \n \n \n setResetModalOpen(false)}\n onCancel={() => setResetModalOpen(false)}\n onConfirm={() => {\n resetAll();\n setResetModalOpen(false);\n }}\n cancelBtnType=\"default\"\n cancelBtnText={t('cancel')}\n confirmBtnType=\"primary\"\n confirmBtnText={t('confirm')}\n >\n {t('confirmDiscard')}\n \n {actionDuplicationCommunities.length > 0 && (\n setConfirmModalOpen(false)}\n onClose={() => setConfirmModalOpen(false)}\n onConfirm={(communityIds) =>\n handleSave(communityIds)\n }\n isOpen={confirmModalOpen}\n />\n )}\n \n )}\n {\n setSnackBarMessage(null);\n clearSnackBarErrors();\n }}\n />\n \n );\n};\n\nUpdateActionScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n activeCommunity: activeCommunityPropType.isRequired,\n action: actionPropType,\n isLoading: PropTypes.bool.isRequired,\n errors: CommonPropTypes.errors,\n loadFunc: PropTypes.func.isRequired,\n requestCustomization: PropTypes.func.isRequired,\n setMetadata: PropTypes.func.isRequired,\n actionDuplicationCommunities: availableCommunitiesPropType.isRequired,\n PhotoProps: PhotoPropTypes.photo,\n message: PropTypes.string.isRequired,\n customizationErrors: PropTypes.arrayOf(PropTypes.string),\n clearSnackBarErrors: PropTypes.func.isRequired,\n};\n\nUpdateActionScreen.defaultProps = {\n errors: null,\n customizationErrors: null,\n PhotoProps: {\n photoTooltipKey: 'coverPhoto.imageHelp',\n },\n action: {},\n};\n\nconst StyledUpdateActionScreen = withStyles(styles)(UpdateActionScreen);\n\nconst mapStateToProps = (state) => ({\n activeCommunity: getActiveCommunity(state),\n action: getAction(state),\n isLoading: isActionLoading(state),\n errors: getActionErrors(state),\n actionDuplicationCommunities: getActionDuplicationCommunities(state),\n message: getCustomizationMessage(state),\n customizationErrors: getCustomizationErrors(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n loadFunc: ({ actionId, communityId }) =>\n dispatch(actionRequested({ actionId, communityId })),\n requestCustomization: (request) =>\n dispatch(actionCustomizationRequested(request)),\n setMetadata: (linkId) => dispatch(setUrlMetadata(linkId)),\n clearSnackBarErrors: () => dispatch(clearActionCustomizationErrors()),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledUpdateActionScreen);\n","const styles = (theme) => ({\n container: {\n paddingTop: '9px',\n paddingRight: '30px',\n paddingLeft: '30px',\n maxWidth: 1280,\n margin: 'auto',\n },\n counterContainer: { paddingBottom: '30px' },\n loader: {\n maxWidth: '80px',\n height: 'auto',\n padding: '0px',\n backgroundColor: theme.custom.bgBlackTransparent,\n border: '2px',\n borderRadius: '5px',\n },\n themesTitle: {\n margin: '5px 0 5px',\n fontSize: '24px',\n color: theme.custom.textDarkSecondaryColor,\n fontWeight: 600,\n lineHeight: 1.1,\n },\n themesSubtitle: {\n fontSize: '14px',\n color: theme.custom.textDarkSecondaryColor,\n fontWeight: 400,\n },\n infoIcon: {\n marginLeft: '10px',\n color: theme.custom.tooltipIconColor,\n },\n editThemesButton: {\n margin: '20px 0 20px',\n },\n editThemesPlus: {\n marginRight: '5px',\n },\n themesHeader: {\n marginBottom: '20px',\n },\n selectedThemes: {\n position: 'relative',\n marginBottom: '50px',\n },\n modalDescription: {\n paddingBottom: 20,\n },\n filter: {\n paddingLeft: 20,\n },\n pointsInput: {\n width: 100,\n paddingLeft: 5,\n paddingRight: 5,\n },\n});\n\nexport default styles;\n","import PropTypes from 'prop-types';\nimport CommonPropTypes from '../propTypes';\n\nexport const columnsPropType = PropTypes.arrayOf(\n PropTypes.shape({\n Header: PropTypes.string,\n accessor: PropTypes.string,\n }),\n);\n\nexport const buttonsCellPropType = PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.string.isRequired,\n actions: PropTypes.string.isRequired,\n subject: PropTypes.string.isRequired,\n tooltip: PropTypes.string.isRequired,\n icon: CommonPropTypes.component,\n intercomTarget: PropTypes.string,\n }),\n);\n\n// Describes the initialSort prop\nexport const sortPropType = PropTypes.arrayOf(\n PropTypes.shape({\n // This is the id of the column to sort by.\n id: PropTypes.string.isRequired,\n\n // Indicate direction to sort the column by.\n desc: PropTypes.bool.isRequired,\n }),\n);\n\nexport const dataPropType = PropTypes.array;\n","import React, { memo, useMemo } from 'react';\nimport { withStyles } from '@material-ui/styles';\nimport {\n TableHead,\n TableRow,\n TableCell,\n TableSortLabel,\n} from '@material-ui/core';\nimport { ArrowDownward, ArrowUpward, ImportExport } from '@material-ui/icons';\nimport PropTypes from 'prop-types';\nimport { columnsPropType } from '../propTypes';\nimport styles from './styles';\nimport { useTranslation } from 'react-i18next';\nimport clsx from 'clsx';\n\nconst _getSortByToggleProps = (cell) => {\n // Intentionally removing \"title\" prop because that ends up being the tooltip because that's what browsers do.\n const { title, ...rest } = cell.getSortByToggleProps();\n return rest;\n};\n\nconst TableHeader = memo(({ classes, columns, cellActions, sortBy }) => {\n useMemo(() => ({ sortBy }), [sortBy]);\n\n const { t } = useTranslation();\n\n const renderCell = (cell) => {\n if (typeof cell.Header === 'string' || cell.Header instanceof String) {\n cell.Header = t(cell.Header);\n }\n if (\n cell.id === 'selection' ||\n cell.id === 'icon' ||\n cell.sortable === false\n ) {\n return cell.render('Header');\n } else if (cell.id === 'actions') {\n return cellActions;\n }\n\n return (\n \n {cell.render('Header')}\n \n );\n };\n\n return (\n \n {columns.map((headerGroup, rowIdx) => (\n \n {headerGroup.headers.map((cell, cellIdx) => (\n \n \n {renderCell(cell)}\n \n \n ))}\n \n ))}\n \n );\n});\n\nTableHeader.propTypes = {\n classes: PropTypes.object.isRequired,\n cellActions: PropTypes.node,\n columns: columnsPropType.isRequired,\n sortBy: PropTypes.array,\n};\n\nTableHeader.defaultProps = {\n cellActions: null,\n sortBy: [],\n};\n\nexport default withStyles(styles)(TableHeader);\n","export default (theme) => ({\n root: {\n backgroundColor: theme.palette.white.main,\n fontSize: 14,\n whiteSpace: 'nowrap',\n '& td, th': {\n padding: '8px',\n width: 'inherit',\n height: 'inherit',\n color: theme.custom.darkGrey,\n fontWeight: 'bold',\n },\n },\n sortLabel: {\n color: `${theme.palette.primary.main} !important`,\n '& svg': {\n color: 'inherit !important',\n },\n },\n defaultCell: {\n padding: 8,\n },\n checkboxCell: {\n padding: '0 8px !important',\n },\n centerAlignHeader: {\n textAlign: 'center',\n },\n leftAlignHeader: {\n textAlign: 'left',\n },\n rightAlignHeader: {\n textAlign: 'right',\n },\n});\n","import React, { forwardRef, useRef, useEffect } from 'react';\n\nconst TableCellCheckbox = forwardRef(({ indeterminate, ...rest }, ref) => {\n const defaultRef = useRef();\n const resolvedRef = ref || defaultRef;\n\n useEffect(() => {\n resolvedRef.current.indeterminate = indeterminate;\n }, [resolvedRef, indeterminate]);\n\n return ;\n});\n\nexport default TableCellCheckbox;\n","import React from 'react';\nimport { Grid, IconButton } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport { buttonsCellPropType } from '../propTypes';\nimport { Can } from '../../../casl/ability-context';\nimport Tooltip from '../../Tooltip';\nimport { useTranslation } from 'react-i18next';\nimport { withStyles } from '@material-ui/styles';\nimport styles from './styles';\n\nconst TableCellActions = ({\n classes,\n id,\n buttonsCell,\n onButtonsCell,\n rowIdx,\n}) => {\n const { t } = useTranslation();\n const getButton = (tooltip, key, Icon, intercomTarget) => (\n \n onButtonsCell(id, key)}\n >\n \n \n \n );\n return (\n \n {buttonsCell.map(\n ({\n key,\n actions,\n subject,\n tooltip,\n icon: Icon,\n intercomTarget,\n }) =>\n subject && actions ? (\n \n {getButton(tooltip, key, Icon, intercomTarget)}\n \n ) : (\n getButton(tooltip, key, Icon)\n ),\n )}\n \n );\n};\n\nTableCellActions.propTypes = {\n id: PropTypes.string.isRequired,\n buttonsCell: buttonsCellPropType.isRequired,\n onButtonsCell: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n // The row index -- only used for intercom targets\n rowIdx: PropTypes.string.isRequired,\n};\n\nexport default withStyles(styles)(TableCellActions);\n","export default (theme) => ({\n iconLink: {\n color: theme.palette.gray.main,\n },\n});\n","import React, { memo, useState } from 'react';\nimport { Grid, Typography, Select, MenuItem } from '@material-ui/core';\nimport { ExpandMore } from '@material-ui/icons';\nimport { withStyles } from '@material-ui/styles';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport styles from './styles';\nimport { noop } from '../../../utils';\nimport Tooltip from '../../Tooltip';\nimport InfoTooltip from '../../InfoTooltip';\n\nconst TableToolbar = memo(\n ({\n classes,\n title,\n rowsPerPage,\n options,\n setPageSize,\n hideRowsPerPage,\n intercomTargetPrefix,\n }) => {\n const { t } = useTranslation();\n const [openTooltip, setOpenTooltip] = useState(false);\n\n return (\n \n \n \n {title && (\n <>\n \n {title}\n \n \n \n )}\n \n \n {!!rowsPerPage && !hideRowsPerPage && (\n \n \n setOpenTooltip(true)}\n onMouseLeave={() => setOpenTooltip(false)}\n onOpen={() => setOpenTooltip(false)}\n classes={{\n icon: classes.selectIcon,\n }}\n IconComponent={ExpandMore}\n SelectDisplayProps={{\n className: classes.select,\n }}\n disableUnderline\n value={rowsPerPage}\n onChange={(e) => {\n setPageSize(Number(e.target.value));\n }}\n >\n {options.map((item) => (\n \n {item}\n \n ))}\n \n \n \n )}\n \n );\n },\n);\n\nTableToolbar.propTypes = {\n classes: PropTypes.object.isRequired,\n title: PropTypes.string,\n rowsPerPage: PropTypes.number,\n options: PropTypes.arrayOf(PropTypes.number).isRequired,\n hideRowsPerPage: PropTypes.bool,\n setPageSize: PropTypes.func,\n intercomTargetPrefix: PropTypes.string,\n};\n\nTableToolbar.defaultProps = {\n title: null,\n rowsPerPage: 0,\n hideRowsPerPage: false,\n setPageSize: noop,\n intercomTargetPrefix: '',\n};\n\nexport default withStyles(styles)(TableToolbar);\n","export default (theme) => ({\n root: {\n justifyContent: 'space-between',\n alignItems: 'center',\n color: theme.custom.textDarkSecondaryColor,\n marginTop: '20px',\n\n '& .MuiInputBase-root': {\n margin: '2px 0',\n padding: '6px 15px',\n borderRadius: '10px',\n backgroundColor: theme.palette.common.white,\n color: theme.palette.primary.main,\n border: 'solid 2px',\n borderColor: theme.palette.primary.main,\n },\n\n '& .MuiInputBase-root > div:focus': {\n boxShadow: 'none',\n outline: '0!important',\n borderColor: 'transparent',\n },\n },\n\n textLabel: {\n fontSize: '32px',\n color: 'inherit',\n fontWeight: 600,\n lineHeight: 1.1,\n },\n selectIcon: {\n fontSize: 18,\n marginRight: 6,\n marginTop: 3,\n color: 'inherit',\n },\n\n select: {\n minWidth: '30px',\n cursor: 'pointer',\n },\n});\n","import React, {\n Fragment,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport { usePagination, useRowSelect, useSortBy, useTable } from 'react-table';\nimport { withStyles } from '@material-ui/styles';\nimport parse from 'html-react-parser';\nimport {\n Grid,\n Paper,\n Table as TableUI,\n TableBody,\n TableCell,\n TableContainer,\n TableRow,\n Typography,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport TableHeader from './TableHeader';\nimport TableCellCheckbox from './TableCellCheckbox';\nimport TableCellActions from './TableCellActions';\nimport TableToolbar from './TableToolbar';\nimport {\n buttonsCellPropType,\n columnsPropType,\n dataPropType,\n sortPropType,\n} from './propTypes';\nimport { noop } from '../../utils';\nimport styles from './styles';\nimport ContentLoader from 'react-content-loader';\nimport { Pagination } from '@material-ui/lab';\nimport InfoTooltip from '../InfoTooltip';\n\nconst Table = memo(\n ({\n classes,\n title,\n noItemFoundText,\n columns,\n data,\n fetchDataFunc,\n searchFunc,\n searchString,\n multiActionButton,\n onRowSelect,\n buttonsCell,\n onButtonsCell,\n pageOptions,\n totalCount,\n initialPageSize,\n hideRowsPerPage,\n initialPageIndex,\n initialSortBy,\n clientPagination,\n loading,\n loaderRows,\n isBorderImg,\n intercomTargetPrefix,\n refetchData,\n activeCommunityId,\n }) => {\n const { t } = useTranslation();\n\n const [pageIndex, setPageIndex] = useState(initialPageIndex);\n\n const renderContentLoader = useCallback(\n () =>\n [...Array(loaderRows).keys()].map((key) => (\n \n \n \n \n )),\n [classes.contentLoaderContainer, loaderRows],\n );\n\n const instance = useTable(\n {\n columns,\n data,\n initialState: {\n pageSize: initialPageSize,\n pageIndex: initialPageIndex,\n sortBy: initialSortBy,\n },\n autoResetPage: !clientPagination,\n autoResetFilters: !clientPagination,\n manualSortBy: !clientPagination,\n manualPagination: !clientPagination,\n },\n useSortBy,\n usePagination,\n useRowSelect,\n (hooks) => {\n if (!multiActionButton) return;\n hooks.allColumns.push((columns) => [\n {\n id: 'selection',\n Header: ({ getToggleAllRowsSelectedProps }) => (\n \n ),\n Cell: ({ row }) => (\n \n ),\n },\n ...columns,\n ]);\n },\n );\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n page,\n prepareRow,\n gotoPage,\n setPageSize,\n state: { selectedRowIds, sortBy, pageSize },\n } = instance;\n\n const pc = useMemo(() => {\n let totalItems = totalCount;\n if (clientPagination) {\n totalItems = data.length;\n }\n return Math.ceil(totalItems / pageSize);\n }, [totalCount, clientPagination, pageSize, data.length]);\n\n useEffect(() => {\n const listRowId = Object.keys(selectedRowIds).map(\n (rowIndex) => data[rowIndex]?.id,\n );\n onRowSelect(listRowId);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedRowIds]);\n\n const fetchData = useCallback(\n (pageIndex) => {\n let skip = 0;\n if (pageIndex > 0) {\n /**\n * Weird hack to account for items being removed from the table\n * so that we don't skip the same number of items we removed.\n * Used for the ChallengeActionsModal table\n */\n skip = (pageIndex - 1) * pageSize + data?.length;\n }\n const options = {\n skip,\n limit: pageSize,\n sortBy: sortBy?.[0]?.id,\n order: sortBy?.[0]?.desc === false ? 1 : -1,\n };\n if (searchString) {\n options.search = searchString;\n }\n if (searchFunc && searchString) {\n searchFunc(searchString, options);\n } else {\n fetchDataFunc(options);\n }\n },\n [\n fetchDataFunc,\n searchString,\n searchFunc,\n pageSize,\n sortBy,\n data.length,\n ],\n );\n\n useEffect(() => {\n setPageIndex(0);\n gotoPage(0);\n fetchData(0);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n sortBy,\n pageSize,\n searchString,\n gotoPage,\n refetchData,\n activeCommunityId,\n ]);\n\n const renderCellActions = () => {\n if (!multiActionButton) return;\n return (\n \n \n {multiActionButton}\n \n );\n };\n\n return (\n \n \n \n {loading && renderContentLoader()}\n {!loading && !data.length && noItemFoundText ? (\n \n {noItemFoundText}\n \n ) : (\n !loading && (\n \n \n \n \n {page.map((row, rowIdx) => {\n prepareRow(row);\n return (\n \n {row.cells.map(\n (cell, cellIdx) => (\n \n {cell.column\n .id ===\n 'actions' ? (\n \n ) : cell.column\n .id ===\n 'description' &&\n cell.value ? (\n parse(\n cell.value,\n )\n ) : (\n cell.render(\n 'Cell',\n )\n )}\n \n ),\n )}\n \n );\n })}\n \n \n \n )\n )}\n \n \n {\n const index = v - 1;\n gotoPage(index);\n setPageIndex(index);\n fetchData(index);\n }}\n color=\"primary\"\n />\n \n \n );\n },\n);\n\nTable.propTypes = {\n classes: PropTypes.object.isRequired,\n title: PropTypes.string,\n noItemFoundText: PropTypes.string,\n columns: columnsPropType.isRequired,\n data: dataPropType.isRequired,\n fetchDataFunc: PropTypes.func,\n searchFunc: PropTypes.func,\n searchString: PropTypes.string,\n multiActionButton: PropTypes.node,\n onRowSelect: PropTypes.func,\n buttonsCell: buttonsCellPropType,\n onButtonsCell: PropTypes.func,\n pageOptions: PropTypes.arrayOf(PropTypes.number),\n totalCount: PropTypes.number,\n initialPageSize: PropTypes.number,\n hideRowsPerPage: PropTypes.bool,\n initialPageIndex: PropTypes.number,\n initialSortBy: sortPropType,\n clientPagination: PropTypes.bool,\n loading: PropTypes.bool.isRequired,\n isBorderImg: PropTypes.bool,\n loaderRows: PropTypes.number,\n refetchData: PropTypes.number,\n activeCommunityId: PropTypes.string,\n // Used solely to identify this table's rows and container on intercom tags\n intercomTargetPrefix: PropTypes.string,\n};\n\nTable.defaultProps = {\n title: null,\n noItemFoundText: null,\n multiActionButton: null,\n onRowSelect: noop,\n buttonsCell: null,\n onButtonsCell: noop,\n initialPageIndex: 0,\n pageOptions: [10, 20, 30, 40, 50],\n initialPageSize: 10,\n loaderRows: 10,\n totalCount: 0,\n hideRowsPerPage: false,\n initialSortBy: [],\n fetchDataFunc: noop,\n searchFunc: null,\n searchString: '',\n clientPagination: false,\n isBorderImg: false,\n intercomTargetPrefix: '',\n refetchData: 0,\n activeCommunityId: '',\n};\n\nexport default withStyles(styles)(Table);\n","export default (theme) => ({\n container: {\n boxShadow: 'none',\n },\n root: {\n backgroundColor: theme.custom.bgLightAccentColor,\n },\n cell: {\n padding: 8,\n width: 'inherit',\n height: 'inherit',\n borderBottom: 'solid 1px',\n borderBottomColor: theme.custom.grey88,\n '& img': {\n maxWidth: '42px',\n borderRadius: '50%',\n borderStyle: 'none',\n boxShadow: '0px 3px 10px #00000026',\n },\n },\n borderIcon: {\n '& img': {\n borderRadius: '50%',\n borderStyle: 'none',\n boxShadow: '0px 3px 10px #00000026',\n },\n },\n noItemsText: {\n padding: '16px 0',\n opacity: 0.5,\n fontSize: 14,\n textAlign: 'center',\n },\n cellTitle: {\n fontWeight: 700,\n },\n contentLoaderContainer: {\n backgroundColor: theme.palette.common.white,\n width: '100%',\n height: 70,\n },\n pagination: {\n marginTop: '10px',\n },\n});\n","import React, { Fragment, useCallback, useMemo, useState } from 'react';\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport { AddBox, IndeterminateCheckBox } from '@material-ui/icons';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport Table from '../../../common/Table';\nimport {\n activeButtonsCell,\n deactivatedButtonsCell,\n tableColumn,\n} from './constants';\nimport { noop } from '../../../common/utils';\nimport ActionDuplicationModal from '../../../common/ActionDuplicationModal';\nimport {\n activeCommunityPropType,\n availableCommunitiesPropType,\n} from '../../../user/propTypes';\nimport Activate from '../../../common/ActivateModal/Activate';\nimport {\n PIN_ADMIN_VISIBILITIES,\n PIN_ADMIN_VISIBILITY_INCLUDED_FOR_THEME,\n} from '../../../actions/constants';\nimport { actionTablePropType } from '../../../actions/propTypes';\n\nconst TableManager = ({\n type,\n title,\n data,\n filter,\n onChangeActive,\n columns,\n shouldShowMultiSelect,\n actionDuplicationCommunities,\n activeCommunity,\n fetchDataFunc,\n buttonsCell,\n onButtonsCell,\n clientPagination,\n ...tableProps\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n\n const [selectedRowIds, setSelectedRowIds] = useState({});\n const [rowsData, setRowsData] = useState({});\n\n const tableData = useMemo(() => {\n let filteredData = data.data;\n if (clientPagination) {\n filteredData = data.data?.filter(\n ({ name, description }) =>\n name.toLowerCase().includes(filter.toLowerCase()) ||\n description.toLowerCase().includes(filter.toLowerCase()),\n );\n }\n return (\n filteredData?.map((item) =>\n [...columns, { accessor: 'id' }].reduce((row, cell) => {\n return { ...row, [cell.accessor]: item[cell.accessor] };\n }, {}),\n ) || []\n );\n }, [clientPagination, columns, data.data, filter]);\n\n const changeActivate = useCallback(\n (id) => {\n const currRows = !id\n ? selectedRowIds.reduce((list, itemId) => {\n const item = tableData.find((item) => item.id === itemId);\n return item ? [...list, item] : list;\n }, [])\n : tableData.filter((item) => item.id === id);\n\n if (!currRows.length) return;\n\n setRowsData({\n isOpen: true,\n items: currRows.map(({ id, name, icon }) => ({\n name,\n iconUrl: icon,\n identifier: id,\n })),\n });\n },\n [tableData, selectedRowIds],\n );\n\n const handleActions = useCallback(\n (id, key) => {\n switch (key) {\n case 'viewActionsAdmin':\n history.push(`/actions/${id}`);\n break;\n\n case 'editActions':\n history.push(`/actions/${id}/edit`);\n break;\n\n case 'deactivateActionExclude':\n case 'activateActionExclude':\n changeActivate(id);\n break;\n\n default:\n alert({ id, key });\n }\n },\n [history, changeActivate],\n );\n\n const isIncluded = useMemo(\n () => type === PIN_ADMIN_VISIBILITY_INCLUDED_FOR_THEME,\n [type],\n );\n\n const renderHeadButtons = useCallback(() => {\n const disabled = Object.keys(selectedRowIds).length === 0;\n return (\n changeActivate()} disabled={disabled}>\n \n {isIncluded ? : }\n \n \n );\n }, [t, selectedRowIds, isIncluded, changeActivate]);\n\n const action = isIncluded ? t('deactivate') : t('activate');\n const descriptionTransKey = isIncluded\n ? 'action.deactivate.description'\n : 'action.activate.description';\n const description = t(descriptionTransKey, {\n count: rowsData.items?.length,\n });\n\n const handleConfirmActivate = (communityIds) => {\n onChangeActive(\n rowsData.items.map(({ identifier }) => identifier),\n communityIds,\n {\n visibility: type,\n },\n );\n setRowsData({});\n };\n\n const handleFetchData = useCallback(\n (args) => {\n const body = {\n ...args,\n visibility: type,\n };\n fetchDataFunc(body);\n },\n [fetchDataFunc, type],\n );\n\n return (\n \n \n setRowsData({})}\n onCancel={() => setRowsData({})}\n onConfirm={(communityIds) =>\n handleConfirmActivate(communityIds)\n }\n actionDuplicationCommunities={actionDuplicationCommunities}\n activeCommunity={activeCommunity}\n title={t('confirmUpdate')}\n confirmBtnType={isIncluded ? 'danger' : 'success'}\n confirmBtnText={action}\n >\n \n \n \n );\n};\n\nTableManager.propTypes = {\n type: PropTypes.oneOf(PIN_ADMIN_VISIBILITIES),\n title: PropTypes.string,\n data: actionTablePropType,\n filter: PropTypes.string,\n onChangeActive: PropTypes.func,\n columns: PropTypes.object,\n shouldShowMultiSelect: PropTypes.bool,\n actionDuplicationCommunities: availableCommunitiesPropType,\n activeCommunity: activeCommunityPropType,\n fetchDataFunc: PropTypes.func,\n buttonsCell: PropTypes.object,\n onButtonsCell: PropTypes.func,\n clientPagination: PropTypes.bool,\n};\n\nTableManager.defaultProps = {\n type: PIN_ADMIN_VISIBILITY_INCLUDED_FOR_THEME,\n filter: '',\n onChangeActive: noop,\n title: null,\n columns: tableColumn,\n shouldShowMultiSelect: true,\n actionDuplicationCommunities: [],\n activeCommunity: {},\n fetchDataFunc: noop,\n buttonsCell: null,\n onButtonsCell: null,\n clientPagination: false,\n data: {},\n};\n\nexport default TableManager;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n minHeight: '112px',\n padding: 0,\n\n '&:hover': {\n transform: 'translateY(-2px)',\n transition: 'all .2s ease-in',\n },\n },\n outlinedPrimary: ({ selected }) => {\n const base = {\n color: selected\n ? theme.palette.primary.main\n : theme.custom.textDarkSecondaryColor,\n borderRadius: '10px',\n opacity: 1,\n };\n\n const selectedOption = selected\n ? {\n borderWidth: '5px',\n boxShadow: '0px 5px 10px rgba(0,0,0,.1)',\n borderColor: theme.palette.white.main,\n '&:hover': {\n borderWidth: '5px',\n borderColor: theme.palette.white.main,\n },\n }\n : {\n borderWidth: '2px',\n padding: '3px',\n opacity: 1,\n borderColor: theme.palette.primary.main,\n '&:hover': {\n borderWidth: '2px',\n borderColor: theme.palette.primary.main,\n },\n };\n\n return {\n ...base,\n '&:hover': {\n boxShadow: selected\n ? 'none'\n : '0 0 0 1px rgba(0,0,0,.03),0 2px 8px 0 rgba(0,0,0,.09)',\n },\n ...selectedOption,\n };\n },\n container: {\n flex: 1,\n zIndex: 2,\n borderRadius: '6px',\n\n '&:hover': {\n backgroundColor: theme.custom.bgLightColor,\n },\n\n '&:hover $header': {\n opacity: 'none',\n },\n backgroundColor: theme.palette.white.main,\n },\n header: ({ selected }) => ({\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n opacity: selected ? 1 : 0,\n transition: 'opacity .2s ease-in',\n backgroundColor: theme.palette.primary.main,\n maxHeight: '100%',\n borderRadius: '4px',\n }),\n wrapper: ({ selected }) => ({\n color: selected ? theme.palette.white.main : theme.palette.primary.main,\n zIndex: 5,\n margin: 5,\n }),\n icon: {\n position: 'relative',\n top: '40%',\n transition: 'opacity .2s ease-in',\n width: '40px',\n height: '40px',\n fill: theme.palette.white.main,\n opacity: 1,\n },\n iconContainer: {\n marginBottom: '5px',\n },\n nameContainer: {\n fontWeight: 600,\n },\n nameText: {\n fontWeight: 600,\n fontSize: '14px',\n lineHeight: 1.2,\n },\n descriptionText: {\n fontSize: '16px',\n lineHeight: 1.1,\n },\n}));\n\nexport default useStyles;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport _uniqueId from 'lodash/uniqueId';\n\nconst ColorImage = ({ imageUrl, imageColor, height, width }) => {\n const [id] = useState(_uniqueId());\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n\nColorImage.propTypes = {\n imageUrl: PropTypes.string.isRequired,\n imageColor: PropTypes.string.isRequired,\n height: PropTypes.number,\n width: PropTypes.number,\n};\n\nColorImage.defaultProps = {\n height: 50,\n width: 50,\n};\n\nexport default ColorImage;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Grid, Typography, useTheme } from '@material-ui/core';\n\nimport useStyles from './styles';\nimport { noop } from '../utils';\nimport ColorImage from '../ColorImage';\n\nconst ContentToggleButton = ({\n selected,\n onClick,\n name,\n iconUrl,\n description,\n icon: Icon,\n ...props\n}) => {\n const classes = useStyles({ selected, iconUrl });\n const theme = useTheme();\n\n const [isHovered, setHovered] = useState(false);\n return (\n setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n >\n \n
    \n \n {isHovered ? (\n \n \n {description}\n \n \n ) : (\n <>\n \n {iconUrl && (\n \n )}\n {Icon && }\n \n \n \n {name}\n \n \n \n )}\n \n \n \n );\n};\n\nContentToggleButton.propTypes = {\n selected: PropTypes.bool.isRequired,\n onClick: PropTypes.func,\n name: PropTypes.string,\n description: PropTypes.string,\n iconUrl: PropTypes.string,\n icon: PropTypes.elementType,\n};\n\nContentToggleButton.defaultProps = {\n name: '',\n description: '',\n iconUrl: null,\n onClick: noop,\n icon: null,\n};\n\nexport default ContentToggleButton;\n","import { transformAction } from '../actions/transforms';\n\nexport const transformTheme = (theme) => ({\n id: theme?.id,\n name: theme?.name,\n iconUrl: theme?.imageSizes[0]?.url,\n status: theme?.status,\n description: theme?.description,\n challengeName: theme?.challengeName,\n challengeDescription: theme?.challengeDescription,\n challengeIconUrl: theme?.challengeIcon?.[0]?.url,\n whiteIcon: theme?.whiteIcon?.[0]?.url,\n explainerText: theme?.explainerText,\n sampleActions: theme?.samplePins?.map((pin) => transformAction(pin)),\n photoUrl: theme?.headlinePhoto?.photoSizes?.[0]?.url,\n categories: theme?.categories?.map((c) => transformCategory(c)),\n largePhotoUrl:\n theme?.headlinePhoto?.photoSizes?.[\n theme.headlinePhoto.photoSizes.length - 1\n ]?.url,\n});\n\nconst transformCategory = (category) => ({\n id: category?.id,\n name: category?.name,\n iconUrl: category?.imageSizes?.[0]?.url,\n});\n","import { createSelector } from 'reselect';\nimport { coerceIntoErrors } from '../common/errors';\nimport { transformTheme } from './transforms';\nexport const getThemesState = (state) => state.themes;\n\nexport const areThemesLoading = createSelector(\n getThemesState,\n (themesState) => themesState.themes.loading,\n);\n\nexport const isThemeUpdateLoading = createSelector(\n getThemesState,\n (themesState) => themesState.update.loading,\n);\n\nexport const getThemesErrors = createSelector(\n getThemesState,\n (themesState) => coerceIntoErrors(themesState.themes.errors) || [],\n);\n\nexport const getUpdateThemesErrors = createSelector(\n getThemesState,\n (themesState) => coerceIntoErrors(themesState.update.errors),\n);\n\nexport const getThemes = createSelector(getThemesState, (themesState) =>\n themesState.themes?.themes?.map((theme) => transformTheme(theme)),\n);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n inputRoot: {\n width: '100%',\n borderRadius: '23px',\n border: '1px solid transparent',\n backgroundColor: theme.custom.inputBackground,\n fontSize: '18px',\n '&:before, &:after': {\n display: 'none',\n },\n height: 46,\n justifyContent: 'center',\n paddingLeft: 10,\n },\n select: {\n '&:focus': {\n backgroundColor: theme.custom.inputBackground,\n },\n },\n selectItem: {\n paddingLeft: 10,\n },\n clear: {\n marginRight: 20,\n cursor: 'pointer',\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport useStyles from './styles';\nimport { Grid, MenuItem, TextField, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport { noop } from '../utils';\nimport { Clear } from '@material-ui/icons';\n\nconst FormDropdown = ({\n value,\n onChange,\n placeholder,\n items,\n renderItems,\n SelectProps,\n ...props\n}) => {\n const classes = useStyles();\n return (\n onChange({ target: { value: '' } })}\n >\n \n
    \n ),\n }}\n SelectProps={{\n classes: {\n select: classes.select,\n },\n displayEmpty: true,\n renderValue: (value) => {\n const label = items?.find((item) => item.value === value)\n ?.label;\n if (!label) {\n return {placeholder};\n } else {\n return {label};\n }\n },\n ...SelectProps,\n }}\n classes={{\n root: classes.inputRoot,\n }}\n value={value}\n fullWidth\n select\n {...props}\n >\n {renderItems\n ? renderItems()\n : items?.map((item) => (\n \n \n {item.label}\n \n \n ))}\n \n );\n};\n\nFormDropdown.propTypes = {\n value: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n items: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n }),\n ),\n renderItems: PropTypes.func,\n SelectProps: PropTypes.object,\n};\n\nFormDropdown.defaultProps = {\n value: '',\n onChange: noop,\n placeholder: '',\n items: [],\n renderItems: null,\n SelectProps: {},\n};\n\nexport default FormDropdown;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n categoryIcon: {\n width: '24px',\n marginRight: 5,\n height: 'auto',\n objectFit: 'contain',\n },\n selectItem: {\n paddingLeft: 10,\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport useStyles from './styles';\nimport { Grid, ListSubheader, MenuItem, Typography } from '@material-ui/core';\nimport FormDropdown from '../FormDropdown';\nimport PropTypes from 'prop-types';\nimport { noop } from '../utils';\n\nconst CategoryDropdown = ({\n value,\n onChange,\n placeholder,\n themes,\n ...props\n}) => {\n const classes = useStyles();\n return (\n \n theme.categories.map((category) => ({\n label: category.name,\n value: category.id,\n })),\n )}\n renderItems={() =>\n themes?.map((theme) => [\n \n \n \n {theme.name}\n \n ,\n theme.categories?.map((c) => (\n \n \n \n {c.name}\n \n \n )),\n ])\n }\n />\n );\n};\n\nCategoryDropdown.propTypes = {\n value: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n themes: PropTypes.array,\n};\n\nCategoryDropdown.defaultProps = {\n value: '',\n onChange: noop,\n placeholder: '',\n themes: [],\n};\nexport default CategoryDropdown;\n","import React, {\n Fragment,\n memo,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from 'react';\nimport { connect } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport {\n Grid,\n MenuItem,\n Tooltip,\n Typography,\n withStyles,\n} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport styles from './styles';\nimport HeaderPage from '../../../common/HeaderPage';\nimport SearchBar from '../../../common/Search';\nimport RequestLoader from '../../../common/RequestLoader';\nimport {\n actionsRequested,\n addExcludeActionRequest,\n addIncludeActionRequest,\n clearActionErrors,\n sdgsRequested,\n} from '../../../actions/actions';\nimport { getActions, getSDGs } from '../../../actions/selectors';\nimport TableManager from './TableManager';\nimport { getActiveCommunity } from '../../../user/selectors';\nimport { sortPropType } from '../../../common/Table/propTypes';\nimport ContentToggleButton from '../../../common/ContentToggleButton';\nimport {\n areThemesLoading,\n getThemes,\n} from '../../../communityThemes/selectors';\nimport { themesRequested } from '../../../communityThemes/actions';\nimport { Add } from '@material-ui/icons';\nimport Button from '../../../common/Button';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\nimport { AbilityContext, Can } from '../../../casl/ability-context';\nimport { SELECTED, UNSELECTED } from '../../../communityThemes/constants';\nimport { getActionDuplicationCommunities } from '../../SettingsScreen/selectors';\nimport {\n activeCommunityPropType,\n availableCommunitiesPropType,\n} from '../../../user/propTypes';\nimport { useTrackScreenView } from '../../../utils/analytics';\nimport SnackBarAPIResponse from '../../../common/SnackbarAlert/SnackBarAPIResponse';\nimport { noop } from '../../../utils';\nimport {\n PIN_ADMIN_VISIBILITY_EXCLUDED,\n PIN_ADMIN_VISIBILITY_INCLUDED_FOR_THEME,\n} from '../../../actions/constants';\nimport { actionTablePropType } from '../../../actions/propTypes';\nimport InfoTooltip from '../../../common/InfoTooltip';\nimport { INTERCOM_TARGET_PREFIX } from './constants';\nimport FormDropdown from '../../../common/FormDropdown';\nimport CategoryDropdown from '../../../common/CategoryDropdown';\nimport FormInput from '../../../common/Form/FormInput';\n\nexport const AdminActionsScreen = memo(\n ({\n classes,\n activeCommunity,\n actionDuplicationCommunities,\n includedTableData,\n excludedTableData,\n fetchActions,\n addInclude,\n addExclude,\n initialSortActive,\n initialSortDeactivated,\n themes,\n getThemes,\n clearErrors,\n themesLoading,\n getSDGs,\n sdgs,\n }) => {\n const { t } = useTranslation();\n const { path } = useRouteMatch();\n\n const [textFilter, setTextFilter] = useState('');\n const [sdgFilter, setSDGFilter] = useState(null);\n const [minPointsFilter, setMinPointsFilter] = useState(null);\n const [maxPointsFilter, setMaxPointsFilter] = useState(null);\n const [categoryFilter, setCategoryFilter] = useState(null);\n\n const [pointsFilterOpen, setPointsFilterOpen] = useState(false);\n\n const [refetchData, setRefetchData] = useState(0);\n\n const history = useHistory();\n\n useTrackScreenView('action_view_overview_admin');\n\n const ability = useContext(AbilityContext);\n const canDeactivateActions = ability.can(\n 'edit',\n 'CommunityActionExclude',\n );\n\n useEffect(() => {\n getSDGs();\n }, [getSDGs]);\n\n useEffect(() => {\n getThemes(activeCommunity.id);\n }, [activeCommunity.id, getThemes]);\n\n const fetchActionData = useCallback(\n (args) => {\n const body = {\n ...args,\n };\n if (sdgFilter) {\n body.sdgId = sdgFilter;\n }\n if (minPointsFilter) {\n body.minPoints = minPointsFilter;\n }\n if (maxPointsFilter) {\n body.maxPoints = maxPointsFilter;\n }\n if (categoryFilter) {\n body.categoryIds = [categoryFilter];\n }\n fetchActions(activeCommunity.id, body);\n },\n [\n activeCommunity.id,\n categoryFilter,\n fetchActions,\n maxPointsFilter,\n minPointsFilter,\n sdgFilter,\n ],\n );\n\n const handleKeyDown = (e) => {\n if (e.which === 13) {\n // Enter key pressed\n if (minPointsFilter || maxPointsFilter) {\n setRefetchData(refetchData + 1);\n }\n setPointsFilterOpen(false);\n } else if (e.which === 9) {\n // Tab key pressed\n e.stopPropagation();\n }\n };\n\n return (\n \n \n \n \n \n \n \n \n {t('appContent.themes.title')}\n \n \n \n \n \n history.push('/themes/edit')\n }\n className={classes.editThemesButton}\n data-intercom-target=\"Action Header Edit Button\"\n >\n \n \n {t('appContent.themes.edit')}\n \n \n \n \n
    \n \n \n {themes\n .filter(\n (theme) =>\n theme.status && theme.status !== UNSELECTED,\n )\n .map((theme, index) => {\n const manuallySelected =\n theme.status === SELECTED;\n let button = (\n \n );\n if (!manuallySelected) {\n button = (\n \n {button}\n \n );\n }\n return (\n \n {button}\n \n );\n })}\n \n \n \n \n \n \n \n \n \n {\n setSDGFilter(e.target.value);\n setRefetchData(refetchData + 1);\n }}\n value={sdgFilter}\n items={sdgs?.map((sdg) => ({\n value: sdg.id,\n label: sdg.name,\n }))}\n placeholder={t('action.sdgs')}\n />\n \n \n {\n setCategoryFilter(e.target.value);\n setRefetchData(refetchData + 1);\n }}\n themes={themes.filter(\n (theme) => theme.status === SELECTED,\n )}\n value={categoryFilter}\n placeholder={t('category')}\n />\n \n \n setPointsFilterOpen(true),\n onClose: () => {\n setPointsFilterOpen(false);\n if (\n minPointsFilter ||\n maxPointsFilter\n ) {\n setRefetchData(refetchData + 1);\n }\n },\n renderValue: () => {\n if (\n minPointsFilter &&\n maxPointsFilter\n ) {\n return `${minPointsFilter} - ${maxPointsFilter}`;\n } else if (minPointsFilter) {\n return `${minPointsFilter} -`;\n } else if (maxPointsFilter) {\n return `- ${maxPointsFilter}`;\n } else {\n return t('Points');\n }\n },\n }}\n value={minPointsFilter || maxPointsFilter}\n onChange={(e) => {\n if (Object.keys(e).length === 1) {\n setRefetchData(refetchData + 1);\n setMinPointsFilter(null);\n setMaxPointsFilter(null);\n }\n }}\n renderItems={() => [\n \n setPointsFilterOpen(true)\n }\n >\n \n {\n const val = e.target.value;\n if (\n val >= 0 &&\n val < 1000\n ) {\n setMinPointsFilter(val);\n }\n }}\n value={minPointsFilter}\n />\n \n -\n \n {\n const val = e.target.value;\n if (\n val >= 0 &&\n val < 1000\n ) {\n setMaxPointsFilter(val);\n }\n }}\n value={maxPointsFilter}\n />\n \n ,\n ]}\n />\n \n \n \n {path !== '/actions/deactivated' && (\n \n )}\n {path !== '/actions/active' && canDeactivateActions && (\n \n )}\n \n \n \n \n );\n },\n);\n\nAdminActionsScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n includedTableData: actionTablePropType.isRequired,\n excludedTableData: actionTablePropType.isRequired,\n fetchActions: PropTypes.func.isRequired,\n activeCommunity: activeCommunityPropType.isRequired,\n actionDuplicationCommunities: availableCommunitiesPropType.isRequired,\n addInclude: PropTypes.func.isRequired,\n addExclude: PropTypes.func.isRequired,\n getThemes: PropTypes.func.isRequired,\n initialSortActive: sortPropType,\n initialSortDeactivated: sortPropType,\n themes: PropTypes.array,\n themesLoading: PropTypes.bool,\n clearErrors: PropTypes.func,\n sdgs: PropTypes.object,\n getSDGs: PropTypes.func,\n};\n\nAdminActionsScreen.defaultProps = {\n initialSortActive: [{ id: 'name', desc: false }],\n initialSortDeactivated: [{ id: 'name', desc: false }],\n themes: [],\n themesLoading: false,\n clearErrors: noop,\n sdgs: [],\n getSDGs: noop,\n};\n\nexport const StyledAdminActionsScreen = withStyles(styles)(AdminActionsScreen);\n\nconst mapStateToProps = (state) => ({\n activeCommunity: getActiveCommunity(state),\n actionDuplicationCommunities: getActionDuplicationCommunities(state),\n includedTableData: getActions(\n state,\n PIN_ADMIN_VISIBILITY_INCLUDED_FOR_THEME,\n ),\n excludedTableData: getActions(state, PIN_ADMIN_VISIBILITY_EXCLUDED),\n themes: getThemes(state),\n themesLoading: areThemesLoading(state),\n sdgs: getSDGs(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n fetchActions: (communityId, filters) =>\n dispatch(actionsRequested(communityId, filters)),\n addExclude: (actionIds, communityIds, filters) =>\n dispatch(addExcludeActionRequest(actionIds, communityIds, filters)),\n addInclude: (actionIds, communityIds, filters) =>\n dispatch(addIncludeActionRequest(actionIds, communityIds, filters)),\n getThemes: (communityId) => dispatch(themesRequested(communityId, true)),\n clearErrors: () => dispatch(clearActionErrors()),\n getSDGs: () => dispatch(sdgsRequested()),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledAdminActionsScreen);\n","export const LOCKED = 'LOCKED';\nexport const UNSELECTED = 'UNSELECTED';\nexport const SELECTED = 'SELECTED';\n","import React from 'react';\n\nimport { Can } from '../../casl/ability-context';\nimport UserActionsScreen from '../ActionsScreen/UserActionsScreen';\nimport AdminActionsScreen from './AdminActionsScreen';\n\nexport const ActionsScreen = (props) => {\n return (\n <>\n \n \n \n \n \n \n \n );\n};\n\nexport default ActionsScreen;\n","const styles = (theme) => ({\n root: {\n padding: '0 96px',\n '& td, td span, th': { fontSize: 14 },\n },\n bold: {\n fontWeight: 'bold',\n },\n});\n\nexport default styles;\n","import { InfoRounded, NotInterested } from '@material-ui/icons';\n\nexport const DATE_FORMAT = 'MMM D h:mm A';\n\nexport const COLUMNS = [\n { Header: 'User', accessor: 'user', sortable: false },\n { Header: 'Points', accessor: 'points' },\n { Header: 'Buzzes', accessor: 'buzzes' },\n { Header: 'Throttles', accessor: 'throttles' },\n { Header: 'Penalty 1', accessor: 'penalty1' },\n { Header: 'Penalty 2', accessor: 'penalty2' },\n { Header: 'Penalty 3 ', accessor: 'penalty3' },\n { Header: 'Penalty 4', accessor: 'penalty4' },\n { Header: 'Penalty 5', accessor: 'penalty5' },\n { Header: 'warning', accessor: 'warnings' },\n { accessor: 'actions', sortable: false },\n];\n\nexport const BTN_WARN_USER = {\n key: 'warnChallengeUser',\n actions: 'warn',\n subject: 'ChallengeUser',\n tooltip: 'challenge.penalties.warn.send',\n icon: InfoRounded,\n};\n\nexport const BTN_REMOVE_USER = {\n key: 'removeChallengeUser',\n actions: 'remove',\n subject: 'ChallengeUser',\n tooltip: 'remove',\n icon: NotInterested,\n};\n\nexport const BUTTONS_CELL = [BTN_WARN_USER, BTN_REMOVE_USER];\n","const styles = (theme) => ({\n text: {\n padding: '0 2px',\n fontWeight: 'bold',\n },\n small: {\n fontSize: '12px !important',\n },\n});\n\nexport default styles;\n","import React, { Fragment } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { withStyles, Typography, Grid } from '@material-ui/core';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport { DATE_FORMAT } from '../constants';\nimport Tooltip from '../../../common/Tooltip';\nimport styles from './styles';\n\nconst ThrottlesCell = ({ classes, data }) => {\n const { t } = useTranslation();\n\n return (\n \n \n \n {data.throttled.count}\n \n \n
    \n \n \n \n {data.throttleActionHour.count}\n \n \n \n \n {data.throttleActionTimesWithinMinutes.count}\n \n \n \n \n {data.throttleActionDay.count}\n \n \n
    \n \n \n {data.throttled.contentCount}\n \n \n
    \n\n \n \n {moment(data.throttled.created).format(DATE_FORMAT)}\n \n \n
    \n );\n};\n\nThrottlesCell.propTypes = {\n classes: PropTypes.object.isRequired,\n data: PropTypes.shape({\n throttled: PropTypes.object,\n throttleActionHour: PropTypes.object,\n throttleActionTimesWithinMinutes: PropTypes.object,\n throttleActionDay: PropTypes.object,\n }).isRequired,\n};\n\nexport default withStyles(styles)(ThrottlesCell);\n","const styles = (theme) => ({\n small: {\n fontSize: '12px !important',\n },\n until: {\n backgroundColor: theme.palette.info.main,\n padding: '.2em .6em .3em',\n fontSize: '10.5px !important',\n color: theme.palette.info.contrastText,\n borderRadius: '.25em',\n },\n});\n\nexport default styles;\n","const styles = (theme) => ({\n bold: {\n fontWeight: 'bold',\n },\n small: {\n fontSize: '12px !important',\n },\n});\n\nexport default styles;\n","import React, { Fragment } from 'react';\nimport { Typography, withStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport { DATE_FORMAT } from '../constants';\nimport Tooltip from '../../../common/Tooltip';\nimport styles from './styles';\n\nconst PenaltyCell = ({\n classes,\n totalTooltip,\n lastTooltip,\n count,\n created,\n}) => {\n return (\n \n \n \n {count}\n \n \n
    \n {!!created && !!count && (\n \n \n \n {moment(created).format(DATE_FORMAT)}\n \n \n
    \n
    \n )}\n
    \n );\n};\n\nPenaltyCell.propTypes = {\n classes: PropTypes.object.isRequired,\n totalTooltip: PropTypes.string,\n lastTooltip: PropTypes.string,\n created: PropTypes.string,\n count: PropTypes.number,\n};\n\nPenaltyCell.defaultProps = {\n totalTooltip: '',\n lastTooltip: '',\n created: '',\n count: 0,\n};\n\nexport default withStyles(styles)(PenaltyCell);\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Typography, withStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport clsx from 'clsx';\nimport { DATE_FORMAT } from '../constants';\nimport Tooltip from '../../../common/Tooltip';\nimport styles from './styles';\nimport PenaltyCell from '../PenaltyCell';\n\nconst PenaltyLevelCell = ({ classes, data }) => {\n const { t } = useTranslation();\n const level = (data?.name.match(/\\d+$/) || [''])[0];\n\n return (\n <>\n \n {data?.active ? (\n level <= 2 ? (\n \n {t('challenge.penalties.activeUntil')}\n
    \n {moment(data?.expiration)}\n
    \n ) : (\n \n \n \n {moment(data?.expiration).format(DATE_FORMAT)}\n \n \n \n )\n ) : null}\n \n );\n};\n\nPenaltyLevelCell.propTypes = {\n classes: PropTypes.object.isRequired,\n data: PropTypes.shape({\n name: PropTypes.string,\n active: PropTypes.bool,\n count: PropTypes.number,\n created: PropTypes.string,\n expiration: PropTypes.string,\n }).isRequired,\n};\n\nexport default withStyles(styles)(PenaltyLevelCell);\n","import React, {\n Fragment,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport { Box, Grid, Typography, withStyles } from '@material-ui/core';\nimport { connect } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport HeaderPage from '../../common/HeaderPage';\nimport Table from '../../common/Table';\nimport styles from './styles';\nimport CommonPropTypes from '../../common/propTypes';\nimport {\n clearChallengePenaltiesActionsResponse,\n penaltiesRequested,\n removeUserRequested,\n warnUserRequested,\n} from '../../challenges/actions';\nimport { getActiveCommunityId } from '../../user/selectors';\nimport {\n getPenalties,\n getPenaltiesActionsErrors,\n getPenaltiesActionsResponse,\n isPenaltiesActionLoading,\n isPenaltiesLoading,\n} from '../../challenges/selectors';\nimport {\n BTN_REMOVE_USER,\n BTN_WARN_USER,\n BUTTONS_CELL,\n COLUMNS,\n} from './constants';\nimport Tooltip from '../../common/Tooltip';\nimport TableToolbar from '../../common/Table/TableToolbar';\nimport RequestLoader from '../../common/RequestLoader';\nimport ThrottlesCell from './ThrottlesCell';\nimport PenaltyLevelCell from './PenaltyLevelCell';\nimport SnackBarAPIResponse from '../../common/SnackbarAlert/SnackBarAPIResponse';\nimport ConfirmModal from '../../common/ConfirmModal';\nimport PenaltyCell from './PenaltyCell';\nimport { useRouteMatch } from 'react-router-dom';\n\nconst ChallengePenaltiesScreen = ({\n classes,\n errors,\n communityId,\n penalties,\n isPenaltiesLoading,\n isActionLoading,\n penaltiesRequest,\n warnUserRequest,\n removeUserRequest,\n actionResponse,\n actionErrors,\n clearActionResponse,\n}) => {\n const { t } = useTranslation();\n const {\n params: { challengeId },\n } = useRouteMatch();\n\n const [warningModalOpen, setWarningModalOpen] = useState(false);\n const [removeModalOpen, setRemoveModalOpen] = useState(false);\n const [selectedUser, setSelectedUser] = useState(null);\n\n useEffect(() => {\n penaltiesRequest({ communityId, challengeId });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (actionResponse) {\n penaltiesRequest({ communityId, challengeId });\n }\n }, [actionResponse, penaltiesRequest, communityId, challengeId]);\n\n const handleButtonsCell = (id, key) => {\n const user = penalties.find((item) => item.id === id);\n if (user) {\n setSelectedUser(user);\n switch (key) {\n case BTN_WARN_USER.key:\n setWarningModalOpen(true);\n break;\n case BTN_REMOVE_USER.key:\n setRemoveModalOpen(true);\n break;\n default:\n break;\n }\n }\n };\n\n const onClose = () => {\n setWarningModalOpen(false);\n setRemoveModalOpen(false);\n };\n\n const handleConfirm = (func) => {\n func({\n challengeId,\n userId: selectedUser?.userId,\n communityId,\n });\n onClose();\n };\n\n const makeTableData = useCallback(\n (column, data = []) =>\n data.map((item) =>\n [...column, { accessor: 'id' }].reduce((result, cell) => {\n if (cell.accessor === 'user') {\n return {\n ...result,\n [cell.accessor]: {\n username: item.username,\n teamName: item.teamName,\n },\n };\n }\n\n if (cell.accessor === 'throttles') {\n return {\n ...result,\n [cell.accessor]: {\n throttled: item.throttled,\n throttleActionHour: item.throttleActionHour,\n throttleActionTimesWithinMinutes:\n item.throttleActionTimesWithinMinutes,\n throttleActionDay: item.throttleActionDay,\n },\n };\n }\n return { ...result, [cell.accessor]: item[cell.accessor] };\n }, {}),\n ),\n [],\n );\n\n const makeTableColumns = useCallback(() => {\n return COLUMNS.reduce((result, column) => {\n if (column.accessor === 'user') {\n return [\n ...result,\n {\n ...column,\n Cell: ({ cell }) => {\n const {\n username,\n teamName,\n } = cell.row.original.user;\n return (\n \n \n {username}\n \n
    \n \n \n {teamName}\n \n \n
    \n );\n },\n },\n ];\n }\n\n if (column.accessor === 'throttles') {\n return [\n ...result,\n {\n ...column,\n Cell: ({ cell }) => (\n \n ),\n },\n ];\n }\n\n if (column.accessor.includes('penalty')) {\n return [\n ...result,\n {\n ...column,\n Cell: ({ cell }) => (\n \n ),\n },\n ];\n } else if (column.accessor.includes('warnings')) {\n return [\n ...result,\n {\n ...column,\n Cell: ({ cell }) => {\n const data = cell.row.original[column.accessor];\n return (\n \n );\n },\n },\n ];\n }\n\n return [...result, column];\n }, []);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [t]);\n\n const tableColumns = useMemo(() => {\n return makeTableColumns();\n }, [makeTableColumns]);\n\n const tableData = useMemo(() => {\n return makeTableData(tableColumns, penalties);\n }, [penalties, tableColumns, makeTableData]);\n\n return (\n \n {errors ? (\n errors.map((err, i) => {err})\n ) : (\n \n }\n />\n \n \n \n \n \n \n )}\n handleConfirm(warnUserRequest)}\n >\n \n {t('challenge.penalties.warn.modalText', {\n user: selectedUser?.username,\n })}\n \n \n handleConfirm(removeUserRequest)}\n >\n \n {t('challenge.penalties.remove.modalText', {\n user: selectedUser?.username,\n })}\n \n \n \n \n );\n};\n\nChallengePenaltiesScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n errors: CommonPropTypes.errors,\n communityId: PropTypes.string.isRequired,\n penaltiesRequest: PropTypes.func.isRequired,\n isPenaltiesLoading: PropTypes.bool.isRequired,\n isActionLoading: PropTypes.bool.isRequired,\n penalties: PropTypes.arrayOf(PropTypes.object).isRequired,\n actionResponse: PropTypes.string,\n actionErrors: CommonPropTypes.errors,\n warnUserRequest: PropTypes.func.isRequired,\n removeUserRequest: PropTypes.func.isRequired,\n clearActionResponse: PropTypes.func.isRequired,\n};\n\nChallengePenaltiesScreen.defaultProps = {\n errors: null,\n actionResponse: '',\n actionErrors: null,\n};\n\nconst StyledLeftColumn = withStyles(styles)(ChallengePenaltiesScreen);\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n penalties: getPenalties(state),\n isPenaltiesLoading: isPenaltiesLoading(state),\n actionResponse: getPenaltiesActionsResponse(state),\n actionErrors: getPenaltiesActionsErrors(state),\n isActionLoading: isPenaltiesActionLoading(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n penaltiesRequest: (args) => dispatch(penaltiesRequested(args)),\n warnUserRequest: (args) => dispatch(warnUserRequested(args)),\n removeUserRequest: (args) => dispatch(removeUserRequested(args)),\n clearActionResponse: () =>\n dispatch(clearChallengePenaltiesActionsResponse()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(StyledLeftColumn);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n position: 'relative',\n maxWidth: '1280px',\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n header: {\n marginTop: '60px',\n marginBottom: '10px',\n },\n title: {\n fontSize: '36px',\n fontWeight: 600,\n },\n helpIcon: {\n color: theme.custom.tooltipIconColor,\n marginLeft: '5px',\n\n '&:hover': {\n cursor: 'pointer',\n color: theme.custom.tooltipIconHoverColor,\n },\n },\n duration: {\n fontSize: '23px',\n fontWeight: 400,\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n divider: {\n width: '100%',\n height: '1px',\n border: 'none',\n backgroundColor: theme.custom.bgDarkHover,\n marginTop: '10px',\n marginBottom: '30px',\n },\n loaderWrapper: {\n position: 'relative',\n },\n bottom: {\n height: 0,\n },\n}));\n\nexport default useStyles;\n","import { createSelector } from 'reselect';\n\nimport { getChallenge as getRawChallenge } from '../../challenges/selectors';\n\nexport const getChallenge = createSelector(getRawChallenge, (rawChallenge) =>\n rawChallenge != null\n ? {\n name: rawChallenge.name,\n startDate: rawChallenge.startDate,\n endDate: rawChallenge.endDate,\n }\n : null,\n);\n","import { createSelector } from 'reselect';\nimport { coerceIntoErrors } from '../../common/errors';\nimport { getAppImages } from '../../utils';\n\nexport const getAnalyticsPhotoState = (state) => state.analyticsPhoto;\n\nexport const getPhotos = createSelector(\n getAnalyticsPhotoState,\n (analyticsPhoto) => analyticsPhoto.photos,\n);\n\nexport const arePhotosLoading = createSelector(\n getAnalyticsPhotoState,\n (analyticsPhoto) => analyticsPhoto.isLoading,\n);\n\nexport const getErrors = createSelector(\n getAnalyticsPhotoState,\n (analyticsPhoto) => coerceIntoErrors(analyticsPhoto.errors),\n);\n\nexport const getTopPhotos = createSelector(getPhotos, (photos) => {\n if (!photos) {\n return [];\n }\n return photos.map((photo) => {\n const userName = photo.user.name;\n const defaultActionText = photo.actions[0].actionDefaultText;\n const imageSizes = photo.photoSizes || [];\n const likes = photo.liked || [];\n const comments = (photo.comments || []).map((comment) => ({\n userName: comment.user.name,\n message: comment.message,\n }));\n const actionUrl = photo.actions[0].content.imageSizes[0]?.url;\n const userUrl =\n (photo.user.imageSizes &&\n photo.user.imageSizes.length > 0 &&\n photo.user.imageSizes[0].url) ||\n getAppImages().defaultProfileIcon;\n const photoUrl =\n (photo.photoSizes &&\n photo.photoSizes.length > 0 &&\n photo.photoSizes[photo.photoSizes.length - 1].url) ||\n null;\n return {\n userName,\n defaultActionText,\n imageSizes,\n likes,\n comments,\n actionUrl,\n userUrl,\n photoUrl,\n };\n });\n});\n","const styles = (theme) => ({\n container: {\n padding: '0 6px 14px',\n [theme.breakpoints.down('sm')]: {\n padding: '0 4px 8px',\n },\n },\n wrapper: {\n position: 'relative',\n width: '100%',\n paddingBottom: '100%',\n borderRadius: '0px',\n overflow: 'hidden',\n },\n photo: {\n position: 'absolute',\n height: '100%',\n },\n overlay: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n opacity: 0,\n transitionDuration: '150ms',\n background:\n 'linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(0,0,0,0.25) 70%, rgba(0,0,0,0.80) 100%)',\n\n '&:hover': {\n backgroundColor: theme.custom.bgBlackTransparent,\n cursor: 'pointer',\n opacity: 1,\n\n '& $icon': {\n [theme.breakpoints.up('xs')]: {\n fontSize: 18,\n },\n [theme.breakpoints.up('sm')]: {\n fontSize: 20,\n },\n [theme.breakpoints.up('md')]: {\n fontSize: 28,\n },\n },\n '& $chatIcon': {\n [theme.breakpoints.up('xs')]: {\n height: 18,\n width: 18,\n },\n [theme.breakpoints.up('sm')]: {\n height: 20,\n width: 20,\n },\n [theme.breakpoints.up('md')]: {\n height: 28,\n width: 28,\n },\n },\n '& $overlayBottomSpacing': {\n [theme.breakpoints.up('xs')]: {\n bottom: 2,\n fontSize: 16,\n },\n [theme.breakpoints.up('sm')]: {\n bottom: 2,\n fontSize: 20,\n },\n [theme.breakpoints.up('md')]: {\n bottom: 2,\n fontSize: 28,\n },\n },\n '& $overlayTop': {\n opacity: 1,\n },\n },\n fontSize: 'large',\n },\n overlayTop: {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: '33%',\n left: 0,\n width: '100%',\n height: '66%',\n padding: '8px',\n },\n actionImage: {\n display: 'block',\n height: 'auto',\n margin: '0 auto',\n [theme.breakpoints.up('xs')]: {\n marginTop: '15%',\n maxWidth: '80%',\n maxHeight: '80%',\n },\n [theme.breakpoints.up('sm')]: {\n marginTop: '13%',\n maxWidth: '90%',\n maxHeight: '90%',\n },\n [theme.breakpoints.up('md')]: {\n marginTop: '10%',\n maxWidth: '80%',\n maxHeight: '80%',\n },\n [theme.breakpoints.up('lg')]: {\n marginTop: '13%',\n maxWidth: '80%',\n maxHeight: '80%',\n },\n },\n overlayBottom: {\n position: 'absolute',\n top: '66%',\n right: 0,\n left: 0,\n width: '100%',\n height: '33%',\n color: theme.palette.common.white,\n fill: theme.palette.common.white,\n fontWeight: 'bold',\n transitionDuration: '100ms',\n },\n overlayBottomLeft: {\n position: 'absolute',\n right: '45%',\n bottom: 0,\n left: 0,\n display: 'flex',\n justifyContent: 'center',\n textAlign: 'center',\n alignItems: 'center',\n },\n overlayBottomRight: {\n position: 'absolute',\n left: '45%',\n right: 0,\n bottom: 0,\n display: 'flex',\n justifyContent: 'center',\n textAlign: 'center',\n alignItems: 'center',\n },\n overlayBottomSpacing: {\n [theme.breakpoints.up('xs')]: {\n bottom: 0,\n fontSize: 12,\n },\n [theme.breakpoints.up('sm')]: {\n bottom: 0,\n fontSize: 18,\n },\n [theme.breakpoints.up('md')]: {\n bottom: 0,\n fontSize: 26,\n },\n },\n icon: {\n marginRight: '3px',\n [theme.breakpoints.up('xs')]: {\n fontSize: 14,\n },\n [theme.breakpoints.up('sm')]: {\n fontSize: 18,\n },\n [theme.breakpoints.up('md')]: {\n fontSize: 26,\n },\n },\n chatIcon: {\n marginRight: '5.5px',\n [theme.breakpoints.up('xs')]: {\n height: 14,\n width: 14,\n },\n [theme.breakpoints.up('sm')]: {\n height: 18,\n width: 18,\n },\n [theme.breakpoints.up('md')]: {\n height: 26,\n width: 26,\n },\n },\n overlayHomeScreen: {\n opacity: 1,\n },\n overlayTopHomeScreen: {\n opacity: 0,\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, withStyles } from '@material-ui/core';\nimport { Favorite } from '@material-ui/icons';\nimport styles from './styles';\nimport { useTranslation } from 'react-i18next';\nimport clsx from 'clsx';\nimport { ReactComponent as ChatBubbleIcon } from '../../assets/images/svg/chat-bubble.svg';\nimport { CARD_SCREENS, HOME_SCREEN } from './constants';\n\nconst PhotoCard = ({ classes, photo, index, onClick, screen }) => {\n const { t } = useTranslation();\n\n return (\n onClick(e, index)}\n xs={3}\n sm={3}\n md={3}\n lg={2}\n >\n
    \n \n \n \n \n
    \n \n \n \n {photo.likes.length || 0}\n \n \n \n {photo.comments.length || 0}\n \n \n \n \n \n );\n};\n\nPhotoCard.propTypes = {\n classes: PropTypes.object.isRequired,\n photo: PropTypes.shape({\n photoUrl: PropTypes.string,\n actionUrl: PropTypes.string,\n likes: PropTypes.array,\n comments: PropTypes.array,\n }).isRequired,\n index: PropTypes.number.isRequired,\n onClick: PropTypes.func,\n screen: PropTypes.oneOf(CARD_SCREENS).isRequired,\n};\n\nPhotoCard.defaultProps = {\n onClick: null,\n};\n\nexport default withStyles(styles)(PhotoCard);\n","export const HOME_SCREEN = 'HOME_SCREEN';\nexport const ANALYTICS_SCREEN = 'ANALYTICS_SCREEN';\nexport const ANALYTICS_PHOTOS_SCREEN = 'ANALYTICS_PHOTOS_SCREEN';\nexport const CHALLENGE_TOP_PHOTOS = 'CHALLENGE_TOP_PHOTOS';\nexport const CHALLENGE_ANALYTICS_TOP_PHOTOS = 'CHALLENGE_ANALYTICS_TOP_PHOTOS';\nexport const CARD_SCREENS = [\n HOME_SCREEN,\n ANALYTICS_SCREEN,\n ANALYTICS_PHOTOS_SCREEN,\n CHALLENGE_TOP_PHOTOS,\n CHALLENGE_ANALYTICS_TOP_PHOTOS,\n];\n","const styles = (theme) => ({\n modal: {\n alignItems: 'flex-start',\n },\n paper: {\n maxWidth: '100%',\n maxHeight: 'calc(100% - 20px)',\n width: '100%',\n margin: '10px',\n borderRadius: 0,\n backgroundColor: theme.custom.bgLightAccentColor,\n\n [theme.breakpoints.up('sm')]: {\n maxWidth: '600px',\n width: '600px',\n margin: '30px auto',\n },\n\n [theme.breakpoints.up('md')]: {\n maxWidth: '900px',\n width: '900px',\n },\n\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n },\n leftContainer: {\n position: 'relative',\n },\n overlay: {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n\n '&:hover': {\n backgroundColor: theme.custom.bgBlackTransparent,\n\n '& $button': {\n opacity: 1,\n },\n },\n },\n photo: {\n width: '100%',\n height: '100%',\n },\n button: {\n position: 'absolute',\n margin: '8px',\n opacity: 0.25,\n },\n popper: {\n zIndex: theme.zIndex.modal + 1,\n margin: '2px 0',\n },\n imageList: {\n minWidth: '160px',\n padding: '5px 0',\n margin: 0,\n listStyle: 'none',\n },\n imageListItem: {\n display: 'block',\n width: '100%',\n padding: '3px 20px',\n textDecoration: 'none',\n color: theme.custom.textDarkColor,\n\n '&:hover': {\n backgroundColor: theme.custom.bgLightColor,\n },\n },\n header: {\n backgroundColor: theme.custom.bgLightColor,\n },\n headerTitle: {\n overflow: 'hidden',\n },\n userImageWrapper: {\n width: '17%',\n margin: '8px 8px 8px 16px',\n },\n actionImageWrapper: {\n width: '24%',\n margin: '8px 8px 8px 16px',\n },\n rightContainer: {\n color: theme.custom.bgDarkColor,\n overflowY: 'scroll',\n paddingBottom: '46px',\n\n [theme.breakpoints.up('sm')]: {\n maxHeight: '300px',\n },\n\n [theme.breakpoints.up('md')]: {\n maxHeight: '450px',\n },\n\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n },\n image: {\n width: '100%',\n },\n userName: {\n width: '100%',\n margin: '8px 8px 4px 0',\n fontSize: '22px',\n fontWeight: 800,\n color: theme.palette.common.black,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n defaultActionText: {\n width: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n leftColumn: {\n width: '12.5%',\n margin: '8px 8px 8px 16px',\n },\n likes: {\n width: '100%',\n padding: '18px 0 16px',\n fontSize: '18px',\n lineHeight: '24px',\n },\n comment: {\n borderBottom: `1px solid ${theme.custom.bgSeparator}`,\n },\n commentOwner: {\n paddingTop: '16px',\n fontSize: '18px',\n },\n commentIcon: {\n marginTop: '20px',\n },\n commentMessage: {\n marginBottom: '15px',\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n emptyComments: {\n width: '100%',\n padding: '20px 0',\n borderBottom: `1px solid ${theme.custom.bgSeparator}`,\n fontSize: '14px',\n textAlign: 'center',\n },\n footer: {\n backgroundColor: theme.custom.bgLightColor,\n position: 'absolute',\n bottom: '0px',\n right: 0,\n maxWidth: '50%',\n },\n closeButton: {\n margin: '6px 12px',\n backgroundColor: theme.palette.accent.main,\n\n '&:hover': {\n backgroundColor: theme.palette.accent.dark,\n },\n },\n});\n\nexport default styles;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport pluralize from 'pluralize';\nimport { useTranslation } from 'react-i18next';\nimport clsx from 'clsx';\nimport { Grid, Popper, Paper, withStyles, Typography } from '@material-ui/core';\nimport { Favorite, FormatQuoteRounded } from '@material-ui/icons';\nimport Modal from '../Modal';\nimport Button from '../Button';\nimport styles from './styles';\nimport { getAppImages } from '../../utils';\n\nconst SocialPhoto = ({ classes, isOpen, onClose, photo }) => {\n const { t } = useTranslation();\n const [anchorEl, setAnchorEl] = useState(null);\n const [openPopper, setOpenPopper] = useState(false);\n\n const handlePopperOpen = (e) => {\n e.stopPropagation();\n setAnchorEl(e.currentTarget);\n setOpenPopper((open) => !open);\n };\n\n const hidePopper = () => {\n setOpenPopper(false);\n };\n\n return (\n \n \n \n
    \n \n {t('activity.downloadImage')}\n \n \n \n
      \n {photo.imageSizes.map((image) => (\n
    • \n \n {`${image.width} x ${image.height}`}\n \n
    • \n ))}\n
    \n
    \n \n
    \n \n
    \n \n \n \n \n \n \n \n \n {photo.userName}\n \n \n {photo.defaultActionText}\n \n \n \n \n \n \n \n \n \n \n \n \n {pluralize(\n t('activity.like'),\n photo.likes.length || 0,\n true,\n )}\n \n \n \n \n {photo.comments.map((comment, index) => (\n \n \n \n \n \n \n {comment.userName}\n \n \n {comment.message}\n \n \n \n ))}\n {photo.comments.length === 0 && (\n \n \n {t('activity.noComment')}\n \n \n )}\n \n \n \n \n {t('close')}\n \n \n \n \n \n );\n};\n\nSocialPhoto.propTypes = {\n classes: PropTypes.func.isRequired,\n isOpen: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n photo: PropTypes.shape({\n photoUrl: PropTypes.string.isRequired,\n userUrl: PropTypes.string,\n userName: PropTypes.string.isRequired,\n defaultActionText: PropTypes.string,\n actionUrl: PropTypes.string.isRequired,\n imageSizes: PropTypes.array,\n likes: PropTypes.array,\n comments: PropTypes.arrayOf(\n PropTypes.shape({\n userName: PropTypes.string.isRequired,\n message: PropTypes.string.isRequired,\n }),\n ),\n }).isRequired,\n};\n\nexport default withStyles(styles)(SocialPhoto);\n","const styles = (theme) => ({\n header: {\n margin: '20px 0 10px',\n },\n title: {\n display: 'flex',\n alignItems: 'center',\n fontSize: '24px',\n lineHeight: 1.1,\n fontWeight: 600,\n color: theme.custom.textDarkSecondaryColor,\n },\n helpIcon: {\n marginLeft: '5px',\n color: theme.custom.iconColor,\n fontSize: '18px',\n '&:hover': {\n color: theme.custom.iconColorHover,\n cursor: 'pointer',\n },\n },\n button: {\n paddingRight: 0,\n },\n emptyText: {\n margin: '20px 0',\n fontSize: '14px',\n lineHeight: 1.1,\n fontWeight: '600',\n textAlign: 'center',\n opacity: 0.5,\n },\n});\n\nexport default styles;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport { KeyboardArrowRight } from '@material-ui/icons';\nimport Button from '../Button';\nimport PhotoCard from '../PhotoCard';\nimport SocialPhoto from '../SocialPhoto';\nimport styles from './styles';\nimport { CARD_SCREENS } from '../PhotoCard/constants';\nimport InfoTooltip from '../InfoTooltip';\n\nconst TopPhotos = ({\n classes,\n photos,\n challengeId,\n onViewAllClick,\n limit,\n noHeader,\n screen,\n intercomTargetPrefix,\n}) => {\n const history = useHistory();\n const { t } = useTranslation();\n const [photo, setPhoto] = useState(photos && photos[0]);\n const [open, setOpen] = useState(false);\n\n const goToViewAll = () => {\n history.push(`/challenges/${challengeId}/analytics/photos/`);\n };\n\n const closeHandler = () => {\n setOpen(false);\n };\n\n const getFilteredPhotos = () => {\n const rawPhotos = [...photos];\n\n if (photos.length === 0) return [];\n\n if (rawPhotos.length > limit) {\n rawPhotos.length = limit;\n }\n\n return rawPhotos;\n };\n\n const onPhotoCardClick = (e, index) => {\n setPhoto(photos[index]);\n setOpen(true);\n };\n\n return (\n \n {noHeader || (\n \n \n {t('topPhotos')}\n \n \n \n {t('viewAll')}\n \n \n \n )}\n \n {photos.length === 0 && (\n \n {t('topPhotosNone')}\n \n )}\n {getFilteredPhotos().map((photo, index) => (\n \n ))}\n \n {photo && (\n \n )}\n \n );\n};\n\nTopPhotos.propTypes = {\n classes: PropTypes.object.isRequired,\n photos: PropTypes.arrayOf(\n PropTypes.shape({\n url: PropTypes.string,\n actionUrl: PropTypes.string,\n likes: PropTypes.array,\n comments: PropTypes.array,\n }),\n ),\n challengeId: PropTypes.string,\n onViewAllClick: PropTypes.func,\n limit: PropTypes.number,\n noHeader: PropTypes.bool,\n screen: PropTypes.oneOf(CARD_SCREENS).isRequired,\n intercomTargetPrefix: PropTypes.string,\n};\n\nTopPhotos.defaultProps = {\n photos: [],\n challengeId: null,\n onViewAllClick: null,\n limit: 12,\n noHeader: false,\n intercomTargetPrefix: '',\n};\n\nexport default withStyles(styles)(TopPhotos);\n","import React, { useEffect, useMemo, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { Grid, Typography } from '@material-ui/core';\nimport moment from 'moment';\n\nimport useStyles from './styles';\nimport { getChallenge } from './selectors';\n\nimport RequestLoader from '../../common/RequestLoader';\nimport ErrorList from '../../common/errors/ErrorList';\nimport CommonPropTypes from '../../common/propTypes';\nimport { getActiveCommunityId } from '../../user/selectors';\nimport { challengePhotosRequested } from '../../analytics/photos/actions';\nimport { viewChallengeRequested } from '../../challenges/actions';\nimport { getTimezoneAbbrev } from '../../utils/dates';\nimport {\n getChallengeErrors,\n isChallengeLoading,\n} from '../../challenges/selectors';\nimport {\n arePhotosLoading,\n getErrors as getPhotosErrors,\n getTopPhotos,\n} from '../../analytics/photos/selectors';\nimport TopPhotos from '../../common/TopPhotos';\nimport { CHALLENGE_TOP_PHOTOS } from '../../common/PhotoCard/constants';\nimport { useRouteMatch } from 'react-router-dom';\nimport InfoTooltip from '../../common/InfoTooltip';\n\nconst DATE_FORMAT = 'MM/DD/YYYY';\nconst formatDate = (date) => moment(date).format(DATE_FORMAT);\nconst safelyFormatDate = (nullableDate) =>\n nullableDate == null ? null : formatDate(nullableDate);\n\nconst PHOTOS_BATCH_SIZE = 30;\n\nconst ChallengeTopPhotosScreen = ({\n communityId,\n requestChallenge,\n isChallengeLoading,\n challengeErrors,\n challenge,\n requestPhotos,\n arePhotosLoading,\n photosErrors,\n photos,\n}) => {\n const classes = useStyles();\n\n const { t, i18n } = useTranslation();\n const {\n params: { challengeId },\n } = useRouteMatch();\n\n useEffect(() => {\n requestChallenge({\n communityId,\n challengeId,\n });\n }, [requestChallenge, communityId, challengeId]);\n\n const challengePresentable = useMemo(\n () =>\n !isChallengeLoading && challengeErrors == null && challenge != null,\n [isChallengeLoading, challengeErrors, challenge],\n );\n\n const formattedStartDate = useMemo(\n () => safelyFormatDate(challenge?.startDate),\n [challenge],\n );\n const formattedEndDate = useMemo(\n () => safelyFormatDate(challenge?.endDate),\n [challenge],\n );\n const tzCode = getTimezoneAbbrev(i18n.language);\n\n const bottomRef = useRef(null);\n const skippedRef = useRef(null);\n useEffect(() => {\n const intersectionObserver = new IntersectionObserver(\n (entries) => {\n if (entries.some((entry) => entry.intersectionRatio === 1)) {\n const skip = photos == null ? 0 : photos.length;\n if (\n skippedRef.current == null ||\n skippedRef.current !== skip\n ) {\n requestPhotos({\n challengeId,\n communityId,\n skip,\n limit: PHOTOS_BATCH_SIZE,\n });\n skippedRef.current = skip;\n }\n }\n },\n { threshold: 1 },\n );\n const targetElement = bottomRef.current;\n intersectionObserver.observe(targetElement);\n return () => intersectionObserver.unobserve(targetElement);\n }, [\n photos,\n skippedRef,\n requestPhotos,\n challengeId,\n communityId,\n bottomRef,\n ]);\n\n return (\n \n \n \n {challengePresentable ? (\n <>\n \n \n \n {challenge.name}\n \n \n \n \n \n {`${formattedStartDate} - ${formattedEndDate} (${tzCode})`}\n \n \n \n
    \n \n {photos != null ? (\n \n ) : null}\n \n \n \n \n \n \n ) : null}\n
    \n \n );\n};\n\nChallengeTopPhotosScreen.propTypes = {\n communityId: PropTypes.string.isRequired,\n requestChallenge: PropTypes.func.isRequired,\n isChallengeLoading: PropTypes.bool.isRequired,\n challengeErrors: CommonPropTypes.errors,\n challenge: PropTypes.shape({\n name: PropTypes.string.isRequired,\n startDate: PropTypes.string.isRequired,\n endDate: PropTypes.string.isRequired,\n }),\n requestPhotos: PropTypes.func.isRequired,\n arePhotosLoading: PropTypes.bool.isRequired,\n photosErrors: CommonPropTypes.errors,\n photos: PropTypes.object,\n};\n\nChallengeTopPhotosScreen.defaultProps = {\n challengeErrors: null,\n challenge: null,\n photosErrors: null,\n photos: null,\n};\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n isChallengeLoading: isChallengeLoading(state),\n challengeErrors: getChallengeErrors(state),\n challenge: getChallenge(state),\n arePhotosLoading: arePhotosLoading(state),\n photosErrors: getPhotosErrors(state),\n photos: getTopPhotos(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n requestChallenge: (request) => dispatch(viewChallengeRequested(request)),\n requestPhotos: (request) => dispatch(challengePhotosRequested(request)),\n});\n\nconst ConnectedChallengeTopPhotosScreen = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(ChallengeTopPhotosScreen);\nexport default ConnectedChallengeTopPhotosScreen;\n","const styles = (theme) => ({\n container: {\n paddingBottom: '32px',\n padding: '0',\n },\n tabbedItem: {\n [theme.breakpoints.up('sm')]: {\n width: theme.custom.mainContentWidth,\n },\n marginTop: 2,\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n },\n tabBox: {\n paddingLeft: 0,\n paddingRight: 0,\n },\n noDataLabel: {\n marginLeft: '25%',\n width: '50%',\n color: theme.custom.textDarkColor,\n textAlign: 'center',\n opacity: '.5',\n },\n errorStyles: {\n flex: 1,\n alignItems: 'center',\n },\n scoringExplanationText: {\n color: theme.custom.textDarkColor,\n paddingBottom: 5,\n fontSize: 16,\n },\n icon: {\n color: theme.custom.tooltipIconColor,\n marginLeft: '3px',\n\n '&:hover': {\n cursor: 'pointer',\n },\n },\n});\n\nexport default styles;\n","const styles = (theme) => ({\n container: {\n padding: '0 10px',\n },\n participationIcon: {\n marginRight: '5px',\n },\n buttonsContainer: {\n [theme.breakpoints.down('xs')]: {\n flexDirection: 'column',\n },\n },\n joinButton: {\n fontSize: 'min(18px, 5vw)',\n padding: '8px 8px',\n },\n shareButton: {\n fontSize: 'min(18px, 5vw)',\n marginLeft: 20,\n [theme.breakpoints.down('xs')]: {\n marginLeft: 0,\n marginTop: '10px',\n padding: '8px 8px',\n },\n },\n});\n\nexport default styles;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n image: {\n border: '1px solid #fff',\n borderRadius: '6px',\n },\n description: {\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n button: {\n padding: '20px 10px',\n },\n container: {\n marginBottom: '10px',\n },\n}));\n\nexport default useStyles;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, Typography } from '@material-ui/core';\nimport { Add } from '@material-ui/icons';\n\nimport useStyles from './styles';\n\nimport ConfirmModal from '../../../common/ConfirmModal';\nimport Button from '../../../common/Button';\nimport {\n BUTTON_ACCENT_COLOR,\n BUTTON_DEFAULT_COLOR,\n} from '../../../common/Button/constants';\nimport { noop } from '../../../utils';\n\nconst JoinTeam = ({\n isOpen,\n setOpen,\n teams,\n onClose,\n onCancel,\n onJoinTeam,\n}) => {\n const { t } = useTranslation();\n const classes = useStyles();\n\n const handleClose = useCallback(() => {\n onClose();\n setOpen(false);\n }, [onClose, setOpen]);\n\n const handleCancel = useCallback(() => {\n onCancel();\n setOpen(false);\n }, [onCancel, setOpen]);\n\n return (\n \n \n \n {t('challenge.teamJoin')}\n \n \n {teams?.map(({ id, image, name }, index) => (\n \n \n \n \n \n {name}\n \n \n onJoinTeam(id)}\n >\n {t('challenge.joinChallengeCTA')}\n \n \n \n ))}\n \n \n \n {t('challenge.teamSelect')}\n \n \n \n \n );\n};\n\nJoinTeam.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n setOpen: PropTypes.func.isRequired,\n teams: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n image: PropTypes.string,\n name: PropTypes.string,\n }),\n ),\n onClose: PropTypes.func,\n onCancel: PropTypes.func,\n onJoinTeam: PropTypes.func.isRequired,\n};\n\nJoinTeam.defaultProps = {\n teams: null,\n onClose: noop,\n onCancel: noop,\n};\n\nexport default JoinTeam;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n header: {\n color: theme.custom.textDarkSecondaryMutedColor,\n fontSize: '18px',\n paddingTop: '10px',\n },\n divider: {\n width: '100%',\n height: '1px',\n border: 'none',\n background: theme.custom.bgAccentColor,\n },\n image: {\n border: '1px solid #fff',\n borderRadius: '6px',\n },\n}));\n\nexport default useStyles;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, Typography } from '@material-ui/core';\nimport { Add, Check } from '@material-ui/icons';\n\nimport useStyles from './styles';\n\nimport ConfirmModal from '../../../common/ConfirmModal';\nimport Button from '../../../common/Button';\nimport { noop } from '../../../utils';\nimport {\n BUTTON_ACCENT_COLOR,\n BUTTON_DANGER_COLOR,\n BUTTON_DEFAULT_COLOR,\n} from '../../../common/Button/constants';\n\nconst SelectTeam = ({\n isOpen,\n setOpen,\n teams,\n onClose,\n onCancel,\n onSwitchTeam,\n onLeaveChallenge,\n}) => {\n const { t } = useTranslation();\n const classes = useStyles();\n\n const handleClose = useCallback(() => {\n onClose();\n setOpen(false);\n }, [onClose, setOpen]);\n\n const handleCancel = useCallback(() => {\n onCancel();\n setOpen(false);\n }, [onCancel, setOpen]);\n\n return (\n \n \n \n \n {t('challenge.alreadyMember')}\n \n \n \n {teams?.map(({ id, image, name, joined }, index) => (\n <>\n \n
    \n
    \n \n \n \n \n \n {name}\n
    \n \n {joined ? (\n \n {t('Member')}\n \n ) : (\n onSwitchTeam(id)}\n >\n {t('Switch')}\n \n )}\n \n
    \n \n ))}\n \n \n \n {t('challenge.leave')}\n \n \n \n \n );\n};\n\nSelectTeam.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n setOpen: PropTypes.func.isRequired,\n teams: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n image: PropTypes.string,\n name: PropTypes.string,\n joined: PropTypes.bool.isRequired,\n }),\n ),\n onClose: PropTypes.func,\n onCancel: PropTypes.func,\n onSwitchTeam: PropTypes.func.isRequired,\n onLeaveChallenge: PropTypes.func.isRequired,\n};\n\nSelectTeam.defaultProps = {\n teams: null,\n onClose: noop,\n onCancel: noop,\n};\n\nexport default SelectTeam;\n","import theme from '../../theme';\nimport { copyToClip } from '../../utils/clipboard';\n\nexport const copyEmail = (link, description) => {\n const emailContent = `\n
    \n

    You’re Invited to Join a Challenge on

    \n
    \n \n
    \n
    \n

    \n Greetings!\n

    \n

    \n ${description}\n

    \n \n \n

    \n \n ${link}\n

    \n
    \n
    `;\n copyToClip(emailContent);\n};\n","import copy from 'copy-to-clipboard';\n/**\n * Copy text content to clipboard\n * todo: refactor all places using copy-to-clipboard to use this function\n */\nexport const copyToClip = (text) => {\n copy(text);\n};\n","const styles = (theme) => ({\n copyToEmailWrapper: {\n flex: 1,\n },\n headerText: {\n textAlign: 'center',\n flex: 1,\n fontWeight: 'bold',\n },\n modalBodyText: {\n marginTop: 20,\n textAlign: 'center',\n },\n modalPreviewHeader: {\n marginTop: 40,\n textAlign: 'center',\n width: '100%',\n color: theme.palette.primary.main,\n fontWeight: 'bold',\n },\n messageTextContainer: {\n alignItems: 'center',\n height: 300,\n textAlign: 'center',\n backgroundColor: theme.custom.grey93,\n borderRadius: 6,\n marginTop: 20,\n marginBottom: 20,\n padding: '25px',\n },\n pdfContainer: {\n maxHeight: 200,\n maxWidth: 155,\n },\n linkText: {\n color: theme.palette.primary.main,\n textDecoration: 'underline',\n },\n linkPreText: {\n fontWeight: 'bold',\n },\n bottomButton: {\n marginLeft: 20,\n marginRight: 20,\n },\n});\n\nexport default styles;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\n\nimport styles from './styles';\nimport ConfirmModal from '../ConfirmModal';\nimport Button from '../Button';\nimport copy from 'copy-to-clipboard';\nimport { noop } from '../../utils';\nimport SnackBarAPIResponse from '../SnackbarAlert/SnackBarAPIResponse';\nimport { trackEvent } from '../../utils/analytics';\nimport { EVENT_DYNAMIC_LINK_COPIED } from '../../constants/analyticsEvents';\n\nconst InviteModal = ({\n classes,\n messageText,\n inviteModalText,\n Toggle,\n Footer,\n isOpen,\n onConfirm,\n shareLink,\n shareImageURL,\n loading,\n inviteLoading,\n imageLoading,\n onDownload,\n errors,\n clearErrors,\n communityId,\n challengeId,\n ...modalProps\n}) => {\n const { t } = useTranslation();\n const [snackbarText, setSnackbarText] = useState('');\n\n return (\n \n \n {inviteModalText.header}\n \n \n {inviteModalText.body}\n \n {Toggle}\n \n \n \n {`${inviteModalText.previewHeader}:`}\n \n \n {messageText}\n \n {t('challenge.inviteModal.mobileOnly')}:\n \n {shareLink}\n \n \n \n {\n trackEvent(EVENT_DYNAMIC_LINK_COPIED, {\n community_id: communityId,\n challenge_id: challengeId,\n });\n copy(messageText + ' ' + shareLink);\n setSnackbarText(t(inviteModalText.copied));\n }}\n >\n {t('copy')}\n \n \n {shareImageURL && (\n \n \n {`${inviteModalText.pdfHeader}:`}\n \n \n \n \n \n {t('download')}\n \n \n )}\n {Footer}\n \n {\n setSnackbarText('');\n clearErrors();\n }}\n />\n \n );\n};\n\nInviteModal.propTypes = {\n classes: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n shareLink: PropTypes.string.isRequired,\n shareImageURL: PropTypes.string.isRequired,\n loading: PropTypes.bool,\n inviteLoading: PropTypes.bool,\n imageLoading: PropTypes.bool,\n onDownload: PropTypes.func,\n messageText: PropTypes.string.isRequired,\n inviteModalText: PropTypes.shape({\n header: PropTypes.string.isRequired,\n body: PropTypes.string.isRequired,\n previewHeader: PropTypes.string.isRequired,\n copied: PropTypes.string.isRequired,\n pdfHeader: PropTypes.string.isRequired,\n }).isRequired,\n onConfirm: PropTypes.func,\n Toggle: PropTypes.element,\n Footer: PropTypes.element,\n errors: PropTypes.array.isRequired,\n clearErrors: PropTypes.func.isRequired,\n communityId: PropTypes.string.isRequired,\n challengeId: PropTypes.string.isRequired,\n};\n\nInviteModal.defaultProps = {\n loading: false,\n inviteLoading: false,\n imageLoading: false,\n onDownload: noop,\n onConfirm: noop,\n Toggle: null,\n Footer: null,\n};\n\nexport default withStyles(styles)(InviteModal);\n","const styles = (theme) => ({\n switchText: {\n marginLeft: 10,\n },\n switchContainer: {\n marginTop: 20,\n marginLeft: 50,\n marginRight: 50,\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport { copyEmail } from '../../../../common/CopyToEmail/utils';\nimport { noop } from '../../../../utils';\nimport InviteModal from '../../../../common/InviteModal';\nimport styles from './styles';\nimport { Grid, Switch, Typography, withStyles } from '@material-ui/core';\nimport Tooltip from '../../../../common/Tooltip';\nimport { trackEvent } from '../../../../utils/analytics';\nimport { EVENT_CHALLENGE_INVITE_TOGGLED } from '../../../../constants/analyticsEvents';\n\nconst InviteUsersModal = ({\n classes,\n isOpen,\n onConfirm,\n challengeId,\n challengeName,\n challengeDescription,\n challengeShareLink,\n shareImageURL,\n imageLoading,\n inviteLoading,\n orgName,\n themeName,\n onDownload,\n ...modalProps\n}) => {\n const { t } = useTranslation();\n const inviteModalText = {\n header: t('challenge.inviteModal.header'),\n body: t('challenge.inviteModal.body'),\n previewHeader: t('challenge.inviteModal.previewHeader'),\n copied: t('challenge.inviteModal.copied'),\n pdfHeader: t('challenge.inviteModal.pdfHeader'),\n };\n\n const Toggle = (\n trackEvent(EVENT_CHALLENGE_INVITE_TOGGLED)}\n >\n \n \n \n \n \n \n \n {t('challenge.inviteModal.toggleSwitch')}\n \n \n \n );\n\n let messageText = t('challenge.inviteModal.inviteCustom', {\n org_name: orgName,\n });\n if (themeName) {\n messageText = t('challenge.inviteModal.inviteTheme', {\n challenge_name: challengeName,\n org_name: orgName,\n theme_name: themeName.toLowerCase(),\n });\n }\n\n return (\n {\n copyEmail(challengeShareLink, challengeDescription);\n onConfirm();\n }}\n shareLink={challengeShareLink}\n shareImageURL={shareImageURL}\n imageLoading={imageLoading}\n inviteLoading={inviteLoading}\n onDownload={onDownload}\n />\n );\n};\n\nInviteUsersModal.propTypes = {\n classes: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n onConfirm: PropTypes.func.isRequired,\n challengeId: PropTypes.string.isRequired,\n challengeName: PropTypes.string.isRequired,\n challengeDescription: PropTypes.string.isRequired,\n challengeShareLink: PropTypes.string.isRequired,\n shareImageURL: PropTypes.string.isRequired,\n orgName: PropTypes.string.isRequired,\n themeName: PropTypes.string.isRequired,\n imageLoading: PropTypes.bool,\n inviteLoading: PropTypes.bool,\n onDownload: PropTypes.func,\n};\n\nInviteUsersModal.defaultProps = {\n inviteLoading: false,\n imageLoading: false,\n onDownload: noop,\n};\n\nInviteUsersModal.defaultProps = {};\n\nexport default withStyles(styles)(InviteUsersModal);\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { Grid, Tooltip as TooltipUI, withStyles } from '@material-ui/core';\nimport { LibraryAdd, LibraryAddCheck, Share } from '@material-ui/icons';\nimport moment from 'moment';\nimport copy from 'copy-to-clipboard';\n\nimport styles from './styles';\n\nimport BackgroundHeader from '../../../common/BackgroundHeader';\nimport Button from '../../../common/Button';\n\nimport { dateDifferenceInLargestUnits } from '../../../utils/dates';\nimport {\n challengeAdminShareImageURLRequested,\n challengeClearErrors,\n challengeShareURLRequested,\n joinChallengeRequested,\n unjoinChallengeRequested,\n} from '../../../challenges/actions';\nimport {\n getActiveCommunityId,\n getActiveCommunityName,\n} from '../../../user/selectors';\nimport { downloadShareImage, getAppImages, noop } from '../../../utils';\nimport JoinTeam from '../JoinTeam';\nimport SelectTeam from '../SelectTeam';\nimport { useTranslation } from 'react-i18next';\nimport { trackEvent } from '../../../utils/analytics';\nimport { EVENT_SHARE_BEGIN } from '../../../constants/analyticsEvents';\nimport {\n CONTENT_TYPES,\n PARAM_CONTENT_ID,\n PARAM_CONTENT_TYPE,\n} from '../../../constants/analyticsParams';\nimport { Can } from '../../../casl/ability-context';\nimport InviteUsersModal from './InviteUsersModal';\nimport {\n CHALLENGE_TEMPLATE_STATUS_DRAFT,\n CHALLENGE_TEMPLATE_STATUSES,\n} from '../../../constants/challenges';\nimport {\n getChallengeAdminShareImageURL,\n getChallengeAdminShareImageURLErrors,\n getChallengeShareURL,\n getChallengeShareURLErrors,\n getChallengeThemeName,\n isChallengeAdminShareImageURLLoading,\n isChallengeShareURLLoading,\n} from '../../../challenges/selectors';\nimport {\n getFeatureFlagValue,\n REMOTE_CONFIG_SHOW_CHALLENGE_INVITE_MODAL_BUTTON,\n} from '../../../utils/remoteConfig';\nimport SnackBarAPIResponse from '../../../common/SnackbarAlert/SnackBarAPIResponse';\n\nconst ChallengeHeader = ({\n classes,\n challengeId,\n communityId,\n headlinePhotoUrl,\n iconUrl,\n name,\n action,\n participationStatus,\n unit,\n teams,\n description,\n endDate,\n joinFunc,\n unjoinFunc,\n onChangeName,\n onChangePhoto,\n onChangeIcon,\n challengeStatus,\n getShareURL,\n shareURLLoading,\n shareURL,\n shareURLErrors,\n orgName,\n themeName,\n clearErrors,\n getAdminShareImageURL,\n adminShareImageURL,\n adminShareImageURLErrors,\n adminShareImageURLLoading,\n}) => {\n const { t } = useTranslation();\n\n const currentDate = new Date(Date.now());\n const challengeEnded = currentDate.valueOf() > endDate.valueOf();\n const status = challengeEnded\n ? `${t('challengeEndedOn')} ${moment(endDate).format('MM/DD/YY')}`\n : `${t('challenge.challengeEndsIn')} ${dateDifferenceInLargestUnits(\n currentDate,\n endDate,\n )}`;\n\n const [joinTeamShown, setJoinTeamShown] = useState(false);\n const [selectTeamShown, setSelectTeamShown] = useState(false);\n const [snackBarMessage, setSnackBarMessage] = useState();\n const [inviteModalRequested, setInviteModalRequested] = useState(false);\n const [isInviteModalOpen, setInviteModalOpen] = useState(false);\n const [shareButtonPressed, setShareButtonPressed] = useState(false);\n const [\n shareImageDownloadRequested,\n setShareImageDownloadRequested,\n ] = useState(false);\n\n const [imageDownloadError, setImageDownloadError] = useState(null);\n\n useEffect(() => {\n if (inviteModalRequested && shareURLErrors?.length > 0) {\n setInviteModalRequested(false);\n }\n if (inviteModalRequested && shareURL) {\n setInviteModalOpen(true);\n setInviteModalRequested(false);\n }\n }, [inviteModalRequested, shareURL, shareURLErrors.length]);\n\n useEffect(() => {\n if (shareButtonPressed && shareURL) {\n copy(shareURL);\n setSnackBarMessage(t('onBoarding.invite.linkCopied'));\n setShareButtonPressed(false);\n }\n }, [shareURL, shareButtonPressed, t]);\n\n const toggleParticipationStatus = useCallback(\n () =>\n participationStatus === 'joined'\n ? unjoinFunc({ challengeId, communityId })\n : joinFunc({ challengeId, communityId }),\n [participationStatus, unjoinFunc, joinFunc, challengeId, communityId],\n );\n\n const handleTeamParticipationStatusChange = useCallback(\n () =>\n participationStatus === 'joined'\n ? setSelectTeamShown(true)\n : setJoinTeamShown(true),\n [participationStatus, setSelectTeamShown, setJoinTeamShown],\n );\n\n const handleParticipationButtonClick = useCallback(\n () =>\n unit === 'User'\n ? toggleParticipationStatus()\n : handleTeamParticipationStatusChange(),\n [unit, toggleParticipationStatus, handleTeamParticipationStatusChange],\n );\n\n const handleJoinTeam = useCallback(\n (id) => {\n joinFunc({ challengeId, communityId, teamId: id });\n setJoinTeamShown(false);\n },\n [joinFunc, challengeId, communityId, setJoinTeamShown],\n );\n\n const handleSwitchTeam = useCallback(\n (id) => {\n joinFunc({ challengeId, communityId, teamId: id });\n setSelectTeamShown(false);\n },\n [joinFunc, challengeId, communityId, setSelectTeamShown],\n );\n\n const handleLeaveChallenge = useCallback(() => {\n unjoinFunc({ challengeId, communityId });\n setSelectTeamShown(false);\n }, [unjoinFunc, challengeId, communityId, setSelectTeamShown]);\n\n const handleCopyDeepLink = useCallback(() => {\n if (shareURL) {\n copy(shareURL);\n setSnackBarMessage(t('onBoarding.invite.linkCopied'));\n } else {\n getShareURL(challengeId, action === 'view');\n setShareButtonPressed(true);\n }\n trackEvent(EVENT_SHARE_BEGIN, {\n [PARAM_CONTENT_TYPE]: CONTENT_TYPES.CHALLENGES,\n [PARAM_CONTENT_ID]: challengeId,\n });\n }, [shareURL, challengeId, t, getShareURL, action]);\n\n const genericAdminChallengeInvite = getAppImages()\n ?.genericAdminChallengeInvite;\n\n const showInviteModalButton =\n !!genericAdminChallengeInvite &&\n getFeatureFlagValue(REMOTE_CONFIG_SHOW_CHALLENGE_INVITE_MODAL_BUTTON);\n\n useEffect(() => {\n if (shareImageDownloadRequested && adminShareImageURL)\n downloadShareImage(\n adminShareImageURL,\n name,\n setShareImageDownloadRequested,\n setImageDownloadError,\n t('challenge.inviteModal.downloadFailed'),\n );\n }, [adminShareImageURL, name, shareImageDownloadRequested, t]);\n\n return (\n <>\n \n \n \n \n {action === 'view' && (\n \n {participationStatus === 'joined' ? (\n <>\n \n {t('Member')}\n \n ) : (\n <>\n \n {t('challenge.joinChallengeCTA')}\n \n )}\n \n )}\n {!challengeEnded && (\n \n {(allowed) => {\n if (allowed && showInviteModalButton) {\n const inviteUsersDisabled =\n challengeEnded ||\n challengeStatus ===\n CHALLENGE_TEMPLATE_STATUS_DRAFT;\n return (\n <>\n \n \n {\n getShareURL(\n challengeId,\n true,\n );\n setInviteModalRequested(\n true,\n );\n }}\n >\n \n {t(\n 'challenge.inviteChallengeUsersCTA.buttonText',\n )}\n \n \n \n\n \n setInviteModalOpen(false)\n }\n orgName={orgName}\n challengeId={challengeId}\n challengeName={name}\n themeName={themeName}\n imageLoading={\n adminShareImageURLLoading ||\n shareImageDownloadRequested\n }\n inviteLoading={shareURLLoading}\n challengeDescription={\n description\n }\n challengeShareLink={shareURL}\n shareImageURL={\n genericAdminChallengeInvite\n }\n onDownload={() => {\n setShareImageDownloadRequested(\n true,\n );\n if (!adminShareImageURL) {\n getAdminShareImageURL(\n communityId,\n challengeId,\n true,\n );\n }\n }}\n onConfirm={() => {\n setInviteModalOpen(false);\n setSnackBarMessage(\n t(\n 'onBoarding.invite.linkCopied',\n ),\n );\n }}\n />\n \n );\n } else {\n return (\n <>\n \n <>\n \n {t('copyShareLink')}\n \n \n \n );\n }\n }}\n \n )}\n \n \n {\n setImageDownloadError(null);\n setSnackBarMessage(null);\n clearErrors();\n }}\n />\n \n );\n};\n\nChallengeHeader.propTypes = {\n classes: PropTypes.object.isRequired,\n challengeId: PropTypes.string.isRequired,\n communityId: PropTypes.string.isRequired,\n headlinePhotoUrl: PropTypes.string.isRequired,\n iconUrl: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n action: PropTypes.string,\n participationStatus: PropTypes.string,\n unit: PropTypes.string,\n teams: PropTypes.array,\n endDate: PropTypes.instanceOf(Date).isRequired,\n joinFunc: PropTypes.func,\n unjoinFunc: PropTypes.func,\n onChangeName: PropTypes.func.isRequired,\n onChangePhoto: PropTypes.func.isRequired,\n onChangeIcon: PropTypes.func.isRequired,\n description: PropTypes.string,\n challengeStatus: PropTypes.oneOf(CHALLENGE_TEMPLATE_STATUSES).isRequired,\n getShareURL: PropTypes.func,\n shareURLLoading: PropTypes.bool,\n shareURL: PropTypes.string,\n orgName: PropTypes.string,\n themeName: PropTypes.string,\n shareURLErrors: PropTypes.array,\n clearErrors: PropTypes.func,\n adminShareImageURL: PropTypes.string,\n getAdminShareImageURL: PropTypes.func,\n adminShareImageURLLoading: PropTypes.bool,\n adminShareImageURLErrors: PropTypes.array,\n};\n\nChallengeHeader.defaultProps = {\n action: 'view',\n participationStatus: null,\n unit: 'User',\n teams: null,\n joinFunc: noop,\n unjoinFunc: noop,\n description: '',\n getShareURL: noop,\n shareURLLoading: false,\n shareURL: '',\n orgName: '',\n themeName: '',\n shareURLErrors: [],\n clearErrors: noop,\n adminShareImageURL: '',\n getAdminShareImageURL: noop,\n adminShareImageURLLoading: false,\n adminShareImageURLErrors: [],\n};\n\nexport const StyledChallengeHeader = withStyles(styles)(ChallengeHeader);\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n shareURLLoading: isChallengeShareURLLoading(state),\n shareURL: getChallengeShareURL(state),\n orgName: getActiveCommunityName(state),\n themeName: getChallengeThemeName(state),\n shareURLErrors: getChallengeShareURLErrors(state),\n adminShareImageURL: getChallengeAdminShareImageURL(state),\n adminShareImageURLLoading: isChallengeAdminShareImageURLLoading(state),\n adminShareImageURLErrors: getChallengeAdminShareImageURLErrors(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n joinFunc: ({ challengeId, communityId, teamId }) =>\n dispatch(joinChallengeRequested({ challengeId, communityId, teamId })),\n unjoinFunc: ({ challengeId, communityId }) =>\n dispatch(unjoinChallengeRequested({ challengeId, communityId })),\n getShareURL: (challengeId, includeOrgInvite) =>\n dispatch(challengeShareURLRequested(challengeId, includeOrgInvite)),\n getAdminShareImageURL: (communityId, challengeId, includeOrgInvite) =>\n dispatch(\n challengeAdminShareImageURLRequested(\n communityId,\n challengeId,\n includeOrgInvite,\n ),\n ),\n clearErrors: () => dispatch(challengeClearErrors()),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledChallengeHeader);\n","const styles = (theme) => ({\n modalTitle: {\n fontSize: '18px',\n fontWeight: '600',\n },\n modalPaper: {\n width: '300px',\n },\n title: {\n display: 'flex',\n alignItems: 'center',\n marginTop: '20px',\n marginBottom: '10px',\n fontSize: '24px',\n lineHeight: 1.1,\n fontWeight: 600,\n color: theme.custom.textDarkSecondaryColor,\n },\n button: {\n paddingRight: 0,\n marginLeft: 'auto',\n },\n container: {\n width: '100%',\n padding: 0,\n borderRadius: '4px',\n boxShadow:\n '0 0 0 1px rgba(0, 0, 0, 0.03), 0 1px 4px 0 rgba(0, 0, 0, 0.06)',\n boxSizing: 'border-box',\n backgroundColor: theme.custom.bgLightAccentColor,\n overflow: 'hidden',\n },\n tooltipIcon: {\n marginLeft: '5px',\n color: theme.custom.iconColor,\n fontSize: '18px',\n\n '&:hover': {\n cursor: 'pointer',\n color: theme.custom.iconColorHover,\n },\n },\n});\n\nexport default styles;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n place: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minWidth: 0,\n width: '35px',\n margin: '0 8px',\n padding: '8px 4px 8px',\n fontSize: '24px',\n color: theme.custom.textDarkColor,\n },\n disabled: {\n opacity: theme.custom.disabledOpacity,\n },\n image: (props) => ({\n width: '42px',\n height: '42px',\n margin: `8px 6px 8px ${props.hideRanks ? '24px' : '4px'}`,\n borderRadius: props.imageIsRounded && '6px',\n maxWidth: 'none',\n }),\n label: {\n padding: '8px',\n fontSize: '18px',\n fontWeight: 600,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n infoIcon: {\n padding: '8px',\n paddingRight: '16px',\n color: theme.custom.textDarkSecondaryColor,\n cursor: 'pointer',\n display: 'flex',\n justifyContent: 'center',\n alignContent: 'center',\n },\n infoIconRoot: {\n padding: 0,\n },\n value: {\n padding: '8px',\n paddingRight: '16px',\n fontSize: '34px',\n textAlign: 'left',\n },\n listItem: ({ hasOnClick, isPenalty }) => ({\n display: 'flex',\n overflow: 'hidden',\n border: '1px solid transparent',\n borderBottomColor: theme.custom.bgSeparator,\n color: theme.custom.textDarkColor,\n cursor: hasOnClick ? 'pointer' : 'auto',\n '&:last-child': {\n borderBottomColor: 'transparent',\n },\n opacity: isPenalty ? 0.25 : 1,\n }),\n icon: {\n margin: '8px',\n padding: '7px',\n borderRadius: '6px',\n fontSize: '38px',\n\n '&:hover': {\n backgroundColor: theme.custom.bgDarkHover,\n cursor: 'pointer',\n },\n },\n rightBlock: {\n flex: 1,\n minWidth: '20px',\n },\n leftBlock: {\n flex: 3,\n minWidth: '20px',\n },\n emptyText: {\n padding: '20px 0',\n fontSize: '14px',\n lineHeight: 1.1,\n fontWeight: 600,\n textAlign: 'center',\n color: theme.custom.textDarkColor,\n opacity: 0.5,\n },\n}));\n\nexport default useStyles;\n","import PropTypes from 'prop-types';\nimport { tooltipPlacementPropType } from '../Tooltip/propTypes';\nimport { noop } from '../utils';\n\nexport const leaderboardItemPropType = PropTypes.shape({\n id: PropTypes.string.isRequired,\n image: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired,\n disabled: PropTypes.bool,\n});\n\nexport const leaderboardCardPropTypes = {\n // The default image if there isn't one in the item\n defaultImageSrc: PropTypes.string.isRequired,\n\n // Whether or not the image has rounded corners\n imageIsRounded: PropTypes.bool,\n\n // whether or not we should hide the item's rank\n hideRanks: PropTypes.bool,\n\n // The left icon on the right side of the card\n Icon: PropTypes.node,\n\n // The right icon on the right side of the card\n ViewIcon: PropTypes.node,\n\n // onClick for the left icon on the right side of the card\n onIconClick: PropTypes.func,\n\n // onClick for the entire card\n onItemClick: PropTypes.func,\n\n // onClick for the info icon\n onInfoClick: PropTypes.func,\n\n // tooltip for the left icon on the right side of the card\n iconTooltip: PropTypes.string,\n\n // tooltip for the right icon on the right side of the card\n viewIconTooltip: PropTypes.string,\n\n // tooltip placement for all tooltips\n iconTooltipPlacement: tooltipPlacementPropType,\n\n // Whether or not we should show the items ID in the card\n showId: PropTypes.bool,\n};\n\nexport const leaderboardCardDefaultPropTypes = {\n defaultImageSrc: '',\n imageIsRounded: false,\n hideRanks: false,\n Icon: null,\n ViewIcon: null,\n onIconClick: noop,\n onItemClick: noop,\n onInfoClick: noop,\n iconTooltip: null,\n viewIconTooltip: null,\n iconTooltipPlacement: 'bottom',\n showId: false,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, IconButton, ListItemIcon, Typography } from '@material-ui/core';\nimport { Clear, Help, InfoOutlined } from '@material-ui/icons';\nimport useStyles from './styles';\nimport clsx from 'clsx';\nimport Tooltip from '../../Tooltip';\nimport {\n leaderboardCardDefaultPropTypes,\n leaderboardCardPropTypes,\n leaderboardItemPropType,\n} from '../propTypes';\nimport {\n LEADERBOARD_TYPE_DEFAULT,\n LEADERBOARD_TYPE_TOP_USERS,\n LEADERBOARD_TYPES,\n} from '../constants';\nimport { useTranslation } from 'react-i18next';\n\nconst LeaderboardCard = ({\n item,\n rank,\n defaultImageSrc,\n imageIsRounded,\n hideRanks,\n Icon,\n ViewIcon,\n onIconClick,\n onItemClick,\n iconTooltip,\n viewIconTooltip,\n iconTooltipPlacement,\n onInfoClick,\n showId,\n leaderboardType,\n isPenalty,\n onRemove,\n ...props\n}) => {\n const classes = useStyles({\n imageIsRounded,\n hideRanks,\n hasOnClick: !!onItemClick,\n isPenalty,\n });\n\n const { t } = useTranslation();\n\n return (\n onItemClick && onItemClick(item.id)}\n {...props}\n >\n \n \n {hideRanks || (\n \n {item.disabled ? null : (\n {isPenalty || rank}\n )}\n \n )}\n \n \n \n \n \n {leaderboardType === LEADERBOARD_TYPE_TOP_USERS\n ? item.label || t('leaderboard.deletedUser')\n : item.label}\n \n {showId ? (\n \n {`(${item.id})`}\n \n ) : null}\n \n \n {item.disabled ? (\n \n \n \n \n \n ) : isPenalty ? (\n \n \n \n ) : (\n \n {item.value?.toLocaleString()}\n \n )}\n {Icon && (\n \n {\n onIconClick(e, item.id);\n e.stopPropagation();\n }}\n />\n \n )}\n {onRemove && (\n \n {\n onRemove(item.id);\n e.stopPropagation();\n }}\n />\n \n )}\n \n \n );\n};\n\nLeaderboardCard.propTypes = {\n // The leaderboard item to be rendered\n item: leaderboardItemPropType.isRequired,\n\n // The item's rank in the leaderboard\n rank: PropTypes.number,\n leaderboardType: PropTypes.oneOf(LEADERBOARD_TYPES),\n isPenalty: PropTypes.bool,\n ...leaderboardCardPropTypes,\n};\n\nLeaderboardCard.defaultProps = {\n item: {},\n rank: 0,\n leaderboardType: LEADERBOARD_TYPE_DEFAULT,\n // purposely used null instead of noop so that we can add the cursor: pointer style if this exists\n onItemClick: null,\n isPenalty: false,\n ...leaderboardCardDefaultPropTypes,\n};\n\nexport default LeaderboardCard;\n","export const LEADERBOARD_TYPE_DEFAULT = '';\nexport const LEADERBOARD_TYPE_TOP_USERS = 'topUsers';\n\nexport const LEADERBOARD_TYPES = [\n LEADERBOARD_TYPE_DEFAULT,\n LEADERBOARD_TYPE_TOP_USERS,\n];\n","import { makeStyles } from '@material-ui/core';\n\nexport default makeStyles((theme) => ({\n cardLoaderContainer: {\n padding: '5px 10px',\n width: '100%',\n },\n}));\n","import ContentLoader from 'react-content-loader';\nimport React from 'react';\nimport useStyles from './styles';\n\nconst LeaderboardCardLoader = () => {\n const classes = useStyles();\n return (\n \n \n \n \n );\n};\n\nexport default LeaderboardCardLoader;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, List, Typography, withStyles } from '@material-ui/core';\nimport { KeyboardArrowRight } from '@material-ui/icons';\nimport Button from '../Button';\nimport styles from './styles';\nimport ConfirmModal from '../ConfirmModal';\nimport { useTranslation } from 'react-i18next';\nimport { noop } from '../../utils';\nimport InfiniteScroller from '../InfiniteScroller';\nimport LeaderboardCard from './LeaderboardCard';\nimport { leaderboardCardPropTypes, leaderboardItemPropType } from './propTypes';\nimport { LEADERBOARD_TYPE_DEFAULT, LEADERBOARD_TYPES } from './constants';\nimport LeaderboardCardLoader from './LeaderboardCardLoader';\nimport InfoTooltip from '../InfoTooltip';\n\nconst Leaderboard = ({\n classes,\n items,\n title,\n tooltip,\n viewAllBtn,\n onViewAllClick,\n leaderboardCardProps,\n onConfirm,\n unit,\n errors,\n isLoading,\n loadFunc,\n leaderboardType,\n penalties,\n intercomTargetPrefix,\n ...props\n}) => {\n const [isModalOpen, setModalOpen] = useState(false);\n\n const { t } = useTranslation();\n\n return (\n <>\n \n {t('challenge.notJoined')}\n \n }\n isOpen={isModalOpen}\n confirmBtnHidden={true}\n cancelBtnText={t('close')}\n cancelBtnType=\"default\"\n onClose={() => setModalOpen(false)}\n onCancel={() => setModalOpen(false)}\n onConfirm={onConfirm}\n classes={{ modal: classes.modalPaper }}\n >\n {t('challenge.notJoinedDesc')}\n \n \n {title && (\n \n {title}\n {tooltip && (\n \n )}\n {viewAllBtn && (\n \n {t('viewAll')}\n \n \n )}\n \n )}\n \n (\n setModalOpen(true)}\n leaderboardType={leaderboardType}\n isPenalty={item.status === 'penalty'}\n {...leaderboardCardProps}\n />\n )}\n Loader={\n \n \n \n \n }\n listEmptyText={t('data.empty')}\n />\n \n \n \n );\n};\n\nLeaderboard.propTypes = {\n classes: PropTypes.object.isRequired,\n items: PropTypes.arrayOf(leaderboardItemPropType).isRequired,\n title: PropTypes.string,\n tooltip: PropTypes.string,\n viewAllBtn: PropTypes.bool,\n onViewAllClick: PropTypes.func,\n onConfirm: PropTypes.func,\n unit: PropTypes.string,\n intercomTargetPrefix: PropTypes.string,\n errors: PropTypes.array,\n isLoading: PropTypes.bool,\n loadFunc: PropTypes.func,\n leaderboardType: PropTypes.oneOf(LEADERBOARD_TYPES),\n leaderboardCardProps: PropTypes.shape(leaderboardCardPropTypes),\n penalties: PropTypes.array,\n};\n\nLeaderboard.defaultProps = {\n items: [],\n title: null,\n tooltip: null,\n viewAllBtn: false,\n onViewAllClick: noop,\n onConfirm: noop,\n unit: null,\n errors: [],\n isLoading: false,\n loadFunc: noop,\n intercomTargetPrefix: '',\n leaderboardType: LEADERBOARD_TYPE_DEFAULT,\n leaderboardCardProps: {},\n penalties: [],\n};\n\nexport default withStyles(styles)(Leaderboard);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n fontSize: 'min(14px, 4vw)',\n backgroundColor: theme.custom.bgLightColor,\n\n '&:hover': {\n backgroundColor: theme.custom.bgLightAccentColor,\n },\n\n '&$selected': {\n backgroundColor: theme.custom.bgLightColor,\n },\n },\n selected: {\n backgroundColor: theme.custom.bgLightColor,\n },\n container: {\n backgroundColor: theme.custom.bgLightAccentColor,\n },\n fullWidth: {\n width: '100%',\n },\n footer: (props) => ({\n backgroundColor: theme.custom.bgLightColor,\n padding: props.footerPadding,\n }),\n body: {\n padding: `16px ${theme.custom.mainContentHorizontalPadding}`,\n width: '100%',\n },\n}));\n\nexport default useStyles;\n","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport { Tabs, Tab, Box } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport useStyles from './styles';\n\nconst TabbedSection = ({\n tabs,\n withFooter,\n variant,\n onTabChange,\n tabsProps,\n tabProps,\n tabBoxProps,\n footerBoxProps,\n footerPadding,\n selectedIndex,\n}) => {\n const classes = useStyles({ footerPadding });\n\n const [selected, setSelected] = useState(selectedIndex);\n const tabLabels = Object.keys(tabs);\n const numTabs = tabLabels.length;\n\n const selectTabHandler = (e, newValue) => {\n setSelected(newValue);\n onTabChange && onTabChange(newValue);\n };\n\n return (\n <>\n \n {tabLabels.map((label, id) => {\n return (\n \n );\n })}\n \n {tabLabels.map((label, id) => {\n return selected === id ? (\n \n {tabs[label]}\n \n ) : null;\n })}\n {withFooter ? (\n \n {withFooter}\n \n ) : null}\n \n );\n};\n\nTabbedSection.propTypes = {\n // variant to use for MUI tabs (e.g. standard, scrollable, or fullWidth)\n variant: PropTypes.string,\n\n // optionally provide content to always be present below the tab content\n withFooter: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n\n onTabChange: PropTypes.func,\n\n // the tabs, where the key is the tab label and the value is the tabbed content\n tabs: PropTypes.objectOf(\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n ).isRequired,\n\n tabsProps: PropTypes.object,\n tabProps: PropTypes.object,\n tabBoxProps: PropTypes.object,\n footerBoxProps: PropTypes.object,\n footerPadding: PropTypes.string,\n selectedIndex: PropTypes.number,\n};\n\nTabbedSection.defaultProps = {\n variant: 'fullWidth',\n withFooter: false,\n onTabChange: null,\n tabsProps: {},\n tabProps: {},\n tabBoxProps: {},\n footerBoxProps: {},\n footerPadding: '24px',\n selectedIndex: 0,\n};\n\nexport default TabbedSection;\n","import { createSelector } from 'reselect';\nimport { coerceIntoErrors } from '../common/errors';\n\nexport const getInitState = (state) => state.init;\n\nexport const getInitializationStatus = createSelector(\n getInitState,\n (init) => init.status,\n);\n\nexport const getInitializationErrors = createSelector(getInitState, (init) =>\n coerceIntoErrors(init.errors),\n);\n\nexport const getApplicationStrings = createSelector(\n getInitState,\n (init) => init.appStrings,\n);\n","const styles = (theme) => ({\n confirmMessage: {\n paddingBottom: '10px',\n },\n identifier: {\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n description: {\n marginTop: '10px',\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n borderIcon: {\n border: '2px solid #fff',\n borderRadius: '6px 6px 50% 50%',\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { withStyles, Grid, Typography } from '@material-ui/core';\nimport ConfirmModal from '../ConfirmModal';\nimport styles from './styles';\nimport { getAppImages } from '../../utils';\n\nconst Delete = ({\n classes,\n isOpen,\n deleteWhat,\n item,\n description,\n onClose,\n onCancel,\n onConfirm,\n confirmMessage,\n ...props\n}) => {\n const { t } = useTranslation();\n return (\n \n \n \n {confirmMessage || (\n \n {t('prompt.delete.firstWarn')}{' '}\n {deleteWhat}?{' '}\n {t('prompt.delete.lastWarn')}\n \n )}\n \n \n \n \n \n \n {item?.name}\n \n \n {item?.identifier}\n \n \n {description}\n \n \n );\n};\n\nDelete.propTypes = {\n confirmMessage: PropTypes.string,\n classes: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n deleteWhat: PropTypes.string.isRequired,\n item: PropTypes.shape({\n name: PropTypes.string.isRequired,\n iconUrl: PropTypes.string.isRequired,\n identifier: PropTypes.string.isRequired,\n isChallenge: PropTypes.bool,\n }).isRequired,\n description: PropTypes.string.isRequired,\n onClose: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n onConfirm: PropTypes.func.isRequired,\n};\n\nDelete.defaultProps = {\n confirmMessage: null,\n};\nexport default withStyles(styles)(Delete);\n","import React, { useCallback, useContext, useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { Typography, withStyles } from '@material-ui/core';\nimport { Notifications, Visibility } from '@material-ui/icons';\nimport { useHistory } from 'react-router-dom';\nimport styles from '../styles';\n\nimport Leaderboard from '../../../common/Leaderboard';\n\nimport {\n challengeLeaderboardRequested,\n removeUserRequested,\n} from '../../../challenges/actions';\nimport {\n getChallengeScoringType,\n getChallengeUnit,\n getLeaderboardErrors,\n getLeaderboardItems,\n getSecondaryLeaderboardItems,\n isLeaderboardLoading,\n isPenaltiesActionLoading,\n} from '../../../challenges/selectors';\nimport CommonPropTypes from '../../../common/propTypes';\nimport { getActiveCommunityId, getUser } from '../../../user/selectors';\nimport { getAppImages, noop } from '../../../utils';\nimport { openCreateNotification } from '../../../notifications/actions';\nimport {\n AUDIENCE_VALUE_CHALLENGE_TEAMS,\n AUDIENCE_VALUE_USERS,\n} from '../../../notifications/constants';\nimport TabbedSection from '../../../common/TabbedSection';\nimport { AbilityContext } from '../../../casl/ability-context';\nimport { getApplicationStrings } from '../../../init/selectors';\nimport ConfirmModal from '../../../common/ConfirmModal';\nimport InfoTooltip from '../../../common/InfoTooltip';\nimport Delete from '../../../common/Delete';\n\nconst TEAM = 'Team';\nconst USER = 'User';\n\nconst Errors = ({ errors }) => (\n <>\n {errors.map((err, i) => (\n {err}\n ))}\n \n);\n\nconst ChallengeLeaderboard = ({\n classes,\n challengeId,\n challengeName,\n communityId,\n loadFunc,\n isLoading,\n errors,\n unit,\n mainTabItems,\n t,\n secondaryTabItems,\n onNotificationClick,\n user,\n scoringType,\n appStrings,\n onRemove,\n removeLoading,\n}) => {\n const history = useHistory();\n const ability = useContext(AbilityContext);\n\n const TEAMS_LABEL = t('leaderboard.teams');\n const USERS_LABEL = t('user_plural');\n const SEND_NOTIFICATION_LABEL = t('leaderboard.sendNotification');\n const VIEW_USER_LABEL = t('leaderboard.viewUser');\n\n const [scoreExplanationTitle, setScoreExplanationTitle] = useState('');\n const [scoreExplanation, setScoreExplanation] = useState('');\n const [scoreModalOpen, setScoreModalOpen] = useState(false);\n\n const [deleteModalOpen, setDeleteModalOpen] = useState(false);\n const [deleteId, setDeleteId] = useState(null);\n\n const [removeRequested, setRemoveRequested] = useState(false);\n\n const canManageMasterNotifications = ability.can(\n 'manage',\n 'MasterNotifications',\n );\n\n const canRemoveChallengeUser = ability.can('remove', 'ChallengeUser');\n\n const getTeamScoreExplanation = useCallback(() => {\n let explanation;\n scoringType === 'movingAverage'\n ? (explanation =\n appStrings?.challenge?.scoreModals?.team?.movingAverage\n ?.leaderboard)\n : (explanation =\n appStrings?.challenge?.scoreModals?.team?.basicAggregate\n ?.leaderboard);\n return explanation;\n }, [appStrings, scoringType]);\n\n const loadTeams = useCallback(\n (request = {}) => {\n loadFunc({ challengeId, communityId, ...request });\n },\n [challengeId, communityId, loadFunc],\n );\n\n // If we have requested a remove, set the removeRequested flag to true\n useEffect(() => {\n if (!removeRequested) {\n setRemoveRequested(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [removeLoading]);\n\n // Reload the leaderboard once we know the remove action has completed since we don't get anything in the response\n useEffect(() => {\n if (!removeLoading && removeRequested) {\n loadTeams();\n }\n }, [loadTeams, removeLoading, removeRequested]);\n\n useEffect(() => {\n loadTeams();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleUserScoreTooltipClick = useCallback(() => {\n setScoreExplanationTitle(\n appStrings?.challenge?.scoreModals?.user?.scoreTitle,\n );\n setScoreExplanation(\n appStrings?.challenge?.scoreModals?.user?.leaderboard,\n );\n setScoreModalOpen(true);\n }, [appStrings]);\n\n const handleTeamScoreTooltipClick = useCallback(() => {\n setScoreExplanationTitle(\n appStrings?.challenge?.scoreModals?.team?.scoreTitle,\n );\n setScoreExplanation(getTeamScoreExplanation());\n setScoreModalOpen(true);\n }, [appStrings, getTeamScoreExplanation]);\n\n const handleTeamItemClick = useCallback(\n (id) => {\n history.push(`/challenges/${challengeId}/team/${id}`);\n },\n [history, challengeId],\n );\n\n const handleNotificationIconClick = useCallback(\n (event, itemId, items, notifyUnit) => {\n const item = items.find(({ id }) => id === itemId);\n onNotificationClick({\n subjectContentID: challengeId,\n subjectContentType: 'challenge',\n audienceType:\n notifyUnit === 'Team'\n ? AUDIENCE_VALUE_CHALLENGE_TEAMS\n : AUDIENCE_VALUE_USERS,\n audiences: [item],\n subject: challengeName,\n });\n },\n [challengeId, challengeName, onNotificationClick],\n );\n\n const handleViewIconClick = useCallback(\n (id) => {\n user.id === id\n ? history.push('/profile/self')\n : history.push(`/profile/${id}`);\n },\n [history, user],\n );\n\n const tab1Title = unit === TEAM ? TEAMS_LABEL : USERS_LABEL;\n\n const handleRemove =\n canRemoveChallengeUser &&\n ((userId) => {\n setDeleteModalOpen(true);\n setDeleteId(userId);\n });\n\n const leaderboardCardProps = {\n defaultImageSrc: getAppImages().defaultProfileIcon,\n imageIsRounded: true,\n hideRanks: false,\n ViewIcon: unit === USER ? Visibility : null,\n onItemClick:\n unit === TEAM\n ? handleTeamItemClick\n : (itemId) => handleViewIconClick(itemId),\n viewIconTooltip: VIEW_USER_LABEL,\n iconTooltipPlacement: 'top',\n showId: false,\n onRemove: unit === USER && handleRemove,\n };\n if (canManageMasterNotifications) {\n leaderboardCardProps.showId = unit === USER;\n leaderboardCardProps.Icon = Notifications;\n leaderboardCardProps.iconTooltip = SEND_NOTIFICATION_LABEL;\n leaderboardCardProps.onIconClick = (event, itemId) =>\n handleNotificationIconClick(event, itemId, mainTabItems, unit);\n }\n\n const MainTab = (\n <>\n {unit === TEAM ? (\n \n {appStrings?.challenge?.scoreModals?.team?.scoreTitle}\n \n \n ) : (\n \n {appStrings?.challenge?.scoreModals?.user?.scoreTitle}\n \n \n )}\n loadTeams(request)}\n isLoading={isLoading}\n items={mainTabItems}\n leaderboardCardProps={leaderboardCardProps}\n unit={unit}\n />\n \n );\n const tabs = {\n [tab1Title]: MainTab,\n };\n if (unit === TEAM) {\n const teamLeaderboardCardProps = {\n showId: true,\n ViewIcon: Visibility,\n onItemClick: noop,\n ...leaderboardCardProps,\n onRemove: handleRemove,\n };\n\n if (canManageMasterNotifications) {\n teamLeaderboardCardProps.onIconClick = (event, itemId) =>\n handleNotificationIconClick(\n event,\n itemId,\n secondaryTabItems,\n USER,\n );\n }\n\n tabs[USERS_LABEL] = (\n <>\n \n {appStrings?.challenge?.scoreModals?.user?.scoreTitle}\n \n \n \n loadFunc({\n challengeId,\n communityId,\n challengeUnit: USER,\n ...request,\n })\n }\n isLoading={isLoading}\n items={secondaryTabItems || []}\n leaderboardCardProps={teamLeaderboardCardProps}\n unit={unit}\n />\n \n );\n }\n\n const renderLeaderboard = () => {\n return unit === TEAM ? (\n {\n if (tab === 1) {\n loadFunc({\n challengeId,\n communityId,\n challengeUnit: USER,\n });\n }\n }}\n tabs={tabs}\n />\n ) : (\n MainTab\n );\n };\n\n const getItem = () => {\n let item = mainTabItems?.find((i) => i.id === deleteId);\n if (unit === TEAM) {\n item = secondaryTabItems?.find((i) => i.id === deleteId);\n }\n return {\n id: item?.id,\n name: item?.label,\n iconUrl: item?.image,\n };\n };\n\n return (\n <>\n {errors && }\n {!errors && renderLeaderboard()}\n setScoreModalOpen(false)}\n onClose={() => setScoreModalOpen(false)}\n >\n \n {scoreExplanation}\n \n \n {\n setDeleteModalOpen(false);\n setDeleteId(null);\n }}\n onCancel={() => {\n setDeleteModalOpen(false);\n setDeleteId(null);\n }}\n onConfirm={() => {\n onRemove(challengeId, deleteId, communityId);\n setDeleteModalOpen(false);\n setDeleteId(null);\n }}\n item={getItem()}\n confirmBtnText={t('remove')}\n />\n \n );\n};\n\nChallengeLeaderboard.propTypes = {\n classes: PropTypes.object.isRequired,\n challengeId: PropTypes.string.isRequired,\n challengeName: PropTypes.string.isRequired,\n communityId: PropTypes.string.isRequired,\n loadFunc: PropTypes.func.isRequired,\n isLoading: PropTypes.bool.isRequired,\n errors: CommonPropTypes.errors,\n unit: PropTypes.string,\n mainTabItems: PropTypes.array,\n secondaryTabItems: PropTypes.array,\n t: PropTypes.func.isRequired,\n onNotificationClick: PropTypes.func,\n user: PropTypes.object.isRequired,\n appStrings: PropTypes.object,\n scoringType: PropTypes.string.isRequired,\n onRemove: PropTypes.func,\n removeLoading: PropTypes.bool,\n};\n\nChallengeLeaderboard.defaultProps = {\n errors: null,\n unit: null,\n mainTabItems: null,\n secondaryTabItems: null,\n onNotificationClick: noop,\n appStrings: {},\n onRemove: null,\n removeLoading: false,\n};\n\nconst StyledChallengeLeaderboard = withStyles(styles)(ChallengeLeaderboard);\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n isLoading: isLeaderboardLoading(state),\n removeLoading: isPenaltiesActionLoading(state),\n errors: getLeaderboardErrors(state),\n unit: getChallengeUnit(state),\n mainTabItems: getLeaderboardItems(state),\n secondaryTabItems: getSecondaryLeaderboardItems(state),\n user: getUser(state),\n appStrings: getApplicationStrings(state),\n scoringType: getChallengeScoringType(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n loadFunc: (request) => dispatch(challengeLeaderboardRequested(request)),\n onNotificationClick: (notification) =>\n dispatch(openCreateNotification(notification)),\n onRemove: (challengeId, userId, communityId) =>\n dispatch(removeUserRequested({ challengeId, userId, communityId })),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledChallengeLeaderboard);\n","const styles = (theme) => ({\n impactTotalsRow: {\n marginBottom: '10px',\n },\n impactTotalsLabel: {\n color: theme.custom.textDarkSecondaryColor,\n fontSize: '24px',\n },\n tooltip: {\n color: theme.palette.white.main,\n },\n icon: {\n color: theme.custom.tooltipIconColor,\n marginLeft: '3px',\n\n '&:hover': {\n cursor: 'pointer',\n },\n },\n statsCard: {\n flex: 1,\n maxWidth: '100%',\n },\n statsCards: {\n flexBasis: '100%',\n },\n});\n\nexport default styles;\n","import makeStyles from '@material-ui/styles/makeStyles';\n\nconst useStyles = makeStyles((theme) => ({\n cardRoot: {\n height: '100%',\n width: '100%',\n minHeight: 144,\n backgroundColor: theme.custom.grey93,\n alignItems: 'center',\n },\n headerRoot: {\n padding: '10px 15px',\n alignItems: 'center',\n backgroundColor: theme.custom.grey95,\n },\n headerTitle: ({ colorTitle, capitalize }) => ({\n fontSize: 16,\n fontWeight: 600,\n color: colorTitle,\n marginRight: 4,\n textTransform: capitalize ? 'capitalize' : 'none',\n }),\n headerContent: {\n flex: 0,\n whiteSpace: 'nowrap',\n },\n headerAction: {\n margin: 0,\n },\n iconButton: {\n width: 14,\n height: 14,\n color: theme.custom.grey60,\n },\n contentRoot: ({ colorContent }) => ({\n color: colorContent,\n padding: 15,\n '&:first-child': {\n padding: 15,\n },\n }),\n value: {\n fontSize: 80,\n lineHeight: '64px',\n fontWeight: 600,\n whiteSpace: 'nowrap',\n },\n weight: {\n fontSize: '28px',\n fontWeight: 600,\n lineHeight: '40px',\n },\n}));\n\nexport default useStyles;\n","import React, { useState } from 'react';\nimport Card from '@material-ui/core/Card';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';\nimport IconButton from '@material-ui/core/IconButton';\nimport CardContent from '@material-ui/core/CardContent';\nimport Typography from '@material-ui/core/Typography';\nimport Collapse from '@material-ui/core/Collapse';\nimport PropTypes from 'prop-types';\nimport theme from '../../theme';\nimport useStyles from './styles';\nimport { useTheme } from '@material-ui/core';\n\nconst StatCard = ({\n title,\n value,\n weight,\n unit,\n info,\n colorTitle,\n colorContent,\n capitalize,\n}) => {\n const theme = useTheme();\n\n /*\n * the themeColor on the impactStatType DB doc isn't customizable by application,\n * so this is a hack to change the color for WFA\n */\n const transformColor = (color) => {\n switch (color.toLowerCase()) {\n case '#00b89f':\n return theme.custom.impactTileColor || color;\n default:\n return color;\n }\n };\n const classes = useStyles({\n colorTitle: transformColor(colorTitle),\n colorContent: transformColor(colorContent),\n capitalize,\n });\n const [isDescription, setIsDescription] = useState(false);\n\n return (\n \n setIsDescription(!isDescription)}\n style={{ padding: 0 }}\n >\n \n \n )\n }\n />\n \n \n

    {info}

    \n
    \n \n \n {value}\n \n {weight} {unit}\n \n \n \n
    \n
    \n );\n};\n\nStatCard.propTypes = {\n title: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n unit: PropTypes.string,\n weight: PropTypes.string,\n info: PropTypes.string,\n colorTitle: PropTypes.string,\n colorContent: PropTypes.string,\n // whether the title should be capitalized\n capitalize: PropTypes.bool,\n};\n\nStatCard.defaultProps = {\n impactValue: null,\n colorTitle: theme.custom.grey60,\n colorContent: theme.custom.grey20,\n value: '',\n unit: '',\n weight: '',\n info: null,\n capitalize: false,\n};\n\nexport default StatCard;\n","const styles = (theme) => ({\n title: {\n marginTop: '20px',\n marginBottom: '10px',\n fontSize: '24px',\n lineHeight: 1.1,\n fontWeight: 600,\n color: theme.custom.textDarkSecondaryColor,\n },\n icon: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minWidth: 0,\n margin: '0 8px',\n padding: '8px',\n\n '& svg': {\n fontSize: '20px',\n },\n },\n label: {\n display: 'flex',\n alignItems: 'center',\n margin: 0,\n padding: '8px',\n fontSize: '18px',\n fontWeight: 600,\n verticalAlign: 'middle',\n },\n value: {\n padding: '8px',\n paddingRight: '16px',\n fontSize: '34px',\n },\n listItem: {\n border: '1px solid transparent',\n borderBottomColor: theme.custom.bgSeparator,\n color: theme.custom.textDarkColor,\n\n '&:last-child': {\n borderBottomColor: 'transparent',\n },\n },\n container: {\n padding: 0,\n borderRadius: '4px',\n boxShadow:\n '0 0 0 1px rgba(0, 0, 0, 0.03), 0 1px 4px 0 rgba(0, 0, 0, 0.06)',\n boxSizing: 'border-box',\n backgroundColor: theme.custom.bgLightAccentColor,\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n List,\n ListItemIcon,\n Grid,\n Typography,\n withStyles,\n ListItem,\n} from '@material-ui/core';\nimport styles from './styles';\n\nconst ActivityTotals = ({ activityItems, activityTitle, classes }) => {\n return (\n \n \n {activityTitle}\n \n \n {activityItems.map((activityItem) => (\n \n \n \n {activityItem.icon}\n \n \n {activityItem.label}\n \n \n \n {activityItem.value}\n \n \n ))}\n \n \n );\n};\n\nexport const ActivityTotalPropType = PropTypes.shape({\n icon: PropTypes.node.isRequired,\n label: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired,\n});\n\nActivityTotals.propTypes = {\n activityItems: PropTypes.arrayOf(ActivityTotalPropType),\n activityTitle: PropTypes.string,\n classes: PropTypes.object.isRequired,\n};\n\nActivityTotals.defaultProps = {\n activityItems: [],\n activityTitle: 'Activity Totals',\n};\n\nexport default withStyles(styles)(ActivityTotals);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { Grid, withStyles } from '@material-ui/core';\nimport {\n AddCircleRounded,\n PlusOneRounded,\n StarsRounded,\n SupervisorAccountRounded,\n VibrationRounded,\n} from '@material-ui/icons';\n\nimport styles from './styles';\n\nimport {\n getChallengeActivityTotals,\n getChallengeImpactItems,\n} from '../../../challenges/selectors';\nimport StatCard from '../../../common/StatCard';\nimport ActivityTotals from '../../../common/ActivityTotals';\nimport ImpactToolTip from '../../../common/ImpactTooltip';\n\nconst ChallengeImpact = ({ classes, impactItems, activityTotals, t }) => (\n \n {impactItems?.length > 0 && (\n \n \n \n {t('impact.totals')}\n \n \n \n \n {impactItems.map(({ id, ...props }) => (\n \n \n \n ))}\n \n \n )}\n \n ,\n },\n {\n label: 'Logs',\n value: activityTotals.logs,\n icon: ,\n },\n {\n label: 'Actions',\n value: activityTotals.actions,\n icon: ,\n },\n {\n label: 'Badges',\n value: activityTotals.badges,\n icon: ,\n },\n {\n label: 'Members',\n value: activityTotals.members,\n icon: ,\n },\n ]}\n />\n \n \n);\n\nChallengeImpact.propTypes = {\n classes: PropTypes.object.isRequired,\n impactItems: PropTypes.array.isRequired,\n activityTotals: PropTypes.object.isRequired,\n t: PropTypes.func.isRequired,\n};\n\nconst StyledChallengeImpact = withStyles(styles)(ChallengeImpact);\n\nconst mapStateToProps = (state) => ({\n impactItems: getChallengeImpactItems(state),\n activityTotals: getChallengeActivityTotals(state),\n});\n\nexport default connect(mapStateToProps)(StyledChallengeImpact);\n","const styles = (theme) => ({\n description: {\n marginBottom: '50px',\n },\n icon: {\n height: '60px',\n width: 'auto',\n fill: theme.palette.primary.main,\n },\n iconLabel: {\n color: theme.palette.primary.main,\n fontWeight: 700,\n marginTop: '10px',\n },\n datesRow: {\n width: '100%',\n marginTop: '50px',\n marginBottom: '50px',\n },\n startEndLabel: {\n fontSize: '18px',\n color: theme.palette.primary.main,\n marginBottom: '10px',\n fontWeight: '700',\n marginTop: '10px',\n },\n date: {\n fontSize: '30px',\n marginBottom: '10px',\n },\n time: {\n fontSize: '18px',\n marginBottom: '10px',\n color: theme.custom.textDarkSecondaryColor,\n },\n teamsLabel: {\n marginTop: '26px',\n marginBottom: '10px',\n fontSize: '24px',\n color: theme.custom.textDarkSecondaryColor,\n },\n howToWinLabel: {\n marginTop: '26px',\n marginBottom: '10px',\n fontSize: '20px',\n fontWeight: '700',\n color: theme.palette.primary.main,\n },\n rulesLabel: {\n marginTop: '26px',\n marginBottom: '10px',\n fontSize: '20px',\n fontWeight: '700',\n color: theme.palette.primary.main,\n },\n rules: {\n marginBottom: '3px',\n },\n prizeIcon: {\n borderColor: '#fff',\n borderStyle: 'solid',\n borderWidth: '2px',\n position: 'relative',\n zIndex: '0',\n },\n prizeName: {\n fontWeight: 700,\n },\n editable: {\n padding: '8px',\n '&:hover': {\n backgroundColor: 'rgba(255,255,255,.25)',\n borderRadius: '6px',\n\n '&& svg': {\n opacity: 1,\n },\n },\n },\n editIcon: {\n color: theme.palette.white.main,\n opacity: 0.5,\n marginLeft: '3px',\n backgroundColor: theme.palette.primary.main,\n borderRadius: '50%',\n padding: '5px',\n verticalAlign: 'middle',\n },\n dateContainer: {\n backgroundColor: theme.custom.bgLightAccentColor,\n borderRadius: '5px',\n margin: '10px',\n '& .MuiGrid-item': {\n width: '100%',\n position: 'relative',\n textAlign: 'center',\n '& svg.MuiSvgIcon-root': {\n position: 'absolute',\n top: '-2px',\n right: '12px',\n fontSize: '24px',\n },\n },\n '&:hover': {\n '& svg.MuiSvgIcon-root': {\n opacity: 1,\n cursor: 'pointer',\n },\n },\n },\n addButton: {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 10,\n },\n buttonText: {\n justifyContent: 'center',\n textColor: '#ffffff',\n },\n toggleContainer: {\n padding: '8px',\n },\n toggleText: {\n margin: '0px 5px 0px 10px',\n },\n});\n\nexport default styles;\n","import { Delete, Edit } from '@material-ui/icons';\n\nexport const ECO_ACTIONS = 'Eco Actions';\nexport const FITNESS_ACTIONS = 'Fitness Actions';\nexport const NUTRITION_ACTIONS = 'Nutrition Actions';\nexport const DIVERSITY_ACTIONS = 'D&I Actions';\nexport const REMOTE_ACTIONS = 'RE Actions';\nexport const CIVIC_ACTIONS = 'Civic Actions';\n\nexport const DATE_FORMAT = 'MMM DD, YYYY';\nexport const TIME_FORMAT = 'h:mm A';\n\nexport const DEFAULT_CONTENT_FILTER_TEXT_KEY = 'challenge.info.allActions';\n\nexport const prizeButtonsCell = [\n {\n key: 'editChallengePrizes',\n actions: 'edit',\n subject: 'ChallengePrizes',\n tooltip: 'edit',\n icon: Edit,\n },\n {\n key: 'deleteChallengePrizes',\n actions: 'edit',\n subject: 'ChallengePrizes',\n tooltip: 'delete',\n icon: Delete,\n },\n];\n\nexport const PRIZE_RANK_OPTIONS = [\n { name: '1st', value: 1 },\n { name: '2nd', value: 2 },\n { name: '3rd', value: 3 },\n { name: 'Other', value: 4 },\n];\n","import { baseColumns } from '../../ActionsScreen/AdminActionsScreen/constants';\n\nexport const CHALLENGE_ACTIONS_TABLE_COLUMNS = [\n ...baseColumns,\n {\n accessor: 'actions',\n },\n];\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n marginTop: '26px',\n marginBottom: '10px',\n fontSize: '20px',\n fontWeight: '700',\n color: theme.palette.primary.main,\n },\n\n title: {\n textAlign: 'center',\n fontSize: 26,\n fontWeight: 'bold',\n backgroundColor: 'white',\n },\n modal: {\n backgroundColor: 'white',\n },\n description: {\n marginBottom: 30,\n },\n searchContainer: {\n marginBottom: 15,\n },\n addButton: {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 10,\n },\n inputRoot: {\n width: '100%',\n borderRadius: '8px',\n border: '1px solid transparent',\n backgroundColor: theme.custom.inputBackground,\n fontSize: '18px',\n '&:before, &:after': {\n display: 'none',\n },\n height: 46,\n justifyContent: 'center',\n paddingLeft: 10,\n },\n select: {\n '&:focus': {\n backgroundColor: theme.custom.inputBackground,\n },\n },\n selectItem: {\n paddingLeft: 10,\n },\n categoryIcon: {\n width: '24px',\n marginRight: 5,\n height: 'auto',\n objectFit: 'contain',\n },\n}));\n\nexport default useStyles;\n","import { Grid } from '@material-ui/core';\nimport SearchBar from '../../../common/Search';\nimport React, { useCallback, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { CHALLENGE_ACTIONS_TABLE_COLUMNS } from './constants';\nimport TableManager from '../../ActionsScreen/AdminActionsScreen/TableManager';\nimport useStyles from './styles';\nimport PropTypes from 'prop-types';\nimport { noop } from '../../../utils';\nimport CategoryDropdown from '../../../common/CategoryDropdown';\n\nexport const ChallengeActionsTable = ({\n showThemesFilter,\n themes,\n fetchDataFunc,\n ...props\n}) => {\n const { t } = useTranslation();\n const classes = useStyles();\n\n const [searchFilter, setSearchFilter] = useState('');\n const [selectedCategoryId, setSelectedCategoryId] = useState('1');\n const [refetchData, setRefetchData] = useState(0);\n\n const columns = CHALLENGE_ACTIONS_TABLE_COLUMNS;\n\n const fetchFilteredData = useCallback(\n (args) => {\n args.categoryIds = [selectedCategoryId];\n fetchDataFunc(args);\n },\n [fetchDataFunc, selectedCategoryId],\n );\n\n return (\n <>\n \n \n \n \n {showThemesFilter && (\n \n {\n setSelectedCategoryId(e.target.value);\n setRefetchData(refetchData + 1);\n }}\n value={selectedCategoryId}\n themes={themes}\n placeholder={t('filterBy')}\n />\n \n )}\n \n \n \n );\n};\n\nChallengeActionsTable.propTypes = {\n showThemesFilter: PropTypes.bool,\n themes: PropTypes.array,\n fetchDataFunc: PropTypes.func,\n};\n\nChallengeActionsTable.defaultProps = {\n showThemesFilter: false,\n themes: [],\n fetchDataFunc: noop,\n};\n\nexport default ChallengeActionsTable;\n","import React, { useCallback, useEffect } from 'react';\nimport { Grid, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport Button from '../../../common/Button';\nimport { Add } from '@material-ui/icons';\nimport PropTypes from 'prop-types';\nimport ChallengeActionsTable from './ChallengeActionsTable';\nimport { noop } from '../../../utils';\nimport { actionTablePropType } from '../../../actions/propTypes';\nimport {\n CLIENT_PAGINATION_FETCH_LIMIT,\n PIN_ADMIN_VISIBILITY_INCLUDED_FOR_THEME,\n} from '../../../actions/constants';\nimport useStyles from './styles';\nimport {\n challengeEditButtonsCell,\n challengeViewButtonsCell,\n} from '../../ActionsScreen/AdminActionsScreen/constants';\nimport { useHistory } from 'react-router-dom';\n\nconst ChallengeActions = ({\n isEdit,\n onEditActions,\n onRemoveAction,\n data,\n fetchTableData,\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n\n useEffect(() => {\n fetchTableData({ limit: CLIENT_PAGINATION_FETCH_LIMIT });\n }, [fetchTableData]);\n\n const classes = useStyles();\n\n const handleActions = useCallback(\n (id, key) => {\n switch (key) {\n case 'viewActionsAdmin':\n window.open(`/actions/${id}`);\n break;\n case 'editActions':\n history.push(`/actions/${id}/edit`);\n break;\n\n case 'editChallenge':\n onRemoveAction(\n data?.data?.find((action) => action.id === id),\n );\n break;\n\n default:\n alert({ id, key });\n }\n },\n [history, onRemoveAction, data],\n );\n\n return (\n \n \n {t('actions.descriptor')}\n \n \n \n {t('challenge.actions.header')}\n \n \n \n \n \n {isEdit && (\n \n \n \n \n {t('challenge.actions.add')}\n \n \n \n )}\n \n );\n};\n\nChallengeActions.propTypes = {\n isEdit: PropTypes.bool,\n onEditActions: PropTypes.func,\n onRemoveAction: PropTypes.func,\n fetchTableData: PropTypes.func.isRequired,\n data: actionTablePropType.isRequired,\n};\nChallengeActions.defaultProps = {\n isEdit: false,\n onEditActions: noop,\n onRemoveAction: noop,\n fetchTableData: noop,\n};\n\nexport default ChallengeActions;\n","import { Grid, Typography, withStyles } from '@material-ui/core';\nimport { Add } from '@material-ui/icons';\nimport clsx from 'clsx';\nimport React, { useCallback } from 'react';\nimport Button from '../../../../common/Button';\nimport Table from '../../../../common/Table';\nimport { PRIZE_RANK_OPTIONS, prizeButtonsCell } from '../constants';\nimport styles from '../styles';\nconst defaultPrizeImageUrl = require('../../../../assets/images/defaultImage.png');\n\nconst PrizeTable = ({\n classes,\n onEditPrizes,\n edit,\n prizes,\n t,\n can,\n onDeletePrizes,\n}) => {\n const makePrizeColumns = () => [\n {\n accessor: 'imageSizes',\n Cell: ({ value }) => (\n \n \n \n ),\n sortable: false,\n },\n {\n Header: t('challenge.prizeTable.name'),\n accessor: 'name',\n Cell: ({ value }) => (\n
    {value}
    \n ),\n },\n {\n Header: t('challenge.prizeTable.rank'),\n accessor: 'rank',\n Cell: ({ value }) => (\n
    \n {\n PRIZE_RANK_OPTIONS.find((opt) => opt.value === value)\n ?.name\n }\n
    \n ),\n align: 'left',\n },\n {\n Header: t('challenge.prizeTable.description'),\n accessor: 'description',\n Cell: ({ value }) =>
    {value}
    ,\n align: 'left',\n },\n { accessor: 'actions' },\n ];\n\n const prizeColumns = makePrizeColumns();\n\n const handlePrizeActions = useCallback(\n (id, key) => {\n switch (key) {\n case 'editChallengePrizes':\n onEditPrizes(id);\n break;\n\n case 'deleteChallengePrizes':\n onDeletePrizes(id);\n break;\n default:\n alert({ id, key });\n }\n },\n [onEditPrizes, onDeletePrizes],\n );\n\n return (\n \n \n {t('challenge.info.prizes')}\n \n \n {t('challenge.prizeTable.tableDescription')}\n \n \n {edit(can) && (\n \n onEditPrizes('')}\n data-intercom-target=\"addPrizeButton\"\n textColor=\"#fff\"\n >\n \n \n {t('challenge.prizeTable.addPrize')}\n \n \n \n )}\n \n );\n};\n\nexport default withStyles(styles)(PrizeTable);\n","export const DRAFT_CHECKLIST_URL =\n 'https://jb-content.s3.amazonaws.com/Carebug-Live/files/JBE-Take-Action-Checklist-20220829.pdf';\n\nexport const INTERCOM_TARGET_PREFIX = 'updateChallenge';\n","import PropTypes from 'prop-types';\n\nexport const challengeInfoPropType = PropTypes.shape({\n description: PropTypes.string.isRequired,\n rulesType: PropTypes.string.isRequired,\n unit: PropTypes.string.isRequired,\n contentFilterUrl: PropTypes.string.isRequired,\n contentFilterText: PropTypes.string.isRequired,\n howToWin: PropTypes.string.isRequired,\n rules: PropTypes.string.isRequired,\n prizes: PropTypes.array,\n autoJoin: PropTypes.bool.isRequired,\n makeChallengeCategory: PropTypes.bool.isRequired,\n});\n","import React, { useCallback } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { Grid, Switch, Typography, withStyles } from '@material-ui/core';\nimport { Edit } from '@material-ui/icons';\nimport pluralize from 'pluralize';\nimport moment from 'moment';\nimport clsx from 'clsx';\nimport parse from 'html-react-parser';\nimport i18n from 'i18next';\n\nimport styles from './styles';\n\nimport { getTeamItems } from '../../../challenges/selectors';\nimport { Can } from '../../../casl/ability-context';\nimport { getAppImages, noop } from '../../../utils';\nimport Leaderboard from '../../../common/Leaderboard';\nimport IcomoonIcon from '../../../common/IcomoonIcon';\nimport { CHALLENGE_UNIT_USER } from '../../../challenges/constants';\nimport {\n EcoActionsIcon,\n NutritionIcon,\n RemoteIcon2,\n} from '../../../assets/images/svg';\nimport {\n CIVIC_ACTIONS,\n DATE_FORMAT,\n DEFAULT_CONTENT_FILTER_TEXT_KEY,\n DIVERSITY_ACTIONS,\n ECO_ACTIONS,\n FITNESS_ACTIONS,\n NUTRITION_ACTIONS,\n REMOTE_ACTIONS,\n TIME_FORMAT,\n} from './constants';\nimport ChallengeActions from '../ChallengeActions';\nimport PrizeTable from './PrizeTable';\nimport Tooltip from '../../../common/Tooltip';\nimport InfoTooltip from '../../../common/InfoTooltip';\nimport { challengeInfoPropType } from './propTypes';\nimport { INTERCOM_TARGET_PREFIX } from '../../UpdateChallengeScreen/constants';\n\nconst ChallengeInfo = ({\n classes,\n info: {\n description,\n rulesType,\n unit,\n contentFilterText,\n howToWin,\n rules,\n prizes,\n actions,\n autoJoin,\n makeChallengeCategory,\n },\n teamItems,\n duration,\n startDate,\n endDate,\n action,\n t,\n onEditDescription,\n onEditDates,\n onEditHowToWin,\n onEditRules,\n onEditPrizes,\n onDeletePrizes,\n onEditTeam,\n onToggleAutoJoin,\n onToggleChallengeCategory,\n onEditActions,\n onRemoveAction,\n fetchChallengeActionData,\n}) => {\n const edit = (can) => !!can && action === 'edit';\n const handleTeamEditIconClick = useCallback(\n (event, id) => {\n onEditTeam(id);\n },\n [onEditTeam],\n );\n\n const ChallengeTypeIcon = () => {\n switch (contentFilterText) {\n case ECO_ACTIONS:\n return (\n \n );\n case FITNESS_ACTIONS:\n return (\n \n );\n case NUTRITION_ACTIONS:\n return (\n \n );\n case DIVERSITY_ACTIONS:\n return (\n \n );\n case REMOTE_ACTIONS:\n return (\n \n );\n case CIVIC_ACTIONS:\n return (\n \n );\n default:\n return (\n \n );\n }\n };\n return (\n \n \n {(can) => (\n onEditDescription(description)\n : noop\n }\n data-intercom-target=\"Challenge Info Edit Description\"\n >\n {description && (\n \n {parse(description)}\n \n )}\n {edit(can) && (\n \n )}\n \n )}\n \n \n \n \n {rulesType === 'Competitive' ? (\n \n ) : (\n \n )}\n \n \n {rulesType}\n \n \n \n \n {unit === CHALLENGE_UNIT_USER ? (\n \n ) : (\n \n )}\n \n \n {unit === 'User' ? 'Individuals' : unit}\n \n \n \n \n \n \n \n {pluralize(t('day'), duration, true)}\n \n \n\n \n \n \n \n \n {contentFilterText ||\n t(DEFAULT_CONTENT_FILTER_TEXT_KEY)}\n \n \n \n \n \n {(can) => (\n onEditDates(startDate, endDate)\n : noop\n }\n data-intercom-target=\"Challenge Info Edit Start Date\"\n >\n \n {t('Start')}\n {edit(can) && (\n \n )}\n \n \n \n {moment(startDate).format(DATE_FORMAT)}\n \n \n \n {moment(startDate).format(TIME_FORMAT)}\n \n \n )}\n \n \n {(can) => (\n onEditDates(startDate, endDate)\n : noop\n }\n data-intercom-target=\"Challenge Info Edit End Date\"\n >\n \n {t('End')}\n {edit(can) && (\n \n )}\n \n \n \n {moment(endDate).format(DATE_FORMAT)}\n \n \n \n {moment(endDate).format(TIME_FORMAT)}\n \n \n )}\n \n \n {unit === 'Team' ? (\n \n \n {t('challenge.teams')}\n \n \n \n {(can) => (\n a.label.localeCompare(b.label, i18n.language, { numeric: true }) || [])}\n />\n )}\n \n \n \n ) : null}\n {action === 'edit' && (\n <>\n \n \n {t('challenge.info.autoJoin.header')}\n \n \n \n \n onToggleAutoJoin(e.target.checked)\n }\n disabled={unit === 'Team'}\n checked={autoJoin}\n size=\"medium\"\n />\n \n \n {t('challenge.info.autoJoin.description')}\n \n \n {t('challenge.info.makeChallengeCategory.header')}\n \n \n \n onToggleChallengeCategory(e.target.checked)\n }\n checked={makeChallengeCategory}\n size=\"medium\"\n />\n \n {t(\n 'challenge.info.makeChallengeCategory.description',\n )}\n \n \n \n )}\n \n {(can) => (\n \n )}\n \n \n \n {(can) => (\n onEditHowToWin(howToWin) : noop\n }\n data-intercom-target=\"Challenge Info Edit How To Win\"\n >\n \n {t('challenge.info.howToWin')}\n {edit(can) && (\n \n )}\n \n \n {parse(howToWin || '')}\n \n \n )}\n \n {rules && rules.length ? (\n \n {(can) => (\n onEditRules(rules) : noop\n }\n data-intercom-target=\"Challenge Info Edit Rules\"\n >\n \n {t('challenge.info.rules')}\n {edit(can) && (\n \n )}\n \n \n {parse(rules)}\n \n \n )}\n \n ) : null}\n \n );\n};\n\nChallengeInfo.propTypes = {\n classes: PropTypes.object.isRequired,\n info: challengeInfoPropType.isRequired,\n teamItems: PropTypes.array,\n duration: PropTypes.number.isRequired,\n startDate: PropTypes.instanceOf(Date).isRequired,\n endDate: PropTypes.instanceOf(Date).isRequired,\n onEditActions: PropTypes.func,\n onRemoveAction: PropTypes.func,\n onEditDescription: PropTypes.func,\n onEditDates: PropTypes.func,\n onEditHowToWin: PropTypes.func,\n onEditRules: PropTypes.func,\n onEditTeam: PropTypes.func,\n onEditPrizes: PropTypes.func,\n onDeletePrizes: PropTypes.func,\n onToggleAutoJoin: PropTypes.func,\n onToggleChallengeCategory: PropTypes.func,\n fetchChallengeActionData: PropTypes.func,\n action: PropTypes.string,\n t: PropTypes.func.isRequired,\n};\n\nChallengeInfo.defaultProps = {\n teamItems: null,\n action: 'view',\n onEditActions: noop,\n onRemoveAction: noop,\n onEditDescription: noop,\n onEditDates: noop,\n onEditHowToWin: noop,\n onEditRules: noop,\n onEditTeam: noop,\n onEditPrizes: noop,\n onDeletePrizes: noop,\n onToggleAutoJoin: noop,\n onToggleChallengeCategory: noop,\n fetchChallengeActionData: noop,\n};\n\nexport const StyledChallengeInfo = withStyles(styles)(ChallengeInfo);\n\nconst mapStateToProps = (state) => ({\n teamItems: getTeamItems(state),\n});\n\nexport default connect(mapStateToProps)(StyledChallengeInfo);\n","import React, { useCallback, useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { Grid, withStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\n\nimport styles from './styles';\nimport ChallengeHeader from './ChallengeHeader';\nimport ChallengeLeaderboard from './ChallengeLeaderboard';\nimport ChallengeImpact from './ChallengeImpact';\nimport ChallengeInfo from './ChallengeInfo';\n\nimport { dateDifferenceInDays } from '../../utils/dates';\nimport IMAGES from '../../constants/images';\nimport CommonPropTypes from '../../common/propTypes';\nimport { viewChallengeRequested } from '../../challenges/actions';\nimport {\n getChallengeEndDate,\n getChallengeErrors,\n getChallengeIconUrl,\n getChallengeInfo,\n getChallengeName,\n getChallengeParticipationStatus,\n getChallengeStartDate,\n getChallengeTeamsInfo,\n getChallengeTemplateStatus,\n getChallengeUnit,\n getHeadlinePhotoUrl,\n isChallengeLoading,\n} from '../../challenges/selectors';\nimport TabbedSection from '../../common/TabbedSection';\nimport { getActiveCommunityId } from '../../user/selectors';\nimport ErrorList from '../../common/errors/ErrorList';\nimport { useTrackScreenView } from '../../utils/analytics';\nimport { activityDataRequested } from '../../activities/actions';\nimport { ACTIVITIES_FEED_TYPE_CHALLENGE } from '../../activities/constants';\nimport {\n activitiesLoading,\n getActivities,\n getErrors,\n} from '../../activities/selectors';\nimport ActivityCardScroller from '../../common/ActivityCard/ActivityCardScroller';\nimport { CHALLENGE_TEMPLATE_STATUSES } from '../../constants/challenges';\nimport { useRouteMatch } from 'react-router-dom';\nimport { challengeInfoPropType } from './ChallengeInfo/propTypes';\nimport { actionsRequested } from '../../actions/actions';\n\nconst Loader = () => (\n \n \"loader\"\n \n);\n\nconst ViewChallengeScreen = ({\n classes,\n communityId,\n headlinePhotoUrl,\n iconUrl,\n name,\n info,\n startDate,\n endDate,\n participationStatus,\n unit,\n teams,\n isLoading,\n errors,\n loadFunc,\n loadActivities,\n activitiesLoading,\n activityItems,\n status,\n fetchChallengeActionData,\n}) => {\n const {\n params: { challengeId },\n } = useRouteMatch();\n\n useEffect(() => {\n loadFunc({ challengeId, communityId });\n }, [challengeId, communityId, loadFunc]);\n\n useEffect(() => {\n loadActivities(challengeId, communityId);\n }, [challengeId, communityId, loadActivities]);\n\n useTrackScreenView('challenge_view_detail', {\n challenge_id: challengeId,\n });\n\n const fetchChallengeActionsTableData = useCallback(\n (args) => {\n fetchChallengeActionData(communityId, {\n ...args,\n challengeIds: [challengeId],\n });\n },\n [challengeId, communityId, fetchChallengeActionData],\n );\n\n const getSelectedIndex = useCallback(() => {\n return participationStatus === 'joined' ? 0 : 3;\n }, [participationStatus]);\n\n const { t } = useTranslation();\n return (\n \n {!name && isLoading && }\n {errors && (\n \n )}\n {!errors && name && (\n <>\n \n \n \n \n ),\n [t('activity.descriptor')]: (\n \n loadActivities(\n challengeId,\n communityId,\n options,\n )\n }\n items={activityItems}\n />\n ),\n [t('impact.descriptor')]: (\n \n ),\n [t('info')]: (\n \n ),\n }}\n selectedIndex={getSelectedIndex()}\n />\n \n \n \n )}\n \n );\n};\n\nViewChallengeScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n communityId: PropTypes.string.isRequired,\n headlinePhotoUrl: PropTypes.string,\n iconUrl: PropTypes.string,\n name: PropTypes.string,\n startDate: PropTypes.instanceOf(Date),\n endDate: PropTypes.instanceOf(Date),\n participationStatus: PropTypes.oneOf(['joined', 'unjoined']),\n unit: PropTypes.oneOf(['User', 'Team']),\n teams: PropTypes.array,\n isLoading: PropTypes.bool.isRequired,\n errors: CommonPropTypes.errors,\n loadFunc: PropTypes.func.isRequired,\n loadActivities: PropTypes.func.isRequired,\n activitiesLoading: PropTypes.bool,\n activityItems: PropTypes.array,\n info: challengeInfoPropType,\n status: PropTypes.oneOf(CHALLENGE_TEMPLATE_STATUSES).isRequired,\n fetchChallengeActionData: PropTypes.func.isRequired,\n};\n\nViewChallengeScreen.defaultProps = {\n headlinePhotoUrl: null,\n iconUrl: null,\n name: null,\n startDate: null,\n endDate: null,\n participationStatus: null,\n unit: null,\n teams: null,\n errors: null,\n activityItems: [],\n activitiesLoading: false,\n info: {},\n};\n\nconst StyledViewChallengeScreen = withStyles(styles)(ViewChallengeScreen);\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n headlinePhotoUrl: getHeadlinePhotoUrl(state),\n iconUrl: getChallengeIconUrl(state),\n name: getChallengeName(state),\n startDate: getChallengeStartDate(state),\n endDate: getChallengeEndDate(state),\n info: getChallengeInfo(state),\n participationStatus: getChallengeParticipationStatus(state),\n unit: getChallengeUnit(state),\n teams: getChallengeTeamsInfo(state),\n isLoading: isChallengeLoading(state),\n status: getChallengeTemplateStatus(state),\n errors: getChallengeErrors(state),\n activitiesLoading: activitiesLoading(state, ACTIVITIES_FEED_TYPE_CHALLENGE),\n activitiesErrors: getErrors(state),\n activityItems: getActivities(state, ACTIVITIES_FEED_TYPE_CHALLENGE),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n loadFunc: ({ challengeId, communityId }) =>\n dispatch(viewChallengeRequested({ challengeId, communityId })),\n loadActivities: (challengeId, communityId, options) =>\n dispatch(\n activityDataRequested(ACTIVITIES_FEED_TYPE_CHALLENGE, {\n challengeId,\n communityId,\n ...options,\n }),\n ),\n fetchChallengeActionData: (communityId, filters) =>\n dispatch(actionsRequested(communityId, filters)),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledViewChallengeScreen);\n","const styles = (theme) => ({\n title: {\n fontSize: '18px',\n fontWeight: 600,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n },\n helpLink: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n helpIcon: {\n color: theme.custom.tooltipIconColor,\n marginLeft: '3px',\n\n '&:hover': {\n cursor: 'pointer',\n },\n },\n label: {\n marginBottom: '5px',\n fontWeight: 700,\n },\n textarea: {\n width: '100%',\n marginBottom: '15px',\n padding: '10px 16px',\n border: '1px solid',\n borderColor: theme.palette.primary.main,\n borderRadius: '8px',\n backgroundColor: theme.custom.inputBackground,\n fontSize: '14px',\n\n '&:before, &:after': {\n display: 'none',\n },\n\n '&:hover': {\n backgroundColor: theme.custom.bgLightColor,\n },\n\n '&:active&:not(&:disabled)': {\n backgroundColor: theme.palette.common.white,\n },\n\n '&:focus': {\n borderColor: theme.palette.primary.dark,\n },\n },\n});\n\nexport default styles;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport {\n withStyles,\n Typography,\n Grid,\n TextareaAutosize,\n} from '@material-ui/core';\nimport { Help } from '@material-ui/icons';\n\nimport styles from './styles';\n\nimport ConfirmModal from '../ConfirmModal';\nimport Tooltip from '../Tooltip';\n\nconst ChallengeDescription = ({\n classes,\n isOpen,\n setOpen,\n onClose,\n onCancel,\n onConfirm,\n description,\n}) => {\n const { t } = useTranslation();\n\n const Title = () => (\n \n {t('challenge.descriptionFieldTitle')}\n \n \n \n \n );\n\n const [newDescription, setNewDescription] = useState('');\n useEffect(() => {\n setNewDescription(description);\n }, [description, setNewDescription]);\n\n const handleClose = () => {\n onClose();\n setOpen(false);\n };\n const handleCancel = () => {\n onCancel();\n setOpen(false);\n };\n const handleConfirm = () => onConfirm(newDescription);\n\n const onTextChange = (event) => setNewDescription(event.target.value);\n\n return (\n }\n confirmBtnText={t('OK')}\n confirmBtnType=\"accent\"\n cancelBtnText={t('cancel')}\n cancelBtnType=\"default\"\n onClose={handleClose}\n onCancel={handleCancel}\n onConfirm={handleConfirm}\n >\n \n \n {t('challenge.descriptionTitle')}\n \n \n \n \n \n \n );\n};\n\nChallengeDescription.propTypes = {\n classes: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n setOpen: PropTypes.func.isRequired,\n onClose: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n onConfirm: PropTypes.func.isRequired,\n description: PropTypes.string.isRequired,\n};\n\nexport default withStyles(styles)(ChallengeDescription);\n","const styles = (theme) => ({\n container: {\n marginBottom: '15px',\n },\n column: {\n width: '50%',\n paddingLeft: '8px',\n paddingRight: '8px',\n },\n title: {\n fontSize: '18px',\n fontWeight: 600,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n },\n helpLink: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n helpIcon: {\n color: theme.custom.tooltipIconColor,\n marginLeft: '3px',\n\n '&:hover': {\n cursor: 'pointer',\n },\n },\n label: {\n marginBottom: '5px',\n fontWeight: 700,\n },\n infoIcon: {\n color: theme.custom.tooltipIconColor,\n marginLeft: '3px',\n\n '&:hover': {\n cursor: 'pointer',\n },\n },\n});\n\nexport default styles;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, withStyles } from '@material-ui/core';\nimport moment from 'moment';\n\nimport styles from './styles';\n\nimport ConfirmModal from '../ConfirmModal';\nimport DatePicker from '../DatePicker';\nimport { getTimezoneAbbrev } from '../../utils/dates';\nimport { DateTimePicker } from '@material-ui/pickers';\nimport { DATETIME_FORMAT_FOR_DATETIME_PICKERS } from '../../constants/dates';\nimport {\n CHALLENGE_TEMPLATE_STATUS_DRAFT,\n CHALLENGE_TEMPLATE_STATUSES,\n} from '../../constants/challenges';\nimport FieldLabel from '../FieldLabel';\nimport ModalTitle from '../ModalTitle';\n\nconst ChallengeDuration = ({\n classes,\n challengeStatus,\n isOpen,\n setOpen,\n startDate: initialStartDate,\n endDate: initialEndDate,\n onClose,\n onCancel,\n onConfirm,\n}) => {\n const { t, i18n } = useTranslation();\n\n const [startDate, setStartDate] = useState(moment());\n const [endDate, setEndDate] = useState(moment());\n useEffect(() => {\n setStartDate(moment(initialStartDate));\n setEndDate(moment(initialEndDate));\n }, [initialStartDate, initialEndDate, setStartDate, setEndDate]);\n\n const [startDateValid, setStartDateValid] = useState(true);\n const [endDateValid, setEndDateValid] = useState(true);\n\n const handleClose = () => {\n onClose();\n setOpen(false);\n };\n const handleCancel = () => {\n onCancel();\n setOpen(false);\n };\n const handleConfirm = () => onConfirm({ startDate, endDate });\n\n const tzCode = getTimezoneAbbrev(i18n.language);\n\n /*\n * If the challenge start date is in the past and it's not a draft\n * We allow editing of start and end date\n */\n const alreadyStarted =\n moment().isAfter(startDate) &&\n challengeStatus !== CHALLENGE_TEMPLATE_STATUS_DRAFT;\n\n return (\n \n }\n confirmBtnText={t('OK')}\n confirmBtnType=\"accent\"\n confirmBtnDisabled={!startDateValid || !endDateValid}\n cancelBtnText={t('cancel')}\n cancelBtnType=\"default\"\n onClose={handleClose}\n onCancel={handleCancel}\n onConfirm={handleConfirm}\n >\n \n \n \n \n \n errorMsg &&\n (alreadyStarted || setStartDateValid(false))\n }\n onAccept={() => setStartDateValid(true)}\n strictCompareDates\n />\n \n {alreadyStarted && (\n {t('challenge.durationFieldLocked')}\n )}\n \n \n \n \n \n errorMsg && setEndDateValid(false)\n }\n onAccept={() => setEndDateValid(true)}\n />\n \n \n \n \n );\n};\n\nChallengeDuration.propTypes = {\n classes: PropTypes.object.isRequired,\n challengeStatus: PropTypes.oneOf(CHALLENGE_TEMPLATE_STATUSES).isRequired,\n isOpen: PropTypes.bool.isRequired,\n setOpen: PropTypes.func.isRequired,\n startDate: PropTypes.instanceOf(Date).isRequired,\n endDate: PropTypes.instanceOf(Date).isRequired,\n onClose: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n onConfirm: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles)(ChallengeDuration);\n","import React, { useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid } from '@material-ui/core';\n\nimport ConfirmModal from '../ConfirmModal';\nimport ModalTitle from '../ModalTitle';\nimport { BUTTON_ACCENT_COLOR, BUTTON_DEFAULT_COLOR } from '../Button/constants';\nimport FieldLabel from '../FieldLabel';\nimport Textarea from '../Textarea';\nimport { noop } from '../../utils';\n\nconst UpdateTextModal = ({\n isOpen,\n setOpen,\n title,\n label,\n text: initialText,\n textareaProps,\n onClose,\n onCancel,\n onConfirm,\n}) => {\n const { t } = useTranslation();\n\n const [text, setText] = useState(initialText);\n const [key, setKey] = useState(0);\n const clearState = useCallback(() => {\n setText(initialText);\n setKey(key + 1);\n }, [key, initialText]);\n\n const handleClose = useCallback(() => {\n onClose();\n setOpen(false);\n clearState();\n }, [onClose, setOpen, clearState]);\n\n const handleCancel = useCallback(() => {\n onCancel();\n setOpen(false);\n clearState();\n }, [onCancel, setOpen, clearState]);\n\n const handleConfirm = useCallback(() => {\n onConfirm(text);\n clearState();\n }, [onConfirm, text, clearState]);\n\n const handleTextChange = useCallback(\n (event) => {\n setText(event.target.value);\n },\n [setText],\n );\n\n return (\n \n }\n confirmBtnText={t('OK')}\n confirmBtnType={BUTTON_ACCENT_COLOR}\n cancelBtnText={t('cancel')}\n cancelBtnType={BUTTON_DEFAULT_COLOR}\n onClose={handleClose}\n onCancel={handleCancel}\n onConfirm={handleConfirm}\n >\n \n \n \n \n \n \n \n \n \n );\n};\n\nUpdateTextModal.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n setOpen: PropTypes.func.isRequired,\n title: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired,\n textareaProps: PropTypes.object,\n onClose: PropTypes.func,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func.isRequired,\n};\n\nconst DEFAULT_TEXTAREA_PROPS = {\n rowsMin: 5,\n};\n\nUpdateTextModal.defaultProps = {\n onClose: noop,\n onCancel: noop,\n textareaProps: DEFAULT_TEXTAREA_PROPS,\n};\n\nexport default UpdateTextModal;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport { noop } from '../../utils';\nimport UpdateTextModal from '../UpdateTextModal';\n\nconst ChallengeHowToWin = ({\n isOpen,\n setOpen,\n text,\n onClose,\n onCancel,\n onConfirm,\n}) => {\n const { t } = useTranslation();\n\n return (\n \n );\n};\n\nChallengeHowToWin.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n setOpen: PropTypes.func.isRequired,\n text: PropTypes.string.isRequired,\n onClose: PropTypes.func,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func.isRequired,\n};\n\nChallengeHowToWin.defaultProps = {\n onClose: noop,\n onCancel: noop,\n};\n\nexport default ChallengeHowToWin;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport { noop } from '../../utils';\nimport UpdateTextModal from '../UpdateTextModal';\n\nconst ChallengeRules = ({\n isOpen,\n setOpen,\n text,\n onClose,\n onCancel,\n onConfirm,\n}) => {\n const { t } = useTranslation();\n\n return (\n \n );\n};\n\nChallengeRules.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n setOpen: PropTypes.func.isRequired,\n text: PropTypes.string.isRequired,\n onClose: PropTypes.func,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func.isRequired,\n};\n\nChallengeRules.defaultProps = {\n onClose: noop,\n onCancel: noop,\n};\n\nexport default ChallengeRules;\n","const styles = (theme) => ({\n title: {\n fontSize: '18px',\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n },\n label: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n fontWeight: 700,\n },\n tooltipIcon: {\n marginLeft: '3px',\n color: 'rgba(51,51,51,.25)',\n cursor: 'pointer',\n },\n charsLeft: {\n marginTop: '5px',\n marginBottom: '10px',\n fontSize: '85%',\n color: '#737373',\n },\n errorBelow: {\n marginTop: '10px',\n marginBottom: '20px',\n color: theme.palette.error.main,\n },\n});\n\nexport default styles;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n charsLeft: {\n marginTop: '5px',\n marginBottom: '10px',\n fontSize: '85%',\n color: '#737373',\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, Input } from '@material-ui/core';\n\nimport useStyles from './styles';\nimport { useTranslation } from 'react-i18next';\n\nconst LimitedLengthInput = ({\n charactersLeft,\n maxCharacters,\n customStyle,\n ...restProps\n}) => {\n const classes = useStyles();\n const { t } = useTranslation();\n return (\n <>\n \n \n {maxCharacters === null\n ? `${charactersLeft} ${t('charactersRemaining')}`\n : `${charactersLeft}/${maxCharacters}`}\n \n \n );\n};\n\nLimitedLengthInput.propTypes = {\n charactersLeft: PropTypes.number.isRequired,\n maxCharacters: PropTypes.number,\n customStyle: PropTypes.object,\n};\n\nLimitedLengthInput.defaultProps = {\n maxCharacters: null,\n customStyle: {},\n};\n\nexport default LimitedLengthInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { withStyles, Grid, Typography } from '@material-ui/core';\nimport { Help, InfoOutlined } from '@material-ui/icons';\nimport * as Yup from 'yup';\nimport { Formik, Form } from 'formik';\n\nimport styles from './styles';\n\nimport Tooltip from '../Tooltip';\nimport ConfirmModal from '../ConfirmModal';\nimport FormInput from '../Form/FormInput';\nimport { noop } from '../../utils';\nimport LimitedLengthInput from '../LimitedLengthInput';\nimport {\n MAX_NAME_LENGTH,\n MIN_NAME_LENGTH,\n} from '../../screens/CreateChallengeScreen/CustomizeChallenge/constants';\n\nconst ChallengeName = ({\n classes,\n isOpen,\n setOpen,\n name,\n onClose,\n onCancel,\n changeNameFunc,\n}) => {\n const { t } = useTranslation();\n\n const validationSchema = Yup.object().shape({\n name: Yup.string()\n .min(\n MIN_NAME_LENGTH,\n t('challenge.name.length.min', { count: MIN_NAME_LENGTH }),\n )\n .max(MAX_NAME_LENGTH),\n });\n\n const handleClose = (formik) => {\n const { resetForm } = formik;\n setOpen(false);\n onClose();\n resetForm();\n };\n const handleCancel = (formik) => {\n const { resetForm } = formik;\n setOpen(false);\n onCancel();\n resetForm();\n };\n\n const handleSubmit = (values) => changeNameFunc(values.name);\n\n return (\n \n {(formikProps) => {\n const handleConfirm = () => {\n if (!formikProps.errors.name) {\n changeNameFunc(formikProps.values.name);\n formikProps.resetForm();\n }\n };\n\n const handleChange = (event) => {\n if (event.target.value.length <= MAX_NAME_LENGTH) {\n formikProps.handleChange(event);\n }\n };\n return (\n \n {t('challenge.name.edit')}\n \n {t('viewDocs')}\n \n }\n placement=\"right\"\n >\n \n \n \n }\n confirmBtnText={t('OK')}\n confirmBtnType=\"accent\"\n confirmBtnDisabled={!formikProps.isValid}\n cancelBtnText={t('cancel')}\n cancelBtnType=\"default\"\n onClose={() => handleClose(formikProps)}\n onCancel={() => handleCancel(formikProps)}\n onConfirm={handleConfirm}\n >\n \n \n \n {t('challenge.name.descriptor')}\n \n {t('challenge.name.tooltip')}\n \n }\n placement=\"right\"\n >\n \n \n \n \n \n
    \n \n \n
    \n
    \n \n );\n }}\n \n );\n};\n\nChallengeName.propTypes = {\n classes: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n setOpen: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n onClose: PropTypes.func,\n onCancel: PropTypes.func,\n changeNameFunc: PropTypes.func.isRequired,\n};\n\nChallengeName.defaultProps = {\n onClose: noop,\n onCancel: noop,\n};\n\nexport default withStyles(styles)(ChallengeName);\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { Grid } from '@material-ui/core';\n\nimport ConfirmModal from '../ConfirmModal';\nimport ModalTitle from '../ModalTitle';\nimport { BUTTON_ACCENT_COLOR, BUTTON_DEFAULT_COLOR } from '../Button/constants';\nimport Photo from '../Photo';\nimport CommonPropTypes from '../propTypes';\nimport { noop } from '../../utils';\nimport { getActiveCommunityId } from '../../user/selectors';\nimport {\n getImageUploadErrors,\n getImageUploadResponse,\n isImageUploadRequestPending,\n} from '../../image/selectors';\nimport { imageUploadRequested } from '../../image/actions';\n\nconst UpdateIcon = ({\n communityId,\n isOpen,\n setOpen,\n icon,\n requestImageUpload,\n uploadRequestPending,\n uploadErrors,\n uploadResponse,\n onClose,\n onCancel,\n onConfirm,\n}) => {\n const { t } = useTranslation();\n\n const [iconData, setIconData] = useState(null);\n const [uploadedIcon, setUploadedIcon] = useState(null);\n\n useEffect(() => {\n if (iconData != null) {\n requestImageUpload({ communityId, file: iconData });\n }\n }, [requestImageUpload, communityId, iconData]);\n\n useEffect(() => {\n if (\n !uploadRequestPending &&\n uploadErrors == null &&\n uploadResponse != null\n ) {\n setUploadedIcon(uploadResponse);\n }\n }, [uploadRequestPending, uploadErrors, uploadResponse, setUploadedIcon]);\n\n const handleClose = useCallback(() => {\n onClose();\n setOpen(false);\n }, [onClose, setOpen]);\n\n const handleCancel = useCallback(() => {\n onCancel();\n setOpen(false);\n }, [onCancel, setOpen]);\n\n const handleConfirm = useCallback(() => {\n onConfirm(uploadedIcon);\n }, [onConfirm, uploadedIcon]);\n\n return (\n \n }\n confirmBtnText={t('OK')}\n confirmBtnType={BUTTON_ACCENT_COLOR}\n cancelBtnText={t('cancel')}\n cancelBtnType={BUTTON_DEFAULT_COLOR}\n onClose={handleClose}\n onCancel={handleCancel}\n onConfirm={handleConfirm}\n >\n \n \n \n \n );\n};\n\nUpdateIcon.propTypes = {\n communityId: PropTypes.string.isRequired,\n isOpen: PropTypes.bool.isRequired,\n setOpen: PropTypes.func.isRequired,\n icon: PropTypes.string.isRequired,\n requestImageUpload: PropTypes.func.isRequired,\n uploadRequestPending: PropTypes.bool.isRequired,\n uploadErrors: CommonPropTypes.errors,\n uploadResponse: PropTypes.object,\n onClose: PropTypes.func,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func.isRequired,\n};\n\nUpdateIcon.defaultProps = {\n uploadErrors: null,\n uploadResponse: null,\n onClose: noop,\n onCancel: noop,\n};\n\nexport { UpdateIcon as DumbUpdateIcon };\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n uploadRequestPending: isImageUploadRequestPending(state),\n uploadErrors: getImageUploadErrors(state),\n uploadResponse: getImageUploadResponse(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n requestImageUpload: (request) => dispatch(imageUploadRequested(request)),\n});\n\nconst ConnectedUpdateIcon = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(UpdateIcon);\nexport default ConnectedUpdateIcon;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n form: {\n width: '100%',\n },\n}));\n\nexport default useStyles;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { noop } from '../../../utils';\nimport { Form, Formik } from 'formik';\nimport * as Yup from 'yup';\n\nimport useStyles from './styles';\n\nimport ConfirmModal from '../../../common/ConfirmModal';\nimport {\n BUTTON_ACCENT_COLOR,\n BUTTON_DEFAULT_COLOR,\n} from '../../../common/Button/constants';\nimport ModalTitle from '../../../common/ModalTitle';\nimport { Grid } from '@material-ui/core';\nimport Photo from '../../../common/Photo';\nimport FieldLabel from '../../../common/FieldLabel';\nimport FormInput from '../../../common/Form/FormInput';\nimport Textarea from '../../../common/Textarea';\nimport { getActiveCommunityId } from '../../../user/selectors';\nimport {\n getImageUploadErrors,\n getImageUploadResponse,\n isImageUploadRequestPending,\n} from '../../../image/selectors';\nimport { imageUploadRequested } from '../../../image/actions';\nimport CommonPropTypes from '../../../common/propTypes';\n\nconst UpdateTeam = ({\n communityId,\n isOpen,\n setOpen,\n name: initialName,\n headline: initialHeadline,\n photo: initialPhoto,\n requestImageUpload,\n isImageUploading,\n imageUploadErrors,\n imageUploadResponse,\n onClose,\n onCancel,\n onConfirm,\n}) => {\n const { t } = useTranslation();\n const classes = useStyles();\n\n const [imageData, setImageData] = useState(null);\n const [imageSizes, setImageSizes] = useState(null);\n\n useEffect(() => {\n if (imageData != null) {\n requestImageUpload({ communityId, file: imageData });\n }\n }, [imageData, requestImageUpload, communityId]);\n\n useEffect(() => {\n if (\n !isImageUploading &&\n imageUploadErrors == null &&\n imageUploadResponse != null\n ) {\n setImageSizes(imageUploadResponse);\n }\n }, [\n isImageUploading,\n imageUploadErrors,\n imageUploadResponse,\n setImageSizes,\n ]);\n\n const handleClose = useCallback(() => {\n onClose();\n setOpen(false);\n }, [onClose, setOpen]);\n\n const handleCancel = useCallback(() => {\n onCancel();\n setOpen(false);\n }, [onCancel, setOpen]);\n\n const handleConfirm = useCallback(\n (formikProps) => {\n const team = {\n name: formikProps.values.name,\n headline: formikProps.values.headline,\n image: imageSizes?.[0]?.url || initialPhoto,\n };\n if (imageSizes !== null) {\n team.updateImage = { sizes: imageSizes };\n }\n onConfirm(team);\n },\n [onConfirm, imageSizes, initialPhoto],\n );\n\n const initialValues = useMemo(\n () => ({\n name: initialName,\n headline: initialHeadline,\n }),\n [initialName, initialHeadline],\n );\n\n const validationSchema = useMemo(\n () =>\n Yup.object().shape({\n name: Yup.string().required(\n t('challengeTeam.validationRequiredName'),\n ),\n }),\n [t],\n );\n\n return (\n \n {(formikProps) => (\n \n }\n confirmBtnText={t('OK')}\n confirmBtnType={BUTTON_ACCENT_COLOR}\n confirmBtnDisabled={!formikProps.isValid}\n cancelBtnText={t('cancel')}\n cancelBtnType={BUTTON_DEFAULT_COLOR}\n onClose={handleClose}\n onCancel={handleCancel}\n onConfirm={() => handleConfirm(formikProps)}\n >\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n \n );\n};\n\nUpdateTeam.propTypes = {\n communityId: PropTypes.string.isRequired,\n isOpen: PropTypes.bool.isRequired,\n setOpen: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n headline: PropTypes.string.isRequired,\n photo: PropTypes.string.isRequired,\n requestImageUpload: PropTypes.func.isRequired,\n isImageUploading: PropTypes.bool.isRequired,\n imageUploadErrors: CommonPropTypes.errors,\n imageUploadResponse: PropTypes.object,\n onClose: PropTypes.func,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func.isRequired,\n};\n\nUpdateTeam.defaultProps = {\n imageUploadErrors: null,\n imageUploadResponse: null,\n onClose: noop,\n onCancel: noop,\n};\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n imageUploading: isImageUploadRequestPending(state),\n imageUploadErrors: getImageUploadErrors(state),\n imageUploadResponse: getImageUploadResponse(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n requestImageUpload: (request) => dispatch(imageUploadRequested(request)),\n});\n\nconst ConnectedUpdateTeam = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(UpdateTeam);\n\nexport default ConnectedUpdateTeam;\n","import { createSelector } from 'reselect';\n\nexport const getUpdateChallengeState = (state) => state.updateChallenge || {};\n\nexport const isSaveInProgress = createSelector(\n getUpdateChallengeState,\n (updateChallenge) => updateChallenge.saveInProgress,\n);\n\nexport const isSaveSuccessful = createSelector(\n getUpdateChallengeState,\n (updateChallenge) => updateChallenge.saveSuccessful,\n);\n\nexport const getSaveErrors = createSelector(\n getUpdateChallengeState,\n (updateChallenge) => updateChallenge.errors || [],\n);\n\nexport const getPublishStatus = createSelector(\n getUpdateChallengeState,\n (updateChallenge) => updateChallenge.publish,\n);\n","const styles = (theme) => ({\n buttonText: {\n justifyContent: 'center',\n marginTop: '5px',\n },\n inputRow: {\n margin: '10px 0px 0px 0px',\n },\n toggleText: {\n color: theme.palette.primary.main,\n fontWeight: 700,\n fontSize: 14,\n },\n toggle: {\n zIndex: 2,\n },\n asteriskRequired: {\n fontSize: '12px',\n color: theme.palette.disabled.main,\n flexWrap: 'wrap',\n },\n dropDown: {\n zIndex: 1,\n top: '-54px',\n padding: '0px 15px',\n },\n dropDownContainer: {\n marginBottom: '-54px',\n },\n});\n\nexport default styles;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n ...Object.keys(theme.shineAdmin.textarea)\n .filter((key) => key !== 'padding')\n .reduce((obj, key) => {\n obj[key] = theme.shineAdmin.textarea[key];\n return obj;\n }, {}),\n marginBottom: '15px',\n padding: '10px 16px',\n\n '&:before, &:after': {\n display: 'none',\n },\n\n '&:hover': {\n backgroundColor: theme.custom.bgLightColor,\n },\n\n '&:active:not(.Mui-disabled)': {\n backgroundColor: theme.palette.common.white,\n },\n\n '&.Mui-focused': {\n borderColor: theme.palette.primary.dark,\n },\n },\n input: {\n height: '24px',\n padding: 0,\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport { Input as InputUI } from '@material-ui/core';\n\nimport useStyles from './styles';\n\nconst Input = (props) => {\n const classes = useStyles();\n return (\n \n {props.children}\n \n );\n};\n\nexport default Input;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport {\n Grid,\n MenuItem,\n Switch,\n TextField,\n Typography,\n withStyles,\n} from '@material-ui/core';\nimport ConfirmModal from '../../../common/ConfirmModal';\nimport { BUTTON_DEFAULT_COLOR } from '../../../common/Button/constants';\nimport ImageCaptionForm from '../../../common/ImageCaptionForm';\nimport styles from './styles';\nimport FieldLabel from '../../../common/FieldLabel';\nimport Input from '../../../common/ImageCaptionForm/Input';\nimport Textarea from '../../../common/Textarea';\nimport theme from '../../../theme';\nimport { PRIZE_RANK_OPTIONS } from '../ChallengeInfo/constants';\nimport {\n CHALLENGE_UNIT_TEAM,\n CHALLENGE_UNIT_USER,\n} from '../../../challenges/constants';\nimport FormInput from '../../../common/Form/FormInput';\nimport { trackEvent } from '../../../utils/analytics';\nimport { EVENT_CHALLENGE_PRIZE_ADDED } from '../../../constants/analyticsEvents';\n\nconst PrizeModal = ({\n classes,\n isOpen,\n onClose,\n onCancel,\n onConfirm,\n prizes,\n id,\n isTeamChallenge,\n challengeId,\n}) => {\n const { t } = useTranslation();\n const [isChecked, setChecked] = useState(false);\n\n const newPrize = () => {\n return {\n name: '',\n description: '',\n imageSizes: [],\n rank: 'Other',\n numberOfWinners: 1,\n prizeUnit: '',\n };\n };\n\n const [prize, setPrize] = useState(newPrize());\n\n const prizeUnitOptions = [CHALLENGE_UNIT_USER, CHALLENGE_UNIT_TEAM];\n\n useEffect(() => {\n if (isOpen) {\n setPrize(id ? prizes.find((prize) => prize.id === id) : newPrize());\n }\n }, [isOpen, prizes, id]);\n\n const setValue = useCallback(\n (value, field) => {\n setPrize({\n ...prize,\n [field]: value,\n });\n },\n [prize],\n );\n\n const showWinnerToggle = false;\n\n return (\n {\n if (!prize?.id) {\n trackEvent(EVENT_CHALLENGE_PRIZE_ADDED, {\n challenge_id: challengeId,\n });\n }\n onConfirm(\n prize?.id\n ? prizes.map((currentPrize) => {\n return currentPrize.id === id\n ? prize\n : currentPrize;\n })\n : [...prizes, prize],\n );\n }}\n confirmBtnType=\"success\"\n centeredButtons\n cancelBtnHidden\n confirmBtnColor={theme.palette.primary.main}\n confirmBtnDisabled={!prize.name}\n fullWidth\n maxWidth=\"md\"\n >\n {prize && (\n \n \n \n setValue(sizes, 'imageSizes')\n }\n imageLabel={t('challenge.prizeModal.image')}\n imageTooltipText={t(\n 'challenge.prizeModal.imageTooltip',\n )}\n title={prize.name}\n handleTitleChange={(e) => {\n setValue(e.target.value, 'name');\n }}\n titleLabel={t('challenge.prizeModal.title') + '*'}\n titlePlaceholder={t('name')}\n description={prize.description}\n handleDescriptionChange={(e) =>\n setValue(e.target.value, 'description')\n }\n descriptionLabel={t(\n 'challenge.prizeModal.description',\n )}\n descriptionPlaceholder={t('description')}\n />\n \n \n \n \n \n \n \n \n \n setValue(e.target.value, 'rank')\n }\n InputProps={{ disableUnderline: true }}\n fullWidth\n value={prize.rank}\n select\n placeholder={t(\n 'challenge.prizeModal.dropdownPlaceholder',\n )}\n className={classes.dropDown}\n >\n {PRIZE_RANK_OPTIONS.map((option, index) => (\n \n {option.name}\n \n ))}\n \n \n \n \n \n \n setValue(\n parseInt(e.target.value),\n 'numberOfWinners',\n )\n }\n placeholder={t(\n 'challenge.prizeModal.dropdownPlaceholder',\n )}\n />\n \n \n \n {isTeamChallenge && (\n <>\n \n \n \n \n \n \n setValue(\n e.target.value,\n 'prizeUnit',\n )\n }\n InputProps={{\n disableUnderline: true,\n }}\n fullWidth\n value={prize.prizeUnit}\n select\n placeholder={t(\n 'challenge.prizeModal.dropdownPlaceholder',\n )}\n className={classes.dropDown}\n >\n {prizeUnitOptions.map(\n (option, index) => (\n \n {option}\n \n ),\n )}\n \n \n \n )}\n \n {showWinnerToggle && (\n <>\n \n \n {t(\n 'challenge.prizeModal.toggleDescription',\n )}\n \n setChecked(!isChecked)}\n />\n \n \n \n \n \n \n \n setValue(\n e.target.value,\n 'winnerMessageTitle',\n )\n }\n placeholder={t(\n 'challenge.prizeModal.winnerTitlePlaceholder',\n )}\n />\n \n \n \n \n \n \n setValue(\n e.target.value,\n 'winnerMessageBody',\n )\n }\n placeholder={t('description')}\n />\n \n \n \n )}\n \n \n {t('onBoarding.asteriskRequired')}\n \n \n \n \n )}\n \n );\n};\n\nPrizeModal.propTypes = {\n classes: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n onConfirm: PropTypes.func.isRequired,\n prizes: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n description: PropTypes.string,\n imageUrl: PropTypes.string,\n }),\n ),\n id: PropTypes.string,\n isTeamChallenge: PropTypes.bool,\n challengeId: PropTypes.string,\n};\n\nPrizeModal.defaultProps = {\n prizes: [],\n id: '',\n isTeamChallenge: false,\n challengeId: '',\n};\n\nexport default withStyles(styles)(PrizeModal);\n","const styles = (theme) => ({\n container: {\n paddingBottom: '32px',\n },\n editingBanner: {},\n main: {\n maxWidth: theme.custom.mainContentWidth,\n width: '100%',\n paddingLeft: theme.custom.mainContentHorizontalPadding,\n paddingRight: theme.custom.mainContentHorizontalPadding,\n },\n controls: {\n marginTop: '26px',\n },\n infoButtonRoot: {\n paddingTop: '10px',\n paddingBottom: '10px',\n paddingRight: '12px',\n paddingLeft: '12px',\n borderRadius: '8px',\n },\n infoIcon: {\n color: theme.palette.primary.main,\n\n '&:hover': {\n cursor: 'pointer',\n },\n },\n buttonContainer: {\n display: 'flex',\n width: '100%',\n },\n button: {\n flexGrow: 1,\n fontSize: '18px',\n borderRadius: '8px',\n },\n buttonIcon: {\n marginRight: '3px',\n },\n banner: {\n marginTop: 26,\n },\n buttonDiscard: {\n flexGrow: 1,\n fontSize: '18px',\n border: '2px',\n borderStyle: 'solid',\n borderColor: theme.palette.error.main,\n color: theme.palette.error.main,\n borderRadius: '8px',\n '&:disabled': {\n color: theme.palette.error.main,\n },\n },\n buttonOutlined: {\n flexGrow: 1,\n fontSize: '18px',\n border: '2px',\n borderStyle: 'solid',\n borderRadius: '8px',\n borderColor: theme.palette.primary.main,\n color: theme.palette.primary.main,\n '&:disabled': {\n border: '2px',\n borderStyle: 'solid',\n borderColor: theme.palette.primary.main,\n color: theme.palette.primary.main,\n },\n },\n confirmationText: {\n marginBottom: '30px',\n fontSize: '14px',\n },\n infoText: {\n color: theme.custom.textDarkSecondaryMutedColor,\n fontSize: '14px',\n },\n textContainer: {\n display: 'flex',\n flexDirection: 'column',\n },\n});\n\nexport default styles;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { withStyles } from '@material-ui/core';\nimport ConfirmModal from '../../../common/ConfirmModal';\nimport { BUTTON_DEFAULT_COLOR } from '../../../common/Button/constants';\nimport styles from '../ChallengeInfo/styles';\nimport theme from '../../../theme';\nimport ChallengeActionsTable from './ChallengeActionsTable';\nimport { actionTablePropType } from '../../../actions/propTypes';\nimport { challengeAddButtonsCell } from '../../ActionsScreen/AdminActionsScreen/constants';\nimport { PIN_ADMIN_VISIBILITY_ALL_INCLUDED } from '../../../actions/constants';\nimport useStyles from './styles';\n\nconst ChallengeActionsModal = ({\n isOpen,\n onClose,\n onCancel,\n onConfirm,\n fetchActions,\n actions,\n themes,\n onAddAction,\n}) => {\n const { t } = useTranslation();\n\n const classes = useStyles();\n\n const onButtonsCell = useCallback(\n (id, key) => {\n switch (key) {\n case 'editChallenge':\n onAddAction(\n actions?.data?.find((action) => action.id === id),\n );\n break;\n default:\n break;\n }\n },\n [actions, onAddAction],\n );\n\n return (\n \n {isOpen && (\n \n )}\n \n );\n};\n\nChallengeActionsModal.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n onConfirm: PropTypes.func.isRequired,\n fetchActions: PropTypes.func.isRequired,\n actions: actionTablePropType.isRequired,\n themes: PropTypes.array,\n onAddAction: PropTypes.func.isRequired,\n};\n\nChallengeActionsModal.defaultProps = {\n themes: [],\n};\n\nexport default withStyles(styles)(ChallengeActionsModal);\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Grid,\n Typography,\n useTheme,\n withStyles,\n useMediaQuery,\n} from '@material-ui/core';\nimport { Prompt, useHistory, useRouteMatch } from 'react-router-dom';\nimport {\n getChallengeEndDate,\n getChallengeErrors,\n getChallengeIconUrl,\n getChallengeInfo,\n getChallengeName,\n getChallengeStartDate,\n getChallengeTeamsInfo,\n getChallengeTemplateStatus,\n getHeadlinePhotoAuthor,\n getHeadlinePhotoUrl,\n isChallengeEditable,\n isChallengeLoading,\n} from '../../challenges/selectors';\nimport { viewChallengeRequested } from '../../challenges/actions';\nimport IMAGES from '../../constants/images';\nimport ChallengeHeader from '../ViewChallengeScreen/ChallengeHeader';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { dateDifferenceInDays } from '../../utils/dates';\nimport { StyledChallengeInfo as ChallengeInfo } from '../ViewChallengeScreen/ChallengeInfo';\nimport { Clear, Done, Telegram } from '@material-ui/icons';\nimport Button from '../../common/Button';\nimport InfoCard from '../../common/InfoCard';\nimport { getActiveCommunityId } from '../../user/selectors';\nimport ChallengeDescription from '../../common/ChallengeDescription';\nimport ChallengeDuration from '../../common/ChallengeDuration';\nimport { getAppImages, noop } from '../../utils';\nimport { clearSaveErrors, saveDraftRequested } from './actions';\nimport ChallengeHowToWin from '../../common/ChallengeHowToWin';\nimport ChallengeRules from '../../common/ChallengeRules';\nimport ChallengeName from '../../common/ChallengeName';\nimport UpdateCoverPhoto from '../../common/UpdateCoverPhoto';\nimport UpdateIcon from '../../common/UpdateIcon';\nimport UpdateTeam from './UpdateTeam';\nimport ConfirmModal from '../../common/ConfirmModal';\nimport PhotoPropTypes from '../../common/Photo/propTypes';\nimport {\n getPublishStatus,\n getSaveErrors,\n isSaveInProgress,\n isSaveSuccessful,\n} from './selectors';\nimport EditingBanner from '../../common/EditingBanner';\nimport moment from 'moment';\nimport PrizeModal from '../ViewChallengeScreen/PrizeModal';\nimport { isImageUploadRequestPending } from '../../image/selectors';\nimport { transformUpdateChallengeRequest } from '../../challenges/transforms';\nimport { INFO_CARD_CHALLENGE_UPDATE } from '../../common/InfoCard/constants';\nimport { showInfoCard } from '../../user/actions';\nimport CommonPropTypes from '../../common/propTypes';\nimport { connect } from 'react-redux';\nimport styles from './styles';\nimport { CHALLENGE_TEMPLATE_STATUS_DRAFT } from '../../constants/challenges';\nimport { DRAFT_CHECKLIST_URL, INTERCOM_TARGET_PREFIX } from './constants';\nimport { initChallengeEditingTour } from '../../config/intercom';\nimport SnackBarAPIResponse from '../../common/SnackbarAlert/SnackBarAPIResponse';\nimport ChallengeActionsModal from '../ViewChallengeScreen/ChallengeActions/ChallengeActionsModal';\nimport { actionsRequested } from '../../actions/actions';\nimport { getActions } from '../../actions/selectors';\nimport { PIN_ADMIN_VISIBILITY_ALL_INCLUDED } from '../../actions/constants';\nimport { actionTablePropType } from '../../actions/propTypes';\nimport {\n BUTTON_ACCENT_COLOR,\n BUTTON_DEFAULT_COLOR,\n} from '../../common/Button/constants';\nimport { themesRequested } from '../../communityThemes/actions';\nimport { getThemes } from '../../communityThemes/selectors';\nimport InfoTooltip from '../../common/InfoTooltip';\nimport ModalTitle from '../../common/ModalTitle';\nimport { trackEvent } from '../../utils/analytics';\nimport {\n EVENT_CHALLENGE_ACTION_ADDED,\n EVENT_CHALLENGE_ACTION_REMOVED,\n} from '../../constants/analyticsEvents';\n\nconst Loader = () => (\n \n \"loader\"\n \n);\n\nconst Errors = ({ errors }) => (\n <>\n {errors.map((err, i) => (\n {err}\n ))}\n \n);\n\nconst UpdateChallengeScreen = ({\n classes,\n communityId,\n headlinePhotoUrl,\n headlinePhotoAuthor,\n iconUrl,\n name: pristineName,\n startDate: pristineStart,\n endDate: pristineEnd,\n info: pristineInfo,\n teamsInfo,\n templateStatus,\n isLoading,\n errors,\n loadFunc,\n saveFunc,\n PhotoProps,\n saveSuccessful,\n isImageUploading,\n showInfoCard,\n published,\n saveErrors,\n clearSnackBarErrors,\n fetchChallengeActionData,\n fetchThemes,\n themes,\n communityActions,\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down('xs'));\n const {\n params: { challengeId },\n } = useRouteMatch();\n\n const [triedLoading, setTriedLoading] = useState(false);\n\n const [pristine, setPristine] = useState(true);\n\n const [editDescriptionShown, setEditDescriptionShown] = useState(false);\n const [editDatesShown, setEditDatesShown] = useState(false);\n const [editHowToWinShown, setEditHowToWinShown] = useState(false);\n const [editRulesShown, setEditRulesShown] = useState(false);\n const [editNameShown, setEditNameShown] = useState(false);\n const [editPhotoShown, setEditPhotoShown] = useState(false);\n const [editIconShown, setEditIconShown] = useState(false);\n const [editTeamShown, setEditTeamShown] = useState(false);\n\n const [leaveConfirmationShown, setLeaveConfirmationShown] = useState(false);\n const [leaveLocation, setLeaveLocation] = useState(null);\n const [leaveConfirmed, setLeaveConfirmed] = useState(false);\n const [editActionsShown, setEditActionsShown] = useState(false);\n\n useEffect(() => {\n if (leaveConfirmed) {\n history.push(leaveLocation);\n }\n }, [history, leaveConfirmed, leaveLocation]);\n\n const [startDate, setStartDate] = useState(pristineStart);\n const [endDate, setEndDate] = useState(pristineEnd);\n const [info, setInfo] = useState(pristineInfo);\n const [name, setName] = useState(pristineName);\n const [image, setImage] = useState(null);\n const [headline, setHeadline] = useState(headlinePhotoUrl);\n const [author, setAuthor] = useState(headlinePhotoAuthor);\n const [iconData, setIconData] = useState(null);\n const [icon, setIcon] = useState(iconUrl);\n const [teams, setTeams] = useState(teamsInfo);\n const [team, setTeam] = useState(null);\n const [isOpenModalReset, setIsOpenModalReset] = useState(false);\n const [showSaveConfirmModal, setShowSaveConfirmModal] = useState(false);\n const [isPrizeModalOpen, setPrizeModalOpen] = useState(false);\n const [selectedPrize, setSelectedPrize] = useState('');\n const [snackBarMessage, setSnackBarMessage] = useState('');\n\n const [fetchedThemes, setFetchedThemes] = useState(false);\n\n const teamItems = useMemo(\n () =>\n teams\n ?.sort((t1, t2) => t1.name.localeCompare(t2.name))\n .map((team) => ({\n id: team.id,\n label: team.name,\n value: '',\n image: team.imageSizes?.[0]?.url || team.image,\n })),\n [teams],\n );\n\n const handleEditTeam = useCallback(\n (id) => {\n setTeam(teams.find((team) => team.id === id));\n setEditTeamShown(true);\n },\n [setTeam, teams, setEditTeamShown],\n );\n\n useEffect(() => {\n if (!fetchedThemes) {\n fetchThemes(communityId);\n setFetchedThemes(true);\n }\n }, [fetchThemes, communityId, fetchedThemes]);\n\n useEffect(() => {\n setStartDate(pristineStart);\n setEndDate(pristineEnd);\n setInfo(pristineInfo);\n setName(pristineName);\n setHeadline(headlinePhotoUrl);\n setAuthor(headlinePhotoAuthor);\n setIcon(iconUrl);\n setTeams(teamsInfo);\n }, [\n pristineStart,\n pristineEnd,\n pristineInfo,\n pristineName,\n headlinePhotoUrl,\n headlinePhotoAuthor,\n iconUrl,\n teamsInfo,\n ]);\n\n const save0 = (publish) => {\n const body = transformUpdateChallengeRequest(\n image,\n author,\n iconData,\n info,\n startDate,\n endDate,\n name,\n teams,\n );\n if (publish != null) {\n body.publish = publish;\n } else {\n body.status = templateStatus;\n }\n saveFunc({\n challengeId,\n communityId,\n body,\n startDate,\n endDate,\n });\n };\n\n const saveDraft = () => save0(false);\n const savePublish = () => save0(true);\n\n const fetchChallengeActionsTableData = useCallback(\n (args) => {\n fetchChallengeActionData(communityId, {\n ...args,\n challengeIds: [challengeId],\n });\n },\n [challengeId, communityId, fetchChallengeActionData],\n );\n\n const fetchCommunityActionsTableData = useCallback(\n (args) => {\n fetchChallengeActionData(communityId, {\n ...args,\n excludedPinIds: info?.includeActionIds,\n visibility: PIN_ADMIN_VISIBILITY_ALL_INCLUDED,\n });\n },\n [communityId, fetchChallengeActionData, info.includeActionIds],\n );\n\n useEffect(() => {\n loadFunc({ challengeId, communityId });\n setTriedLoading(true);\n }, [loadFunc, communityId, challengeId, setTriedLoading]);\n\n useEffect(() => {\n if (saveSuccessful) {\n if (published) setSnackBarMessage(t('challenge.save.publish'));\n else setSnackBarMessage(t('challenge.save.update'));\n }\n }, [saveSuccessful, published, t]);\n\n const handleResetData = () => {\n setStartDate(pristineStart);\n setEndDate(pristineEnd);\n setInfo(pristineInfo);\n setName(pristineName);\n setImage(null);\n setAuthor(headlinePhotoAuthor);\n setHeadline(headlinePhotoUrl);\n setIconData(null);\n setIcon(iconUrl);\n setPristine(true);\n setIsOpenModalReset(false);\n };\n\n const isDraft = templateStatus === CHALLENGE_TEMPLATE_STATUS_DRAFT;\n\n const noActions = info.actions?.data?.length < 1;\n const publishDisabled = endDate < moment() || noActions;\n\n return (\n \n {isLoading && }\n {errors && }\n {triedLoading && !isLoading && !errors && name && (\n <>\n {\n if (!leaveConfirmed) {\n setLeaveLocation(nextLocation);\n setLeaveConfirmationShown(true);\n return false;\n }\n return true;\n }}\n />\n {(!pristine || isDraft) && (\n {\n setLeaveConfirmed(true);\n }}\n onClose={() => {\n setLeaveConfirmationShown(false);\n }}\n onCancel={() => {\n setLeaveConfirmationShown(false);\n }}\n >\n {!pristine ? (\n t('unsavedWarning')\n ) : (\n
    \n \n {t('challenge.draft')}\n \n \n {t('challenge.draftInfo')}\n \n
    \n )}\n \n )}\n {\n setInfo({\n ...info,\n description: newDescription,\n });\n setPristine(false);\n setEditDescriptionShown(false);\n }}\n description={info.description}\n />\n {\n setStartDate(newStartDate.toDate());\n setEndDate(newEndDate.toDate());\n setPristine(false);\n setEditDatesShown(false);\n }}\n startDate={startDate}\n endDate={endDate}\n />\n {\n setInfo({\n ...info,\n howToWin: newHowToWin,\n });\n setPristine(false);\n setEditHowToWinShown(false);\n }}\n />\n {\n setInfo({\n ...info,\n rules: newRules,\n });\n setPristine(false);\n setEditRulesShown(false);\n }}\n />\n {editNameShown ? (\n {\n setName(newName);\n setPristine(false);\n setEditNameShown(false);\n }}\n />\n ) : null}\n setEditNameShown(true)}\n onChangePhoto={() => setEditPhotoShown(true)}\n onChangeIcon={() => setEditIconShown(true)}\n challengeStatus={templateStatus}\n />\n {\n setImage(newImage);\n setAuthor(newAuthor);\n if (newImage && newImage.length) {\n setHeadline(newImage[0].file.url);\n }\n setPristine(false);\n setEditPhotoShown(false);\n }}\n PhotoProps={PhotoProps}\n />\n {\n setIconData(newIconData);\n setIcon(newIconData[0].file.url);\n setPristine(false);\n setEditIconShown(false);\n }}\n />\n {\n const id = team.id;\n const teamIndex = teams.findIndex(\n (team) => team.id === id,\n );\n setTeams([\n ...teams.slice(0, teamIndex),\n {\n ...newTeam,\n id: team.id,\n imageSizes: newTeam.updateImage?.sizes?.map(\n (size) => ({ url: size.file.url }),\n ),\n },\n ...teams.slice(teamIndex + 1),\n ]);\n setPristine(false);\n setEditTeamShown(false);\n }}\n />\n \n \n \n {\n initChallengeEditingTour();\n }}\n >\n {t('take a tour')}\n \n \n \n {\n window.open(\n DRAFT_CHECKLIST_URL,\n '_blank',\n );\n }}\n >\n {t('download')}\n \n \n
    \n ) : (\n [\n {\n initChallengeEditingTour();\n }}\n >\n {t('take a tour')}\n ,\n {\n window.open(\n DRAFT_CHECKLIST_URL,\n '_blank',\n );\n }}\n >\n {t('download')}\n ,\n ]\n )\n }\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n {templateStatus !==\n CHALLENGE_TEMPLATE_STATUS_DRAFT ? (\n \n showInfoCard(\n INFO_CARD_CHALLENGE_UPDATE,\n )\n }\n />\n ) : (\n \n )}\n \n \n \n setIsOpenModalReset(true)\n }\n data-intercom-target={`${INTERCOM_TARGET_PREFIX}DiscardButton`}\n >\n \n {t('Discard Changes')}\n \n \n {templateStatus ===\n CHALLENGE_TEMPLATE_STATUS_DRAFT ? (\n <>\n \n {\n saveDraft();\n setPristine(true);\n }}\n data-intercom-target={`${INTERCOM_TARGET_PREFIX}SaveDraftButton`}\n >\n \n {t('Save Draft')}\n \n \n \n {\n savePublish();\n setPristine(true);\n }}\n >\n \n {t('Save & Publish')}\n \n \n \n ) : (\n \n \n setShowSaveConfirmModal(true)\n }\n >\n \n {t('Save')}\n \n \n )}\n \n \n setEditDescriptionShown(true)\n }\n onEditDates={() => setEditDatesShown(true)}\n onEditHowToWin={() =>\n setEditHowToWinShown(true)\n }\n onEditRules={() => setEditRulesShown(true)}\n onEditTeam={handleEditTeam}\n onEditPrizes={(id) => {\n setPrizeModalOpen(true);\n setSelectedPrize(id);\n }}\n onDeletePrizes={(id) => {\n setInfo({\n ...info,\n prizes: info.prizes.filter(\n (prize) => prize.id !== id,\n ),\n });\n setPristine(false);\n }}\n onToggleAutoJoin={(toggled) => {\n setInfo({ ...info, autoJoin: toggled });\n setPristine(false);\n }}\n onToggleChallengeCategory={(toggled) => {\n setInfo({\n ...info,\n makeChallengeCategory: toggled,\n });\n setPristine(false);\n }}\n onEditActions={() => {\n setEditActionsShown(true);\n }}\n action=\"edit\"\n t={t}\n fetchChallengeActionData={\n fetchChallengeActionsTableData\n }\n onRemoveAction={(action) => {\n trackEvent(EVENT_CHALLENGE_ACTION_REMOVED, {\n action_id: action?.id,\n });\n setPristine(false);\n setInfo({\n ...info,\n actions: {\n ...info.actions,\n data: info.actions.data.filter(\n (data) => data.id !== action.id,\n ),\n },\n excludeActionIds: [\n ...info.excludeActionIds,\n action?.id,\n ],\n });\n }}\n />\n \n \n setIsOpenModalReset(false)}\n onCancel={() => setIsOpenModalReset(false)}\n onConfirm={handleResetData}\n cancelBtnType=\"default\"\n cancelBtnText={t('cancel')}\n confirmBtnType=\"primary\"\n confirmBtnText={t('confirm')}\n >\n {t('confirmDiscard')}\n \n {\n setShowSaveConfirmModal(false);\n }}\n onCancel={() => {\n setShowSaveConfirmModal(false);\n }}\n onConfirm={() => {\n setShowSaveConfirmModal(false);\n save0();\n setPristine(true);\n }}\n cancelBtnType=\"default\"\n cancelBtnText={t('cancel')}\n confirmBtnType=\"primary\"\n confirmBtnText={t('save')}\n >\n \n {t('challenge.save.message.beginning')}\n {t('challenge.save.message.middle')}\n {t('challenge.save.message.end')}\n \n \n setPrizeModalOpen(false)}\n onClose={() => setPrizeModalOpen(false)}\n onConfirm={(prizes) => {\n setPrizeModalOpen(false);\n setInfo({\n ...info,\n prizes,\n });\n setPristine(false);\n }}\n prizes={info.prizes}\n id={selectedPrize}\n isTeamChallenge={info.unit === 'Team'}\n challengeId={challengeId}\n />\n setEditActionsShown(false)}\n onClose={() => setEditActionsShown(false)}\n onCancel={() => setEditActionsShown(false)}\n fetchActions={fetchCommunityActionsTableData}\n themes={themes}\n onAddAction={(action) => {\n trackEvent(EVENT_CHALLENGE_ACTION_ADDED, {\n action_id: action?.id,\n });\n setPristine(false);\n setInfo({\n ...info,\n actions: {\n ...info.actions,\n data: [action, ...info.actions.data],\n },\n includeActionIds: [\n ...info.includeActionIds,\n action?.id,\n ],\n });\n }}\n actions={{\n ...communityActions,\n data: communityActions.data?.filter(\n (action) =>\n !info.includeActionIds.includes(action.id),\n ),\n }}\n />\n \n )}\n {\n setSnackBarMessage(null);\n clearSnackBarErrors();\n }}\n />\n \n );\n};\n\nUpdateChallengeScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n communityId: PropTypes.string.isRequired,\n fetchChallengeActionData: PropTypes.func.isRequired,\n headlinePhotoUrl: PropTypes.string,\n headlinePhotoAuthor: PropTypes.string,\n iconUrl: PropTypes.string,\n name: PropTypes.string,\n startDate: PropTypes.instanceOf(Date),\n endDate: PropTypes.instanceOf(Date),\n templateStatus: PropTypes.string,\n isLoading: PropTypes.bool.isRequired,\n errors: CommonPropTypes.errors,\n info: PropTypes.object,\n teamsInfo: PropTypes.array,\n loadFunc: PropTypes.func.isRequired,\n saveFunc: PropTypes.func.isRequired,\n PhotoProps: PhotoPropTypes.photo,\n saveSuccessful: PropTypes.bool,\n // Is the team image updating?\n isImageUploading: PropTypes.bool.isRequired,\n showInfoCard: PropTypes.func.isRequired,\n published: PropTypes.bool,\n saveErrors: PropTypes.arrayOf(PropTypes.string),\n clearSnackBarErrors: PropTypes.func.isRequired,\n themes: PropTypes.array,\n fetchThemes: PropTypes.func,\n communityActions: actionTablePropType.isRequired,\n};\n\nUpdateChallengeScreen.defaultProps = {\n headlinePhotoUrl: null,\n headlinePhotoAuthor: null,\n iconUrl: null,\n name: null,\n startDate: null,\n endDate: null,\n info: null,\n teamsInfo: null,\n templateStatus: null,\n errors: null,\n PhotoProps: {\n photoTooltipKey: 'coverPhoto.imageHelp',\n },\n saveSuccessful: false,\n published: false,\n fetchThemes: noop,\n themes: [],\n saveErrors: null,\n};\n\nconst StyledUpdateChallengeScreen = withStyles(styles)(UpdateChallengeScreen);\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n isEditable: isChallengeEditable(state),\n isLoading: isChallengeLoading(state) || isSaveInProgress(state),\n errors: getChallengeErrors(state),\n headlinePhotoUrl: getHeadlinePhotoUrl(state),\n headlinePhotoAuthor: getHeadlinePhotoAuthor(state),\n iconUrl: getChallengeIconUrl(state),\n name: getChallengeName(state),\n startDate: getChallengeStartDate(state),\n endDate: getChallengeEndDate(state),\n info: getChallengeInfo(state),\n teamsInfo: getChallengeTeamsInfo(state),\n templateStatus: getChallengeTemplateStatus(state),\n saveSuccessful: isSaveSuccessful(state),\n isImageUploading: isImageUploadRequestPending(state),\n published: getPublishStatus(state),\n themes: getThemes(state),\n communityActions: getActions(state, PIN_ADMIN_VISIBILITY_ALL_INCLUDED),\n saveErrors: getSaveErrors(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n loadFunc: ({ challengeId, communityId }) =>\n dispatch(viewChallengeRequested({ challengeId, communityId })),\n saveFunc: ({ challengeId, communityId, body, startDate, endDate }) =>\n dispatch(\n saveDraftRequested({\n challengeId,\n communityId,\n body,\n startDate,\n endDate,\n }),\n ),\n fetchChallengeActionData: (communityId, filters) =>\n dispatch(actionsRequested(communityId, filters)),\n showInfoCard: (cardId) => dispatch(showInfoCard(cardId)),\n clearSnackBarErrors: () => dispatch(clearSaveErrors()),\n fetchThemes: (communityId) => dispatch(themesRequested(communityId, true)),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledUpdateChallengeScreen);\n","const styles = (theme) => ({\n root: {\n padding: '0 96px',\n },\n subtitle: {\n fontSize: 23,\n lineHeight: 1,\n fontWeight: 400,\n color: theme.custom.grey60,\n },\n relative: {\n position: 'relative',\n },\n});\n\nexport default styles;\n","import moment from 'moment';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport { COLORS } from './constants';\n\nexport const parseRawData = (rawData, isScoreTracker, type) => {\n const labels = parseLabels(rawData.labels);\n\n const datasets = rawData.data\n .map((dataset, index) => {\n const step = Math.floor(index / COLORS.length);\n const idx = index - COLORS.length * step;\n const color = COLORS[idx];\n\n return {\n data: dataset,\n label: rawData.series.length > 0 && rawData.series[index].name,\n borderColor: color,\n backgroundColor: fade(color, 0.5),\n borderWidth: 2,\n pointBorderColor: 'white',\n pointHoverBorderColor: color,\n fill: !isScoreTracker || (isScoreTracker && type === 'bar'),\n };\n })\n .sort((a, b) => {\n const first = a.data[a.data.length - 1];\n const second = b.data[b.data.length - 1];\n\n return second - first;\n });\n\n return {\n labels,\n datasets,\n };\n};\n\nexport const parseLabels = (labels) => {\n return labels.map((label) => moment(label).format('MM/DD'));\n};\n","const styles = (theme) => ({\n container: {\n padding: '0',\n },\n helpWrapper: {\n margin: '10px 0',\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n helpText: {\n marginLeft: '5px',\n fontSize: '75%',\n textAlign: 'center',\n verticalAlign: 'middle',\n },\n emptyText: {\n fontSize: '14px',\n lineHeight: 1.1,\n fontWeight: 600,\n textAlign: 'center',\n color: theme.custom.textDarkColor,\n opacity: 0.5,\n },\n contentLoaderContainer: {\n [theme.breakpoints.up('sm')]: {\n minHeight: 140,\n },\n [theme.breakpoints.up('md')]: {\n minHeight: 260,\n },\n [theme.breakpoints.up('lg')]: {\n minHeight: 390,\n },\n width: '100%',\n height: '100%',\n },\n hideCanvas: {\n display: 'none',\n },\n canvasContainer: {\n width: '100%',\n height: '100%',\n },\n canvasStyles: {\n minHeight: '100%',\n },\n});\n\nexport default styles;\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport { Help, PlayArrow, Stop } from '@material-ui/icons';\nimport { Chart } from 'chart.js';\nimport { CHART_INTERVALS, CHART_TYPE_LINE, CHART_TYPES } from './constants';\nimport { parseRawData } from './utils';\nimport styles from './styles';\nimport Button from '../../Button';\nimport ContentLoader from 'react-content-loader';\n\nconst ChartItem = ({\n classes,\n rawData,\n interval,\n type,\n showLegend,\n showAnimateButton,\n loading,\n}) => {\n const { t } = useTranslation();\n const [chart, setChart] = useState(null);\n const parsedData = useMemo(() => parseRawData(rawData, showLegend, type), [\n rawData,\n showLegend,\n type,\n ]);\n const [data, setData] = useState(parsedData);\n const [playing, setPlaying] = useState(false);\n const [playInterval, setPlayInterval] = useState(0);\n const chartRef = useRef();\n\n const play = useCallback(() => {\n setPlaying(true);\n setData({\n ...data,\n datasets: data.datasets.map((dataset, i) => ({\n ...dataset,\n data: [parsedData.datasets[i].data[0]],\n })),\n });\n const temp = [...data.datasets];\n const nodes = temp[0].data.length;\n let i = 1;\n const playInterval = setInterval(\n () => {\n const data = chart.data;\n data.datasets.forEach((dataset, index) => {\n dataset.data.push(parsedData.datasets[index].data[i]);\n });\n if (type === CHART_TYPE_LINE) {\n chart.update('none');\n } else {\n chart.update();\n }\n\n i++;\n if (i === nodes) {\n clearInterval(playInterval);\n setPlaying(false);\n }\n },\n 700,\n nodes,\n );\n\n setPlayInterval(playInterval);\n }, [chart, data, parsedData, type]);\n\n const stop = () => {\n clearInterval(playInterval);\n setPlaying(false);\n setData(parsedData);\n };\n\n useEffect(() => {\n setData(parseRawData(rawData, showLegend, type));\n }, [rawData, showLegend, type]);\n\n useEffect(() => {\n if (!chartRef.current) return;\n chart && chart.destroy();\n\n const context = chartRef.current.getContext('2d');\n const chartObject = new Chart(context, {\n type,\n data,\n options: {\n hover: {\n mode: 'single',\n },\n aspectRatio: 3,\n legend: {\n display: showLegend,\n position: 'right',\n fullWidth: true,\n labels: {\n fontFamily: `'effra',sans-serif`,\n fontSize: 10,\n boxWidth: 10,\n },\n },\n elements: {\n line: {\n tension: 0,\n borderWidth: 4,\n borderJoinStyle: 'round',\n borderCapStyle: 'round',\n },\n },\n scales: {\n y: {\n beginAtZero: true,\n },\n },\n },\n });\n\n setChart(chartObject);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [type, interval, parsedData, showLegend]);\n\n useEffect(() => {\n if (!chart) return;\n\n chart.data = data;\n try {\n chart.update();\n } catch (e) {\n // Chart updating can cause an exception for some reason so lets just wrap in a try catch\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data]);\n\n const hasData = data?.datasets?.length > 0;\n\n return (\n \n \n \n
    \n {loading ? (\n \n \n \n \n \n \n \n \n \n \n ) : !hasData ? (\n \n {t('data.empty')}.
    {t('data.range')}.\n
    \n ) : (\n <>\n \n {showAnimateButton ? (\n \n ) : null}\n \n \n \n \n {t('graph.info')}\n \n \n \n )}\n \n );\n};\n\nChartItem.propTypes = {\n classes: PropTypes.object.isRequired,\n rawData: PropTypes.shape({\n labels: PropTypes.arrayOf(PropTypes.string),\n data: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n series: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n }),\n ),\n }).isRequired,\n type: PropTypes.oneOf(CHART_TYPES).isRequired,\n interval: PropTypes.oneOf(CHART_INTERVALS).isRequired,\n showLegend: PropTypes.bool,\n showAnimateButton: PropTypes.bool,\n loading: PropTypes.bool,\n};\n\nChartItem.defaultProps = {\n loading: false,\n isScoreTracker: false,\n showLegend: false,\n showAnimateButton: false,\n};\n\nexport default withStyles(styles)(ChartItem);\n","const styles = (theme) => ({\n tabs: {\n borderRadius: '4px',\n overflow: 'hidden',\n boxShadow: '0 0 3px 1px lightgray',\n },\n title: {\n margin: '20px 0 10px',\n fontSize: '24px',\n fontWeight: 600,\n color: theme.custom.textDarkSecondaryColor,\n },\n selectWrapper: {\n height: '32px',\n marginLeft: '5px',\n },\n select: {\n '&:focus': {\n backgroundColor: 'transparent',\n },\n },\n option: {\n paddingLeft: '20px',\n\n '&:hover': {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.common.white,\n cursor: 'pointer',\n },\n },\n});\n\nexport default styles;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, Typography, Select, withStyles } from '@material-ui/core';\nimport TabbedSection from '../TabbedSection';\nimport ChartItem from '../Graph/ChartItem';\nimport {\n CHART_TYPES,\n CHART_INTERVALS,\n CHART_TYPE_LINE,\n CHART_INTERVAL_DAY,\n} from '../Graph/ChartItem/constants';\nimport styles from './styles';\n\nconst Graph = ({\n classes,\n charts,\n intervals,\n interval,\n data,\n onTypeChange,\n onIntervalChange,\n onTabChange,\n loading,\n ...tabbedSectionProps\n}) => {\n const { t } = useTranslation();\n const [type, setType] = useState(CHART_TYPE_LINE);\n\n const changeTypeHandler = (e) => {\n const { value } = e.target;\n setType(value);\n onTypeChange && onTypeChange(value);\n };\n\n const changeInterval = (e) => {\n const { value } = e.target;\n onIntervalChange(value);\n };\n\n const renderFooter = () => (\n \n \n {CHART_TYPES.map((type) => (\n \n ))}\n \n \n {intervals.map((interval) => (\n \n {interval}\n \n ))}\n \n \n );\n\n const renderCharts = charts.reduce(\n (prevChart, currChart) => ({\n ...prevChart,\n [currChart.name]: (\n \n ),\n }),\n {},\n );\n\n return (\n \n \n {t('graph.descriptor')}\n \n \n \n \n \n );\n};\n\nGraph.propTypes = {\n classes: PropTypes.object.isRequired,\n charts: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n options: PropTypes.shape({\n // Used to indicate whether the legend should be shown\n isScoreTracker: PropTypes.bool,\n }),\n }),\n ).isRequired,\n intervals: PropTypes.arrayOf(CHART_INTERVALS),\n interval: PropTypes.oneOf(CHART_INTERVALS),\n data: PropTypes.shape({\n labels: PropTypes.arrayOf(PropTypes.string),\n data: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n series: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n }),\n ),\n }).isRequired,\n onTypeChange: PropTypes.func,\n onIntervalChange: PropTypes.func.isRequired,\n onTabChange: PropTypes.func.isRequired,\n loading: PropTypes.bool,\n};\n\nGraph.defaultProps = {\n loading: false,\n intervals: CHART_INTERVALS,\n interval: CHART_INTERVAL_DAY,\n onTypeChange: null,\n};\n\nexport default withStyles(styles)(Graph);\n","const styles = (theme) => ({\n title: {\n margin: '20px 0 10px',\n fontSize: 24,\n fontWeight: 600,\n color: theme.custom.textDarkSecondaryColor,\n },\n tabBox: {\n padding: '10px 0 0',\n },\n});\n\nexport default styles;\n","import React, { useEffect } from 'react';\nimport { withStyles, Grid, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport moment from 'moment';\nimport queryString from 'query-string';\nimport PropTypes from 'prop-types';\nimport styles from './styles';\nimport CommonPropTypes from '../../../common/propTypes';\nimport RequestLoader from '../../../common/RequestLoader';\nimport TabbedSection from '../../../common/TabbedSection';\nimport StatCard from '../../../common/StatCard';\nimport {\n analyticsActivityRequested,\n analyticsUsersRequested,\n analyticsImpactRequested,\n} from '../../../challenges/actions';\nimport {\n getAnalyticsActivityLoading,\n getTopActions,\n getAnalyticsActivityErrors,\n getTopUsers,\n getAnalyticsUsersErrors,\n getAnalyticsUsersLoading,\n getAnalyticsImpactLoading,\n getAnalyticsImpactErrors,\n getActivityTab,\n getUsersTab,\n getChallengeImpactStats,\n} from '../../../challenges/selectors';\nimport { challengePhotosRequested } from '../../../analytics/photos/actions';\nimport {\n arePhotosLoading,\n getTopPhotos,\n} from '../../../analytics/photos/selectors';\nimport TopPhotos from '../../../common/TopPhotos';\nimport IMAGES from '../../../constants/images';\nimport Leaderboard from '../../../common/Leaderboard';\nimport { getAppImages } from '../../../utils';\nimport { CHALLENGE_ANALYTICS_TOP_PHOTOS } from '../../../common/PhotoCard/constants';\nimport { LEADERBOARD_TYPE_TOP_USERS } from '../../../common/Leaderboard/constants';\n\nconst ChallengeStats = ({\n classes,\n communityId,\n challengeId,\n startDate,\n endDate,\n\n usersTab,\n activityTab,\n\n impactStats,\n impactTabErrors,\n impactTabRequest,\n isImpactTabLoading,\n\n topActions,\n topActionsRequest,\n topActionsErrors,\n isTopActionsLoading,\n\n topUsersRequest,\n topUsers,\n topUsersErrors,\n isTopUsersLoading,\n\n topPhotoRequest,\n topPhotos,\n isTopPhotosLoading,\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n\n useEffect(() => {\n if (!startDate || !endDate) return;\n\n topActionsRequest({\n challengeId,\n communityId,\n startDate,\n endDate,\n summaryType: 'activity',\n });\n topUsersRequest({\n challengeId,\n communityId,\n startDate,\n endDate,\n summaryType: 'users',\n });\n impactTabRequest({\n communityId,\n challengeId,\n startDate,\n endDate,\n });\n topPhotoRequest({ communityId, challengeId });\n }, [\n communityId,\n challengeId,\n startDate,\n endDate,\n topActionsRequest,\n topUsersRequest,\n impactTabRequest,\n topPhotoRequest,\n ]);\n\n const renderStatCard = (tabArray) => (\n \n {tabArray.map(({ id, ...props }, i) => (\n \n \n \n ))}\n \n );\n\n const getDateQueryString = (startDate, endDate) => {\n const dates = {\n endDate: moment(endDate).format('YYYY-MM-DD'),\n startDate: moment(startDate).format('YYYY-MM-DD'),\n challengeId,\n };\n return `${queryString.stringify(dates)}`;\n };\n\n const onViewAllTopActionsClick = () => {\n history.push(\n `/analytics/top-actions?${getDateQueryString(startDate, endDate)}`,\n );\n };\n\n return (\n \n \n Stats\n \n \n \n \n \n \n \n \n \n );\n};\n\nChallengeStats.propTypes = {\n classes: PropTypes.object.isRequired,\n communityId: PropTypes.string.isRequired,\n challengeId: PropTypes.string.isRequired,\n startDate: PropTypes.instanceOf(Date),\n endDate: PropTypes.instanceOf(Date),\n usersTab: PropTypes.array.isRequired,\n activityTab: PropTypes.array.isRequired,\n impactStats: PropTypes.array.isRequired,\n impactTabRequest: PropTypes.func.isRequired,\n impactTabErrors: CommonPropTypes.errors.isRequired,\n isImpactTabLoading: PropTypes.bool.isRequired,\n topUsers: PropTypes.array.isRequired,\n topUsersRequest: PropTypes.func.isRequired,\n topUsersErrors: CommonPropTypes.errors.isRequired,\n isTopUsersLoading: PropTypes.bool.isRequired,\n topActions: PropTypes.array.isRequired,\n topActionsRequest: PropTypes.func.isRequired,\n topActionsErrors: CommonPropTypes.errors.isRequired,\n isTopActionsLoading: PropTypes.bool.isRequired,\n topPhotoRequest: PropTypes.func.isRequired,\n topPhotos: PropTypes.array.isRequired,\n isTopPhotosLoading: PropTypes.bool.isRequired,\n};\n\nChallengeStats.defaultProps = {\n startDate: null,\n endDate: null,\n};\n\nconst StyledLeftColumn = withStyles(styles)(ChallengeStats);\n\nconst mapStateToProps = (state) => ({\n impactStats: getChallengeImpactStats(state),\n impactTabErrors: getAnalyticsImpactErrors(state),\n isImpactTabLoading: getAnalyticsImpactLoading(state),\n activityTab: getActivityTab(state),\n topActions: getTopActions(state),\n topActionsErrors: getAnalyticsActivityErrors(state),\n isTopActionsLoading: getAnalyticsActivityLoading(state),\n usersTab: getUsersTab(state),\n topUsers: getTopUsers(state),\n topUsersErrors: getAnalyticsUsersErrors(state),\n isTopUsersLoading: getAnalyticsUsersLoading(state),\n topPhotos: getTopPhotos(state),\n isTopPhotosLoading: arePhotosLoading(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n impactTabRequest: (args) => dispatch(analyticsImpactRequested(args)),\n topUsersRequest: (args) => dispatch(analyticsUsersRequested(args)),\n topActionsRequest: (args) => dispatch(analyticsActivityRequested(args)),\n topPhotoRequest: (args) => dispatch(challengePhotosRequested(args)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(StyledLeftColumn);\n","export const DATE_FORMAT = 'MM/DD/YY';\n\nexport const CHARTS = [\n {\n name: 'Score Tracker',\n options: {\n isScoreTracker: true,\n },\n showAnimateButton: true,\n },\n {\n name: 'Total Logs',\n showAnimateButton: true,\n },\n {\n name: 'Users Activity',\n showAnimateButton: true,\n },\n];\n","import React, { Fragment, useEffect, useMemo, useState } from 'react';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\nimport { getActiveCommunityId } from '../../user/selectors';\nimport {\n getChallengeEndDate,\n getChallengeErrors,\n getChallengeId,\n getChallengeName,\n getChallengeStartDate,\n getGraphData,\n getGraphDataErrors,\n getGraphDataLoading,\n isChallengeLoading,\n} from '../../challenges/selectors';\nimport {\n getGraphDataRequested,\n viewChallengeRequested,\n} from '../../challenges/actions';\nimport CommonPropTypes from '../../common/propTypes';\nimport styles from './styles';\nimport HeaderPage from '../../common/HeaderPage';\nimport Graph from '../../common/Graph';\nimport RequestLoader from '../../common/RequestLoader';\nimport ChallengeStats from './ChallengeStats';\nimport { CHARTS, DATE_FORMAT } from './constants';\nimport { getTimezoneAbbrev } from '../../utils/dates';\nimport {\n CHART_INTERVAL_DAY,\n CHART_INTERVALS,\n GRAPH_METRIC_ACTIVE_USERS,\n GRAPH_METRIC_SCORE_TRACKER,\n GRAPH_METRIC_TOTAL_LOGS,\n GRAPH_TYPE_SCORE_TRACKER,\n GRAPH_TYPE_TIME_SERIES,\n} from '../../common/Graph/ChartItem/constants';\nimport { useRouteMatch } from 'react-router-dom';\n\nconst ChallengeAnalyticsScreen = ({\n classes,\n name,\n startDate,\n endDate,\n communityId,\n graphData,\n graphErrors,\n isGraphLoading,\n isChallengeLoading,\n challengeErrors,\n challengeId,\n loadFunc,\n getGraphData,\n}) => {\n const { t } = useTranslation();\n const {\n params: { challengeId: challengeIdParam },\n } = useRouteMatch();\n\n const [intervals, setIntervals] = useState(CHART_INTERVALS);\n const [params, setParams] = useState({\n resolution: CHART_INTERVAL_DAY,\n });\n\n useEffect(() => {\n loadFunc({ communityId, challengeId: challengeIdParam });\n }, [communityId, challengeIdParam, loadFunc]);\n\n const options = useMemo(\n () => ({\n communityId,\n challengeId: challengeIdParam,\n scope: 'challenge',\n scopeId: challengeIdParam,\n startDateIso: startDate && startDate.toISOString(),\n endDateIso: endDate && endDate.toISOString(),\n }),\n [communityId, challengeIdParam, startDate, endDate],\n );\n\n const checkIncludeInterval = (intervals) => {\n if (!intervals.includes(params.interval)) {\n setParams({ ...params, resolution: intervals[0] });\n return intervals[0];\n }\n };\n\n const getIntervalByDate = () => {\n const diffWeeks = moment(endDate).diff(moment(startDate), 'weeks');\n const diffMonth = moment(endDate).diff(moment(startDate), 'months');\n\n if (diffMonth > 12) {\n return ['week', 'month', 'year'];\n } else if (diffWeeks > 9) {\n return ['week', 'month'];\n } else {\n return ['day', 'week', 'month'];\n }\n };\n\n const fetchData = () => {\n if (!name) return;\n\n const intervals = getIntervalByDate();\n setIntervals(intervals);\n\n const interval = checkIncludeInterval(intervals);\n const params = {\n ...options,\n type: GRAPH_TYPE_SCORE_TRACKER,\n metric: GRAPH_METRIC_SCORE_TRACKER,\n resolution: interval,\n };\n\n setParams(params);\n getGraphData(params);\n };\n\n const changeTabHandler = (tabIndex) => {\n let newParams = { resolution: params.resolution };\n\n if (tabIndex === 0) {\n newParams = {\n ...newParams,\n type: GRAPH_TYPE_SCORE_TRACKER,\n metric: GRAPH_METRIC_SCORE_TRACKER,\n };\n } else if (tabIndex === 1) {\n newParams = {\n ...newParams,\n type: GRAPH_TYPE_TIME_SERIES,\n metric: GRAPH_METRIC_TOTAL_LOGS,\n };\n } else if (tabIndex === 2) {\n newParams = {\n ...newParams,\n type: GRAPH_TYPE_TIME_SERIES,\n metric: GRAPH_METRIC_ACTIVE_USERS,\n };\n }\n\n setParams(newParams);\n getGraphData({ ...options, ...newParams });\n };\n\n const intervalChangeHandler = (interval) => {\n const newParams = { ...params, resolution: interval };\n\n setParams(newParams);\n getGraphData({ ...options, ...newParams });\n };\n\n useEffect(() => {\n if (challengeIdParam === challengeId) fetchData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [challengeId, challengeIdParam]);\n\n return (\n \n {graphErrors || challengeErrors ? (\n [...(graphErrors || []), challengeErrors].map((err, i) => (\n {err}\n ))\n ) : (\n \n \n {`${moment(startDate).format(DATE_FORMAT)} \n - ${moment(endDate).format(DATE_FORMAT)} \n (${getTimezoneAbbrev()})`}\n \n }\n />\n \n {graphData && !isGraphLoading && (\n \n )}\n \n \n \n \n )}\n \n );\n};\n\nChallengeAnalyticsScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n communityId: PropTypes.string.isRequired,\n name: PropTypes.string,\n startDate: PropTypes.instanceOf(Date),\n endDate: PropTypes.instanceOf(Date),\n graphData: PropTypes.shape({\n data: PropTypes.array,\n labels: PropTypes.arrayOf(PropTypes.string),\n series: PropTypes.array,\n }),\n graphErrors: CommonPropTypes.errors,\n isGraphLoading: PropTypes.bool.isRequired,\n challengeId: PropTypes.string.isRequired,\n isChallengeLoading: PropTypes.bool.isRequired,\n challengeErrors: CommonPropTypes.errors,\n loadFunc: PropTypes.func.isRequired,\n getGraphData: PropTypes.func.isRequired,\n};\n\nChallengeAnalyticsScreen.defaultProps = {\n name: null,\n startDate: null,\n endDate: null,\n graphData: null,\n graphErrors: [],\n challengeErrors: [],\n};\n\nconst StyledLeftColumn = withStyles(styles)(ChallengeAnalyticsScreen);\n\nconst mapStateToProps = (state) => ({\n name: getChallengeName(state),\n startDate: getChallengeStartDate(state),\n endDate: getChallengeEndDate(state),\n challengeId: getChallengeId(state),\n communityId: getActiveCommunityId(state),\n graphData: getGraphData(state),\n isGraphLoading: getGraphDataLoading(state),\n graphErrors: getGraphDataErrors(state),\n isChallengeLoading: isChallengeLoading(state),\n challengeErrors: getChallengeErrors(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n loadFunc: ({ challengeId, communityId }) =>\n dispatch(viewChallengeRequested({ challengeId, communityId })),\n getGraphData: (args) => dispatch(getGraphDataRequested(args)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(StyledLeftColumn);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n border: '1px solid transparent',\n borderRadius: '4px',\n borderWidth: 0,\n marginBottom: '20px',\n maxWidth: '800px',\n },\n header: {\n padding: '10px 15px',\n borderTopLeftRadius: '5px',\n borderTopRightRadius: '5px',\n borderBottomWidth: 0,\n borderColor: '#ddd',\n backgroundColor: theme.custom.bgLightColor,\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n headerText: {\n fontSize: '16px',\n fontWeight: 600,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n },\n helpIcon: {\n marginLeft: '3px',\n color: theme.custom.tooltipIconColor,\n\n '&:hover': {\n color: theme.custom.tooltipIconHoverColor,\n },\n },\n body: {\n padding: '15px 40px',\n backgroundColor: theme.custom.bgLightAccentColor,\n paddingBottom: '100px',\n },\n dates: {\n marginBottom: '50px',\n },\n dateLabel: {\n fontWeight: 700,\n marginBottom: '5px',\n },\n infoIcon: {\n marginLeft: '3px',\n color: theme.custom.tooltipIconColor,\n cursor: 'pointer',\n\n '&:hover': {\n color: theme.custom.tooltipIconHoverColor,\n },\n },\n subHeaderContainer: {\n marginBottom: '5px',\n },\n subHeader: {\n fontWeight: 700,\n },\n groups: {\n marginBottom: '16px',\n },\n leftGroup: {\n marginRight: '20px',\n },\n rightGroup: {\n marginLeft: '20px',\n },\n templatesLabel: {\n fontWeight: 700,\n marginTop: '20px',\n marginBottom: '5px',\n },\n confirmButton: {\n paddingTop: '10px',\n paddingBottom: '10px',\n backgroundColor: theme.custom.bgLightColor,\n borderBottomRightRadius: '8px',\n borderBottomLeftRadius: '8px',\n },\n photo: {\n height: '130px',\n width: '130px',\n },\n challengeNameContainer: {\n marginTop: '20px',\n marginBottom: '40px',\n },\n challengeNameFormContainer: {\n marginLeft: '40px',\n },\n challengeNameFormInput: {\n width: '70%',\n },\n textArea: {\n resize: 'none',\n },\n cancelButton: {\n marginBottom: '20px',\n borderWidth: '2px',\n },\n clearIcon: {\n marginRight: '10px',\n },\n teamsTypeContainer: {\n marginTop: '10px',\n marginBottom: '10px',\n },\n radioButtonLabel: {\n display: 'flex',\n },\n errorBelow: (props) => ({\n margin: `0 0 0 20px`,\n color: theme.palette.error.main,\n }),\n}));\n\nexport default useStyles;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginBottom: '10px',\n },\n icon: {\n padding: '10px 16px',\n borderTopRightRadius: '8px',\n borderBottomRightRadius: '8px',\n backgroundColor: theme.palette.accent.main,\n borderColor: theme.palette.accent.main,\n cursor: 'pointer',\n },\n inputRoot: {\n width: '100%',\n padding: '10px 16px',\n border: '1px solid transparent',\n borderBottomLeftRadius: '8px',\n borderTopLeftRadius: '8px',\n backgroundColor: theme.custom.inputBackground,\n fontSize: '18px',\n\n '&:before, &:after': {\n display: 'none',\n },\n\n '&:hover': {\n backgroundColor: theme.custom.bgLightColor,\n },\n\n '&:active:not(.Mui-disabled)': {\n backgroundColor: theme.palette.common.white,\n },\n\n '&.Mui-focused': {\n borderColor: theme.palette.primary.dark,\n },\n },\n input: {\n height: '24px',\n padding: 0,\n },\n}));\n\nexport default useStyles;\n","import React, { useMemo } from 'react';\nimport { Grid, TextField } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\nimport useStyles from './styles';\n\nimport IcomoonIcon from '../../../../common/IcomoonIcon';\nimport theme from '../../../../theme';\n\nconst IconFormInput = ({ icon, ...props }) => {\n const classes = useStyles();\n const inputProps = useMemo(\n () => ({\n classes: {\n root: classes.inputRoot,\n input: classes.input,\n },\n }),\n [classes],\n );\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nIconFormInput.propTypes = {\n icon: PropTypes.string,\n};\n\nIconFormInput.defaultProps = {\n icon: null,\n};\n\nexport default IconFormInput;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n minHeight: '36px',\n\n '&:hover': {\n transform: 'translateY(-2px)',\n transition: 'all .2s ease-in',\n },\n },\n outlinedPrimary: ({ selected }) => ({\n color: selected\n ? theme.palette.primary.main\n : theme.custom.textDarkSecondaryColor,\n backgroundColor: selected\n ? theme.palette.white.main\n : 'rgba(0,0,0,.05)',\n borderColor: selected\n ? theme.palette.primary.main\n : theme.custom.bgColor,\n borderWidth: '2px',\n borderRadius: '6px',\n\n '&:hover': {\n color: selected\n ? theme.palette.primary.main\n : theme.custom.textDarkColor,\n backgroundColor: theme.custom.bgLightColor,\n borderColor: selected\n ? theme.palette.primary.main\n : theme.custom.bgColor,\n borderWidth: '2px',\n boxShadow: selected\n ? 'none'\n : '0 0 0 1px rgba(0,0,0,.03),0 2px 8px 0 rgba(0,0,0,.09)',\n },\n }),\n container: {\n paddingTop: '6px',\n paddingBottom: '6px',\n },\n label: {\n fontWeight: 600,\n marginTop: '16px',\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Grid } from '@material-ui/core';\n\nimport useStyles from './styles';\n\nimport theme from '../../theme';\nimport IcomoonIcon from '../IcomoonIcon';\n\nconst ParticipantsButton = ({ selected, icon, label, onClick }) => {\n const classes = useStyles({ selected });\n /*\n * TODO if an unselected button is hovered, its icon color should be theme.custom.textDarkColor\n * The problem is that IcomoonReact does not respect color specified in CSS class if it has already been\n * specified in the color prop.\n */\n const iconColor = selected\n ? theme.palette.primary.main\n : theme.custom.textDarkSecondaryColor;\n\n return (\n \n \n \n \n \n \n {label}\n \n \n \n );\n};\n\nParticipantsButton.propTypes = {\n selected: PropTypes.bool.isRequired,\n icon: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n};\n\nexport default ParticipantsButton;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, Radio, RadioGroup, Typography } from '@material-ui/core';\nimport { Clear } from '@material-ui/icons';\nimport { DateTimePicker } from '@material-ui/pickers';\nimport moment from 'moment';\nimport { ErrorMessage, Field, Form, Formik } from 'formik';\nimport * as Yup from 'yup';\n\nimport useStyles from './styles';\nimport IconFormInput from './IconFormInput';\nimport LargeIconButton from '../../../common/LargeIconButton';\nimport {\n COMPETITION_COMPETITIVE,\n COMPETITION_GOALS,\n DATETIME_FORMAT,\n GOALS_TYPE_CHALLENGE,\n GOALS_TYPE_TEAM,\n GOALS_TYPE_USER,\n GROUP_INDIVIDUAL,\n GROUP_KEY_TEAM,\n GROUP_TEAM,\n MAX_NAME_LENGTH,\n MAX_TEAM_COUNT,\n MIN_NAME_LENGTH,\n MIN_TEAM_COUNT,\n TEAMS_TYPE_MANUAL,\n TEAMS_TYPE_USER_CREATED,\n} from './constants';\nimport DatePicker from '../../../common/DatePicker';\nimport { getTimezoneAbbrev } from '../../../utils/dates';\nimport FormInput from '../../../common/Form/FormInput';\nimport { noop } from '../../../utils';\nimport Button from '../../../common/Button';\nimport Textarea from '../../../common/Textarea';\nimport ModalTitle from '../../../common/ModalTitle';\nimport FieldLabel from '../../../common/FieldLabel';\nimport { INTERCOM_TARGET_PREFIX } from '../constants';\nimport PhotoAlternatePlaceholder from '../../../common/Photo/PhotoAlternatePlaceholder';\nimport { CHALLENGE_UNIT_TEAM } from '../../../challenges/constants';\nimport PhotoUpload from '../../../common/PhotoUpload';\n\nconst CustomizeChallenge = ({\n onConfirm,\n onCancel,\n selectedTheme,\n challengeToDuplicate,\n}) => {\n const classes = useStyles();\n\n const { t, i18n } = useTranslation();\n\n const startDateLabel = useMemo(() => t('challenge.create.startDate'), [t]);\n const endDateLabel = useMemo(() => t('challenge.create.endDate'), [t]);\n\n const tzCode = getTimezoneAbbrev(i18n.language);\n\n const [startDate, setStartDate] = useState(null);\n const [startDateValid, setStartDateValid] = useState(true);\n const [endDate, setEndDate] = useState(null);\n const [endDateValid, setEndDateValid] = useState(true);\n\n const maxStartDate = useMemo(() => moment().add(1, 'years'), []);\n const startDateOrNow = useMemo(\n () => (startDate == null ? moment() : startDate),\n [startDate],\n );\n const maxEndDate = useMemo(() => moment(startDateOrNow).add(1, 'years'), [\n startDateOrNow,\n ]);\n\n const [selectedGroup, setSelectedGroup] = useState(\n challengeToDuplicate?.challengeUnit === CHALLENGE_UNIT_TEAM\n ? GROUP_TEAM\n : GROUP_INDIVIDUAL,\n );\n const [selectedCompetition, setSelectedCompetition] = useState(\n challengeToDuplicate?.rulesType === COMPETITION_GOALS\n ? COMPETITION_GOALS\n : COMPETITION_COMPETITIVE,\n );\n\n const [challengeImage, setChallengeImage] = useState(null);\n const initialValues = useMemo(() => {\n if (challengeToDuplicate) {\n const goalsType = challengeToDuplicate?.goalSummary?.team\n ? GOALS_TYPE_TEAM\n : challengeToDuplicate?.goalSummary?.challenge\n ? GOALS_TYPE_CHALLENGE\n : GOALS_TYPE_USER;\n const goalPointValue =\n challengeToDuplicate?.goalSummary?.[goalsType]?.levels?.[0]\n ?.value;\n return {\n challengeName: challengeToDuplicate?.name,\n challengeDescription:\n challengeToDuplicate?.basicsInfo?.description,\n teams: challengeToDuplicate?.teams?.length,\n teamsType:\n challengeToDuplicate?.teamCreation === 'disabled'\n ? TEAMS_TYPE_MANUAL\n : TEAMS_TYPE_USER_CREATED,\n goalsType,\n goalPointValue,\n };\n }\n return {\n challengeName: selectedTheme?.challengeName,\n challengeDescription: selectedTheme?.challengeDescription,\n teams: '',\n goalPointValue: null,\n teamsType: TEAMS_TYPE_MANUAL,\n goalsType: GOALS_TYPE_USER,\n };\n }, [challengeToDuplicate, selectedTheme]);\n\n const errorTeams = useMemo(() => t('challenge.create.teamsLimit'), [t]);\n const validationSchema = useMemo(\n () =>\n Yup.object().shape({\n teams: Yup.number().test(\n 'teams',\n () => errorTeams,\n (value) => {\n if (selectedGroup === GROUP_TEAM) {\n return (\n value >= MIN_TEAM_COUNT &&\n value <= MAX_TEAM_COUNT\n );\n }\n return true;\n },\n ),\n challengeName: Yup.string()\n .required(t('challenge.create.nameRequired'))\n .min(\n MIN_NAME_LENGTH,\n t('challenge.name.length.min', {\n count: MIN_NAME_LENGTH,\n }),\n )\n .max(MAX_NAME_LENGTH),\n challengeDescription: Yup.string().required(\n t('challenge.create.descriptionRequired'),\n ),\n }),\n [errorTeams, t, selectedGroup],\n );\n\n const confirmDisabled = useCallback(\n (formikProps) => {\n return (\n !formikProps.isValid ||\n startDate === null ||\n !startDateValid ||\n endDate === null ||\n !endDateValid ||\n (selectedGroup === GROUP_KEY_TEAM &&\n !formikProps.values.teams) ||\n (selectedCompetition === COMPETITION_GOALS &&\n !formikProps.values.goalPointValue)\n );\n },\n [\n startDate,\n startDateValid,\n endDate,\n endDateValid,\n selectedGroup,\n selectedCompetition,\n ],\n );\n\n const handleConfirm = useCallback(\n (formik) => {\n const formValues = formik.values;\n const values = {\n ...formValues,\n startDate,\n endDate,\n themeId: selectedTheme?.id,\n icon: challengeImage,\n selectedGroup,\n selectedCompetition,\n challengeToDuplicateId: challengeToDuplicate?.id,\n };\n\n onConfirm(values);\n },\n [\n onConfirm,\n startDate,\n endDate,\n selectedGroup,\n selectedTheme,\n selectedCompetition,\n challengeImage,\n challengeToDuplicate,\n ],\n );\n\n return (\n \n \n \n Cancel\n \n \n {(formikProps) => (\n
    \n \n \n \n {selectedTheme && (\n \n {`${t('theme')}: `}{' '}\n {selectedTheme?.name}\n {selectedTheme?.iconUrl && (\n \n )}\n \n )}\n \n \n \n \n \n }\n hideTip\n intercomTarget={`${INTERCOM_TARGET_PREFIX}Icon`}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n errorMsg &&\n setStartDateValid(false)\n }\n onAccept={() =>\n setStartDateValid(true)\n }\n strictCompareDates\n data-intercom-target={`${INTERCOM_TARGET_PREFIX}StartDatePicker`}\n />\n \n \n \n \n errorMsg &&\n setEndDateValid(false)\n }\n onAccept={() =>\n setEndDateValid(true)\n }\n data-intercom-target={`${INTERCOM_TARGET_PREFIX}EndDatePicker`}\n />\n \n \n \n \n \n \n setSelectedGroup(\n GROUP_INDIVIDUAL,\n )\n }\n />\n \n \n \n setSelectedGroup(GROUP_TEAM)\n }\n />\n \n \n {selectedGroup === GROUP_TEAM ? (\n \n \n \n \n \n \n \n \n \n \n \n {t(\n 'challenge.create.manualSetTeams',\n )}\n \n \n \n \n \n \n \n \n \n {t(\n 'challenge.create.userCreatedTeams',\n )}\n \n \n \n \n \n \n \n \n \n \n \n ) : null}\n \n \n \n \n setSelectedCompetition(\n COMPETITION_COMPETITIVE,\n )\n }\n />\n \n \n \n setSelectedCompetition(\n COMPETITION_GOALS,\n )\n }\n />\n \n \n {selectedCompetition === COMPETITION_GOALS ? (\n \n \n \n \n \n \n \n \n \n \n \n {t(\n selectedGroup ===\n GROUP_TEAM\n ? 'challenge.create.teamGoal'\n : 'challenge.create.userGoal',\n )}\n \n \n \n \n \n \n \n \n \n {t(\n 'challenge.create.challengeGoal',\n )}\n \n \n \n \n \n \n \n \n \n \n ) : null}\n \n \n \n \n handleConfirm(formikProps)\n }\n data-intercom-target={`${INTERCOM_TARGET_PREFIX}SubmitButton`}\n >\n {t('challenge.create.submit')}\n \n \n \n \n \n )}\n \n
    \n );\n};\n\nCustomizeChallenge.propTypes = {\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func,\n selectedTheme: PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n iconUrl: PropTypes.string,\n description: PropTypes.string,\n themeIcon: PropTypes.string,\n contentFilterIcon: PropTypes.string,\n challengeName: PropTypes.string,\n challengeDescription: PropTypes.string,\n challengeIconUrl: PropTypes.string,\n }),\n challengeToDuplicate: PropTypes.object,\n};\n\nCustomizeChallenge.defaultProps = {\n onConfirm: noop,\n onCancel: noop,\n requestImageUpload: noop,\n templatesErrors: null,\n selectedTheme: null,\n challengeToDuplicate: null,\n};\n\nexport default CustomizeChallenge;\n","export const INTERCOM_TARGET_PREFIX = 'createChallenge';\n\nexport const BLANK_CHALLENGE_THEME_NAME = 'blank';\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n maxWidth: '1280px',\n position: 'relative',\n },\n templates: {\n marginTop: '30px',\n position: 'relative',\n minHeight: '80px',\n },\n confirmButton: {\n paddingTop: '40px',\n paddingBottom: '40px',\n },\n descriptionContainer: {\n marginTop: '30px',\n },\n}));\n\nexport default useStyles;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n moreOptionsButton: {\n paddingTop: '20px',\n },\n}));\n\nexport default useStyles;\n","import PropTypes from 'prop-types';\n\nconst TemplatePropTypes = {\n template: PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n iconUrl: PropTypes.string.isRequired,\n photoUrl: PropTypes.string,\n }),\n};\n\nexport default TemplatePropTypes;\n","import React, { useMemo, useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid } from '@material-ui/core';\n\nimport TemplatePropTypes from '../../CustomizeChallenge/propTypes';\nimport Button from '../../../../common/Button';\nimport theme from '../../../../theme';\nimport useStyles from './styles';\nimport ContentToggleButton from '../../../../common/ContentToggleButton';\nimport {\n BLANK_CHALLENGE_THEME_NAME,\n INTERCOM_TARGET_PREFIX,\n} from '../../constants';\nimport { getAppImages } from '../../../../utils';\n\nconst TEMPLATES_PER_ROW = 4;\n\nconst TemplateGroup = ({\n templates,\n selectedTemplate,\n uncutRows,\n onTemplateClicked,\n}) => {\n const classes = useStyles();\n const { t } = useTranslation();\n const [showAll, setShowAll] = useState(false);\n const toggleShowAll = useCallback(() => setShowAll(!showAll), [\n setShowAll,\n showAll,\n ]);\n const shownTemplates = useMemo(\n () =>\n showAll\n ? templates\n : templates?.slice(0, TEMPLATES_PER_ROW * uncutRows),\n [showAll, templates, uncutRows],\n );\n\n return (\n \n \n {shownTemplates?.map((template, index) => (\n \n onTemplateClicked(template)}\n />\n \n ))}\n \n {shownTemplates?.length > 0 && (\n \n onTemplateClicked({\n challengeType: BLANK_CHALLENGE_THEME_NAME,\n name: t(\n 'challenge.create.blankTheme.title',\n ),\n description: t(\n 'challenge.create.blankTheme.description',\n ),\n })\n }\n />\n )}\n \n \n {!showAll && shownTemplates?.length === templates?.length ? null : (\n \n \n {t(showAll ? 'Fewer Options' : 'More Options')}\n \n \n )}\n \n );\n};\n\nTemplateGroup.propTypes = {\n templates: PropTypes.arrayOf(TemplatePropTypes.template).isRequired,\n selectedTemplate: PropTypes.object,\n uncutRows: PropTypes.number,\n onTemplateClicked: PropTypes.func.isRequired,\n};\n\nTemplateGroup.defaultProps = {\n selectedTemplate: null,\n uncutRows: 2,\n};\n\nexport default TemplateGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, Typography } from '@material-ui/core';\n\nimport useStyles from './styles';\nimport ErrorList from '../../../common/errors/ErrorList';\nimport TemplateGroup from './TemplateGroup';\nimport { noop } from '../../../common/utils';\nimport Button from '../../../common/Button';\nimport { baseColumns } from '../../ActionsScreen/AdminActionsScreen/constants';\nimport TableManager from '../../ActionsScreen/AdminActionsScreen/TableManager';\nimport HeaderPage from '../../../common/HeaderPage';\nimport { actionTablePropType } from '../../../actions/propTypes';\nimport { PIN_ADMIN_VISIBILITY_INCLUDED_FOR_THEME } from '../../../actions/constants';\nimport { INTERCOM_TARGET_PREFIX } from '../constants';\n\nconst SelectChallengeTheme = ({\n selectedTemplate,\n themes,\n setSelectedTemplate,\n actions,\n onCustomizeClick,\n}) => {\n const classes = useStyles();\n\n const { t } = useTranslation();\n\n return (\n \n \n \n \n \n \n \n {selectedTemplate?.description}\n \n \n \n \n \n {t('challenge.create.customize')}\n \n \n \n \n {selectedTemplate && actions?.data && (\n \n )}\n \n );\n};\n\nSelectChallengeTheme.propTypes = {\n selectedTemplate: PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n iconUrl: PropTypes.string,\n description: PropTypes.string,\n }),\n themes: PropTypes.array,\n setSelectedTemplate: PropTypes.func,\n onCustomizeClick: PropTypes.func,\n actions: actionTablePropType,\n};\n\nSelectChallengeTheme.defaultProps = {\n loadingTemplates: false,\n templatesErrors: null,\n themes: [],\n selectedTemplate: null,\n setSelectedTemplate: noop,\n onCustomizeClick: noop,\n actions: {},\n clearTemplateErrors: noop,\n};\n\nexport default SelectChallengeTheme;\n","const styles = (theme) => ({\n container: {\n maxWidth: '1280px',\n position: 'relative',\n marginRight: '20px',\n marginLeft: '20px',\n justifyContent: 'center',\n },\n});\n\nexport default styles;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { Grid, withStyles } from '@material-ui/core';\n\nimport {\n challengeClearErrors,\n challengeCreationRequested,\n viewChallengeRequested,\n} from '../../challenges/actions';\nimport { getActiveCommunityId } from '../../user/selectors';\nimport {\n getChallenge,\n getChallengeCreationErrors,\n getChallengeErrors,\n getCreatedChallenge,\n isChallengeCreationRequested,\n isChallengeLoading,\n} from '../../challenges/selectors';\nimport CommonPropTypes from '../../common/propTypes';\nimport RequestLoader from '../../common/RequestLoader';\nimport CustomizeChallenge from './CustomizeChallenge';\nimport SelectChallengeTheme from './SelectChallengeTheme';\nimport { getActions } from '../../actions/selectors';\nimport { actionsRequested } from '../../actions/actions';\nimport styles from './styles';\nimport { noop } from '../../utils';\nimport {\n clearThemesErrors,\n themesRequested,\n} from '../../communityThemes/actions';\nimport {\n areThemesLoading,\n getThemes,\n getThemesErrors,\n} from '../../communityThemes/selectors';\nimport SnackBarAPIResponse from '../../common/SnackbarAlert/SnackBarAPIResponse';\nimport {\n CLIENT_PAGINATION_FETCH_LIMIT,\n PIN_ADMIN_VISIBILITY_ALL_INCLUDED,\n} from '../../actions/constants';\nimport { actionTablePropType } from '../../actions/propTypes';\n\nconst CreateChallengeScreen = ({\n classes,\n communityId,\n requestChallengeCreation,\n isChallengeCreationRequested,\n challengeCreationErrors,\n createdChallenge,\n fetchThemes,\n areThemesLoading,\n themesErrors,\n themes,\n requestActions,\n actions,\n clearErrors,\n challengeToDuplicate,\n challengeToDuplicateLoading,\n challengeToDuplicateErrors,\n fetchChallenge,\n}) => {\n const history = useHistory();\n\n const { i18n, t } = useTranslation();\n\n const language = useMemo(() => i18n.language, [i18n.language]);\n\n const challengeId = useMemo(() => {\n const params = new URLSearchParams(window.location.search);\n return params.get('challengeId');\n }, []);\n\n const isDuplicating = challengeId !== null;\n\n const [requestSent, setRequestSent] = useState(false);\n const [creationStep, setCreationStep] = useState(isDuplicating ? 1 : 0);\n\n const [selectedTheme, setSelectedTheme] = useState();\n\n const handleChallengeCreation = useCallback(\n (creationData) => {\n requestChallengeCreation({\n communityId,\n language,\n ...creationData,\n });\n setRequestSent(true);\n },\n [communityId, language, requestChallengeCreation],\n );\n\n const handleThemeSelected = useCallback(\n (theme) => {\n if (theme?.id) {\n requestActions(communityId, theme?.id);\n }\n setSelectedTheme(theme);\n },\n [communityId, requestActions, setSelectedTheme],\n );\n\n useEffect(() => {\n if (challengeToDuplicate && themes) {\n setSelectedTheme(\n themes.find(\n (theme) =>\n theme.id ===\n challengeToDuplicate.contentFilterThemes?.[0],\n ),\n );\n }\n }, [challengeToDuplicate, themes]);\n\n useEffect(() => {\n if (challengeId) {\n fetchChallenge(challengeId, communityId);\n }\n }, [fetchChallenge, challengeId, communityId]);\n\n useEffect(() => {\n fetchThemes(communityId);\n }, [fetchThemes, communityId]);\n\n useEffect(() => {\n if (\n requestSent &&\n !isChallengeCreationRequested &&\n challengeCreationErrors?.length < 1 &&\n createdChallenge != null\n ) {\n const { id } = createdChallenge;\n history.push(`/challenges/${id}/edit`);\n }\n }, [\n isChallengeCreationRequested,\n challengeCreationErrors,\n createdChallenge,\n history,\n requestSent,\n ]);\n\n let viewToDisplay;\n if (creationStep === 0) {\n viewToDisplay = (\n setCreationStep(1)}\n clearTemplateErrors={clearErrors}\n />\n );\n } else if (!challengeToDuplicateLoading) {\n viewToDisplay = (\n {\n if (challengeId) {\n history.goBack();\n } else {\n setCreationStep(0);\n }\n }}\n challengeToDuplicate={isDuplicating && challengeToDuplicate}\n selectedTheme={selectedTheme}\n />\n );\n }\n\n return (\n \n \n {viewToDisplay}\n \n \n \n \n \n \n );\n};\n\nCreateChallengeScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n communityId: PropTypes.string.isRequired,\n requestChallengeCreation: PropTypes.func.isRequired,\n isChallengeCreationRequested: PropTypes.bool.isRequired,\n requestActions: PropTypes.func.isRequired,\n fetchThemes: PropTypes.func.isRequired,\n challengeCreationErrors: CommonPropTypes.errors,\n createdChallenge: PropTypes.object,\n areThemesLoading: PropTypes.bool,\n themesErrors: PropTypes.array,\n themes: PropTypes.array,\n actions: actionTablePropType,\n clearErrors: PropTypes.func,\n challengeToDuplicate: PropTypes.object,\n challengeToDuplicateLoading: PropTypes.bool,\n challengeToDuplicateErrors: CommonPropTypes.errors,\n fetchChallenge: PropTypes.func,\n};\n\nCreateChallengeScreen.defaultProps = {\n challengeCreationErrors: null,\n createdChallenge: null,\n areThemesLoading: false,\n themesErrors: null,\n themes: null,\n loadingActions: false,\n clearErrors: noop,\n actions: {},\n challengeToDuplicate: null,\n challengeToDuplicateLoading: false,\n challengeToDuplicateErrors: null,\n fetchChallenge: noop,\n};\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n isChallengeCreationRequested: isChallengeCreationRequested(state),\n challengeCreationErrors: getChallengeCreationErrors(state),\n createdChallenge: getCreatedChallenge(state),\n themes: getThemes(state),\n themesErrors: getThemesErrors(state),\n areThemesLoading: areThemesLoading(state),\n actions: getActions(state, PIN_ADMIN_VISIBILITY_ALL_INCLUDED),\n challengeToDuplicate: getChallenge(state),\n challengeToDuplicateLoading: isChallengeLoading(state),\n challengeToDuplicateErrors: getChallengeErrors(state),\n});\n\nexport const StyledChallengeScreen = withStyles(styles)(CreateChallengeScreen);\n\nconst mapDispatchToProps = (dispatch) => ({\n requestChallengeCreation: (request) =>\n dispatch(challengeCreationRequested(request)),\n fetchThemes: (communityId) => dispatch(themesRequested(communityId)),\n requestActions: (communityId, themeId) =>\n dispatch(\n actionsRequested(communityId, {\n limit: CLIENT_PAGINATION_FETCH_LIMIT,\n themeIds: [themeId],\n visibility: PIN_ADMIN_VISIBILITY_ALL_INCLUDED,\n }),\n ),\n clearErrors: () => {\n dispatch(challengeClearErrors());\n dispatch(clearThemesErrors());\n },\n fetchChallenge: (challengeId, communityId) =>\n dispatch(viewChallengeRequested({ challengeId, communityId })),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledChallengeScreen);\n","const styles = (theme) => ({\n container: {\n padding: '0px',\n },\n header: {\n marginTop: '40px',\n marginBottom: '20px',\n },\n headerName: {\n fontSize: '36px',\n fontWeight: 600,\n },\n helpIcon: {\n color: theme.custom.tooltipIconColor,\n marginLeft: '5px',\n fontSize: '65%',\n\n '&:hover': {\n cursor: 'pointer',\n },\n },\n divider: {\n width: '100%',\n height: '1px',\n border: 'none',\n backgroundColor: theme.custom.bgDarkHover,\n },\n challengeIcon: {\n borderColor: '#fff',\n borderStyle: 'solid',\n borderWidth: '2px',\n borderRadius: '6px 6px 50% 50%',\n position: 'relative',\n zIndex: '0',\n },\n challengeTitle: {\n fontWeight: 700,\n },\n table: {\n marginTop: '40px',\n },\n newDateCell: {\n backgroundColor: 'red',\n },\n centerColumn: {\n width: '100%',\n textAlign: 'center',\n },\n icon: {\n position: 'absolute',\n top: '-2px',\n left: '-2px',\n zIndex: '1',\n opacity: 1,\n background: '#fff',\n height: '18px',\n width: '18px',\n borderColor: '#d3d3d3',\n borderStyle: 'solid',\n borderWidth: '2px',\n borderRadius: '50%',\n },\n tooltip: {\n position: 'absolute',\n top: '-2px',\n left: '-2px',\n height: '18px',\n width: '18px',\n backgroundColor: 'transparent',\n },\n});\n\nexport default styles;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\nimport { Grid, Link, withStyles } from '@material-ui/core';\nimport { Add } from '@material-ui/icons';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\n\nimport styles from './styles';\nimport Button from '../../../common/Button';\nimport Table from '../../../common/Table';\nimport { getTimezoneAbbrev } from '../../../utils/dates';\nimport {\n getChallengesScreenActionErrors,\n getChallengesScreenActionResponse,\n getGroupLoadingStates,\n getGroupTableData,\n isChallengesScreenActionLoading,\n} from '../selectors';\nimport {\n challengeActivationRequested,\n challengeDeactivationRequested,\n challengeDeletionRequested,\n challengeReportRequested,\n challengesRequested,\n clearChallengesScreenActionErrors,\n} from '../../../challenges/actions';\nimport { getActiveCommunityId } from '../../../user/selectors';\nimport {\n ACTIVATE_ACTION,\n BUTTONS_CELL,\n DEACTIVATE_ACTION,\n DELETE_CHALLENGE_ACTION,\n GENERATE_REPORT_ACTION,\n GROUP_ACTIVE,\n GROUP_DEACTIVATED,\n GROUP_DRAFT,\n GROUP_NAMES,\n GROUP_PAST,\n GROUP_UPCOMING,\n GROUPS,\n INTERCOM_TARGET_PREFIX,\n} from '../constants';\nimport { Can } from '../../../casl/ability-context';\nimport CommonPropTypes from '../../../common/propTypes';\nimport { sortPropType } from '../../../common/Table/propTypes';\nimport ActivateModal from '../../../common/ActivateModal';\nimport SnackBarAPIResponse from '../../../common/SnackbarAlert/SnackBarAPIResponse';\nimport { handleButtonsCell } from '../../../utils/challengeButtons';\nimport { getAppImages } from '../../../utils';\nimport { useTrackScreenView } from '../../../utils/analytics';\nimport HeaderPage from '../../../common/HeaderPage';\nimport { CommunitiesIcon } from '../../../assets/images/svg/index';\nimport Tooltip from '../../../common/Tooltip';\n\nconst groupsForPath = (path) => {\n switch (path) {\n case '/challenges/active':\n return [GROUP_ACTIVE];\n case '/challenges/drafts':\n return [GROUP_DRAFT];\n case '/challenges/upcoming':\n return [GROUP_UPCOMING];\n case '/challenges/past':\n return [GROUP_PAST];\n case '/challenges/deactivated':\n return [GROUP_DEACTIVATED];\n default:\n return GROUPS;\n }\n};\n\nconst ChallengesScreen = ({\n classes,\n tableData,\n loadFunc,\n communityId,\n groupLoadingStates,\n initialSort,\n isActionLoading,\n actionErrors,\n actionResponse,\n requestActivation,\n requestDeactivation,\n requestChallengeReport,\n clearErrors,\n requestDeletion,\n}) => {\n const { path } = useRouteMatch();\n const { t, i18n } = useTranslation();\n const tzCode = getTimezoneAbbrev(i18n.language);\n const history = useHistory();\n\n useTrackScreenView('challenge_view_overview_admin');\n\n const usedGroups = useMemo(() => groupsForPath(path), [path]);\n\n const [modalDetails, setModalDetails] = useState(null);\n\n const loadAllGroups = useCallback(\n (communityId) => {\n usedGroups.forEach((group) => {\n loadFunc({\n communityId,\n group,\n });\n });\n },\n [usedGroups, loadFunc],\n );\n\n useEffect(() => {\n loadAllGroups(communityId);\n }, [loadAllGroups, communityId]);\n\n const makeColumns = () => [\n {\n accessor: 'icon',\n Cell: ({ value }) => (\n \n \n {value.communityId && value.communityId !== communityId && (\n \n loadAllGroups(communityId)}\n >\n \n \n \n )}\n \n ),\n },\n {\n Header: t('Title'),\n accessor: 'title',\n Cell: ({ value }) => (\n
    {value}
    \n ),\n },\n {\n Header: t('Teams'),\n accessor: 'teams',\n Cell: ({ value }) => (\n
    {value}
    \n ),\n align: 'center',\n },\n {\n Header: t('Members'),\n accessor: 'members',\n Cell: ({ value }) => (\n
    {value}
    \n ),\n align: 'center',\n },\n {\n Header: `${t('challenge.startDate')} (${tzCode})`,\n accessor: 'startDate',\n Cell: ({ value }) => (\n
    \n {moment(value).format('M/D/YY h:mm A')}\n
    \n ),\n align: 'center',\n },\n {\n Header: `${t('challenge.endDate')} (${tzCode})`,\n accessor: 'endDate',\n Cell: ({ value }) => (\n
    \n {moment(value).format('M/D/YY h:mm A')}\n
    \n ),\n align: 'center',\n },\n { accessor: 'actions' },\n ];\n\n const columns = makeColumns();\n\n const handleCreateChallenge = () => {\n history.push('/challenges/create');\n };\n\n const findChallengeById = (id) => {\n let challengeData = null;\n for (const group of usedGroups) {\n challengeData = tableData[group].find((item) => item.id === id);\n if (challengeData != null) {\n break;\n }\n }\n return challengeData;\n };\n\n const [isActionSent, setActionSent] = useState(false);\n\n useEffect(() => {\n if (\n isActionSent &&\n !isActionLoading &&\n actionErrors == null &&\n actionResponse != null\n ) {\n loadAllGroups(communityId);\n setActionSent(false);\n }\n }, [\n isActionSent,\n isActionLoading,\n actionErrors,\n actionResponse,\n loadAllGroups,\n communityId,\n ]);\n\n const handleCloseModal = () => {\n modalDetails && setModalDetails({ ...modalDetails, isOpen: false });\n };\n\n const handleConfirm = () => {\n handleCloseModal();\n const challengeId = modalDetails.items[0].identifier;\n const requestBody = {\n communityId,\n challengeId,\n };\n switch (modalDetails.action) {\n case ACTIVATE_ACTION:\n requestActivation(requestBody);\n setActionSent(true);\n break;\n case DEACTIVATE_ACTION:\n requestDeactivation(requestBody);\n setActionSent(true);\n break;\n case GENERATE_REPORT_ACTION:\n requestChallengeReport(challengeId);\n break;\n case DELETE_CHALLENGE_ACTION:\n requestDeletion(requestBody);\n setActionSent(true);\n break;\n default:\n break;\n }\n };\n\n const onButtonsCell = (id, key) => {\n const challenge = findChallengeById(id);\n handleButtonsCell(\n id,\n key,\n challenge?.title,\n challenge?.icon?.url,\n history,\n setModalDetails,\n t,\n );\n };\n return (\n \n {modalDetails && (\n \n )}\n \n \n \n \n {t('challenge.create.submit')}\n \n \n }\n />\n \n {usedGroups.map((group, index) => {\n return (\n \n \n \n );\n })}\n \n \n );\n};\n\nChallengesScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n tableData: PropTypes.object.isRequired,\n loadFunc: PropTypes.func.isRequired,\n communityId: PropTypes.string.isRequired,\n groupLoadingStates: PropTypes.object.isRequired,\n\n // Define initial sorting behavior for all tables rendered by this screen.\n initialSort: sortPropType,\n\n // selectors and actions for challenge [de]activation\n isActionLoading: PropTypes.bool.isRequired,\n actionErrors: CommonPropTypes.errors,\n actionResponse: PropTypes.object,\n requestActivation: PropTypes.func.isRequired,\n requestDeactivation: PropTypes.func.isRequired,\n requestChallengeReport: PropTypes.func.isRequired,\n requestDeletion: PropTypes.func.isRequired,\n clearErrors: PropTypes.func.isRequired,\n};\n\nChallengesScreen.defaultProps = {\n initialSort: [{ id: 'startDate', desc: true }],\n actionErrors: null,\n actionResponse: null,\n};\n\nconst StyledChallengesScreen = withStyles(styles)(ChallengesScreen);\n\nconst mapStateToProps = (state) => ({\n tableData: GROUPS.reduce(\n (acc, group) => ({\n ...acc,\n [group]: getGroupTableData(state, group),\n }),\n {},\n ),\n communityId: getActiveCommunityId(state),\n groupLoadingStates: getGroupLoadingStates(state),\n isActionLoading: isChallengesScreenActionLoading(state),\n actionErrors: getChallengesScreenActionErrors(state),\n actionResponse: getChallengesScreenActionResponse(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n loadFunc: (request) => dispatch(challengesRequested(request)),\n requestActivation: (request) =>\n dispatch(challengeActivationRequested(request)),\n requestDeactivation: (request) =>\n dispatch(challengeDeactivationRequested(request)),\n requestChallengeReport: (challengeId) =>\n dispatch(challengeReportRequested(challengeId)),\n requestDeletion: (request) => dispatch(challengeDeletionRequested(request)),\n clearErrors: () => dispatch(clearChallengesScreenActionErrors()),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledChallengesScreen);\n","const styles = (theme) => ({\n container: {\n padding: '29px 0px',\n },\n bannerTitle: {\n marginBottom: 10,\n marginTop: 15,\n fontSize: 30,\n fontWeight: 'bold',\n },\n bannerBody: {\n margin: '0 0 10px',\n fontSize: 24,\n },\n sectionHeading: {\n marginTop: '20px',\n marginBottom: '10px',\n },\n title: {\n fontSize: '36px',\n },\n infoIcon: {\n marginLeft: '6px',\n fontSize: '28px',\n color: 'rgba(51,51,51,.25)',\n cursor: 'pointer',\n\n '&:hover': {\n color: 'rgba(51,51,51,.5)',\n },\n },\n searchContainer: {\n position: 'relative',\n paddingBottom: '20px',\n },\n emptyTextContainer: {\n padding: '20px',\n textAlign: 'center',\n },\n emptyText: {\n fontWeight: 600,\n color: theme.custom.textLightSecondaryColor,\n },\n searchList: {\n border: 'solid 1px',\n borderColor: theme.custom.grey,\n display: 'inline-block',\n borderRadius: '5px',\n maxHeight: '300px',\n height: 'auto',\n overflowY: 'auto',\n position: 'absolute',\n left: '50px',\n zIndex: '9999',\n backgroundColor: 'white',\n boxShadow: '0 6px 12px rgb(0 0 0 / 18%)',\n '&::-webkit-scrollbar': {\n width: '0.7em',\n },\n '&::-webkit-scrollbar-track': {\n boxShadow: 'inset 0 0 6px rgba(0,0,0,0.00)',\n webkitBoxShadow: 'inset 0 0 6px rgba(0,0,0,0.00)',\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: 'white',\n borderRadius: '20px',\n },\n '& li': {\n padding: '5px 25px',\n '&:hover': {\n backgroundColor: theme.palette.primary.main,\n '& a': {\n color: 'white',\n },\n },\n '& a': {\n display: 'flex',\n textDecoration: 'none',\n color: theme.custom.textDarkColor,\n '&:focus-visible': {\n outline: 'none',\n },\n '& img': {\n width: '25px',\n marginRight: '10px',\n },\n },\n },\n '&:hover': {\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: 'rgba(0,0,0,.1)',\n borderRadius: '20px',\n },\n },\n },\n challengeHeading: {\n textAlign: 'left',\n paddingBottom: '16px',\n },\n challengeSection: {\n margin: '20px 0',\n },\n noChallengesText: {\n textAlign: 'center',\n },\n});\n\nexport default styles;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { debounce } from 'lodash';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport moment from 'moment';\nimport { useTranslation } from 'react-i18next';\n\nimport styles from './styles';\nimport {\n challengeSearchRequested,\n setChallenge,\n userChallengesRequested,\n} from '../../../challenges/actions';\nimport { getActiveCommunityId } from '../../../user/selectors';\nimport SearchBar from '../../../common/Search';\nimport { getAppImages, noop } from '../../../utils';\nimport { isGroupLoading } from '../selectors';\nimport ActionCard from '../../../common/ActionCard';\nimport { dateDifferenceInLargestUnits } from '../../../utils/dates';\nimport { useTrackScreenView } from '../../../utils/analytics';\nimport InfoCardHeader from '../../../common/InfoCardHeader';\nimport { INFO_CARD_USER_CHALLENGE } from '../../../common/InfoCard/constants';\nimport {\n getAvailableChallenges,\n getSearchedChallenges,\n getUserPreviousChallenges,\n getUserSubscribedChallenges,\n isChallengesLoading,\n} from '../../../challenges/selectors';\nimport { RequestLoader } from '../../../common/RequestLoader';\n\nconst CHALLENGE_DEFAULT_SECTION = 'default';\nconst CHALLENGE_AVAILABLE_SECTION = 'available';\nconst CHALLENGE_PREVIOUS_SECTION = 'previous';\n\nconst ChallengesScreen = ({\n classes,\n loadAllChallengesFunc,\n communityId,\n isAllChallengesLoading,\n availableChallenges,\n subscribedChallenges,\n previousChallenges,\n setChallenge,\n searchChallenges,\n searchedChallenges,\n searchLoading,\n}) => {\n const { t } = useTranslation();\n\n const [challenges, setChallenges] = useState(() => ({\n [CHALLENGE_DEFAULT_SECTION]: [],\n [CHALLENGE_AVAILABLE_SECTION]: [],\n [CHALLENGE_PREVIOUS_SECTION]: [],\n }));\n const [searchText, setSearchText] = useState('');\n\n useTrackScreenView('challenge_view_overview');\n\n const loadChallenges = useCallback(() => {\n loadAllChallengesFunc({\n communityId,\n });\n }, [loadAllChallengesFunc, communityId]);\n\n const formatChallengeEndDateDetails = useCallback(\n (endDate) => {\n const currentDate = moment();\n const challengeEnded = currentDate.unix() > moment(endDate).unix();\n return challengeEnded\n ? `${t('challengeEndedOn')} ${moment(endDate).format(\n 'MM/DD/YY',\n )}`\n : `${t(\n 'challenge.challengeEndsIn',\n )} ${dateDifferenceInLargestUnits(\n currentDate.toDate(),\n moment(endDate).toDate(),\n )}`;\n },\n [t],\n );\n\n const initFilteredItems = useCallback(() => {\n setChallenges((prevState) => {\n return {\n ...prevState,\n [CHALLENGE_DEFAULT_SECTION]: subscribedChallenges,\n };\n });\n setChallenges((prevState) => {\n return {\n ...prevState,\n [CHALLENGE_AVAILABLE_SECTION]: availableChallenges,\n };\n });\n setChallenges((prevState) => {\n return {\n ...prevState,\n [CHALLENGE_PREVIOUS_SECTION]: previousChallenges,\n };\n });\n }, [availableChallenges, subscribedChallenges, previousChallenges]);\n\n useEffect(() => {\n loadChallenges();\n }, [loadChallenges]);\n\n useEffect(() => {\n initFilteredItems();\n }, [initFilteredItems]);\n\n useEffect(() => {\n if (searchedChallenges) {\n const subscribed = [];\n const available = [];\n const previous = [];\n searchedChallenges.forEach((challenge) => {\n if (challenge.participationStatus === 'joined')\n subscribed.push(challenge);\n else if (challenge.endDate < Date.now())\n previous.push(challenge);\n else available.push(challenge);\n });\n setChallenges((prevState) => {\n return {\n ...prevState,\n [CHALLENGE_DEFAULT_SECTION]: subscribed,\n };\n });\n setChallenges((prevState) => {\n return {\n ...prevState,\n [CHALLENGE_AVAILABLE_SECTION]: available,\n };\n });\n setChallenges((prevState) => {\n return {\n ...prevState,\n [CHALLENGE_PREVIOUS_SECTION]: previous,\n };\n });\n }\n }, [searchedChallenges]);\n\n // ensures we don't recreate the debounce object on rerender\n const debouncedResults = useMemo(() => {\n const onSearch = (text) => {\n setSearchText(text);\n if (text) {\n searchChallenges(text);\n } else {\n initFilteredItems();\n }\n };\n return debounce(onSearch, 300);\n }, [initFilteredItems, searchChallenges]);\n\n // cleanup any pending debounce calls if the component unmounts\n useEffect(() => {\n return () => {\n debouncedResults.cancel();\n };\n });\n\n return (\n \n \n \n {t('challenge.infoCard.title')}\n \n \n {t('challenge.infoCard.description')}\n \n \n \n \n \n \n \n {!isAllChallengesLoading &&\n !searchLoading &&\n challenges.default?.length === 0 &&\n challenges.available.length === 0 &&\n challenges.previous.length === 0 && (\n \n {searchText\n ? t('challenge.noChallengesSearch')\n : t('challenge.noChallenges')}\n \n )}\n {!searchLoading && challenges.default?.length > 0 && (\n \n \n \n {t('challenge.yourChallenges')}\n \n \n\n \n {challenges.default?.map((challenge) => (\n setChallenge(challenge)}\n >\n \n \n ))}\n \n \n )}\n\n {!searchLoading && challenges.available?.length > 0 && (\n \n \n \n {t('challenge.availableChallenges')}\n \n \n \n {challenges.available?.map((challenge) => (\n setChallenge(challenge)}\n >\n \n \n ))}\n \n \n )}\n\n {!searchLoading && challenges.previous?.length > 0 && (\n \n \n \n {t('challenge.previousChallenges')}\n \n \n\n \n {challenges.previous?.map((challenge) => (\n setChallenge(challenge)}\n >\n \n \n ))}\n \n \n )}\n \n \n );\n};\n\nChallengesScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n availableChallenges: PropTypes.object.isRequired,\n subscribedChallenges: PropTypes.object.isRequired,\n previousChallenges: PropTypes.object.isRequired,\n loadAllChallengesFunc: PropTypes.func.isRequired,\n communityId: PropTypes.string.isRequired,\n isAllChallengesLoading: PropTypes.bool.isRequired,\n setChallenge: PropTypes.func.isRequired,\n searchChallenges: PropTypes.func.isRequired,\n searchedChallenges: PropTypes.array,\n searchLoading: PropTypes.bool.isRequired,\n};\n\nChallengesScreen.defaultProps = {\n loadAllChallengesFunc: noop,\n isAllChallengesLoading: false,\n isAvailableChallengesLoading: false,\n communityId: '',\n searchedChallenges: [],\n};\n\nconst StyledChallengesScreen = withStyles(styles)(ChallengesScreen);\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n availableChallenges: getAvailableChallenges(state),\n subscribedChallenges: getUserSubscribedChallenges(state),\n previousChallenges: getUserPreviousChallenges(state),\n isAllChallengesLoading: isGroupLoading(state, 'all'),\n isAvailableChallengesLoading: isGroupLoading(state, 'available'),\n searchedChallenges: getSearchedChallenges(state),\n searchLoading: isChallengesLoading(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n setChallenge: (challenge) => dispatch(setChallenge(challenge?.id)),\n loadAllChallengesFunc: (request) =>\n dispatch(userChallengesRequested(request)),\n searchChallenges: (searchString) =>\n dispatch(challengeSearchRequested(searchString)),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledChallengesScreen);\n","const styles = (theme) => ({\n container: {\n paddingLeft: theme.custom.mainContentHorizontalPadding,\n paddingRight: theme.custom.mainContentHorizontalPadding,\n maxWidth: theme.custom.mainContentWidth,\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n header: {\n marginTop: '40px',\n marginBottom: '20px',\n },\n headerName: {\n fontSize: '36px',\n fontWeight: 600,\n },\n helpIcon: {\n color: theme.custom.tooltipIconColor,\n marginLeft: '5px',\n fontSize: '65%',\n\n '&:hover': {\n cursor: 'pointer',\n },\n },\n divider: {\n width: '100%',\n height: '1px',\n border: 'none',\n backgroundColor: theme.custom.bgDarkHover,\n },\n challengeIcon: {\n borderColor: '#fff',\n borderStyle: 'solid',\n borderWidth: '2px',\n borderRadius: '6px 6px 50% 50%',\n },\n challengeTitle: {\n fontWeight: 700,\n },\n table: {\n marginTop: '40px',\n },\n newDateCell: {\n backgroundColor: 'red',\n },\n centerColumn: {\n width: '100%',\n textAlign: 'center',\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, withStyles } from '@material-ui/core';\nimport { Can } from '../../casl/ability-context';\nimport AdminChallengesScreen from './AdminChallengesScreen';\nimport UserChallengesScreen from './UserChallengesScreen';\nimport styles from './styles';\n\nconst ChallengesScreen = ({ classes }) => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nChallengesScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles)(ChallengesScreen);\n","const styles = (theme) => ({\n container: {\n maxWidth: '1280px',\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n divider: {\n width: '100%',\n height: '1px',\n border: 'none',\n backgroundColor: theme.custom.bgDarkHover,\n marginTop: '20px',\n marginBottom: '30px',\n },\n loaderWrapper: {\n position: 'relative',\n },\n bottom: {\n height: 0,\n },\n});\n\nexport default styles;\n","const styles = (theme) => ({\n header: {\n fontSize: '36px',\n fontWeight: 600,\n marginTop: '40px',\n marginBottom: '40px',\n },\n helpIcon: {\n color: theme.custom.tooltipIconColor,\n marginLeft: '5px',\n fontSize: '65%',\n\n '&:hover': {\n cursor: 'pointer',\n },\n },\n timezone: {\n fontSize: '14px',\n fontWeight: 400,\n marginBottom: '10px',\n color: '#999',\n },\n backIcon: {\n padding: 0,\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, IconButton, Typography, withStyles } from '@material-ui/core';\nimport { ArrowBack } from '@material-ui/icons';\nimport styles from './styles';\nimport { getTimezoneAbbrev } from '../../../utils/dates';\nimport { noop } from '../../../utils';\nimport { useTranslation } from 'react-i18next';\nimport HeaderPage from '../../HeaderPage';\n\nconst TopSection = ({\n classes,\n title,\n handleBack,\n redirectLink,\n intercomTargetPrefix,\n}) => {\n const { t } = useTranslation();\n\n return (\n \n \n \n \n \n \n \n \n \n {`(${getTimezoneAbbrev()})`}\n \n \n \n );\n};\n\nTopSection.propTypes = {\n classes: PropTypes.object.isRequired,\n title: PropTypes.string,\n handleBack: PropTypes.func,\n redirectLink: PropTypes.string,\n intercomTargetPrefix: PropTypes.string,\n};\n\nTopSection.defaultProps = {\n title: '',\n handleBack: noop,\n redirectLink: '',\n intercomTargetPrefix: '',\n};\n\nexport default withStyles(styles)(TopSection);\n","const styles = (theme) => ({\n container: {\n paddingTop: '5px',\n paddingRight: '32px',\n paddingLeft: '32px',\n },\n counterContainer: { paddingBottom: '30px' },\n header: {\n margin: '5px 0 20px',\n borderBottom: `1px solid ${theme.custom.bgDarkHover}`,\n },\n timezone: {\n fontSize: '13.5px',\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n title: {\n margin: '20px 0 10px',\n fontSize: '36px',\n fontWeight: 600,\n },\n titleIcon: {\n marginLeft: '5px',\n color: theme.custom.iconColor,\n\n '&:hover': {\n color: theme.custom.iconColorHover,\n },\n },\n label: {\n margin: '20px 0 10px',\n fontSize: '24px',\n fontWeight: 600,\n color: theme.custom.textDarkSecondaryColor,\n },\n topUsers: {\n paddingRight: '8px',\n\n [theme.breakpoints.down('sm')]: {\n paddingRight: 0,\n },\n },\n topActions: {\n paddingLeft: '8px',\n\n [theme.breakpoints.down('sm')]: {\n paddingLeft: 0,\n },\n },\n relative: {\n position: 'relative',\n },\n impactStatCard: {\n flexGrow: 1,\n },\n filterLabel: {\n color: theme.palette.primary.main,\n fontWeight: 600,\n padding: '0 10px',\n fontSize: '13px',\n },\n});\n\nexport default styles;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\nimport queryString from 'query-string';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport { getActiveCommunityId } from '../../user/selectors';\nimport {\n getActiveUsersGraphData,\n getActivityStats,\n getImpactStats,\n getNewUsersGraphData,\n getTopFiveActions,\n getTopFiveUsers,\n getTotalLogsGraphData,\n getUserStats,\n isActivityStatsLoading,\n isGraphDataLoading,\n isImpactStatsLoading,\n isUserStatsLoading,\n} from '../../analytics/selectors';\nimport {\n arePhotosLoading,\n getTopPhotos,\n} from '../../analytics/photos/selectors';\nimport { communityPhotosRequested } from '../../analytics/photos/actions';\nimport {\n activitiesRequested,\n graphDataRequested,\n impactStatsRequested,\n usersAnalyticRequested,\n} from '../../analytics/actions';\nimport Graph from '../../common/Graph';\nimport {\n CHART_INTERVAL_DAY,\n CHART_INTERVALS,\n GRAPH_METRIC_ACTIVE_USERS,\n GRAPH_METRIC_NEW_USERS,\n GRAPH_METRIC_TOTAL_LOGS,\n} from '../../common/Graph/ChartItem/constants';\nimport TabbedSection from '../../common/TabbedSection';\nimport StatCard from '../../common/StatCard';\nimport Leaderboard from '../../common/Leaderboard';\nimport TopPhotos from '../../common/TopPhotos';\nimport RequestLoader from '../../common/RequestLoader';\nimport IMAGES from '../../constants/images';\nimport styles from './styles';\nimport {\n PHOTOS_BATCH_SIZE,\n TOP_PHOTOS_SIZE,\n} from '../../common/TopPhotos/constants';\nimport { getAppImages } from '../../utils';\nimport { trackEvent } from '../../utils/analytics';\nimport { ANALYTICS_SCREEN } from '../../common/PhotoCard/constants';\nimport { getResolution } from '../../analytics/utils';\nimport DatePickerRange from '../../common/DatePickerRange';\nimport { LEADERBOARD_TYPE_TOP_USERS } from '../../common/Leaderboard/constants';\nimport HeaderPage from '../../common/HeaderPage';\nimport { ANALYTICS_FILTER_CHANGED } from '../../constants/analyticsEvents';\n\nexport const DATE_FORMAT = 'MM/DD/YYYY';\n\nconst INTERCOM_TARGET_PREFIX = 'analytics';\n\nconst AnalyticsScreen = ({\n classes,\n communityId,\n activityStats,\n userStats,\n impactStats,\n totalLogsGraphData,\n newUsersGraphData,\n activeUsersGraphData,\n topUsers,\n topActions,\n fetchActivityStats,\n isActivityLoading,\n fetchUserStats,\n isUserLoading,\n fetchImpactStats,\n isImpactLoading,\n fetchGraphData,\n isGraphLoading,\n fetchTopPhotos,\n topPhotos,\n isPhotosLoading,\n}) => {\n const { t } = useTranslation();\n const location = useLocation();\n const history = useHistory();\n\n const [intervals, setIntervals] = useState(CHART_INTERVALS);\n const [interval, setInterval] = useState(CHART_INTERVAL_DAY);\n const [metric, setMetric] = useState(GRAPH_METRIC_TOTAL_LOGS);\n const [tabIndex, setTabIndex] = useState(0);\n\n const queryVals = queryString.parse(location.search);\n const [startDate, setStartDate] = useState(\n queryVals.startDate\n ? moment(queryVals.startDate)\n : moment().subtract(1, 'months'),\n );\n const [endDate, setEndDate] = useState(\n queryVals.endDate ? moment(queryVals.endDate) : moment(),\n );\n const [dateChange, setDateChange] = useState(false);\n\n const charts = [\n { name: t('totalLogs.title') },\n { name: t('activeUsers.title') },\n { name: t('newUsers.title') },\n ];\n const activityStatsTab = [\n {\n id: 0,\n title: t('totalLogs.title'),\n info: t('totalLogs.description'),\n },\n {\n id: 1,\n title: t('Points'),\n info: t('points.description'),\n },\n {\n id: 2,\n title: t('actionsMastered.title'),\n info: t('actionsMastered.description'),\n },\n {\n id: 3,\n title: t('uniqueActions.title'),\n info: t('uniqueActions.description'),\n },\n ];\n const userStatsTab = [\n {\n id: 0,\n title: t('activeUsers.title'),\n info: t('activeUsers.description'),\n },\n {\n id: 1,\n title: t('newUsers.title'),\n info: t('newUsers.description'),\n },\n {\n id: 2,\n title: t('logsPerUser.title'),\n info: t('logsPerUser.description'),\n },\n {\n id: 3,\n title: t('logsPerUserPerDay.title'),\n info: t('logsPerUserPerDay.description'),\n },\n ];\n\n const renderStatsTab = (stats, values, statCardGridItemProps = {}) => (\n \n {stats.map((statDetails, index) => (\n \n \n \n ))}\n \n );\n\n const statsTabs = {\n [t('activity.descriptor')]: renderStatsTab(\n activityStatsTab,\n activityStats,\n ),\n [t('users.descriptor')]: renderStatsTab(userStatsTab, userStats),\n [t('impact.descriptor')]: renderStatsTab(impactStats, impactStats, {\n className: classes.impactStatCard,\n md: true,\n }),\n };\n\n const onViewAllPhotosClick = () => {\n history.push(\n `/analytics/photos?${getDateQueryString(startDate, endDate)}`,\n );\n };\n\n const onViewAllTopActionsClick = () => {\n history.push(\n `/analytics/top-actions?${getDateQueryString(startDate, endDate)}`,\n );\n };\n\n const options = {\n startDateIso: startDate.toISOString(),\n endDateIso: endDate.toISOString(),\n scope: 'organization',\n };\n\n const checkIncludeInterval = (intervals) => {\n if (!intervals.includes(interval)) {\n setInterval(intervals[0]);\n return intervals[0];\n }\n\n return interval;\n };\n\n const getIntervalByDate = () => {\n const diffWeeks = moment(endDate).diff(moment(startDate), 'weeks');\n const diffMonth = moment(endDate).diff(moment(startDate), 'months');\n\n if (diffMonth > 12) {\n return ['month', 'year'];\n } else if (diffWeeks > 9) {\n return ['week', 'month'];\n } else {\n return ['day', 'week', 'month'];\n }\n };\n\n const fetchData = () => {\n const newIntervals = getIntervalByDate();\n setIntervals(newIntervals);\n const newInterval = checkIncludeInterval(newIntervals);\n\n fetchGraphData(\n { ...options, metric, resolution: newInterval },\n communityId,\n );\n fetchActivityStats(options, communityId);\n fetchUserStats(options, communityId);\n fetchImpactStats(\n { ...options, resolution: getResolution(startDate, endDate) },\n communityId,\n );\n fetchTopPhotos({\n afterTimestamp: startDate.unix(),\n beforeTimestamp: endDate.unix(),\n limit: PHOTOS_BATCH_SIZE,\n skip: 0,\n communityId,\n });\n };\n\n useEffect(() => {\n if (dateChange) fetchData();\n setDateChange(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dateChange]);\n\n const intervalChangeHandler = (interval) => {\n setInterval(interval);\n trackEvent(ANALYTICS_FILTER_CHANGED);\n\n fetchGraphData(\n { ...options, metric, resolution: interval },\n communityId,\n );\n };\n\n const getGraphData = useCallback(\n (newMetric) => {\n switch (newMetric || metric) {\n case GRAPH_METRIC_ACTIVE_USERS:\n return activeUsersGraphData;\n case GRAPH_METRIC_NEW_USERS:\n return newUsersGraphData;\n default:\n return totalLogsGraphData;\n }\n },\n [activeUsersGraphData, metric, newUsersGraphData, totalLogsGraphData],\n );\n\n const getDateQueryString = (startDate, endDate) => {\n const dates = {\n endDate: moment(endDate).format('YYYY-MM-DD'),\n startDate: moment(startDate).format('YYYY-MM-DD'),\n };\n return `${queryString.stringify(dates)}`;\n };\n\n const tabChangeHandler = (tab) => {\n let newMetric = GRAPH_METRIC_TOTAL_LOGS;\n setTabIndex(tab);\n if (tab === 1) {\n newMetric = GRAPH_METRIC_ACTIVE_USERS;\n } else if (tab === 2) {\n newMetric = GRAPH_METRIC_NEW_USERS;\n }\n setMetric(newMetric);\n if (getGraphData(newMetric)?.data?.length < 1) {\n fetchGraphData(\n { ...options, metric: newMetric, resolution: interval },\n communityId,\n );\n }\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => fetchData(), [communityId]);\n\n return (\n \n {\n history.push({\n pathname: `/analytics`,\n search: getDateQueryString(startDate, endDate),\n });\n setStartDate(startDate);\n setEndDate(endDate);\n setDateChange(true);\n }}\n />\n }\n />\n \n \n \n \n {t('stats')}\n \n \n \n \n \n \n \n \n \n \n \n \n TOP_PHOTOS_SIZE\n ? topPhotos.slice(0, TOP_PHOTOS_SIZE)\n : topPhotos\n }\n intercomTargetPrefix={`${INTERCOM_TARGET_PREFIX}`}\n onViewAllClick={onViewAllPhotosClick}\n screen={ANALYTICS_SCREEN}\n />\n \n \n \n );\n};\n\nAnalyticsScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n communityId: PropTypes.string.isRequired,\n activityStats: PropTypes.array.isRequired,\n userStats: PropTypes.array.isRequired,\n impactStats: PropTypes.array.isRequired,\n totalLogsGraphData: PropTypes.object.isRequired,\n newUsersGraphData: PropTypes.object.isRequired,\n activeUsersGraphData: PropTypes.object.isRequired,\n topActions: PropTypes.array.isRequired,\n topUsers: PropTypes.array.isRequired,\n fetchActivityStats: PropTypes.func.isRequired,\n isActivityLoading: PropTypes.bool.isRequired,\n fetchUserStats: PropTypes.func.isRequired,\n isUserLoading: PropTypes.bool.isRequired,\n fetchImpactStats: PropTypes.func.isRequired,\n isImpactLoading: PropTypes.bool.isRequired,\n fetchGraphData: PropTypes.func.isRequired,\n isGraphLoading: PropTypes.object.isRequired,\n fetchTopPhotos: PropTypes.func.isRequired,\n topPhotos: PropTypes.arrayOf(\n PropTypes.shape({\n url: PropTypes.string,\n actionUrl: PropTypes.string,\n likes: PropTypes.array,\n comments: PropTypes.array,\n }),\n ),\n isPhotosLoading: PropTypes.bool.isRequired,\n};\n\nAnalyticsScreen.defaultProps = {\n topPhotos: [],\n};\n\nexport const StyledAnalyticsScreen = withStyles(styles)(AnalyticsScreen);\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n activityStats: getActivityStats(state),\n userStats: getUserStats(state),\n impactStats: getImpactStats(state),\n totalLogsGraphData: getTotalLogsGraphData(state),\n newUsersGraphData: getNewUsersGraphData(state),\n activeUsersGraphData: getActiveUsersGraphData(state),\n topActions: getTopFiveActions(state),\n topUsers: getTopFiveUsers(state),\n isActivityLoading: isActivityStatsLoading(state),\n isUserLoading: isUserStatsLoading(state),\n isImpactLoading: isImpactStatsLoading(state),\n isGraphLoading: isGraphDataLoading(state),\n topPhotos: getTopPhotos(state),\n isPhotosLoading: arePhotosLoading(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n fetchActivityStats: (options, communityId) =>\n dispatch(activitiesRequested(options, communityId)),\n fetchUserStats: (options, communityId) =>\n dispatch(usersAnalyticRequested(options, communityId)),\n fetchImpactStats: (options, communityId) =>\n dispatch(impactStatsRequested(options, communityId)),\n fetchGraphData: (options, communityId) =>\n dispatch(graphDataRequested(options, communityId)),\n fetchTopPhotos: (request) => dispatch(communityPhotosRequested(request)),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledAnalyticsScreen);\n","export const PHOTOS_BATCH_SIZE = 30;\n\nexport const TOP_PHOTOS_SIZE = 12;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, withStyles } from '@material-ui/core';\nimport moment from 'moment';\nimport styles from './styles';\nimport DatePicker from '../../common/DatePicker';\nimport Button from '../../common/Button';\nimport TopSection from '../../common/ViewAll/TopSection';\nimport {\n clearCommunityPhotos,\n communityPhotosRequested,\n} from '../../analytics/photos/actions';\nimport TopPhotos from '../../common/TopPhotos';\nimport {\n arePhotosLoading,\n getErrors as getPhotosErrors,\n getTopPhotos,\n} from '../../analytics/photos/selectors';\nimport { getActiveCommunityId } from '../../user/selectors';\nimport RequestLoader from '../../common/RequestLoader';\nimport ErrorList from '../../common/errors/ErrorList';\nimport { DATE_FORMAT } from '../AnalyticsScreen';\nimport { PHOTOS_BATCH_SIZE } from '../../common/TopPhotos/constants';\nimport { ANALYTICS_PHOTOS_SCREEN } from '../../common/PhotoCard/constants';\nimport queryString from 'query-string';\n\nconst AnalyticsPhotosScreen = ({\n classes,\n communityId,\n photos,\n photosErrors,\n arePhotosLoading,\n loadMorePhotosFunc,\n clearPhotos,\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n const location = useLocation();\n\n const queryVals = queryString.parse(location.search);\n const [startDate, setStartDate] = useState(\n queryVals.startDate\n ? moment(queryVals.startDate)\n : moment().subtract(1, 'months'),\n );\n const [endDate, setEndDate] = useState(\n queryVals.endDate ? moment(queryVals.endDate) : moment(),\n );\n\n const loadPhotos = () => {\n const skip = photos == null ? 0 : photos.length;\n\n loadMorePhotosFunc({\n communityId,\n skip,\n limit: PHOTOS_BATCH_SIZE,\n afterTimestamp: startDate.unix(),\n beforeTimestamp: endDate.unix(),\n });\n };\n\n const handleSubmit = () => {\n clearPhotos();\n loadPhotos();\n };\n\n const bottomRef = useRef(null);\n const skippedRef = useRef(null);\n useEffect(() => {\n const intersectionObserver = new IntersectionObserver(\n (entries) => {\n if (entries.some((entry) => entry.intersectionRatio === 1)) {\n const skip = photos == null ? 0 : photos.length;\n if (\n skippedRef.current == null ||\n skippedRef.current !== skip\n ) {\n loadMorePhotosFunc({\n communityId,\n skip,\n limit: PHOTOS_BATCH_SIZE,\n afterTimestamp: startDate.unix(),\n beforeTimestamp: endDate.unix(),\n });\n skippedRef.current = skip;\n }\n }\n },\n { threshold: 1 },\n );\n const targetElement = bottomRef.current;\n intersectionObserver.observe(targetElement);\n return () => intersectionObserver.unobserve(targetElement);\n }, [\n startDate,\n endDate,\n photos,\n skippedRef,\n communityId,\n bottomRef,\n loadMorePhotosFunc,\n ]);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n {photos != null ? (\n \n ) : null}\n \n \n \n \n \n
    \n \n );\n};\n\nAnalyticsPhotosScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n communityId: PropTypes.string.isRequired,\n photos: PropTypes.array,\n photosErrors: PropTypes.array,\n arePhotosLoading: PropTypes.bool.isRequired,\n loadMorePhotosFunc: PropTypes.func.isRequired,\n clearPhotos: PropTypes.func.isRequired,\n};\n\nAnalyticsPhotosScreen.defaultProps = {\n photos: null,\n photosErrors: [],\n};\n\nconst StyledAnalyticsPhotosScreen = withStyles(styles)(AnalyticsPhotosScreen);\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n photos: getTopPhotos(state),\n photosErrors: getPhotosErrors(state),\n arePhotosLoading: arePhotosLoading(state),\n});\nconst mapDispatchToProps = (dispatch) => ({\n loadMorePhotosFunc: (request) =>\n dispatch(communityPhotosRequested(request)),\n clearPhotos: () => dispatch(clearCommunityPhotos()),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledAnalyticsPhotosScreen);\n","import { makeStyles } from '@material-ui/core';\nimport { VARIANT_VERTICAL, VARIANT_HORIZONTAL } from '../FormInputGroup';\n\nconst useStyles = makeStyles((theme) => ({\n container: (props) => {\n const horizontalBorderRadius =\n props.variant === VARIANT_HORIZONTAL && '8px';\n const verticalBorderRadius =\n props.variant === VARIANT_VERTICAL && '8px';\n\n return {\n width: '100%',\n\n '& .MuiInput-root': {\n margin: 0,\n borderRadius: 0,\n\n '&:first-of-type': {\n borderTopLeftRadius: '8px',\n borderBottomLeftRadius: horizontalBorderRadius,\n borderTopRightRadius: verticalBorderRadius,\n },\n\n '&:last-of-type': {\n borderBottomLeftRadius: verticalBorderRadius,\n borderBottomRightRadius: '8px',\n borderTopRightRadius: horizontalBorderRadius,\n marginBottom: '8px',\n },\n\n '&:not(:last-child):not(.Mui-focused)': {\n borderRightColor:\n props.variant === VARIANT_HORIZONTAL &&\n theme.custom.inputSeparator,\n },\n },\n\n '& span': {\n order: '1',\n },\n };\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid } from '@material-ui/core';\nimport useStyles from './styles';\n\nexport const VARIANT_VERTICAL = 'vertical';\nexport const VARIANT_HORIZONTAL = 'horizontal';\nexport const GROUP_VARIANTS = [VARIANT_VERTICAL, VARIANT_HORIZONTAL];\n\nconst FormInputGroup = ({ children, variant }) => {\n const classes = useStyles({ variant });\n const direction = variant === VARIANT_VERTICAL ? 'column' : 'row';\n\n return (\n \n {children}\n \n );\n};\n\nFormInputGroup.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n variant: PropTypes.oneOf(GROUP_VARIANTS),\n};\n\nFormInputGroup.defaultProps = {\n children: null,\n variant: VARIANT_VERTICAL,\n};\n\nexport default FormInputGroup;\n","import templateStyles from '../styles';\n\nconst styles = (theme) => {\n return {\n ...templateStyles(theme),\n photoContainer: {\n position: 'relative',\n height: '200px',\n maxWidth: '160px',\n margin: '20px 0px',\n },\n photoPlaceholder: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n },\n };\n};\n\nexport default styles;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport * as Yup from 'yup';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport { connect } from 'react-redux';\nimport Form from '../../../common/Form';\nimport FormInput from '../../../common/Form/FormInput';\nimport FormInputGroup from '../../../common/Form/FormInputGroup';\n\nimport styles from './styles';\nimport SignInScreenTemplate from '../index';\nimport Photo from '../../../common/Photo';\nimport { getAppImages } from '../../../utils';\nimport { clearUserErrors, userUpdateRequested } from '../../../user/actions';\nimport {\n getActiveCommunityId,\n isUserUpdateLoading,\n} from '../../../user/selectors';\nimport RequestLoader from '../../../common/RequestLoader';\nimport SnackBarAPIResponse from '../../../common/SnackbarAlert/SnackBarAPIResponse';\nimport { getUpdateErrors } from '../../../notifications/selectors';\nimport { useHistory } from 'react-router-dom';\nimport { getToken } from '../../../auth/selectors';\n\nconst ProfileCreateScreen = ({\n classes,\n requestUpdate,\n communityId,\n updateLoading,\n updateErrors,\n clearErrors,\n accessToken,\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n\n useEffect(() => {\n if (!accessToken || accessToken === 'null') {\n history.push('/signup/create-account');\n }\n });\n\n const userForm = {\n displayName: '',\n headline: '',\n };\n\n const ValidationSchema = Yup.object().shape({\n displayName: Yup.string().required(t('userCreate.inputRequired')),\n headline: Yup.string(),\n });\n\n const [profileImage, setProfileImage] = useState(null);\n\n const submitHandler = (values) => {\n requestUpdate({\n communityId,\n userId: 'self',\n name: values.displayName,\n headline: values.headline,\n file: profileImage,\n isCreating: true,\n });\n };\n\n return (\n \n \n \n {t('profileCreate.title')}\n \n \n \n \n \n \n \n {t('profileCreate.yourName')}\n \n \n \n {t('profileCreate.headline')}\n \n \n \n \n \n \n );\n};\nProfileCreateScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n requestUpdate: PropTypes.func.isRequired,\n communityId: PropTypes.string.isRequired,\n updateLoading: PropTypes.string.isRequired,\n updateErrors: PropTypes.arrayOf(PropTypes.string).isRequired,\n clearErrors: PropTypes.func.isRequired,\n accessToken: PropTypes.string.isRequired,\n};\n\nexport const StyledProfileCreateScreen = withStyles(styles)(\n ProfileCreateScreen,\n);\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n updateLoading: isUserUpdateLoading(state),\n updateErrors: getUpdateErrors(state),\n accessToken: getToken(state),\n});\nconst mapDispatchToProps = (dispatch) => ({\n requestUpdate: (request) => dispatch(userUpdateRequested(request, true)),\n clearErrors: () => dispatch(clearUserErrors()),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledProfileCreateScreen);\n","import templateStyles from '../styles';\n\nconst styles = (theme) => {\n return {\n ...templateStyles(theme),\n button: {\n margin: '10px 0 15px',\n textDecoration: 'none',\n },\n };\n};\n\nexport default styles;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Trans, useTranslation } from 'react-i18next';\nimport * as Yup from 'yup';\nimport { Checkbox, Grid, Typography, withStyles } from '@material-ui/core';\nimport { connect } from 'react-redux';\n\nimport { Link } from 'react-router-dom';\n\nimport { createUserRequested } from '../../../auth/actions';\nimport Form from '../../../common/Form';\nimport FormInput from '../../../common/Form/FormInput';\nimport FormInputGroup from '../../../common/Form/FormInputGroup';\n\nimport styles from './styles';\nimport SignInScreenTemplate from '../index';\nimport {\n getAppName,\n getPrivacyLink,\n getProperties,\n getSecondPrivacyLink,\n hasMarketingEmailOptIn,\n} from '../../../utils';\nimport { isAuthLoading } from '../../../auth/selectors';\n\nconst UserCreateScreen = ({ classes, createUser, loading }) => {\n const { t } = useTranslation();\n\n const [optIn, setOptIn] = useState(hasMarketingEmailOptIn() ? false : null);\n\n const userForm = {\n username: '',\n password: '',\n confirmPassword: '',\n organizationPassphrase: '',\n };\n\n const schema = {\n username: Yup.string()\n .trim()\n .email(t('userCreate.emailInvalid'))\n .required(t('userCreate.inputRequired')),\n password: Yup.string()\n .min(8, t('userCreate.passwordLength', { length: 8 }))\n .required(t('userCreate.inputRequired')),\n confirmPassword: Yup.string()\n .required(t('userCreate.inputRequired'))\n .oneOf(\n [Yup.ref('password'), null],\n t('userCreate.confirmPasswordMatch'),\n ),\n };\n const passphraseLessLogin = getProperties()?.allowPassphraseLessLogin;\n if (!passphraseLessLogin) {\n schema.organizationPassphrase = Yup.string().required(\n t('userCreate.inputRequired'),\n );\n }\n\n const ValidationSchema = Yup.object().shape(schema);\n\n const submitHandler = (values) => {\n createUser({\n username: values.username.trim(),\n password: values.password,\n organizationPassphrase: values.organizationPassphrase,\n marketingEmailOptIn: optIn,\n });\n };\n\n return (\n \n \n {t('userCreate.createYourAccountText')}\n \n \n {t('userCreate.createYourAccountDescription')}\n \n \n {t('userCreate.ExistingUserText') + ' '}\n \n {t('userCreate.loginText')}\n \n \n {getProperties().shouldShowSignUp && (\n \n {t('signIn.needToSetUp') + ' '}\n \n {t('signIn.getStartedFree')}\n \n \n )}\n \n \n \n {t('userCreate.emailLabel')}\n \n \n \n {t('userCreate.passwordLabel')}\n \n \n \n {t('userCreate.confirmPasswordLabel')}\n \n \n {!passphraseLessLogin && (\n <>\n \n {t('userCreate.accessCodeLabel')}\n \n \n \n )}\n \n {hasMarketingEmailOptIn() && (\n \n setOptIn(e.target.checked)}\n />\n \n {t('signUp.marketingEmailOptIn', {\n appName: getAppName(),\n })}\n \n \n )}\n \n \n \n \n By creating an account, you acknowledge you have read\n and understand the\n \n Privacy Policy\n \n and\n \n Privacy Policy\n \n \n \n \n \n );\n};\nUserCreateScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n createUser: PropTypes.func.isRequired,\n loading: PropTypes.bool.isRequired,\n};\n\nexport const StyledUserCreateScreen = withStyles(styles)(UserCreateScreen);\n\nconst mapStateToProps = (state) => ({\n loading: isAuthLoading(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n createUser: (request) => dispatch(createUserRequested(request)),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledUserCreateScreen);\n","import React, { useEffect } from 'react';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport HeaderPage from '../../../common/HeaderPage';\nimport {\n areUserNotificationsLoading,\n getUserNotifications,\n} from '../../../notifications/selectors';\nimport {\n markUserNotificationsRequested,\n userNotificationsRequested,\n} from '../../../notifications/actions';\nimport styles from './styles';\nimport InfiniteScroller from '../../../common/InfiniteScroller';\nimport { getRelativeTime } from '../../../common/utils';\nimport { getNotificationIcon } from './utils';\nimport { getAppImages } from '../../../utils';\nimport ContentLoader from 'react-content-loader';\n\nconst NOTIFICATION_FETCH_LIMIT = 25;\n\nconst UserNotificationsScreen = ({\n classes,\n loading,\n notifications,\n getNotifications,\n markNotifications,\n}) => {\n const { t } = useTranslation();\n\n useEffect(() => {\n getNotifications({ limit: NOTIFICATION_FETCH_LIMIT, skip: 0 });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useEffect(() => {\n if (notifications.length > 0) {\n markNotifications();\n }\n }, [notifications.length, markNotifications]);\n\n const renderNotification = (item) => (\n \n \n \n \n \n \n \n {item.title}\n \n {item.message}\n \n \n \n {getNotificationIcon(item.rightIconName, {\n size: 32,\n className: classes.rightIcon,\n })}\n \n {getRelativeTime(item.created)}\n \n \n \n );\n\n return (\n \n \n \n \n \n \n \n }\n />\n \n );\n};\n\nUserNotificationsScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n loading: PropTypes.bool.isRequired,\n getNotifications: PropTypes.func.isRequired,\n notifications: PropTypes.array.isRequired,\n markNotifications: PropTypes.func.isRequired,\n};\n\nconst StyledUserNotificationsScreen = withStyles(styles)(\n UserNotificationsScreen,\n);\n\nconst mapStateToProps = (state) => ({\n notifications: getUserNotifications(state),\n loading: areUserNotificationsLoading(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n getNotifications: (options) =>\n dispatch(userNotificationsRequested(options)),\n markNotifications: () => dispatch(markUserNotificationsRequested()),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledUserNotificationsScreen);\n","export default (theme) => ({\n container: {\n flexDirection: 'column',\n maxWidth: theme.custom.mainContentWidth,\n paddingLeft: theme.custom.mainContentHorizontalPadding,\n paddingRight: theme.custom.mainContentHorizontalPadding,\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n notificationContainer: {\n backgroundColor: theme.custom.bgLightAccentColor,\n borderBottom: 'solid 1px',\n borderTop: 'solid 1px',\n borderBottomColor: theme.custom.grey88,\n borderTopColor: theme.custom.grey88,\n [theme.breakpoints.down('xs')]: {\n paddingLeft: '10px',\n },\n padding: '5px 5px 5px 20px',\n },\n relative: {\n position: 'relative',\n },\n leftIcon: {\n borderRadius: '50%',\n borderStyle: 'none',\n boxShadow: '0px 3px 10px #00000026',\n minWidth: '48px',\n [theme.breakpoints.down('xs')]: {\n marginRight: '10px',\n },\n marginRight: '20px',\n },\n rightIcon: {\n fontSize: '32px',\n color: theme.palette.primary.main,\n fill: theme.palette.primary.main,\n height: '32px',\n },\n contentLoaderContainer: {\n backgroundColor: theme.palette.common.white,\n width: '100%',\n height: 70,\n },\n subject: {\n lineHeight: 1.1,\n },\n timeText: {},\n});\n","import React from 'react';\n\nimport { Favorite, Settings } from '@material-ui/icons';\nimport { FollowIcon } from '../../../assets/images/svg';\nimport IcomoonIcon from '../../../common/IcomoonIcon';\n\nexport const getNotificationIcon = (iconName, props) => {\n let newName = '';\n switch (iconName) {\n case 'icon_quote':\n newName = 'jb-quote';\n break;\n case 'icon_earth':\n newName = 'jb-earth';\n break;\n case 'icon_buzzes':\n newName = 'jb-buzz';\n break;\n case 'icon_challenge':\n newName = 'jb-challenge';\n break;\n case 'icon_badge':\n newName = 'jb-badge';\n break;\n case 'icon_medal':\n newName = 'jb-medal';\n break;\n case 'icon_alert':\n newName = 'jb-restricted';\n break;\n case 'icon_goal':\n newName = 'jb-goal';\n break;\n case 'icon_lb':\n newName = 'jb-trophy';\n break;\n case 'icon_prize':\n newName = 'jb-prizes';\n break;\n default:\n }\n if (!newName) {\n switch (iconName) {\n case 'icon_settings':\n return ;\n case 'icon_heart':\n return ;\n case 'icon_friend':\n return ;\n default:\n newName = 'jb-notifications';\n }\n }\n return ;\n};\n","import React, { useCallback, useState } from 'react';\nimport { Grid } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { trackEvent } from '../../../../utils/analytics';\n\nimport Table from '../../../../common/Table';\nimport {\n BORDER_ICON,\n BTN_DELETE,\n BTN_EDIT,\n BUTTONS_CELL,\n COLUMNS,\n GROUP_NAMES,\n GROUP_TYPE_QUEUED,\n INIT_SORT,\n} from '../constants';\nimport Delete from '../../../../common/Delete';\nimport { EVENT_NOTIFICATION_EDIT_BEGAN } from '../../../../constants/analyticsEvents';\n\nconst TableManager = ({\n group,\n tableData,\n loading,\n deleteNotification,\n fetchDataFunc,\n totalCount,\n communityImg,\n communityId,\n}) => {\n const history = useHistory();\n const { t } = useTranslation();\n const [activeItem, setActiveItem] = useState(null);\n\n const makeTableColumns = useCallback(\n (group) => {\n const result = COLUMNS.reduce((result, column) => {\n if (column.accessor === 'icon') {\n return [\n ...result,\n {\n ...column,\n Cell: ({ row: { original } }) => (\n \n ),\n },\n ];\n } else {\n // Localize the header for this column\n column.Header = t(column.Header);\n }\n\n return [...result, column];\n }, []);\n\n return group === GROUP_TYPE_QUEUED\n ? [...result, { accessor: 'actions', sortable: false }]\n : result;\n },\n [t, communityImg],\n );\n\n const makeTableData = (data = []) =>\n data.map((item) =>\n [...COLUMNS, { accessor: 'id' }].reduce((result, cell) => {\n return {\n ...result,\n [cell.accessor]: item[cell.accessor],\n };\n }, []),\n );\n\n const findItemById = (id) =>\n tableData.find((item) => item.id === id) || null;\n\n const handleCloseModal = () => {\n setActiveItem({ ...activeItem, isOpen: false });\n };\n\n const handleNotificationDelete = (id) => {\n const { name, icon, isChallenge } = findItemById(id);\n\n setActiveItem({\n isOpen: true,\n item: {\n name,\n iconUrl: icon,\n identifier: id,\n isChallenge,\n },\n });\n };\n\n const handleDeleteItem = () => {\n const notification = findItemById(activeItem.item.identifier);\n let challengeId = null;\n\n if (notification.isChallenge) {\n challengeId = notification.subjectId;\n }\n\n setActiveItem(null);\n deleteNotification(notification.id, challengeId, {});\n };\n\n const handleButtonsCell = (id, key) => {\n switch (key) {\n case BTN_EDIT.key:\n trackEvent(EVENT_NOTIFICATION_EDIT_BEGAN);\n history.push(`/notifications/edit/${id}`);\n break;\n case BTN_DELETE.key:\n handleNotificationDelete(id);\n break;\n default:\n break;\n }\n };\n\n const getButtonsCell = useCallback(() => {\n const buttonsCell = BUTTONS_CELL[group];\n if (buttonsCell && buttonsCell.length) {\n return buttonsCell.map((action) => {\n if (action && action.tooltip) {\n action.tooltip = t(action.tooltip);\n }\n return action;\n });\n }\n return buttonsCell || [];\n }, [t, group]);\n\n const groupDisplayName = t(GROUP_NAMES[group]);\n\n return (\n \n \n {activeItem && (\n \n )}\n \n );\n};\n\nTableManager.propTypes = {\n group: PropTypes.string.isRequired,\n tableData: PropTypes.array.isRequired,\n totalCount: PropTypes.number.isRequired,\n loading: PropTypes.bool.isRequired,\n deleteNotification: PropTypes.func.isRequired,\n fetchDataFunc: PropTypes.func.isRequired,\n communityImg: PropTypes.string,\n communityId: PropTypes.string,\n};\n\nTableManager.defaultProps = {\n communityImg: null,\n communityId: '',\n};\n\nexport default TableManager;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { Grid, withStyles } from '@material-ui/core';\nimport { AddTwoTone } from '@material-ui/icons';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { trackEvent, useTrackScreenView } from '../../../utils/analytics';\n\nimport HeaderPage from '../../../common/HeaderPage';\nimport Button from '../../../common/Button';\nimport TableManager from './TableManager';\nimport { GROUP_TYPE_DELIVERED, GROUP_TYPE_QUEUED } from './constants';\nimport {\n getGroupLoader,\n getGroupTableData,\n getGroupTotalCount,\n getNotificationErrors,\n getNotificationUpdateMessage,\n} from '../../../notifications/selectors';\nimport {\n clearAllErrors,\n deleteNotificationRequest,\n notificationsRequest,\n} from '../../../notifications/actions';\nimport { getActiveCommunityId } from '../../../user/selectors';\nimport { Can } from '../../../casl/ability-context';\nimport styles from './styles';\nimport SnackBarAPIResponse from '../../../common/SnackbarAlert/SnackBarAPIResponse';\nimport { EVENT_NOTIFICATION_CREATE_BEGAN } from '../../../constants/analyticsEvents';\n\nconst AdminNotificationsScreen = ({\n classes,\n communityId,\n loading,\n tableData,\n totalCount,\n getNotifications,\n deleteNotification,\n publishErrors,\n message,\n clearSnackBar,\n}) => {\n const history = useHistory();\n const { t } = useTranslation();\n const { path } = useRouteMatch();\n const [snackBarMessage, setSnackBarMessage] = useState();\n\n useTrackScreenView('notifications_view_overview');\n\n const handleCreate = () => {\n trackEvent(EVENT_NOTIFICATION_CREATE_BEGAN);\n history.push(`/notifications/create`);\n };\n\n const renderRightButton = () => (\n \n \n \n \n \n );\n\n const fetchQueued = useCallback(\n (args) => getNotifications(communityId, GROUP_TYPE_QUEUED, args),\n [communityId, getNotifications],\n );\n\n const fetchDelivered = useCallback(\n (args) => getNotifications(communityId, GROUP_TYPE_DELIVERED, args),\n [communityId, getNotifications],\n );\n\n useEffect(() => {\n if (message) setSnackBarMessage(message);\n }, [message, t]);\n\n return (\n \n \n {path !== '/notifications/sent' && (\n \n deleteNotification(communityId, ...args)\n }\n communityId={communityId}\n />\n )}\n {path !== '/notifications/queued' && (\n \n deleteNotification(communityId, ...args)\n }\n communityId={communityId}\n />\n )}\n {\n setSnackBarMessage(null);\n clearSnackBar();\n }}\n />\n \n );\n};\n\nAdminNotificationsScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n communityId: PropTypes.string.isRequired,\n tableData: PropTypes.object.isRequired,\n totalCount: PropTypes.object.isRequired,\n loading: PropTypes.object.isRequired,\n getNotifications: PropTypes.func.isRequired,\n deleteNotification: PropTypes.func.isRequired,\n publishErrors: PropTypes.arrayOf(PropTypes.string).isRequired,\n message: PropTypes.string.isRequired,\n clearSnackBar: PropTypes.func.isRequired,\n};\n\nconst StyledAdminNotificationsScreen = withStyles(styles)(\n AdminNotificationsScreen,\n);\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n tableData: getGroupTableData(state),\n totalCount: getGroupTotalCount(state),\n loading: getGroupLoader(state),\n publishErrors: getNotificationErrors(state),\n message: getNotificationUpdateMessage(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n getNotifications: (...args) => dispatch(notificationsRequest(...args)),\n deleteNotification: (...args) =>\n dispatch(deleteNotificationRequest(...args)),\n clearSnackBar: () => dispatch(clearAllErrors()),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledAdminNotificationsScreen);\n","export default (theme) => ({\n container: {\n flexDirection: 'column',\n padding: '0 96px',\n },\n relative: {\n position: 'relative',\n },\n banner: {\n marginTop: '26px',\n },\n});\n","import React from 'react';\n\nimport { Can } from '../../casl/ability-context';\nimport UserNotificationsScreen from './UserNotificationsScreen';\nimport AdminNotificationsScreen from './AdminNotificationsScreen';\n\nexport const NotificationsScreen = (props) => {\n return (\n <>\n \n \n \n \n \n \n \n );\n};\n\nexport default NotificationsScreen;\n","import React from 'react';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport styles from './styles';\nimport InfoTooltip from '../../../../common/InfoTooltip';\n\nconst NotificationItemTitle = ({\n classes,\n title,\n tooltip,\n tooltipIntercomTarget,\n children,\n ...props\n}) => {\n return (\n \n \n \n {title}\n \n {tooltip && (\n \n )}\n \n {children}\n \n );\n};\n\nNotificationItemTitle.propTypes = {\n classes: PropTypes.object.isRequired,\n title: PropTypes.string.isRequired,\n tooltip: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n tooltipIntercomTarget: PropTypes.string,\n};\n\nNotificationItemTitle.defaultProps = {\n tooltip: null,\n children: null,\n tooltipIntercomTarget: '',\n};\n\nexport default withStyles(styles)(NotificationItemTitle);\n","import { fade } from '@material-ui/core/styles/colorManipulator';\n\nexport default (theme) => ({\n container: {\n flex: 1,\n margin: '0 0 16px',\n },\n title: {\n margin: '10px 0',\n fontSize: 14,\n fontWeight: 600,\n },\n infoIcon: {\n paddingLeft: 4,\n color: fade(theme.custom.bgDarkAccentColor, 0.25),\n },\n});\n","import React from 'react';\nimport {\n withStyles,\n BottomNavigationAction,\n BottomNavigation,\n} from '@material-ui/core';\nimport { SupervisorAccount } from '@material-ui/icons';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport IcomoonIcon from '../../../../common/IcomoonIcon';\nimport styles from './styles';\nimport {\n VALUE_GENERAL_SUBJECT_TYPE,\n VALUE_CHALLENGE_SUBJECT_TYPE,\n VALUE_ACTION_SUBJECT_TYPE,\n} from '../../../../notifications/constants';\n\nconst SubjectContentType = ({\n classes,\n value,\n generalTypeDisabled,\n challengeTypeDisabled,\n actionTypeDisabled,\n onChange,\n}) => {\n const { t } = useTranslation();\n\n const renderNavAction = (props) => (\n \n );\n\n return (\n \n {renderNavAction({\n icon: ,\n label: t('notifications.subjectGeneralTitle'),\n value: VALUE_GENERAL_SUBJECT_TYPE,\n disabled: value === VALUE_GENERAL_SUBJECT_TYPE,\n 'data-intercom-target': 'subjectGeneralButton',\n })}\n {renderNavAction({\n icon: ,\n label: t('challenge.descriptor'),\n value: VALUE_CHALLENGE_SUBJECT_TYPE,\n disabled:\n challengeTypeDisabled ||\n value === VALUE_CHALLENGE_SUBJECT_TYPE,\n 'data-intercom-target': 'subjectChallengeButton',\n })}\n {renderNavAction({\n icon: ,\n label: t('Action'),\n value: VALUE_ACTION_SUBJECT_TYPE,\n disabled:\n actionTypeDisabled || value === VALUE_ACTION_SUBJECT_TYPE,\n 'data-intercom-target': 'subjectActionButton',\n })}\n \n );\n};\n\nSubjectContentType.propTypes = {\n classes: PropTypes.object.isRequired,\n value: PropTypes.oneOfType([PropTypes.string || PropTypes.number])\n .isRequired,\n generalTypeDisabled: PropTypes.bool,\n challengeTypeDisabled: PropTypes.bool,\n actionTypeDisabled: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n};\n\nSubjectContentType.defaultProps = {\n generalTypeDisabled: false,\n challengeTypeDisabled: false,\n actionTypeDisabled: false,\n};\n\nexport default withStyles(styles)(SubjectContentType);\n","import { fade } from '@material-ui/core/styles/colorManipulator';\n\nexport default (theme) => ({\n nav: {\n flex: 1,\n height: 'auto',\n margin: '0 -8px',\n backgroundColor: 'initial',\n },\n title: {\n margin: '10px 0',\n fontSize: 14,\n },\n infoIcon: {\n paddingLeft: 4,\n color: fade(theme.custom.bgDarkAccentColor, 0.25),\n },\n root: {\n maxWidth: 'none',\n padding: 6,\n margin: '0 8px',\n border: `2px solid ${theme.custom.bgColor}`,\n borderRadius: 6,\n backgroundColor: theme.custom.bgColor,\n color: theme.custom.textDarkSecondaryColor,\n fill: theme.custom.textDarkSecondaryColor,\n },\n selected: {\n color: theme.palette.primary.main,\n fill: theme.palette.primary.main,\n borderColor: theme.palette.primary.main,\n backgroundColor: theme.palette.common.white,\n },\n wrapper: {\n '& svg': {\n width: 32,\n height: 48,\n fontSize: 32,\n },\n },\n label: {\n fontSize: 14,\n fontWeight: 400,\n },\n});\n","import React, { Fragment } from 'react';\nimport { withStyles, TextareaAutosize } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport styles from './styles';\n\nconst TextAreaField = ({ classes, charactersLeft, ...props }) => {\n const { t } = useTranslation();\n\n return (\n \n \n {charactersLeft ? (\n
    \n {`${charactersLeft} ${t('charactersRemaining')}`}\n
    \n ) : null}\n
    \n );\n};\n\nTextAreaField.propTypes = {\n classes: PropTypes.object.isRequired,\n charactersLeft: PropTypes.number,\n};\n\nTextAreaField.defaultProps = {\n charactersLeft: NaN,\n};\n\nexport default withStyles(styles)(TextAreaField);\n","export default (theme) => ({\n root: {},\n input: {},\n charsLeft: {\n marginTop: '5px',\n marginBottom: '10px',\n fontSize: '85%',\n color: '#737373',\n },\n});\n","import React, { useState, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { CircularProgress, withStyles } from '@material-ui/core';\nimport styles from './styles.js';\nimport clsx from 'clsx';\nimport { getAppImages } from '../../../utils';\n\nconst UrlIcon = ({ classes, url, title, isChallenge }) => {\n const [successLoad, setSuccessLoad] = useState(false);\n const [failLoad, setFailLoad] = useState(false);\n\n const onError = () => {\n setFailLoad(true);\n };\n\n const onLoad = () => {\n setSuccessLoad(true);\n };\n\n if (!url || failLoad)\n return (\n \n );\n\n return (\n \n \n {!successLoad && (\n \n )}\n \n );\n};\n\nUrlIcon.propTypes = {\n classes: PropTypes.object.isRequired,\n url: PropTypes.string,\n title: PropTypes.string,\n isChallenge: PropTypes.bool,\n};\n\nUrlIcon.defaultProps = {\n url: null,\n title: null,\n isChallenge: false,\n};\n\nexport default withStyles(styles)(UrlIcon);\n","export default (theme) => ({\n image: {\n width: '40px',\n height: '40px',\n margin: '0 5px 0 0',\n borderRadius: '5px',\n },\n borderIcon: {\n border: `2px solid ${theme.palette.common.white}`,\n borderRadius: '6px 6px 50% 50%',\n },\n loader: {\n margin: '0 5px 0 0',\n },\n hidden: {\n display: 'none',\n },\n});\n","import { makeStyles } from '@material-ui/core';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\n\nexport default makeStyles((theme) => ({\n root: {\n width: '100%',\n },\n inputRoot: (props) => ({\n color: '#999',\n padding: '0 !important',\n backgroundColor: props.bgColor,\n\n '& .MuiOutlinedInput-notchedOutline': {\n border: 0,\n },\n\n '&:hover .MuiOutlinedInput-notchedOutline': {\n border: `1px solid ${theme.palette.primary.dark}`,\n },\n\n '&.Mui-focused .MuiOutlinedInput-notchedOutline': {\n border: `1px solid ${theme.palette.primary.dark}`,\n },\n\n '& input:focus': {\n backgroundColor: 'white',\n },\n }),\n input: {\n padding: '6px 65px 6px 12px !important',\n height: '24px',\n },\n option: {\n padding: '3px 20px',\n },\n popper: {\n minWidth: '200px',\n },\n listbox: {\n '&>li:last-child .MuiAutocomplete-groupUl': {\n border: 'none',\n padding: 0,\n },\n },\n groupUl: {\n paddingBottom: 9,\n borderWidth: '0 0 1px',\n borderStyle: 'solid',\n borderColor: fade(theme.palette.common.black, 0.15),\n\n '& .MuiAutocomplete-option': {\n padding: '0 16px',\n },\n },\n inputField: (props) => ({\n fontSize: props.fontSize,\n }),\n titleBlock: (props) => ({\n marginLeft: props.marginLeft,\n '& p': {\n fontSize: props.fontSize,\n },\n }),\n}));\n","import React from 'react';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport { TextField, Grid, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport UrlIcon from './UrlIcon';\nimport IcomoonIcon from '../IcomoonIcon';\nimport theme from '../../theme';\nimport { noop } from '../../utils';\nimport useStyles from './styles';\n\nconst CustomDropdown = ({\n id,\n data,\n value,\n placeholder,\n onChange,\n bgColor,\n fontSize,\n marginLeft,\n ...props\n}) => {\n const { t } = useTranslation();\n const classes = useStyles({ bgColor, fontSize, marginLeft });\n\n const renderInput = (params) => (\n \n );\n\n const renderOption = ({\n iconUrl,\n iconName,\n title,\n subTitle,\n value,\n isChallenge,\n }) => (\n \n {iconUrl ? (\n \n ) : (\n iconName && (\n \n )\n )}\n \n {title || value}\n {subTitle && {subTitle}}\n \n \n );\n\n return (\n item?.title || item?.value)}\n getOptionLabel={(option) => option.title || option.value}\n onChange={onChange}\n renderInput={renderInput}\n renderOption={renderOption}\n {...props}\n />\n );\n};\n\nCustomDropdown.propTypes = {\n id: PropTypes.string,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n title: PropTypes.string,\n subTitle: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .isRequired,\n iconUrl: PropTypes.string,\n iconName: PropTypes.string,\n role: PropTypes.string,\n }),\n ),\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n placeholder: PropTypes.string,\n bgColor: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n groupBy: PropTypes.func,\n multiple: PropTypes.bool,\n fontSize: PropTypes.number,\n marginLeft: PropTypes.number,\n};\n\nCustomDropdown.defaultProps = {\n id: 'customDropdown',\n data: [],\n value: null,\n placeholder: null,\n bgColor: 'transparent',\n groupBy: noop,\n multiple: false,\n fontSize: 14,\n marginLeft: 0,\n};\n\nexport default CustomDropdown;\n","import React from 'react';\nimport { DateTimePicker } from '@material-ui/pickers';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport DatePicker from '../../../../common/DatePicker';\nimport { DATETIME_FORMAT_FOR_DATETIME_PICKERS } from '../../../../constants/dates';\n\nconst DateField = ({ value, placeholder, onChange, format }) => (\n onChange(value.toString())}\n format={format}\n isBottomMargin\n />\n);\n\nDateField.propTypes = {\n value: PropTypes.string,\n placeholder: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n format: PropTypes.string,\n};\n\nDateField.defaultProps = {\n value: null,\n format: DATETIME_FORMAT_FOR_DATETIME_PICKERS,\n};\n\nexport default DateField;\n","import { makeStyles } from '@material-ui/core';\n\nexport default makeStyles((theme) => ({\n warningBannerTitle: {\n color: theme.palette.error.main,\n fontSize: 24,\n fontWeight: '700',\n textAlign: 'center',\n },\n warningBannerIcon: {\n color: theme.palette.error.main,\n fontSize: 30,\n paddingRight: 5,\n },\n warningBannerBody: {\n paddingTop: 10,\n flex: 1,\n textAlign: 'center',\n },\n communityLink: {\n color: theme.palette.error.main,\n cursor: 'pointer',\n textDecoration: 'underline',\n fontWeight: '700',\n display: 'inline',\n },\n}));\n","import React from 'react';\nimport { Grid, Typography } from '@material-ui/core';\nimport { Error } from '@material-ui/icons';\nimport PropTypes from 'prop-types';\nimport useStyles from './styles';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { changeCommunityURL } from '../../../../utils';\nimport { useHistory } from 'react-router-dom';\n\nexport const CommunityConfirmInfo = ({ newCommunity, title }) => {\n const classes = useStyles();\n const { t } = useTranslation();\n const history = useHistory();\n\n return (\n \n \n \n \n {title}\n \n \n \n {t('notifications.organizationWarningBanner.top')}\n \n \n \n {\n changeCommunityURL(\n history,\n newCommunity?.id,\n '/notifications',\n );\n }}\n >\n \n \n \n );\n};\n\nCommunityConfirmInfo.propTypes = {\n newCommunity: PropTypes.shape({\n name: PropTypes.string,\n id: PropTypes.string,\n }),\n title: PropTypes.string,\n};\n\nCommunityConfirmInfo.defaultProps = {\n title: '',\n newCommunity: {},\n};\n","import React, {\n Fragment,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport { Chip, Grid, Typography, withStyles } from '@material-ui/core';\nimport { debounce } from 'lodash';\nimport { Edit } from '@material-ui/icons';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport * as Yup from 'yup';\nimport clsx from 'clsx';\nimport Form from '../../../common/Form';\nimport Section from './Section';\nimport SubjectContentType from './SubjectContentType';\nimport FormInput from '../../../common/Form/FormInput';\nimport TextareaField from './TextAreaField';\nimport CustomDropdown from '../../../common/CustomDropdown';\nimport DateField from './DateField';\nimport theme from '../../../theme';\nimport styles from './styles';\nimport {\n ALL_AUDIENCE_TYPES,\n AUDIENCE_TYPE_CHALLENGE_TEAMS,\n AUDIENCE_TYPES_WITH_AUDIENCE,\n DEFAULT_AUDIENCE_TYPES,\n FORM_FIELD_AUDIENCE_TYPE,\n FORM_FIELD_AUDIENCES,\n FORM_FIELD_MESSAGE,\n FORM_FIELD_SEND_DATE,\n FORM_FIELD_SUBJECT,\n FORM_FIELD_SUBJECT_CONTENT_ID,\n FORM_FIELD_SUBJECT_CONTENT_TYPE,\n MAX_MSG_LENGTH,\n} from './constants';\nimport {\n AUDIENCE_VALUE_CHALLENGE_TEAMS,\n AUDIENCE_VALUE_COMMUNITIES,\n AUDIENCE_VALUE_USERS,\n SAFE_COMMUNITY_CHALLENGE_AUDIENCE_TYPES,\n VALUE_ACTION_SUBJECT_TYPE,\n VALUE_CHALLENGE_SUBJECT_TYPE,\n VALUE_GENERAL_SUBJECT_TYPE,\n} from '../../../notifications/constants';\nimport { getTimezoneName } from '../../../utils/dates';\nimport { noop } from '../../../utils';\nimport EditingBanner from '../../../common/EditingBanner';\nimport {\n getActiveCommunityId,\n getActiveMembersLoading,\n} from '../../../user/selectors';\nimport {\n getChallenges,\n getCommunityUsers,\n getNotificationActions,\n} from '../../../notifications/selectors';\nimport {\n GROUP_ACTIVE,\n GROUP_PAST,\n GROUP_UPCOMING,\n} from '../../ChallengesScreen/constants';\nimport { challengesRequested } from '../../../challenges/actions';\nimport { actionsRequested } from '../../../actions/actions';\nimport { connect } from 'react-redux';\nimport {\n membersRequested,\n membersSearchRequested,\n setActiveCommunity,\n} from '../../../user/actions';\nimport { ACTIVE_STATUS_ACTIVE } from '../../../user/constants';\nimport {\n CLIENT_PAGINATION_FETCH_LIMIT,\n PIN_ADMIN_VISIBILITY_INCLUDED_FOR_THEME,\n} from '../../../actions/constants';\nimport { CommunityConfirmInfo } from './CommunityConfirmInfo';\nimport ConfirmModal from '../../../common/ConfirmModal';\n\nconst NotificationForm = ({\n classes,\n title,\n subjectContentType,\n subjectContentID,\n subject,\n message,\n audienceType,\n audiences,\n sendDate,\n audienceCommunities,\n onChangeValue,\n onSubmit,\n\n challenges,\n fetchChallenges,\n users,\n fetchUsers,\n actions,\n fetchActions,\n communityId,\n searchUsers,\n usersLoading,\n changeCommunity,\n}) => {\n const { t } = useTranslation();\n\n const initialValues = useMemo(\n () => ({\n subjectContentType,\n subjectContentID,\n subject,\n message,\n audienceType,\n audiences,\n sendDate,\n }),\n [\n subjectContentType,\n subjectContentID,\n subject,\n message,\n audienceType,\n audiences,\n sendDate,\n ],\n );\n\n const [selectedChallenge, setSelectedChallenge] = useState(\n subjectContentType === VALUE_CHALLENGE_SUBJECT_TYPE &&\n challenges.find((challenge) => challenge.id === subjectContentID),\n );\n\n const [communityConfirmModalOpen, setCommunityConfirmModalOpen] = useState(\n false,\n );\n\n useEffect(() => {\n [GROUP_ACTIVE, GROUP_UPCOMING, GROUP_PAST].forEach((group) => {\n fetchChallenges({ communityId, group });\n });\n fetchActions(communityId);\n }, [communityId, fetchActions, fetchChallenges]);\n\n const getAudienceValues = useCallback(\n (audienceType) => {\n if (audienceType === AUDIENCE_VALUE_CHALLENGE_TEAMS) {\n const sortedTeams = selectedChallenge?.teams?.sort(\n (a, b) => b.score - a.score,\n );\n return sortedTeams;\n }\n if (audienceType === AUDIENCE_VALUE_COMMUNITIES) {\n return audienceCommunities;\n }\n if (audienceType === AUDIENCE_VALUE_USERS) {\n return users;\n }\n },\n [users, audienceCommunities, selectedChallenge],\n );\n\n const [selectedAudienceType, setSelectedAudienceType] = useState(\n audienceType,\n );\n\n const [audienceValues, setAudienceValues] = useState(\n getAudienceValues(audienceType),\n );\n\n useEffect(() => {\n setAudienceValues(getAudienceValues(selectedAudienceType));\n }, [setAudienceValues, selectedAudienceType, users, getAudienceValues]);\n\n const validationSchema = useMemo(\n () =>\n Yup.object().shape({\n subject: Yup.string()\n .required(t('notifications.validationRequiredSubject'))\n .nullable(),\n message: Yup.string()\n .required(t('notifications.validationRequiredMessage'))\n\n .nullable(),\n audienceType: Yup.string()\n .required(t('notifications.validationRequiredType'))\n\n .nullable(),\n sendDate: Yup.string()\n .required(t('notifications.validationRequiredSendDate'))\n .nullable(),\n }),\n [t],\n );\n\n const validateAudiences = useCallback(\n (value, audienceType) => {\n if (audienceType === 'users' && !value.length)\n return t('notifications.validationRequiredAudience');\n },\n [t],\n );\n\n const generateFormState = useCallback(\n (value) => {\n let newInterface = {\n audienceTypes: DEFAULT_AUDIENCE_TYPES,\n audienceUsers: users,\n audienceCommunities,\n };\n\n if (value === VALUE_GENERAL_SUBJECT_TYPE) {\n newInterface = {\n ...newInterface,\n subjectTitle: t('notifications.subjectGeneralTitle'),\n subjectPlaceholder: t(\n 'notifications.subjectGeneralPlaceholder',\n ),\n subjectData: [],\n };\n } else if (value === VALUE_CHALLENGE_SUBJECT_TYPE) {\n newInterface = {\n ...newInterface,\n subjectTitle: t('notifications.subjectChallengeTitle'),\n subjectPlaceholder: t(\n 'notifications.subjectChallengePlaceholder',\n ),\n subjectData: challenges,\n audienceTypes: ALL_AUDIENCE_TYPES,\n };\n } else if (value === VALUE_ACTION_SUBJECT_TYPE) {\n newInterface = {\n ...newInterface,\n subjectTitle: t('notifications.subjectActionTitle'),\n subjectPlaceholder: t(\n 'notifications.subjectActionPlaceholder',\n ),\n subjectData: actions,\n };\n }\n if (audienceCommunities.length === 0) {\n newInterface.audienceTypes = newInterface.audienceTypes.filter(\n ({ value }) => !['communities'].includes(value),\n );\n }\n\n return newInterface;\n },\n [users, audienceCommunities, t, challenges, actions],\n );\n\n const [formInterface, setFormInterface] = useState(() => {\n return generateFormState(subjectContentType);\n });\n\n const setSubjectContentType = useCallback(\n (value, setFieldValue, resetForm) => {\n const newInterface = generateFormState(value);\n setFormInterface(newInterface);\n\n resetForm();\n setFieldValue(FORM_FIELD_SUBJECT, '');\n setFieldValue(FORM_FIELD_SUBJECT_CONTENT_ID, null);\n setFieldValue(FORM_FIELD_SUBJECT_CONTENT_TYPE, value);\n\n onChangeValue({\n subjectContentType: value,\n subject: null,\n iconUrl: null,\n isChallenge: value === VALUE_CHALLENGE_SUBJECT_TYPE,\n });\n },\n [generateFormState, onChangeValue],\n );\n\n const handleChangeSubject = (item, setFieldValue, values) => {\n setFieldValue(FORM_FIELD_SUBJECT_CONTENT_ID, item && item.id);\n setFieldValue(FORM_FIELD_SUBJECT, item && item.value);\n onChangeValue({\n subject: item && item.value,\n iconUrl: item && item.isChallenge && item.iconUrl,\n image: item && item.iconUrl,\n });\n if (item?.isChallenge) {\n setSelectedChallenge(item);\n const audienceTypes = formInterface.audienceTypes;\n const challengeTeamsIndex = audienceTypes.findIndex(\n (type) => type.id === AUDIENCE_TYPE_CHALLENGE_TEAMS.id,\n );\n if (challengeTeamsIndex > -1 && !item.teams?.length) {\n audienceTypes.splice(challengeTeamsIndex, 1);\n setFormInterface({\n ...formInterface,\n audienceTypes,\n });\n } else if (challengeTeamsIndex === -1 && item.teams?.length) {\n audienceTypes.push(AUDIENCE_TYPE_CHALLENGE_TEAMS);\n setFormInterface({\n ...formInterface,\n audienceTypes,\n });\n }\n if (values?.audienceType === AUDIENCE_VALUE_CHALLENGE_TEAMS) {\n setFieldValue(FORM_FIELD_AUDIENCES, []);\n setAudienceValues(item?.teams);\n }\n }\n };\n\n const handleChangeValue = (field, value, setFieldValue) => {\n setFieldValue(field, value);\n onChangeValue({ [field]: value });\n };\n\n const handleChangeAudienceType = (audienceType, setFieldValue) => {\n setFieldValue(FORM_FIELD_AUDIENCE_TYPE, audienceType);\n setFieldValue(FORM_FIELD_AUDIENCES, []);\n setSelectedAudienceType(audienceType);\n if (audienceType === AUDIENCE_VALUE_USERS) {\n fetchUsers(communityId);\n }\n };\n\n const handleChangeAudienceInput = debounce((data, values) => {\n if (values.audienceType === AUDIENCE_VALUE_USERS) {\n data ? searchUsers(communityId, data) : fetchUsers(communityId);\n }\n }, 300);\n\n /**\n * Check if a challenge is selected that belongs to a sub community\n * and the audience type would result in the notification being sent to users outside the sub community\n */\n const isOutOfCommunityScope = (values) =>\n selectedChallenge?.sponsoringCommunities?.length > 0 &&\n selectedChallenge?.sponsoringCommunities?.every(\n (c) => c.id !== communityId,\n ) &&\n values.audienceType &&\n !SAFE_COMMUNITY_CHALLENGE_AUDIENCE_TYPES.includes(values.audienceType);\n\n return formInterface ? (\n \n \n isOutOfCommunityScope(values)\n ? setCommunityConfirmModalOpen(true)\n : onSubmit(values)\n }\n enableReinitialize\n >\n {({ values, setFieldValue, resetForm }) => {\n return (\n \n \n setCommunityConfirmModalOpen(false)\n }\n onCancel={() =>\n setCommunityConfirmModalOpen(false)\n }\n confirmBtnType=\"accent\"\n confirmBtnText={t('notifications.queue')}\n onConfirm={() => onSubmit(values)}\n titleStyle={classes.modalTitle}\n >\n \n \n \n \n \n {title}\n \n \n \n {isOutOfCommunityScope(values) && (\n \n \n \n )}\n \n \n \n \n \n setSubjectContentType(\n value,\n setFieldValue,\n resetForm,\n )\n }\n />\n \n \n \n \n {[\n VALUE_CHALLENGE_SUBJECT_TYPE,\n VALUE_ACTION_SUBJECT_TYPE,\n ].includes(\n values.subjectContentType,\n ) ? (\n \n item.value ===\n values.subject,\n )}\n onChange={(e, data) =>\n handleChangeSubject(\n data,\n setFieldValue,\n values,\n )\n }\n bgColor={\n theme.custom\n .inputBackground\n }\n groupBy={(option) =>\n option.role\n }\n />\n ) : (\n \n handleChangeSubject(\n {\n value:\n e.target\n .value,\n },\n setFieldValue,\n )\n }\n />\n )}\n \n \n \n \n \n handleChangeValue(\n FORM_FIELD_MESSAGE,\n e.target.value,\n setFieldValue,\n )\n }\n />\n \n \n \n \n \n \n item.value ===\n values.audienceType,\n )}\n onChange={(e, data) =>\n handleChangeAudienceType(\n data.value,\n setFieldValue,\n )\n }\n bgColor={\n theme.custom.inputBackground\n }\n marginLeft={8}\n />\n \n \n {AUDIENCE_TYPES_WITH_AUDIENCE.includes(\n values.audienceType,\n ) && (\n
    \n \n \n validateAudiences(\n value,\n values.audienceType,\n )\n }\n noLeftMargin\n data={audienceValues?.filter(\n (value) =>\n !values.audiences.some(\n (audience) =>\n audience.id ===\n value.id,\n ),\n )}\n value={values.audiences}\n onChange={(e, data) =>\n setFieldValue(\n FORM_FIELD_AUDIENCES,\n data || [],\n )\n }\n onInputChange={(e, data) =>\n handleChangeAudienceInput(\n data,\n values,\n )\n }\n bgColor={\n theme.custom.inputBackground\n }\n filterSelectedOptions\n renderTags={(\n val,\n getTagProps,\n ) =>\n val.map(\n ({ title }, index) => (\n \n ),\n )\n }\n multiple\n loading={usersLoading}\n />\n \n
    \n )}\n \n \n \n handleChangeValue(\n FORM_FIELD_SEND_DATE,\n value,\n setFieldValue,\n )\n }\n />\n \n \n
    \n \n );\n }}\n \n \n ) : null;\n};\n\nNotificationForm.propTypes = {\n classes: PropTypes.object.isRequired,\n title: PropTypes.string.isRequired,\n subjectContentType: PropTypes.string,\n subjectContentID: PropTypes.string,\n subject: PropTypes.string,\n message: PropTypes.string,\n audienceType: PropTypes.string,\n audiences: PropTypes.array,\n sendDate: PropTypes.string,\n audienceCommunities: PropTypes.array,\n onChangeValue: PropTypes.func,\n onSubmit: PropTypes.func,\n\n communityId: PropTypes.string,\n challenges: PropTypes.array,\n fetchChallenges: PropTypes.func,\n users: PropTypes.array,\n fetchUsers: PropTypes.func,\n actions: PropTypes.array,\n fetchActions: PropTypes.func,\n searchUsers: PropTypes.func,\n usersLoading: PropTypes.bool,\n changeCommunity: PropTypes.func.isRequired,\n};\n\nNotificationForm.defaultProps = {\n subjectContentType: VALUE_GENERAL_SUBJECT_TYPE,\n subjectContentID: '',\n subject: '',\n message: '',\n audienceType: null,\n audiences: [],\n audienceCommunities: [],\n sendDate: null,\n onChangeValue: noop,\n onSubmit: noop,\n\n users: [],\n fetchUsers: noop,\n challenges: [],\n fetchChallenges: noop,\n actions: [],\n fetchActions: noop,\n searchUsers: noop,\n usersLoading: false,\n communityId: '',\n};\n\nconst StyledNotificationForm = withStyles(styles)(NotificationForm);\nexport default StyledNotificationForm;\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n challenges: getChallenges(state),\n actions: getNotificationActions(\n state,\n PIN_ADMIN_VISIBILITY_INCLUDED_FOR_THEME,\n ),\n users: getCommunityUsers(state),\n usersLoading: getActiveMembersLoading(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n fetchChallenges: (params) => dispatch(challengesRequested(params)),\n changeCommunity: (communityId) => dispatch(setActiveCommunity(communityId)),\n fetchActions: (communityId) =>\n dispatch(\n actionsRequested(communityId, {\n visibility: PIN_ADMIN_VISIBILITY_INCLUDED_FOR_THEME,\n limit: CLIENT_PAGINATION_FETCH_LIMIT,\n sortBy: 'name',\n order: 1,\n }),\n ),\n fetchUsers: (communityId) =>\n dispatch(\n membersRequested(communityId, ACTIVE_STATUS_ACTIVE, {\n skip: 0,\n limit: 25,\n }),\n ),\n searchUsers: (communityId, searchString) =>\n dispatch(\n membersSearchRequested(\n communityId,\n searchString,\n ACTIVE_STATUS_ACTIVE,\n { skip: 0, limit: 25 },\n ),\n ),\n});\n\nexport const ConnectedNotificationForm = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledNotificationForm);\n","import { fade } from '@material-ui/core/styles/colorManipulator';\n\nexport default (theme) => ({\n container: {\n flex: 1,\n borderRadius: 4,\n boxShadow: '0 0 0 1px rgba(0,0,0,.03), 0 1px 4px 0 rgba(0,0,0,.06)',\n backgroundColor: theme.custom.bgLightColor,\n\n '& form>.MuiGrid-container>button': { margin: '10px 15px 10px' },\n },\n top: {\n padding: '12px 16px',\n alignItems: 'center',\n color: theme.custom.darkGrey,\n },\n title: {\n fontSize: 16,\n margin: 0,\n fontWeight: 700,\n },\n warningBanner: {\n borderRadius: 10,\n borderWidth: 2,\n borderColor: theme.palette.error.main,\n borderStyle: 'solid',\n backgroundColor: '#fff',\n padding: '15px 20px',\n },\n modalTitle: {\n paddingBottom: 0,\n },\n body: {\n flexDirection: 'column',\n padding: 15,\n backgroundColor: fade(theme.palette.common.black, 0.05),\n color: theme.custom.textDarkColor,\n },\n inputField: {\n padding: '6px 12px',\n fontSize: 14,\n resize: 'none',\n\n '&:hover': {\n backgroundColor: theme.palette.common.white,\n },\n\n '&:active&:not(&:disabled)': {\n backgroundColor: theme.palette.common.white,\n },\n\n '&:focus': {\n backgroundColor: theme.palette.common.white,\n borderColor: theme.palette.primary.dark,\n outline: 'none',\n },\n },\n bottomFields: {\n width: '220px',\n },\n textarea: theme.shineAdmin.textarea,\n dropdown: {\n padding: 0,\n\n '& .MuiOutlinedInput-root': { padding: 0 },\n '& .MuiOutlinedInput-notchedOutline': { border: 'none' },\n '& .MuiAutocomplete-inputRoot[class*=\"MuiOutlinedInput-root\"] input': {\n padding: '6px 0 6px 12px',\n },\n },\n});\n","import IMAGES from '../../../constants/images';\n\nconst styles = (theme) => ({\n container: {\n minHeight: '605px',\n width: '320px',\n margin: '0 auto',\n background: `url(${IMAGES.notificationWrapper}) no-repeat center center`,\n backgroundSize: 'cover',\n },\n screen: {\n width: '100%',\n margin: '80px 35px',\n background: `url(${IMAGES.iosNotifications}) no-repeat center center`,\n backgroundSize: 'cover',\n },\n notification: {\n margin: '140px 10px 0',\n borderRadius: '7px',\n backgroundColor: '#c7d6ed',\n overflow: 'hidden',\n },\n notificationTitle: {\n display: 'flex',\n alignItems: 'center',\n padding: '1% 2% 1% 2%',\n fontSize: '9px',\n lineHeight: 2,\n backgroundColor: '#d4deef',\n },\n notificationIcon: {\n maxWidth: '20px',\n maxHeight: '20px',\n width: '6%',\n marginRight: '5px',\n },\n notificationText: {\n wordWrap: 'break-word',\n padding: '3% 4% 3% 4%',\n fontSize: '10px',\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, withStyles } from '@material-ui/core';\nimport styles from './styles';\nimport { getAppImages } from '../../../utils';\n\nconst IosNotificationPreview = ({ classes, message }) => {\n const { t } = useTranslation();\n\n return (\n \n
    \n
    \n
    \n \n {t('appName')}\n
    \n
    \n {message || t('notifications.yourCustomMessage')}\n
    \n
    \n
    \n
    \n );\n};\n\nIosNotificationPreview.propTypes = {\n classes: PropTypes.object.isRequired,\n message: PropTypes.string,\n};\n\nIosNotificationPreview.defaultProps = {\n message: null,\n};\n\nexport default withStyles(styles)(IosNotificationPreview);\n","import IMAGES from '../../../constants/images';\nimport { getAppImages } from '../../../utils';\n\nconst styles = (theme) => ({\n container: {\n minHeight: '605px',\n width: '320px',\n margin: '0 auto',\n background: `url(${IMAGES.notificationWrapper}) no-repeat center center`,\n backgroundSize: 'cover',\n },\n screen: {\n width: '100%',\n margin: '80px 35px',\n background: `url(${\n getAppImages().inAppNotifications\n }) no-repeat center center`,\n backgroundSize: 'cover',\n },\n notification: {\n display: 'flex',\n marginTop: '50px',\n overflow: 'hidden',\n },\n notificationTitle: {\n display: 'flex',\n marginBottom: '5px',\n alignItems: 'center',\n fontSize: '10.5px',\n fontWeight: 700,\n lineHeight: 1,\n },\n notificationIcon: {\n width: '11%',\n height: '11%',\n marginLeft: '4%',\n border: `1px solid ${theme.palette.common.white}`,\n borderRadius: '6px',\n boxSizing: 'border-box',\n },\n notificationText: {\n maxWidth: '156px',\n margin: '5px 0',\n fontSize: '10px',\n lineHeight: 1.1,\n wordWrap: 'break-word',\n },\n notificationContent: {\n display: 'flex',\n justifyContent: 'space-between',\n marginLeft: '2%',\n width: '83%',\n borderBottom: '1px solid #b7b7b7',\n },\n notificationTime: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'flex-start',\n margin: '0 8px 5px 0',\n fontSize: '9px',\n color: 'gray',\n },\n notificationTimeIcon: {\n width: '16px',\n height: '16px',\n },\n iconBorder: {\n border: `2px solid ${theme.palette.common.white}`,\n borderRadius: '6px 6px 50% 50%',\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\nimport clsx from 'clsx';\nimport { Grid, withStyles } from '@material-ui/core';\nimport IMAGES from '../../../constants/images';\nimport styles from './styles';\nimport { getAppImages } from '../../../utils';\n\nconst InAppNotificationPreview = ({\n classes,\n iconUrl,\n message,\n subjectContentType,\n subject,\n sendDate,\n isChallenge,\n}) => {\n const { t } = useTranslation();\n\n const showTitle = () => {\n if (subjectContentType === 'General') {\n return subject || t('appName');\n } else if (subjectContentType === 'Challenge') {\n return subject || t('notifications.subjectChallengeTitle');\n }\n };\n\n return (\n \n
    \n
    \n \n
    \n
    \n
    \n {showTitle()}\n
    \n
    \n {message ||\n t('notifications.messageFieldToolTip')}\n
    \n
    \n
    \n \n {sendDate\n ? moment(sendDate).format('h:mm A')\n : 'now'}\n
    \n
    \n
    \n
    \n
    \n );\n};\n\nInAppNotificationPreview.propTypes = {\n classes: PropTypes.object.isRequired,\n iconUrl: PropTypes.string,\n message: PropTypes.string,\n subjectContentType: PropTypes.string,\n subject: PropTypes.string,\n sendDate: PropTypes.string,\n isChallenge: PropTypes.bool,\n};\n\nInAppNotificationPreview.defaultProps = {\n iconUrl: null,\n message: null,\n subjectContentType: 'General',\n subject: null,\n sendDate: null,\n isChallenge: false,\n};\n\nexport default withStyles(styles)(InAppNotificationPreview);\n","const styles = (theme) => ({\n tabs: {\n borderRadius: 4,\n overflow: 'hidden',\n boxShadow: '0 0 0 1px rgba(0,0,0,.03), 0 1px 4px 0 rgba(0,0,0,.06)',\n },\n footer: {\n fontSize: '10px',\n textAlign: 'center',\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { withStyles, Typography, Grid } from '@material-ui/core';\nimport TabbedSection from '../TabbedSection';\nimport IosNotificationPreview from './IosNotificationPreview';\nimport InAppNotificationPreview from './InAppNotificationPreview';\nimport styles from './styles';\n\nconst NotificationsPreview = ({ classes, notification }) => {\n const { t } = useTranslation();\n const iOSPreview = t('notifications.iosPreview');\n const inAppPreview = t('notifications.appPreview');\n\n const tabs = {\n [iOSPreview]: ,\n [inAppPreview]: ,\n };\n\n const renderFooter = () => {\n return (\n \n {t('notifications.previewFooter')}\n \n );\n };\n\n return (\n \n \n \n );\n};\n\nNotificationsPreview.propTypes = {\n classes: PropTypes.object.isRequired,\n notification: PropTypes.shape({\n message: PropTypes.string,\n subjectContentType: PropTypes.string,\n subject: PropTypes.string,\n iconUrl: PropTypes.string,\n sendDate: PropTypes.string,\n }),\n};\n\nNotificationsPreview.defaultProps = {\n notification: {},\n};\n\nexport default withStyles(styles)(NotificationsPreview);\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Grid, withStyles } from '@material-ui/core';\nimport { connect } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { Prompt, useHistory, useRouteMatch } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport { ConnectedNotificationForm } from './NotificationForm';\nimport NotificationsPreview from '../../common/NotificationsPreview';\nimport { CHALLENGE_SUBJECT_TYPE } from '../../notifications/constants';\nimport { getActiveCommunityId } from '../../user/selectors';\nimport {\n getCreate,\n getNotificationData,\n getNotificationLoader,\n getUpdateErrors,\n getUpdateErrorStatus,\n} from '../../notifications/selectors';\nimport {\n clearAllErrors,\n createNotificationRequest,\n notificationRequest,\n updateNotificationRequest,\n} from '../../notifications/actions';\nimport { transformNotification } from '../../notifications/transforms';\nimport { GROUPS } from '../ChallengesScreen/constants';\nimport styles from './styles';\nimport ErrorModal from '../../common/ErrorModal';\nimport CommonPropTypes from '../../common/propTypes';\nimport { isGroupLoading } from '../ChallengesScreen/selectors';\nimport ConfirmModal from '../../common/ConfirmModal';\nimport RequestLoader from '../../common/RequestLoader';\n\nconst UpdateNotificationScreen = ({\n classes,\n communityId,\n notification,\n fetchNotification,\n createNotification,\n updateNotification,\n updateErrors,\n updateErrorStatus,\n clearErrors,\n loading,\n create,\n}) => {\n const history = useHistory();\n const { i18n, t } = useTranslation();\n const { params } = useRouteMatch();\n\n const language = useMemo(() => i18n.language, [i18n.language]);\n const notificationId = useMemo(() => params.notificationId, [\n params.notificationId,\n ]);\n const initData = useMemo(\n () =>\n notificationId\n ? transformNotification(notification, language)\n : create,\n [notificationId, notification, language, create],\n );\n const initCommunityId = useRef(communityId);\n\n const notificationPreviewData = (data) => ({\n message: data.message,\n sendDate: data.sendDate,\n iconUrl: data.iconUrl,\n isChallenge: data.subjectContentType === CHALLENGE_SUBJECT_TYPE,\n });\n\n const [isErrorShown, setErrorShown] = useState(false);\n const [formData, setFormData] = useState(null);\n const [pristine, setPristine] = useState(true);\n const [leaveModalShown, setLeaveModalShown] = useState(false);\n const [leaveLocation, setLeaveLocation] = useState(null);\n const [leaveConfirmed, setLeaveConfirmed] = useState(false);\n\n useEffect(() => {\n if (initCommunityId.current !== communityId) {\n history.push(`/notifications`);\n return;\n }\n if (!notificationId) return;\n fetchNotification({ communityId, notificationId });\n }, [communityId, notificationId, fetchNotification, history]);\n\n useEffect(() => setFormData(notificationPreviewData(initData)), [initData]);\n\n useEffect(() => {\n if (updateErrors != null) {\n setErrorShown(true);\n }\n }, [updateErrors]);\n\n const handleChangeValue = useCallback(\n (newData) => {\n setFormData({ ...formData, ...newData });\n setPristine(false);\n },\n [formData, setPristine],\n );\n\n const handleSubmit = (options) => {\n if (notificationId) {\n updateNotification({\n communityId,\n notificationId,\n options: { ...options, image: formData.image, language },\n });\n } else {\n createNotification({\n communityId,\n options: { ...options, image: formData.image, language },\n });\n }\n setPristine(true);\n };\n\n const handleModal = useCallback(() => {\n clearErrors();\n setErrorShown(false);\n }, [clearErrors]);\n\n useEffect(() => {\n if (leaveConfirmed) {\n history.push(leaveLocation);\n }\n }, [history, leaveConfirmed, leaveLocation]);\n\n return (\n \n \n \n \n \n {formData && }\n \n {isErrorShown && (\n \n )}\n {\n if (!leaveConfirmed) {\n setLeaveLocation(nextLocation);\n setLeaveModalShown(true);\n return false;\n }\n return true;\n }}\n />\n {\n setLeaveConfirmed(true);\n setLeaveModalShown(false);\n }}\n onClose={() => {\n setLeaveModalShown(false);\n }}\n onCancel={() => {\n setLeaveModalShown(false);\n }}\n >\n {t('unsavedWarning')}\n \n \n \n );\n};\n\nUpdateNotificationScreen.propTypes = {\n classes: PropTypes.object.isRequired,\n communityId: PropTypes.string.isRequired,\n notification: PropTypes.object,\n fetchNotification: PropTypes.func.isRequired,\n createNotification: PropTypes.func.isRequired,\n updateNotification: PropTypes.func.isRequired,\n updateErrors: CommonPropTypes.errors,\n updateErrorStatus: PropTypes.number,\n clearErrors: PropTypes.func.isRequired,\n loading: PropTypes.bool,\n create: PropTypes.object,\n};\n\nUpdateNotificationScreen.defaultProps = {\n notification: null,\n updateErrors: null,\n updateErrorStatus: null,\n loading: false,\n create: {},\n};\n\nconst StyledUpdateChallengeScreen = withStyles(styles)(\n UpdateNotificationScreen,\n);\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n notification: getNotificationData(state),\n updateErrors: getUpdateErrors(state),\n updateErrorStatus: getUpdateErrorStatus(state),\n loading:\n getNotificationLoader(state) ||\n GROUPS.some((group) => isGroupLoading(state, group)),\n create: getCreate(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n fetchNotification: (params) => dispatch(notificationRequest(params)),\n createNotification: (params) => dispatch(createNotificationRequest(params)),\n updateNotification: (params) => dispatch(updateNotificationRequest(params)),\n clearErrors: () => dispatch(clearAllErrors()),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StyledUpdateChallengeScreen);\n","export default () => ({\n container: {\n flexDirection: 'row',\n padding: '32px 96px',\n },\n wrapper: {\n padding: 8,\n },\n});\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n position: 'relative',\n maxWidth: theme.custom.mainContentWidth,\n marginLeft: 'auto',\n marginRight: 'auto',\n marginTop: '50px',\n boxShadow:\n 'rgba(0, 0, 0, 0.03) 0px 0px 0px 1px, rgba(0, 0, 0, 0.06) 0px 1px 4px 0px',\n color: theme.custom.textDarkColor,\n borderRadius: '5px',\n },\n title: {\n backgroundColor: theme.custom.bgLightColor,\n padding: '10px 15px',\n fontSize: '16px',\n fontWeight: 600,\n lineHeight: 1.1,\n color: theme.custom.textDarkSecondaryMutedColor,\n borderTopLeftRadius: '5px',\n borderTopRightRadius: '5px',\n borderWidth: 0,\n },\n body: {\n padding: '30px',\n backgroundColor: theme.custom.bgLightAccentColor,\n },\n photo: {\n width: '100%',\n },\n formRight: {\n marginLeft: '15px',\n },\n label: {\n marginBottom: '5px',\n color: theme.custom.textDarkColor,\n fontSize: '14px',\n fontWeight: 700,\n lineHeight: 1.4,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n\n '& svg': {\n cursor: 'pointer',\n marginLeft: '6px',\n color: 'rgba(51,51,51,.25)',\n\n '&:hover': {\n color: 'rgba(51,51,51,.5)',\n },\n },\n },\n buttons: {\n backgroundColor: theme.custom.bgLightColor,\n padding: '10px 15px',\n borderBottomLeftRadius: '5px',\n borderBottomRightRadius: '5px',\n },\n}));\n\nexport default useStyles;\n","import PropTypes from 'prop-types';\n\nexport const ImpactTotalPropType = PropTypes.shape({\n title: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n weight: PropTypes.string,\n color: PropTypes.string,\n});\n\nexport const ProfileActivityTotalsPropType = PropTypes.shape({\n points: PropTypes.number.isRequired,\n logs: PropTypes.number.isRequired,\n actions: PropTypes.number.isRequired,\n badges: PropTypes.number.isRequired,\n});\n\nexport const ProfilePropType = PropTypes.shape({\n id: PropTypes.string.isRequired,\n image: PropTypes.string,\n name: PropTypes.string.isRequired,\n headline: PropTypes.string,\n followers: PropTypes.number.isRequired,\n following: PropTypes.number.isRequired,\n impactTotals: PropTypes.arrayOf(ImpactTotalPropType).isRequired,\n activityTotals: ProfileActivityTotalsPropType.isRequired,\n});\n\nexport const ActionTrophyPropType = PropTypes.shape({\n imageUrl: PropTypes.string,\n name: PropTypes.string,\n});\n\nexport const BadgeTrophyPropType = PropTypes.shape({\n imageUrl: PropTypes.string,\n name: PropTypes.string,\n});\n\nexport const MedalTrophyPropType = PropTypes.shape({\n imageUrl: PropTypes.string,\n name: PropTypes.string,\n});\n\nexport const ProfileTrophyPropType = PropTypes.shape({\n actions: PropTypes.arrayOf(ActionTrophyPropType).isRequired,\n badges: PropTypes.arrayOf(BadgeTrophyPropType).isRequired,\n medals: PropTypes.arrayOf(MedalTrophyPropType).isRequired,\n});\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { FormLabel, Grid, Typography } from '@material-ui/core';\nimport { InfoOutlined } from '@material-ui/icons';\nimport { useHistory } from 'react-router-dom';\n\nimport useStyles from './styles';\n\nimport RequestLoader from '../../common/RequestLoader';\nimport ErrorList from '../../common/errors/ErrorList';\nimport Tooltip from '../../common/Tooltip';\nimport Photo from '../../common/Photo';\nimport CommonPropTypes from '../../common/propTypes';\nimport { ProfilePropType } from '../ProfileScreen/propTypes';\nimport { Formik } from 'formik';\nimport * as Yup from 'yup';\nimport { getAppImages, noop } from '../../utils';\nimport LimitedLengthInput from '../../common/LimitedLengthInput';\nimport FormInput from '../../common/Form/FormInput';\nimport Textarea from '../../common/Textarea';\nimport {\n getActiveCommunityId,\n getUserErrors,\n getUserProfile,\n getUserUpdateErrors,\n getUserUpdateResult,\n isUserLoading,\n isUserUpdateLoading,\n} from '../../user/selectors';\nimport { userRequested, userUpdateRequested } from '../../user/actions';\nimport Button from '../../common/Button';\nimport theme from '../../theme';\nimport { BUTTON_ACCENT_COLOR } from '../../common/Button/constants';\n\nconst MAX_NAME_LENGTH = 50;\n\nconst UpdateProfileScreen = ({\n communityId,\n profileLoading,\n profileErrors,\n profile,\n requestUser,\n updateLoading,\n updateErrors,\n updateResult,\n requestUpdate,\n}) => {\n const { t } = useTranslation();\n const classes = useStyles();\n const history = useHistory();\n\n const isPresentable = useMemo(\n () => !profileLoading && profileErrors == null && profile != null,\n [profileLoading, profileErrors, profile],\n );\n\n useEffect(() => {\n requestUser();\n }, [requestUser]);\n\n const [profileImage, setProfileImage] = useState(null);\n\n const initialValues = useMemo(\n () => ({\n name: profile?.name,\n headline: profile?.headline,\n }),\n [profile],\n );\n\n const validationSchema = useMemo(\n () =>\n Yup.object().shape({\n name: Yup.string()\n .required()\n .max(MAX_NAME_LENGTH),\n headline: Yup.string(),\n }),\n [],\n );\n\n const handleNameChange = useCallback((event, formikHandleChange) => {\n if (event.target.value.length <= MAX_NAME_LENGTH) {\n formikHandleChange(event);\n }\n }, []);\n\n const handleCancel = useCallback(() => {\n // Can only edit own profile, so we go back to 'self'\n history.push('/profile/self');\n }, [history]);\n\n const [isUpdateRequestSent, setUpdateRequestSent] = useState(false);\n\n const handleSave = useCallback(\n ({ name = '', headline = '' }) => {\n requestUpdate({\n communityId,\n userId: profile.id,\n name,\n headline,\n file: profileImage,\n });\n history.push('/profile/self');\n setUpdateRequestSent(true);\n },\n [\n history,\n requestUpdate,\n communityId,\n profile,\n profileImage,\n setUpdateRequestSent,\n ],\n );\n\n useEffect(() => {\n if (\n isUpdateRequestSent &&\n !updateLoading &&\n updateErrors == null &&\n updateResult != null\n ) {\n history.push('/profile');\n }\n }, [\n isUpdateRequestSent,\n updateLoading,\n updateErrors,\n updateResult,\n history,\n ]);\n\n return (\n \n \n \n \n \n {isPresentable ? (\n \n {(formikProps) => (\n <>\n \n {t('profile.edit')}\n \n \n \n \n \n \n \n \n {t('name')}\n \n \n \n \n \n handleNameChange(\n event,\n formikProps.handleChange,\n )\n }\n />\n \n \n \n {t('profileCreate.headline')}\n \n \n \n \n \n \n \n \n \n \n {t('cancel')}\n \n  \n \n handleSave(formikProps.values)\n }\n disabled={!formikProps.isValid}\n >\n {t('Save')}\n \n \n \n )}\n \n ) : null}\n \n );\n};\n\nUpdateProfileScreen.propTypes = {\n communityId: PropTypes.string.isRequired,\n profileLoading: PropTypes.bool.isRequired,\n profileErrors: CommonPropTypes.errors,\n profile: ProfilePropType,\n requestUser: PropTypes.func.isRequired,\n updateLoading: PropTypes.bool.isRequired,\n updateErrors: CommonPropTypes.errors,\n updateResult: PropTypes.object,\n requestUpdate: PropTypes.func.isRequired,\n};\n\nUpdateProfileScreen.defaultProps = {\n profileErrors: null,\n profile: null,\n updateErrors: null,\n updateResult: null,\n};\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n profileLoading: isUserLoading(state),\n profileErrors: getUserErrors(state),\n profile: getUserProfile(state),\n updateLoading: isUserUpdateLoading(state),\n updateErrors: getUserUpdateErrors(state),\n updateResult: getUserUpdateResult(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n requestUser: () => dispatch(userRequested()),\n requestUpdate: (request) => dispatch(userUpdateRequested(request)),\n});\n\nconst ConnectedUpdateProfileScreen = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(UpdateProfileScreen);\nexport default ConnectedUpdateProfileScreen;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n position: 'relative',\n maxWidth: theme.custom.mainContentWidth,\n marginLeft: 'auto',\n marginRight: 'auto',\n paddingTop: '40px',\n },\n header: {\n paddingLeft: theme.custom.mainContentHorizontalPadding,\n paddingRight: theme.custom.mainContentHorizontalPadding,\n },\n infoIcon: {\n marginLeft: '6px',\n fontSize: '28px',\n color: 'rgba(51,51,51,.25)',\n cursor: 'pointer',\n\n '&:hover': {\n color: 'rgba(51,51,51,.5)',\n },\n },\n infoTitle: {\n marginBottom: '10px',\n marginTop: '20px',\n fontSize: '30px',\n fontWeight: 600,\n },\n infoDescription: {\n margin: '0 0 20px',\n fontSize: '24px',\n lineHeight: 1.4,\n },\n editButton: {\n borderRadius: '6px',\n\n '& svg': {\n marginRight: '3px',\n },\n },\n profileImageContainer: {\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n profileImage: {\n display: 'block',\n width: '188px',\n height: '188px',\n borderRadius: '6px',\n border: '1px solid rgba(255,255,255)',\n },\n profileName: {\n marginTop: '20px',\n marginBottom: '10px',\n textAlign: 'center',\n fontSize: '30px',\n fontWeight: 600,\n lineHeight: 1.1,\n color: theme.custom.textDarkColor,\n },\n profileHeadline: {\n fontSize: '14px',\n marginTop: '10px',\n marginBottom: '10px',\n fontWeight: 600,\n lineHeight: 1.1,\n textAlign: 'center',\n color: theme.custom.textDarkColor,\n },\n followContainer: {\n marginTop: '10px',\n },\n impactTotalsLabel: {\n fontSize: '24px',\n fontWeight: 600,\n marginTop: '40px',\n marginBottom: '10px',\n lineHeight: 1.1,\n color: theme.custom.textDarkSecondaryColor,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n\n '& svg': {\n cursor: 'pointer',\n marginLeft: '6px',\n color: 'rgba(51,51,51,.25)',\n\n '&:hover': {\n color: 'rgba(51,51,51,.5)',\n },\n },\n },\n activityTotals: {\n marginTop: '40px',\n },\n}));\n\nexport default useStyles;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n impactTitle: {\n display: 'flex',\n alignItems: 'center',\n marginTop: '20px',\n marginBottom: '10px',\n fontSize: '24px',\n lineHeight: 1.1,\n fontWeight: 600,\n color: theme.custom.textDarkSecondaryColor,\n },\n tooltipIcon: {\n marginLeft: '5px',\n color: theme.custom.iconColor,\n\n '&:hover': {\n cursor: 'pointer',\n color: theme.custom.iconColorHover,\n },\n },\n container: {\n position: 'relative',\n maxWidth: theme.custom.mainContentWidth,\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n infoIcon: {\n marginLeft: '6px',\n fontSize: '28px',\n color: 'rgba(51,51,51,.25)',\n cursor: 'pointer',\n\n '&:hover': {\n color: 'rgba(51,51,51,.5)',\n },\n },\n infoTitle: {\n marginBottom: '10px',\n marginTop: '20px',\n fontSize: '30px',\n fontWeight: 600,\n },\n infoDescription: {\n margin: '0 0 20px',\n fontSize: '24px',\n lineHeight: 1.4,\n },\n editButton: {\n borderRadius: '6px',\n\n '& svg': {\n marginRight: '3px',\n },\n },\n profileImageContainer: {\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n profileImage: {\n display: 'block',\n width: '188px',\n height: '188px',\n borderRadius: '6px',\n border: '1px solid rgba(255,255,255)',\n },\n profileName: {\n marginTop: '20px',\n marginBottom: '10px',\n textAlign: 'center',\n fontSize: '30px',\n fontWeight: 600,\n lineHeight: 1.1,\n color: theme.custom.textDarkColor,\n },\n profileHeadline: {\n fontSize: '14px',\n marginTop: '10px',\n marginBottom: '10px',\n fontWeight: 600,\n lineHeight: 1.1,\n textAlign: 'center',\n color: theme.custom.textDarkColor,\n },\n followContainer: {\n marginTop: '10px',\n },\n impactTotalsLabel: {\n fontSize: '24px',\n fontWeight: 600,\n marginTop: '40px',\n marginBottom: '10px',\n lineHeight: 1.1,\n color: theme.custom.textDarkSecondaryColor,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n\n '& svg': {\n cursor: 'pointer',\n marginLeft: '6px',\n color: 'rgba(51,51,51,.25)',\n\n '&:hover': {\n color: 'rgba(51,51,51,.5)',\n },\n },\n },\n activityTotals: {\n marginTop: '40px',\n },\n}));\n\nexport default useStyles;\n","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, Typography } from '@material-ui/core';\nimport {\n AddCircleRounded,\n PlusOneRounded,\n StarsRounded,\n VibrationRounded,\n} from '@material-ui/icons';\nimport useStyles from './styles';\nimport StatCard from '../../../common/StatCard';\nimport ActivityTotals from '../../../common/ActivityTotals';\nimport { ProfilePropType } from '../propTypes';\nimport ImpactToolTip from '../../../common/ImpactTooltip';\n\nconst ProfileStats = ({ profile }) => {\n const { t } = useTranslation();\n const classes = useStyles();\n\n const activityItems = useMemo(\n () =>\n profile.activityTotals && [\n {\n label: t('Points'),\n value: profile.activityTotals.points,\n icon: ,\n },\n {\n label: t('profile.logs'),\n value: profile.activityTotals.logs,\n icon: ,\n },\n {\n label: t('profile.actions'),\n value: profile.activityTotals.actions,\n icon: ,\n },\n {\n label: t('profile.badges'),\n value: profile.activityTotals.badges,\n icon: ,\n },\n ],\n [profile, t],\n );\n\n return (\n \n <>\n \n \n \n \n \n \n \n \n \n {t('impact.totals')}\n \n \n \n {profile.impactTotals.map((impact, index) => (\n \n \n \n ))}\n \n \n \n \n \n \n );\n};\n\nProfileStats.propTypes = {\n profile: ProfilePropType,\n};\n\nProfileStats.defaultProps = {\n profile: null,\n};\n\nexport default ProfileStats;\n","const styles = (theme) => ({\n trophies: {\n padding: '10px',\n maxWidth: '800px',\n width: 'fit-content',\n borderRadius: '5px',\n overflow: 'hidden',\n },\n title: {\n color: theme.custom.textDarkSecondaryMutedColor,\n fontWeight: '700',\n marginBottom: '12px',\n },\n border: {\n border: `5px solid ${theme.palette.primary.main}`,\n borderRadius: '50%',\n backgroundColor: '#dadada',\n },\n trophyContainer: {\n position: 'relative',\n },\n medalMultiplier: {\n position: 'absolute',\n top: 60,\n right: 0,\n background: theme.palette.primary.main,\n padding: '2px 8px',\n borderRadius: '30%/50%',\n },\n multiplierText: {\n fontSize: '10px',\n fontWeight: '600',\n color: '#fff',\n },\n});\n\nexport default styles;\n","const styles = (theme) => ({\n image: {\n alignSelf: 'center',\n },\n title: {\n color: theme.custom.textDarkSecondaryMutedColor,\n fontWeight: '700',\n marginBottom: '12px',\n },\n description: {\n alignSelf: 'center',\n margin: '15px',\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\n\nimport IMAGES from '../../constants/images';\nimport styles from './styles';\n\nconst EmptyTrophySection = ({ classes, title, description }) => {\n return (\n \n \n {title}\n \n \n \n {description}\n \n \n );\n};\n\nEmptyTrophySection.propTypes = {\n classes: PropTypes.object.isRequired,\n title: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n};\n\nexport default withStyles(styles)(EmptyTrophySection);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, Typography, withStyles } from '@material-ui/core';\n\nimport styles from './styles';\nimport {\n ActionTrophyPropType,\n BadgeTrophyPropType,\n MedalTrophyPropType,\n} from '../../screens/ProfileScreen/propTypes';\nimport EmptyTrophySection from '../EmptyTrophySection';\n\nconst TrophySection = ({\n classes,\n title,\n trophies,\n description,\n hasMultiplier,\n hasBorder,\n}) => {\n return trophies?.length > 0 ? (\n \n \n {title}\n \n \n {trophies.map((trophy, i) => {\n return (\n \n \n {hasMultiplier && trophy.multiplier > 1 && (\n
    \n {`${trophy.multiplier}x`}\n
    \n )}\n
    \n );\n })}\n \n \n ) : (\n \n );\n};\n\nTrophySection.propTypes = {\n classes: PropTypes.object.isRequired,\n title: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n trophies: PropTypes.arrayOf(\n PropTypes.oneOfType([\n ActionTrophyPropType,\n BadgeTrophyPropType,\n MedalTrophyPropType,\n ]),\n ).isRequired,\n hasMultiplier: PropTypes.bool,\n hasBorder: PropTypes.bool,\n};\n\nTrophySection.defaultProps = {\n hasMultiplier: false,\n hasBorder: PropTypes.bool,\n};\n\nexport default withStyles(styles)(TrophySection);\n","import React from 'react';\n\nimport TrophySection from '../../../common/TrophySection';\nimport { ProfileTrophyPropType } from '../propTypes';\nimport { useTranslation } from 'react-i18next';\nimport { Grid } from '@material-ui/core';\n\nconst ProfileTrophies = ({ userTrophies }) => {\n const { t } = useTranslation();\n return (\n \n \n \n \n \n );\n};\n\nProfileTrophies.propTypes = {\n userTrophies: ProfileTrophyPropType.isRequired,\n};\n\nexport default ProfileTrophies;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { Grid, Typography } from '@material-ui/core';\nimport { Edit } from '@material-ui/icons';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\n\nimport useStyles from './styles';\nimport Button from '../../common/Button';\nimport { BUTTON_ACCENT_COLOR } from '../../common/Button/constants';\nimport {\n getSelectedUserErrors,\n getSelectedUserProfile,\n getSelectedUserTrophies,\n getUserErrors,\n getUserId,\n getUserProfile,\n getUserTrophies,\n isSelectedUserLoading,\n isUserLoading,\n} from '../../user/selectors';\nimport { userDetailsRequested, userRequested } from '../../user/actions';\nimport CommonPropTypes from '../../common/propTypes';\nimport RequestLoader from '../../common/RequestLoader';\nimport ErrorList from '../../common/errors/ErrorList';\nimport TabbedSection from '../../common/TabbedSection';\nimport ProfileStats from './ProfileStats';\nimport { ProfilePropType, ProfileTrophyPropType } from './propTypes';\nimport ProfileTrophies from './ProfileTrophies';\nimport { USER_SELF } from '../../user/constants';\nimport { getAppImages, noop } from '../../utils';\nimport { trackEvent, useTrackScreenView } from '../../utils/analytics';\nimport InfoCardHeader from '../../common/InfoCardHeader';\nimport { INFO_CARD_PROFILE } from '../../common/InfoCard/constants';\nimport {\n activityDataRequested,\n clearActivities,\n} from '../../activities/actions';\nimport { clearFlagMessages, profileReportRequested } from '../../flags/actions';\nimport { ACTIVITIES_FEED_TYPE_USER } from '../../activities/constants';\nimport { activitiesLoading, getActivities } from '../../activities/selectors';\nimport {\n getReportPostContentId,\n getMessages as getFlagMessages,\n getErrors as getFlagErrors,\n} from '../../flags/selectors';\nimport ActivityCardScroller from '../../common/ActivityCard/ActivityCardScroller';\nimport ActivityOptionsPopper from '../../common/ActivityCard/ActivityOptionsPopper';\nimport SnackBarAPIResponse from '../../common/SnackbarAlert/SnackBarAPIResponse';\nimport { REPORT_TYPE_PROFILE } from '../../common/ActivityCard/ActivityOptionsPopper/constants';\nimport {\n EVENT_PROFILE_ACTIVITY_VIEWED,\n EVENT_PROFILE_TROPHY_CASE_VIEWED,\n} from '../../constants/analyticsEvents';\n\nconst ProfileScreen = ({\n loading,\n errors,\n profile,\n requestUser,\n fetchSelectedUser,\n selectedUserLoading,\n selectedUserErrors,\n selectedUserProfile,\n userTrophies,\n selectedUserTrophies,\n fetchSelectedUserActivities,\n clearUserActivities,\n userActivitiesLoading,\n userActivityItems,\n currentUserId,\n handleSubmitReport,\n flagReportLoadingId,\n clearErrors,\n messages,\n}) => {\n const { t } = useTranslation();\n const classes = useStyles();\n const history = useHistory();\n const {\n params: { userId },\n } = useRouteMatch();\n\n const flagReportLoading = useMemo(\n () => flagReportLoadingId === selectedUserProfile?.id,\n [flagReportLoadingId, selectedUserProfile],\n );\n\n const [haveFetchedActivities, setHaveFetchedActivities] = useState(false);\n\n const isSelf = useMemo(\n () => userId === currentUserId || userId === USER_SELF,\n [userId, currentUserId],\n );\n\n useTrackScreenView(isSelf ? 'profile_view_self' : 'profile_view_other');\n\n // Determines weather we should show the user info\n const isPresentable = useMemo(\n () =>\n profile != null && isSelf\n ? !loading && errors == null\n : !selectedUserLoading &&\n selectedUserErrors == null &&\n selectedUserProfile != null,\n [\n isSelf,\n loading,\n errors,\n profile,\n selectedUserLoading,\n selectedUserErrors,\n selectedUserProfile,\n ],\n );\n\n const handleEditClick = useCallback(() => {\n history.push('/profile/edit');\n }, [history]);\n\n const getProfile = () => (isSelf ? profile : selectedUserProfile);\n\n const getTrophies = () => (isSelf ? userTrophies : selectedUserTrophies);\n\n useEffect(() => {\n if (isSelf) {\n requestUser();\n } else {\n fetchSelectedUser(userId);\n }\n clearUserActivities();\n setHaveFetchedActivities(false);\n }, [requestUser, userId, fetchSelectedUser, isSelf, clearUserActivities]);\n\n const handleTabChange = (index) => {\n switch (index) {\n case 1:\n trackEvent(EVENT_PROFILE_TROPHY_CASE_VIEWED);\n break;\n case 2:\n trackEvent(EVENT_PROFILE_ACTIVITY_VIEWED);\n if (!haveFetchedActivities) {\n fetchSelectedUserActivities(userId);\n }\n break;\n default:\n break;\n }\n };\n\n const tabs = {\n [t('stats')]: ,\n [t('profile.trophyCase')]: (\n \n ),\n [t('activity.descriptor')]: (\n \n fetchSelectedUserActivities(userId, options)\n }\n items={userActivityItems}\n />\n ),\n };\n\n return (\n \n \n \n {isPresentable && (\n <>\n \n \n \n {t('profile.edit')}\n \n ) : (\n \n handleSubmitReport(\n selectedUserProfile.id,\n )\n }\n isLoading={flagReportLoading}\n content={selectedUserProfile}\n />\n )\n }\n >\n \n {t('profile.expressYourself')}\n \n \n {t('profile.welcomeToYourProfile')}\n \n \n \n \n \n \n {getProfile().name}\n \n \n {getProfile().headline}\n \n \n \n \n )}\n \n \n );\n};\n\nProfileScreen.propTypes = {\n loading: PropTypes.bool.isRequired,\n errors: CommonPropTypes.errors,\n profile: ProfilePropType,\n requestUser: PropTypes.func.isRequired,\n fetchSelectedUser: PropTypes.func.isRequired,\n selectedUserLoading: PropTypes.bool.isRequired,\n selectedUserErrors: CommonPropTypes.errors,\n selectedUserProfile: ProfilePropType,\n userTrophies: ProfileTrophyPropType,\n selectedUserTrophies: ProfileTrophyPropType,\n fetchSelectedUserActivities: PropTypes.func.isRequired,\n clearUserActivities: PropTypes.func.isRequired,\n userActivitiesLoading: PropTypes.bool,\n userActivityItems: PropTypes.array,\n currentUserId: PropTypes.string.isRequired,\n handleSubmitReport: PropTypes.func,\n clearErrors: PropTypes.func,\n flagReportLoadingId: PropTypes.string,\n messages: PropTypes.array,\n};\n\nProfileScreen.defaultProps = {\n errors: null,\n profile: null,\n userTrophies: [],\n selectedUserTrophies: [],\n selectedUserErrors: null,\n selectedUserProfile: null,\n userActivitiesLoading: false,\n userActivityItems: [],\n handleSubmitReport: noop,\n flagReportLoadingId: null,\n messages: [],\n clearErrors: noop,\n};\n\nconst mapStateToProps = (state) => {\n const errors = [\n ...(getUserErrors(state) || []),\n ...(getFlagErrors(state) || []),\n ];\n return {\n // Admin\n loading: isUserLoading(state),\n errors: errors?.length === 0 ? null : errors,\n messages: getFlagMessages(state),\n profile: getUserProfile(state),\n userTrophies: getUserTrophies(state),\n currentUserId: getUserId(state),\n\n // Selected User\n selectedUserLoading: isSelectedUserLoading(state),\n selectedUserErrors: getSelectedUserErrors(state),\n selectedUserProfile: getSelectedUserProfile(state),\n selectedUserTrophies: getSelectedUserTrophies(state),\n\n userActivitiesLoading: activitiesLoading(\n state,\n ACTIVITIES_FEED_TYPE_USER,\n ),\n userActivityItems: getActivities(state, ACTIVITIES_FEED_TYPE_USER),\n flagReportLoadingId: getReportPostContentId(state),\n clearErrors: PropTypes.func,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n handleSubmitReport: (profileId) =>\n dispatch(profileReportRequested(profileId)),\n fetchSelectedUser: (userId) => dispatch(userDetailsRequested(userId)),\n requestUser: () => dispatch(userRequested()),\n fetchSelectedUserActivities: (userId, options) =>\n dispatch(\n activityDataRequested(ACTIVITIES_FEED_TYPE_USER, {\n userId,\n ...options,\n }),\n ),\n clearUserActivities: () =>\n dispatch(clearActivities(ACTIVITIES_FEED_TYPE_USER)),\n clearErrors: () => dispatch(clearFlagMessages()),\n});\n\nconst ConnectedProfileScreen = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(ProfileScreen);\nexport default ConnectedProfileScreen;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n position: 'relative',\n maxWidth: theme.custom.mainContentWidth,\n marginLeft: 'auto',\n marginRight: 'auto',\n marginTop: '50px',\n boxShadow:\n 'rgba(0, 0, 0, 0.03) 0px 0px 0px 1px, rgba(0, 0, 0, 0.06) 0px 1px 4px 0px',\n color: theme.custom.textDarkColor,\n borderRadius: '5px',\n },\n title: {\n backgroundColor: theme.custom.bgLightColor,\n padding: '10px 15px',\n fontSize: '16px',\n fontWeight: 600,\n lineHeight: 1.1,\n color: theme.custom.textDarkSecondaryMutedColor,\n borderTopLeftRadius: '5px',\n borderTopRightRadius: '5px',\n borderWidth: 0,\n },\n body: {\n padding: '30px',\n backgroundColor: theme.custom.bgLightAccentColor,\n },\n photo: {\n width: '100%',\n },\n formRight: {\n marginLeft: '15px',\n },\n label: {\n marginBottom: '5px',\n color: theme.custom.textDarkColor,\n fontSize: '14px',\n fontWeight: 700,\n lineHeight: 1.4,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n\n '& svg': {\n cursor: 'pointer',\n marginLeft: '6px',\n color: 'rgba(51,51,51,.25)',\n\n '&:hover': {\n color: 'rgba(51,51,51,.5)',\n },\n },\n },\n buttons: {\n backgroundColor: theme.custom.bgLightColor,\n padding: '10px 15px',\n borderBottomLeftRadius: '5px',\n borderBottomRightRadius: '5px',\n },\n}));\n\nexport default useStyles;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n position: 'relative',\n maxWidth: theme.custom.mainContentWidth,\n marginLeft: 'auto',\n marginRight: 'auto',\n paddingTop: '40px',\n paddingLeft: theme.custom.mainContentHorizontalPadding,\n paddingRight: theme.custom.mainContentHorizontalPadding,\n },\n infoIcon: {\n marginLeft: '6px',\n fontSize: '28px',\n color: 'rgba(51,51,51,.25)',\n cursor: 'pointer',\n\n '&:hover': {\n color: 'rgba(51,51,51,.5)',\n },\n },\n editButton: {\n borderRadius: '6px',\n\n '& svg': {\n marginRight: '3px',\n },\n },\n profileImageContainer: {\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n profileImage: {\n display: 'block',\n width: '188px',\n height: '188px',\n borderRadius: '6px',\n border: '1px solid rgba(255,255,255)',\n },\n profileName: {\n marginTop: '20px',\n marginBottom: '10px',\n textAlign: 'center',\n fontSize: '30px',\n fontWeight: 600,\n lineHeight: 1.1,\n color: theme.custom.textDarkColor,\n },\n orgId: {\n marginTop: '20px',\n fontSize: '16px',\n color: theme.custom.textDarkColor,\n },\n profileDescription: {\n fontSize: '14px',\n marginTop: '10px',\n marginBottom: '10px',\n fontWeight: 600,\n lineHeight: 1.1,\n textAlign: 'center',\n color: theme.custom.textDarkColor,\n },\n followContainer: {\n marginTop: '10px',\n },\n impactTotalsLabel: {\n fontSize: '24px',\n fontWeight: 600,\n marginTop: '40px',\n marginBottom: '10px',\n lineHeight: 1.1,\n color: theme.custom.textDarkSecondaryColor,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n\n '& svg': {\n cursor: 'pointer',\n marginLeft: '6px',\n color: 'rgba(51,51,51,.25)',\n\n '&:hover': {\n color: 'rgba(51,51,51,.5)',\n },\n },\n },\n activityTotals: {\n marginTop: '40px',\n },\n}));\n\nexport default useStyles;\n","import React, { useCallback, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport { Grid, Typography } from '@material-ui/core';\nimport {\n AddCircleRounded,\n Edit,\n PlusOneRounded,\n StarsRounded,\n SupervisorAccountRounded,\n VibrationRounded,\n} from '@material-ui/icons';\n\nimport useStyles from './styles';\n\nimport HeaderPage from '../../common/HeaderPage';\nimport Button from '../../common/Button';\nimport StatCard from '../../common/StatCard';\nimport ActivityTotals from '../../common/ActivityTotals';\nimport { BUTTON_ACCENT_COLOR } from '../../common/Button/constants';\nimport CommonPropTypes from '../../common/propTypes';\nimport RequestLoader from '../../common/RequestLoader';\nimport ErrorList from '../../common/errors/ErrorList';\nimport { communityRequested } from '../../community/actions';\nimport {\n getCommunityErrors,\n getCommunityProfile,\n isCommunityLoading,\n} from '../../community/selectors';\nimport { Can } from '../../casl/ability-context';\nimport { ImpactTotalPropType } from '../ProfileScreen/propTypes';\nimport { getAppImages } from '../../utils';\nimport ImpactToolTip from '../../common/ImpactTooltip';\nimport { getActiveCommunityOrgId } from '../../user/selectors';\n\nconst CommunityProfileScreen = ({\n loading,\n errors,\n profile,\n requestCommunity,\n orgId,\n}) => {\n const { t } = useTranslation();\n const classes = useStyles();\n const history = useHistory();\n const { communityId } = useParams();\n\n const isPresentable = useMemo(\n () => !loading && errors == null && profile != null,\n [loading, errors, profile],\n );\n\n const handleEditClick = useCallback(() => {\n history.push(`/communities/${communityId}/edit`);\n }, [communityId, history]);\n\n useEffect(() => {\n requestCommunity(communityId);\n }, [requestCommunity, communityId]);\n\n const activityItems = useMemo(\n () =>\n profile?.activityTotals == null\n ? null\n : [\n {\n label: t('Points'),\n value: profile.activityTotals.points,\n icon: ,\n },\n {\n label: t('profile.logs'),\n value: profile.activityTotals.logs,\n icon: ,\n },\n {\n label: t('action.descriptor_plural'),\n value: profile.activityTotals.actions,\n icon: ,\n },\n {\n label: t('profile.badges'),\n value: profile.activityTotals.badges,\n icon: ,\n },\n {\n label: t('Members'),\n value: profile.activityTotals.members,\n icon: ,\n },\n ],\n [profile, t],\n );\n\n return (\n \n \n \n {isPresentable ? (\n <>\n \n \n \n {t('profile.edit')}\n \n \n }\n />\n \n \n \n \n {profile.name}\n \n \n {profile.description}\n \n \n {t('impact.totals')}\n \n \n \n {profile.impactTotals?.map((impact, index) => (\n \n \n \n ))}\n \n \n \n \n \n ) : null}\n \n {communityId !== orgId\n ? t('community.communityId', { id: communityId })\n : t('community.orgId', { id: orgId })}\n \n \n );\n};\n\nexport const CommunityProfileActivityTotalsPropType = PropTypes.shape({\n points: PropTypes.number.isRequired,\n logs: PropTypes.number.isRequired,\n actions: PropTypes.number.isRequired,\n badges: PropTypes.number.isRequired,\n members: PropTypes.number.isRequired,\n});\n\nexport const CommunityProfilePropType = PropTypes.shape({\n id: PropTypes.string.isRequired,\n image: PropTypes.string,\n name: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n impactTotals: PropTypes.arrayOf(ImpactTotalPropType).isRequired,\n activityTotals: CommunityProfileActivityTotalsPropType.isRequired,\n});\n\nCommunityProfileScreen.propTypes = {\n loading: PropTypes.bool.isRequired,\n errors: CommonPropTypes.errors,\n profile: CommunityProfilePropType,\n requestCommunity: PropTypes.func.isRequired,\n orgId: PropTypes.string.isRequired,\n};\n\nCommunityProfileScreen.defaultProps = {\n errors: null,\n profile: null,\n};\n\nconst mapStateToProps = (state) => ({\n loading: isCommunityLoading(state),\n errors: getCommunityErrors(state),\n profile: getCommunityProfile(state),\n orgId: getActiveCommunityOrgId(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n requestCommunity: (request) => dispatch(communityRequested(request)),\n});\n\nconst ConnectedCommunityProfileScreen = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(CommunityProfileScreen);\nexport default ConnectedCommunityProfileScreen;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { connect } from 'react-redux';\nimport { Grid, Typography } from '@material-ui/core';\nimport { InfoOutlined } from '@material-ui/icons';\nimport { useHistory, useParams } from 'react-router-dom';\n\nimport useStyles from './styles';\n\nimport RequestLoader from '../../common/RequestLoader';\nimport ErrorList from '../../common/errors/ErrorList';\nimport Tooltip from '../../common/Tooltip';\nimport Photo from '../../common/Photo';\nimport CommonPropTypes from '../../common/propTypes';\nimport { Formik } from 'formik';\nimport * as Yup from 'yup';\nimport { getAppImages, noop } from '../../utils';\nimport LimitedLengthInput from '../../common/LimitedLengthInput';\nimport FormInput from '../../common/Form/FormInput';\nimport Textarea from '../../common/Textarea';\nimport Button from '../../common/Button';\nimport theme from '../../theme';\nimport { BUTTON_ACCENT_COLOR } from '../../common/Button/constants';\nimport { CommunityProfilePropType } from '../CommunityProfileScreen';\nimport {\n communityRequested,\n communityUpdateRequested,\n} from '../../community/actions';\nimport {\n getImageUploadErrors,\n getImageUploadResponse,\n isImageUploadRequestPending,\n} from '../../image/selectors';\nimport { imageUploadRequested } from '../../image/actions';\nimport {\n getCommunityErrors,\n getCommunityProfile,\n getCommunityUpdateErrors,\n getCommunityUpdateResult,\n isCommunityLoading,\n isCommunityUpdateLoading,\n} from '../../community/selectors';\n\nconst MAX_NAME_LENGTH = 150;\n\nconst UpdateCommunityProfileScreen = ({\n profileLoading,\n profileErrors,\n profile,\n requestCommunity,\n imageUploading,\n imageUploadErrors,\n imageUploadResponse,\n requestImageUpload,\n updateLoading,\n updateErrors,\n updateResult,\n requestUpdate,\n}) => {\n const { t } = useTranslation();\n const classes = useStyles();\n const history = useHistory();\n const { communityId } = useParams();\n\n const isPresentable = useMemo(\n () => !profileLoading && profileErrors == null && profile != null,\n [profileLoading, profileErrors, profile],\n );\n\n useEffect(() => {\n requestCommunity(communityId);\n }, [requestCommunity, communityId]);\n\n const [profileImage, setProfileImage] = useState(null);\n const [imageSizes, setImageSizes] = useState(null);\n\n useEffect(() => {\n if (profileImage != null) {\n requestImageUpload({\n communityId,\n file: profileImage,\n });\n }\n }, [profileImage, requestImageUpload, communityId]);\n\n useEffect(() => {\n if (\n !imageUploading &&\n imageUploadErrors == null &&\n imageUploadResponse != null\n ) {\n setImageSizes(imageUploadResponse);\n }\n }, [imageUploading, imageUploadErrors, imageUploadResponse, setImageSizes]);\n\n const initialValues = useMemo(\n () => ({\n name: profile?.name,\n description: profile?.description,\n }),\n [profile],\n );\n\n const validationSchema = useMemo(\n () =>\n Yup.object().shape({\n name: Yup.string()\n .required()\n .max(MAX_NAME_LENGTH),\n description: Yup.string(),\n }),\n [],\n );\n\n const handleNameChange = useCallback((event, formikHandleChange) => {\n if (event.target.value.length <= MAX_NAME_LENGTH) {\n formikHandleChange(event);\n }\n }, []);\n\n const handleCancel = useCallback(() => {\n history.push(`/communities/${communityId}`);\n }, [communityId, history]);\n\n const [isUpdateRequestSent, setUpdateRequestSent] = useState(false);\n\n const handleSave = useCallback(\n ({ name, description }) => {\n requestUpdate({\n communityId,\n name,\n description,\n imageSizes,\n });\n setUpdateRequestSent(true);\n },\n [requestUpdate, communityId, imageSizes, setUpdateRequestSent],\n );\n\n useEffect(() => {\n if (\n isUpdateRequestSent &&\n !updateLoading &&\n updateErrors == null &&\n updateResult != null\n ) {\n history.push(`/communities/${communityId}`);\n }\n }, [\n isUpdateRequestSent,\n updateLoading,\n updateErrors,\n updateResult,\n history,\n communityId,\n ]);\n\n return (\n \n \n \n \n \n {isPresentable ? (\n \n {(formikProps) => (\n <>\n \n {t('Edit Community')}\n \n \n \n \n \n \n \n {t('community.name')}\n \n \n \n \n \n handleNameChange(\n event,\n formikProps.handleChange,\n )\n }\n />\n \n {t('community.descriptionTitle')}\n \n \n \n \n \n \n \n \n \n {t('cancel')}\n \n  \n \n handleSave(formikProps.values)\n }\n disabled={!formikProps.isValid}\n >\n {t('Save')}\n \n \n \n )}\n \n ) : null}\n \n );\n};\n\nUpdateCommunityProfileScreen.propTypes = {\n profileLoading: PropTypes.bool.isRequired,\n profileErrors: CommonPropTypes.errors,\n profile: CommunityProfilePropType,\n requestCommunity: PropTypes.func.isRequired,\n imageUploading: PropTypes.bool.isRequired,\n imageUploadErrors: CommonPropTypes.errors,\n imageUploadResponse: PropTypes.object,\n requestImageUpload: PropTypes.func.isRequired,\n updateLoading: PropTypes.bool.isRequired,\n updateErrors: CommonPropTypes.errors,\n updateResult: PropTypes.object,\n requestUpdate: PropTypes.func.isRequired,\n};\n\nUpdateCommunityProfileScreen.defaultProps = {\n profileErrors: null,\n profile: null,\n imageUploadErrors: null,\n imageUploadResponse: null,\n updateErrors: null,\n updateResult: null,\n};\n\nconst mapStateToProps = (state) => ({\n profileLoading: isCommunityLoading(state),\n profileErrors: getCommunityErrors(state),\n profile: getCommunityProfile(state),\n imageUploading: isImageUploadRequestPending(state),\n imageUploadErrors: getImageUploadErrors(state),\n imageUploadResponse: getImageUploadResponse(state),\n updateLoading: isCommunityUpdateLoading(state),\n updateErrors: getCommunityUpdateErrors(state),\n updateResult: getCommunityUpdateResult(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n requestCommunity: (request) => dispatch(communityRequested(request)),\n requestImageUpload: (request) => dispatch(imageUploadRequested(request)),\n requestUpdate: (request) => dispatch(communityUpdateRequested(request)),\n});\n\nconst ConnectedUpdateCommunityProfileScreen = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(UpdateCommunityProfileScreen);\nexport default ConnectedUpdateCommunityProfileScreen;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n maxWidth: '1280px',\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n wrapper: {\n position: 'relative',\n },\n}));\n\nexport default useStyles;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n confirmMessage: {\n paddingBottom: '10px',\n },\n identifier: {\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n description: {\n marginTop: '10px',\n color: theme.custom.textDarkSecondaryMutedColor,\n },\n}));\n\nexport default useStyles;\n","import PropTypes from 'prop-types';\n\nconst FlaggedContentPropType = PropTypes.shape({\n id: PropTypes.string.isRequired,\n icon: PropTypes.string.isRequired,\n user: PropTypes.string.isRequired,\n comment: PropTypes.string.isRequired,\n flags: PropTypes.number.isRequired,\n createdDate: PropTypes.string.isRequired,\n flaggedDate: PropTypes.string.isRequired,\n});\n\nexport default FlaggedContentPropType;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Grid } from '@material-ui/core';\n\nimport useStyles from './styles';\n\nimport ConfirmModal from '../ConfirmModal';\nimport { noop } from '../../utils';\nimport {\n BUTTON_DANGER_COLOR,\n BUTTON_DEFAULT_COLOR,\n BUTTON_SUCCESS_COLOR,\n} from '../Button/constants';\nimport FlagContentPropType from './propTypes';\n\nexport const CONTENT_ACTION_MODAL_TYPE_DESTRUCTIVE = 'destructive';\nexport const CONTENT_ACTION_MODAL_TYPE_POSITIVE = 'positive';\nconst ContentActionConfirmationModal = ({\n isOpen,\n setOpen,\n items,\n onClose,\n onCancel,\n onConfirm,\n title,\n description,\n header,\n type,\n}) => {\n const { t } = useTranslation();\n const classes = useStyles();\n\n const handleClose = useCallback(() => {\n onClose();\n setOpen(false);\n }, [onClose, setOpen]);\n\n const handleCancel = useCallback(() => {\n onCancel();\n setOpen(false);\n }, [onCancel, setOpen]);\n\n const handleApprove = useCallback(() => {\n onConfirm && onConfirm(items.map(({ id }) => id));\n setOpen(false);\n }, [setOpen, onConfirm, items]);\n\n return (\n \n \n \n {header}\n \n {items.map(({ id, icon, identifier } = {}, index) => (\n \n \n \n \"\"\n \n {id}\n \n \n {identifier}\n \n \n ))}\n {description}\n \n \n );\n};\n\nContentActionConfirmationModal.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n setOpen: PropTypes.func.isRequired,\n items: PropTypes.arrayOf(FlagContentPropType).isRequired,\n onClose: PropTypes.func,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func.isRequired,\n type: PropTypes.oneOf([\n CONTENT_ACTION_MODAL_TYPE_POSITIVE,\n CONTENT_ACTION_MODAL_TYPE_DESTRUCTIVE,\n ]),\n title: PropTypes.string,\n description: PropTypes.string,\n header: PropTypes.string,\n};\n\nContentActionConfirmationModal.defaultProps = {\n onClose: noop,\n onCancel: noop,\n type: CONTENT_ACTION_MODAL_TYPE_POSITIVE,\n description: '',\n title: '',\n header: '',\n};\n\nexport default ContentActionConfirmationModal;\n","import PropTypes from 'prop-types';\n\nconst FlagContentPropType = PropTypes.shape({\n name: PropTypes.string.isRequired,\n iconUrl: PropTypes.string.isRequired,\n identifier: PropTypes.string.isRequired,\n});\n\nexport default FlagContentPropType;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n previewContainer: {\n width: '500px',\n height: '500px',\n overflow: 'hidden',\n margin: '0 auto',\n },\n previewImage: {\n width: '500px',\n height: '500px',\n },\n}));\n\nexport default useStyles;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport useStyles from './styles';\n\nimport ConfirmModal from '../ConfirmModal';\nimport { BUTTON_ACCENT_COLOR } from '../Button/constants';\nimport { noop } from '../../utils';\n\nconst ImagePreviewFlaggedContent = ({ isOpen, setOpen, imageUrl, onClose }) => {\n const { t } = useTranslation();\n const classes = useStyles();\n\n const handleClose = useCallback(() => {\n onClose();\n setOpen(false);\n }, [onClose, setOpen]);\n\n return (\n \n
    \n \n
    \n \n );\n};\n\nImagePreviewFlaggedContent.propTypes = {\n isOpen: PropTypes.bool.isRequired,\n setOpen: PropTypes.func.isRequired,\n imageUrl: PropTypes.string.isRequired,\n onClose: PropTypes.func,\n};\n\nImagePreviewFlaggedContent.defaultProps = {\n onClose: noop,\n};\n\nexport default ImagePreviewFlaggedContent;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { Grid } from '@material-ui/core';\nimport { Check, Delete } from '@material-ui/icons';\n\nimport useStyles from './styles';\nimport FlaggedContentPropType from './propTypes';\nimport {\n getFlaggedContentErrors,\n getFlaggedContentTotalCount,\n getPresentableFlaggedContent,\n isFlaggedContentLoading,\n} from '../../flags/selectors';\nimport {\n flagExcludeRequested,\n flaggedContentRequested,\n flagIgnoreRequested,\n} from '../../flags/actions';\n\nimport HeaderPage from '../../common/HeaderPage';\nimport Table from '../../common/Table';\nimport { getTimezoneAbbrev } from '../../utils/dates';\nimport ContentActionConfirmationModal, {\n CONTENT_ACTION_MODAL_TYPE_DESTRUCTIVE,\n} from '../../common/ContentActionConfirmationModal';\nimport ImagePreviewFlaggedContent from '../../common/ImagePreviewFlaggedContent';\nimport CommonPropTypes from '../../common/propTypes';\nimport { getActiveCommunityId } from '../../user/selectors';\nimport RequestLoader from '../../common/RequestLoader';\nimport ErrorList from '../../common/errors/ErrorList';\nimport moment from 'moment';\nimport { DATETIME_FORMAT_FOR_DATETIME_PICKERS } from '../../constants/dates';\n\nconst API_SORT_FIELDS = {\n flags: 'count',\n createdDate: 'created',\n flaggedDate: 'flaggedOn',\n};\n\nconst DEFAULT_SORT_BY = [\n {\n id: API_SORT_FIELDS.flaggedDate,\n desc: true,\n },\n];\n\nconst FlaggedContentScreen = ({\n communityId,\n loading,\n errors,\n items,\n requestContent,\n requestActivityFlagExclude,\n requestActivityFlagIgnore,\n}) => {\n const { t, i18n } = useTranslation();\n const tzCode = getTimezoneAbbrev(i18n.language);\n const classes = useStyles();\n\n const itemsById = useMemo(\n () =>\n items?.reduce(\n (acc, item) => ({\n ...acc,\n [item.id]: item,\n }),\n {},\n ),\n [items],\n );\n\n const [isPreviewShown, setPreviewShown] = useState(false);\n const [previewedImage, setPreviewedImage] = useState('');\n\n const handleIconClick = useCallback(\n (icon) => {\n setPreviewedImage(icon);\n setPreviewShown(true);\n },\n [setPreviewedImage, setPreviewShown],\n );\n\n const columns = useMemo(\n () => [\n {\n accessor: 'icon',\n Cell: ({ value }) => (\n handleIconClick(value)}\n alt=\"\"\n />\n ),\n },\n {\n Header: t('flagged.user'),\n accessor: 'user',\n },\n {\n Header: t('Comment'),\n accessor: 'comment',\n },\n {\n Header: t('Photo'),\n accessor: 'photo',\n Cell: ({ value }) =>\n value ? (\n handleIconClick(value)}\n alt=\"\"\n />\n ) : (\n <>\n ),\n },\n {\n Header: `# ${t('Flags')}`,\n accessor: 'count',\n },\n {\n Header: `${t('created')} (${tzCode})`,\n accessor: 'created',\n Cell: (props) =>\n // eslint-disable-next-line react/prop-types\n moment(props.value).format(\n DATETIME_FORMAT_FOR_DATETIME_PICKERS,\n ),\n },\n {\n Header: `${t('flagged.descriptor')} (${tzCode})`,\n accessor: 'flaggedOn',\n Cell: (props) =>\n // eslint-disable-next-line react/prop-types\n moment(props.value).format(\n DATETIME_FORMAT_FOR_DATETIME_PICKERS,\n ),\n },\n {\n accessor: 'actions',\n },\n ],\n [tzCode, t, handleIconClick],\n );\n\n const approveButton = useMemo(\n () => ({\n key: 'approveFlaggedContent',\n actions: 'manage',\n subject: 'FlaggedUserActivity',\n tooltip: t('flags.table.actions.ignore.title'),\n icon: Check,\n }),\n [t],\n );\n\n const deleteButton = useMemo(\n () => ({\n key: 'deleteFlaggedContent',\n actions: 'manage',\n subject: 'FlaggedUserActivity',\n tooltip: t('flags.table.actions.flag.title'),\n icon: Delete,\n }),\n [t],\n );\n\n const buttonsCell = useMemo(() => [approveButton, deleteButton], [\n approveButton,\n deleteButton,\n ]);\n\n const [isApproveShown, setApproveShown] = useState(false);\n const [itemsToApprove, setItemsToApprove] = useState([]);\n\n const handleApprove = useCallback(\n (approvedIds) => {\n requestActivityFlagIgnore({\n communityId,\n activityId: approvedIds,\n commentId: itemsToApprove?.[0]?.commentId,\n });\n setApproveShown(false);\n },\n [requestActivityFlagIgnore, communityId, itemsToApprove],\n );\n\n const handleApproveClicked = useCallback(\n (id) => {\n const approvedItem = itemsById[id];\n setItemsToApprove([approvedItem]);\n setApproveShown(true);\n },\n [itemsById, setItemsToApprove, setApproveShown],\n );\n\n const [isDeleteShown, setDeleteShown] = useState(false);\n const [itemsToDelete, setItemsToDelete] = useState([]);\n\n const handleDelete = useCallback(\n (approvedIds) => {\n requestActivityFlagExclude({\n communityId,\n activityId: approvedIds,\n commentId: itemsToDelete?.[0]?.commentId,\n });\n setDeleteShown(false);\n },\n [requestActivityFlagExclude, communityId, itemsToDelete],\n );\n\n const handleDeleteClicked = useCallback(\n (id) => {\n const approvedItem = itemsById[id];\n setItemsToDelete([approvedItem]);\n setDeleteShown(true);\n },\n [itemsById, setItemsToDelete],\n );\n\n const handleButtonsCell = useCallback(\n (id, key) => {\n switch (key) {\n case approveButton.key:\n handleApproveClicked(id);\n break;\n case deleteButton.key:\n handleDeleteClicked(id);\n break;\n default:\n break;\n }\n },\n [\n approveButton,\n deleteButton,\n handleApproveClicked,\n handleDeleteClicked,\n ],\n );\n\n useEffect(() => {\n requestContent({\n communityId,\n context: 'group',\n skip: 0,\n limit: 50,\n });\n }, [requestContent, communityId]);\n\n return (\n \n \n \n \n \n {!loading && errors == null && items != null ? (\n <>\n \n \n\n \n \n \n ) : null}\n \n \n );\n};\n\nFlaggedContentScreen.propTypes = {\n communityId: PropTypes.string.isRequired,\n loading: PropTypes.bool.isRequired,\n errors: CommonPropTypes.errors,\n items: PropTypes.arrayOf(FlaggedContentPropType),\n requestContent: PropTypes.func.isRequired,\n requestActivityFlagExclude: PropTypes.func.isRequired,\n requestActivityFlagIgnore: PropTypes.func.isRequired,\n};\n\nFlaggedContentScreen.defaultProps = {\n errors: null,\n items: null,\n};\n\nconst mapStateToProps = (state) => ({\n communityId: getActiveCommunityId(state),\n loading: isFlaggedContentLoading(state),\n errors: getFlaggedContentErrors(state),\n items: getPresentableFlaggedContent(state),\n totalCount: getFlaggedContentTotalCount(state),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n requestContent: (request) => dispatch(flaggedContentRequested(request)),\n requestActivityFlagExclude: (request) =>\n dispatch(flagExcludeRequested(request)),\n requestActivityFlagIgnore: (request) =>\n dispatch(flagIgnoreRequested(request)),\n});\n\nconst ConnectedFlaggedContentScreen = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(FlaggedContentScreen);\nexport default ConnectedFlaggedContentScreen;\n","const styles = (theme) => ({});\n\nexport default styles;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n maxWidth: '800px',\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n translations: {\n fontSize: '30px',\n fontWeight: 600,\n lineHeight: 1.1,\n marginBottom: '10px',\n marginTop: '20px',\n },\n duplication: {\n fontSize: '30px',\n fontWeight: 600,\n lineHeight: 1.1,\n marginBottom: '10px',\n marginTop: '50px',\n },\n subtitle: {\n marginBottom: '5px',\n fontWeight: 700,\n },\n checkbox: {\n marginLeft: 'auto',\n },\n slackButton: {\n 'align-items': 'center',\n color: '#fff',\n 'background-color': '#4A154B',\n border: 0,\n 'border-radius': '4px',\n display: 'inline-flex',\n 'font-family': 'Lato, sans-serif',\n 'font-size': '18px',\n 'font-weight': 600,\n height: '56px',\n 'justify-content': 'center',\n 'text-decoration': 'none',\n width: '276px',\n },\n slackIcon: {\n height: '24px',\n width: '24px',\n 'margin-right': '12px',\n },\n footer: {\n padding: '100px 0 16px 0',\n backgroundColor: theme.custom.bgColor,\n },\n}));\n\nexport default useStyles;\n","const styles = (theme) => ({\n root: {\n color: theme.palette.secondary.main,\n borderRadius: 3,\n },\n largeRoot: {\n height: theme.shineAdmin.select.largeHeight,\n minWidth: theme.shineAdmin.select.largeMinWidth,\n },\n compactRoot: {\n border: `1px solid ${theme.palette.secondary.main}`,\n backgroundColor: theme.palette.primary.contrastText,\n height: theme.shineAdmin.select.compactHeight,\n minWidth: theme.shineAdmin.select.compactMinWidth,\n },\n icon: {\n color: theme.palette.secondary.main,\n marginRight: 7,\n },\n compactIcon: {\n fontSize: 16,\n marginRight: 2,\n marginTop: 4,\n },\n compactMenuItem: {\n paddingBottom: 0,\n },\n largeDisplay: {\n padding: 10,\n paddingRight: 30,\n height: theme.shineAdmin.select.largeHeight,\n minWidth: theme.shineAdmin.select.largeMinWidth,\n },\n compactDisplay: {\n padding: 2,\n color: theme.palette.secondary.main,\n fontSize: theme.custom.paginationFontSize,\n height: theme.shineAdmin.select.compactHeight - 2,\n minWidth: theme.shineAdmin.select.compactMinWidth,\n marginLeft: 2,\n },\n error: {\n border: `2px solid ${theme.custom.red}`,\n },\n errorText: {\n fontWeight: 'bold',\n marginLeft: 8,\n fontSize: 12,\n },\n disabledIcon: {\n display: 'none',\n },\n formControl: {\n maxWidth: 300,\n },\n select: {\n backgroundColor: 'white',\n border: 'solid 1px',\n borderColor: theme.palette.primary.main,\n borderRadius: '5px',\n },\n});\n\nexport default styles;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport {\n CircularProgress,\n FormControl,\n FormHelperText,\n Grid,\n Input,\n MenuItem,\n Select,\n withStyles,\n} from '@material-ui/core';\nimport styles from './styles';\nimport { ExpandMore } from '@material-ui/icons';\nimport { has } from 'ramda';\n\nexport const SIZE_COMPACT = 'compact';\nexport const SIZE_LARGE = 'large';\nexport const SIZES = [SIZE_COMPACT, SIZE_LARGE];\n\nclass AdminSelect extends Component {\n render() {\n const {\n classes,\n type,\n options,\n value,\n loading,\n error,\n renderMenuItemDecorators,\n ...props\n } = this.props;\n const selectDisplayProps =\n type === SIZE_COMPACT\n ? { className: classes.compactDisplay }\n : { className: classes.largeDisplay };\n return loading ? (\n \n \n \n \n \n ) : (\n \n }\n IconComponent={ExpandMore}\n classes={{\n root: classNames([\n classes.root,\n classes[`${type}Root`],\n error ? classes.error : null,\n ]),\n icon: classNames([\n classes.icon,\n type === SIZE_COMPACT ? classes.compactIcon : null,\n props.disabled ? classes.disabledIcon : null,\n ]),\n }}\n SelectDisplayProps={selectDisplayProps}\n disableUnderline\n value={value}\n className={classes.select}\n {...props}\n error={!!error}\n >\n {options &&\n options.map((option) => (\n \n {option.label || option}\n {renderMenuItemDecorators &&\n renderMenuItemDecorators(option)}\n \n ))}\n \n {error ? (\n \n {error}\n \n ) : null}\n \n );\n }\n}\n\nAdminSelect.propTypes = {\n // From withStyles we expect to get classes\n classes: PropTypes.object.isRequired,\n\n // The type of dropdown to render.\n type: PropTypes.oneOf(SIZES),\n\n error: PropTypes.string,\n\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n\n // The options that are selectable in the dropdown component.\n options: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.shape({\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n label: PropTypes.node,\n }),\n ]),\n ),\n\n // Whether this select is in a loading state, if true a circular progress will be shown.\n loading: PropTypes.bool,\n formControlProps: PropTypes.object,\n renderMenuItemDecorators: PropTypes.func,\n};\n\nAdminSelect.defaultProps = {\n // If no type is specified, default to large.\n type: SIZE_LARGE,\n\n loading: false,\n\n error: null,\n\n value: null,\n\n options: null,\n\n formControlProps: {},\n\n renderMenuItemDecorators: null,\n};\n\nexport default withStyles(styles)(AdminSelect);\n","import { getProperties } from './index';\n\nexport const getSlackIntegrationLink = () => {\n const { redirectURI = null, clientId = null } =\n getProperties()?.integrationCredentials?.slack || {};\n if (redirectURI && clientId) {\n return (\n 'https://slack.com/oauth/v2/authorize' +\n '?scope=incoming-webhook,commands' +\n '&user_scope=' +\n '&redirect_uri=' +\n redirectURI +\n '&client_id=' +\n clientId\n );\n }\n return null;\n};\n","import React, { useEffect, useRef } from 'react';\nimport { Grid } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport { noop } from '../../../../utils';\nimport { trackEvent } from '../../../../utils/analytics';\nimport { EVENT_GOOGLE_SIGN_IN_PRESSED } from '../../../../constants/analyticsEvents';\n\nconst GoogleButton = ({ onClick, clientId }) => {\n const divRef = useRef(null);\n\n useEffect(() => {\n if (divRef.current && window.google) {\n window.google.accounts.id.initialize({\n client_id: clientId,\n });\n window.google.accounts.id.renderButton(divRef.current, {\n theme: 'outline',\n size: 'large',\n type: 'standard',\n text: 'signin_with',\n shape: 'rectangular',\n logoAlignment: 'left',\n });\n }\n }, [clientId, divRef]);\n\n return (\n {\n onClick(...args);\n trackEvent(EVENT_GOOGLE_SIGN_IN_PRESSED);\n }}\n >\n \n
    \n\n \n \n
    \n );\n};\n\nGoogleButton.propTypes = {\n onClick: PropTypes.func,\n clientId: PropTypes.string.isRequired,\n};\n\nGoogleButton.defaultProps = {\n onClick: noop,\n};\n\nexport default GoogleButton;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid, Typography } from '@material-ui/core';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { LOGIN_METHOD_GOOGLE } from '../../../../properties/constants';\nimport useStyles from '../styles';\nimport { noop } from 'rxjs';\nimport GoogleButton from '../../../SignInScreens/OAuthButtons/GoogleButton';\nimport Button from '../../../../common/Button';\n\nexport const GoogleIntegration = ({\n integrations,\n requestOIDCIntegration,\n requestOIDCIntegrationRemove,\n googleAuth,\n loading,\n}) => {\n const { t } = useTranslation();\n const classes = useStyles();\n\n const [googleIntegrated, setGoogleIntegrated] = useState(false);\n\n useEffect(() => {\n setGoogleIntegrated(\n !!integrations?.oidc?.some(\n (config) => config.authType === LOGIN_METHOD_GOOGLE,\n ),\n );\n }, [integrations.oidc]);\n\n return (\n <>\n \n \n {t('settings.sso.descriptor')}\n \n \n \n \n \n {t('settings.sso.google')}\n \n \n \n \n \n \n\n \n \n \n {!googleIntegrated ? (\n requestOIDCIntegration(googleAuth)}\n />\n ) : (\n \n requestOIDCIntegrationRemove(\n googleAuth.authType,\n )\n }\n >\n {t('remove')}\n \n )}\n \n \n \n );\n};\n\nGoogleIntegration.propTypes = {\n integrations: PropTypes.shape({\n slack: PropTypes.shape({\n postChannel: PropTypes.string,\n teamName: PropTypes.string,\n }),\n oidc: PropTypes.arrayOf(PropTypes.object),\n domains: PropTypes.arrayOf(PropTypes.string),\n }),\n requestOIDCIntegration: PropTypes.func,\n requestOIDCIntegrationRemove: PropTypes.func,\n googleAuth: PropTypes.shape({\n clientId: PropTypes.string,\n clientSecret: PropTypes.string,\n redirectURI: PropTypes.string,\n authType: PropTypes.string,\n }),\n loading: PropTypes.bool,\n};\n\nGoogleIntegration.defaultProps = {\n integrations: {},\n requestOIDCIntegration: noop,\n requestOIDCIntegrationRemove: noop,\n googleAuth: {},\n loading: false,\n};\n\nexport default GoogleIntegration;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Checkbox, Grid, Switch, Typography } from '@material-ui/core';\nimport useStyles from './styles';\nimport HeaderPage from '../../../common/HeaderPage';\nimport Footer from '../../../common/Footer';\nimport { SUPPORTED_LANGUAGES } from '../../../localization/constants';\nimport {\n getActiveCommunity,\n getAvailableCommunities,\n} from '../../../user/selectors';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport {\n clearResponse,\n requestIntegrations,\n requestOIDCIntegrationRemove,\n requestSlackIntegration,\n requestSlackIntegrationRemove,\n setActionDuplicationCommunities,\n} from '../actions';\nimport {\n getActionDuplicationCommunities,\n getErrors,\n getIntegrations,\n getResponse,\n settingsLoading,\n} from '../selectors';\nimport Select, { SIZE_LARGE } from '../../../common/Select';\nimport {\n activeCommunityPropType,\n availableCommunitiesPropType,\n} from '../../../user/propTypes';\nimport { Can } from '../../../casl/ability-context';\nimport SnackBarAPIResponse from '../../../common/SnackbarAlert/SnackBarAPIResponse';\nimport { getSlackIntegrationLink } from '../../../utils/integrations';\nimport { getApplicationConfig } from '../../../utils';\nimport { LOGIN_METHOD_GOOGLE } from '../../../properties/constants';\nimport { SSOAuthRequested } from '../../../auth/actions';\nimport { RETURN_LOCATION_SETTINGS } from '../../../auth/constants';\nimport { GoogleIntegration } from './GoogleIntegration';\n\nconst AdminSettingsScreen = ({\n communities,\n activeCommunity,\n actionDuplicationCommunities,\n setActionDuplicationCommunities,\n requestSlackIntegration,\n requestSlackIntegrationRemove,\n errors,\n response,\n clearResponse,\n requestIntegrations,\n integrations,\n requestOIDCIntegration,\n requestOIDCIntegrationRemove,\n loading,\n}) => {\n const { t, i18n } = useTranslation();\n const classes = useStyles();\n const [slackIntegrated, setSlackIntegrated] = useState(\n !!integrations.slack?.postChannel,\n );\n\n useEffect(() => {\n setSlackIntegrated(!!integrations?.slack?.postChannel);\n }, [integrations.slack]);\n\n useEffect(() => {\n const params = new URLSearchParams(window.location.search);\n const code = params.get('code');\n if (code) {\n // Assume that the oauth flow will work, maybe add a loading icon instead later\n setSlackIntegrated(true);\n requestSlackIntegration(code);\n }\n }, [requestSlackIntegration]);\n\n useEffect(() => {\n requestIntegrations();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const languageOptions = useMemo(\n () =>\n i18n.languages.map((langCode) => ({\n value: langCode,\n label: SUPPORTED_LANGUAGES[langCode],\n })),\n [i18n],\n );\n\n const handleLanguageChange = useCallback(\n (event) => {\n i18n.changeLanguage(event.target.value);\n },\n [i18n],\n );\n\n const communityOptions = useMemo(\n () =>\n communities\n .filter((community) =>\n community.actions.includes('editActions'),\n )\n .map((community) => ({\n value: community.content.id,\n label: community.content.name,\n })),\n [communities],\n );\n\n const selectedCommunityIds = useMemo(\n () =>\n actionDuplicationCommunities.map(\n (community) => community.content.id,\n ),\n [actionDuplicationCommunities],\n );\n\n const handleSelectedCommunitiesChange = (event) => {\n const selected = event.target.value.reduce(\n (selectedCommunities, communityId) => {\n if (communityId !== activeCommunity.id) {\n const selectedCommunity = communities.find(\n (community) => community.content.id === communityId,\n );\n selectedCommunities.push(selectedCommunity);\n }\n return selectedCommunities;\n },\n [],\n );\n setActionDuplicationCommunities(selected);\n };\n\n const renderMenuItemDecorators = useCallback(\n (option) => (\n \n ),\n [selectedCommunityIds, activeCommunity.id, classes.checkbox],\n );\n\n const slackAuthorizationURL = getSlackIntegrationLink();\n\n const googleAuth = getApplicationConfig()?.authCredentials?.find(\n (creds) => creds.authType === LOGIN_METHOD_GOOGLE,\n );\n\n return (\n \n \n \n {t('settings.translations.descriptor')}\n \n \n {t('settings.translations.selectLanguage')}\n \n \n \n \n \n {communities.length > 1 && (\n <>\n \n {t('settings.duplication.descriptor')}\n \n \n {t('settings.duplication.selectOrgs')}\n \n \n \n communityOptions\n .filter((option) =>\n selected.includes(option.value),\n )\n ?.map((option) => option.label)\n ?.join(', ')\n }\n />\n \n \n )}\n \n {googleAuth && (\n \n )}\n {slackAuthorizationURL && (\n \n \n {t('settings.integrations.descriptor')}\n \n \n \n \n \n \n \n \n \n \n \n \n \n {t(\n 'settings.integrations.slack.descriptor',\n )}\n \n \n \n \n {\n if (event.target.checked) {\n window.open(\n getSlackIntegrationLink(),\n '_self',\n );\n } else {\n requestSlackIntegrationRemove();\n // assume that the removal will succeed, don't wait for a response\n setSlackIntegrated(false);\n }\n }}\n />\n \n \n \n )}\n \n \n