{"version":3,"sources":["icons/caretLeftButton.svg","services/cookies.js","features/authentication/actionTypes.js","features/authentication/authenticationReducer.js","routes/history.js","envConfig.js","services/api.js","features/common/AlertMessages.js","utils/errorFormatter.js","features/authentication/authenticationContext.js","features/groups/groupReducer.js","features/groups/actionTypes.js","features/groups/groupContext.js","services/metrics.js","icons/checkMarkIcon_16x16.svg","features/common/SidePaintGraphics.jsx","features/authentication/GoogleOAuthButton.jsx","features/authentication/LinkedinOAuthButton.jsx","features/authentication/OAuthButtons.jsx","features/authentication/AuthLinkButtons.jsx","utils/rewardful.js","icons/talkadot-logo.png","features/authentication/Header.jsx","features/authentication/RegistrationErrorFormatter.jsx","icons/membershipPlanIconElite.svg","icons/membershipPlanIconPro.svg","icons/membershipPlanIconLite.svg","icons/infoIcon_16x16.svg","icons/alertIcon.svg","utils/dateTime.js","features/payments/helpers.js","features/admin/actionTypes.js","features/admin/adminReducer.js","features/admin/adminContext.js","services/customerio.js","features/common/UpgradeModalLauncher.jsx","features/payments/PricingGrid.jsx","features/authentication/TermsOfService.jsx","features/authentication/RegistrationCheckout.jsx","features/authentication/UnpaidRegistrationCheckout.jsx","features/authentication/RegistrationParent.jsx","features/authentication/LoginForm.jsx","features/authentication/ReferrerRegistrationParent.jsx","features/dashboard/v2/DashboardSubheader.js","icons/dangerIcon.svg","icons/circleXIcon.svg","icons/circleCheckIcon.svg","icons/closeIcon.svg","icons/aiSparklesIcon.svg","features/common/Notification.jsx","utils/permission_helper.js","features/dashboard/v2/NotificationParent.jsx","icons/usersIcon_24x24.svg","icons/zapIcon_24x24.svg","icons/referralIcon.svg","icons/linkIcon_16x16.svg","features/common/helpers.js","features/dashboard/v2/DashboardCardComponents.jsx","features/referrals/ChipList.js","icons/heartIcon_16x16.svg","icons/email.svg","icons/profile.svg","icons/trash.svg","features/referrals/EmailInvite/InviteForm.jsx","icons/downloadIcon.svg","features/referrals/EmailInvite/EmailItem.jsx","features/referrals/EmailInvite/EditDialog.jsx","features/referrals/EmailInvite/EmailPreviewModal.jsx","features/referrals/EmailInvite/EmailInvite.jsx","features/referrals/ShareParent.jsx","constants/referrals/values.js","icons/giftIcon.svg","features/referrals/QrParent.jsx","features/referrals/TrackReferralsModal.jsx","features/referrals/ReferralParent.jsx","icons/bellIcon.svg","icons/starIcon.svg","icons/upgradeIcon.svg","features/dashboard/v2/TrialProgressParent.js","features/common/VideoPlayer.js","features/dashboard/v2/VideoParent.jsx","features/common/PageContainer.js","hooks/useBillingRedirect.js","icons/eyeIcon_16x16.svg","features/common/UpgradeButton.js","features/common/PageHeader.jsx","icons/eyeOffIcon_16x16.svg","icons/trash2Icon_16x16.svg","features/codes/builder/CodeBuilderToggleQuestionButton.js","icons/questionTypeIcons/freeFlow.svg","features/codes/builder/CodeBuilderDeleteButton.js","icons/questionTypeIcons/boolean.svg","icons/questionTypeIcons/multipleChoice.svg","icons/questionTypeIcons/emoji.svg","icons/caretDown_16x16.svg","icons/questionTypeIcons/nps.svg","icons/preview.svg","features/codes/builder/CodeBuilderQuestionTypePicker.js","icons/plusIcon_16x16.svg","features/codes/builder/CodeBuilderLaunchPreviewButton.js","icons/circledArrowRight.svg","features/codes/builder/CodeBuilderAddQuestionButton.js","features/codes/builder/CodeBuilderQuestionHeader.js","icons/headphoneIcon.svg","features/helpCenter/UpcomingWebinars.js","features/common/ModalCloseIcon.js","features/helpCenter/WebinarAlert.js","features/dashboard/v2/DashboardParent.jsx","features/onboarding/actionTypes.js","features/onboarding/onboardingReducer.js","features/onboarding/questions/WelcomeScreen.jsx","utils/validators.js","features/common/UserAttributeForm.jsx","features/onboarding/questions/ShortlinkPicker.jsx","responsive.js","features/onboarding/common/MultipleChoiceOption.jsx","features/onboarding/common/MultipleChoiceQuestion.jsx","utils/array.js","features/onboarding/questions/ReferralQuestionParent.jsx","features/onboarding/helpers/referralsHelper.js","features/onboarding/questions/ReferralOrganizationPicker.jsx","utils/cropImage.js","icons/editIcon_16x16.svg","utils/dataUrlToFile.js","icons/emptyAvatar.svg","icons/emptyGroupAvatar.svg","features/accountSettings/EditAvatar.jsx","features/onboarding/questions/ProfilePicture.jsx","utils/string.js","features/onboarding/onboardingContext.js","features/onboarding/common/OnboardingButtons.jsx","features/onboarding/OnboardingHeader.jsx","features/onboarding/OnboardingContent.jsx","features/onboarding/common/ProgressBar.jsx","features/onboarding/OnboardingFooter.jsx","features/onboarding/OnboardingParent.jsx","features/accountSettings/ProfileSettings.js","features/accountSettings/EditPasswordForm.jsx","features/common/ConfirmDialog.js","icons/copyIcon_16x16.svg","icons/speakerflow.png","icons/downloadIcon_16x16.svg","features/common/CopyContent.jsx","features/accountSettings/EditDetails.jsx","features/common/CustomUrlPicker.jsx","features/accountSettings/MainUserSettings.jsx","features/accountSettings/ConfigurationOptions.jsx","features/accountSettings/AccountSettings.hooks.jsx","features/authentication/authentication.hooks.js","features/accountSettings/EditSocialMedia.jsx","features/accountSettings/SocialMediaSettings.jsx","features/accountSettings/AccountSettingsParent.jsx","features/accountSettings/TeamMemberRow.jsx","features/common/StringFormatters.js","features/accountSettings/TeamMemberList.jsx","features/common/FormSection.jsx","features/accountSettings/TeamForm.jsx","features/accountSettings/TeamParent.jsx","icons/archiveIcon_16x16.svg","icons/leadsIcon_16x16.svg","icons/fireIcon_16x16.svg","icons/windIcon_16x16.svg","icons/mailIcon_16x16.svg","icons/tableSortIcon.svg","utils/sort.js","features/leads/helpers.js","utils/exportCsv.js","constants/messages/upgrade.js","features/leads/LeadsTabs.js","features/common/TableCellStyled.js","icons/itemCheckedIcon_16x16.svg","features/common/TableHeaderCellSortable.js","styles/layoutNavConstants.js","features/common/TableHeaderSortable.js","features/leads/LeadsTableHeader.js","icons/disabledBadgeIcon.svg","features/common/TableComponents.js","features/common/DisabledBadgeIconWrapper.js","icons/snowFlakeIcon_16x16.svg","icons/aiSparklesIcon_16x16.svg","features/leads/LeadTypeIcon.js","icons/emojiIcon_1.svg","features/common/YesNoRating.js","icons/emojiIcon_2.svg","icons/emojiIcon_3.svg","icons/emojiIcon_4.svg","icons/emojiIcon_5.svg","icons/ellipsisIcon.svg","features/common/EmojiRating.js","features/common/LoadingSpinner.js","features/common/SplitButton.js","features/common/InlineIconWrapper.jsx","features/leads/LeadsTableRowExpand.js","features/common/TableChip.js","features/leads/LeadsTags.js","icons/arrowLeft.svg","features/common/TableActionsDropdown.js","features/common/CheckBoxStyled.js","features/common/GateTooltip.js","features/leads/LeadsTableRow.js","features/common/VideoPlayerComponent.jsx","features/leads/LeadsTableRowPlaceholder.js","icons/referralMoneyIcon.svg","features/common/TablePaginationFooter.js","features/leads/LeadsTable.js","features/common/StatsSummaryHeader.js","features/common/TableActions.js","features/common/LinkSpan.js","features/leads/LeadsParent.js","features/leads/campaigns/sharedStyles.js","features/common/FormFieldError.js","features/common/InputSection.js","features/leads/campaigns/EmailCampaignParent.js","features/common/PageDescription.js","features/leads/campaigns/EmailCampaignStatSummary.js","features/leads/campaigns/EmailCampaignTabs.js","features/leads/campaigns/EmailCampaignTestParent.js","features/leads/campaigns/EmailCampaignSettings.jsx","features/leads/LeadsFollowupParent.js","features/accountSettings/TestSpeakerflowButton.jsx","features/accountSettings/ManuallySyncSpeakerflowButton.jsx","features/accountSettings/IntegrationSettings.jsx","features/common/BetaChip.jsx","features/accountSettings/ZapierSettings.jsx","features/leads/LeadsIntegrationsParent.js","icons/navIcons/newIcon.svg","features/referrals/ProgramDetails.jsx","features/refer/ReferParent.jsx","icons/navIcons/breadCrumbCaret.svg","icons/attendeesIcon.svg","features/nav/NavBreadCrumbs.js","icons/attendeesHeaderIcon.svg","features/eventReportCards/TotalAttendeesStat.js","icons/valuableHeaderIcon.svg","icons/reattendHeaderIcon.svg","features/common/StatCard.js","features/eventReportCards/TalkValueStat.js","features/eventReportCards/TalkReattendStat.js","icons/emoji-1.svg","features/eventReportCards/TalkEngagementStat.js","features/eventReportCards/Banner.jsx","hooks/usePolling.js","features/speakerProfile/SpeakerHeader.jsx","icons/tdot-social-logo.png","features/eventReportCards/SocialShareTemplate.jsx","features/eventReportCards/TestimonialStatImage.jsx","features/common/YesOrNoAnswer.jsx","icons/emoji-2.svg","icons/emoji-3.svg","icons/emoji-4.svg","icons/emoji-5.svg","icons/chatBubble.svg","features/common/EngagementAnswers.jsx","features/eventReportCards/FeedbackAnswersParent.jsx","icons/testimonialPersonPlaceholder.svg","icons/quoteOpenSingle.svg","features/common/QuotationMarks.js","utils/color.js","features/eventReportCards/Testimonial.js","features/publicProfile/SkeletonLoaders.js","features/eventReportCards/ReportCardFeedbackList.jsx","features/eventReportCards/TotalAttendees.jsx","features/eventReportCards/TalkValue.jsx","features/eventReportCards/TalkReattend.jsx","features/eventReportCards/TalkEngagement.jsx","features/eventReportCards/EventPlannerEngagement.jsx","features/eventReportCards/ReportCardStatImage.jsx","features/eventReportCards/ShareEventReportCard.jsx","features/eventReportCards/CustomQuestionCard.js","styles/styleGuide.js","features/eventReportCards/CustomQuestionMultipleChoice.js","features/eventReportCards/CustomQuestionEmojiScale.js","features/eventReportCards/CustomQuestionBoolean.js","features/eventReportCards/CustomQuestionNps.js","icons/aiIconOutline.svg","features/eventReportCards/customQuestionRenderer.js","features/eventReportCards/CustomQuestionSocialShareContent.js","features/eventReportCards/CustomQuestion.js","icons/thumbs_up_16x16.svg","icons/thumbs_down_16x16.svg","icons/documentReportIcon_20x20.svg","features/common/LikeDislike.jsx","features/eventReportCards/FeedbackSummaryParent.js","icons/cameraReelIcon_16x16.svg","features/eventReportCards/CustomQuestionUpsell.js","features/eventReportCards/EventReportCardParent.jsx","features/eventReportCards/SocialShareImageParent.js","features/authentication/PasswordResetRequest.jsx","features/authentication/PasswordResetForm.jsx","features/admin/AdminSearchBar.jsx","features/admin/DeleteUserParent.jsx","features/admin/AdminParent.jsx","features/admin/AdminChapterUploadParent.jsx","features/admin/AdminAssociatesParent.js","features/eventPlanners/CreateEventGroupButton.jsx","features/eventPlanners/EditEventGroupButton.jsx","features/eventPlanners/EventActivationSwitch.jsx","features/eventPlanners/EventGroupList.jsx","features/eventPlanners/EventPlannerDashboard.jsx","features/events/EventButton.jsx","features/eventPlanners/ScheduleUploader.jsx","utils/number.js","features/events/EditEventIcon.jsx","features/events/EventLeadsDownloadMenuItem.jsx","features/events/EventRawDataDownloadMenuItem.jsx","features/events/EventSpeakerflowSyncMenuItem.jsx","features/events/EventListRow.jsx","icons/events-dummy-data-image.png","features/events/EventListParent.jsx","features/events/EventBulkActions.jsx","features/events/EventsParent.jsx","features/eventPlanners/EventGroupReport.jsx","features/events/SurveyOfferSelect.jsx","icons/lockIcon_16x16.svg","features/events/EventSpeechTopicParent.jsx","features/eventPlanners/EventSpeakersParent.jsx","features/events/EventFormParent.jsx","features/eventPlanners/EventGroupParent.jsx","features/publicProfile/ProfileSpeakerInfo.js","utils/socialLinks.js","features/publicProfile/ProfileEventListHeader.js","icons/caretLeft_24x24.svg","features/publicProfile/ProfileEventListRow.js","features/publicProfile/ProfileEventList.js","icons/caretRight_24x24.svg","icons/shareIcon_16x16.svg","features/common/PaginationCompact.js","features/publicProfile/ProfileFeedbackList.js","features/publicProfile/ProfileSectionHeader.js","features/publicProfile/ProfileBiography.js","features/publicProfile/ProfileSettingsAlert.js","icons/greyCheckmarkBulletIcon.svg","features/publicProfile/ProfileHeader.js","features/talks/speechTopics/speechTopicCards/SharedStyles.js","features/talks/speechTopics/speechTopicCards/VideoPagination.js","features/talks/speechTopics/MuxVideoTile.js","features/talks/speechTopics/speechTopicCards/VideoParent.js","features/talks/speechTopics/helpers.js","features/talks/speechTopics/SpeechTopicFullPreview.js","features/talks/speechTopics/speechTopicCards/SpeechTopicProfileCard.js","features/talks/speechTopics/speechTopicCards/SpeechTopicPlaceholderProfileCard.js","features/publicProfile/ProfileSpeechTopicList.js","features/publicProfile/ProfileMediaCarousel.js","icons/closeIcon_16x16.svg","icons/editIcon1_16x16.svg","features/common/InputUnderline.js","features/publicProfile/ProfileTagline.js","features/publicProfile/ProfileFeedbackSummary.jsx","features/publicProfile/ResponsesSvg.js","features/publicProfile/ValuableSvg.js","features/publicProfile/ReattendSvg.js","features/publicProfile/LocationSvg.js","features/publicProfile/ProfileStatCard.js","features/publicProfile/ResponsesStatContent.js","features/publicProfile/ValuableStatContent.js","features/publicProfile/ReattendStatContent.js","features/publicProfile/LocationStatContent.js","icons/zapierIcon.svg","features/publicProfile/PublicProfileStatisticsParent.js","features/publicProfile/ProfileAttributes.js","features/publicProfile/PublicProfileEngagementAttributes.js","features/publicProfile/PublicProfileParent.js","features/accountSettings/SubscriptionSourceParent.jsx","features/common/CountrySelect.js","features/payments/CheckoutForm.js","features/payments/PlanDetails.js","features/payments/UpgradeParent.jsx","features/accountSettings/BillingParent.jsx","features/groups/GroupInviteParent.js","features/groups/ManageGroupMembershipsParent.js","features/groups/GroupsListRow.js","features/groups/GroupsList.js","features/groups/ChapterGroupsParent.js","features/groups/GroupsTabPanel.js","features/groups/SessionsStatContent.js","features/groups/GroupUsersRow.js","features/groups/GroupUsersTable.js","features/groups/GroupEventsRow.js","features/groups/GroupEventsTable.js","features/groups/GroupMembersParent.js","constants/codes/initialOfferStates.js","features/common/Card.jsx","features/common/SpeakerSlide.jsx","features/dashboard/SurveyOffersSlide.jsx","features/dashboard/SurveyOffersList.jsx","features/dashboard/SurveyOffersParent.jsx","features/dashboard/SurveyLinkSummary.jsx","features/dashboard/EmojiKeywordSelect.js","features/dashboard/SurveyOffersForm.jsx","features/groups/GroupEventSettings.js","features/groups/GuestSpeakerDashboard.js","features/groups/GuestSpeakerEventTable.js","features/groups/GroupParent.js","features/common/SwitchWithLabel.jsx","features/groups/GroupInvitationAcceptanceParent.js","icons/circleIcon.svg","icons/plusIcon.svg","features/authentication/OAuthProviderAuthenticationForm.js","features/authentication/OAuthProviderAuthenticationParent.js","features/unsubscribe/UnsubscribeParent.jsx","features/bonusGift/BonusGiftParent.jsx","features/api/AuthDocumentation.js","features/api/WebhooksDocumentation.js","features/api/ApiDocumentationParent.js","icons/smileIcon_36x36.svg","icons/microPhoneIcon_36x36.svg","icons/creditCardIcon_36x36.svg","icons/awardIcon_36x36.svg","icons/filterIcon_16x16.svg","features/talks/TalksTableHeader.js","icons/chatBubbleSquareIcon_16x16.svg","icons/mergeIcon_16x16.svg","icons/refreshIcon_16x16.svg","icons/arrowRight.svg","services/speakerflow.js","features/talks/TalksTableRowSpeaker.js","features/talks/TalksTableRowGroup.js","features/talks/TalksTableRow.js","features/common/CreateCodeAlert.js","features/talks/TalksTableRowSpeakerPlaceholder.js","features/talks/TalksTablePlaceHolder.js","features/talks/TalksTable.js","features/talks/TalksParent.js","icons/fileIcon_16x16.svg","features/common/FormComponents.js","features/talks/speechTopics/SpeechTopicPromptParent.js","features/talks/speechTopics/SpeechTopicOutcomesForm.js","features/talks/speechTopics/speechTopicValidators.js","features/talks/speechTopics/SpeechTopicDescriptionForm.js","icons/mediaCloseIcon.svg","icons/cloudUploadIcon.svg","icons/folderIcon_16x16.svg","icons/cameraReelIcon.svg","features/common/UploadMediaDropzone.jsx","features/talks/speechTopics/SpeechTopicFormVideoTile.js","utils/fileUpload.js","features/talks/speechTopics/TalkVideoUploader.jsx","features/talks/speechTopics/SpeechTopicVideoUploadParent.js","features/talks/speechTopics/SpeechTopicTogglePrivateButton.js","features/talks/speechTopics/TalkAutocomplete.jsx","icons/codesIcon_16x16.svg","features/talks/speechTopics/SpeechTopicForm.jsx","features/talks/speechTopics/SpeechTopicParent.jsx","icons/sunRiseIcon_36x36.svg","icons/qrCodeIcon_16x16.svg","features/codes/CodesTableHeader.js","icons/bonusIcon_16x16.svg","icons/wrenchIcon_16x16.svg","icons/customSettingsIcon_16x16.svg","icons/documentDuplicateIcon_20x20.svg","icons/fileTextIcon_16x16.svg","features/codes/CodesTableRow.js","features/codes/CodesTable.js","features/common/DownloadableQrCode.js","features/codes/CodesParent.js","features/codes/builder/CodeBuilderSettingsTitle.js","features/codes/builder/CodeBuilderInputWrapper.js","features/codes/builder/CodeBuilderInputText.js","features/codes/builder/CodeBuilderInputIcon.js","icons/radioUncheckedIcon.svg","features/codes/builder/CodeBuilderSettingsCode.js","features/codes/builder/CodeBuilderUploadFile.js","features/codes/builder/CodeBuilderFileUploader.js","icons/radioCheckedIcon.svg","icons/burgerIcon_16x16.svg","features/common/RadioButton.js","features/codes/builder/CodeBuilderSettingsBonus.js","features/codes/builder/CodeBuilderSettingsBookingLink.js","features/codes/builder/CodeBuilderSettingsSocialLinks.js","features/codes/builder/CodeBuilderSettingsDownloadSlide.js","features/codes/builder/CodeBuilderInputSelect.js","features/codes/builder/CodeBuilderSettingsQuestion.js","features/codes/builder/CodeBuilderPossibleAnswer.js","features/codes/builder/CodeBuilderOver18PossibleAnswer.js","features/codes/builder/CodeBuilderQuestion.js","features/codes/builder/CodeBuilderNavigation.js","icons/codeBuilder/quickModeIcon.svg","features/codes/builder/CodeBuilderPreviewQuestionItem.js","features/codes/builder/CodeBuilderPreviewPane.js","features/codes/builder/CodeBuilderPreviewPaneParent.js","features/codes/builder/CodeBuilderUpgradeNotification.js","icons/codeBuilder/advancedModeIcon.svg","icons/navIcons/communityIcon.svg","features/codes/builder/CodeBuilderAddCodeOnboarding.js","features/codes/builder/CodeBuilderQuestionDisabledNotification.js","features/codes/builder/CodeBuilderParent.js","features/admin/CommissionPayoutParent.jsx","features/admin/ReferralUploadParent.jsx","features/admin/AdminUserNotes.js","features/admin/ShowUserParent.jsx","icons/externalLinkIcon_16x16.svg","icons/imageIcon_36x36.svg","features/helpCenter/HelpCenterParent.js","features/talks/speechTopics/speechTopicCards/SpeechTopicListCard.js","features/talks/speechTopics/speechTopicCards/SpeechTopicSkeletonCard.js","features/talks/speechTopics/speechTopicCards/SpeechTopicPlaceholderCard.js","features/talks/speechTopics/SpeechTopicList.jsx","features/talks/mediaKit/MediaKitFormFileTile.js","icons/fileIcon_36x36.svg","icons/navIcons/chaptersIcon.svg","features/talks/mediaKit/MediaKitFileUploader.js","features/talks/mediaKit/MediaKitFileUploadParent.js","features/talks/mediaKit/MediaKitForm.js","features/talks/mediaKit/MediaKitParent.js","routes/index.js","features/common/FullPageLoader.jsx","features/common/NotificationParent.jsx","icons/navIcons/logoutIcon.svg","icons/navIcons/settingsIcon.svg","icons/upgradeIcon_white.svg","icons/navIcons/talksIcon.svg","features/nav/NewSettingsMenu.jsx","utils/pathHelper.js","icons/navIcons/codesIcon.svg","icons/navIcons/leadsIcon.svg","icons/navIcons/resourcesIcon.svg","icons/group-events.svg","features/nav/NavItems.js","features/nav/BurgerMenu.js","features/nav/UpperNavUnAuth.js","features/admin/ImpersonationBanner.jsx","features/nav/UpperNav.jsx","features/common/UpgradeWidget.js","features/nav/LeftNav.jsx","utils/useFrontChat.js","App.js","reportWebVitals.js","features/common/ScrollToTop.jsx","utils/scrollToElement.js","index.js","utils/domToImage.js"],"names":["_path","_excluded","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgCaretLeftButton","_ref","svgRef","title","titleId","props","xmlns","width","height","viewBox","fill","ref","id","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","ForwardRef","oneMonthLater","Date","thisYear","getUTCFullYear","todayDay","getUTCDate","nextMonth","getUTCMonth","toUTCString","getAuthToken","filteredPairs","document","cookie","split","filter","element","getCookieValue","tokenName","getGaCookies","ga_id","gcl_id","getUtmCookies","utm_source","utm_medium","utm_campaign","saveAuthToken","token","window","location","hostname","includes","deleteAuthToken","expiryDate","deleteImpersonationToken","SET_USER_ATTRIBUTE","SET_SOCIAL_MEDIA_LINK","SET_AUTH_DATA","RESET_AUTH_DATA","TOGGLE_TOS","TOGGLE_PRIVACY","SET_SHOW_WEBINAR_ALERT","SHOW_FULL_PAGE_LOADER","HIDE_FULL_PAGE_LOADER","SET_NOTIFICATION","TOGGLE_UPGRADE_MODAL","SET_GROUP_INVITATIONS","REMOVE_GROUP_INVITATION","SET_USER_MEMBERSHIP","SET_PERMISSION","UPDATE_COUNTER","UPDATE_SURVEY_CUSTOM_QUESTION_COUNT","initialAuthState","tosChecked","privacyChecked","user","email","first_name","last_name","phone_number","booking_link","speakerflow_url","speakerflowEnabled","isCircleMember","isAssociate","avatar","referrer","onboarding_complete","onboarding_info","viewed_welcome_video","viewed_upgrade_info","lastOnboardingStep","shortlink","showTalkadotBranding","showUpgradeBanner","autoSplitEvents","isAdmin","isEventPlanner","hasGroupsFeatureFlag","canCreateGroup","socialLinks","instagram","twitter","youtube","linkedin","currentPassword","newPassword","membership","plan","name","planType","trialPeriodDays","planTier","status","permissions","shouldShowUpgrades","isTrialing","subscribedWhileTrialing","trialDaysRemaining","nextBillingDate","billingInfo","brand","expMonth","expYear","last4","isExpired","paymentErrorMessage","groupInvitations","counters","unviewedEvents","unviewedLeads","unviewedCommunityNotifications","frontLiveChatHash","signUpDate","fullPageLoader","isActive","content","loaderType","notification","message","notificationType","showNotification","showUpgradeModal","upgradeHelperText","permissionRequirements","surveyCustomQuestionCount","showWebinarAlert","authenticationReducer","state","action","type","ActionTypes","payload","attributeType","value","existingValue","url","industries","industry","showModal","helperText","impersonating","invitation","map","permission","createBrowserHistory","envConfig","process","API_ROOT","REACT_APP_API_ENDPOINT","findToken","useAdminToken","impersonationToken","Cookies","makeRequest","path","method","a","data","hasFile","authToken","headers","Authorization","body","FormData","append","file","JSON","stringify","fetch","res","json","reload","errors","get","post","put","destroy","apiEndpoints","registerPaidUser","registerUnpaidUser","loginUser","resetPassword","requestPasswordReset","resetPasswordbyToken","password_reset","loadAuthenticatedUserData","googleAuth","linkedinAuth","registerWithGoogle","registerWithLinkedin","loadSurvey","queryParams","qs","arrayFormat","indices","createAnswer","updateAnswer","answer","updateUser","updateReferrer","updateOnboardingInfo","submitSocialMediaData","createSurvey","getCodes","getUnlockedUserCodes","getCode","codeId","duplicateCode","createCode","deleteCode","surveyOfferId","updateCode","updatePossibleAnswer","possibleAnswerId","updateQuestion","questionId","toggleVisibility","repositionQuestion","createQuestion","deleteQuestion","question_id","forceEnableOver18Check","changeQuestionType","createPossibleAnswer","deletePossibleAnswer","getAvailableQuestionTypes","videoUploadPresignedUrls","speakerMediaUploadPresignedUrls","presignUrl","presignAvatarUrl","getSocialShareImage","pollSocialShareImageStatus","getSurveyOfferByCode","getAnswersBySubmission","loadAllLeads","updateLeads","deleteLeads","fetchLeadData","leadId","createEvent","editEvent","eventId","loadEvent","deleteEvent","loadEvents","fetchNotifications","getFeedbackSummary","getLeadsSummary","getLeadsBreakdown","getEventReportCard","getSpeakerSummary","getPublicProfileSettings","getPublicProfile","getPublicProtectedProfile","getPublicProfileSection","section","submitEventReview","getEventReviews","getCustomAnswers","getEventReportCardSummary","generateEventReportCardSummary","generateUserProfileFeedbackSummary","userId","destroyUserProfileFeedbackSummary","getUserProfileFeedbackSummary","rateUserProileFeedbackSummary","rateEventReportCardSummary","queryParamsStr","toggleEventReportCardSummaryVisibility","upgradePlan","upgradePaidPlan","getAvailableUpgrades","updatePaymentMethod","getSubscriptionStatus","checkShortlinkAvailability","adminUserList","adminGetReferralCommissionList","adminDeleteSpeaker","speakerId","adminFetchSpeaker","adminDeleteEventRestrictions","event_id","markCommissionAsPaid","uploadTransactions","uploadReferrals","adminAssociateList","getReferralUserOptions","impersonateUser","getMembershipPlans","updateMembership","membershipId","getAvailableMembershipStatusus","updateAdminUser","editAdminReferralPayoutSetting","referralPayoutSettingId","addAdminUserNote","deleteAdminUserNote","noteId","updateAdminUserNote","testSpeakerflowIntegration","createIntegration","updateIntegration","integrationId","mergeEvent","manuallySyncWithSpeakerflow","uploadEventGroupSchedule","fetchEventGroupOverallData","getMembershipPlanDetails","getReferrerPlan","fetchAllEventGroups","fetchEventGroup","createEventGroup","searchForSpeakers","addExistingSpeakerToEvent","removeSpeakerFromEvent","createNewSpeaker","editEventSpeakerAvatar","editEventGroup","assignEventGroupShortlink","unassignEventGroupShortlink","fetchEventLeads","fetchGroupEventLeads","syncEventLeadsWithSpeakerflow","fetchEventRawAnswers","fetchGroupEventRawAnswers","fetchDefaultEmojiKeywords","updateProfileSettings","updateProfile","getGroups","getGroupsAggregateEvents","getGroup","groupId","getGroupUsers","getGroupEvents","createGroup","updateGroup","deleteGroup","getShareGroups","getGroupInvitationDetails","getAllPendingInvitations","getUnauthGroupInvitationDetails","sendGroupInvitations","createGroupMembership","updateGroupMembership","deleteGroupMembership","removeUserFromGroup","updateUserMembership","getAllGroupMembers","getGroupSurveyLink","createGroupSurveyOffer","editGroupSurveyOffer","deleteGroupSurveyOffer","group_id","getAllGroupOfferCodes","createGroupEvent","editGroupEvent","loadGroupEvent","deleteGroupEvent","loadGroupEvents","mergeGroupEvent","editGroupEventSpeakerAvatar","createGroupEventSpeaker","removeSpeakerFromGroupEvent","addExistingSpeakerToGroupEvent","searchForGroupSpeakers","updateGroupMetadatum","createEventPermissions","deleteEventPermission","loadAssociates","createAssociate","deleteAssociate","associateId","createAuthCode","fetchEmailCampaigns","updateEmailCampaign","campaignId","sendTestCampaignEmail","uploadChapterCsv","updateChapters","unsubscribeLead","resubscribeLead","getBonusUrl","updateAccountSettings","getReferralData","getReferralPayoutSettings","editReferralPayoutSettings","getReferralEmails","updateReferralEmailTemplate","sendReferralEmails","getUpcomingWebinars","getWebinarNotificationMetadata","createSignatureTalkMediaUpload","generateSignatureTalkFromPrompt","createSignatureTalk","updateSignatureTalk","signatureTalkId","addMediaToSingatureTalk","deleteSignatureTalkMedia","signatureTalkMediaId","deleteSignatureTalk","getSignatureTalk","getSignatureTalks","sendCustomerIoEvent","createSpeakerMediaUpload","getSpeakerMedia","deleteSpeakerMedia","speakerMediaId","initiateMultipartUpload","completeMultipartUpload","AUTH_MESSAGE","humanizeError","error","undefined","Array","isArray","primaryErrors","primaryError","nestedErrors","nestedError","join","AuthenticationContext","createContext","authData","AuthenticationContextProvider","useReducer","dispatch","setUserData","setProfileAttribute","submitBookingLink","canShowBookingLink","setNotification","params","Api","submitSpeakerflowLink","isIntegrationsAllowed","integration","integration_type","integration_url","toggleSpeakerflowEnabled","enabled","submitToggleShowTalkadotBranding","showBranding","show_talkadot_branding","submitToggleAutoSplitEvents","autosplit_events","submitShowUpgradeBanner","show_upgrade_banner","handleAuthenticationSuccess","redirect","auth_token","updateCounter","redirectUser","current_password","new_password","history","push","authenticateUserByGoogle","googleData","showFullPageLoader","Messages","tokenId","hideFullPageLoader","authenticateUserByLinkedin","linkedinCode","code","registerUserByGoogle","planToken","registrationToken","plan_token","registration_token","registerUserByLinkedin","loaderContent","counterData","price","Provider","logoutUser","setSocialAttribute","toggleTos","togglePrivacy","closeNotification","toggleUpgradeModal","shouldShowUpgradeModal","permissionType","setGroupInvitations","groupInvitationData","removeGroupInvitation","setUserMembership","updatePermission","updatedPermission","existing","find","isEqual","updateSurveyCustomQuestionCount","count","setShowWebinarAlert","children","initialGroupState","selectedGroup","groups","groupReducer","GroupContext","groupState","GroupContextProvider","getPrimaryGroupId","sort","b","rolePriorityA","role","rolePriorityB","setSelectedGroup","group","setGroups","clearGroupState","getPrimaryGroup","primaryId","getGroupById","trackEventWithGoogle","eventName","dataLayer","gtag","err","pushDataLayer","event","console","log","trackSignUp","userEmail","user_id","user_email","trackOnboardingComplete","benefits","nextTalk","next_talk","trackPurchase","transactionId","coupon","ecommerce","transaction_id","currency","items","item_id","item_name","quantity","trackFirstEventCreated","trackConversion","PaintGraphic","styled","shouldForwardProp","prop","theme","backgroundUrl","backgroundImage","breakpoints","down","display","YellowPaintGraphic","textAlign","padding","BluePaintGraphic","GoogleButtonContainer","span","fontSize","GoogleOAuthButton","authenticationType","membershipPlan","useContext","handleGoogleSuccess","AUTHENTICATION_TYPES","REGISTRATION","clientId","REACT_APP_GOOGLE_CLIENT_ID","buttonText","onSuccess","onFailure","details","accessType","cookiePolicy","render","renderProps","onClick","handleClick","disabled","LinkedinButtonContainer","flexDirection","justifyContent","alignItems","fontWeight","LinkedinOAuthButton","registrationPage","useLocation","pathname","linkedInLogin","handleLinkedinSuccess","useLinkedIn","REACT_APP_LINKEDIN_CLIENT_ID","redirectUri","REACT_APP_CLIENT_ENDPOINT","scope","onError","OAuthButtonContainer","margin","SIGNIN","OAuthButtons","LinkButton","Button","baseColor","position","marginTop","top","right","maxWidth","border","color","textTransform","ButtonParent","baseUrl","searchParams","search","to","variant","GoToRegistrationPageButton","useTheme","palette","secondary","main","GoToLoginPageButton","primary","getRewardfulReferralId","Rewardful","referral","Container","marginBottom","WelcomeHeading","Typography","WelcomeSubheading","TalkadotLogo","FreeTrialNotice","RegistrationHeader","genericWelcomeMessage","hideSubheader","groupName","src","talkadotLogo","alt","component","discountedPrice","EmailAlert","Alert","RegistrationErrorFormatter","errorType","severity","railsErrorMessage","test","renderRailsError","SvgCheckMarkIcon16X16","_path2","_path3","_path4","_path5","_path6","_path7","_path8","_path9","_path10","_path11","SvgMembershipPlanIconElite","strokeMiterlimit","SvgMembershipPlanIconPro","SvgMembershipPlanIconLite","_g","_defs","SvgInfoIcon16X16","clipPath","trialEndDate","daysToAdd","moment","add","format","cleanBulletItem","item","replace","IMPERSONATE_USER","STOP_IMPERSONATION","LOAD_AVAILABLE_MEMBERSHIP_PLANS","LOAD_AVAILABLE_MEMBERSHIP_STATUSUS","LOAD_USERS","UPDATE_USER","SET_REFERRER_USER_OPTIONS","initialAdminState","impersonation","availableMembershipPlans","legacyPlans","basePlans","referralPlans","availableMembershipStatusus","users","referrerUserOptions","adminReducer","AdminContext","adminState","AdminContextProvider","fetchUsers","searchTerm","search_term","alert","updateParams","updateReferralPayoutSetting","payoutSettingId","referral_payout_setting","stopImpersonatingUser","userData","groupData","impersonation_user_id","fetchReferralUserOptions","fetchAvailableMembershipPlans","fetchAvailableMembershipStatusus","statusus","deleteSpeaker","speakerIdToDelete","useCustomerIo","isUpgradeModalOpen","isImpersonating","getEntryPointFromPath","eventReportMatch","match","extractNavigationSource","accessMethod","access_method","sendCodeDownloadedEvent","customerIoEventParams","customerio","event_name","viewedPricingPage","planAddedToCart","inputData","locData","viewedCodesPage","UpgradeModalLauncher","cx","className","PricingGridParent","mostPopularPlan","borderRadius","shape","xxs","PlanNameWrapper","minHeight","spacing","background","base","white","borderTopLeftRadius","borderTopRightRadius","PlanIcon","svg","PlanName","letterSpacing","PlanNameSubtext","PlanPriceBulletsWrapper","flex","extraLight","surface","subtle","borderBottomLeftRadius","borderBottomRightRadius","FeatureBulletsHeader","FeatureBullets","gap","FeatureBullet","minWidth","marginRight","PlanPrice","isDiscounted","semiDark","PlanPriceInterval","neutral","marginLeft","paddingTop","PlanPriceSubtext","veryDark","textDecoration","RebateAlert","xxxs","UpgradeButton","buttonColor","darkest","backgroundColor","FlexRowContainer","FlexColumnContainer","LegacyContent","LegacyInfoIcon","InfoIcon","black","transform","PriceCell","inWelcomeFlow","upgradingPaidPlan","isCurrentPlan","annualPrice","retailPrice","hasOneTimeDiscount","hasRecurringDiscount","hasImpliedDiscount","offerExpiration","hasTemporaryDiscount","temporaryOfferExpiration","renderRebateAlert","style","visibility","Math","ceil","PricingGrid","setSelectedPlan","selectedPlan","currentPlan","isDowngrade","planPrice","open","encodeURIComponent","trackAddToCart","isOnFreePlan","isTrialPlan","isTrialDowngrade","planIcon","planName","planNameSubtext","trim","isLegacyPlan","Tooltip","placement","disableInteractive","renderCta","featureBullets","TosContent","TermsOfService","sx","href","rel","stripePromise","loadStripe","REACT_APP_STRIPE_P_KEY","PricingGridContainer","MobilePricingGridContainer","up","CreditCardContainer","StyledTextField","TextField","SummaryAndPaymentForm","referrerId","utmParams","gaParams","stripe","useStripe","elements","useElements","useState","cardName","setCardName","cardNameError","setCardNameError","checkoutLoading","setCheckoutLoading","setEmail","password","setPassword","emailError","setEmailError","passwordError","setPasswordError","genericInlineError","setGenericInlineError","handleSubmit","e","preventDefault","isEmail","createPaymentMethod","card","getElement","CardElement","billing_details","registration","referrer_user_id","rewardful_referrer_id","stripe_card_info","paymentMethod","auth","RegistrationContainer","InnerContainer","FormWrapper","required","fullWidth","label","onChange","autoComplete","placeholder","options","empty","AuthButton","RegistrationCheckout","UnpaidRegistrationCheckout","registerUser","glc_id","Divider","InnerDivider","gridTemplateColumns","left","CheckoutForm","flexGrow","RegistrationParent","setMembershipPlan","setGroupName","urlParams","ignoreQueryPrefix","via","pt","rt","groupInvitationToken","git","groupInvitation","showPaidCheckout","useEffect","fetchMembershipPlanDetails","is_direct_pay_link","fetchGroupDetails","reqParams","group_invitation","invitation_token","invitationToken","PasswordResetLink","LoginForm","welcomeMessage","authentication","LOGIN","ReferrerRegistrationParent","setReferrer","setReferrerId","referrerShortlink","validateReferrer","referrer_shortlink","NotificationsHeader","text","navText","DashboardSubheader","isNewUser","SvgAlertIcon","SvgDangerIcon","SvgCircleXIcon","SvgCircleCheckIcon","SvgCloseIcon","SvgAiSparklesIcon","BlackAISparklesIcon","AISparklesIcon","dark","BlackExclamationIcon","AlertIcon","WhiteExclamationIcon","BlueExclamationIcon","RedExclamationIcon","OrangeDangerIcon","DangerIcon","ErrorIcon","CircleXIcon","SuccessIcon","CircleCheckIcon","success","StyledAlert","opacity","flexShrink","CloseButton","IconButton","iconMap","greyWarning","whiteWarning","blueWarning","blueWarningFilled","orangeWarning","redWarning","subtlWarning","blackAISparkles","Notification","forwardRef","onClose","hideIcon","hideClose","visible","setVisible","IconComponent","icon","PersistentNotifications","notificationDetails","notificationDetail","index","LEADS_LIMIT","LEAD_DOWNLOADS","OFFER_CODE_LIMIT","CUSTOMIZATIONS","EMAIL_CAMPAIGNS","TEAMS","INTEGRATIONS","AI_EVENT_SUMMARY","CUSTOM_QUESTION_LIMIT","LITE_TIER","GRANULAR_LIMIT_PERMISSIONS","stateLoadingPermission","limit","consumed","unlimitedUsage","usePermissionHelper","canCreateSurveyOffer","currentOfferCount","findPermission","parentPermission","_isUsingChapterFeature","granularControls","custom_question_limit","Error","buildBasePermission","_buildPermission","onPaidPlan","extendPermission","consumedPercentage","min","isBelowLimit","currentConsumption","builtPermission","canToggleTalkadotBranding","canUseIntegrations","canAddCustomQuestion","canUseAIEventSummary","canDownloadLeads","canDownloadEventLeads","canUseEmailCampaigns","canAccessTeams","canReorderQuestions","can_reorder_questions","getPlanTier","canAccessAction","actionTier","NotificationTypography","cursor","NotificationParent","notifications","buildNotificationContent","ctaText","SvgUsersIcon24X24","SvgZapIcon24X24","SvgReferralIcon","handleCopy","navigator","clipboard","writeText","formatDate","date","offset","formatDateWithTimeZone","dateString","timeZone","dateOptions","year","month","day","datePart","Intl","DateTimeFormat","timeOptions","hour","minute","hour12","timePart","formattedDate","downloadSlideAsPng","componentRef","fileName","callback","domtoimage","toPng","current","quality","bgcolor","cacheBust","then","dataUrl","dataUrl2","link","createElement","download","click","downloadComponentAsPng","downloadInvisibleComponent","componentId","exportComponentAsJPEG","html2CanvasOptions","onclone","clonedDoc","getElementById","querySelectorAll","forEach","setAttribute","getBoundingClientRect","removeEmptysAndNulls","obj","propName","makeSurveyLink","REACT_APP_SURVEY_ENDPOINT","makeReferralLink","REACT_APP_REFERRAL_URL","eventReportCardShareLink","shareKey","REACT_APP_PUBLIC_PAGE_ENDPOINT","publicProfileLink","onlyAllowPositiveNumbersNoDecimals","processWithFallback","opts","funcs","concat","invalidValues","fallback","reduce","acc","func","Card","CardInnerReferral","flexWrap","CardInnerTrial","CardVideoContainer","CardInnerVideo","ChipContainer","xs","boxShadow","ChipIcon","ChipValue","ChipLabel","ChipList","SvgLinkIcon16X16","SvgHeartIcon16X16","SvgEmail","SvgProfile","fillRule","clipRule","TextFieldContainer","EmailField","NameField","MuiTextField","InviteForm","emailsToSend","onEmailChange","onNameChange","onValidInputs","onBlur","some","validator","validateEmail","InputProps","startAdornment","InputAdornment","SvgTrash","EmailWrapper","ErrorMessage","fontStyle","StyledTrashIcon","TrashIcon","StyledCheckIcon","CheckIcon","StyledCircleXIcon","EmailItem","onDelete","submitted","SubmitIcon","FromAddress","gutterBottom","EmailPreviewItem","Box","divider","EditorContainer","grey","EditDialog","onSave","subject","header","footer","setSubject","setContent","isUpdating","DialogContent","mb","mr","size","my","readOnly","modules","toolbar","list","preserveWhitespace","DialogActions","START_MARKER","EmailPreviewModal","previewOpen","handleClosePreview","emailTemplate","updateEmailTemplate","useMemo","editableContent","startIndex","endIndex","substring","parseContent","contentValue","setContentValue","subjectValue","setSubjectValue","handleSaveChanges","updatedContent","Dialog","DialogTitle","EmailSection","ButtonSection","ActionButtonsContainer","EmailInvite","onSendEmails","failedEmails","isLoading","onEmailTemplateUpdate","showEmailNotification","setName","setEmailsToSend","validInputs","setValidInputs","setPreviewOpen","isUpdatingTemplate","setIsUpdatingTemplate","handleEmailDelete","sendEmailButtonText","StyledTypography","entry","failedEmail","Fragment","onSubmit","updatedEmails","emails","paddingLeft","BUTTON_WIDTH","MainContentContainer","InviteCard","sm","HeaderWrapper","StyledHeartIcon","HeartIcon","ShareLinkContainer","LinkContainer","veryLight","overflow","whiteSpace","textOverflow","StyledLinkIcon","LinkIcon","LinkWrapper","CopyableLink","StyledButton","textWrap","LinkLikeButton","InviteComponent","referralLink","Helpers","ShareParent","LinkedinShareButton","summary","FacebookShareButton","quote","hashtag","TwitterShareButton","hashtags","related","SvgDownloadIcon","QrCard","QrDownloadWrapper","QrActions","ScanCodeText","DownloadText","QrParent","qrRef","useRef","handleDownload","pixelRatio","level","StyledTableContainer","TableContainer","maxHeight","NoEmailsMessage","TrackReferralsModal","Paper","Table","stickyHeader","TableHead","TableRow","TableCell","TableBody","sent_on","created_at","toLocaleDateString","RightColumn","ReferralParent","signups","setSignups","upgrades","setUpgrades","setEmails","setFailedEmails","emailsSent","setEmailsSent","setEmailTemplate","setIsLoading","trackModalOpen","setTrackModalOpen","setShowEmailNotification","fetchReferralData","fetchEmailTemplate","template","emails_sent","handleSendEmails","nonSubmittedEmails","existingEmails","failed","handleEmailTemplateUpdate","referral_email","handleToggleTrackModal","chipItems","mt","SvgGiftIcon","SvgBellIcon","SvgStarIcon","StyledAvatar","Avatar","isDefault","img","StyledHeader","TrialDetailsContainer","ModalTriggerLink","StepLabelTypography","StyledEllipse","active","StyledStepper","Stepper","StyledStepContent","StepContent","StepIcon","TrialProgressParent","planTrialDays","startDate","reminderDate","endDate","today","referrerName","referrerAvatar","currentStep","steps","stepNum","description","orientation","activeStep","step","StepLabel","StepIconComponent","VideoContainer","VideoPlayerComponent","videoId","autoplay","listId","controls","StyledHeaderWrapper","CommunityLink","VideoParent","VideoPlayer","paddingBottom","MaxWidthContainer","noNavPage","PageContainer","useBillingRedirect","useHistory","currentPath","SvgUpgradeIcon","showText","redirectToBilling","HeaderText","PageHeader","showUpgradeButton","SvgEyeIcon16X16","SvgEyeOffIcon16X16","ToggleQuestionButton","iconColor","CodeBuilderToggleQuestionButton","handleToggleQuestion","canToggleVisibility","enabledTooltip","disabledTooltip","toggleEnabledTier","setOpen","handleToggleClick","tierRequirement","onOpen","arrow","SvgTrash2Icon16X16","DeleteButton","CodeBuilderDeleteButton","handleDelete","toolTip","SvgFreeFlow","_line","SvgBoolean","x1","y1","x2","y2","_rect","_rect2","SvgMultipleChoice","x","y","rx","SvgEmoji","SvgCaretDown16X16","SvgNps","StyledMenuItem","MenuItem","questionType","epitome","fontFamily","StyledListItemText","ListItemText","selected","StyledInput","InputBase","outline","light","StyledCaretIcon","CaretDownIcon","renderStyledMenuItem","question","ListItemIcon","QuestionTypeIcon","CodeBuilderQuestionTypePicker","availableQuestionTypes","setValue","Select","questionTypeId","question_type_id","MenuProps","PaperProps","transformOrigin","anchorOrigin","vertical","horizontal","input","renderValue","SvgPreview","IframeContainer","StyledIframe","overrideHeight","StyledDialogContent","StyledDialogTitle","CodeBuilderLaunchPreviewButton","innerHeight","screenHeight","setScreenHeight","surveyLinkSrc","surveyHeight","isMobileOnly","handleResize","addEventListener","removeEventListener","QuestionHeaderActionButton","startIcon","fullScreen","SvgPlusIcon16X16","NewQuestionNoticeContainer","lightest","typography","paragraph00","CodeBuilderAddQuestionButton","questionLoading","handleAddQuestion","anchorEl","setAnchorEl","Boolean","currentTarget","handleClose","customQuestionPermission","_handleAddQuestion","Menu","MenuListProps","HeaderContainer","paddingRight","QuestionType","hint","fontWeights","semiBold","QuestionHeaderActionButtonsContainer","CodeBuilderQuestionHeader","canInsertQuestion","handleDeleteQuestion","showQuestionType","showPreviewButton","hidePreview","config","questionTypeDescription","canChangeQuestionType","changeQuestionTypeTier","canToggleEnable","canDelete","renderHeaderContent","SvgCircledArrowRight","SvgHeadphoneIcon","WEBINAR_TYPES","RecordedDemoContainer","WebinarRow","borderBottom","ContentWrapper","Header","WebinarTitle","WebinarCaption","StyledIconWrapper","WebinarList","WebinarTitleSection","WEBINAR_DATA","webinarType","UpcomingWebinarRow","webinar","start","utc","start_time","tz","timezone","end","clone","Number","duration","localStart","local","localEnd","time","tzAbbr","timeZoneName","formatToParts","toDate","part","formatWebinarTime","topic","registration_link","UpcomingWebinars","webinars","setWebinars","webinarData","webinarDatum","invalidWebinarType","handleSetWebinars","meeting_type","fetchUpcomingWebinars","CircularProgress","StyledCloseIcon","CloseIcon","zIndex","ModalCloseIcon","AlertContainer","tertiary","AlertTitle","AlertActionButton","StyledHeadphoneIcon","HeadphoneIcon","AlertContent","AlertDescription","semiLight","WebinarAlert","isMobile","useMediaQuery","DashboardParent","setIsNewUser","setNotifications","trialProgressData","setTrialProgressData","loading","setLoading","renderTrialProgress","SET_CURRENT_STEP","TOGGLE_IS_LOADING","SET_FORM_ERROR","RESET_ONBOARDING_DATA","SET_REFERRER_DATA_ATTRIBUTE","initialOnboardingState","profile","firstName","lastName","formError","businessGoals","referrerData","selectedReferrerOption","selectedReferrerOrganization","selectedReferrerChapter","additionalReferrerContext","onboardingReducer","profileAttribute","attrType","attrValue","WelcomeContainer","HeaderSection","StepSection","Step","WelcomeScreen","p","validateShortlinkFormat","string","valid","validateEmailFormat","username","domain","validateNameFormat","StyledForm","UserAttributeForm","formValue","formLabel","inputStyle","OnboardingContext","toggleFormError","onboardingState","noValidate","inputRef","focus","handleChange","inputProps","LengthErrorContainer","TinyText","ShortLinkWrapper","AvailabilityWrapper","AvailableSpan","UnAvailableSpan","ShortlinkPicker","isChecking","setIsChecking","isAvailable","setIsAvailable","debouncedShortlink","delay","debouncedValue","setDebouncedValue","handler","setTimeout","clearTimeout","useDebounce","checkShortlink","shortlink_availability","available","renderAvailability","device","mobile","tablet","laptop","FieldOption","motion","div","transition","MultipleChoiceOption","option","whileHover","scale","whileTap","MultipleChoiceContainer","MultipleChoiceQuestion","submitAction","multipleSelection","allOfAboveOptionAvailable","selections","multipleChoiceSelection","object","setSelected","allSelected","setAllSelected","handleSelection","useCallback","optionValue","optionValues","newSelected","v","handleAllAbove","q","renderAllOfTheAbove","OtherOptionTextfield","ReferralQuestionParent","setSelectedReferrerOption","referrerOptions","setAdditionalReferrerContext","referrerOption","isSelected","additionalContextRequired","NsaChapterList","OrganizationsList","chapterList","FullOrganizationsList","listItem","OrganizationListHeader","ReferralOrganizationPicker","existingReferrerChapter","existingReferrerOrganization","setReferrerChapter","setReferrerOrganization","setChapterList","formatChapterList","chapterName","Autocomplete","disablePortal","selectedOrganization","renderInput","selectedChapter","createImage","Promise","resolve","reject","image","Image","getRadianAngle","degreeValue","PI","getCroppedImg","imageSrc","pixelCrop","rotation","canvas","ctx","getContext","maxSize","max","safeArea","fillStyle","fillRect","translate","rotate","drawImage","getImageData","putImageData","getNormalizedFile","Compressor","normalizedFile","generateCroppedImage","crop","toDataURL","dataUrlToFileUsingFetch","mimeType","response","arrayBuffer","buffer","File","pulsate","keyframes","CropperDialogContent","CloseModalButton","CropperSliderContainer","CropperContainer","SliderContainer","SliderWrapper","AvatarIconButton","inSpeakerSlide","animation","ProfileAvatar","EditAvatar","currentAvatar","submitOverrideFunction","isGroupAvatar","avatarFile","setAvatarFile","setImage","croppedArea","setCroppedArea","setCrop","zoom","setZoom","cropperOpen","setCropperOpen","submitAvatar","croppedImage","editAvatar","files","readFile","imageDataUrl","reader","FileReader","onload","result","readAsDataURL","catch","sendFileToAmazon","presignedUrl","uploadableFile","ok","fileParts","fileType","avatar_upload","file_name","file_type","storageUrl","avatarImage","EmptyGroupAvatar","EmptyAvatar","accept","htmlFor","cropShape","showGrid","minZoom","restrictPosition","aspect","onCropChange","onZoomChange","onCropComplete","croppedAreaPercentage","croppedAreaPixels","Slider","ProfileWrapper","ProfilePicture","capitalize","str","charAt","toUpperCase","slice","parseAutoFillTags","speakerName","replacementTarget","replacementValue","parsedContent","toLowerCase","parseSpeakerName","stripHtmlTags","OnboardingTypes","QuestionTypes","ReferrerTypes","ReferrerOptions","OnboardingContextProvider","defaultShortLink","toggleIsLoading","setReferrerDataAttribute","attributeValue","submitCustomUrl","submitProfileAttribute","handleOnboardingComplete","main_benefits","findNextStep","shouldSkipNextStep","nextStep","isReferrerQuestion","isLastStep","subquestionType","goForward","getCurrentStep","setCurrentStep","skipQuestionId","last_onboarding_step","submitFirstName","submitEmail","submitToggleTalkadotBranding","avatarLink","submitLastNameFromAccountForm","goToNextQuestionFromSubquestionType","syncReferrerData","referrer_type","referrerType","submitReferrer","submitOnboardingInfo","submitOnboardingInfoData","submitMultipleChoiceQuestion","submitLastName","onboardingQuestions","mainBenefits","talksPerYear","bureauTalksInfo","userFormInputStyle","isFirstStep","hideMainAction","subtitle","skipable","skipableText","backQuestionId","referrerChapter","referrerOrganization","onboardingInfo","goBack","backStepId","findStartingStep","lastCompletedOnboardingStep","resetOnboardingData","OutlinedButton","rounded","buttonProps","borderColor","NextButton","common","mx","CtaContainer","MainLogo","OnboardingHeader","onSaveAndExit","all","SubmitWrapper","hideOkButton","EnterText","InnerContent","TitleContainer","QuestionTitle","dangerouslySetInnerHTML","__html","QuestionSubTitle","OnboardingContent","ProgressContainer","ProgressBar","progress","total","from","_","FooterContainer","bottom","ButtonContainer","OnboardingFooter","totalSteps","nextButtonText","OnboardingContainer","OnboardingParent","keyPressHandler","SettingWrapper","LabelWrapper","ToggleLabelRight","checked","ToggleLabelLeft","ButtonWrapper","intialFormValues","password_confirmation","ProfileSettings","showNewPassword","setShowNewPassword","showNewConfirmPassword","setShowNewConfirmPassword","showPasswordFields","setShowPasswordFields","formValues","setFormValues","handleClickShowNewPassword","show","handleClickShowNewConfirmPassword","handleMouseDownPassword","handleInputChange","handleBlur","handleToggleProfileSetting","attribute","profile_setting","profileSettings","handlePasswordSubmit","password_set","verifyPassword","renderPasswordProtectedSwitch","Switch","password_protected","AccountSettingsCard","AccountSettingsCardTitle","AccountSettingsCardInner","AccountSettingsCardColumn","Stack","direction","is_public","searchable_in_app","search_indexed","renderPasswordProtectedToggle","FormControl","InputLabel","OutlinedInput","endAdornment","onMouseDown","edge","FormHelperText","renderPasswordFields","EditPasswordForm","StyledDialog","Title","TitleText","DangerMessage","red","ManualConfirmContainer","ConfirmLabel","ConfirmTextField","StyledDialogActions","columnLayout","buttonOrder","button","CancelButton","ConfirmButton","textColor","ConfirmDialog","onConfirm","onCancel","cancelButtonText","cancelButtonTextColor","cancelButtonVariant","manualConfirm","confirmText","disableOutsideClick","showCancel","hideDangerMessage","confirmValue","setConfirmValue","reason","showDangerMessage","confirmTextMatch","renderIcon","titleColor","SvgEditIcon16X16","SvgCopyIcon16X16","StyledIcon","CopyContent","contentToCopy","copyNotification","setCopyNotification","EditDetailsContainer","isEditing","detailType","gridTemplateAreas","gridArea","EditActionsWrapper","StyledTitle","StyledSocialTitle","StaticDetailValue","EditDetails","handleUpdate","detailValue","copiable","beforeSubmitValidation","setIsEditing","renderDetailType","socialType","speakerflowLogo","CustomUrlPicker","onChangeOverride","shortlinkValue","shortlinkLengthError","setShortlinkLengthError","previousShortlink","setUserShortlink","autoFocus","AvatarContainer","alignSelf","MainUserSettings","originalShortlinkLocked","setOriginalShortlinkLocked","originalCustomUrl","setOriginalCustomUrl","confirmOpen","setConfirmOpen","oauthProviders","renderPasswordField","ConfigurationOptions","useSocialMediaData","useGetUser","socialProvider","provider","social_media_links","EditSocialMedia","socialPrefix","placeholderValue","socialAttributeType","socialAttributeValue","SocialMediaSettings","linkedInUrl","renderLinkedInValue","youtubeUrl","renderYoutubeValue","AccountSettingsContainer","h5","AccountSettingsParent","TeamMemberTableRow","TeamTableCell","centered","TeamMemberRow","associate","maxChars","truncText","renderEmailAddress","TeamMemberContainer","TeamMemberTableHeader","TeamTable","TeamMemberList","associates","handleDeleteAssociate","FormSectionWrapper","lastSection","StepNumber","StepContentDescription","SubheaderSection","HeadingNote","HeaderTextWrapper","ProFeatureIconWrapper","FormSection","stepNumber","descriptionAction","heading","headerComponent","headingNote","subheading","showProFeatureIcon","FormDialogContent","FormContainer","SubmitButton","TeamForm","_createAssociate","CloseIconButton","TeamParent","setAssociates","associatesLoading","setAssociatesLoading","associateFormOpen","setAssociateFormOpen","setDeleteAssociate","teamPermission","fetchAssociates","handleCloseAssociateForm","handleConfirmDelete","updatedAssociates","renderMemberTable","SvgDownloadIcon16X16","SvgArchiveIcon16X16","SvgLeadsIcon16X16","SvgFireIcon16X16","SvgWindIcon16X16","SvgMailIcon16X16","getValueByPath","descendingComparator","orderBy","valueA","valueB","getComparator","order","compareDates","leadA","leadB","granularity","dateA","createdAt","dateB","isBefore","isAfter","getLeadsComparator","sortMultiplier","dayComparison","warmthComparison","warmthOrder","warmthA","warmth","warmthB","compareWarmth","compareLeads","isBookingLead","leadTypes","isReferLead","isOptIn","isHotLead","lead","referLeads","leads","archived","bookingLeads","optInLeads","allLeadsSelected","selectedLeads","ungatedLeads","every","isGated","humanizedFollowupFailure","followupSentAt","followupFailure","expandedMsg","cleanAttributeForCsv","String","leadHeaders","leadCsvOptions","exportTitle","fieldSeparator","quoteStrings","decimalSeparator","showLabels","showTitle","useTextFile","useBom","useKeysAsHeaders","filename","serializeLeads","makeTalkTitle","makeTalkOrganization","phone","organization","contacted","Lead","opportunityDetails","talkTitle","talkOrganization","exportLeads","csvData","ExportToCsv","generateCsv","exportEventLeads","event_leads","exportEventRawData","event_answers","answerData","responseIdentifier","GENERIC","StyledContainer","StyledTabswrapper","StyledTab","Tab","inputText","SelectWrapper","HeaderTabs","tabs","handleTabChange","Tabs","scrollButtons","newValue","TabIndicatorProps","tab","iconPosition","LeadsTabs","setActiveTab","setPage","activeTab","StyledTableCell","displayBreakpoint","lastVisibleCell","TableCellStyled","align","SvgTableSortIcon","TableHeaderCellSortable","headCell","onRequestSort","sortDirection","TableSortLabel","tableSortIcon","tooltip","drawerWidth","upperNavHeight","DrawerHeader","mixins","StickyHeader","isSticky","navHeight","StyledTableHead","TableHeaderSortable","headCells","innerWidth","screenWidth","setScreenWidth","colWidths","setColWidths","setIsSticky","headerRef","stickyHeaderRef","thElements","requestAnimationFrame","widths","th","getComputedStyle","renderHeadCells","lastVisibleCellIndex","handleScroll","headerTop","handleScrollDebounced","smBreakpoint","values","mdBreakpoint","md","lgBreakpoint","lg","getLastVisibleCellIndex","LeadsTableHeader","SvgItemCheckedIcon16X16","TableCellContent","TableCellSecondaryContent","CheckboxTableCell","SessionFromEventIcon","ActionsTableCell","TableCellPrimaryContent","newItem","boldPrimary","SvgDisabledBadgeIcon","Wrapper","BadgeWrapper","DisabledBadgeIconWrapper","LeadTypeIconContainer","StyledLeadTypeIcon","svgType","extraLeftMargin","expanded","LeadTypeIcon","typographyVariant","iconsData","temperature","isFeedbackLead","parseLeadTypes","parseLeadTitle","iconData","enterTouchDelay","leaveTouchDelay","SvgAiSparklesIcon16X16","RatingContainer","EmojiWrapper","emojiFontSize","YesNoRating","answerValue","answerContent","SvgEmojiIcon1","SvgEmojiIcon2","SvgEmojiIcon3","SvgEmojiIcon4","SvgEmojiIcon5","EmojiRatingContainer","emojiSize","EmojiRating","answerText","emoji","StyledLoadingSpinner","LoadingSpinner","StyledPopper","Popper","SplitButton","anchorRef","selectedIndex","setSelectedIndex","contains","renderMenuItem","tooltipText","tooltipPlacement","menuItem","handleMenuItemClick","slotProps","popper","modifiers","ButtonGroup","prevOpen","TransitionProps","Grow","ClickAwayListener","onClickAway","MenuList","autoFocusItem","InlineIconWrapper","verticalAlign","ColumnWrapper","ContactInfoRow","LeadContactInfo","LeadName","ResponsesRow","LeadRatingsContainer","LeadTypeContainer","StyledList","listStyleType","li","ColoredLi","FeedbackAnswerContainer","FeedbackAnswerWrapper","FeedbackAnswerTitle","FeedbackAnswer","ActionsRow","LoadingButton","SplitButtonContainer","IntegrationTitle","IntegrationContainer","LeadsTableRowExpand","leadSurveyData","leadLoading","leadUpdating","handleArchiveLead","handleMarkContacted","handleDeleteLead","integrationItems","setIntegrationItems","generateIntegrationItems","currentLead","speakerflowSyncedAt","zapierSyncedAt","upcomingSpeakerflowSyncTime","upcomingFollowupSendTime","talkValue","l","question_type","talkReattend","talkEngagement","talkTakeaways","otherFeedback","text_value","improvementFeedback","renderLeadType","listItems","renderIntegrationDetails","splitButtonOptions","engagement","range_value","aiVerifiedOpportunityDetails","Chip","Component","otherProps","sizeStyling","ChipText","applyStrikeThrough","TableChip","sizing","small","medium","purple","pink","LeadsTags","viewed","isScheduledEmail","shouldShowNewTag","shouldShowEmailTag","shouldShowCrmTag","shouldShowScheduledTag","shouldShowContactedTag","tagColor","toolTipText","renderEmailTag","renderCrmTag","renderScheduledTag","SvgEllipsisIcon","TableActionsDropdown","menuItems","UncheckedIcon","outlineOffset","CheckedIcon","backgroundSize","backgroundRepeat","backgroundPosition","StyledFormControlLabel","FormControlLabel","CheckBoxStyled","renderCheckbox","Checkbox","disableRipple","checkedIcon","control","GateToolTip","tooltipOpen","setTooltipOpen","disableTooltipInteractions","setDisableTooltipInteractions","handleTooltipClose","followCursor","disableHoverListener","disableFocusListener","onChildOpen","onChildClose","StyledTableRow","CollapseTableRow","td","StyledBox","xsInset","LeadsTableRow","handleUpdateLeads","handleCheckboxChange","handleMarkAsViewed","setLeadLoading","setLeadUpdating","leadData","setLeadData","is_impersonating","handleOpen","renderRowContent","utcOffset","tierRestriction","colSpan","Collapse","in","timeout","unmountOnExit","VideoPlayerWrapper","StyledReactPlayer","ReactPlayer","HeaderComponent","VideoTableRow","LeadsTableRowPlaceholder","SvgArrowLeft","PaginationContainer","BackButton","PageCounter","TablePaginationFooter","rows","rowsPerPage","page","handleChangePage","handlePrevButtonClick","scrollTo","handleNextButtonClick","TablePagination","onChangePage","rowsPerPageOptions","labelDisplayedRows","ActionsComponent","LeadsTable","setOrder","setOrderBy","visibleRows","setVisibleRows","isLargeScreen","isMediumScreen","emptyRows","skeletonColumns","elevation","property","cellIndex","Skeleton","newPage","StatItemContainer","StatItemWrapper","StatItemIcon","StatItemValue","useErrorFontColor","StatItemLabel","StatsSummaryHeader","statItems","upgradeButtonText","ActionsContainer","BulkActionsContainer","SelectedCount","BulkActionsButtons","BulkActionsButton","renderCtaButton","TableActions","showCta","ctaOpts","showBulkActions","selectedItems","handleSelectAllChange","bulkActions","renderActionButton","LinkSpan","transitions","create","short","easing","easeInOut","StyledDownloadIcon","DownloadIcon","RedFireIcon","FireIcon","RedWindIcon","WindIcon","LeadsParent","setLeads","allLeads","setAllLeads","setSelectedLeads","leadsPermissionData","reachedLeadsAlertThreshold","fetchLeads","leadsLimitPermission","updatedCount","filteredSelectedLeads","leadsToUpdate","clearSelected","suppressNotification","ids","confirmDeleteLeads","massMarkAsViewed","viewedLeads","leadIds","handleDownloadSelectedLeads","selectedUngatedLeads","statsSummaryItems","bulkArchiveText","UPGRADE_MESSAGE","updatedLeads","FormFieldContainer","noBottomMargin","FormLabel","SendTestEmailButton","FormFieldError","errorMsg","allowClose","warningVariant","containerHeight","InputContainer","InputWrapper","canEdit","TextInput","ErrorContainer","InputSection","showError","SettingsContainer","SettingsContainerInner","ToggleContainer","EmailTemplateContainer","EmailPreviewBlock","EmailPreviewContent","EmailTemplateCaption","ToggledOffOverlay","ToggleContent","ConstrainedInputWrap","HeaderInner","StyledSendTestEmailButton","StyledInfoIcon","StyledReactMultiEmail","ReactMultiEmail","focused","overflowX","ChipWrapper","EmailCampaignParent","campaign","toggleCampaignActive","replyToEmail","setReplyToEmail","openTestModal","updateBcc","newReplyToEmail","setNewReplyToEmail","replyToEmailError","setReplyToEmailError","bcc","setBcc","bccError","setBccError","setFocused","hasInitialBccBeenSet","handleOpenTestModal","updateReplyToEmail","account_setting","reply_to_email","handleUpdateBcc","bccEnabled","_emails","onKeyDown","evt","onFocus","getLabel","removeEmail","inputClassName","emailSubject","emailContent","Description","PageDescription","EmailCampaignStatSummary","emailCampaigns","bookingCampaign","referralCampaign","optInCampaign","allSentEmails","sum","CampaignStatusIcon","isTabActive","isCampaignActive","EmailCampaignTabs","BOOKING","REFERRAL","OPT_IN","StyledSelect","EmailCampaignTestParent","testEmailProps","sendTestEmail","offers","setOffers","setError","selectedCode","setSelectedCode","handleSendTestEmail","offerId","offer","UpgradeLink","EMAIL","initialTestEmailProps","EmailCampaignSettings","setEmailCampaigns","currentCampaign","setCurrentCampaign","setTestEmailProps","testModalOpen","setTestModalOpen","reachedEmailAlertThreshold","getEmailCampaigns","campaigns","emailCampaignsPermission","campaignToUpdateId","toggleValue","is_active","emailCampaign","selectedOfferId","survey_offer_id","closeTestModal","LeadsFollowupParent","TestSpeakerflowButton","handleTestSpeakerflowIntegration","ManuallySyncSpeakerflowButton","handleManuallySyncWithSpeakerflow","SpeakerflowContainer","SpeakerflowEditContainer","IntegrationSettings","disableButtons","renderShowSpeakerflowLink","StyledBetaChip","BetaChip","ZapierEmbedContainer","ZapierSettings","LeadsIntegrationsParent","SvgReferralMoneyIcon","OptOutContainer","ProgramLink","tabBlue","Disclaimer","ProgramDetailsInner","ProgramDetails","optOut","setOptOut","hasPayoutInfo","setHasPayoutInfo","fetchPayoutSettings","opt_out","has_payout_info","toggleOptOut","NotificationContainer","ReferParent","SvgNewIcon","SvgBreadCrumbCaret","StyledBreadcrumbs","Breadcrumbs","StyledDashboardIcon","DashboardIcon","CaretIcon","NavBreadCrumbs","breadCrumbs","separator","breadCrumb","SvgAttendeesIcon","TotalAttendeesStat","totalResponses","SvgAttendeesHeaderIcon","SvgValuableHeaderIcon","SvgReattendHeaderIcon","CardContainer","CardHeader","HeaderLogo","CardContent","DonutStatsContainer","PrimaryDonutContainer","SecondaryDonutsContainer","SecondaryDonutsColumn","SecondaryDonutStatContainer","SecondaryDonutContainer","StatCard","ratingsBreakdown","reattendBreakdown","eventType","valuableHeaderContent","reattendHeaderContent","headerLogo","positives","parseInt","calculateValuableRating","d_yes","p_yes","total_reattend_answers","calculateReattendRate","headerText","SecondaryDonutLabel","ChartJS","register","ArcElement","TalkValueStat","negatives","originalData","isAllZero","chartData","labels","datasets","borderWidth","cutout","plugins","legend","maxValue","counterClockwise","styles","buildStyles","textSize","pathColor","eventReport","circleChartGrey","TalkReattendStat","p_no","d_no","RowContainer","OuterProgressBar","InnerProgressBar","TalkEngagementStat","engagementBreakdown","ACTIONABLE","ENGAGING","INSPIRING","RELEVANT","INTERACTIVE","formatLabel","formattedLabel","sortedEngagementBreakdown","engagementStat","parseFloat","avg_value","COLOR_CODES","renderEngagementRow","engagementType","engagementStatValue","barValue","toFixed","renderEngagementStats","BannerContainer","font","BannerAvatar","Summary","TalkOrganization","nameLength","TalkTitle","TalkDate","Banner","speaker","speakers","isProfile","orgContent","fullName","speakerNameLength","speakerLastNameLength","renderOrganization","renderTalkTitle","usePolling","apiMethod","shouldStopPolling","maxTries","pollingInterval","setData","triesRef","pollingRef","stopPolling","startPolling","poll","tries","latestData","SpeakerSummaryHeader","socialShare","SpeakerName","lineHeight","initialSpeakerSummaryState","SpeakerHeader","speakerSummary","setSpeakerSummary","speakerNameFontSize","fetchSpeakerSummary","speaker_summary","share_key","SocialShareBanner","SocialShareAvatar","SocialShareImage","borderStyle","customQuestion","TalkTitleWrapper","orgFontScale","titleFontScale","reportData","orgRatio","titleRatio","isUserEvent","noWrap","Footer","SocialShareTemplate","downloadRef","downloadId","ReportDownloadContainer","FeedbackList","FeedbackContent","fontScale","maxLines","WebkitLineClamp","WebkitBoxOrient","OpenQuoteMark","RiDoubleQuotesL","CloseQuoteMark","RiDoubleQuotesR","DownloadButton","TestimonialStatImage","sortedFeedback","customPickedFeedback","priorityFeedback","setPriorityFeedback","totalRowCount","setTotalRowCount","AVAILABLE_ROWS","calcFeedback","currentRowCount","totalFeedback","feedback","feedbackRows","rowRatio","renderFeedback","YesOrNoAnswer","SvgEmoji1","xmlnsXlink","preserveAspectRatio","xlinkHref","SvgEmoji2","SvgEmoji3","SvgEmoji4","SvgEmoji5","_image","EngagementAnswer","EngagementAnswers","engagementStats","stat","eStat","question_content","ContactInfoWrapper","NoShareBanner","FeedbackAnswersParent","answers","setAnswers","statSize","statSliceIndex","statSet1","statSet2","fetchAnswers","submission","submission_id","public_share","answer_value","SvgChatBubble","_circle","_circle2","_circle3","SvgTestimonialPersonPlaceholder","cy","r","maskType","maskUnits","mask","SvgQuoteOpenSingle","DoubleQuotesContainer","close","QuotationMarks","addAlpha","hexColor","round","toString","showFavouriteButton","oddRow","FavButtonContainer","FavButtonWrapper","favourited","FavButton","FeedbackActions","DropDownButton","TestimonialContainer","TestimonialContentContainer","TestimonialText","hyphens","wordBreak","publicShare","disabledText","NameOrgContainer","FeedbackName","ImprovementIcon","ChatBubble","EventReportLink","Testimonial","feedbackType","canShareReport","canUseFeedbackActions","canFavourite","handleViewTestimonialData","handleDownloadTestimonial","handleToggleFavourite","favLoading","showNameAndOrgSection","speakerShortlink","handleOpenDropdown","handleCloseDropdown","handleViewDataClick","handleDownloadClick","favourite","renderFeedbackReportLink","ProfileHeaderSkeleton","ProfileHeaderLeftSkeleton","ProfileMediaCarouselSkeleton","MediaItemSkeleton","ProfileAttributesSkeleton","shadows","ProfileFeedbackListSkeleton","FeedbackGridSkeleton","ProfileBiographySkeleton","ProfileSpeechTopicListSkeleton","HeaderRightSkeleton","FeedbackHeaderContainer","FeedbackItemContainer","FeedbackItemContent","FeedbackItemFooter","BiographyContainer","BiographyContent","SpeechTopicHeaderContainer","SpeechTopicGrid","SpeechTopicCard","SpeechTopicContent","SpeechTopicOutcomesList","AttributeContainer","AttributeRow","HeaderSkeleton","MediaCarouselSkeleton","AttributesSkeleton","FeedbackListSkeleton","BiographySkeleton","SpeechTopicListSkeleton","FeedbackSummarySkeleton","FeedbackItem","MobileImg","FeedbackListHeader","ModalFeedbackList","ViewAllButton","QuestionPublicIcon","isQuestionPublic","ReportCardFeedbackList","subTitle","setReportData","isCustomQuestion","isEventOwner","leftNavOpen","handleOpenSocialShare","customQuestionId","handleToggleVisibility","testimonialContainerRef","feedbackDataOpen","setFeedbackDataOpen","favLoadingId","setFavLoadingId","selectedTestimonial","setSelectedTestimonial","mobileImgSrc","setMobileImgSrc","itemsPerRow","setItemsPerRow","fetchImageAsBase64","blob","onloadend","image_url","calculateItemsPerRow","containerWidth","offsetWidth","floor","itemWidth","transitionDuration","enteringScreen","leavingScreen","timeoutId","topFeedback","handleMobileImageDownload","selector","social_share_download","element_id","answer_id","custom_question_id","taskId","task_id","renderInnerFeedback","spring","stiffness","damping","renderList","singleColumn","rowIndex","layout","showPublicIcon","TotalAttendees","TalkValue","rating","circleChartBlue","TalkReattend","reattendRate","circleChartLightBlue","circleChartLightGrey","TalkEngagement","EventPlannerEngagement","showSection","ReportWrapper","showReattendStats","ReportCardStatImage","showEventPlannerVersion","showEngagementStats","statSet","renderTalkEngagement","ShareButton","ShareEventReportCard","reportCardShortlink","filteredFeedback","handleListKeyDown","handleMailerClick","mailData","handleDownloadReport","handleDownloadTestimonials","gridColumn","CardHeaderLeft","CardHeaderRight","ResponseCountContent","CustomQuestionCard","handleSocialShareDownload","possible_answers","renderQuestionType","colors","primaryBlue","primaryOrange","accentYellow","shades","tags","emojis","orange","yellow","lime","green","brightGreen","xl","full","DonutContainer","ProgressBarsContainer","ProgressBarsColumn","ProgressBarContainer","LabelContainer","StyledLinearProgress","LinearProgress","linearProgressClasses","bar","CustomQuestionMultipleChoice","selectedOptions","percentage","distinctSelectedOptionCount","colorMap","colorStep","shadeIndex","renderProgressBar","Legend","customAverageLabelPlugin","beforeDraw","chart","averagePercentage","customAverageLabel","save","textBaseline","textX","textY","fillText","restore","EmojiIconsContainer","EmojiIconContainer","CustomQuestionEmojiScale","range","emojiRatings","averageRating","averageRatingPercentage","responsive","maintainAspectRatio","circumference","CustomQuestionBoolean","totalAnswers","yesAnswers","noAnswers","yesPercentage","noPercentage","LegendContainer","NpsRatingContainer","NpsRatingIconContainer","NpsRatingIcon","ratingType","CustomQuestionNps","npsRatings","detractors","passives","promoters","npsScore","entries","renderCustomQuestionContent","SocialShareContainer","CustomQuestionSocialShareContent","CustomQuestion","SvgAiIconOutline","SvgThumbsUp16X16","SvgThumbsDown16X16","LikeDislikeButton","IconContainer","LabelText","LikeDislike","ratingState","changeState","labelText","setState","handleRatingChange","prevState","newState","EventSummaryContainer","FeedbackSummaryContainer","HeaderActions","isEnabled","StyledSummary","KeyTakeawaysHeader","KeyTakeaways","FeedbackRatingContainer","FooterTextContainer","FooterText","GenerateButton","regular","FeedbackUpgradeToUseFeature","FeedbackContentLoading","FeedbackContentDoesNotExist","hasEnoughResponses","generateSummary","summaryLoading","FeedbackContentSummary","key_takeaways","keyTakeaway","FeedbackContentError","errorMessage","SUMMARY_DATA_ERROR_STATE","headline","FeedbackSummaryParent","initialSummaryData","isPublic","hasNewResponses","setSummaryLoading","summaryData","setSummaryData","inProgress","complete","notEnoughFeedbackError","summaryExists","pollUntilSummaryGenerated","latestSummaryData","event_report_card_summary","report_card_summary","handleRateSummary","handleGenerateSummary","SvgDocumentReportIcon20X20","ContainerInner","StyledBody","CustomQuestionUpsell","ReportCardContainer","SpeakerHeaderContainer","CustomQuestionContainer","gridAutoFlow","FreeFlowCustomQuestionContainer","HorizontalLine","initialReportDataState","improvement","takeaways","hideNameAndOrgSection","access","isEventSpeaker","canShare","initialConfirmProps","DataSummaryContainer","EventReportCardParent","useParams","customQuestionsLoading","setCustomQuestionsLoading","customQuestions","setCustomQuestions","showCustomContentUpsell","setShowCustomContentUpsell","socialShareOpen","setSocialShareOpen","socialShareContent","setSocialShareContent","confirmDialogOpen","setConfirmDialogOpen","confirmProps","setConfirmProps","loadReportCardData","sharelink","event_report","loadCustomAnswers","showUpsell","_handleToggleQuestionVisibility","handleToggleSummaryVisibility","filterFeedback","nonFreeFlowCustomQuestions","freeFlowCustomQuestions","filterCustomQuestions","handleToggleQuestionVisibility","offerCodeElement","offerCode","warning","Helmet","aiSummaryVisible","hasEnoughResponsesForAISummary","hasNewResponsesNotAISummarized","fullwidth","SocialShareImageParent","answerId","fetchData","reportRes","customRes","customAnswer","PasswordResetRequest","setSuccess","submitPasswordRequest","PasswordResetForm","passwordResetToken","handleResetPassword","AdminSearchInputContainer","AdminSearchInputBar","Input","LinearProgressContainer","makeSearch","debouncedMakeSearch","debounce","AdminSearchBar","setSearchTerm","DeleteUserParent","handleDeleteUser","membership_plan","leadCount","eventCount","codeCount","columnGap","PlanContainer","ImpersonateUserAction","AdminParent","columns","field","headerName","sortable","headerAlign","renderCell","row","DataGrid","localeText","noRowsLabel","pageSize","componentsProps","csvOptions","disableToolbarButton","LIGHT_RED","MainContainer","NotificationCell","processable","halt_process","AdminChapterUploadParent","parsedCsvDetails","setParsedCsvDetails","setFile","handleFileChange","handleUpload","handleUpdateChapters","confirm","data_to_process","renderUserDetails","block_processing","users_to_create","renderChapterDetails","primary_email","row_info","row_number","msg","AdminAssociatesParent","getAssociates","owner_email","associate_email","initialEventGroupState","inPerson","virtual","thankYouMessage","thankYouButtonText","ActionButton","OptionalSettingsContainer","h6","FormDialogActions","EventGroupFormFields","eventGroup","setEventGroup","LocalizationProvider","dateAdapter","AdapterDateFns","stopPropagation","DesktopDatePicker","inputFormat","RadioGroup","Radio","CreateEventGroupButton","setEventGroups","eventGroups","event_group","start_date","end_date","in_person","thank_you_message","thank_you_button_text","EditEventGroupButton","editableEventGroup","setEditableEventGroup","handleEditEventGroup","eg","BoldBlue","EventActivationSwitch","mainShortlink","alertOpen","setAlertOpen","handleAssignShortlink","handleUnassignShortlink","toggleEventGroupShortlink","EventGroupListContainer","HoverRow","EventGroupListTableTabContainer","TabHeader","EventGroupList","getEventGroups","ShareCell","goToEventGroup","HEADER_CELLS","numeric","eventGroupId","renderHeaderCellContent","renderEventGroupShortlink","sessions","QRCode","require","EventPlannerDashboard","fullSpeakerLink","REACT_APP_SHORTLINK","qrDownloadRef","createRef","DownloadableQrCode","SpeakerShortlink","SpeakerLinkActions","variation","editAttribute","EditEventButton","NewEventButton","EventButton","handleOpenEventForm","ScheduleUploader","setEvents","Papa","parse","skipEmptyLines","results","createSchedule","event_group_schedule","event_group_id","schedule","hidden","renderCurrency","toLocaleString","minimumFractionDigits","renderPercentage","EditEventIcon","existingEvent","EventLeadsDownloadMenuItem","isDownloading","setIsDownloading","downloadEventLeads","EventRawDataDownloadMenuItem","downloadEventData","EventSpeakerflowSyncMenuItem","isSyncing","setIsSyncing","syncLeadsWithSpeakerflow","SpeakersListAvatar","EventCodeCell","SpeakerTableRow","eventMergable","isPrimeEvent","EventListRow","selectEvent","deselectEvent","mergeEvents","handleShareEvent","mergableEvents","primeEvent","ownerId","eventReportShortlink","handleMergeEvents","handleMergeEventsClick","mergeContent","renderEditableCell","attributeName","goToEventReport","allowEditDetails","_handleSelectEvent","renderSpeakerList","List","renderSpeakerListItem","renderEventType","et","getChipColor","ListItem","full_name","startTime","colspan","reattend","audienceSize","responses","eventCode","lockedOfferCode","renderGroupGuestSpeakerRow","eventOrganization","compensation","renderStandardRow","UploadActionsContainer","GroupShareDialog","DialogContentContainer","ShareGroupsContainer","ShareGroupRow","StyledH4","StyledH5","MobileEventButtonWrapper","EventListParent","events","eventsLoading","shareDialogOpen","setShareDialogOpen","shareEvent","setShareEvent","availableGroups","setAvailableGroups","availableGroupsLoading","setAvailableGroupsLoading","filteredGroups","setFilteredGroups","selectedGroups","setSelectedGroups","shareGroups","setShareGroups","shareGroupsLoading","setShareGroupsLoading","shareGroup","eventToSelect","createSortHandler","localeCompare","handleSortDate","eventPlannerHeaderCells","fetchShareGroups","fetchGroups","handleSaveShareGroups","event_permission","group_ids","handleRemoveShareGroup","visuallyHidden","eventDummyData","multiple","_event","getOptionLabel","EventBulkActions","EventsParent","setDeleteEvent","event_merges","event_ids","prime_event_id","enoughResponses","shouldShowEvent","isSystemGenerated","validMetaData","isFutureEvent","renderPageHeader","EventGroupReport","loadReportData","SurveyOfferSelect","setEvent","offerCodes","setOfferCodes","fetchOfferCodes","displayEmpty","SvgCameraReelIcon16X16","selectedMode","hover","SelectedItemContainer","StyledSpeechTopicTitleListItem","EmptyOption","StyledLink","SpeechTopicPickerContainer","SelectedItemContent","StyledFormControl","EventSpeechTopicParent","initialSpeechTopicId","speechTopic","speechTopics","setSpeechTopics","chosenSpeechTopic","setChosenSpeechTopic","fetchSpeechTopics","useImperativeHandle","getChosenSpeechTopic","selectedTopic","renderSelectedItem","AddSpeakerText","SpeakerClickableIcon","DisabledSpeakerIcon","SpeakerListItem","StyledListItemAvatar","ListItemAvatar","initialNewSpeakerState","avatarUrl","setSpeakerList","endpoint","finalParamsFunc","event_speaker","EventSpeakersParent","updateEventSpeakers","speakerList","selectedSpeaker","setSelectedSpeaker","isDeleting","setIsDeleting","newSpeaker","setNewSpeaker","speakerLoading","setSpeakerLoading","newSpeakerError","setNewSpeakerError","newSpeakerEmailError","setNewSpeakerEmailError","removeSpeaker","setRemoveSpeaker","apiList","finalParams","handleOnInputChange","handleCreateNewSpeaker","AddSpeakerButton","speaker_id","handleSubmitNewSpeaker","confirmRemoveSpeaker","handleAddSpeakerToEvent","loadingText","inputValue","blurOnSelect","noOptionsText","onInputChange","filterOptions","isAddNewButton","renderOption","isClaimed","handleEditSpeaker","profile_url","handleRemoveSpeakerFromEvent","SettingsAccordion","Accordion","EventFormParent","eventInitialState","eventSpeechTopicRef","SESSION_TYPES","talk_title","event_organization","utc_offset","time_zone","audience_size","event_type","event_code","signature_talk_id","_createEvent","_editEvent","talkTitleCharactersRemaining","orgCharactersRemaining","eventNameCharactersRemaining","talkTitleHelperText","orgNameHelperText","eventNameHelperText","sessionType","maxLength","renderEventPlannerForm","stepNumbers","eventSpeakers","lockCode","lastIndexOf","AccordionSummary","expandIcon","AccordionDetails","renderSpeakerForm","initialEventState","EventGroupParent","eventFormOpen","setEventFormOpen","fetchEvents","handleCloseEventForm","clickedEvent","SocialsWrapper","SocialLink","ProfileSpeakerInfo","hasSomeSocialLinks","normalizedUrl","socialData","handle","linkText","makeSocialLink","ProfileEventListHeader","SvgLockIcon16X16","ProfileEventListRow","TableWrapper","EventListCriteria","ProfileEventList","authUser","showEventsCriteria","setShowEventsCriteria","sortedEvents","setSortedEvents","public_profile","SvgCaretLeft24X24","SvgCaretRight24X24","CustomPagination","Pagination","PaginationCompact","renderItem","PaginationItem","slots","previous","CaretLeft","next","CaretRight","ListHeader","HeaderLeftContainer","ListContainer","ProfileFeedbackList","authenticated","setFeedback","visibleFeedback","setVisibleFeedback","fetchFeedback","feedbackItem","UnderLine","ProfileSectionHeader","BiographySectionContainer","BiographyWrapper","PlaceHolderContainer","PlaceHolderHeader","BiographyTextWrapper","overflowY","IconWrapper","ProfileBiography","biography","setBiography","isProfileOwner","handleClickAway","handleTextClick","charactersRemaining","renderBiographyText","multiline","minRows","maxRows","ProfileAlert","ProfileSettingsAlert","SvgShareIcon16X16","ProfileHeaderContainer","ProfileHeaderLeft","ProfileHeaderRight","ProfileActions","ProfileActionButton","ProfileHeader","isMobileScreen","shareMenuOpen","HorizontalCard","VideoSectionWrapper","ContentSection","StyledCardContent","VideoNavigationContainer","VideoIndicatorsContainer","VideoIndicator","PaginationButton","VideoPagination","signatureTalkMedia","currentVideoIndex","setCurrentVideoIndex","prevIndex","handleVideoIndicatorClick","PlaceholderContainer","PlaceholderTextContent","StyledPlayIcon","PlayCircleFilledIcon","between","VideoSection","isComplete","VideoContent","MuxVideoTile","video","placeholderContent","shouldShowPlaceholder","VIDEO_STATES","COMPLETE","playbackId","setVideoThumbnail","FAILED","PROCESSING","UPLOADING","speechTopicId","currentVideo","caption","makePlaceholderContent","SvgGreyCheckmarkBulletIcon","addMediaToSignatureTalk","mediaUploadObjs","mediaUploadsNotAddedToSignatureTalk","mediaUploadObj","signatureTalkMediaUploadId","mediaUplodadsIds","signature_talk","signature_talk_media_uploads","sortSignatureTalkMediaByState","statusPriority","statusComparison","OutcomesList","OutcomesListItem","SpeechTopicTitle","SpeechTopicDescription","SpeechTopicFullPreview","validMedia","media","DOMPurify","sanitize","outcomes","outcome","VerticalCard","OutcomesListItemContent","KeyOutcomesListTitle","SpeechTopicProfileCard","handleDeleteClick","handleEditClick","PlaceholderDescription","PlaceholderActionsContainer","SpeechTopicPlaceholderProfileCard","GridContainer","ProfileSpeechTopicList","visibleTopics","setVisibleTopics","shouldRenderSpeechTopics","SwiperCore","use","Navigation","SlideContent","StyledImage","objectFit","EnlargedImage","ProfileMediaCarousel","selectedImage","setSelectedImage","swiperRef","mediaItems","setMediaItems","fetchMediaItems","update","handleCloseDialog","handleMediaLoad","onSwiper","swiper","navigation","spaceBetween","slidesPerView","observer","observeParents","imageUrl","onLoad","onReady","SvgCloseIcon16X16","borderBottomWidth","InputUnderline","handleValidate","handleSave","handleCancel","setInputValue","originalValue","setOriginalValue","handleOnSave","SvgEditIcon116X16","TaglineWrapper","Tagline","PlaceHolder","StyledEditIcon","EditIcon","ProfileTagline","tagline","setTagline","taglineError","setTaglineError","blurTimeoutRef","renderPlaceholder","SummaryContentWrapper","StyledContent","MessageContainer","BigAiSparkles","AiSparkles","DoesNotExistContent","bold","GenerateSummaryButton","OutcomesHeader","Outcomes","FeedbackSummary","feedbackSummary","handleDeleteSummary","NotEnoughFeedback","FeedbackSummaryDoesNotExist","isGenerating","ProfileFeedbackSummary","setSummary","feedbackSummaryMetadata","setFeedbackSummaryMetadata","setIsGenerating","fetchSummary","feedbackSummaryRating","canGenerateSummary","canBeSummarized","hasCompletedFeedbackSummary","startPollingForNewSummary","profileSummary","resp","pollingResp","ResponsesSvg","ValuableSvg","ReattendSvg","LocationSvg","CardContentContainer","CardFooter","typeConfig","logo","valuable","profileWidget","lightBlue","teal","ProfileStatCard","StatWrapper","ResponseCount","ResponsesStatContent","StatPercentage","CircleChartWrapper","ValuableStatContent","ReattendStatContent","InPersonPercentageWrapper","VirtualPercentageWrapper","LocationStatContent","locationBreakdown","totalEvents","inPersonRate","virtualRate","ProfileStatCardsWrapper","INITIAL_STATS_STATE","PublicProfileStatisticsParent","statsData","setStatsData","fetchStats","locationData","AttributesContainer","AttributeWrapper","AttributeLabel","AttributeProgressBar","colorPrimary","ProfileAttributes","scoreA","answer_count","PublicProfileEngagementAttributes","setEngagementBreakdown","fetchEngagementBreakdown","ProfileContainer","INITIAL_SPEAKER_STATE","PublicProfileParent","setSpeaker","authorized","setAuthorized","setProfileSettings","isLoadingSettings","setIsLoadingSettings","isLoadingSpeaker","setIsLoadingSpeaker","fetchSpeaker","loadProfileSettings","unauthenticated","renderMetaTags","renderProfileSettingsHeader","visibilityText","actionText","DialogContentText","PaymentFormContainer","CardNameInput","CardInfoInput","PaymentButton","BillingDataRow","BillingDataColumn","toggleShowCreditCardForm","user_payment_method","SubscriptionSourceParent","showCreditCardForm","canceledAtPeriodEnd","setCanceledAtPeriodEnd","showPaymentInfo","fetchSubscriptionStatus","errorText","renderBillingError","countries","getNames","flag","prioritizedCountryCodes","sortedCountries","indexA","indexB","CountrySelect","customStyles","provided","isFocused","singleValue","formatOptionLabel","country","menuPlacement","menuPosition","selectedOption","FormInputsContainer","FormFieldWrapper","MultiInputContainer","fieldset","TermsLink","setCountry","postalCode","setPostalCode","cardElement","CardNumberElement","address","postal_code","membership_plan_token","rebate_coupon","stripeElementOptions","PlanDetailsContainer","FeatureBulletsContainer","rowGap","PlanPriceSummary","borderTop","ProRateFootnote","ProRatedTooltip","classes","ProRatedIcon","PlanDetails","belowLargeScreen","midIndex","firstColumn","secondColumn","splitFeatureBullets","bullets","bullet","monthlyPrice","proratedPriceAdjusted","proratedPrice","showProRatedTooltip","billingFrequency","UpgradeContainerPlans","UpgradeContainerCheckout","FlexContainer","CheckoutFormContainer","FormHeader","UpgradeParent","plansLoading","setPlansLoading","plans","setPlans","setUpgradingPaidPlan","setCurrentPlan","getUpgrades","availablePlans","upgradingWhileSubscribed","handleSubmitUpgrade","BillingParent","InvitationLink","EmailChip","InvitationActionContainer","GroupInviteParent","setPendingMembers","setGroupMembers","setParentComponentLoading","copied","setCopied","setErrorText","invitationLink","handleSendInvitations","validatedEmails","invitations","members","UserAvatar","ClickableText","IoPencilOutline","PendingInvitationListItem","GroupMembersListItem","currentUser","handleRemoveUserClick","handleUpdateUserMembership","editingRole","setEditingRole","setRole","selectOpen","setSelectOpen","secondaryAction","setting","ManageGroupMembershipsParent","groupMembers","pendingMembers","handleRemoveFromGroup","group_membership","groupMember","fetchMembers","fetchPendingInvitations","member","GroupsListRow","handleViewGroup","handleEditGroup","handleDeleteGroup","handleLeaveGroup","handleGroupSettings","manageMembersOpen","setManageMembersOpen","renderMenuItems","GroupsList","groupsLoading","setGroup","setSettingsOpen","handleLeaveGroupClick","handleDeleteGroupClick","handleOpenGroupSettings","GroupsContainer","retain_report_access","ChapterGroupsParent","handleApiRequest","g","handleGroupSubmit","GroupsTabPanel","ResponseStatContainer","SessionsCount","StatText","SessionsStatContent","GroupTableRow","GroupTableCell","speakerCell","GroupUsersRow","handleViewUser","avgRating","events_aggregate","GroupContainer","GroupTable","GroupTableHeader","GroupTableBody","GroupUsersTable","groupUsers","groupUsersLoading","GroupEventsRow","groupSpeakers","eventUserShortlink","reportShortlink","GroupEventsTable","groupEvents","groupEventsLoading","GroupHeader","GroupTabs","GroupMembersParent","setGroupUsers","setGroupUsersLoading","setGroupEvents","setGroupEventsLoading","setTab","fetchGroupUsers","fetchGroupEvents","a11yProps","group_events_aggregate","indicatorColor","initialCodesState","initialOfferState","fileKey","downloadUrl","emojiKeywords","disableLeadgen","initialGroupOfferState","SpeakerAvatar","SurveyLink","CodeHeader","SpeakerSlide","surveyLink","missingAvatar","avatarSize","mini","placeholderCode","onboardingPlaceholder","codeToDisplay","SurveyOfferSlide","slideRef","activeSelection","shortLink","slideType","OfferRow","topRow","SurveyOfferListItem","handleEdit","lockedEvent","QuestionIcon","offerUrl","disableBookingFlow","copyText","SurveyOffersSlide","SurveyOffersList","findLockedEvent","OffersWrapper","OffersHeader","NewOfferButton","SurveyOffersParent","handleOpenCreateOfferForm","deleteOfferId","setDeleteOfferId","SurveyOffersHeader","deleteOfferCode","SurveyLinkSummary","surveyLoading","EmojiKeywordChipWrapper","EmojiKeywordChip","EmojiChipContent","EmojiKeywordSelect","currentEmojiKeyword","offerEmojiKeywords","defaultEmojiKeywords","setOfferEmojiKeywords","setPendingSubmission","availableEmojiKeywords","setAvailableEmojiKeywords","availableKeywords","keyword","offerKeyword","emoji_template_identifier","handleSelectKeyword","newEmojiKeyword","oldKeyword","newKeyword","emojiKeyword","NavBanner","NavBannerLink","Heading","Subheading","FormButtonsContainer","PaddedSection","InnerFormContainer","OfferUploadFieldset","DeleteFileIcon","UpgradeText","EmojiKeywordChipContainer","EmojiKeywordChipRow","EmojiKeywordRowText","FormSectionDescription","PreviewSectionWrapper","gridGap","PreviewDescriptionWrapper","FormSectionDescriptionParagraph","FormSectionDescriptionLink","FormSectionSubheading","FormSectionInputWrapper","StyledRadio","DescriptionInputContainer","TextButton","PopoverContent","PopoverHeader","CopyLinkContainer","CopyLinkText","RegularText","SurveyOffersForm","setOffer","setVideoId","setVideoModalOpen","setSurveyOffersFormModalSize","setSurveyOffersFormModalFullWidth","isOnboarding","advanceLastStep","setCode","isCustomQuestionPublic","LEADGEN_OPTIONS","setOfferCode","offerName","setOfferName","offerLink","setOfferLink","leadgenOption","setLeadgenOption","offerCustomQuestion","setOfferCustomQuestion","offerIsCustomQuestionPublic","setOfferIsCustomQuestionPublic","offerFile","setOfferFile","codeError","setCodeError","nameError","setNameError","linkError","setLinkError","setCharactersRemaining","showSlide","setShowSlide","formStep","setFormStep","pendingSubmission","showDisableBookingFlowAlert","setShowDisableBookingFlowAlert","showDisableLeadgenAlert","setShowDisableLeadgenAlert","codeEditDialogOpen","setCodeEditDialogOpen","defaultEmojiKeywordsForOffer","CODEREGEX","ACCEPTED_FILE_TYPES","hasAccessCustomQuestion","invalidFileType","advanceFormStep","createOrEditSurveyOffer","saveFileInS3AndCreateOffer","presign_url","handleCreateError","storageKey","createOffer","editOffer","survey_offer","file_key","custom_question","is_answer_public","disable_leadgen","disable_booking_flow","emoji_keywords","handleEditSuccess","createSurveyOffer","handleCreateSuccess","trackFirstOfferCreated","codePermission","handleBackClick","showDownloadSlide","submitButtonDisabled","SurveyOfferActions","handleCtaClick","handleLeadPopoverClick","handleLeadsPopoverClose","handleDeleteFile","setFieldError","leadsPopoverOpen","navLinks","renderBasicSettings","handleUpdateLeadgenOptions","Popover","handleCodeChange","renderAdvancedSettings","defaultKeyword","handleUpdateCustomQuestionVisibility","renderForm","GroupEventSettings","updateGroups","updateAvatar","group_metadatum","DashboardContainer","VideoDialogContent","GuestSpeakerDashboard","setEventsLoading","setSurveyLink","setSurveyLoading","surveyOfferOpen","setSurveyOfferOpen","setShortlink","setDefaultEmojiKeywords","videoModalOpen","surveyOffersFormModalSize","surveyOffersFormModalFullWidth","getDefaultEmojiKeywords","updatedAttribute","updateShortlink","groupEventParams","YouTube","playerVars","GuestSpeakerEventTable","GroupParent","viewOnly","renderChildComponent","StyledSwitch","enabledText","SwitchWithLabel","focusVisibleClassName","AcceptanceContainer","InnerAcceptanceContainer","AcceptanceSettingsContainer","AcceptanceButton","GroupInvitationAcceptancePArent","groupLoading","setGroupLoading","acceptanceLoading","setAcceptanceLoading","autoAddEvents","toggleAutoAddEvents","setErrorMessage","fetchGroupFromToken","handleJoinGroup","auto_add_events","already_group_member","SvgZapierIcon","SvgCircleIcon","AuthenticationContainer","LogosContainer","ClientIconWrapper","DividerContainer","AccessDetailsContainer","AccessDescription","AccessHeader","AccessListItem","IoCheckmarkCircle","InvalidClientContainer","OAuthProviderAuthenticationForm","codeLoading","setCodeLoading","client_id","redirect_uri","allowedClients","REACT_APP_ZAPIER_CLIENT_ID","REACT_APP_CIRCLE_CLIENT_ID","clientName","renderClientIcon","renderAccessDetails","OAuthProviderAuthenticationParent","MessageDivider","FullHeightCenteringGrid","Grid","UnsubscribeParent","unsubscribed","setUnsubscribed","resubscribed","setResubscribed","talkInfo","setTalkInfo","invalidRequest","setInvalidRequest","isNewRecord","resubscribe","container","Link","renderResubscribeContent","BonusGiftParent","AuthDocumentation","StyledPaper","StyledHeading","paragraph","StyledSubheading","StyledCodeBlock","WebhooksDocumentation","Main","sharp","easeOut","AppBar","MuiAppBar","ApiDocumentationParent","CssBaseline","Toolbar","Drawer","boxSizing","anchor","disablePadding","ListItemButton","renderMarkdown","SvgPlusIcon","SvgSmileIcon36X36","SvgMicroPhoneIcon36X36","SvgCreditCardIcon36X36","SvgAwardIcon36X36","TalksTableHeader","SvgFilterIcon16X16","SvgChatBubbleSquareIcon16X16","SvgMergeIcon16X16","SvgRefreshIcon16X16","TalksTableRowSpeaker","handleSelectEvent","handleCellClick","eventCodeToDisplay","renderCellContent","editButtonText","unviewedSubmissionCount","DateCell","TalksTableRowGroup","animationState","table","hoverRow","MergePrimeEventText","TalksTableRow","handleDeleteEvent","handleMarkEventAsViewed","downloadingLeads","setDownloadingLeads","downloadingTestimonials","setDownloadingTestimonials","syncingLeads","setSyncingLeads","appendChild","removeChild","handleDownloadEventLeads","handleDownloadEventTestimonials","handleSpeakerflowSync","selectedRowText","variants","primarySelected","selectedRowPrimary","secondarySelected","selectedRowSecondary","unselected","animate","CodesNoticeContainer","CreateCodeAlert","TalksTableRowSpeakerPlaceholder","TalksTablePlaceHolder","TalksTable","isSmallScreen","TalksParent","filteredEvents","isOwner","totalTalks","revenueThisYear","startOf","revenueAllTime","new_submissions","eventToDelete","handleConfirmMergeEvents","SvgArrowRight","withAdornment","SecondaryContainer","FormContainerInner","HeaderSubtext","NavActionContainer","NavActionButton","darkMode","FormContentContainer","CharacterCounter","isError","Caption","HeaderActionButtonsContainer","HeaderActionButton","FieldCaption","FormSectionTitle","FullFormSection","HeaderSubtextContainer","headerSubtext","LoadingContainer","LoadingOverlay","modal","LoadingContent","MAX_PROMPT_CHARACTERS","SpeechTopicPromptParent","setSpeechTopic","setGenericError","promptContent","setPromptContent","promptError","setPromptError","submitPrompt","prompt","OutcomesContainer","OutcomeField","OutcomeFieldContent","AppendLearningOutcomeButton","SpeechTopicOutcomesForm","updateSpeechTopicAttribute","setErrors","validateOutcomes","inputRefs","isAddingNewOutcome","prev","handleAddOutcome","handleOutcomeChange","handleKeyDown","el","newOutcomes","handleRemoveOutcome","CHARACTER_LIMITS","validateSpeechTopic","errorUpdate","getTitleError","getDescriptionError","getOutcomesError","demographics","getDemographicError","validErrors","validateDemographics","demographicErrors","outcomesError","validateDescription","descriptionError","validateMaxLength","validateExists","validateArrayUniqueness","validateRichHtmlExists","validateRichHtmlLength","outcomeErrors","validateOutcome","allOutcomes","currentIndex","normalizedCurrentOutcome","duplicateIndex","findIndex","otherOutcome","getRichTextLength","html","DOMParser","parseFromString","textContent","array","Set","errorObject","hasError","QuillCharacterCounter","QuillErrorContainer","QuillError","QuillContainer","body1","SpeechTopicDescriptionForm","setIsFocused","SvgFileIcon16X16","SvgMediaCloseIcon","SvgCloudUploadIcon","SvgFolderIcon16X16","FileInfoContainer","FileInfoContainerInner","FileName","UploadPercent","UploadDetails","FileCta","DropzoneWrapper","DropzoneContainer","isDragActive","UploadButton","DropzoneText","ErrorText","FileInfoRow","parseFileRejectionError","errorCode","renderFileRejectionErrors","fileRejection","humanizeFileRejectionError","UploadFile","fileSize","uploading","uploadProgress","handleUploadCancel","handleUploadDelete","displayIcon","UploadMediaDropzone","acceptedMimeTypes","maxNumberOfFiles","maxFileSize","isUploading","handleFileUpload","dropzoneHelperContent","hasUploadedFiles","handleOnDrop","acceptedFiles","renderPrimaryDropzoneContent","renderSecondaryDropzoneContent","renderDropzone","getRootProps","getInputProps","fileRejections","onDrop","maxFiles","SvgCameraReelIcon","TileWrapper","TileInfoContainer","TileInfoTitle","SpeechTopicFormVideoTile","mediaId","menuState","setMenuState","showDeleteDialog","setShowDeleteDialog","mediaToDelete","setMediaToDelete","handleCancelDelete","handleRemoveMedia","m","MULTIPART_CHUNK_SIZE","uploadToS3","setUploading","setCancelTokenSource","onUploadProgress","cancelToken","axios","CancelToken","progressEvent","percentCompleted","loaded","cancelUpload","cancelTokenSource","cancel","presignVideoUploadUrl","video_upload_presign_url","presignSpeakerMediaUploadUrl","media_upload_presign_url","video_upload_multipart","file_size","chunk_size","urls","uploadId","upload_id","uploadPart","partNumber","onProgress","video_upload_complete","uploadToS3WithMultipart","parts","totalChunks","uploadQueue","partProgress","Map","lastReportedProgress","lastProgressUpdate","now","calculateTotalProgress","rawProgress","smoothProgress","abs","uploadPartTask","chunk","urlData","set","partData","processQueue","race","uploadPromise","finally","delete","allSettled","isCancel","VideoUploadContainer","UploadFilesContainer","videoMimeTypes","TalkVideoUploader","onUploadComplete","onUploadDelete","setIsVideoUploading","isVideoUploading","setFiles","showExceededLimitNotification","setShowExceededLimitNotification","uploadFiles","showIcon","fileBeingCancelled","prevFiles","fileBeingDeleted","newFiles","renderExistingVideoFiles","totalExistingFiles","uploadPromises","fileObj","chunkSize","f","SpeechTopicVideoUploadParent","getFiles","handleUploadComplete","signature_talk_media_upload","media_type","currentFileRef","SpeechTopicTogglePrivateButton","SuggestionAutoCompleteInputContainer","DemographicsContainer","DEMOGRAPHICS","TalkAutocomplete","handleChangeSuccess","PopperComponent","updatedArray","processedValues","freeSolo","renderTags","getTagProps","tagProps","char","INITIAL_SPEECH_TOPIC_STATE","INITIAL_ERROR_STATE","GenericErrorContainer","PromptButton","SpeechTopicForm","isSaving","setIsSaving","genericError","videoUploaderRef","isEditMode","fetchSignatureTalk","behavior","mediaUploads","fileInfo","addMediaRes","handleTogglePrivate","newVal","hasValidOutcome","enoughDataForPreview","renderTitle","titleError","validateTitle","renderMainForm","SpeechTopicParent","SvgCodesIcon16X16","SvgSunRiseIcon36X36","CodesTableHeader","SvgQrCodeIcon16X16","SvgBonusIcon16X16","SvgWrenchIcon16X16","SvgCustomSettingsIcon16X16","SvgDocumentDuplicateIcon20X20","CodeTypography","SettingsIconsContainer","SettingsIconWrapper","StyledDuplicateIcon","DuplicateIcon","CodesTableRow","handleDuplicate","canDuplicate","handleOpenSlideDownload","handleDownloadQrCode","codeUrl","openOffer","handleCopyCodeLink","renderNoBonusIcon","selectedBonusType","disableContactCollection","renderSettingsIcons","CodesTable","smallScreen","userCreatedOffers","CodesParent","mostUsedCode","setMostUsedCode","slideDownloadOpen","setSlideDownloadOpen","qrDownloadOpen","setQrDownloadOpen","fetchCodes","validateOffer","handleCloseSlideDownload","handleCloseQrDownload","codesConsumed","val","CodeBuilderSettingsTitle","InputDescription","svgFillType","HintContainer","InputHint","CodeBuilderInputWrapper","inputDescription","renderInputDescription","fillType","disableLeftPadding","CodeBuilderInputText","inputValidation","editConfig","questionEnabled","handleOnChange","handleOnBlur","prefix","identifier","isDisabled","setIsDisabled","activeElement","setSelectionRange","validationError","sendBlurEvent","allowSubmit","allowContinue","CodeBuilderInputIcon","SvgFileTextIcon16X16","CodeBuilderSettingsCode","surveyOffer","setDescription","surveyOfferLoading","setDescriptionError","handleUpdateCode","FileIconContainer","FileNameContainer","CodeBuilderUploadFile","CodeBuilderFileUploader","acceptedFile","SvgRadioUncheckedIcon","SvgRadioCheckedIcon","RadioButton","CodeBuilderSettingsBonus","setAcceptedFile","setUploadProgress","offerLinkError","setOfferLinkError","bonusType","setBonusType","presignedRes","handleChangeBonusType","selected_bonus_type","isURL","require_host","CodeBuilderSettingsBookingLink","bookingLinkError","setBookingLinkError","bookingLinkLoading","setBookingLinkLoading","isOnPaidPlan","handleBookingLinkBlur","StyledPrefix","socialMediaTypes","CodeBuilderSettingsSocialLinks","socialLinkErrors","setSocialLinkErrors","socialLinkLoading","setSocialLinkLoading","handleSocialLinkBlur","getPrefix","renderPrefix","textInputValidation","handleSocialLinkChange","prevErrors","SpeakerslideContainer","ScaleWrapper","CodeBuilderSettingsDownloadSlide","setScale","CodeBuilderInputSelect","parsedEmojiContent","onFocusCapture","CodeBuilderSettingsQuestion","setCurrentQuestion","defaultKeywordOptions","setDefaultKeywordOptions","keywordsLoading","setKeywordsLoading","fetchKeywordOptions","lowerCasedKeywords","isTalkadotQuestion","anyLinkedAnswers","handleTextInputOnChange","stripEmojiTags","canEditContent","editContentTier","availableKeywordOptions","editViaDropdownTier","replacement_value","handleSelectInputOnChange","parseEmojiKeywords","ContentContainer","ToggleWrapper","CodeBuilderPossibleAnswer","possibleAnswer","handleDeletePossibleAnswer","newContent","setNewContent","canToggleRequired","builderDescription","toggleRequiredTier","allowDelete","possibleAnswers","handleTogglePossibleAnswerSetting","answerType","displayOrder","pa","handleUpdatePossibleAnswerContent","inputRequired","input_required","Row","StyledLabel","StyledWarning","CodeBuilderOver18PossibleAnswer","handleToggleOver18","QuestionContainer","QuestionContainerInner","QuestionDisabledOverlay","AdditionalQuestionConfigOptionsContainer","QuestionNumber","QuestionSettingsContainer","AppendPossibleAnswerButton","PossibleAnswerSettingsContainer","CodeBuilderQuestion","questionNumber","handleCreatePossibleAnswer","renderQuestionSettings","filteredPossibleAnswers","hiddenFromBuilder","canAppendPossibleAnswers","renderPossibleAnswerSettings","canToggleIsPublic","isAnswerPublic","renderAdditionalQuestionConfigOptions","NavContainer","singleButton","NavButton","SkipButton","RightButtonsWrapper","showBackButton","showBuilderSkipButton","CodeBuilderNavigation","nextButtonContent","skipButtonContent","handleBack","handleNext","handleSkip","SvgBurgerIcon16X16","QuestionItemContainer","isGroupChild","DragHandleContainer","isDragging","StyledDragIcon","DragIcon","DragHandlePlaceholder","StyledCustomizedIcon","CustomSettingsIcon","BonusIconWrapper","isMissingValue","CustomIconWrapper","rect","line","NoDropOverlay","CodeBuilderPreviewQuestionItem","movable","setCurrentQuestionId","isDropAllowed","useSortable","attributes","listeners","setNodeRef","over","showNoDropOverlay","CSS","Transform","hasBeenCustomized","previewName","renderPreviewContent","renderIconByType","disabledIcon","tooltipContent","missingValue","renderSecondaryBonusIcons","renderSecondaryCustomQuestionIcons","renderSecondaryIcons","OVER18_DEFAULTS","inputDisabled","NAME","CHECKBOX","OVER_18","PreviewPaneContainer","PreviewPaneOverlay","previewOverlayHeight","DisabledIcon","EyeOffIcon","ScaledSurveyContainer","CodeBuilderPreviewPane","currentQuestion","bonusUrl","setPreviewOverlayHeight","previewPaneRef","contentRef","heightScale","headerHeight","contentHeight","previewContentHeight","debouncedResize","membershipPlanTier","isBookingFlowQuestion","templateIdentifier","isSurveyQuestion","isInteger","over18EnabledForCurrentQuestion","renderAnswers","sortedPossibleAnswers","over18Defaults","subContent","fieldValue","renderErrorMessage","renderAnswer","shouldShowActions","renderPreviewOverlay","hideOverflow","survey","percentComplete","contentAlign","invalidValue","shouldRenderActions","thankYouText","showBookingLink","showBonusLink","handleBookingLinkClick","handleBonusLinkClick","bonusLinkText","bookingLinkText","showSocialLinks","showOfferError","addExtraBottomPadding","reduceMargins","PreviewContainer","StyledTabs","TabContentContainer","showTopShadow","showBottomShadow","pointerEvents","CodeBuilderPreviewPaneParent","currentQuestionNumber","questions","missingBonus","handleUpdateSurveyQuestionState","surveyQuestions","setShowTopShadow","setShowBottomShadow","setIsDropAllowed","isScrolledPastTop","scrollTop","isScrolledPastBottom","clientHeight","scrollHeight","handleDragEnd","existingSurveyQuestions","newIndex","oldIndex","newQuestions","arrayMove","handleChangeTab","onScroll","onDragEnd","onDragOver","newOrderedQuestionIds","newPreviousQuestion","idx","findNewPreviousQuestion","newNextQuestion","findNewNextQuestion","canQuestionBeInsertedAfter","movedToEndOfSurvey","canQuestionBeInsertedBefore","restrictToParentElement","groupingIdentifier","renderTabContent","CodeBuilderUpgradeNotification","minTierRequirement","canEditViaDropdown","tierRequirements","collectTierRequirements","answerCanEditContent","answerEditContentTier","answerCanToggleEnable","answerToggleEnabledTier","answerCanToggleRequired","answerToggleRequiredTier","gatedTierValues","tier","renderUpgradeLink","upgradeNotificationContent","SvgQuickModeIcon","SvgAdvancedModeIcon","StepsContainer","StepContainer","StepHeader","StepText","StepGraphicContainer","StepGraphic","StyledHelpLink","ModeSelectionContainer","ModeSelectionHeader","ModeSelectionButtonContainer","ButtonContent","ButtonMainText","ButtonSubText","UpgradeNotice","CodeBuilderAddCodeOnboarding","setBuildMode","handleBuildModeOptionSelect","buildMode","buildModes","QUICK","ADVANCED","DisabledNotification","StyledDisabledIcon","AlertText","FirstTimeToggleEnabledNotification","CodeBuilderQuestionDisabledNotification","notificationContent","CodeBuilderContainer","MultiQuestionContainer","LoadingSpinnerContainer","initialQuestionState","codeQuestionState","canDisable","bonusQuestionState","downloadSlideQuestionState","bookingLinkQuestionState","socialLinksQuestionState","CodeBuilderParent","setSurveyOffer","setBonusUrl","setQuestions","setAvailableQuestionTypes","initialQuestionContent","setInitialQuestionContent","initialAnswersContent","setInitialAnswersContent","currentQuestionId","setSurveyOfferLoading","setQuestionLoading","downloadSlideLoading","setDownloadSlideLoading","slideDownloaded","setSlideDownloaded","createCodeSkip","setCreateCodeSkip","uiDisabled","setUiDisabled","uncaughtError","setUncaughtError","customizationPermission","offerBonusUrl","idOverride","chars","random","randomCodeString","fetchAvailableQuestionTypes","foundQuestion","setInitialContent","customQuestionCount","handleRefreshQuestionState","questionResponse","updatedQuestions","updatedQuestion","orderedSurveyQuestionIds","updatedSurveyQuestions","incrementCodeCount","createNewCode","firstQuestionId","newIdx","existingQuestions","ordered_question_ids","setBookingFlowStartUpdateNotification","yesAnswer","nextQuestion","nextQuestionId","dataContainsContent","possible_answer","insertingAfter","findQuestionInsertingAfter","insertion_point","survey_template_id","surveyTemplateId","newQuestionId","confirmDeleteQuestion","downloadSlideCallback","previousQuestion","firstQuestionInGroup","nextQuestionNotInGroup","grouping","surveyQuestionIndex","insertingAsLastQuestion","insertingBefore","showFirstTimeToggleEnabledNotification","renderBuilderContent","PayoutDownloadContainer","CommissionPayoutParent","successfulUpdates","setSuccessfulUpdates","setFailedUpdates","showStatusCell","setShowStatusCell","referral_commission","commissions","failedUpdates","renderUpdatedStatusCell","commission","c","payee_name","payee_email","speaker_name","speaker_email","ReferralUploadParent","referral_backfill_data","Note","SignatureContainer","AdminSignature","DropdownButton","AdminUserNotes","notes","setActiveNote","handleEditNote","handleDeleteNote","deleteNote","note","createdBy","updatedAt","lastEditedBy","MembershipSelect","INITIAL_USER_STATE","referralPayoutSettings","StyledTable","tr","AffiliateActionContainer","CopyAffiliateLinkAction","referrerLink","ShowUserParent","pageLoading","setPageLoading","editReferralOpen","setEditReferralOpen","setUser","newPlan","setNewPlan","setTrialDaysRemaining","membershipStatus","setMembershipStatus","referrerUsers","setReferrerUsers","selectedReferrerUser","setSelectedReferrerUser","setSelectedReferrerOrganization","userNotesLoading","setUserNotesLoading","noteEditorOpen","setNoteEditorOpen","editorValue","setEditorValue","activeNote","resetMembershipChanges","humanReadableLimit","makeSingleRowPlanDetails","internalName","leadsLimit","fetchUser","refUser","handleUpdateMembership","isParentItem","membership_plan_id","trial_days_remaining","createNewNote","user_note","created_by","last_edited_by","updateNote","handleSaveNote","noReferrerSelected","moreThanOneReferrerSelected","referrerUserSelected","referrerOrganizationSelected","organizationReferralList","orgItem","findByPermissionType","codesLimit","teamsLimit","canEditTrialDays","handleDeleteSpeaker","renderLoadingSkeleton","referrerUser","payout_type","defaultValue","internal_name","stripeCustomerId","trialExpiryDate","isOptionEqualToValue","SvgCommunityIcon","SvgExternalLinkIcon16X16","HelpDetailsContainer","ExternalLink","HELP_EMAIL","HelpCenterParent","webinarModalOpen","setWebinarModalOpen","setWebinarType","CONTENT_BLOCKS","contentBlock","StyledMenuIconButton","SpeechTopicListCard","StyledSkeleton","SpeechTopicSkeletonCard","PlaceholderTitle","SpeechTopicPlaceholderCard","handleCreateNewSpeechTopic","MainActions","SpeechTopicList","talkToDelete","setTalkToDelete","st","handleEditSpeechTopic","ImageContentWrapper","DragHandle","MediaKitFormFileTile","setSpeakerMedia","dragHandleProps","renderTileContent","SvgImageIcon36X36","SvgFileIcon36X36","StyledImageIcon","ImageIcon","SortableTileWrapper","mediaKitFileTypes","SortableMediaKitFormFileTile","MediaKitFileUploader","speakerMedia","setIsUploading","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","coordinateGetter","sortableKeyboardCoordinates","newOrder","ordered_speaker_media_ids","renderExistingFiles","collisionDetection","rectIntersection","strategy","rectSortingStrategy","fileToUpload","presigndRes","setUploadingFileStatus","fObj","updateProgress","MediaKitFileUploadParent","media_upload","MediaKitForm","fileUploaderRef","fetchSpeakerMedia","MediaKitParent","UnAuthRoute","rest","isAuthenticated","ProtectedRoute","React","AdminRoute","InvitationRoute","DashboardRoute","Routes","exact","GroupInivtationAcceptanceParent","LinkedInCallback","FullPageLoader","Snackbar","autoHideDuration","renderNotification","SvgChaptersIcon","SvgLogoutIcon","SvgSettingsIcon","SvgUpgradeIconWhite","StyledMenu","UpgradeIconContainer","GroupsBadge","SettingsMenuAvatar","NewSettingsMenu","dropDownOpen","handleDropDownClose","primaryGroup","showPublicProfileLink","keepMounted","newPath","handleSelectGroup","renderPrimaryGroupMenuItem","renderAllGroupsMenuItem","matchPath","pathName","strictMatch","regex","RegExp","SvgTalksIcon","SvgCodesIcon","SvgLeadsIcon","SvgResourcesIcon","SvgGroupEvents","MenuItemIconContainer","alightItems","MultiContentWrapper","BadgeIcon","StyledGiftIcon","GiftIcon","spacer","MenuItemText","SubMenuContainer","SubMenuItem","SubMenuItemIcon","SubMenuItemText","NavItems","closeDrawer","isScrolling","setIsScrolling","touchStartY","handleAutoOpenDrawer","isChapterPage","useIsChapterPage","GROUP_NAV_ITEMS","closeOnClick","SPEAKER_NAV_ITEMS","helperContent","subMenuItems","shouldHide","handleTouchStart","touches","clientY","handleTouchMove","touchCurrentY","handleTouchEnd","handleOnTouch","onTouchStart","onTouchMove","onTouchEnd","onPointerEnter","primaryTypographyProps","j","DrawerHeaderLayout","BurgerMenu","UnAuthContainer","LogoLink","NavButtonWrapper","UpperNavUnAuth","extractShortlinkFromUrl","signupLinkUrl","disableElevation","StopImpersonating","ImpersonationBanner","StyledAppBar","loggedInUser","drawer","StyledToolbar","BurgerMenuButton","StyledBurgerMenuIcon","BurgerMenuIcon","BannerToolbar","LeftNavContainer","RightNavContainer","CaretContainer","nav","ProfileInfoContainer","AvatarNameContainer","NamePlanContainer","NameText","UpperNav","toggleDrawer","handleDropDownOpen","renderAlertBanner","renderNavContent","UpgradeWidgetContainer","ConsumptionContainer","SubTitle","CtaText","ArrowButton","pageTypeToPermissionDict","codes","surveyBuilder","UpgradeWidget","pageType","usePageType","activePermission","widgetType","limitExceeded","ctaType","ctaClickHandler","lastTrialDay","commonData","permissionWidgetData","StyledDrawer","openedMixin","closedMixin","LogoContainer","borderRight","LeftNav","handleAutoCloseDrawer","onPointerLeave","useFrontChat","chatWidgetInitialized","setChatWidgetInitialized","chatId","useDefaultLauncher","userHash","customFields","FrontChat","loadChatWidget","AppContainer","showLeftNav","DrawerToggleButton","App","setLeftNavOpen","autoCloseDrawer","setAutoCloseDrawer","loadAuthenticatedUsersData","fetchWebinarAlertMetadata","show_webinar_notification","shouldShowNavbar","renderMainContentHeader","renderAppLayout","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ScrollToTop","ScrollToHashElement","hash","scrollIntoView","inline","Sentry","dsn","environment","integrations","Integrations","BrowserTracing","tracesSampleRate","augmentColor","createTheme","createColor","paragraph01","components","MuiButton","styleOverrides","root","MuiTableHead","MuiTableSortLabel","MuiTableCell","MuiTableRow","MuiTablePagination","MuiLinearProgress","colorSecondary","colorError","MuiAlert","lighter","chartValuable","chartReattendPYes","chartLocationVirtual","linearProgressGray","svgFill","greyExtraLight","extraBold","display1","display2","h1","h2","h3","h4","subtitle1","body2","paragraph03","conversation","ReactDOM","StrictMode","ThemeProvider","global","util","escape","parseExtension","extension","WOFF","JPEG","woff","woff2","ttf","eot","png","jpg","jpeg","gif","tiff","mimes","dataAsUrl","isDataUrl","canvasToBlob","toBlob","binaryString","atob","binaryArray","Uint8Array","charCodeAt","Blob","resolveUrl","doc","implementation","createHTMLDocument","head","getAndEncode","TIMEOUT","impl","getTime","request","XMLHttpRequest","onreadystatechange","done","ontimeout","responseType","send","imagePlaceholder","readyState","encoder","fail","uid","fourRandomChars","pow","ms","arg","asArray","arrayLike","escapeXhtml","makeImage","uri","onerror","node","leftBorder","px","rightBorder","scrollWidth","topBorder","bottomBorder","exec","styleProperty","getPropertyValue","newUtil","inliner","URL_REGEX","inlineAll","nothingToInline","readUrls","shouldProcess","urlAsRegex","newInliner","fontFaces","resolveAll","readAll","webFonts","webFont","cssStrings","styleSheets","cssRules","sheet","bind","rule","CSSRule","FONT_FACE_RULE","rules","newWebFont","webFontRule","parentStyleSheet","cssText","newFontFaces","images","Element","inlineBackground","HTMLImageElement","newImage","childNodes","child","inlined","setProperty","getPropertyPriority","newImages","defaultOptions","toSvg","draw","toJpeg","toPixelData","copyOptions","cloneNode","embedFonts","inlineImages","XMLSerializer","serializeToString","xhtml","foreignObject","makeSvgDataUri","domNode","ratio","devicePixelRatio","getPixelRatio","canvasWidth","canvasHeight","newCanvas","HTMLCanvasElement","original","cloneChildrenInOrder","parent","childClone","cloneChildren","cloneStyle","clonePseudoElements","copyUserInput","fixSvg","copyStyle","copyProperties","clonePseudoElement","styleElement","formatPseudoElementStyle","formatCssText","formatCssProperties","createTextNode","formatProperty","HTMLTextAreaElement","innerHTML","HTMLInputElement","SVGElement","SVGRectElement","getAttribute","processClone","styleNode","module","exports"],"mappings":"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","file":"static/js/main.9d5f9dcd.chunk.js","sourcesContent":["var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCaretLeftButton(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 35,\n height: 35,\n viewBox: \"0 0 37 37\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.5618 24.2766L14.8018 18.5002L20.5618 12.7239\",\n stroke: \"#D0D5DD\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCaretLeftButton);\nexport default __webpack_public_path__ + \"static/media/caretLeftButton.3bfb3477.svg\";\nexport { ForwardRef as ReactComponent };","const oneMonthLater = () => {\n const d = new Date()\n const thisYear = d.getUTCFullYear()\n const todayDay = d.getUTCDate()\n const nextMonth = d.getUTCMonth() + 1\n return new Date(thisYear, nextMonth, todayDay).toUTCString()\n}\n\nexport const getAuthToken = () => {\n const tokenName = 'auth_token'\n const cookiePairs = document.cookie.split('; ')\n const filteredPairs = cookiePairs.filter(\n (element) => element.indexOf(tokenName) > -1\n )\n\n if (filteredPairs.length > 0) {\n return filteredPairs[0].split('=')[1]\n } else {\n return false\n }\n}\n\nconst getCookieValue = (tokenName) => {\n const cookiePairs = document.cookie.split('; ')\n const filteredPairs = cookiePairs.filter(\n (element) => element.indexOf(tokenName) > -1\n )\n\n if (filteredPairs.length > 0) {\n return filteredPairs[0].split('=')[1]\n }\n}\n\nexport const getGaCookies = () => {\n return {\n ga_id: getCookieValue('_ga'),\n gcl_id: getCookieValue('last_gclid'),\n }\n}\n\nexport const getUtmCookies = () => {\n return {\n utm_source: getCookieValue('last_utm_source'),\n utm_medium: getCookieValue('last_utm_medium'),\n utm_campaign: getCookieValue('last_utm_campaign'),\n }\n}\n\nexport const saveAuthToken = (token) => {\n document.cookie = `auth_token=${token};expires=${oneMonthLater()};path=/;Domain=${\n window.location.hostname.includes('talkadot.com') ? 'talkadot.com' : ''\n };SameSite=None; Secure`\n}\n\nexport const deleteAuthToken = () => {\n const expiryDate = new Date(2000, 1, 1).toUTCString()\n document.cookie = `auth_token=;expires=${expiryDate};path=/;Domain=${\n window.location.hostname.includes('talkadot.com') ? 'talkadot.com' : ''\n };`\n}\n\nexport const saveImpersonationToken = (token) => {\n document.cookie = `impersonation_token=${token};expires=${oneMonthLater()};path=/`\n}\n\nexport const deleteImpersonationToken = () => {\n const expiryDate = new Date(2000, 1, 1).toUTCString()\n document.cookie = `impersonation_token=;expires=${expiryDate};path=/`\n}\n\nexport const getImpersonationToken = () => {\n const tokenName = 'impersonation_token'\n const cookiePairs = document.cookie.split('; ')\n const filteredPairs = cookiePairs.filter(\n (element) => element.indexOf(tokenName) > -1\n )\n\n if (filteredPairs.length > 0) {\n return filteredPairs[0].split('=')[1]\n } else {\n return false\n }\n}\n","export const SET_USER_ATTRIBUTE = 'SET_USER_ATTRIBUTE'\nexport const SET_SOCIAL_MEDIA_LINK = 'SET_SOCIAL_MEDIA_LINK'\nexport const SET_AUTH_DATA = 'SET_AUTH_DATA'\nexport const RESET_AUTH_DATA = 'RESET_AUTH_DATA'\nexport const ADD_INDUSTRY = 'ADD_INDUSTRY'\nexport const REMOVE_INDUSTRY = 'REMOVE_INDUSTRY'\nexport const TOGGLE_TOS = 'TOGGLE_TOS'\nexport const TOGGLE_PRIVACY = 'TOGGLE_PRIVACY'\nexport const SET_SHOW_WEBINAR_ALERT = 'SET_SHOW_WEBINAR_ALERT'\n\nexport const SHOW_FULL_PAGE_LOADER = 'SHOW_FULL_PAGE_LOADER'\nexport const HIDE_FULL_PAGE_LOADER = 'HIDE_FULL_PAGE_LOADER'\nexport const SET_NOTIFICATION = 'SET_NOTIFICATION'\nexport const TOGGLE_UPGRADE_MODAL = 'TOGGLE_UPGRADE_MODAL'\n\nexport const TOGGLE_IMPERSONATING = 'TOGGLE_IMPERSONATING'\n\nexport const SET_GROUP_INVITATIONS = 'SET_GROUP_INVITATIONS'\nexport const REMOVE_GROUP_INVITATION = 'REMOVE_GROUP_INVITATION'\n\nexport const SET_USER_MEMBERSHIP = 'SET_USER_MEMBERSHIP'\nexport const SET_PERMISSION = 'SET_PERMISSION'\n\nexport const UPDATE_COUNTER = 'UPDATE_COUNTER'\n\nexport const UPDATE_SURVEY_CUSTOM_QUESTION_COUNT =\n 'UPDATE_SURVEY_CUSTOM_QUESTION_COUNT'\n","import * as ActionTypes from './actionTypes'\n\nexport const initialAuthState = {\n // I know this is hacky ...\n // Registration Info\n tosChecked: false,\n privacyChecked: false,\n // User Info\n user: {\n id: null,\n email: null,\n first_name: null,\n last_name: null,\n phone_number: null,\n booking_link: null,\n speakerflow_url: null,\n speakerflowEnabled: false,\n isCircleMember: false,\n isAssociate: false,\n avatar: null,\n referrer: null,\n onboarding_complete: null,\n onboarding_info: {\n viewed_welcome_video: null,\n viewed_upgrade_info: null,\n },\n lastOnboardingStep: null,\n shortlink: null,\n showTalkadotBranding: false,\n showUpgradeBanner: false,\n autoSplitEvents: false,\n isAdmin: false,\n isEventPlanner: false,\n hasGroupsFeatureFlag: false,\n canCreateGroup: false,\n socialLinks: {\n instagram: null,\n twitter: null,\n youtube: null,\n linkedin: null,\n },\n currentPassword: null,\n newPassword: null,\n membership: {\n plan: {\n name: '',\n planType: '',\n trialPeriodDays: null,\n planTier: 0,\n },\n status: null,\n permissions: [],\n shouldShowUpgrades: false,\n isTrialing: false,\n subscribedWhileTrialing: false,\n trialDaysRemaining: null,\n nextBillingDate: null,\n },\n billingInfo: {\n brand: null,\n expMonth: null,\n expYear: null,\n last4: null,\n isExpired: false,\n paymentErrorMessage: null,\n },\n // TODO:\n // When we add email invitations, fill this in with more data other\n // than the one they clicked when they authenticated\n // [{ groupName: string, invitationToken: string}]\n groupInvitations: [],\n counters: {\n unviewedEvents: 0,\n unviewedLeads: 0,\n // Note:\n // This is only handled on the UX to show +1 when a user\n // logs in to drive attention to the community pages\n unviewedCommunityNotifications: 0,\n },\n frontLiveChatHash: null,\n },\n signUpDate: null,\n // Global Info\n fullPageLoader: {\n isActive: false,\n content: null,\n loaderType: null,\n },\n notification: {\n message: null,\n notificationType: 'info',\n showNotification: false,\n },\n showUpgradeModal: false,\n upgradeHelperText: '',\n permissionRequirements: {},\n surveyCustomQuestionCount: 0,\n showWebinarAlert: false,\n}\n\nexport const authenticationReducer = (state, action) => {\n switch (action.type) {\n case ActionTypes.SET_USER_ATTRIBUTE:\n return {\n ...state,\n user: {\n ...state.user,\n [action.payload.attributeType]: action.payload.value,\n },\n }\n case ActionTypes.SET_SOCIAL_MEDIA_LINK:\n const existingValue =\n state.user.socialLinks[action.payload.attributeType] || {}\n\n return {\n ...state,\n user: {\n ...state.user,\n socialLinks: {\n ...state.user.socialLinks,\n [action.payload.attributeType]: {\n ...existingValue,\n url: action.payload.value,\n },\n },\n },\n }\n case ActionTypes.SET_AUTH_DATA:\n return {\n ...state,\n user: {\n ...state.user,\n ...action.payload,\n },\n }\n case ActionTypes.ADD_INDUSTRY:\n return {\n ...state,\n user: {\n ...state.user,\n industries: [...state.user.industries, action.payload],\n },\n }\n case ActionTypes.REMOVE_INDUSTRY:\n return {\n ...state,\n user: {\n ...state.user,\n industries: state.user.industries.filter(\n (industry) => industry !== action.payload\n ),\n },\n }\n case ActionTypes.TOGGLE_TOS:\n return {\n ...state,\n tosChecked: !state.tosChecked,\n }\n case ActionTypes.TOGGLE_PRIVACY:\n return {\n ...state,\n privacyChecked: !state.privacyChecked,\n }\n case ActionTypes.RESET_AUTH_DATA:\n return {\n ...initialAuthState,\n }\n case ActionTypes.SHOW_FULL_PAGE_LOADER:\n return {\n ...state,\n fullPageLoader: {\n ...state.fullPageLoader,\n isActive: true,\n content: action.payload.content,\n loaderType: action.payload.loaderType,\n },\n }\n case ActionTypes.HIDE_FULL_PAGE_LOADER:\n return {\n ...state,\n fullPageLoader: {\n ...state.fullPageLoader,\n isActive: false,\n content: null,\n },\n }\n case ActionTypes.TOGGLE_UPGRADE_MODAL:\n return {\n ...state,\n showUpgradeModal: action.payload.showModal,\n permissionRequirements: action.payload.permissionRequirements,\n upgradeHelperText: action.payload.helperText,\n }\n case ActionTypes.SET_NOTIFICATION:\n return {\n ...state,\n notification: {\n ...state.notification,\n ...action.payload,\n },\n }\n case ActionTypes.TOGGLE_IMPERSONATING:\n return {\n ...state,\n impersonating: action.payload,\n }\n case ActionTypes.SET_GROUP_INVITATIONS:\n return {\n ...state,\n user: {\n ...state.user,\n groupInvitations: [...state.user.groupInvitations, action.payload],\n },\n }\n case ActionTypes.REMOVE_GROUP_INVITATION:\n return {\n ...state,\n user: {\n ...state.user,\n groupInvitations: state.user.groupInvitations.filter((invitation) => {\n return invitation.id !== action.payload.id\n }),\n },\n }\n case ActionTypes.SET_USER_MEMBERSHIP:\n return {\n ...state,\n user: {\n ...state.user,\n membership: {\n ...state.user.membership,\n ...action.payload,\n },\n },\n }\n case ActionTypes.SET_PERMISSION:\n return {\n ...state,\n user: {\n ...state.user,\n membership: {\n ...state.user.membership,\n permissions: state.user.membership.permissions.map((permission) => {\n if (permission.type === action.payload.type) {\n return action.payload\n }\n return permission\n }),\n },\n },\n }\n case ActionTypes.UPDATE_COUNTER:\n return {\n ...state,\n user: {\n ...state.user,\n counters: {\n ...state.user.counters,\n ...action.payload,\n },\n },\n }\n case ActionTypes.UPDATE_SURVEY_CUSTOM_QUESTION_COUNT:\n return {\n ...state,\n surveyCustomQuestionCount: action.payload,\n }\n case ActionTypes.SET_SHOW_WEBINAR_ALERT:\n return {\n ...state,\n showWebinarAlert: action.payload,\n }\n default:\n return { ...state }\n }\n}\n","import { createBrowserHistory } from 'history';\nexport default createBrowserHistory();\n","const envConfig = process.env\nexport default envConfig","import 'whatwg-fetch'\nimport * as Cookies from './cookies'\nimport * as qs from 'qs'\nimport envConfig from '../envConfig'\nimport { waitFor } from '@testing-library/react'\n\nconst API_ROOT = envConfig.REACT_APP_API_ENDPOINT\n\nconst findToken = (useAdminToken) => {\n const impersonationToken = Cookies.getImpersonationToken()\n\n // If an admin user is currently impersonating a user, use this token for requests unless we are overriding it\n if (impersonationToken && !useAdminToken) {\n return impersonationToken\n } else {\n return Cookies.getAuthToken()\n }\n}\n\nasync function makeRequest(\n path,\n method,\n data = {},\n hasFile = false,\n useAdminToken = false // If impersonating use the admins token for this request\n) {\n const url = API_ROOT + path\n\n // ****\n // NOTE: used for testing Zapier on localhost\n // const url =\n // 'https://6928-2001-569-7628-5300-9cfb-2f90-3451-2da0.ngrok-free.app' + path\n // ****\n\n const authToken = findToken(useAdminToken)\n\n const headers = {\n Authorization: `Bearer ${authToken}`,\n }\n\n if (!hasFile) {\n headers['Content-Type'] = 'application/json'\n }\n\n try {\n let res\n\n if (method === 'post' || method === 'put' || method === 'delete') {\n let body\n if (hasFile) {\n body = new FormData()\n body.append('file', data.file)\n\n // Append other data\n for (const key in data) {\n if (data.hasOwnProperty(key) && key !== 'file') {\n body.append(key, data[key])\n }\n }\n } else {\n body = JSON.stringify(data)\n }\n\n res = await fetch(url, {\n method,\n headers,\n body: body,\n })\n } else {\n res = await fetch(url, {\n method,\n headers,\n })\n }\n\n const json = await res.json()\n\n // If the user is unauthorized or their\n // authentication has expired, delete their\n // old auth token and force them back to the login page\n if (res.status === 401) {\n Cookies.deleteAuthToken()\n return window.location.reload()\n }\n\n if (res.status === 200) {\n return json.data\n }\n\n if (res.status === 500) {\n throw json\n }\n\n return json\n } catch (err) {\n return {\n errors: err,\n }\n }\n}\n\n// Modifies the fetch function by: Adding access token and/or changing HTTP method\nfunction get(path, data) {\n return makeRequest(path, 'get', data)\n}\n\nfunction post(path, data, hasFile = false) {\n return makeRequest(path, 'post', data, hasFile)\n}\n\nfunction put(path, data) {\n return makeRequest(path, 'put', data)\n}\n\nfunction destroy(path, data, useAdminToken = false) {\n return makeRequest(path, 'delete', data, false, useAdminToken)\n}\n\nconst apiEndpoints = {\n registerPaidUser(data) {\n return post('/registrations/paid_registration', data)\n },\n\n registerUnpaidUser(data) {\n return post('/registrations/unpaid_registration', data)\n },\n\n loginUser(data) {\n return post('/authentication', data)\n },\n\n resetPassword(data) {\n return post('/users/reset-password', data)\n },\n\n requestPasswordReset(data) {\n return post('/password_resets', data)\n },\n\n resetPasswordbyToken(data) {\n return put(`/password_resets/${data.password_reset.token}`, data)\n },\n\n loadAuthenticatedUserData() {\n return get('/authentication')\n },\n\n googleAuth(data) {\n return post('/auth/google', data)\n },\n\n linkedinAuth(data) {\n return post('/auth/linkedin', data)\n },\n\n registerWithGoogle(data) {\n return post('/registrations/google', data)\n },\n\n registerWithLinkedin(data) {\n return post('/registrations/linkedin', data)\n },\n\n loadSurvey(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/survey?${queryParams}`)\n },\n\n createAnswer(data) {\n return post('/answers', data)\n },\n\n updateAnswer(data) {\n return put(`/answers/${data.answer.id}`, data)\n },\n\n updateUser(data) {\n return put(`/users/${data.user.id}`, data)\n },\n\n updateReferrer(data) {\n return post('/users/update-referrer', data)\n },\n\n updateOnboardingInfo(data) {\n return post(`/onboarding_infos`, data)\n },\n\n submitSocialMediaData(data) {\n return post('/social_media_links', data)\n },\n\n createSurvey() {\n return post('/surveys', {})\n },\n\n getCodes() {\n return get('/codes')\n },\n\n getUnlockedUserCodes(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return get(`/codes/unlocked_codes?${queryParams}`)\n },\n\n getCode(codeId) {\n return get(`/codes/${codeId}/edit`)\n },\n\n duplicateCode(codeId) {\n return post(`/codes/${codeId}/duplicate`)\n },\n\n createCode(data) {\n return post('/codes', data)\n },\n\n deleteCode(surveyOfferId) {\n return destroy(`/codes/${surveyOfferId}`)\n },\n\n updateCode(codeId, data) {\n return put(`/codes/${codeId}`, data)\n },\n\n updatePossibleAnswer(possibleAnswerId, data) {\n return put(`/possible_answers/${possibleAnswerId}`, data)\n },\n\n updateQuestion(questionId, data) {\n return put(`/questions/${questionId}`, data)\n },\n\n toggleVisibility(questionId, data) {\n return put(`/questions/${questionId}/toggle_visibility`, data)\n },\n\n repositionQuestion(questionId, data) {\n return put(`/questions/${questionId}/reposition`, data)\n },\n\n createQuestion(data) {\n return post('/questions', data)\n },\n\n deleteQuestion(question_id, data) {\n return destroy(`/questions/${question_id}`, data)\n },\n\n forceEnableOver18Check(data) {\n return put(`/questions/force_enable_over_18_check`, data)\n },\n\n changeQuestionType(questionId, data) {\n return put(`/change_question_type/${questionId}`, data)\n },\n\n createPossibleAnswer(data) {\n return post('/possible_answers', data)\n },\n\n deletePossibleAnswer(possibleAnswerId) {\n return destroy(`/possible_answers/${possibleAnswerId}`)\n },\n\n getAvailableQuestionTypes() {\n return get('/question_types')\n },\n\n videoUploadPresignedUrls(data) {\n return post('/video_upload_presign_urls', data)\n },\n\n speakerMediaUploadPresignedUrls(data) {\n return post('/media_upload_presign_urls', data)\n },\n\n presignUrl(data) {\n return post('/presign_urls', data)\n },\n\n presignAvatarUrl(data) {\n return post('/avatar_uploads', data)\n },\n\n getSocialShareImage(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return get(`/download_social_share_image?${queryParams}`)\n },\n\n pollSocialShareImageStatus(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return get(`/poll_social_share_image_status?${queryParams}`)\n },\n\n getSurveyOfferByCode(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/submissions/complete?${queryParams}`)\n },\n\n getAnswersBySubmission(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/submissions/show?${queryParams}`)\n },\n\n loadAllLeads() {\n return get('/leads')\n },\n\n updateLeads(data) {\n return put(`/leads/bulk-update`, data)\n },\n\n deleteLeads(data) {\n return destroy(`/leads/bulk-delete`, data)\n },\n\n fetchLeadData(leadId, data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/leads/${leadId}?${queryParams}`)\n },\n\n createEvent(data) {\n return post('/events', data)\n },\n\n editEvent(eventId, data) {\n return put(`/events/${eventId}`, data)\n },\n\n loadEvent(eventId) {\n return get(`/events/${eventId}`)\n },\n\n deleteEvent(eventId) {\n return destroy(`/events/${eventId}`)\n },\n\n loadEvents() {\n return get('/events')\n },\n\n fetchNotifications() {\n return get('/dashboard')\n },\n\n getFeedbackSummary() {\n return get('/dashboard/audience-feedback')\n },\n\n getLeadsSummary() {\n return get('/dashboard/leads-summary')\n },\n\n getLeadsBreakdown() {\n return get('/dashboard/leads-breakdown')\n },\n\n getEventReportCard(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/event-report-card?${queryParams}`)\n },\n\n getSpeakerSummary(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/speaker_summaries?${queryParams}`)\n },\n\n getPublicProfileSettings(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/public_profile_settings?${queryParams}`)\n },\n\n getPublicProfile(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/public_profile?${queryParams}`)\n },\n\n getPublicProtectedProfile(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/public_protected_profile?${queryParams}`)\n },\n\n // ISsection: 'speaker', 'stats', 'events', 'feedback', 'signature_talks'\n getPublicProfileSection(section, data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/public_profiles/${section}?${queryParams}`)\n },\n\n submitEventReview(data) {\n return post(`/event_reviews`, data)\n },\n\n getEventReviews(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/event_reviews?${queryParams}`)\n },\n\n getCustomAnswers(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/event-report-card/custom-answers?${queryParams}`)\n },\n\n getEventReportCardSummary(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/event-report-card/summary?${queryParams}`)\n },\n\n generateEventReportCardSummary(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return post(`/event-report-card/summary?${queryParams}`)\n },\n\n generateUserProfileFeedbackSummary(userId) {\n return post(`/users/${userId}/profile_summary`)\n },\n\n destroyUserProfileFeedbackSummary(userId) {\n return destroy(`/users/${userId}/profile_summary`)\n },\n\n getUserProfileFeedbackSummary(userId) {\n return get(`/users/${userId}/profile_summary`)\n },\n\n rateUserProileFeedbackSummary(userId, data) {\n return post(`/users/${userId}/profile_summary/rate`, data)\n },\n\n rateEventReportCardSummary(data, queryParams) {\n const queryParamsStr = qs.stringify(queryParams, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return post(`/event-report-card/summary/rate?${queryParamsStr}`, data)\n },\n\n toggleEventReportCardSummaryVisibility(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return post(`/event-report-card/summary/toggle-visibility?${queryParams}`)\n },\n\n upgradePlan(data) {\n return post('/upgrades', data)\n },\n\n upgradePaidPlan(data) {\n return put('/upgrades', data)\n },\n\n getAvailableUpgrades(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return get(`/upgrades?${queryParams}`)\n },\n\n updatePaymentMethod(data, userId) {\n return put(`/user_payment_methods/${userId}`, data)\n },\n\n getSubscriptionStatus() {\n return get(`/subscription_status`)\n },\n\n checkShortlinkAvailability(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/shortlink_availabilities?${queryParams}`)\n },\n\n adminUserList(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return get(`/admin/users?${queryParams}`)\n },\n\n adminGetReferralCommissionList() {\n return get('/admin/referral_commissions')\n },\n\n adminDeleteSpeaker(speakerId) {\n return destroy(`/admin/users/${speakerId}`)\n },\n\n adminFetchSpeaker(speakerId) {\n return get(`/admin/users/${speakerId}`)\n },\n\n adminDeleteEventRestrictions(eventId) {\n const useAdminToken = true\n\n return destroy(\n '/admin/submission_restrictions/event',\n { event_id: eventId },\n useAdminToken\n )\n },\n\n markCommissionAsPaid(data) {\n return post('/admin/referral_commissions/mark_as_paid', data)\n },\n\n uploadTransactions(data) {\n return post('/admin/referral_commissions/upload_transactions', data)\n },\n\n uploadReferrals(data) {\n return post('/admin/referral_commissions/backfill_referrals', data)\n },\n\n adminAssociateList() {\n return get('/admin/associates')\n },\n\n getReferralUserOptions() {\n return get('/admin/referral_data/referral_user_options')\n },\n\n impersonateUser(data) {\n return post('/admin/impersonations', data)\n },\n\n getMembershipPlans() {\n return get('/admin/membership_plans')\n },\n\n updateMembership(data, membershipId) {\n return put(`/admin/memberships/${membershipId}`, data)\n },\n\n getAvailableMembershipStatusus() {\n return get('/admin/membership_statusus')\n },\n\n updateAdminUser(data, userId) {\n return put(`/admin/users/${userId}`, data)\n },\n\n editAdminReferralPayoutSetting(referralPayoutSettingId, data) {\n return put(\n `/admin/referral_payout_settings/${referralPayoutSettingId}`,\n data\n )\n },\n\n addAdminUserNote(data) {\n return post('/admin/user_notes', data)\n },\n\n deleteAdminUserNote(noteId, data) {\n return destroy(`/admin/user_notes/${noteId}`, data)\n },\n\n updateAdminUserNote(noteId, data) {\n return put(`/admin/user_notes/${noteId}`, data)\n },\n\n testSpeakerflowIntegration() {\n return post(`/integrations/speakerflow-test`, {})\n },\n\n createIntegration(data) {\n return post('/integrations', data)\n },\n\n updateIntegration(data, integrationId) {\n return put(`/integrations/${integrationId}`, data)\n },\n\n mergeEvent(data) {\n return post(`/event_merges`, data)\n },\n\n manuallySyncWithSpeakerflow() {\n return get('/integrations/manual-speakerflow-sync')\n },\n\n uploadEventGroupSchedule(data) {\n return post('/event_planner/event_group_schedules', data)\n },\n\n fetchEventGroupOverallData(id) {\n return get(`/event_planner/event_group_reports/${id}`)\n },\n\n getMembershipPlanDetails(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/registrations/plan-details?${queryParams}`)\n },\n\n getReferrerPlan(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/registration-referrer-plan?${queryParams}`)\n },\n\n fetchAllEventGroups() {\n return get('/event_planner/event_groups')\n },\n\n fetchEventGroup(id) {\n return get(`/event_planner/event_groups/${id}`)\n },\n\n createEventGroup(data) {\n return post(`/event_planner/event_groups`, data)\n },\n\n searchForSpeakers(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/event_planner/event_speakers/search?${queryParams}`)\n },\n\n addExistingSpeakerToEvent(data) {\n return post('/event_planner/event_speakers', data)\n },\n\n removeSpeakerFromEvent(data, speakerId) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return destroy(`/event_planner/event_speakers/${speakerId}?${queryParams}`)\n },\n\n createNewSpeaker(data) {\n return post('/event_planner/event_speakers/new_speaker', data)\n },\n\n editEventSpeakerAvatar(data) {\n return put('/event_planner/event_speakers/edit_avatar', data)\n },\n\n editEventGroup(data, id) {\n return put(`/event_planner/event_groups/${id}`, data)\n },\n\n assignEventGroupShortlink(id) {\n return put(`/event_planner/assign_shortlink/${id}`)\n },\n\n unassignEventGroupShortlink(id) {\n return put(`/event_planner/unassign_shortlink/${id}`)\n },\n\n fetchEventLeads(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return get(`/event_leads?${queryParams}`)\n },\n\n fetchGroupEventLeads(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return get(`/group_guest_speakers/event_leads?${queryParams}`)\n },\n\n syncEventLeadsWithSpeakerflow(data) {\n return post(`/event_leads/sync_with_speakerflow`, data)\n },\n\n fetchEventRawAnswers(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return get(`/event_answers?${queryParams}`)\n },\n\n fetchGroupEventRawAnswers(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return get(`/group_guest_speakers/event_answers?${queryParams}`)\n },\n\n fetchDefaultEmojiKeywords() {\n return get('/default_emoji_keywords')\n },\n\n updateProfileSettings(data) {\n return put('/profile_settings', data)\n },\n\n updateProfile(data) {\n return post('/profiles', data)\n },\n\n getGroups() {\n return get('/groups')\n },\n\n getGroupsAggregateEvents() {\n return get('/groups_aggregate_events')\n },\n\n getGroup(groupId) {\n return get(`/groups/${groupId}`)\n },\n\n getGroupUsers(groupId) {\n return get(`/groups/${groupId}/users`)\n },\n\n getGroupEvents(groupId) {\n return get(`/groups/${groupId}/events`)\n },\n\n createGroup(data) {\n return post('/groups', data)\n },\n\n updateGroup(groupId, data) {\n return put(`/groups/${groupId}`, data)\n },\n\n deleteGroup(groupId) {\n return destroy(`/groups/${groupId}`)\n },\n\n getShareGroups(eventId) {\n return get(`/events/${eventId}/share_groups`)\n },\n\n getGroupInvitationDetails(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return get(`/group_invitations/invitation_details?${queryParams}`)\n },\n\n getAllPendingInvitations(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return get(`/group_invitations?${queryParams}`)\n },\n\n getUnauthGroupInvitationDetails(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return get(`/group_invitations/unauth_invitation_details?${queryParams}`)\n },\n\n sendGroupInvitations(data) {\n return post('/group_invitations', data)\n },\n\n createGroupMembership(data) {\n return post('/group_membership', data)\n },\n\n updateGroupMembership(data) {\n return put(`/update_group_membership`, data)\n },\n\n deleteGroupMembership(data) {\n return destroy(`/delete_group_membership`, data)\n },\n\n removeUserFromGroup(data) {\n return destroy(`/remove_group_member`, data)\n },\n\n updateUserMembership(data) {\n return put(`/update_user_group_membership`, data)\n },\n\n getAllGroupMembers(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return get(`/group_memberships?${queryParams}`)\n },\n\n getGroupSurveyLink(groupId) {\n return get(`/group_guest_speakers/dashboard/${groupId}/survey-link`)\n },\n\n createGroupSurveyOffer(data) {\n return post('/group_guest_speakers/survey_offers', data)\n },\n\n editGroupSurveyOffer(data, surveyOfferId) {\n return put(`/group_guest_speakers/survey_offers/${surveyOfferId}`, data)\n },\n\n deleteGroupSurveyOffer(surveyOfferId, groupId) {\n const data = { group_id: groupId }\n\n return destroy(`/group_guest_speakers/survey_offers/${surveyOfferId}`, data)\n },\n\n getAllGroupOfferCodes(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return get(`/group_guest_speakers/survey_offers/offer_codes?${queryParams}`)\n },\n\n createGroupEvent(data) {\n return post('/group_guest_speakers/events', data)\n },\n\n editGroupEvent(eventId, data) {\n return put(`/group_guest_speakers/events/${eventId}`, data)\n },\n\n loadGroupEvent(eventId, data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return get(`/group_guest_speakers/events/${eventId}?${queryParams}`)\n },\n\n deleteGroupEvent(eventId, groupId) {\n const data = { group_id: groupId }\n\n return destroy(`/group_guest_speakers/events/${eventId}`, data)\n },\n\n loadGroupEvents(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/group_guest_speakers/events?${queryParams}`)\n },\n\n mergeGroupEvent(data) {\n return post(`/group_guest_speakers/event_merges`, data)\n },\n\n editGroupEventSpeakerAvatar(data) {\n return put('/group_guest_speakers/event_speakers/edit_avatar', data)\n },\n\n createGroupEventSpeaker(data) {\n return post('/group_guest_speakers/event_speakers/new_speaker', data)\n },\n\n removeSpeakerFromGroupEvent(data, speakerId) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return destroy(\n `/group_guest_speakers/event_speakers/${speakerId}?${queryParams}`\n )\n },\n\n addExistingSpeakerToGroupEvent(data) {\n return post('/group_guest_speakers/event_speakers', data)\n },\n\n searchForGroupSpeakers(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n return get(`/group_guest_speakers/event_speakers/search?${queryParams}`)\n },\n\n updateGroupMetadatum(data) {\n return put('/group_guest_speakers/group_metadata', data)\n },\n\n createEventPermissions(data) {\n return post(`/create_event_permission`, data)\n },\n\n deleteEventPermission(data) {\n return destroy(`/delete_event_permission`, data)\n },\n\n loadAssociates() {\n return get('/associates')\n },\n\n createAssociate(data) {\n return post('/associates', data)\n },\n\n deleteAssociate(associateId) {\n return destroy(`/associates/${associateId}`)\n },\n\n createAuthCode(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return get(`/api/v1/oauth/authorize?${queryParams}`)\n },\n\n fetchEmailCampaigns() {\n return get('/email_campaigns')\n },\n\n updateEmailCampaign(campaignId, data) {\n return put(`/email_campaigns/${campaignId}`, data)\n },\n\n sendTestCampaignEmail(campaignId, data) {\n return post(`/email_campaigns/${campaignId}/test_email`, data)\n },\n\n uploadChapterCsv(data) {\n return post(`/admin/chapter_uploads/upload`, data, true)\n },\n\n updateChapters(data) {\n return put(`/admin/chapter_uploads`, data)\n },\n\n unsubscribeLead(data) {\n return post(`/lead_unsubscribes`, data)\n },\n\n resubscribeLead(data) {\n return destroy(`/lead_unsubscribes`, data)\n },\n\n getBonusUrl(data) {\n const queryParams = qs.stringify(data, {\n arrayFormat: 'brackets',\n indices: false,\n })\n\n return get(`/bonus_url?${queryParams}`)\n },\n\n updateAccountSettings(data) {\n return put('/account_settings', data)\n },\n\n getReferralData() {\n return get('/referrals')\n },\n\n getReferralPayoutSettings() {\n return get('/referral_payout_settings')\n },\n\n editReferralPayoutSettings(data) {\n return put('/referral_payout_settings', data)\n },\n\n // Referral Emails\n getReferralEmails() {\n return get('/referral_email')\n },\n\n updateReferralEmailTemplate(data) {\n return put('/referral_email', data)\n },\n\n sendReferralEmails(data) {\n return post('/referral_email/send_emails', data)\n },\n\n getUpcomingWebinars() {\n return get('/scheduled_webinars')\n },\n\n getWebinarNotificationMetadata() {\n return get('/scheduled_webinars/webinar_notification_metadata')\n },\n\n createSignatureTalkMediaUpload(data) {\n return post('/signature_talk_media_uploads', data)\n },\n\n generateSignatureTalkFromPrompt(data) {\n return post('/signature_talks/generate_from_prompt', data)\n },\n\n createSignatureTalk(data) {\n return post('/signature_talks', data)\n },\n\n updateSignatureTalk(signatureTalkId, data) {\n return put(`/signature_talks/${signatureTalkId}`, data)\n },\n\n addMediaToSingatureTalk(signatureTalkId, data) {\n return post(`/signature_talks/${signatureTalkId}/add_media`, data)\n },\n\n deleteSignatureTalkMedia(signatureTalkMediaId) {\n return destroy(`/signature_talk_media/${signatureTalkMediaId}`)\n },\n\n deleteSignatureTalk(signatureTalkId) {\n return destroy(`/signature_talks/${signatureTalkId}`)\n },\n\n getSignatureTalk(signatureTalkId) {\n return get(`/signature_talks/${signatureTalkId}`)\n },\n\n getSignatureTalks() {\n return get('/signature_talks')\n },\n\n sendCustomerIoEvent(data) {\n return post('/customerio/track', data)\n },\n\n createSpeakerMediaUpload(data) {\n return post('/media_uploads', data)\n },\n\n getSpeakerMedia() {\n return get('/speaker_media')\n },\n\n deleteSpeakerMedia(speakerMediaId) {\n return destroy(`/speaker_media/${speakerMediaId}`)\n },\n\n initiateMultipartUpload(data) {\n return post('/video_multipart_uploads', data)\n },\n\n completeMultipartUpload(data) {\n return post('/video_multipart_uploads/complete', data)\n },\n}\n\nexport default apiEndpoints\n","export const AUTH_MESSAGE = 'Hang tight as we get your account ready!'\nexport const UPDATE_MESSAGE = 'Updating Account ...'","/**\n * This function properly formats regular messages or error messages of all types.\n *\n * Examples of errors it will handle automatically:\n *\n * - \"Just a regular message\" => Just a regular message\n * - ['Email has already been taken', 'Cannot contain special characters'] =>\n * Email has already been taken, Cannot contain special characters\n * - { error: 'Email has already been taken' } => Email has already been taken\n * - { errors: ['Email has already been taken'] } => Email has already been taken\n * - { errors: { error: ['Multi-level', 'nesting'] } } => Multi-level, nesting\n * - { errors: {bet: 'you weren\\'t expecting this'} } => {\"bet\":\"you weren't expecting this\"}\n * - undefined => Whoops an unexpected issue occurred. Please contact support if this continues.\n *\n * @param {any} error - The message or error to be humanized.\n * @returns {string} - Humanized message.\n */\nexport const humanizeError = (error) => {\n if (error === null || error === undefined) {\n return 'Whoops an unexpected issue occurred. Please contact support if this continues.'\n }\n\n if (!Array.isArray(error) && typeof error === 'object') {\n const { errors: primaryErrors, error: primaryError } = error\n\n // Set error to the primary error object if present\n error = primaryErrors || primaryError\n\n // In extreme cases it is a multi-level error object\n if (!Array.isArray(error) && typeof error === 'object') {\n const { errors: nestedErrors, error: nestedError } = error\n\n error = nestedErrors || nestedError\n }\n }\n\n if (error && Array.isArray(error)) {\n return error.join(', ')\n } else if (typeof error !== 'string') {\n // Edge case: Return non-string, non-array objects as JSON strings\n return JSON.stringify(error)\n } else {\n return error\n }\n}\n","import React, { createContext, useReducer } from 'react'\nimport {\n authenticationReducer,\n initialAuthState,\n} from './authenticationReducer'\nimport history from '../../routes/history'\nimport Api from '../../services/api'\nimport * as Cookies from '../../services/cookies'\nimport * as ActionTypes from './actionTypes'\nimport * as Messages from '../common/AlertMessages'\nimport isEqual from 'lodash/isEqual'\nimport { humanizeError } from '../../utils/errorFormatter'\n\nexport const AuthenticationContext = createContext({\n authData: initialAuthState,\n})\n\nconst AuthenticationContextProvider = (props) => {\n const [authData, dispatch] = useReducer(\n authenticationReducer,\n initialAuthState\n )\n const { membership } = authData?.user\n\n const setUserData = (data) => {\n dispatch({\n type: ActionTypes.SET_AUTH_DATA,\n payload: data,\n })\n }\n\n const setGroupInvitations = (groupInvitationData) => {\n dispatch({\n type: ActionTypes.SET_GROUP_INVITATIONS,\n payload: groupInvitationData,\n })\n }\n\n const removeGroupInvitation = (groupInvitationData) => {\n dispatch({\n type: ActionTypes.REMOVE_GROUP_INVITATION,\n payload: groupInvitationData,\n })\n }\n\n const setUserMembership = (membership) => {\n dispatch({\n type: ActionTypes.SET_USER_MEMBERSHIP,\n payload: membership,\n })\n }\n\n const logoutUser = () => {\n Cookies.deleteAuthToken()\n Cookies.deleteImpersonationToken()\n dispatch({\n type: ActionTypes.RESET_AUTH_DATA,\n })\n return history.push('/login')\n }\n\n const setProfileAttribute = (attributeType, value) => {\n dispatch({\n type: ActionTypes.SET_USER_ATTRIBUTE,\n payload: {\n attributeType: attributeType,\n value: value,\n },\n })\n }\n\n const setSocialAttribute = (attributeType, value) => {\n dispatch({\n type: ActionTypes.SET_SOCIAL_MEDIA_LINK,\n payload: {\n attributeType: attributeType,\n value: value,\n },\n })\n }\n\n const setShowWebinarAlert = (value) => {\n dispatch({\n type: ActionTypes.SET_SHOW_WEBINAR_ALERT,\n payload: value,\n })\n }\n\n const submitBookingLink = async () => {\n if (!canShowBookingLink) {\n setProfileAttribute('booking_link', '')\n return setNotification(\n 'You need to upgrade to a paid plan to add a booking link to your survey!'\n )\n }\n\n const params = {\n user: {\n id: authData.user.id,\n booking_link: authData.user.booking_link,\n },\n }\n\n try {\n const res = await Api.updateUser(params)\n\n if (!res.errors) {\n setProfileAttribute('booking_link', authData.user.booking_link)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const submitSpeakerflowLink = async (isIntegrationsAllowed) => {\n if (!isIntegrationsAllowed) {\n setProfileAttribute('speakerflow_url', '')\n return setNotification(\n 'You need to upgrade to a paid plan to add a speakerflow link to your account'\n )\n }\n\n const params = {\n integration: {\n integration_type: 'SPEAKERFLOW',\n integration_url: authData.user.speakerflow_url,\n },\n }\n\n try {\n const res = await Api.createIntegration(params)\n\n if (!res.errors) {\n setProfileAttribute('speakerflow_url', authData.user.speakerflow_url)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const toggleSpeakerflowEnabled = async (enabled, isIntegrationsAllowed) => {\n if (!isIntegrationsAllowed) {\n return setNotification(\n 'You need to upgrade to a paid plan to add a speakerflow link to your account'\n )\n }\n\n const params = {\n integration: {\n integration_type: 'SPEAKERFLOW',\n enabled: enabled,\n },\n }\n\n try {\n const res = await Api.updateIntegration(params, null)\n\n if (!res.errors) {\n setProfileAttribute('speakerflowEnabled', enabled)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const submitToggleShowTalkadotBranding = async (showBranding) => {\n const params = {\n user: {\n id: authData.user.id,\n show_talkadot_branding: showBranding,\n },\n }\n\n try {\n const res = await Api.updateUser(params)\n\n if (!res.errors) {\n setProfileAttribute('showTalkadotBranding', showBranding)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const submitToggleAutoSplitEvents = async (autoSplitEvents) => {\n const params = {\n user: {\n id: authData.user.id,\n autosplit_events: autoSplitEvents,\n },\n }\n\n try {\n const res = await Api.updateUser(params)\n\n if (!res.errors) {\n setProfileAttribute('autoSplitEvents', autoSplitEvents)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const submitShowUpgradeBanner = async (showUpgradeBanner) => {\n const params = {\n user: {\n id: authData.user.id,\n show_upgrade_banner: showUpgradeBanner,\n },\n }\n\n try {\n const res = await Api.updateUser(params)\n\n if (!res.errors) {\n setProfileAttribute('showUpgradeBanner', showUpgradeBanner)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const handleAuthenticationSuccess = (res, redirect = true) => {\n Cookies.saveAuthToken(res.auth_token)\n setUserData(res.user)\n updateCounter({\n unviewedCommunityNotifications: 1,\n })\n if (redirect) {\n return redirectUser(res.user)\n }\n }\n\n const resetPassword = async () => {\n const params = {\n user: {\n current_password: authData.user.currentPassword,\n new_password: authData.user.newPassword,\n },\n }\n\n try {\n const res = await Api.resetPassword(params)\n\n if (!res.errors) {\n setProfileAttribute('newPassword', '')\n setProfileAttribute('currentPassword', '')\n return setNotification('Password Updated!', 'success')\n } else {\n throw res.errors\n }\n } catch (err) {\n return setNotification(err, 'error')\n }\n }\n\n const redirectUser = (user) => {\n if (user.onboarding_complete) {\n if (user.isEventPlanner) {\n return history.push('/event-planner/dashboard')\n }\n\n history.push('/dashboard')\n } else {\n history.push('/welcome')\n }\n }\n\n const authenticateUserByGoogle = async (googleData, redirect) => {\n try {\n showFullPageLoader(Messages.AUTH_MESSAGE)\n const res = await Api.googleAuth({ token: googleData.tokenId })\n\n if (!res.errors && res.auth_token) {\n hideFullPageLoader()\n return handleAuthenticationSuccess(res, redirect)\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n return setNotification(err, 'error')\n }\n }\n\n const authenticateUserByLinkedin = async (linkedinCode, redirect) => {\n try {\n showFullPageLoader(Messages.AUTH_MESSAGE)\n const res = await Api.linkedinAuth({ code: linkedinCode })\n\n if (!res.errors && res.auth_token) {\n hideFullPageLoader()\n return handleAuthenticationSuccess(res, redirect)\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n return setNotification(err)\n }\n }\n\n const registerUserByGoogle = async (\n googleData,\n planToken,\n registrationToken\n ) => {\n try {\n showFullPageLoader(Messages.AUTH_MESSAGE)\n\n const params = {\n token: googleData.tokenId,\n plan_token: planToken,\n registration_token: registrationToken,\n }\n\n const res = await Api.registerWithGoogle(params)\n\n if (!res.errors && res.auth_token) {\n hideFullPageLoader()\n return handleAuthenticationSuccess(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n return setNotification(err, 'error')\n }\n }\n\n const registerUserByLinkedin = async (\n linkedinCode,\n planToken,\n registrationToken\n ) => {\n try {\n showFullPageLoader(Messages.AUTH_MESSAGE)\n\n const params = {\n code: linkedinCode,\n plan_token: planToken,\n registration_token: registrationToken,\n }\n\n const res = await Api.registerWithLinkedin(params)\n\n if (!res.errors && res.auth_token) {\n hideFullPageLoader()\n return handleAuthenticationSuccess(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n return setNotification(err, 'error')\n }\n }\n\n const toggleTos = () => {\n dispatch({\n type: ActionTypes.TOGGLE_TOS,\n })\n }\n\n const togglePrivacy = () => {\n dispatch({\n type: ActionTypes.TOGGLE_PRIVACY,\n })\n }\n\n const showFullPageLoader = (loaderContent, loaderType) => {\n dispatch({\n type: ActionTypes.SHOW_FULL_PAGE_LOADER,\n payload: {\n content: loaderContent,\n loaderType: loaderType,\n },\n })\n }\n\n const closeNotification = () => {\n dispatch({\n type: ActionTypes.SET_NOTIFICATION,\n payload: {\n message: '',\n notificationType: 'info',\n showNotification: false,\n },\n })\n }\n\n const setNotification = (message, notificationType = 'error') => {\n dispatch({\n type: ActionTypes.SET_NOTIFICATION,\n payload: {\n message: humanizeError(message),\n notificationType: notificationType,\n showNotification: true,\n },\n })\n }\n\n const hideFullPageLoader = () => {\n dispatch({\n type: ActionTypes.HIDE_FULL_PAGE_LOADER,\n })\n }\n\n // Open the upgrade modal\n // NOTE: Only send permissionType arg if you want to filter out plans that DO NOT HAVE this permission\n const toggleUpgradeModal = (\n shouldShowUpgradeModal,\n helperText,\n permissionRequirements = {}\n ) => {\n // Backwards compatibility: ensure permissionRequirements is an object\n if (typeof permissionRequirements !== 'object') {\n permissionRequirements = {\n permissionType: permissionRequirements,\n }\n }\n\n dispatch({\n type: ActionTypes.TOGGLE_UPGRADE_MODAL,\n payload: {\n showModal: shouldShowUpgradeModal,\n helperText: helperText,\n permissionRequirements,\n },\n })\n }\n\n const updatePermission = (updatedPermission) => {\n const existing = membership.permissions.find(\n (permission) => permission.type === updatedPermission.type\n )\n\n // to limit unnecessary re-renders only update if the permission has changed\n if (existing && isEqual(existing, updatedPermission)) {\n return\n }\n\n dispatch({\n type: ActionTypes.SET_PERMISSION,\n payload: updatedPermission,\n })\n }\n\n const updateCounter = (counterData) => {\n dispatch({\n type: ActionTypes.UPDATE_COUNTER,\n payload: counterData,\n })\n }\n\n const showTalkadotBranding = () => {\n return authData?.user?.showTalkadotBranding\n }\n\n const updateSurveyCustomQuestionCount = (count) => {\n dispatch({\n type: ActionTypes.UPDATE_SURVEY_CUSTOM_QUESTION_COUNT,\n payload: count,\n })\n }\n\n // TODO move these to permission_helper once this become a permission\n const canShowBookingLink = membership?.plan?.price > 0\n\n return (\n \n {props.children}\n \n )\n}\n\nexport default AuthenticationContextProvider\n","import * as ActionTypes from './actionTypes'\n\nexport const initialGroupState = {\n selectedGroup: null,\n groups: null\n}\n\nexport const groupReducer = (state, action) => {\n switch (action.type) {\n case ActionTypes.SET_SELECTED_GROUP:\n return {\n ...state,\n selectedGroup: action.payload\n }\n case ActionTypes.SET_GROUPS:\n return {\n ...state,\n groups: action.payload\n }\n case ActionTypes.CLEAR_GROUP_STATE:\n return {\n ...initialGroupState\n }\n default:\n return state\n }\n}\n","export const SET_SELECTED_GROUP = 'SET_SELECTED_GROUP'\nexport const SET_GROUPS = 'SET_GROUPS'\nexport const CLEAR_GROUP_STATE = 'CLEAR_GROUP_STATE'\n","import React, { createContext, useReducer } from 'react'\nimport { groupReducer, initialGroupState } from './groupReducer.js'\n\nexport const GroupContext = createContext({\n groupState: initialGroupState,\n})\n\nconst GroupContextProvider = (props) => {\n const [groupState, dispatch] = useReducer(groupReducer, initialGroupState)\n\n const setSelectedGroup = (group) => {\n dispatch({ type: 'SET_SELECTED_GROUP', payload: group })\n }\n\n const setGroups = (groups) => {\n dispatch({ type: 'SET_GROUPS', payload: groups })\n }\n\n const clearGroupState = () => {\n dispatch({ type: 'CLEAR_GROUP_STATE' })\n }\n\n const getPrimaryGroupId = () => {\n if (!groupState.groups || groupState.groups.length === 0) {\n return null\n }\n\n const sortedGroups = [...groupState.groups].sort((a, b) => {\n const rolePriorityA =\n a.role === 'owner' ? 1 : a.role === 'manager' ? 2 : 3\n const rolePriorityB =\n b.role === 'owner' ? 1 : b.role === 'manager' ? 2 : 3\n\n if (rolePriorityA !== rolePriorityB) {\n return rolePriorityA - rolePriorityB\n }\n\n return a.id - b.id\n })\n\n return sortedGroups[0].id\n }\n\n const getPrimaryGroup = () => {\n const primaryId = getPrimaryGroupId()\n\n if (!primaryId) {\n return null\n }\n\n return groupState.groups.find((group) => group.id === primaryId)\n }\n\n const getGroupById = (id) => {\n return groupState.groups.find((group) => group.id === id)\n }\n\n return (\n \n {props.children}\n \n )\n}\n\nexport default GroupContextProvider\n","function gtag() {\n window.dataLayer.push(arguments)\n}\n\nconst trackEventWithGoogle = (eventName, params) => {\n try {\n gtag('event', eventName, params)\n } catch (err) {\n // handle errors\n }\n}\n\nconst pushDataLayer = (eventName, params) => {\n try {\n window.dataLayer.push({\n event: eventName,\n ...params,\n })\n } catch (err) {\n // handle errors\n console.log('error', err)\n }\n}\n\nexport const trackSignUp = (userId, userEmail) => {\n pushDataLayer('sign_up', { user_id: userId, user_email: userEmail })\n}\n\nexport const trackLogin = (userId, userEmail) => {\n pushDataLayer('login', { user_id: userId, user_email: userEmail })\n}\n\nexport const trackUser = (userId) => {\n pushDataLayer('user_id', { user_id: userId })\n}\n\nexport const trackOnboardingComplete = ({ userId, benefits, nextTalk }) => {\n pushDataLayer('onboarding_complete', {\n user_id: userId,\n benefits,\n next_talk: nextTalk,\n })\n}\n\nexport const trackPurchase = ({ transactionId, value, coupon, plan }) => {\n pushDataLayer('purchase', {\n ecommerce: {\n transaction_id: transactionId,\n value,\n currency: 'USD',\n coupon,\n items: [\n {\n item_id: plan.id,\n item_name: plan.name,\n price: plan.price,\n quantity: 1,\n },\n ],\n },\n })\n}\n\nexport const trackFirstOfferCreated = (params) => {\n pushDataLayer('first_offer_created', params)\n}\n\nexport const trackFirstEventCreated = (params) => {\n pushDataLayer('first_event_created', params)\n}\n\n// Upgrade Funnel\nexport const trackHitLimit = (params) => {\n return trackEventWithGoogle('hit_limit', params)\n}\n\nexport const trackViewedUpgrades = (params) => {\n return trackEventWithGoogle('viewed_upgrades', params)\n}\n\nexport const trackAddToCart = (params) => {\n return trackEventWithGoogle('add_to_cart', params)\n}\n\nexport const trackConversion = (params) => {\n trackEventWithGoogle('conversion', params)\n}\n\nexport const trackDowngradeContactSupport = (params) => {\n return trackEventWithGoogle('downgrade_contact_support', params)\n}\n\n// Other Metrics\nexport const trackExportLeads = (params) => {\n return trackEventWithGoogle('exported_leads', params)\n}\n\nexport const trackSocialDataShare = (params) => {\n return trackEventWithGoogle('download_data_share', params)\n}\n\nexport const trackSocialTestimonialShare = (params) => {\n return trackEventWithGoogle('download_testimonial_share', params)\n}\n\nexport const trackExpandEventRow = (params) => {\n return trackEventWithGoogle('expand_event_row', params)\n}\n\nexport const downloadedSlide = (params) => {\n return trackEventWithGoogle('downloaded_slide', params)\n}\n\nexport const testedSurvey = (params) => {\n return trackEventWithGoogle('tested_survey', params)\n}\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCheckMarkIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.3333 4L5.99996 11.3333L2.66663 8\",\n stroke: \"black\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCheckMarkIcon16X16);\nexport default __webpack_public_path__ + \"static/media/checkMarkIcon_16x16.3da1bbc6.svg\";\nexport { ForwardRef as ReactComponent };","import { styled } from '@mui/system'\n\nconst PaintGraphic = styled('div', {\n shouldForwardProp: (prop) => prop !== 'backgroundUrl',\n})(({ theme, backgroundUrl }) => ({\n backgroundImage: `url(${backgroundUrl})`,\n [theme.breakpoints.down(1028)]: {\n display: 'none',\n },\n}))\n\nexport const InnerPaintGraphic = styled('div')({\n textAlign: 'center',\n padding: '150px 30px 0px 30px',\n})\n\nexport const YellowPaintGraphic = ({ children }) => {\n const backgroundUrl =\n 'https://d3qvkz8495pjoq.cloudfront.net/talkadot-bg-yellow.png'\n return {children}\n}\n\nexport const BluePaintGraphic = () => {\n const backgroundUrl =\n 'https://d3qvkz8495pjoq.cloudfront.net/talkadot-bg-blue.png'\n return \n}\n","import React, { useContext } from 'react'\nimport GoogleLogin from 'react-google-login'\nimport { AuthenticationContext } from './authenticationContext'\nimport { GoogleLoginButton } from 'react-social-login-buttons'\nimport envConfig from '../../envConfig'\nimport { styled } from '@mui/system'\nimport { AUTHENTICATION_TYPES } from './OAuthButtons'\n\nconst GoogleButtonContainer = styled('div')({\n width: '100%',\n span: {\n fontSize: '19px',\n },\n})\n\nconst GoogleOAuthButton = ({\n authenticationType,\n membershipPlan,\n registrationToken,\n redirect,\n}) => {\n const { authenticateUserByGoogle, registerUserByGoogle, setNotification } =\n useContext(AuthenticationContext)\n\n const handleGoogleSuccess = async (googleData) => {\n if (authenticationType === AUTHENTICATION_TYPES.REGISTRATION) {\n await registerUserByGoogle(\n googleData,\n membershipPlan?.token,\n registrationToken\n )\n } else {\n await authenticateUserByGoogle(googleData, redirect)\n }\n }\n\n const handleGoogleFailure = (error, details) => {\n return setNotification(JSON.stringify(error), 'error')\n }\n\n const handleClick = (googleAuthFunction) => {\n return googleAuthFunction()\n }\n\n return (\n \n (\n handleClick(renderProps.onClick)}\n disabled={renderProps.disabled}>\n \n {authenticationType === AUTHENTICATION_TYPES.REGISTRATION\n ? 'Register With Google'\n : 'Login With Google'}\n \n \n )}\n />\n \n )\n}\n\nexport default GoogleOAuthButton\n","import React, { useContext } from 'react'\nimport { useLocation } from 'react-router-dom'\nimport { AuthenticationContext } from './authenticationContext'\nimport { LinkedInLoginButton } from 'react-social-login-buttons'\nimport { useLinkedIn } from 'react-linkedin-login-oauth2'\nimport envConfig from '../../envConfig'\nimport { styled } from '@mui/system'\nimport { AUTHENTICATION_TYPES } from './OAuthButtons'\nimport { red } from '@mui/material/colors'\n\nconst LinkedinButtonContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n width: '100%',\n span: {\n fontWeight: '200',\n fontSize: '19px',\n alignItems: 'center',\n },\n})\n\nconst LinkedinOAuthButton = ({\n authenticationType,\n membershipPlan,\n registrationToken,\n redirect,\n}) => {\n const { authenticateUserByLinkedin, registerUserByLinkedin } = useContext(\n AuthenticationContext\n )\n\n const location = useLocation()\n const registrationPage = location.pathname.includes('register')\n\n const handleClick = async () => {\n return linkedInLogin()\n }\n\n const handleLinkedinSuccess = async (code) => {\n if (authenticationType === AUTHENTICATION_TYPES.REGISTRATION) {\n await registerUserByLinkedin(\n code,\n membershipPlan?.token,\n registrationToken\n )\n } else {\n await authenticateUserByLinkedin(code, redirect)\n }\n }\n\n const { linkedInLogin } = useLinkedIn({\n clientId: envConfig.REACT_APP_LINKEDIN_CLIENT_ID,\n redirectUri: `${envConfig.REACT_APP_CLIENT_ENDPOINT}/linkedin`,\n scope: 'r_emailaddress r_liteprofile',\n onSuccess: async (code) => {\n await handleLinkedinSuccess(code)\n },\n onError: (error) => {\n // alert(JSON.stringify(error))\n },\n })\n\n return (\n \n \n \n {registrationPage\n ? 'Register With LinkedIn'\n : 'Sign In With LinkedIn'}\n \n \n \n )\n}\n\nexport default LinkedinOAuthButton\n","import React from 'react'\nimport GoogleOAuthButton from './GoogleOAuthButton'\nimport LinkedinOAuthButton from './LinkedinOAuthButton'\nimport { styled } from '@mui/system'\n\nconst OAuthButtonContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: '80%',\n margin: '0 auto',\n})\n\nexport const AUTHENTICATION_TYPES = {\n REGISTRATION: 'REGISTRATION',\n SIGNIN: 'SIGNIN',\n}\n\nconst OAuthButtons = ({\n authenticationType,\n membershipPlan,\n registrationToken,\n redirect,\n}) => (\n \n \n \n \n)\n\nexport default OAuthButtons\n","import React from 'react'\nimport { Link, useLocation } from 'react-router-dom'\nimport { Button } from '@mui/material'\nimport { styled } from '@mui/system'\nimport { useTheme } from '@mui/material/styles'\n\nconst LinkButton = styled(Button, {\n shouldForwardProp: (prop) => prop !== 'baseColor',\n})(({ baseColor }) => ({\n position: 'absolute',\n marginTop: '0px',\n top: '10px',\n right: '10px',\n maxWidth: '200px',\n border: `1px solid ${baseColor}`,\n color: baseColor,\n '&:hover': {\n border: `1px solid ${baseColor}`,\n color: baseColor,\n },\n textTransform: 'capitalize',\n}))\n\nconst ButtonParent = ({ baseUrl, content, baseColor }) => {\n const location = useLocation()\n const searchParams = location.search\n\n return (\n \n \n {content}\n \n \n )\n}\n\nexport const GoToRegistrationPageButton = () => (\n \n)\n\nexport const GoToLoginPageButton = () => (\n \n)\n","// See Rewardful Javascript API Docs Here:\n// https://developers.rewardful.com/javascript-api/overview\n\nexport const getRewardfulReferralId = () => {\n return window.Rewardful?.referral\n\n // window.rewardful('ready', function() {\n // if(window.Rewardful.referral) {\n // // The current website visitor is a referral from an affiliate.\n // return window.Rewardful.referral\n // }\n\n // return null\n // });\n}\n","export default __webpack_public_path__ + \"static/media/talkadot-logo.3f265a1b.png\";","import React from 'react'\nimport talkadotLogo from '../../icons/talkadot-logo.png'\nimport { Typography } from '@mui/material'\nimport { styled } from '@mui/system'\n\nconst Container = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n marginBottom: '10px',\n})\n\nconst WelcomeHeading = styled(Typography)({\n textAlign: 'center',\n marginTop: '20px',\n fontWeight: '300',\n})\n\nconst WelcomeSubheading = styled(Typography)({\n fontWeight: 300,\n fontSize: '18px',\n margin: '10px 0',\n})\n\nconst TalkadotLogo = styled('img')({\n maxWidth: '200px',\n})\n\nconst FreeTrialNotice = styled(Typography)({\n fontWeight: 200,\n fontSize: '12px',\n})\n\nconst RegistrationHeader = ({\n referrer,\n plan,\n genericWelcomeMessage,\n hideSubheader,\n groupName,\n}) => {\n const renderReferrerWelcomeMessage = () => (\n
\n \n \n We're glad {referrer} referred you to us!\n \n \n {!hideSubheader && (\n \n {plan?.trialPeriodDays > 0\n ? `As a bonus, get a free trial of ${plan.name} for ${plan.trialPeriodDays} days, and a discounted price of $${plan.discountedPrice} to upgrade!`\n : \"Let's get you started on your Talkadot account\"}\n \n )}\n {plan?.trialPeriodDays > 0 && (\n \n {`(You will automatically downgrade to Talkadot Lite after the ${plan.trialPeriodDays} day trial)`}\n \n )}\n
\n )\n\n const renderGroupInvitationWelcomeMessage = () => (\n
\n \n Sign up now to accept your {groupName} invite!\n \n {!hideSubheader && (\n \n {plan?.trialPeriodDays > 0\n ? `As a bonus, get a free trial of ${plan.name} for ${plan.trialPeriodDays} days, and a discounted price to upgrade!`\n : \"Let's get you started on your Talkadot account\"}\n \n )}\n {plan?.trialPeriodDays > 0 && (\n \n {`(You will automatically downgrade to Talkadot Lite after the\n ${plan.trialPeriodDays} day trial)`}\n \n )}\n
\n )\n\n const renderGenericWelcomeMessage = () => (\n
\n \n {genericWelcomeMessage}\n \n {!hideSubheader && (\n \n {plan?.trialPeriodDays > 0\n ? `Enjoy a free trial of ${plan.name} for ${plan.trialPeriodDays} days!`\n : \"Let's get you started on your Talkadot account\"}\n \n )}\n {plan?.trialPeriodDays > 0 && (\n \n {`(You will automatically downgrade to Talkadot Lite after the ${plan.trialPeriodDays} day trial)`}\n \n )}\n
\n )\n\n return (\n \n \n {referrer\n ? renderReferrerWelcomeMessage()\n : groupName\n ? renderGroupInvitationWelcomeMessage()\n : renderGenericWelcomeMessage()}\n \n )\n}\n\nexport default RegistrationHeader\n","import { Link } from 'react-router-dom'\nimport { humanizeError } from '../../utils/errorFormatter'\nimport { styled } from '@mui/system'\nimport Alert from '@mui/material/Alert'\n\nconst EmailAlert = styled(Alert)({\n textAlign: 'left',\n '& a': {\n color: 'inherit',\n fontWeight: 'bold',\n },\n})\n\nconst RegistrationErrorFormatter = ({ email, error, errorType }) => {\n const renderStripeError = () => {\n return {humanizeError(error.message)}\n }\n\n const renderRailsError = () => {\n const railsErrorMessage = humanizeError(error)\n const emailTakenError = /Email is already in use/.test(railsErrorMessage)\n\n if (emailTakenError) {\n return (\n \n Looks like we already have an account for {email}! Would you like to{' '}\n sign in instead?\n \n )\n }\n\n return {railsErrorMessage}\n }\n\n return (\n <>{errorType === 'stripe' ? renderStripeError() : renderRailsError()}\n )\n}\n\nexport default RegistrationErrorFormatter\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgMembershipPlanIconElite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 32,\n height: 33,\n viewBox: \"0 0 32 33\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.3285 18.8361L25.3276 14.837V12.8374H15.3298H5.33203V14.837L9.33114 18.8361\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.3313 20.8358V15.5037\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.3286 20.8358V15.5037\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.6621 12.8375V10.1714C20.6621 8.53847 16.603 7.50537 15.33 7.50537C14.0569 7.50537 9.9978 8.53847 9.9978 10.1714V12.8375\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.3299 7.50533C16.8562 7.50533 17.996 6.35225 17.996 4.93257V4.07276C17.996 2.65308 16.8562 1.5 15.3299 1.5C13.8036 1.5 12.6638 2.65308 12.6638 4.07276V4.93257C12.6638 6.35225 13.8036 7.50533 15.3299 7.50533Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.6603 31.5V30.2336C28.6603 28.354 27.1873 26.8343 25.3277 26.8343V26.1678C25.3277 24.2882 23.8547 22.7686 21.9951 22.7686C20.1355 22.7686 18.6625 24.2882 18.6625 26.1678C18.6625 24.2882 17.1895 22.7686 15.3299 22.7686C13.4703 22.7686 11.9973 24.2882 11.9973 26.1678C11.9973 24.2882 10.5243 22.7686 8.6647 22.7686C6.80511 22.7686 5.3321 24.2882 5.3321 26.1678V26.8343C3.47252 26.8343 1.99951 28.354 1.99951 30.2336V31.5\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.66462 31.5001V30.2337C8.66462 28.3541 7.19162 26.8345 5.33203 26.8345\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.33 31.5001V30.2337C15.33 28.3541 13.857 26.8345 11.9974 26.8345C10.1378 26.8345 8.66479 28.3541 8.66479 30.2337V31.5001\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.995 31.5001V30.2337C21.995 28.3541 20.522 26.8345 18.6624 26.8345C16.8028 26.8345 15.3298 28.3541 15.3298 30.2337V31.5001\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.3277 26.8345C23.4681 26.8345 21.9951 28.3541 21.9951 30.2337V31.5001\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 31.5H31.3264\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMembershipPlanIconElite);\nexport default __webpack_public_path__ + \"static/media/membershipPlanIconElite.680a43ce.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgMembershipPlanIconPro(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 29,\n height: 31,\n viewBox: \"0 0 29 31\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.66772 31V20.9978\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.0049 25.6654L27.6726 20.3308V17.6636H14.3363H1V20.3308L5.6677 25.6654\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.0049 31V20.9978\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.3376 15.6632V13.6628C20.3376 11.689 15.7699 10.3154 14.3363 10.3287C12.9026 10.3154 8.33496 11.689 8.33496 13.6628V15.6632\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.3363 8.3283C16.2434 8.3283 17.6703 6.92131 17.6703 5.1876V4.1407C17.6703 2.40698 16.2434 1 14.3363 1C12.4292 1 11.0022 2.40698 11.0022 4.1407V5.1876C11.0022 6.92131 12.4292 8.3283 14.3363 8.3283Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.00171 31V21.6646H19.6707V31\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMembershipPlanIconPro);\nexport default __webpack_public_path__ + \"static/media/membershipPlanIconPro.0ec76948.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgMembershipPlanIconLite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 28,\n height: 33,\n viewBox: \"0 0 28 33\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.6585 18.8334L16.9919 16.1667L21.4385 18.3067C22.2319 18.8267 22.7252 19.9734 23.0652 20.8134C23.4052 21.6601 26.2119 27.5467 26.2119 27.5467C26.5252 28.2867 26.1919 29.2201 25.5119 29.6467L22.8452 31.5001H18.3319C15.6652 31.5001 15.6652 27.5001 18.3319 27.5001H19.6652V21.5001H7.66521V27.5001H8.99854C11.6652 27.5001 11.6652 31.5001 8.99854 31.5001H4.4852L1.81853 29.6467C1.13853 29.2201 0.805206 28.2867 1.11854 27.5467C1.11854 27.5467 3.92521 21.6601 4.26521 20.8134C4.60521 19.9667 5.09854 18.8267 5.89187 18.3067L10.3385 16.1667L13.6719 18.8334\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.6989 1.5C11.0989 1.5 8.99219 3.08 8.99219 7.5C8.99219 11.92 11.0589 13.5 13.6589 13.5C16.2589 13.5 18.3255 11.92 18.3255 7.5C18.3255 3.08 16.2989 1.5 13.6989 1.5Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMembershipPlanIconLite);\nexport default __webpack_public_path__ + \"static/media/membershipPlanIconLite.f3b6cdf3.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgInfoIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"type=fi:info,size=16,colour=white\",\n clipPath: \"url(#clip0_206_2438)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M7.99967 14.6667C11.6816 14.6667 14.6663 11.6819 14.6663 8.00004C14.6663 4.31814 11.6816 1.33337 7.99967 1.33337C4.31778 1.33337 1.33301 4.31814 1.33301 8.00004C1.33301 11.6819 4.31778 14.6667 7.99967 14.6667Z\",\n stroke: \"white\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_2\",\n d: \"M8 10.6667V8\",\n stroke: \"white\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_3\",\n d: \"M8 5.33337H8.00667\",\n stroke: \"white\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_206_2438\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgInfoIcon16X16);\nexport default __webpack_public_path__ + \"static/media/infoIcon_16x16.4f53820f.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgAlertIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 22,\n viewBox: \"0 0 22 22\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vector\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_2\",\n d: \"M11 21C16.5 21 21 16.5 21 11C21 5.5 16.5 1 11 1C5.5 1 1 5.5 1 11C1 16.5 5.5 21 11 21Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_3\",\n d: \"M11 7V12\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_4\",\n d: \"M10.9941 15H11.0031\",\n stroke: \"#323A46\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAlertIcon);\nexport default __webpack_public_path__ + \"static/media/alertIcon.687fafa2.svg\";\nexport { ForwardRef as ReactComponent };","import moment from 'moment'\n\nexport const timeInUnix = (date) => {\n if (!date) {\n return null\n }\n\n return moment(date).unix()\n}\n\nexport const trialEndDate = (trialDaysRemaining) => {\n const daysToAdd = trialDaysRemaining ? trialDaysRemaining : 0\n\n return moment().add(daysToAdd, 'days').format('MMMM D')\n}\n","export const cleanBulletItem = (item) => {\n // remove tags for backwards compatibility\n return item.replace(//g, '').replace(/<\\/b>/g, '')\n}\n","export const IMPERSONATE_USER = 'IMPERSONATE_USER'\nexport const STOP_IMPERSONATION = 'STOP_IMPERSONATION'\nexport const LOAD_AVAILABLE_MEMBERSHIP_PLANS = 'LOAD_AVAILABLE_MEMBERSHIP_PLANS'\nexport const LOAD_AVAILABLE_MEMBERSHIP_STATUSUS =\n 'LOAD_AVAILABLE_MEMBERSHIP_STATUSUS'\nexport const LOAD_USERS = 'LOAD_USERS'\nexport const UPDATE_USER = 'UPDATE_USER'\nexport const SET_REFERRER_USER_OPTIONS = 'SET_REFERRER_USER_OPTIONS'\n","import * as ActionTypes from './actionTypes'\n\nexport const initialAdminState = {\n impersonation: {\n isActive: false,\n user: {},\n },\n availableMembershipPlans: {\n legacyPlans: [],\n basePlans: [],\n referralPlans: [],\n },\n availableMembershipStatusus: [],\n users: [],\n referrerUserOptions: [],\n}\n\nexport const adminReducer = (state, action) => {\n switch (action.type) {\n case ActionTypes.LOAD_USERS:\n return {\n ...state,\n users: action.payload,\n }\n case ActionTypes.UPDATE_USER:\n return {\n ...state,\n users: state.users.map((user) =>\n user.id === action.payload.id ? { ...action.payload } : { ...user }\n ),\n }\n case ActionTypes.IMPERSONATE_USER:\n return {\n ...state,\n impersonation: {\n ...state.impersonation,\n isActive: true,\n user: action.payload,\n },\n }\n case ActionTypes.STOP_IMPERSONATION:\n return {\n ...state,\n impersonation: {\n ...state.impersonation,\n isActive: false,\n user: {},\n },\n }\n case ActionTypes.LOAD_AVAILABLE_MEMBERSHIP_PLANS:\n return {\n ...state,\n availableMembershipPlans: action.payload,\n }\n case ActionTypes.LOAD_AVAILABLE_MEMBERSHIP_STATUSUS:\n return {\n ...state,\n availableMembershipStatusus: action.payload,\n }\n case ActionTypes.SET_REFERRER_USER_OPTIONS:\n return {\n ...state,\n referrerUserOptions: action.payload,\n }\n default:\n return { ...state }\n }\n}\n","import React, { createContext, useReducer, useContext } from 'react'\nimport { adminReducer, initialAdminState } from './adminReducer'\nimport { GroupContext } from '../groups/groupContext'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport history from '../../routes/history'\nimport Api from '../../services/api'\nimport * as Cookies from '../../services/cookies'\nimport * as ActionTypes from './actionTypes'\n\nexport const AdminContext = createContext({\n adminState: initialAdminState,\n})\n\nconst AdminContextProvider = (props) => {\n const [adminState, dispatch] = useReducer(adminReducer, initialAdminState)\n const {\n showFullPageLoader,\n hideFullPageLoader,\n setUserData,\n redirectUser,\n setNotification,\n } = useContext(AuthenticationContext)\n const { setGroups } = useContext(GroupContext)\n\n const fetchUsers = async (searchTerm) => {\n if (!searchTerm?.length > 0) {\n return dispatch({\n type: ActionTypes.LOAD_USERS,\n payload: [],\n })\n }\n\n try {\n const res = await Api.adminUserList({ search_term: searchTerm })\n\n if (!res.errors) {\n dispatch({\n type: ActionTypes.LOAD_USERS,\n payload: res,\n })\n } else {\n throw res.errors\n }\n } catch (err) {\n alert(JSON.stringify(err))\n }\n }\n\n const updateUser = async (user, updateParams) => {\n if (!user || !updateParams) {\n return\n }\n\n const params = {\n user: {\n ...updateParams,\n },\n }\n\n try {\n const res = await Api.updateAdminUser(params, user.id)\n\n if (!res.errors) {\n dispatch({\n type: ActionTypes.UPDATE_USER,\n payload: res,\n })\n setNotification(\n `${user.first_name} ${user.last_name} successfully updated!`,\n 'success'\n )\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const updateReferralPayoutSetting = async (payoutSettingId, updateParams) => {\n try {\n const res = await Api.editAdminReferralPayoutSetting(payoutSettingId, {\n referral_payout_setting: {\n ...updateParams,\n },\n })\n\n if (!res.error) {\n dispatch({\n type: ActionTypes.UPDATE_USER,\n payload: res,\n })\n } else {\n throw res.error\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const updateMembership = async (updateParams, user) => {\n try {\n showFullPageLoader()\n\n const res = await Api.updateMembership(\n { membership: updateParams },\n user.membership.id\n )\n\n if (!res.errors) {\n dispatch({\n type: ActionTypes.UPDATE_USER,\n payload: res,\n })\n hideFullPageLoader()\n setNotification(\n `${user.first_name} ${user.last_name} successfully updated!`,\n 'success'\n )\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n setNotification(err)\n }\n }\n\n const stopImpersonatingUser = async () => {\n Cookies.deleteImpersonationToken()\n\n try {\n const res = await Api.loadAuthenticatedUserData()\n\n if (!res.errors) {\n setUserData(res.userData)\n setGroups(res.groupData)\n dispatch({\n type: ActionTypes.STOP_IMPERSONATION,\n })\n }\n } catch (err) {\n alert(JSON.stringify(err))\n }\n\n return history.push('/admin')\n }\n\n const impersonateUser = async (user) => {\n const params = {\n impersonation: {\n impersonation_user_id: user.id,\n },\n }\n\n try {\n showFullPageLoader('Hang tight ... ')\n const res = await Api.impersonateUser(params)\n\n if (!res.errors) {\n Cookies.saveImpersonationToken(res.impersonationToken)\n dispatch({\n type: ActionTypes.IMPERSONATE_USER,\n payload: res.user,\n })\n setGroups(res.groupData)\n setUserData(res.user)\n hideFullPageLoader()\n return redirectUser(res.user)\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n return alert(JSON.stringify(err))\n }\n }\n\n const fetchReferralUserOptions = async () => {\n try {\n const res = await Api.getReferralUserOptions()\n\n if (!res.errors) {\n dispatch({\n type: ActionTypes.SET_REFERRER_USER_OPTIONS,\n payload: res,\n })\n } else {\n throw res.errors\n }\n } catch (err) {\n alert(\n \"Something went wrong loading the referral options. Try refreshing the page - if that doesn't work, ask the devs!\"\n )\n }\n }\n\n const fetchAvailableMembershipPlans = async () => {\n try {\n showFullPageLoader()\n const res = await Api.getMembershipPlans()\n\n if (!res.errors) {\n dispatch({\n type: ActionTypes.LOAD_AVAILABLE_MEMBERSHIP_PLANS,\n payload: res,\n })\n return hideFullPageLoader()\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n return alert(JSON.stringify(err))\n }\n }\n\n const fetchAvailableMembershipStatusus = async () => {\n try {\n showFullPageLoader()\n const res = await Api.getAvailableMembershipStatusus()\n\n if (!res.errors) {\n dispatch({\n type: ActionTypes.LOAD_AVAILABLE_MEMBERSHIP_STATUSUS,\n payload: res.statusus,\n })\n return hideFullPageLoader()\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n return alert(JSON.stringify(err))\n }\n }\n\n const deleteSpeaker = async (speakerIdToDelete) => {\n try {\n showFullPageLoader()\n const res = await Api.adminDeleteSpeaker(speakerIdToDelete)\n\n if (!res.errors) {\n dispatch({\n type: ActionTypes.LOAD_USERS,\n payload: adminState.users.filter(\n (user) => user.id !== speakerIdToDelete\n ),\n })\n hideFullPageLoader()\n alert('Speaker has been successfully deleted!')\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n alert(JSON.stringify(err))\n }\n }\n\n return (\n \n {props.children}\n \n )\n}\n\nexport default AdminContextProvider\n","import { useContext } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { AdminContext } from '../features/admin/adminContext'\nimport { AuthenticationContext } from '../features/authentication/authenticationContext'\nimport Api from './api'\n\nconst useCustomerIo = () => {\n const { adminState } = useContext(AdminContext)\n const {\n authData: { showUpgradeModal: isUpgradeModalOpen },\n } = useContext(AuthenticationContext)\n const isImpersonating = adminState?.impersonation?.isActive\n const location = useLocation()\n\n const sendCodeDownloadedEvent = ({ code }) => {\n if (isImpersonating) return\n\n const customerIoEventParams = {\n customerio: {\n event_name: 'code_downloaded',\n data: {\n code,\n },\n },\n }\n\n return Api.sendCustomerIoEvent(customerIoEventParams)\n }\n\n const viewedPricingPage = () => {\n if (isImpersonating) return\n\n let data\n\n if (isUpgradeModalOpen) {\n data = { source: getEntryPointFromPath(), access_method: 'modal' }\n } else {\n data = extractNavigationSource()\n }\n\n const customerIoEventParams = {\n customerio: {\n event_name: 'viewed_pricing_page',\n data: data,\n },\n }\n\n return Api.sendCustomerIoEvent(customerIoEventParams)\n }\n\n const planAddedToCart = (inputData = {}) => {\n if (isImpersonating) return\n\n let locData\n\n if (isUpgradeModalOpen) {\n locData = { source: getEntryPointFromPath(), access_method: 'modal' }\n } else {\n locData = extractNavigationSource()\n }\n\n const customerIoEventParams = {\n customerio: {\n event_name: 'added_to_cart',\n data: { ...locData, ...inputData },\n },\n }\n\n return Api.sendCustomerIoEvent(customerIoEventParams)\n }\n\n const viewedCodesPage = () => {\n if (isImpersonating) return\n\n const customerIoEventParams = {\n customerio: {\n event_name: 'viewed_codes_page',\n data: {},\n },\n }\n\n return Api.sendCustomerIoEvent(customerIoEventParams)\n }\n\n const getEntryPointFromPath = (pathname = null) => {\n if (!pathname) {\n pathname = location.pathname\n }\n\n // Special case for event-report URLs\n // Check if the URL matches the pattern /{something}/event-report/{something}\n const eventReportMatch = pathname.match(/\\/[^/]+\\/event-report\\/[^/]+/)\n if (eventReportMatch) {\n return 'event-report'\n }\n\n return pathname.split('/')[1]\n }\n\n const extractNavigationSource = () => {\n // All in app redirects to the pricing page have a source\n const accessMethod = location?.state?.accessMethod\n const source = location?.state?.source\n\n if (!source) {\n if (process.env.REACT_APP_SENTRY_ENVIRONMENT !== 'production') {\n console.log(\n '%c⚠️ Direct navigation to billing detected',\n '\\nIf this is not a direct request to this URL, use the billingRedirect hook instead of linking directly to the billing page.'\n )\n }\n\n return {\n source: 'direct',\n access_method: 'direct',\n }\n } else {\n return {\n source: getEntryPointFromPath(source),\n access_method: accessMethod,\n }\n }\n }\n\n return {\n sendCodeDownloadedEvent,\n viewedPricingPage,\n planAddedToCart,\n viewedCodesPage,\n }\n}\n\nexport default useCustomerIo\n","import { useContext } from 'react'\nimport { Button } from '@mui/material'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nconst UpgradeModalLauncher = ({\n content,\n variant,\n color,\n id,\n cx,\n upgradeHelperText,\n permissionRequirements,\n}) => {\n const { toggleUpgradeModal, authData } = useContext(AuthenticationContext)\n const { user } = authData\n const { membership } = user\n\n // Note: Might want to move the logic of if to show this or not out of here\n // and into the individual components where we render the launcher. For now it's ok\n return (\n membership.shouldShowUpgrades && (\n \n toggleUpgradeModal(true, upgradeHelperText, permissionRequirements)\n }\n variant={variant}\n color={color || 'primary'}\n id={id}\n className={cx}>\n {content}\n \n )\n )\n}\n\nexport default UpgradeModalLauncher\n","import { styled } from '@mui/system'\nimport { Typography, Button, Tooltip } from '@mui/material'\n\nimport { ReactComponent as CheckIcon } from '../../icons/checkMarkIcon_16x16.svg'\nimport { ReactComponent as EliteIcon } from '../../icons/membershipPlanIconElite.svg'\nimport { ReactComponent as ProIcon } from '../../icons/membershipPlanIconPro.svg'\nimport { ReactComponent as LiteIcon } from '../../icons/membershipPlanIconLite.svg'\nimport { ReactComponent as InfoIcon } from '../../icons/infoIcon_16x16.svg'\n\nimport {\n trackAddToCart,\n trackDowngradeContactSupport,\n} from '../../services/metrics'\nimport { trialEndDate } from '../../utils/dateTime'\nimport { cleanBulletItem } from './helpers'\nimport useCustomerIo from '../../services/customerio'\n\nimport UpgradeModalLauncher from '../common/UpgradeModalLauncher'\nimport moment from 'moment'\n\nconst PricingGridParent = styled('div', {\n shouldForwardProp: (prop) => prop !== 'mostPopularPlan',\n})(({ mostPopularPlan, theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n border: mostPopularPlan\n ? `1px solid ${theme.palette.primary.main}`\n : `1px solid ${theme.palette.border.main}`,\n borderRadius: theme.shape.borderRadius.xxs,\n}))\n\nconst PlanNameWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n minHeight: '208px',\n padding: theme.spacing(5, 3, 2.5, 3),\n background: theme.palette.base.white,\n borderTopLeftRadius: theme.shape.borderRadius.xxs,\n borderTopRightRadius: theme.shape.borderRadius.xxs,\n}))\n\nconst PlanIcon = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2),\n svg: {\n height: '30px',\n },\n}))\n\nconst PlanName = styled(Typography)(({ theme, color }) => ({\n letterSpacing: '-1.56px',\n fontWeight: '700',\n color: color ? theme.palette[color].main : '',\n}))\n\nconst PlanNameSubtext = styled(Typography)({})\n\nconst PlanPriceBulletsWrapper = styled('div', {\n shouldForwardProp: (prop) => prop !== 'mostPopularPlan',\n})(({ theme, mostPopularPlan }) => ({\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n padding: theme.spacing(3),\n background: mostPopularPlan\n ? theme.palette.primary.extraLight\n : theme.palette.surface.subtle,\n borderBottomLeftRadius: theme.shape.borderRadius.xxs,\n borderBottomRightRadius: theme.shape.borderRadius.xxs,\n}))\n\nconst FeatureBulletsHeader = styled(Typography)(({ theme }) => ({\n fontWeight: '700',\n marginBottom: theme.spacing(2),\n}))\n\nconst FeatureBullets = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1.5),\n}))\n\nconst FeatureBullet = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'flex-start',\n svg: {\n width: '10px',\n minWidth: '10px',\n marginRight: theme.spacing(1.5),\n marginTop: '3px',\n },\n}))\n\nconst PlanPrice = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'isDiscounted',\n})(({ theme, isDiscounted }) => ({\n fontWeight: '700',\n color: isDiscounted ? theme.palette.error.semiDark : '',\n}))\n\nconst PlanPriceInterval = styled(Typography)(({ theme }) => ({\n fontSize: '0.875rem',\n color: theme.palette.neutral.main,\n marginLeft: theme.spacing(1),\n paddingTop: theme.spacing(1),\n}))\n\nconst PlanPriceSubtext = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.veryDark,\n span: {\n textDecoration: 'line-through',\n },\n}))\n\nconst RebateAlert = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'inWelcomeFlow',\n})(({ theme }) => ({\n background: theme.palette.error.semiDark,\n color: theme.palette.base.white,\n padding: theme.spacing(0.5, 1),\n marginBottom: theme.spacing(3),\n textAlign: 'center',\n borderRadius: theme.shape.borderRadius.xxxs,\n}))\n\nconst UpgradeButton = styled(Button, {\n shouldForwardProp: (prop) => prop !== 'buttonColor',\n})(({ theme, buttonColor }) => ({\n marginTop: theme.spacing(3),\n marginBottom: theme.spacing(4),\n fontSize: '1.125rem',\n color: buttonColor === 'tertiary' ? 'white' : theme.palette.neutral.darkest,\n border:\n buttonColor === 'white' ? `1px solid ${theme.palette.border.main}` : '',\n '&:hover': {\n backgroundColor: buttonColor === 'white' ? theme.palette.base.white : '',\n },\n}))\n\nconst FlexRowContainer = styled('div')({\n display: 'flex',\n})\n\nconst FlexColumnContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n})\n\nconst LegacyContent = styled('span')({\n position: 'relative',\n})\n\nconst LegacyInfoIcon = styled(InfoIcon)(({ theme }) => ({\n fill: theme.palette.base.black,\n height: '20px',\n width: '20px',\n position: 'absolute',\n top: '10px',\n right: '-10px',\n transform: 'translate(50%, -50%)',\n}))\n\nconst PriceCell = ({\n plan,\n inWelcomeFlow,\n upgradingPaidPlan,\n trialDaysRemaining,\n subscribedWhileTrialing,\n isTrialing,\n isCurrentPlan,\n}) => {\n let annualPrice = plan.price\n let retailPrice = null\n let hasOneTimeDiscount = false\n let hasRecurringDiscount = false\n let hasImpliedDiscount = false\n let offerExpiration = plan.offerExpiration\n let hasTemporaryDiscount = false\n\n if (subscribedWhileTrialing && plan.hasRecurringDiscount && isCurrentPlan) {\n annualPrice = plan.discountedPrice\n }\n\n if (isTrialing) {\n if (\n plan.hasOneTimeDiscount ||\n plan.hasRecurringDiscount ||\n plan.hasImpliedDiscount\n ) {\n annualPrice = plan.discountedPrice\n retailPrice = plan.retailPrice\n }\n\n hasRecurringDiscount = plan.hasRecurringDiscount\n hasOneTimeDiscount = plan.hasOneTimeDiscount\n hasImpliedDiscount = plan.hasImpliedDiscount\n }\n\n if (!isCurrentPlan && !isTrialing && plan.temporaryOfferExpiration) {\n annualPrice = plan.discountedPrice\n retailPrice = plan.retailPrice\n\n offerExpiration = plan.temporaryOfferExpiration\n hasTemporaryDiscount = true\n }\n\n const renderSubText = () => {\n if (\n hasOneTimeDiscount ||\n hasRecurringDiscount ||\n hasImpliedDiscount ||\n hasTemporaryDiscount\n ) {\n return (\n <>\n Normally{' '}\n \n ${Math.ceil(retailPrice / 12)} / month or ${retailPrice} / year\n \n \n )\n }\n\n // Keep as spacer to keep layout consistent\n return ${annualPrice} / year\n }\n\n const renderRebateAlert = () => {\n if (hasRecurringDiscount) {\n return (\n \n Upgrade by {trialEndDate(trialDaysRemaining)} and save $\n {plan.price - annualPrice}/ year!\n \n )\n }\n\n if (hasImpliedDiscount) {\n return (\n \n Upgrade by {trialEndDate(trialDaysRemaining)} and save $\n {retailPrice - annualPrice}/ year!\n \n )\n }\n\n if (hasOneTimeDiscount) {\n return (\n \n Upgrade by {trialEndDate(trialDaysRemaining)} and save $\n {plan.price - annualPrice} on your first year!\n \n )\n }\n\n if (offerExpiration && !isCurrentPlan) {\n return (\n \n Deal ends {moment(offerExpiration).format('MMMM D')}!\n \n )\n }\n\n // NOTE: this functions as a spacer to keep the layout consistent\n if (isTrialing && !hasRecurringDiscount && !hasOneTimeDiscount) {\n return (\n \n Upgrade by {trialEndDate(trialDaysRemaining)} and save $\n {plan.price - annualPrice}/ year!\n \n )\n }\n }\n\n if (plan.price) {\n return (\n <>\n {renderRebateAlert()}\n \n \n ${Math.ceil(annualPrice / 12)}\n \n \n / month\n \n (${annualPrice} billed annually)\n \n \n \n {renderSubText()}\n \n )\n }\n\n return (\n <>\n {renderRebateAlert()}\n \n $0\n \n Free Forever\n {(!plan.price || plan.price === 0) && isTrialing && inWelcomeFlow && (\n \n Your account will automatically revert to this after{' '}\n {trialDaysRemaining} days.\n \n )}\n \n )\n}\n\nconst PricingGrid = ({\n plan,\n setSelectedPlan,\n selectedPlan,\n currentPlan,\n isCurrentPlan,\n isTrialing,\n subscribedWhileTrialing,\n trialDaysRemaining,\n inWelcomeFlow,\n user,\n upgradingPaidPlan = false,\n}) => {\n const { planAddedToCart } = useCustomerIo()\n\n const isDowngrade = !isTrialing && currentPlan?.planTier > plan.planTier\n\n const handleClick = () => {\n if (isDowngrade) {\n trackDowngradeContactSupport({\n email: user?.email,\n plan: plan?.name,\n value: plan?.price,\n })\n\n window.open(\n `mailto:hello@talkadot.com?subject=${\n encodeURIComponent(\"I'd like to downgrade my Talkadot plan\") || ''\n }`\n )\n } else {\n let planPrice\n if (\n isTrialing &&\n (plan?.hasOneTimeDiscount ||\n plan?.hasRecurringDiscount ||\n plan?.hasImpliedDiscount)\n ) {\n planPrice = plan?.discountedPrice\n } else {\n planPrice = plan?.price\n }\n\n planAddedToCart({ name: plan?.name, price: planPrice })\n trackAddToCart({ plan: plan?.name, value: planPrice })\n setSelectedPlan(plan)\n }\n }\n\n const isOnFreePlan =\n (!plan.price || plan.price === 0) && isTrialing && inWelcomeFlow\n\n const isTrialPlan = isTrialing && plan?.planType === currentPlan?.planType\n const isTrialDowngrade = isTrialing && plan?.planType === 'Lite'\n\n const renderCta = () => {\n let buttonText = 'Upgrade Now'\n\n if (isTrialPlan) {\n buttonText = 'On Trial - Upgrade Now!'\n } else if (isOnFreePlan) {\n buttonText = 'Continue to Trial'\n } else if (isCurrentPlan) {\n buttonText = 'Your Current Plan'\n } else if (isTrialDowngrade) {\n buttonText = 'Your Plan After Trial Ends'\n } else if (isDowngrade) {\n buttonText = 'Contact Support'\n }\n\n const buttonColor = mostPopularPlan\n ? 'tertiary'\n : isCurrentPlan\n ? 'neutral'\n : 'white'\n\n if (!selectedPlan) {\n return (\n \n {buttonText}\n \n )\n }\n if (inWelcomeFlow && isTrialing) {\n return (\n \n )\n }\n }\n\n const mostPopularPlan = plan.name === 'Talkadot Pro' && !isCurrentPlan\n\n let planIcon = null\n let planName = ''\n let planNameSubtext = ''\n\n switch (plan.name?.trim()) {\n case 'Talkadot Lite':\n planIcon = \n planName = 'Lite'\n planNameSubtext = 'for speaking hobbyists'\n break\n case 'Talkadot Pro':\n planIcon = \n planName = 'Pro'\n planNameSubtext = 'for speaking professionals'\n break\n case 'NSA Talkadot Pro':\n planIcon = \n planName = 'NSA Pro'\n planNameSubtext = 'for speaking professionals'\n break\n case 'Talkadot Elite':\n planIcon = \n planName = 'Elite'\n planNameSubtext = 'for serious speaking professionals with small teams'\n break\n case 'Talkadot Charter':\n planIcon = \n planName = 'Charter'\n planNameSubtext = 'for early adopters'\n break\n default:\n break\n }\n\n const renderPlanNameContent = () => {\n if (plan.isLegacyPlan) {\n return (\n \n {planName} -{' '}\n \n Legacy\n \n {' '}\n \n \n \n )\n }\n\n return <>{planName}\n }\n\n return (\n \n \n {planIcon}\n \n {renderPlanNameContent()}\n \n {planNameSubtext}\n \n \n \n {renderCta()}\n {planName !== 'Lite' && (\n \n Everything in {planName.includes('Pro') ? 'Lite' : 'Pro'}, plus:\n \n )}\n \n {plan?.featureBullets?.map((item, i) => {\n return (\n \n \n {cleanBulletItem(item)}\n \n )\n })}\n \n \n \n )\n}\n\nexport default PricingGrid\n","import React from 'react'\nimport { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\n\nconst TosContent = styled(Typography)({\n fontWeight: '100',\n fontSize: '10px',\n textAlign: 'left',\n padding: '0 5px',\n})\n\nconst TermsOfService = () => (\n \n By registering, you agree to our{' '}\n \n Terms of Service\n \n ,{' '}\n \n Privacy Policy\n {' '}\n and{' '}\n \n Data Processing Agreement\n \n .\n \n)\n\nexport default TermsOfService\n","import { useContext, useState } from 'react'\nimport {\n Elements,\n CardElement,\n useElements,\n useStripe,\n} from '@stripe/react-stripe-js'\nimport { loadStripe } from '@stripe/stripe-js'\nimport { styled } from '@mui/system'\nimport { TextField } from '@mui/material'\n\nimport { AuthenticationContext } from './authenticationContext'\nimport envConfig from '../../envConfig'\nimport isEmail from 'validator/lib/isEmail'\nimport Api from '../../services/api'\nimport { trackConversion } from '../../services/metrics'\nimport { trackSignUp, trackPurchase } from '../../services/metrics'\nimport { getRewardfulReferralId } from '../../utils/rewardful'\n\nimport {\n RegistrationContainer,\n InnerContainer,\n CheckoutForm,\n AuthButton,\n FormWrapper,\n} from './RegistrationParent'\nimport RegistrationHeader from './Header'\nimport RegistrationErrorFormatter from './RegistrationErrorFormatter'\nimport PricingGrid from '../payments/PricingGrid'\nimport TermsOfService from './TermsOfService'\nimport { GoToLoginPageButton } from './AuthLinkButtons'\nimport { YellowPaintGraphic } from '../common/SidePaintGraphics'\n\nconst stripePromise = loadStripe(envConfig.REACT_APP_STRIPE_P_KEY)\n\nconst PricingGridContainer = styled('div')(({ theme }) => ({\n [theme.breakpoints.down(1028)]: {\n display: 'none',\n },\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n}))\n\nconst MobilePricingGridContainer = styled('div')(({ theme }) => ({\n [theme.breakpoints.up(1028)]: {\n display: 'none',\n },\n display: 'flex',\n alignItems: 'center',\n marginTop: '35px',\n}))\n\nconst CreditCardContainer = styled('div')({\n margin: '20px 0',\n padding: '20px',\n border: '1px solid lightgray',\n borderRadius: '5px',\n})\n\nconst StyledTextField = styled(TextField)({\n // Set input font size to 16px to prevent mobile zoom\n '& .MuiInputBase-input': {\n fontSize: '1rem',\n },\n})\n\nconst SummaryAndPaymentForm = ({\n plan,\n referrer,\n referrerId,\n utmParams,\n gaParams,\n groupName,\n}) => {\n const stripe = useStripe()\n const elements = useElements()\n const [cardName, setCardName] = useState('')\n const [cardNameError, setCardNameError] = useState()\n const [checkoutLoading, setCheckoutLoading] = useState(false)\n const [email, setEmail] = useState('')\n const [password, setPassword] = useState('')\n const [emailError, setEmailError] = useState(null)\n const [passwordError, setPasswordError] = useState(null)\n const [genericInlineError, setGenericInlineError] = useState(null)\n\n const {\n showFullPageLoader,\n hideFullPageLoader,\n handleAuthenticationSuccess,\n } = useContext(AuthenticationContext)\n\n const handleSubmit = async (e) => {\n e.preventDefault()\n\n if (!email || !isEmail(email)) {\n return setEmailError('Please fill out a valid email')\n }\n\n if (!password) {\n return setPasswordError('please fill out a valid password')\n }\n\n if (password.length < 8) {\n return setPasswordError('Password must be at least 8 characters')\n }\n\n // Dont allow double clicks\n if (checkoutLoading) {\n return false\n }\n\n if (!stripe || !elements) {\n setCheckoutLoading(false)\n return\n }\n\n if (!cardName) {\n setCheckoutLoading(false)\n return setCardNameError('Please fill out name on card')\n }\n\n setCheckoutLoading(true)\n showFullPageLoader('Creating Your Account!')\n\n const payload = await stripe.createPaymentMethod({\n type: 'card',\n card: elements.getElement(CardElement),\n billing_details: {\n name: cardName,\n },\n })\n\n if (payload.error) {\n setCheckoutLoading(false)\n hideFullPageLoader()\n\n return setGenericInlineError(\n \n )\n }\n\n try {\n const { utm_source, utm_medium, utm_campaign } = utmParams\n const { ga_id, gcl_id } = gaParams\n const params = {\n plan_token: plan.token,\n registration: {\n email: email,\n password: password,\n referrer: referrer,\n referrer_user_id: referrerId,\n utm_source,\n utm_medium,\n utm_campaign,\n ga_id,\n gcl_id,\n rewardful_referrer_id: getRewardfulReferralId(),\n },\n stripe_card_info: {\n ...payload.paymentMethod,\n },\n }\n\n const res = await Api.registerPaidUser(params)\n\n if (!res.errors) {\n trackConversion({ plan: plan?.name, value: plan?.price })\n trackPurchase({\n plan: plan,\n value: plan?.price,\n // Note: the transaction_id is the charge_id from the payment_intent in latest_invoice returned from stripe Subscription.create\n transactionId: res?.transaction_id,\n // Note: Coupon is not passed because it only applies to upgrades while on trial\n })\n trackSignUp(res.auth?.user?.id, res.auth?.user?.email)\n setCheckoutLoading(false)\n hideFullPageLoader()\n return handleAuthenticationSuccess(res.auth)\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n setCheckoutLoading(false)\n setGenericInlineError(\n \n )\n }\n }\n\n return (\n \n \n {plan && (\n \n \n \n )}\n \n \n \n \n \n {genericInlineError}\n \n {\n setGenericInlineError(null)\n setEmailError(null)\n setEmail(e.target.value)\n }}\n />\n {\n setGenericInlineError(null)\n setPasswordError(null)\n setPassword(e.target.value)\n }}\n />\n {\n setGenericInlineError(null)\n setCardNameError(null)\n setCardName(e.target.value)\n }}\n />\n \n \n \n \n handleSubmit(e)}\n disabled={checkoutLoading}>\n Create My Account\n \n \n {plan && (\n \n \n \n )}\n \n \n \n )\n}\n\nconst RegistrationCheckout = ({\n plan,\n referrer,\n referrerId,\n utmParams,\n gaParams,\n}) => {\n return (\n \n \n \n )\n}\n\nexport default RegistrationCheckout\n","import { useState, useContext } from 'react'\nimport { styled } from '@mui/system'\nimport { TextField } from '@mui/material'\n\nimport isEmail from 'validator/lib/isEmail'\nimport RegistrationErrorFormatter from './RegistrationErrorFormatter'\nimport { AuthenticationContext } from './authenticationContext'\n\nimport Api from '../../services/api'\nimport { trackSignUp } from '../../services/metrics'\nimport { getRewardfulReferralId } from '../../utils/rewardful'\n\nimport {\n RegistrationContainer,\n InnerContainer,\n CheckoutForm,\n AuthButton,\n Divider,\n InnerDivider,\n FormWrapper,\n} from './RegistrationParent'\nimport RegistrationHeader from './Header'\nimport TermsOfService from './TermsOfService'\nimport OAuthButtons, { AUTHENTICATION_TYPES } from './OAuthButtons'\nimport { GoToLoginPageButton } from './AuthLinkButtons'\nimport { YellowPaintGraphic } from '../common/SidePaintGraphics'\nimport * as Messages from '../common/AlertMessages'\n\nconst StyledTextField = styled(TextField)({\n // Set input font size to 16px to prevent mobile zoom\n '& .MuiInputBase-input': {\n fontSize: '1rem',\n },\n})\n\nconst UnpaidRegistrationCheckout = ({\n plan,\n registrationToken,\n referrer,\n referrerId,\n utmParams,\n gaParams,\n groupName,\n}) => {\n const [email, setEmail] = useState('')\n const [password, setPassword] = useState('')\n const [emailError, setEmailError] = useState(null)\n const [passwordError, setPasswordError] = useState(null)\n const [genericInlineError, setGenericInlineError] = useState(null)\n\n const {\n authData,\n showFullPageLoader,\n hideFullPageLoader,\n handleAuthenticationSuccess,\n } = useContext(AuthenticationContext)\n\n const handleSubmit = async () => {\n if (!email || !isEmail(email)) {\n return setEmailError('Please fill out a valid email')\n }\n\n if (!password) {\n return setPasswordError('please fill out a valid password')\n }\n\n if (password.length < 8) {\n return setPasswordError('Password must be at least 8 characters')\n }\n\n return await registerUser()\n }\n\n const registerUser = async () => {\n const { fullPageLoader } = authData\n\n // Prevent Double Clicks\n if (fullPageLoader?.isActive) {\n return\n }\n\n showFullPageLoader(Messages.AUTH_MESSAGE)\n\n const { utm_source, utm_medium, utm_campaign } = utmParams\n const { ga_id, glc_id } = gaParams\n\n const params = {\n plan_token: plan?.token,\n registration_token: registrationToken,\n registration: {\n email: email,\n password: password,\n referrer: referrer,\n referrer_user_id: referrerId,\n utm_source,\n utm_medium,\n utm_campaign,\n ga_id,\n glc_id,\n rewardful_referrer_id: getRewardfulReferralId(),\n },\n }\n\n try {\n const res = await Api.registerUnpaidUser(params)\n if (!res.errors && res.auth.auth_token) {\n hideFullPageLoader()\n trackSignUp(res.auth.user?.id, res.auth.user?.email)\n return handleAuthenticationSuccess(res.auth)\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n return setGenericInlineError(\n \n )\n }\n }\n\n return (\n \n \n \n \n \n \n {genericInlineError}\n \n {\n setGenericInlineError(null)\n setEmailError(null)\n setEmail(e.target.value)\n }}\n />\n {\n setGenericInlineError(null)\n setPasswordError(null)\n setPassword(e.target.value)\n }}\n />\n \n handleSubmit()}>\n Create My Free Account!\n \n \n \n \n
OR
\n \n
\n \n
\n
\n
\n )\n}\n\nexport default UnpaidRegistrationCheckout\n","import React, { useState, useContext, useEffect } from 'react'\nimport { useLocation } from 'react-router-dom'\nimport { AuthenticationContext } from './authenticationContext'\nimport Api from '../../services/api'\nimport * as qs from 'qs'\nimport { styled } from '@mui/system'\nimport RegistrationCheckout from './RegistrationCheckout'\nimport UnpaidRegistrationCheckout from './UnpaidRegistrationCheckout'\nimport { Button } from '@material-ui/core'\nimport { getGaCookies, getUtmCookies } from '../../services/cookies'\n\nexport const RegistrationContainer = styled('div')(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: 'minmax(200px, 500px) 1fr',\n position: 'absolute',\n top: '0',\n left: '0',\n height: '100vh',\n width: '100vw',\n backgroundColor: theme.palette.base.white,\n [theme.breakpoints.down(1028)]: {\n gridTemplateColumns: '1fr',\n },\n}))\n\nexport const AuthButton = styled(Button)({\n textTransform: 'capitalize',\n color: 'white',\n fontSize: '19px',\n marginTop: '20px',\n})\n\nexport const InnerContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n [theme.breakpoints.up(1028)]: {\n alignItems: 'center',\n },\n}))\n\nexport const FormWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n width: '100%',\n maxWidth: '425px',\n padding: '60px 40px 40px',\n [theme.breakpoints.up(1028)]: {\n width: '425px',\n padding: '20px',\n },\n}))\n\nexport const CheckoutForm = styled('div')({\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n})\n\nexport const Divider = styled('div')({\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n alignItems: 'center',\n justifyContent: 'space-evenly',\n fontWeight: '200',\n margin: '20px 0px',\n flexGrow: '0.2',\n})\n\nexport const InnerDivider = styled('div')({\n flexGrow: '0.4',\n alignItems: 'center',\n border: '1px solid lightgray',\n})\n\nconst RegistrationParent = () => {\n const [membershipPlan, setMembershipPlan] = useState(null)\n const [groupName, setGroupName] = useState(null)\n\n const {\n showFullPageLoader,\n hideFullPageLoader,\n setNotification,\n setGroupInvitations,\n authData,\n } = useContext(AuthenticationContext)\n\n const location = useLocation()\n const urlParams = qs.parse(location.search, { ignoreQueryPrefix: true })\n const referrer = urlParams.via\n const planToken = urlParams.pt\n const registrationToken = urlParams.rt\n const groupInvitationToken = urlParams.git\n const groupInvitation = authData?.user?.groupInvitations[0]\n const showPaidCheckout =\n membershipPlan?.price > 0 && !membershipPlan?.trialPeriodDays\n\n useEffect(() => {\n const fetchMembershipPlanDetails = async () => {\n try {\n showFullPageLoader()\n const res = await Api.getMembershipPlanDetails({\n plan_token: planToken,\n registration_token: registrationToken,\n is_direct_pay_link: planToken ? true : null,\n })\n\n if (!res.errors) {\n hideFullPageLoader()\n setMembershipPlan(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n setNotification(\n \"Oops - looks like you're trying to sign up for a plan that doesn't exist. Please contact support at hello@talkadot.com\"\n )\n }\n }\n\n if (planToken || registrationToken) {\n fetchMembershipPlanDetails()\n }\n }, [planToken, registrationToken])\n\n useEffect(() => {\n const fetchGroupDetails = async () => {\n const reqParams = {\n group_invitation: {\n invitation_token: groupInvitationToken,\n },\n }\n\n try {\n showFullPageLoader()\n const res = await Api.getUnauthGroupInvitationDetails(reqParams)\n\n if (!res.errors) {\n hideFullPageLoader()\n setGroupName(res.groupName)\n setMembershipPlan(res.membershipPlan)\n setGroupInvitations({\n groupName: res.groupName,\n id: res.id,\n invitationToken: groupInvitationToken,\n })\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n }\n }\n\n if (groupInvitationToken && !groupInvitation) {\n fetchGroupDetails()\n }\n }, [groupInvitationToken, groupInvitation])\n\n const gaParams = getGaCookies()\n const utmParams = getUtmCookies()\n\n return showPaidCheckout ? (\n \n ) : (\n \n )\n}\n\nexport default RegistrationParent\n","import React, { useState, useContext, useEffect } from 'react'\nimport { Link, useLocation } from 'react-router-dom'\nimport { styled } from '@mui/system'\nimport { TextField, Alert } from '@mui/material'\n\nimport isEmail from 'validator/lib/isEmail'\n\nimport { AuthenticationContext } from './authenticationContext'\nimport { GroupContext } from '../groups/groupContext'\nimport Api from '../../services/api'\nimport { trackLogin } from '../../services/metrics'\n\nimport * as Messages from '../common/AlertMessages'\nimport { BluePaintGraphic } from '../common/SidePaintGraphics'\nimport OAuthButtons, { AUTHENTICATION_TYPES } from './OAuthButtons'\nimport { GoToRegistrationPageButton } from './AuthLinkButtons'\nimport {\n AuthButton,\n RegistrationContainer,\n InnerContainer,\n CheckoutForm,\n Divider,\n InnerDivider,\n FormWrapper,\n} from './RegistrationParent'\nimport RegistrationHeader from './Header'\nimport { humanizeError } from '../../utils/errorFormatter'\nimport * as qs from 'qs'\n\nconst PasswordResetLink = styled('div')({\n marginTop: '10px',\n})\n\nconst StyledTextField = styled(TextField)({\n // Set input font size to 16px to prevent mobile zoom\n '& .MuiInputBase-input': {\n fontSize: '1rem',\n },\n})\n\nconst LoginForm = ({ redirect }) => {\n const [email, setEmail] = useState('')\n const [password, setPassword] = useState('')\n const [emailError, setEmailError] = useState(null)\n const [passwordError, setPasswordError] = useState(null)\n const [genericInlineError, setGenericInlineError] = useState(null)\n const {\n authData,\n showFullPageLoader,\n hideFullPageLoader,\n handleAuthenticationSuccess,\n setGroupInvitations,\n } = useContext(AuthenticationContext)\n const { setGroups } = useContext(GroupContext)\n\n const location = useLocation()\n const urlParams = qs.parse(location.search, { ignoreQueryPrefix: true })\n const groupInvitationToken = urlParams.git\n const groupInvitation = authData?.user?.groupInvitations[0]\n const welcomeMessage = groupInvitation\n ? `Welcome Back! Sign in to accept your ${groupInvitation.groupName} invite!`\n : 'Welcome Back!'\n\n useEffect(() => {\n const fetchGroupDetails = async () => {\n const reqParams = {\n group_invitation: {\n invitation_token: groupInvitationToken,\n },\n }\n\n try {\n showFullPageLoader()\n const res = await Api.getUnauthGroupInvitationDetails(reqParams)\n\n if (!res.errors) {\n hideFullPageLoader()\n setGroupInvitations({\n groupName: res.groupName,\n id: res.id,\n invitationToken: groupInvitationToken,\n })\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n }\n }\n\n // It's possible the user lands here directly from a group invitation link redirect from\n // the registration page, in which\n // case we don't want to double up fetching the invitation data\n if (groupInvitationToken && !groupInvitation) {\n fetchGroupDetails()\n }\n }, [groupInvitationToken, groupInvitation])\n\n const handleSubmit = async () => {\n if (!email || !isEmail(email)) {\n return setEmailError('please fill out a valid email')\n }\n\n if (!password) {\n return setPasswordError('please fill out a valid password')\n }\n\n return await loginUser(email, password)\n }\n\n const loginUser = async (email, password) => {\n const { fullPageLoader } = authData\n\n // Prevent Double Clicks\n if (fullPageLoader?.isActive) {\n return\n }\n\n showFullPageLoader(Messages.AUTH_MESSAGE)\n\n const params = {\n authentication: {\n email: email,\n password: password,\n },\n }\n\n try {\n const res = await Api.loginUser(params)\n\n if (!res.errors && res.authData?.auth_token) {\n hideFullPageLoader()\n trackLogin(res.authData?.user?.id, res.authData?.user?.email)\n setGroups(res.groupData)\n return handleAuthenticationSuccess(res.authData, redirect)\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n return setGenericInlineError(humanizeError(err))\n }\n }\n\n return (\n \n \n \n \n \n \n {genericInlineError && (\n {genericInlineError}\n )}\n \n {\n setGenericInlineError(null)\n setEmailError(null)\n setEmail(e.target.value)\n }}\n />\n {\n setGenericInlineError(null)\n setPasswordError(null)\n setPassword(e.target.value)\n }}\n />\n handleSubmit()}>\n Sign In\n \n \n Forgot password?\n \n \n \n \n
OR
\n \n
\n \n
\n
\n
\n )\n}\n\nexport default LoginForm\n","import React, { useEffect, useState, useContext } from 'react'\nimport { useLocation } from 'react-router-dom'\nimport { AuthenticationContext } from './authenticationContext'\nimport Api from '../../services/api'\nimport RegistrationCheckout from './RegistrationCheckout'\nimport UnpaidRegistrationCheckout from './UnpaidRegistrationCheckout'\nimport * as qs from 'qs'\nimport { getGaCookies, getUtmCookies } from '../../services/cookies'\n\nconst ReferrerRegistrationParent = () => {\n const [membershipPlan, setMembershipPlan] = useState(null)\n const [referrer, setReferrer] = useState(null)\n const [referrerId, setReferrerId] = useState(null)\n\n const { showFullPageLoader, hideFullPageLoader, setNotification } =\n useContext(AuthenticationContext)\n\n const location = useLocation()\n const urlParams = qs.parse(location.search, { ignoreQueryPrefix: true })\n const referrerShortlink = urlParams.via\n const showPaidCheckout =\n membershipPlan?.price > 0 && !membershipPlan?.trialPeriodDays\n const gaParams = getGaCookies()\n const utmParams = getUtmCookies()\n\n useEffect(() => {\n const validateReferrer = async () => {\n try {\n showFullPageLoader()\n const res = await Api.getReferrerPlan({\n referrer_shortlink: referrerShortlink,\n })\n\n if (!res.errors) {\n hideFullPageLoader()\n setMembershipPlan(res.membershipPlan)\n setReferrer(res.referrer)\n setReferrerId(res.referrerId)\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n setNotification(\n \"Oops - looks like you're trying to sign up for a plan that doesn't exist. Please contact support at hello@talkadot.com\"\n )\n }\n }\n\n if (referrerShortlink) {\n validateReferrer()\n }\n }, [referrerShortlink])\n\n return showPaidCheckout ? (\n \n ) : (\n \n )\n}\n\nexport default ReferrerRegistrationParent\n","import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\n\nconst NotificationsHeader = styled(Typography)(({ theme }) => ({\n color: theme.palette.text.navText,\n marginBottom: theme.spacing(2.5),\n}))\n\nconst DashboardSubheader = ({ isNewUser }) => {\n let content = ''\n\n if (isNewUser) {\n content = 'Welcome to the community of evidence-based unicorn speakers!'\n }\n // TODO: uncomment this once we actually have something to show on the dashboard\n // else {\n // content =\n // \"Here's what's been going on with your account. Let's keep your speaking game strong!\"\n // }\n\n return {content}\n}\n\nexport default DashboardSubheader\n","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgDangerIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 22,\n viewBox: \"0 0 22 22\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon_stroke\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M11 8V13\",\n stroke: \"#FF9900\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_2\",\n d: \"M10.9994 20.4098H4.93944C1.46944 20.4098 0.0194446 17.9298 1.69944 14.8998L4.81944 9.27979L7.75944 3.99979C9.53944 0.789785 12.4594 0.789785 14.2394 3.99979L17.1794 9.28979L20.2994 14.9098C21.9794 17.9398 20.5194 20.4198 17.0594 20.4198H10.9994V20.4098Z\",\n stroke: \"#FF9900\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_3\",\n d: \"M10.9941 16H11.0031\",\n stroke: \"#FF9900\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDangerIcon);\nexport default __webpack_public_path__ + \"static/media/dangerIcon.785725d9.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCircleXIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 22,\n viewBox: \"0 0 22 22\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vector\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_2\",\n d: \"M11 21C16.5 21 21 16.5 21 11C21 5.5 16.5 1 11 1C5.5 1 1 5.5 1 11C1 16.5 5.5 21 11 21Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_3\",\n d: \"M8.16992 13.8299L13.8299 8.16992\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_4\",\n d: \"M13.8299 13.8299L8.16992 8.16992\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCircleXIcon);\nexport default __webpack_public_path__ + \"static/media/circleXIcon.4877fbdc.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCircleCheckIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 22,\n viewBox: \"0 0 22 22\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vector\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_2\",\n d: \"M11 21C16.5 21 21 16.5 21 11C21 5.5 16.5 1 11 1C5.5 1 1 5.5 1 11C1 16.5 5.5 21 11 21Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_3\",\n d: \"M6.75 10.9999L9.58 13.8299L15.25 8.16992\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCircleCheckIcon);\nexport default __webpack_public_path__ + \"static/media/circleCheckIcon.d2c8be26.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCloseIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Icons\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M18 6L6 18\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_2\",\n d: \"M6 6L18 18\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCloseIcon);\nexport default __webpack_public_path__ + \"static/media/closeIcon.3817160d.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgAiSparklesIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Icons\",\n clipPath: \"url(#clip0_7528_2648)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M9.99992 21.236L6.75492 14.745L0.263916 11.5L6.75492 8.255L9.99992 1.764L13.2449 8.255L19.7359 11.5L13.2449 14.745L9.99992 21.236ZM17.9999 21L19.4999 24L20.9999 21L23.9999 19.5L20.9999 18L19.4999 15L17.9999 18L14.9999 19.5L17.9999 21ZM19.3329 4.667L20.4999 7L21.6669 4.667L23.9999 3.5L21.6669 2.333L20.4999 0L19.3329 2.333L16.9999 3.5L19.3329 4.667Z\",\n fill: \"black\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_7528_2648\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAiSparklesIcon);\nexport default __webpack_public_path__ + \"static/media/aiSparklesIcon.675b638e.svg\";\nexport { ForwardRef as ReactComponent };","import { useState, forwardRef } from 'react'\nimport { styled } from '@mui/system'\nimport { Alert, IconButton } from '@mui/material'\n\nimport { ReactComponent as AlertIcon } from '../../icons/alertIcon.svg'\nimport { ReactComponent as DangerIcon } from '../../icons/dangerIcon.svg'\nimport { ReactComponent as CircleXIcon } from '../../icons/circleXIcon.svg'\nimport { ReactComponent as CircleCheckIcon } from '../../icons/circleCheckIcon.svg'\nimport { ReactComponent as CloseIcon } from '../../icons/closeIcon.svg'\nimport { ReactComponent as AISparklesIcon } from '../../icons/aiSparklesIcon.svg'\n\nconst BlackAISparklesIcon = styled(AISparklesIcon)(({ theme }) => ({\n path: {\n fill: theme.palette.neutral.dark,\n stroke: theme.palette.base.white,\n },\n}))\n\nconst BlackExclamationIcon = styled(AlertIcon)(({ theme }) => ({\n path: {\n fill: theme.palette.neutral.dark,\n stroke: theme.palette.base.white,\n },\n}))\n\nconst WhiteExclamationIcon = styled(AlertIcon)(({ theme }) => ({\n path: {\n fill: theme.palette.base.white,\n stroke: theme.palette.neutral.main,\n },\n}))\n\nconst BlueExclamationIcon = styled(AlertIcon)(({ theme }) => ({\n path: {\n fill: theme.palette.base.white,\n stroke: theme.palette.secondary.main,\n },\n}))\n\nconst RedExclamationIcon = styled(AlertIcon)(({ theme }) => ({\n path: {\n fill: theme.palette.error.semiDark,\n stroke: theme.palette.base.white,\n },\n}))\n\nconst OrangeDangerIcon = styled(DangerIcon)(({ theme }) => ({\n path: {\n stroke: theme.palette.primary.main,\n },\n}))\n\nconst ErrorIcon = styled(CircleXIcon)(({ theme }) => ({\n path: {\n fill: theme.palette.base.white,\n stroke: theme.palette.error.semiDark,\n },\n}))\n\nconst SuccessIcon = styled(CircleCheckIcon)(({ theme }) => ({\n path: {\n fill: theme.palette.base.white,\n stroke: theme.palette.success.semiDark,\n },\n}))\n\nconst StyledAlert = styled(Alert, {\n shouldForwardProp: (prop) => prop !== 'maxWidth',\n})(({ theme, maxWidth }) => ({\n // TODO move these overrides into theme file\n display: 'flex',\n padding: theme.spacing(1.5, 2.5),\n alignItems: 'center',\n gap: theme.spacing(2.5),\n maxWidth: maxWidth || '720px',\n marginBottom: theme.spacing(2),\n '& .MuiAlert-icon': {\n marginRight: '0',\n padding: '0',\n fontSize: 'inherit',\n opacity: 1,\n '& svg': {\n width: '22px',\n height: '22px',\n flexShrink: 0,\n },\n },\n '& .MuiAlert-message': {\n padding: '0',\n },\n '& .MuiAlert-action': {\n padding: '0',\n marginLeft: 'auto',\n marginRight: '0',\n },\n [theme.breakpoints.down('sm')]: {\n gap: theme.spacing(1.5),\n padding: theme.spacing(1.5, 1),\n },\n}))\n\nconst CloseButton = styled(IconButton)({\n padding: 0,\n '&:hover': {\n backgroundColor: 'transparent',\n },\n})\n\nconst iconMap = {\n greyWarning: BlackExclamationIcon,\n whiteWarning: WhiteExclamationIcon,\n blueWarning: BlueExclamationIcon,\n blueWarningFilled: BlueExclamationIcon,\n orangeWarning: OrangeDangerIcon,\n redWarning: RedExclamationIcon,\n subtlWarning: BlackExclamationIcon,\n blackAISparkles: BlackAISparklesIcon,\n error: ErrorIcon,\n success: SuccessIcon,\n}\n\nconst Notification = forwardRef(\n (\n {\n variant,\n onClose,\n children,\n hideIcon = false,\n hideClose = false,\n maxWidth = false,\n },\n ref\n ) => {\n const [visible, setVisible] = useState(true)\n\n const handleClose = () => {\n if (onClose) {\n onClose()\n } else {\n setVisible(false)\n }\n }\n\n if (!visible) return null\n\n const IconComponent = iconMap[variant]\n\n return (\n }\n action={\n !hideClose && (\n \n \n \n )\n }>\n {children}\n \n )\n }\n)\n\nconst PersistentNotifications = ({ notificationDetails }) => {\n const renderNotifications = () => {\n return notificationDetails.map((notificationDetail, index) => {\n const { content, onClose, variant } = notificationDetail\n\n return (\n \n {content}\n \n )\n })\n }\n\n return <>{renderNotifications()}\n}\n\nexport { Notification, PersistentNotifications }\n","import { useContext } from 'react'\nimport { AuthenticationContext } from '../features/authentication/authenticationContext'\nimport { GroupContext } from '../features/groups/groupContext'\n\n// These constants should match the Permission Model in the backend\nexport const LEADS_LIMIT = 'LEADS_LIMIT'\nexport const LEAD_DOWNLOADS = 'LEAD_DOWNLOADS'\nexport const OFFER_CODE_LIMIT = 'OFFER_CODE_LIMIT'\nexport const NO_TALKADOT_BRANDING = 'NO_TALKADOT_BRANDING'\nexport const CUSTOMIZATIONS = 'CUSTOMIZATIONS'\nexport const EMAIL_CAMPAIGNS = 'EMAIL_CAMPAIGNS'\nexport const TEAMS = 'TEAMS'\nexport const INTEGRATIONS = 'INTEGRATIONS'\nexport const AI_EVENT_SUMMARY = 'AI_EVENT_SUMMARY'\n\n// granular permissions with limits\nexport const CUSTOM_QUESTION_LIMIT = 'CUSTOM_QUESTION_LIMIT'\n\nexport const PRO_TIER = 'PRO_TIER'\nexport const LITE_TIER = 'LITE_TIER'\nexport const ELITE_TIER = 'ELITE_TIER'\n\nconst GRANULAR_LIMIT_PERMISSIONS = [CUSTOM_QUESTION_LIMIT]\n\nconst stateLoadingPermission = {\n enabled: false,\n limit: 0,\n consumed: 0,\n unlimitedUsage: false,\n}\n\nexport function usePermissionHelper() {\n const {\n authData: {\n user: {\n isAssociate,\n membership: {\n plan: { price, planTier },\n permissions,\n },\n },\n surveyCustomQuestionCount,\n },\n } = useContext(AuthenticationContext)\n const {\n groupState: { selectedGroup },\n } = useContext(GroupContext)\n\n const canToggleTalkadotBranding = () => {\n return findPermission(NO_TALKADOT_BRANDING).enabled\n }\n\n const canAddCustomQuestion = () => {\n return findPermission(CUSTOMIZATIONS).enabled\n }\n\n const canUseIntegrations = () => {\n return findPermission(INTEGRATIONS).enabled\n }\n\n const canDownloadLeads = () => {\n return findPermission(LEAD_DOWNLOADS).enabled\n }\n\n const canUseAIEventSummary = () => {\n return findPermission(AI_EVENT_SUMMARY).enabled\n }\n\n const canDownloadEventLeads = () => {\n // Additional gate of requiring a paid plan (Lite plans cannot use it)\n return (\n _isUsingChapterFeature() ||\n (onPaidPlan() && findPermission(LEAD_DOWNLOADS).enabled)\n )\n }\n\n const canUseEmailCampaigns = () => {\n return findPermission(EMAIL_CAMPAIGNS).enabled\n }\n\n const canCreateSurveyOffer = (currentOfferCount) => {\n const permission = findPermission(OFFER_CODE_LIMIT)\n\n return permission.unlimitedUsage || permission.limit > currentOfferCount\n }\n\n const canAccessTeams = () => {\n const permission = findPermission(TEAMS)\n\n return permission.enabled && !isAssociate\n }\n\n const canAccessAction = (actionTier) => {\n if (!actionTier) {\n return true\n }\n\n return planTier >= actionTier\n }\n\n const canReorderQuestions = () => {\n const permission = findPermission(CUSTOMIZATIONS)\n\n return permission.granularControls.can_reorder_questions\n }\n\n // Build a permission for a granular permission that contains a limit\n const buildBasePermission = (permissionType) => {\n switch (permissionType) {\n case CUSTOM_QUESTION_LIMIT:\n const parentPermission = permissions.find(\n (permission) => permission.type === CUSTOMIZATIONS\n )\n\n if (!parentPermission) return\n\n return {\n type: CUSTOM_QUESTION_LIMIT,\n enabled: parentPermission.enabled,\n limit: _isUsingChapterFeature()\n ? 10\n : parentPermission?.granularControls?.custom_question_limit || 0,\n consumed: surveyCustomQuestionCount, // Using state for this value\n unlimitedUsage: parentPermission.unlimitedUsage,\n }\n default:\n throw Error('Invalid permission type')\n }\n }\n\n const findPermission = (permissionType) => {\n let permission\n\n if (GRANULAR_LIMIT_PERMISSIONS.includes(permissionType)) {\n permission = buildBasePermission(permissionType)\n } else {\n permission = permissions.find(\n (permission) => permission.type === permissionType\n )\n }\n\n return _buildPermission(permission)\n }\n\n const _isUsingChapterFeature = () => {\n return !!selectedGroup\n }\n\n const onPaidPlan = () => {\n return price != null && price > 0\n }\n\n const getPlanTier = () => {\n if (!planTier) {\n return LITE_TIER\n }\n\n if (planTier === 0) {\n return LITE_TIER\n }\n\n if (planTier === 10) {\n return PRO_TIER\n }\n\n // Charter will always match the highest tier\n if (planTier === 20) {\n return ELITE_TIER\n }\n\n return LITE_TIER\n }\n\n const extendPermission = (permission) => {\n return {\n ...permission,\n consumedPercentage: () => {\n if (!permission.enabled) return 100\n\n if (permission.unlimitedUsage) {\n return 0\n }\n\n return Math.min((permission.consumed / permission.limit) * 100, 100)\n },\n // currentConsumption can be optionally passed in\n // consumed is generally set internally with api data or a survey state value\n isBelowLimit: (currentConsumption = null) => {\n const consumed = currentConsumption || permission.consumed\n\n if (!permission.enabled) return false\n\n switch (permission.type) {\n case OFFER_CODE_LIMIT:\n return canCreateSurveyOffer(consumed)\n default:\n return permission.unlimitedUsage || permission.limit > consumed\n }\n },\n }\n }\n\n const _buildPermission = (permission) => {\n // If the permission doesn't exist the authContext is being loaded.\n // Load a default permission state so we don't need try operators everywhere\n if (!permission) {\n return extendPermission(stateLoadingPermission)\n }\n\n // Override some values if they are using chapters\n let builtPermission = permission\n switch (permission.type) {\n case OFFER_CODE_LIMIT:\n builtPermission = {\n ...permission,\n unlimitedUsage: _isUsingChapterFeature() || permission.unlimitedUsage,\n }\n break\n case CUSTOMIZATIONS:\n builtPermission = {\n ...permission,\n enabled: _isUsingChapterFeature() || permission.enabled,\n }\n break\n default:\n builtPermission = permission\n }\n\n return extendPermission(builtPermission)\n }\n\n return {\n canToggleTalkadotBranding,\n canUseIntegrations,\n canAddCustomQuestion,\n canUseAIEventSummary,\n canDownloadLeads,\n canDownloadEventLeads,\n canUseEmailCampaigns,\n canCreateSurveyOffer,\n canAccessTeams,\n canReorderQuestions,\n findPermission,\n onPaidPlan,\n getPlanTier,\n canAccessAction,\n }\n}\n","import { useContext } from 'react'\nimport { Link } from 'react-router-dom'\nimport { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\n\nimport { AuthenticationContext } from '../../authentication/authenticationContext'\nimport { PersistentNotifications } from '../../common/Notification'\nimport { OFFER_CODE_LIMIT } from '../../../utils/permission_helper'\n\nconst NotificationTypography = styled(Typography)(({ theme }) => ({\n fontWeight: 600,\n color: 'inherit',\n '& a': {\n color: theme.palette.secondary.main,\n textDecoration: 'none',\n },\n '& .upgrade-link': {\n color: theme.palette.secondary.main,\n cursor: 'pointer',\n },\n}))\n\nconst NotificationParent = ({ notifications }) => {\n const { toggleUpgradeModal } = useContext(AuthenticationContext)\n\n const buildNotificationContent = (notification) => {\n switch (notification.type) {\n case 'trialNotification': {\n const { message, ctaText } = notification\n return (\n <>\n \n {message}\n   \n \n \n toggleUpgradeModal(true, 'Upgrade Now!', OFFER_CODE_LIMIT)\n }>\n {ctaText}\n \n \n )\n }\n case 'codeLimit': {\n const { message } = notification\n return (\n <>\n \n {message}\n   \n \n \n toggleUpgradeModal(\n true,\n 'Upgrade for more codes!',\n OFFER_CODE_LIMIT\n )\n }>\n Upgrade for more codes.\n \n \n )\n }\n case 'missingProfilePic':\n return (\n <>\n You are missing a profile photo.  \n \n Add it now to complete your feedback form.\n \n \n )\n case 'missingSocialLinks':\n return (\n <>\n You are missing your socials.  \n \n Add them so your audience can keep in touch!\n \n \n )\n case 'missingBookingLink':\n return (\n <>\n \n You haven’t set up your booking calendar link.  \n \n \n Let qualified leads schedule time with you.\n \n \n )\n case 'missingEmailFollowup':\n return (\n <>\n \n You haven’t turned on post event followup emails.  \n \n Set it up now.\n \n )\n case 'FollowupAutoEnabled':\n return (\n <>\n \n Post-event follow-up emails have been enabled to boost\n engagement.  They can be configured \n \n here.\n \n )\n default:\n return null\n }\n }\n\n const buildNotificationDetails = () => {\n return notifications.map((notification) => {\n return {\n variant: 'greyWarning',\n content: (\n \n {buildNotificationContent(notification)}\n \n ),\n }\n })\n }\n\n return (\n \n )\n}\n\nexport default NotificationParent\n","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgUsersIcon24X24(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"type=fi:users,size=24,colour=black\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M23 21V19C22.9993 18.1137 22.7044 17.2528 22.1614 16.5523C21.6184 15.8519 20.8581 15.3516 20 15.13\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_2\",\n d: \"M17 21V19C17 17.9391 16.5786 16.9217 15.8284 16.1716C15.0783 15.4214 14.0609 15 13 15H5C3.93913 15 2.92172 15.4214 2.17157 16.1716C1.42143 16.9217 1 17.9391 1 19V21\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_3\",\n d: \"M16 3.13C16.8604 3.35031 17.623 3.85071 18.1676 4.55232C18.7122 5.25392 19.0078 6.11683 19.0078 7.005C19.0078 7.89318 18.7122 8.75608 18.1676 9.45769C17.623 10.1593 16.8604 10.6597 16 10.88\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_4\",\n d: \"M9 11C11.2091 11 13 9.20914 13 7C13 4.79086 11.2091 3 9 3C6.79086 3 5 4.79086 5 7C5 9.20914 6.79086 11 9 11Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUsersIcon24X24);\nexport default __webpack_public_path__ + \"static/media/usersIcon_24x24.7f8a560e.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgZapIcon24X24(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"type=fi:zap,size=24,colour=black\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M13 2L3 14H12L11 22L21 10H12L13 2Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZapIcon24X24);\nexport default __webpack_public_path__ + \"static/media/zapIcon_24x24.d36b60bc.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgReferralIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 22C19.6569 22 21 20.6569 21 19C21 17.3431 19.6569 16 18 16C16.3431 16 15 17.3431 15 19C15 20.6569 16.3431 22 18 22Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 15C7.65685 15 9 13.6569 9 12C9 10.3431 7.65685 9 6 9C4.34315 9 3 10.3431 3 12C3 13.6569 4.34315 15 6 15Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.58984 13.51L15.4198 17.49\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 8C19.6569 8 21 6.65685 21 5C21 3.34315 19.6569 2 18 2C16.3431 2 15 3.34315 15 5C15 6.65685 16.3431 8 18 8Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.4098 6.51001L8.58984 10.49\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgReferralIcon);\nexport default __webpack_public_path__ + \"static/media/referralIcon.949368bb.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgLinkIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"type=fi:link,size=16,colour=black\",\n clipPath: \"url(#clip0_206_1623)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M6.66699 8.66672C6.95329 9.04948 7.31856 9.36618 7.73803 9.59535C8.15749 9.82452 8.62133 9.9608 9.09809 9.99495C9.57485 10.0291 10.0534 9.9603 10.5012 9.79325C10.9491 9.62619 11.3557 9.36477 11.6937 9.02672L13.6937 7.02672C14.3009 6.39805 14.6368 5.55604 14.6292 4.68205C14.6216 3.80806 14.2711 2.97202 13.6531 2.354C13.035 1.73597 12.199 1.38541 11.325 1.37781C10.451 1.37022 9.609 1.7062 8.98033 2.31339L7.83366 3.45339\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_2\",\n d: \"M9.33347 7.33332C9.04716 6.95057 8.68189 6.63387 8.26243 6.40469C7.84297 6.17552 7.37913 6.03924 6.90237 6.0051C6.4256 5.97095 5.94707 6.03974 5.49924 6.2068C5.0514 6.37386 4.64472 6.63527 4.3068 6.97332L2.3068 8.97332C1.69961 9.60199 1.36363 10.444 1.37122 11.318C1.37881 12.192 1.72938 13.028 2.3474 13.646C2.96543 14.2641 3.80147 14.6146 4.67546 14.6222C5.54945 14.6298 6.39146 14.2938 7.02013 13.6867L8.16013 12.5467\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_206_1623\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLinkIcon16X16);\nexport default __webpack_public_path__ + \"static/media/linkIcon_16x16.ea027dac.svg\";\nexport { ForwardRef as ReactComponent };","import { exportComponentAsJPEG } from 'react-component-export-image'\nimport domtoimage from '../../utils/domToImage'\nimport envConfig from '../../envConfig'\nimport moment from 'moment'\n\nexport const handleCopy = (content) => {\n window.navigator.clipboard.writeText(content)\n}\n\nexport const formatDate = (date, offset) => {\n // return date\n if (!offset) {\n // Default to PST if no offset is set\n offset = -420\n }\n\n // return moment(date).utcOffset(offset).format('MMM D, YYYY')\n return moment(date).format('MMM D, YYYY')\n}\n\n// dateString should be the datetime string output from the backend\nexport const formatDateWithTimeZone = (\n dateString,\n timeZone = 'America/New_York'\n) => {\n const date = new Date(dateString)\n\n // Options for the date part\n const dateOptions = {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n timeZone,\n }\n const datePart = new Intl.DateTimeFormat('en-US', dateOptions).format(date)\n\n const timeOptions = {\n hour: 'numeric',\n minute: 'numeric',\n hour12: true,\n timeZone,\n }\n const timePart = new Intl.DateTimeFormat('en-US', timeOptions).format(date)\n\n // Combine date and time parts\n const formattedDate = `${datePart} at ${timePart} EST`\n\n return formattedDate\n}\n\nexport const formatTime = (timestamp) => {\n const momentTimestamp = moment(timestamp).format('h:mm:ss')\n return momentTimestamp\n}\n\nexport const timeDifferenceInDays = (d0, d1) => {\n const diffTime = Math.abs(d0 - d1)\n return Math.ceil(diffTime / (1000 * 60 * 60 * 24))\n}\n\nexport const downloadSlideAsPng = (componentRef, fileName, callback) => {\n // Note: calling domtoimage twice fixes an issue with Safari and iOS not rendering the image properly\n // Link below is for a different image conversion package but has the same issue\n // https://github.com/tsayen/dom-to-image/issues/343\n domtoimage\n .toPng(componentRef.current, {\n width: 960,\n height: 540,\n quality: 1.0,\n bgcolor: 'white',\n cacheBust: true,\n })\n .then((dataUrl) =>\n domtoimage.toPng(componentRef.current, {\n width: 960,\n height: 540,\n quality: 1.0,\n bgcolor: 'white',\n cacheBust: true,\n })\n )\n .then((dataUrl2) => {\n var link = document.createElement('a')\n link.download = `${fileName}.png`\n link.href = dataUrl2\n link.click((e) => e.preventDefault())\n })\n .then(() => {\n if (callback) {\n callback()\n }\n })\n}\n\nexport const downloadComponentAsPng = async (componentRef, fileName) => {\n domtoimage\n .toPng(componentRef.current, {\n width: 844,\n height: 869,\n quality: 1.0,\n bgcolor: 'white',\n cacheBust: true,\n })\n .then((dataUrl) =>\n domtoimage.toPng(componentRef.current, {\n width: 844,\n height: 869,\n quality: 1.0,\n bgcolor: 'white',\n cacheBust: true,\n })\n )\n .then((dataUrl2) => {\n var link = document.createElement('a')\n link.download = `${fileName}.png`\n link.href = dataUrl2\n link.click((e) => e.preventDefault())\n })\n}\n\nexport const downloadInvisibleComponent = (\n componentRef,\n componentId,\n fileName\n) => {\n return exportComponentAsJPEG(componentRef, {\n fileName,\n html2CanvasOptions: {\n onclone: (clonedDoc) => {\n clonedDoc.getElementById(componentId).style.visibility = 'visible'\n var svgElements = clonedDoc.body.querySelectorAll('svg')\n\n svgElements.forEach(function (item) {\n item.setAttribute('width', item.getBoundingClientRect().width)\n item.setAttribute('height', item.getBoundingClientRect().height)\n })\n },\n },\n })\n}\n\nexport const downloadShareCodeAsPng = (componentRef, fileName) => {\n // Note: calling domtoimage twice fixes an issue with Safari and iOS not rendering the image properly\n // Link below is for a different image conversion package but has the same issue\n // https://github.com/tsayen/dom-to-image/issues/343\n domtoimage\n .toPng(componentRef.current, {\n style: {\n margin: '10px',\n },\n width: 230,\n height: 230,\n quality: 1.0,\n bgcolor: 'white',\n cacheBust: true,\n pixelRatio: 2,\n })\n .then((dataUrl) =>\n domtoimage.toPng(componentRef.current, {\n style: {\n margin: '10px',\n },\n width: 230,\n height: 230,\n quality: 1.0,\n bgcolor: 'white',\n cacheBust: true,\n pixelRatio: 2,\n })\n )\n .then((dataUrl2) => {\n var link = document.createElement('a')\n link.download = `${fileName}.png`\n link.href = dataUrl2\n link.click((e) => e.preventDefault())\n })\n}\n\nexport const removeEmptysAndNulls = (obj) => {\n for (var propName in obj) {\n if (obj[propName] === null || obj[propName] === undefined) {\n delete obj[propName]\n }\n }\n return obj\n}\n\nexport const makeSurveyLink = ({ shortlink, code, test = false }) => {\n let baseUrl = `${envConfig.REACT_APP_SURVEY_ENDPOINT}/${shortlink}`\n\n if (code) {\n baseUrl += `?code=${code}`\n }\n\n if (test) {\n baseUrl += `&mode=test`\n }\n\n return baseUrl\n}\n\nexport const makeReferralLink = (shortlink) => {\n return `${envConfig.REACT_APP_REFERRAL_URL}${shortlink}`\n}\n\nexport const makeRegistrationLink = () => {\n return `${envConfig.REACT_APP_CLIENT_ENDPOINT}/register`\n}\n\nexport const eventReportCardShareLink = (shortlink, shareKey) => {\n if (shortlink) {\n return `${envConfig.REACT_APP_PUBLIC_PAGE_ENDPOINT}/s/${shortlink}/event-report/${shareKey}`\n } else {\n return `${envConfig.REACT_APP_PUBLIC_PAGE_ENDPOINT}/event-report/${shareKey}`\n }\n}\n\nexport const publicProfileLink = (shortlink) => {\n return `${envConfig.REACT_APP_PUBLIC_PAGE_ENDPOINT}/s/${shortlink}`\n}\n\nexport const extractShortlinkFromUrl = (url) => {\n // Extract shortlink from URL for pages that include \"/s/\" like /s/:shortlink/event-report/:sharelink\n const regex = /\\/s\\/(\\w+)(?:\\/event-report\\/\\w+)?/\n const match = url.match(regex)\n if (match && match[1]) {\n return match[1]\n } else {\n return null\n }\n}\n\nexport const onlyAllowPositiveNumbersNoDecimals = (value) => {\n value = value.replace(/[^0-9]/g, '')\n\n return value\n}\n\nexport const onlyAllowPositiveNumbersAndDecimals = (value) => {\n value = value.replace(/[^0-9.]/g, '')\n\n // Allow only one decimal point\n const decimalCount = (value.match(/\\./g) || []).length\n if (decimalCount > 1) {\n value = value.substring(0, value.lastIndexOf('.'))\n }\n\n return value\n}\n\n/**\n * Takes a value and if that value is equal to an invalid entry, it returns a fallback value.\n * Otherwise, it processes the value through the series of optional functions passed in.\n *\n * @param {*} value - The value to process.\n * @param {Object} options - An options object.\n * @param {*} [options.invalidValues] - (Optional) Array of values to check for breaking and returning the fallback.\n * @param {*} [options.fallback] - (Optional) The fallback value to return if the value to break on is zero.\n * @param {...function} funcs - (Optional) An ordered series of functions to call on the value only if the value to break on is non-zero.\n * @returns {*} The processed value or the fallback value.\n *\n * @example\n * // Basic usage with default options\n * processWithFallback(0); // Returns '-'\n *\n * processWithFallback(10, {}, renderPercentage); // Returns '10%'\n *\n * processWithFallback('hi', { invalidValues: ['hi', 0], fallback: 'N/A' }, renderPercentage); // Returns 'N/A'\n *\n * processWithFallback(\n * 100,\n * { invalidValues: [0], fallback: 'N/A' },\n * (val) => new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(val),\n * (val) => `${val}s`\n * ); // Returns '$100.00s'\n */\nexport const processWithFallback = (value, opts = {}, ...funcs) => {\n if (typeof opts === 'function') {\n // last arg is a func not opts\n funcs = [opts].concat(funcs)\n opts = {}\n }\n const { invalidValues = [0], fallback = '-' } = { ...opts }\n\n if (invalidValues.includes(value)) {\n return fallback\n }\n\n return funcs.reduce((acc, func) => func(acc), value)\n}\n","import { styled } from '@mui/system'\n\nconst Card = styled('div')(({ theme }) => ({\n margin: theme.spacing(3.25, 0, 6.5, 0),\n background: theme.palette.base.white,\n borderRadius: theme.shape.borderRadius.xxs,\n}))\n\nconst CardNotifications = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: theme.spacing(2.5),\n padding: theme.spacing(1.25, 2.5),\n maxWidth: '720px',\n width: '100%',\n}))\n\nconst CardInnerReferral = styled('div')(({ theme }) => ({\n display: 'flex',\n flexWrap: 'wrap',\n gap: theme.spacing(2.5),\n padding: theme.spacing(6),\n [theme.breakpoints.down('md')]: {\n flexDirection: 'column',\n padding: theme.spacing(6, 2.5),\n },\n}))\n\nconst CardInnerTrial = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(3),\n alignItems: 'center',\n padding: theme.spacing(6, 2.5),\n}))\n\nconst CardVideoContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: '100%',\n padding: theme.spacing(6),\n [theme.breakpoints.down('md')]: {\n padding: theme.spacing(6, 2.5),\n },\n}))\n\nconst CardInnerVideo = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n textAlign: 'center',\n maxWidth: '640px',\n width: '100%',\n}))\n\nexport {\n Card,\n CardNotifications,\n CardInnerReferral,\n CardInnerTrial,\n CardVideoContainer,\n CardInnerVideo,\n}\n","import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\n\nconst Container = styled('div')(({ theme }) => ({\n position: 'relative',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n backgroundColor: theme.palette.base.white,\n [theme.breakpoints.down('md')]: {\n flexDirection: 'row',\n justifyContent: 'center',\n gap: theme.spacing(2),\n },\n}))\n\nconst ChipContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'visible',\n})(({ theme, visible }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: theme.spacing(0.75),\n borderRadius: theme.shape.borderRadius.xs,\n boxShadow: theme.shape.boxShadow.xs,\n padding: theme.spacing(1.5, 0.5, 0.5, 0.5),\n width: '72px',\n visibility: visible ? 'visible' : 'hidden',\n}))\n\nconst ChipIcon = styled(Typography)(() => ({\n svg: {\n width: '24px',\n height: '22.33px',\n },\n}))\n\nconst ChipValue = styled(Typography)(({ theme }) => ({\n color: theme.palette.primary.main,\n}))\n\nconst ChipLabel = styled(Typography)(({ theme }) => ({\n textAlign: 'center',\n color: theme.palette.neutral.veryDark,\n}))\n\nconst ChipList = ({ items }) => {\n return (\n \n {items?.map(({ icon, value, label, visible = true }, index) => (\n \n {icon}\n {value}\n {label}\n \n ))}\n \n )\n}\n\nexport default ChipList\n","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgHeartIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Icons\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M8 14.6667C7.75297 14.6664 7.51176 14.599 7.30773 14.4733C4.2852 12.6208 2.97642 11.3507 2.25454 10.5566C0.716158 8.8639 -0.0203411 7.12605 0.000427061 5.24411C0.0246565 3.08751 1.94109 1.33334 4.27251 1.33334C5.9678 1.33334 7.14197 2.1955 7.82578 2.91355C7.84744 2.93607 7.8742 2.95412 7.90426 2.9665C7.93432 2.97887 7.96697 2.98528 8 2.98528C8.03303 2.98528 8.06568 2.97887 8.09574 2.9665C8.1258 2.95412 8.15256 2.93607 8.17422 2.91355C8.85803 2.1948 10.0322 1.33334 11.7275 1.33334C14.0589 1.33334 15.9753 3.08751 15.9996 5.24445C16.0203 7.12675 15.2831 8.86459 13.7455 10.557C13.0236 11.3511 11.7148 12.6212 8.69227 14.4736C8.4882 14.5992 8.24699 14.6665 8 14.6667Z\",\n fill: \"#EF4444\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgHeartIcon16X16);\nexport default __webpack_public_path__ + \"static/media/heartIcon_16x16.35496661.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgEmail(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 16,\n viewBox: \"0 0 17 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.7778 0.888916H4.87281C2.97932 0.888916 1.44434 2.4239 1.44434 4.31739V10.7938C1.44434 12.6873 2.97932 14.2222 4.87281 14.2222H11.7778C13.6713 14.2222 15.2062 12.6873 15.2062 10.7938V4.31739C15.2062 2.4239 13.6713 0.888916 11.7778 0.888916Z\",\n stroke: \"#384455\",\n strokeWidth: 1.3,\n strokeMiterlimit: 10\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.44434 2.79346L8.32528 7.55561L15.2062 2.79346\",\n stroke: \"#384455\",\n strokeWidth: 1.3,\n strokeMiterlimit: 10\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmail);\nexport default __webpack_public_path__ + \"static/media/email.a61fa64d.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgProfile(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.2304 15.9976C11.0703 16.0174 11.9088 15.9151 12.7216 15.6937H12.7216C14.9581 15.0593 16 13.3257 16 10.2316V5.76718C16 1.72498 14.275 0 10.2326 0H5.76735C1.7261 0 -1.90735e-06 1.72438 -1.90735e-06 5.76718V10.2316C-1.90735e-06 13.3124 1.03356 15.0466 3.25237 15.6856L3.27396 15.6919C4.08668 15.9139 4.92516 16.0166 5.76513 15.997L10.2304 15.9976ZM11.9272 14.7398C11.3671 14.8419 10.7991 14.8894 10.2305 14.8817H5.76517C5.19657 14.8894 4.62853 14.8419 4.0684 14.7398C4.46477 13.3142 6.08957 12.2553 7.99892 12.2553C9.45458 12.1834 10.8439 12.8945 11.6787 14.1389L11.6903 14.1596C11.7915 14.3424 11.8711 14.5371 11.9272 14.7398L11.9272 14.7398ZM3.00267 14.4083C1.68567 13.7987 1.1138 12.5103 1.1138 10.2322V5.76786C1.1138 2.33465 2.33171 1.11719 5.764 1.11719H10.2304C13.6627 1.11719 14.8806 2.33406 14.8806 5.76786V10.2322C14.8806 12.5097 14.3087 13.7987 12.9928 14.4077C12.8414 13.9024 12.5923 13.4347 12.261 13.0334L12.2527 13.0235L12.2477 13.0172C11.1949 11.8239 9.71082 11.1438 8.15498 11.1417L7.85438 11.1417C6.36997 11.1445 4.94655 11.7573 3.8934 12.8471L3.88732 12.8534L3.88178 12.8592L3.86849 12.8742C3.49189 13.2881 3.20543 13.7819 3.02869 14.3217C3.01983 14.3506 3.01098 14.3795 3.00267 14.4083ZM10.5548 8.90405C10.984 8.3482 11.2183 7.65652 11.2192 6.94319C11.1486 5.19501 9.80405 3.79472 8.12594 3.72175C6.44783 3.64882 4.99595 4.92753 4.78583 6.66349C4.77771 6.7554 4.77365 6.84843 4.77365 6.94263C4.77365 7.11444 4.7872 7.28534 4.81416 7.45423C5.09795 9.04657 6.44165 10.1943 7.99612 10.1722C8.9898 10.177 9.93152 9.71023 10.5548 8.90405ZM7.99671 9.05573C7.67083 9.05598 7.34911 8.97945 7.05559 8.83197C6.57319 8.59152 6.19897 8.1657 6.01151 7.64393C5.93265 7.41921 5.89236 7.18182 5.89249 6.9426C5.89622 6.27095 6.2116 5.64266 6.73897 5.25631C7.58985 4.62493 8.75189 4.71511 9.50359 5.47089C9.88627 5.85675 10.1031 6.38729 10.1048 6.94208C10.0967 7.77192 9.62311 8.51999 8.89409 8.8545C8.61251 8.9873 8.3069 9.05573 7.99781 9.05517L7.99671 9.05573Z\",\n fill: \"#323A46\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgProfile);\nexport default __webpack_public_path__ + \"static/media/profile.e0443ae3.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgTrash(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 4H3.33333H14\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.33301 4.00004V2.66671C5.33301 2.31309 5.47348 1.97395 5.72353 1.7239C5.97358 1.47385 6.31272 1.33337 6.66634 1.33337H9.33301C9.68663 1.33337 10.0258 1.47385 10.2758 1.7239C10.5259 1.97395 10.6663 2.31309 10.6663 2.66671V4.00004M12.6663 4.00004V13.3334C12.6663 13.687 12.5259 14.0261 12.2758 14.2762C12.0258 14.5262 11.6866 14.6667 11.333 14.6667H4.66634C4.31272 14.6667 3.97358 14.5262 3.72353 14.2762C3.47348 14.0261 3.33301 13.687 3.33301 13.3334V4.00004H12.6663Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.33301 7.33337V11.3334\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.66699 7.33337V11.3334\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTrash);\nexport default __webpack_public_path__ + \"static/media/trash.440914fe.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState } from 'react'\nimport { TextField as MuiTextField, InputAdornment } from '@mui/material'\nimport { styled } from '@mui/system'\nimport validator from 'validator'\n\nimport { ReactComponent as EmailIcon } from '../../../icons/email.svg'\nimport { ReactComponent as ProfileIcon } from '../../../icons/profile.svg'\n\nconst TextFieldContainer = styled('div')({\n display: 'flex',\n gap: '16px',\n alignItems: 'flex-start',\n})\n\nconst EmailField = styled('div')({\n flex: 2,\n})\n\nconst NameField = styled('div')({\n flex: 1,\n})\n\nconst TextField = styled(MuiTextField)(({ theme }) => ({\n width: '100%',\n fontSize: '20px',\n marginTop: '20px',\n '& .MuiOutlinedInput-root': {\n borderRadius: theme.shape.borderRadius.xxs,\n },\n}))\n\nexport const InviteForm = ({\n email,\n emailsToSend,\n onEmailChange,\n name,\n onNameChange,\n onValidInputs,\n}) => {\n const [emailError, setEmailError] = useState('')\n\n const validateEmail = (email) => {\n if (emailsToSend.length && email === '') {\n setEmailError('')\n onValidInputs(true)\n } else if (emailsToSend.some((e) => e.email === email)) {\n setEmailError('Email already in list')\n onValidInputs(false)\n } else if (!validator.isEmail(email)) {\n setEmailError('Please enter a valid email address')\n onValidInputs(false)\n } else {\n setEmailError('')\n onValidInputs(true)\n }\n }\n\n return (\n \n \n onEmailChange(e.target.value)}\n onBlur={(e) => validateEmail(e.target.value)}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n error={!!emailError}\n helperText={emailError && emailError}\n />\n \n \n onNameChange(e.target.value)}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n \n \n )\n}\n\nexport default InviteForm\n","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgDownloadIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 22,\n height: 23,\n viewBox: \"0 0 22 23\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.44 8.3999C19.04 8.7099 20.51 10.5599 20.51 14.6099V14.7399C20.51 19.2099 18.72 20.9999 14.25 20.9999H7.73998C3.26998 20.9999 1.47998 19.2099 1.47998 14.7399V14.6099C1.47998 10.5899 2.92998 8.7399 6.46998 8.4099\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 1.5V14.38\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.3499 12.1499L10.9999 15.4999L7.6499 12.1499\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDownloadIcon);\nexport default __webpack_public_path__ + \"static/media/downloadIcon.eef881ab.svg\";\nexport { ForwardRef as ReactComponent };","import { ReactComponent as TrashIcon } from '../../../icons/trash.svg'\nimport { ReactComponent as CheckIcon } from '../../../icons/circleCheckIcon.svg'\nimport { ReactComponent as CircleXIcon } from '../../../icons/circleXIcon.svg'\nimport { styled } from '@mui/system'\n\nconst EmailWrapper = styled('div')(({ theme, error }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: '16px',\n color: error ? theme.palette.error.main : 'inherit',\n fontSize: '14px',\n}))\n\nconst EmailField = styled('div')({\n flex: 2,\n})\n\nconst NameField = styled('div')(({ name }) => ({\n flex: 1,\n display: 'flex',\n justifyContent: name ? 'space-between' : 'flex-end',\n alignItems: 'center',\n}))\n\nconst ErrorMessage = styled('div')(({ theme }) => ({\n color: theme.palette.error.main,\n fontStyle: 'italic',\n fontSize: '12px',\n}))\n\nconst StyledTrashIcon = styled(TrashIcon)({\n height: '14px',\n width: 'auto',\n cursor: 'pointer',\n})\n\nconst StyledCheckIcon = styled(CheckIcon)(({ theme }) => ({\n height: '14px',\n width: 'auto',\n '& path, & circle': {\n fill: 'none',\n stroke: theme.palette.success.main,\n strokeWidth: 1.5,\n },\n}))\n\nconst StyledCircleXIcon = styled(CircleXIcon)(({ theme }) => ({\n height: '14px',\n width: 'auto',\n '& path, & circle': {\n fill: 'none',\n stroke: theme.palette.error.main,\n strokeWidth: 1.5,\n },\n}))\n\nconst EmailItem = ({ email, name, onDelete, error, submitted }) => {\n const SubmitIcon = error ? StyledCircleXIcon : StyledCheckIcon\n return (\n <>\n \n {email}\n \n {name}\n {!submitted ? (\n onDelete(email)} />\n ) : (\n \n )}\n \n \n {error}\n \n )\n}\n\nexport default EmailItem\n","import {\n Box,\n Button,\n DialogActions,\n DialogContent,\n Divider,\n Typography,\n TextField,\n} from '@mui/material'\nimport { styled } from '@mui/system'\nimport ReactQuill from 'react-quill'\n\nconst FromAddress = () => {\n return (\n \n From: {'{Speaker Name}'} via Talkadot\n \n )\n}\n\nconst EmailPreviewItem = styled(Box)(({ theme }) => ({\n marginBottom: theme.spacing(2),\n padding: theme.spacing(2),\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: theme.shape.borderRadius.xxs,\n}))\n\nconst EditorContainer = styled(Box)(({ theme }) => ({\n marginTop: '15px',\n padding: theme.spacing(0),\n '& .ql-container': {\n minHeight: '150px',\n borderBottomLeftRadius: theme.shape.borderRadius.xxs,\n borderBottomRightRadius: theme.shape.borderRadius.xxs,\n },\n '& .ql-editor': {\n minHeight: '150px',\n },\n '& .read-only-editor .ql-toolbar': {\n display: 'none',\n },\n '& .read-only-editor .ql-container': {\n border: 'none',\n backgroundColor: theme.palette.grey[50],\n minHeight: 'auto',\n },\n '& .read-only-editor .ql-editor': {\n padding: theme.spacing(2),\n minHeight: 'auto',\n backgroundColor: theme.palette.grey[50],\n borderRadius: theme.shape.borderRadius.xxs,\n },\n}))\n\nexport const EditDialog = ({\n onSave,\n subject,\n content,\n header,\n footer,\n setSubject,\n setContent,\n onClose,\n isUpdating,\n}) => {\n const handleEditorChange = (value) => {\n setContent(value)\n }\n\n return (\n <>\n \n \n \n\n \n \n Subject:\n \n \n setSubject(e.target.value)}\n placeholder=\"Enter email subject...\"\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","import { useState, useEffect, useMemo } from 'react'\nimport { Dialog, DialogTitle } from '@mui/material'\nimport { EditDialog } from './EditDialog'\n\n// Split the content into parts for display\nconst START_MARKER = '

Hi {{referee}},

'\nconst END_MARKER = '

{\n const DEFAULT_SUBJECT =\n '{Speaker Name} sent you a gift - 30 days of Talkadot Pro'\n const { content = '', subject = DEFAULT_SUBJECT } = emailTemplate\n const { header, editableContent, footer } = useMemo(\n () => parseContent(content),\n [content]\n )\n\n const [contentValue, setContentValue] = useState('')\n const [subjectValue, setSubjectValue] = useState('')\n\n useEffect(() => {\n setContentValue(editableContent)\n }, [editableContent])\n\n useEffect(() => {\n setSubjectValue(subject.trim())\n }, [subject])\n\n const handleSaveChanges = async () => {\n const updatedContent = `${header}\n \n ${contentValue}\n \n ${footer}`\n\n await updateEmailTemplate({\n content: updatedContent,\n subject: subjectValue.trim(),\n })\n handleClosePreview()\n }\n\n return (\n \n Preview Email\n\n setSubjectValue(value)}\n setContent={(value) => setContentValue(value)}\n subject={subjectValue}\n content={contentValue}\n header={header}\n footer={footer}\n isUpdating={isUpdating}\n />\n \n )\n}\n","import React, { useState } from 'react'\nimport { styled } from '@mui/system'\nimport { Button, Divider } from '@mui/material'\nimport { StyledTypography, BUTTON_WIDTH } from '../ShareParent'\nimport InviteForm from './InviteForm'\nimport EmailItem from './EmailItem'\nimport { EmailPreviewModal } from './EmailPreviewModal'\n\nconst EmailSection = styled('div')({\n marginTop: '18px',\n width: '100%',\n})\n\nconst ButtonSection = styled('div')({\n marginTop: '18px',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n})\n\nconst ActionButtonsContainer = styled('div')({\n display: 'flex',\n gap: '10px',\n})\n\nconst EmailInvite = ({\n onSendEmails,\n failedEmails,\n isLoading,\n emailTemplate,\n onEmailTemplateUpdate,\n showEmailNotification,\n}) => {\n const [email, setEmail] = useState('')\n const [name, setName] = useState('')\n const [emailsToSend, setEmailsToSend] = useState([])\n const [validInputs, setValidInputs] = useState(false)\n const [previewOpen, setPreviewOpen] = useState(false)\n const [isUpdatingTemplate, setIsUpdatingTemplate] = useState(false)\n\n const handleAddEmail = (e) => {\n if (!!email && validInputs) {\n setEmailsToSend([...emailsToSend, { email, name }])\n setEmail('')\n setName('')\n }\n }\n\n const handleSubmit = (e) => {\n e.preventDefault()\n if (!!email && validInputs) {\n const updatedEmails = [...emailsToSend, { email, name }]\n onSendEmails(updatedEmails)\n setEmailsToSend(updatedEmails.map((e) => ({ ...e, submitted: true })))\n setEmail('')\n setName('')\n } else if (emailsToSend.length > 0) {\n onSendEmails(emailsToSend)\n setEmailsToSend((emails) =>\n emails.map((e) => ({ ...e, submitted: true }))\n )\n }\n }\n\n const handlePreviewEmail = () => {\n setPreviewOpen(true)\n }\n\n const handleClosePreview = () => {\n setPreviewOpen(false)\n }\n\n const handleEmailDelete = (email) => {\n setEmailsToSend(emailsToSend.filter((e) => e.email !== email))\n }\n\n const sendEmailButtonText = isLoading\n ? 'Sending...'\n : `Send Email${emailsToSend.length > 1 ? 's' : ''}`\n\n const updateEmailTemplate = async ({ content, subject }) => {\n setIsUpdatingTemplate(true)\n await onEmailTemplateUpdate({ content, subject })\n setIsUpdatingTemplate(false)\n }\n\n return (\n \n Invite via email\n {showEmailNotification && (\n theme.spacing(2),\n marginBottom: (theme) => theme.spacing(2),\n color: (theme) => theme.palette.success.semiDark,\n }}>\n Email{emailsToSend.length > 1 ? 's' : ''} sent! If they're new to\n Talkadot, they'll get an invite shortly. :)\n \n )}\n {emailsToSend.map((entry, index) => {\n const failedEmail = failedEmails.find((e) => e.email === entry.email)\n return (\n \n \n {index < emailsToSend.length - 1 && }\n \n )\n })}\n

\n \n \n ({\n color:\n validInputs && !!email\n ? theme.palette.secondary.main\n : theme.palette.grey[500],\n paddingLeft: 0,\n })}\n disabled={isLoading || !validInputs}>\n + Add another email\n \n \n ({\n color: theme.palette.secondary.main,\n })}>\n Preview email\n \n ({\n color:\n validInputs && (!!email || emailsToSend.length > 0)\n ? theme.palette.base.white\n : theme.palette.grey[500],\n width: BUTTON_WIDTH,\n })}\n disabled={\n isLoading ||\n !validInputs ||\n (!email && emailsToSend.length === 0)\n }>\n {sendEmailButtonText}\n \n \n \n \n\n \n \n )\n}\n\nexport default EmailInvite\n","import { useContext } from 'react'\nimport { Typography, Button } from '@mui/material'\nimport { styled } from '@mui/system'\nimport {\n FacebookShareButton,\n LinkedinShareButton,\n TwitterShareButton,\n} from 'react-share'\n\nimport * as Helpers from '../common/helpers'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { ReactComponent as LinkIcon } from '../../icons/linkIcon_16x16.svg'\nimport { ReactComponent as HeartIcon } from '../../icons/heartIcon_16x16.svg'\nimport EmailInvite from './EmailInvite/EmailInvite'\n\nimport { REFERRAL_AMOUNT } from '../../constants/referrals/values'\n\nexport const BUTTON_WIDTH = '110px'\n\nconst MainContentContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n maxWidth: '600px',\n width: '100%',\n}))\n\nconst InviteCard = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n padding: theme.spacing(2.5),\n borderRadius: theme.shape.borderRadius.xs,\n boxShadow: theme.shape.boxShadow.sm,\n [theme.breakpoints.down('sm')]: {\n padding: 0,\n boxShadow: 'none',\n },\n}))\n\nconst HeaderWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'flex-start',\n}))\n\nconst StyledHeartIcon = styled(HeartIcon)(({ theme }) => ({\n marginRight: theme.spacing(0.75),\n marginTop: theme.spacing(0.75),\n minWidth: '16px',\n [theme.breakpoints.down('sm')]: {\n marginTop: theme.spacing(0.5),\n },\n}))\n\nexport const StyledTypography = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.veryDark,\n}))\n\nconst ShareLinkContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'row',\n gap: theme.spacing(1.5),\n [theme.breakpoints.down('md')]: {\n flexDirection: 'column',\n },\n}))\n\nconst LinkContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flex: 1,\n alignItems: 'center',\n gap: theme.spacing(2),\n padding: theme.spacing(0.25, 1),\n borderRadius: theme.shape.borderRadius.xxs,\n border: `1px solid ${theme.palette.neutral.veryLight}`,\n maxWidth: '100%',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n}))\n\nconst StyledLinkIcon = styled(LinkIcon)(({ theme }) => ({\n flexShrink: 0,\n marginLeft: theme.spacing(1),\n [theme.breakpoints.down('md')]: {\n display: 'none',\n },\n}))\n\nconst LinkWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n marginRight: 'auto',\n flexDirection: 'column',\n justifyContent: 'center',\n padding: theme.spacing(1.25),\n}))\n\nconst CopyableLink = styled(Typography)(({ theme }) => ({\n cursor: 'pointer',\n color: theme.palette.neutral.veryDark,\n}))\n\nconst StyledButton = styled(Button)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n color: theme.palette.base.white,\n textWrap: 'nowrap',\n width: BUTTON_WIDTH,\n}))\n\nconst LinkLikeButton = styled('span')(({ theme }) => ({\n color: theme.palette.secondary.main,\n cursor: 'pointer',\n textDecoration: 'none',\n '&:hover': {\n color: theme.palette.secondary.dark,\n },\n}))\n\nconst InviteComponent = ({ referralLink }) => {\n const { setNotification } = useContext(AuthenticationContext)\n\n const handleCopy = () => {\n Helpers.handleCopy(referralLink)\n return setNotification('Copied!', 'success')\n }\n\n return (\n \n \n \n \n \n {referralLink.replace(/^https?:\\/\\//i, '')}\n \n \n \n \n Copy Link\n \n \n )\n}\n\nconst ShareParent = ({\n referralLink,\n failedEmails,\n onSendEmails,\n emailTemplate,\n onEmailTemplateUpdate,\n isLoading,\n showEmailNotification,\n}) => {\n return (\n \n \n \n \n Talkadot? Spread the word and get ${REFERRAL_AMOUNT}.\n \n \n \n Grow this community with us! Tell someone about Talkadot and receive $\n {REFERRAL_AMOUNT} for every speaker who upgrades to a Pro Plan or\n higher! ($50 for upgrades before August 18th, 2024)\n \n \n \n Copy and share your link\n \n \n \n Share your link on{' '}\n LinkedIn}\n />\n {' | '}\n Facebook}\n />\n {' | '}\n Twitter}\n />\n \n \n \n \n )\n}\n\nexport default ShareParent\n","export const REFERRAL_AMOUNT = 75\n","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgGiftIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Icons\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M20 12V22H4V12\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_2\",\n d: \"M22 7H2V12H22V7Z\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_3\",\n d: \"M12 22V7\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_4\",\n d: \"M12 7H16.5C17.163 7 17.7989 6.73661 18.2678 6.26777C18.7366 5.79893 19 5.16304 19 4.5C19 3.83696 18.7366 3.20107 18.2678 2.73223C17.7989 2.26339 17.163 2 16.5 2C13 2 12 7 12 7Z\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_5\",\n d: \"M12 7H7.5C6.83696 7 6.20107 6.73661 5.73223 6.26777C5.26339 5.79893 5 5.16304 5 4.5C5 3.83696 5.26339 3.20107 5.73223 2.73223C6.20107 2.26339 6.83696 2 7.5 2C11 2 12 7 12 7Z\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGiftIcon);\nexport default __webpack_public_path__ + \"static/media/giftIcon.b547c80b.svg\";\nexport { ForwardRef as ReactComponent };","import { useRef } from 'react'\nimport { styled } from '@mui/system'\nimport QRCode from 'qrcode.react'\n\nimport { Typography } from '@mui/material'\n\nimport { ReactComponent as DownloadIcon } from '../../icons/downloadIcon.svg'\n\nimport { downloadShareCodeAsPng } from '../common/helpers'\n\nconst MainContentContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n marginBottom: theme.spacing(2.5),\n}))\n\nconst QrCard = styled('div')(({ theme }) => ({\n padding: theme.spacing(2.5),\n borderRadius: theme.shape.borderRadius.sm,\n boxShadow: theme.shape.boxShadow.xs,\n [theme.breakpoints.down('sm')]: {\n borderRadius: 0,\n boxShadow: 'none',\n padding: theme.spacing(0),\n },\n}))\n\nconst QrDownloadWrapper = styled('div')(({ theme }) => ({\n width: '210px',\n height: '210px',\n}))\n\nconst QrActions = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n}))\n\nconst ScanCodeText = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.veryDark,\n marginRight: 'auto',\n [theme.breakpoints.down('sm')]: {\n display: 'none',\n },\n}))\n\nconst DownloadText = styled(Typography)(({ theme }) => ({\n color: theme.palette.secondary.main,\n cursor: 'pointer',\n}))\n\nconst QrParent = ({ referralLink }) => {\n const qrRef = useRef()\n\n const handleDownload = () => {\n downloadShareCodeAsPng(qrRef, 'Talkadot-Share-Code')\n }\n\n return (\n \n \n \n \n \n \n \n Scan Code to Share\n \n Download\n \n \n )\n}\n\nexport default QrParent\n","import {\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Typography,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n Paper,\n} from '@mui/material'\nimport { styled } from '@mui/system'\n\nconst StyledTableContainer = styled(TableContainer)(({ theme }) => ({\n maxHeight: '400px',\n marginBottom: theme.spacing(2),\n}))\n\nconst NoEmailsMessage = styled(Box)(({ theme }) => ({\n padding: theme.spacing(3),\n textAlign: 'center',\n color: theme.palette.text.secondary,\n}))\n\nconst formatDate = (dateString) => {\n if (!dateString) return 'N/A'\n const date = new Date(dateString)\n return date.toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n })\n}\n\nconst TrackReferralsModal = ({ open, onClose, emails = [] }) => {\n return (\n \n \n Sent Referral Emails\n \n \n {emails.length > 0 ? (\n \n \n \n \n Email\n Name\n Date Sent\n \n \n \n {emails.map((email, index) => (\n \n {email.email}\n {email.name || 'N/A'}\n \n {formatDate(email.sent_on || email.created_at)}\n \n \n ))}\n \n
\n
\n ) : (\n \n \n No referral emails have been sent yet.\n \n \n )}\n
\n \n \n \n \n )\n}\n\nexport default TrackReferralsModal\n","import { useState, useContext, useEffect } from 'react'\nimport { styled } from '@mui/system'\n\nimport { ReactComponent as UsersIcon } from '../../icons/usersIcon_24x24.svg'\nimport { ReactComponent as UpgradeIcon } from '../../icons/zapIcon_24x24.svg'\nimport { ReactComponent as ReferralIcon } from '../../icons/referralIcon.svg'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport Api from '../../services/api'\n\nimport { makeReferralLink, processWithFallback } from '../common/helpers'\n\nimport {\n Card,\n CardInnerReferral,\n} from '../dashboard/v2/DashboardCardComponents'\nimport ChipList from './ChipList'\nimport ShareParent from './ShareParent'\nimport QrParent from './QrParent'\nimport TrackReferralsModal from './TrackReferralsModal'\nimport { Button } from '@mui/material'\n\nconst RightColumn = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n maxWidth: '250px',\n justifyContent: 'center',\n [theme.breakpoints.down('md')]: {\n maxWidth: '100%',\n alignItems: 'center',\n },\n}))\n\nconst ReferralParent = () => {\n const [signups, setSignups] = useState(0)\n const [upgrades, setUpgrades] = useState(0)\n const [emails, setEmails] = useState([])\n const [failedEmails, setFailedEmails] = useState([])\n const [emailsSent, setEmailsSent] = useState(0)\n const [emailTemplate, setEmailTemplate] = useState({\n content: '',\n id: null,\n subject: '',\n })\n const [isLoading, setIsLoading] = useState(false)\n const [trackModalOpen, setTrackModalOpen] = useState(false)\n const [showEmailNotification, setShowEmailNotification] = useState(false)\n\n const {\n authData: {\n user: { shortlink },\n },\n setNotification,\n } = useContext(AuthenticationContext)\n\n useEffect(() => {\n const fetchReferralData = async () => {\n try {\n setIsLoading(true)\n const res = await Api.getReferralData()\n setIsLoading(false)\n if (!res.errors) {\n setSignups(res.signups)\n setUpgrades(res.upgrades)\n } else {\n throw res.errors\n }\n } catch (error) {\n setNotification(error, 'error')\n }\n }\n\n fetchReferralData()\n }, [setNotification])\n\n useEffect(() => {\n const fetchEmailTemplate = async () => {\n try {\n const res = await Api.getReferralEmails()\n if (!res.errors) {\n setEmails(res.emails)\n setEmailTemplate(res.template)\n setEmailsSent(res.emails_sent)\n } else {\n throw res.errors\n }\n } catch (error) {\n setNotification(error, 'error')\n }\n }\n\n fetchEmailTemplate()\n }, [setNotification])\n\n const handleSendEmails = async (emails) => {\n try {\n const nonSubmittedEmails = emails.filter((email) => !email.submitted)\n if (!nonSubmittedEmails.length) return\n\n const res = await Api.sendReferralEmails({ emails: nonSubmittedEmails })\n if (!res.errors) {\n setEmails((existingEmails) => [...existingEmails, ...res.emails])\n setEmailsSent((emailsSent) => emailsSent + res.emails.length)\n setFailedEmails([...failedEmails, ...res.failed])\n setShowEmailNotification(true)\n } else {\n throw res.errors\n }\n } catch (error) {\n setNotification(error, 'error')\n }\n }\n\n const handleEmailTemplateUpdate = async (data) => {\n try {\n const res = await Api.updateReferralEmailTemplate({\n referral_email: data,\n })\n if (!res.errors) {\n setEmailTemplate(res)\n } else {\n throw res.errors\n }\n } catch (error) {\n setNotification(error, 'error')\n }\n }\n\n const handleToggleTrackModal = () => {\n setTrackModalOpen(!trackModalOpen)\n }\n\n const referralLink = makeReferralLink(shortlink)\n\n if (!shortlink) {\n return null\n }\n\n const chipItems = [\n {\n label: 'invites sent',\n value: processWithFallback(emailsSent),\n icon: ,\n },\n {\n label: 'signups',\n value: processWithFallback(signups),\n icon: ,\n },\n {\n label: 'upgrades',\n value: processWithFallback(upgrades),\n icon: ,\n },\n ]\n\n return (\n \n \n \n \n \n \n {emails.length > 0 && (\n \n Track Referrals\n \n )}\n \n \n \n \n )\n}\n\nexport default ReferralParent\n","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgBellIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Icons\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M18 8C18 6.4087 17.3679 4.88258 16.2426 3.75736C15.1174 2.63214 13.5913 2 12 2C10.4087 2 8.88258 2.63214 7.75736 3.75736C6.63214 4.88258 6 6.4087 6 8C6 15 3 17 3 17H21C21 17 18 15 18 8Z\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_2\",\n d: \"M13.73 21C13.5542 21.3031 13.3019 21.5547 12.9982 21.7295C12.6946 21.9044 12.3504 21.9965 12 21.9965C11.6496 21.9965 11.3054 21.9044 11.0018 21.7295C10.6982 21.5547 10.4458 21.3031 10.27 21\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBellIcon);\nexport default __webpack_public_path__ + \"static/media/bellIcon.9d6ee07f.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgStarIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Icons\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M12 2L15.09 8.26L22 9.27L17 14.14L18.18 21.02L12 17.77L5.82 21.02L7 14.14L2 9.27L8.91 8.26L12 2Z\",\n fill: \"#FFBA00\",\n stroke: \"#FFBA00\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgStarIcon);\nexport default __webpack_public_path__ + \"static/media/starIcon.c839b5f0.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgUpgradeIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 14,\n height: 17,\n viewBox: \"0 0 14 17\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.49714 9.43083H4.85142V14.6672C4.85142 15.889 5.54476 16.1363 6.39047 15.2199L12.1581 8.96538C12.8667 8.20174 12.5695 7.56902 11.4952 7.56902H9.14095V2.33265C9.14095 1.11083 8.44761 0.863562 7.6019 1.77993L1.83428 8.03447C1.13333 8.80538 1.43047 9.43083 2.49714 9.43083Z\",\n stroke: \"white\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUpgradeIcon);\nexport default __webpack_public_path__ + \"static/media/upgradeIcon.35941d1f.svg\";\nexport { ForwardRef as ReactComponent };","import { useContext } from 'react'\nimport {\n Avatar,\n Stepper,\n Step,\n StepLabel,\n StepContent,\n Typography,\n // StepConnector,\n} from '@mui/material'\n// import { stepConnectorClasses } from '@mui/material/StepConnector'\nimport { styled } from '@mui/system'\nimport { useTheme } from '@mui/material/styles'\n\nimport { ReactComponent as GiftIcon } from '../../../icons/giftIcon.svg'\nimport { ReactComponent as BellIcon } from '../../../icons/bellIcon.svg'\nimport { ReactComponent as StarIcon } from '../../../icons/starIcon.svg'\n\nimport { Card, CardInnerTrial } from './DashboardCardComponents'\nimport { AuthenticationContext } from '../../authentication/authenticationContext'\n\nconst StyledAvatar = styled(Avatar, {\n shouldForwardProp: (prop) => prop !== 'isDefault',\n})(({ theme, isDefault }) => ({\n width: '250px',\n height: '250px',\n ...(isDefault && {\n img: {\n marginLeft: '16px', // Center the image within avatar container\n width: '110%',\n height: '110%',\n },\n }),\n [theme.breakpoints.down('md')]: {\n display: 'none',\n },\n}))\n\nconst StyledHeader = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.veryDark,\n}))\n\nconst TrialDetailsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(3),\n}))\n\nconst ModalTriggerLink = styled('span')(({ theme }) => ({\n color: theme.palette.secondary.main,\n fontWeight: 600,\n cursor: 'pointer',\n}))\n\nconst StepLabelTypography = styled(Typography)(({ theme }) => ({\n fontWeight: 600,\n color: theme.palette.neutral.veryDark,\n paddingLeft: theme.spacing(2),\n}))\n\nconst StyledEllipse = styled('div')(({ theme, active }) => ({\n width: '40px',\n height: '40px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '50%',\n backgroundColor: active ? theme.palette.success.semiDark : 'transparent',\n border: active ? 'none' : `1px solid ${theme.palette.neutral.veryLight}`,\n svg: {\n stroke: active ? theme.palette.base.white : theme.palette.neutral.veryLight,\n width: '24px',\n height: '24px',\n },\n}))\n\n// NOTE: This is kinda janky but couldn't get the connector to position correctly\nconst StyledStepper = styled(Stepper)(({ theme }) => ({\n '& .MuiStepConnector-root': {\n marginLeft: theme.spacing(2.5),\n },\n}))\n\n// NOTE: This is kinda janky but couldn't get the content to position correctly using MUI stepper\nconst StyledStepContent = styled(StepContent)(({ theme }) => ({\n '&.MuiStepContent-root': {\n marginLeft: theme.spacing(2.5),\n paddingLeft: theme.spacing(5.5),\n '& .MuiTypography-root': {\n marginTop: `-${theme.spacing(2)}`,\n },\n },\n}))\n\nconst StepIcon = ({ children, active }) => (\n {children}\n)\n\nconst TrialProgressParent = ({\n planName,\n discountedPrice,\n retailPrice,\n planTrialDays,\n startDate,\n reminderDate,\n endDate,\n today,\n // percentageOfTrialComplete,\n referrerName,\n referrerAvatar,\n currentStep,\n}) => {\n const { toggleUpgradeModal } = useContext(AuthenticationContext)\n\n const theme = useTheme()\n const veryDark = theme.palette.neutral.veryDark\n\n const steps = [\n {\n stepNum: 1,\n icon: ,\n label: `${\n today === startDate ? 'Today' : startDate\n } - Free Trial of ${planName}`,\n description: discountedPrice && (\n <>\n toggleUpgradeModal(true, 'Upgrade')}>\n Upgrade\n {' '}\n \n in your first {planTrialDays} days and get Talkadot for $\n {discountedPrice} instead of ${retailPrice} per year\n \n \n ),\n },\n {\n stepNum: 2,\n icon: ,\n label: today === reminderDate ? 'Today' : reminderDate,\n description: (\n \n You’ll get a reminder that you’re halfway through your free trial\n \n ),\n },\n {\n stepNum: 3,\n icon: ,\n label: today === endDate ? 'Today' : endDate,\n description: (\n \n This is the last free trial day.\n
If you don’t upgrade, you’ll automatically revert back to the\n free Talkadot Lite Plan.\n
\n ),\n },\n ]\n\n const renderTitle = () => {\n if (referrerName) {\n return `You’re on a ${planTrialDays} day free ${planName} trial thanks to ${referrerName}!`\n }\n\n return `You’re on a ${planTrialDays} day free ${planName} trial!`\n }\n\n return (\n \n \n \n\n \n {renderTitle()}\n } // No change in appearance with this commented out??\n >\n {steps.map((step, index) => (\n \n (\n \n {step.icon}\n \n )}>\n \n {step.label}\n \n \n \n \n {step.description}\n \n \n \n ))}\n \n \n \n \n )\n}\n\nexport default TrialProgressParent\n","import ReactPlayer from 'react-player/vimeo'\nimport { styled } from '@mui/system'\n\nconst VideoContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n})\n\nconst VideoPlayerComponent = ({ videoId, autoplay, listId }) => {\n return (\n \n \n \n )\n}\n\nexport default VideoPlayerComponent\n","import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\nimport VideoPlayer from '../../common/VideoPlayer'\nimport {\n Card,\n CardVideoContainer,\n CardInnerVideo,\n} from './DashboardCardComponents'\n\nconst StyledHeader = styled(Typography)(({ theme }) => ({\n fontWeight: '600',\n}))\n\nconst StyledHeaderWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n marginBottom: theme.spacing(2),\n textAlign: 'center',\n}))\n\nconst CommunityLink = styled('a')(({ theme }) => ({\n color: theme.palette.secondary.main,\n fontWeight: '600',\n cursor: 'pointer',\n textDecoration: 'none',\n}))\n\nconst VideoParent = () => {\n return (\n \n \n \n \n Get the most out of your Talkadot Experience. Watch this video\n series\n \n \n Want more ideas?\n \n {' '}\n Head to our Talkadot Community{' '}\n \n to hear from fellow unicorn speakers.\n \n \n \n \n \n \n \n )\n}\n\nexport default VideoParent\n","import { styled } from '@mui/system'\n\nconst Container = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n // add padding to bottom to allow space for chat widget\n paddingBottom: '100px',\n})\n\nconst MaxWidthContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'noNavPage' && prop !== 'maxWidth',\n})(({ noNavPage, maxWidth }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: noNavPage ? 'center' : '',\n justifyContent: noNavPage ? 'center' : '',\n width: '100%',\n height: noNavPage ? '100vh' : '',\n maxWidth: maxWidth ? `${maxWidth}px` : '1280px',\n}))\n\nconst PageContainer = ({ children, maxWidth, noNavPage = false }) => {\n return (\n \n \n {children}\n \n \n )\n}\n\nexport default PageContainer\n","import { useHistory, useLocation } from 'react-router-dom'\n\n/**\n * Hook for redirecting to billing page with source tracking\n */\nexport const useBillingRedirect = () => {\n const history = useHistory()\n const location = useLocation()\n\n /**\n * Redirect to billing page with source tracking\n * @param {Object} options\n * @param {string} options.access_method - What redirected the user to billing (e.g., 'upgrade_button', 'navbar', 'notification', etc.)\n */\n const redirectToBilling = ({ accessMethod = 'unknown' } = {}) => {\n const currentPath = location.pathname\n\n history.push('/account/billing', {\n accessMethod,\n source: currentPath,\n })\n }\n\n return redirectToBilling\n}\n","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgEyeIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_206_2466)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.666992 7.99996C0.666992 7.99996 3.33366 2.66663 8.00033 2.66663C12.667 2.66663 15.3337 7.99996 15.3337 7.99996C15.3337 7.99996 12.667 13.3333 8.00033 13.3333C3.33366 13.3333 0.666992 7.99996 0.666992 7.99996Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 10C9.10457 10 10 9.10457 10 8C10 6.89543 9.10457 6 8 6C6.89543 6 6 6.89543 6 8C6 9.10457 6.89543 10 8 10Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_206_2466\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEyeIcon16X16);\nexport default __webpack_public_path__ + \"static/media/eyeIcon_16x16.18559eac.svg\";\nexport { ForwardRef as ReactComponent };","import { styled } from '@mui/system'\nimport { Button } from '@mui/material'\n\nimport { useBillingRedirect } from '../../hooks/useBillingRedirect'\n\nimport { ReactComponent as UpgradeIcon } from '../../icons/upgradeIcon.svg'\n\nconst StyledButton = styled(Button, {\n shouldForwardProp: (prop) => prop !== 'showText',\n})(({ theme, showText }) => ({\n color: theme.palette.base.white,\n textWrap: 'nowrap',\n minWidth: showText ? '140px' : '50px',\n width: showText ? 'auto' : '50px',\n height: showText ? 'auto' : '50px',\n '&:hover': {\n backgroundColor: theme.palette.secondary.main,\n },\n svg: {\n marginRight: showText ? theme.spacing(1) : 0,\n },\n [theme.breakpoints.down('md')]: {\n minWidth: '50px',\n height: '50px',\n svg: {\n marginRight: 0,\n },\n '& .button-text': {\n display: 'none',\n },\n },\n}))\n\nconst UpgradeButton = ({ showText = true, status }) => {\n const redirectToBilling = useBillingRedirect()\n\n return (\n redirectToBilling({ accessMethod: 'upgrade-button' })}>\n \n {showText && Upgrade Plan}\n \n )\n}\n\nexport default UpgradeButton\n","import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\n\nimport UpgradeButton from './UpgradeButton'\n\nconst HeaderWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: theme.spacing(4),\n}))\n\nconst HeaderText = styled(Typography)(({ theme }) => ({\n color: theme.palette.text.navText,\n [theme.breakpoints.down('md')]: {\n fontSize: '2.0625rem',\n },\n [theme.breakpoints.down('sm')]: {\n fontSize: '1.5rem',\n },\n}))\n\nconst PageHeader = ({ header, showUpgradeButton }) => {\n return (\n \n \n {header}\n \n {showUpgradeButton && }\n \n )\n}\n\nexport default PageHeader\n","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgEyeOffIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_206_2409)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.60033 2.82664C7.05921 2.71923 7.52904 2.66554 8.00033 2.66664C12.667 2.66664 15.3337 7.99998 15.3337 7.99998C14.929 8.75705 14.4464 9.4698 13.8937 10.1266M9.41366 9.41331C9.23056 9.60981 9.00976 9.76741 8.76443 9.87673C8.5191 9.98604 8.25426 10.0448 7.98572 10.0496C7.71718 10.0543 7.45043 10.0049 7.2014 9.9043C6.95236 9.80371 6.72614 9.654 6.53622 9.46408C6.34631 9.27416 6.19659 9.04794 6.096 8.7989C5.99541 8.54987 5.94601 8.28312 5.95075 8.01458C5.95549 7.74604 6.01426 7.48121 6.12358 7.23587C6.23289 6.99054 6.39049 6.76974 6.58699 6.58664M11.9603 11.96C10.8207 12.8286 9.43306 13.3099 8.00033 13.3333C3.33366 13.3333 0.666992 7.99998 0.666992 7.99998C1.49625 6.45457 2.64642 5.10438 4.04033 4.03998L11.9603 11.96Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.666992 0.666626L15.3337 15.3333\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_206_2409\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEyeOffIcon16X16);\nexport default __webpack_public_path__ + \"static/media/eyeOffIcon_16x16.f996bf15.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgTrash2Icon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 4H3.33333H14\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.33301 4.00004V2.66671C5.33301 2.31309 5.47348 1.97395 5.72353 1.7239C5.97358 1.47385 6.31272 1.33337 6.66634 1.33337H9.33301C9.68663 1.33337 10.0258 1.47385 10.2758 1.7239C10.5259 1.97395 10.6663 2.31309 10.6663 2.66671V4.00004M12.6663 4.00004V13.3334C12.6663 13.687 12.5259 14.0261 12.2758 14.2762C12.0258 14.5262 11.6866 14.6667 11.333 14.6667H4.66634C4.31272 14.6667 3.97358 14.5262 3.72353 14.2762C3.47348 14.0261 3.33301 13.687 3.33301 13.3334V4.00004H12.6663Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.33301 7.33337V11.3334\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.66699 7.33337V11.3334\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTrash2Icon16X16);\nexport default __webpack_public_path__ + \"static/media/trash2Icon_16x16.5101c5b1.svg\";\nexport { ForwardRef as ReactComponent };","import { useState, useEffect, useContext } from 'react'\nimport { styled } from '@mui/system'\nimport { IconButton, Tooltip } from '@mui/material'\n\nimport { AuthenticationContext } from '../../authentication/authenticationContext'\n\nimport { ReactComponent as EyeIcon } from '../../../icons/eyeIcon_16x16.svg'\nimport { ReactComponent as EyeOffIcon } from '../../../icons/eyeOffIcon_16x16.svg'\n\nconst ToggleQuestionButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'enabled' && prop !== 'iconColor',\n})(({ theme, enabled, iconColor }) => ({\n svg: {\n path: {\n stroke: enabled\n ? iconColor || theme.palette.neutral.veryDark\n : theme.palette.error.semiDark,\n },\n },\n}))\n\nconst UPGRADE_HELPER_TEXT =\n 'Upgrade your plan to customize question visibility and more!'\n\nconst CodeBuilderToggleQuestionButton = ({\n handleToggleQuestion,\n enabled,\n iconColor,\n canToggleVisibility,\n enabledTooltip = 'Visible to your audience. Toggle off to skip asking this question.',\n disabledTooltip = 'Question is not visible to your audience. Toggle on to ask this question.',\n toggleEnabledTier = 10,\n}) => {\n const [open, setOpen] = useState(false)\n const { toggleUpgradeModal } = useContext(AuthenticationContext)\n\n useEffect(() => {\n return () => {\n setOpen(false)\n }\n }, [enabled])\n\n const makeTooltipTitle = () => {\n if (!canToggleVisibility) {\n return 'You need to upgrade your plan to toggle the visibility of this question.'\n }\n\n return enabled ? enabledTooltip : disabledTooltip\n }\n\n const handleToggleClick = async () => {\n if (!canToggleVisibility) {\n return toggleUpgradeModal(true, UPGRADE_HELPER_TEXT, {\n tierRequirement: toggleEnabledTier,\n })\n }\n\n await handleToggleQuestion()\n }\n\n return (\n setOpen(true)}\n onClose={() => setOpen(false)}\n disableInteractive\n arrow>\n \n {enabled ? : }\n \n \n )\n}\n\nexport default CodeBuilderToggleQuestionButton\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgFreeFlow(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 10,\n viewBox: \"0 0 16 10\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.59961 1.50909H14.3996M1.59961 5H14.3996M1.59961 8.49091H8.79961\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFreeFlow);\nexport default __webpack_public_path__ + \"static/media/freeFlow.8bdd6215.svg\";\nexport { ForwardRef as ReactComponent };","import { styled } from '@mui/system'\n\nimport { IconButton, Tooltip } from '@mui/material'\n\nimport { ReactComponent as TrashIcon } from '../../../icons/trash2Icon_16x16.svg'\n\nconst DeleteButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'iconColor',\n})(({ theme, iconColor }) => ({\n svg: {\n path: {\n stroke: iconColor || theme.palette.neutral.veryDark,\n },\n },\n}))\n\nconst CodeBuilderDeleteButton = ({\n handleDelete,\n iconColor,\n toolTip = 'Click to delete this question permanently.',\n}) => {\n return (\n \n \n {}\n \n \n )\n}\n\nexport default CodeBuilderDeleteButton\n","var _path, _path2, _line;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgBoolean(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.39961 1.45003C5.39961 1.52337 5.36294 1.6467 5.28961 1.82003C5.21628 1.9867 5.10294 2.21003 4.94961 2.49003C4.79628 2.77003 4.59961 3.11003 4.35961 3.51003C4.11961 3.91003 3.82961 4.37337 3.48961 4.90003V7.01003C3.43628 7.02337 3.35294 7.04003 3.23961 7.06003C3.13294 7.08003 3.01961 7.09003 2.89961 7.09003C2.64628 7.09003 2.46961 7.04337 2.36961 6.95003C2.26961 6.8567 2.21961 6.70337 2.21961 6.49003V4.91003C2.03961 4.65003 1.84961 4.36337 1.64961 4.05003C1.44961 3.7367 1.25294 3.42003 1.05961 3.10003C0.866276 2.78003 0.686276 2.4667 0.519609 2.16003C0.352943 1.8467 0.212943 1.56337 0.0996094 1.31003C0.152943 1.21003 0.236276 1.12003 0.349609 1.04003C0.462943 0.953367 0.606276 0.910034 0.779609 0.910034C0.972943 0.910034 1.12628 0.953367 1.23961 1.04003C1.35961 1.1267 1.47628 1.2767 1.58961 1.49003C1.64294 1.58337 1.72628 1.74003 1.83961 1.96003C1.95961 2.17337 2.08294 2.40003 2.20961 2.64003C2.34294 2.88003 2.46628 3.1067 2.57961 3.32003C2.69961 3.53337 2.78294 3.68003 2.82961 3.76003H2.87961C3.00628 3.51337 3.12628 3.28003 3.23961 3.06003C3.35294 2.83337 3.46294 2.61337 3.56961 2.40003C3.67628 2.18003 3.77961 1.96003 3.87961 1.74003C3.98628 1.51337 4.09628 1.28003 4.20961 1.04003C4.28961 0.993367 4.37961 0.960034 4.47961 0.940034C4.58628 0.920034 4.68628 0.910034 4.77961 0.910034C4.95961 0.910034 5.10628 0.956701 5.21961 1.05003C5.33961 1.14337 5.39961 1.2767 5.39961 1.45003Z\",\n fill: \"#191D23\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.4102 15.09C11.1636 15.09 10.9902 15.0467 10.8902 14.96C10.7902 14.8667 10.7402 14.7133 10.7402 14.5V9.16999C10.8136 9.07666 10.9202 9.00333 11.0602 8.94999C11.2069 8.89666 11.3669 8.87 11.5402 8.87C11.7469 8.87 11.9302 8.90666 12.0902 8.97999C12.2569 9.05333 12.4036 9.19999 12.5302 9.42L13.9702 12.01C14.1036 12.25 14.2302 12.5 14.3502 12.76C14.4769 13.0133 14.5869 13.2467 14.6802 13.46L14.7202 13.45C14.6869 13.0567 14.6636 12.6767 14.6502 12.31C14.6436 11.9367 14.6402 11.57 14.6402 11.21V8.93999C14.6936 8.92666 14.7736 8.91333 14.8802 8.89999C14.9936 8.87999 15.1069 8.87 15.2202 8.87C15.4669 8.87 15.6402 8.91666 15.7402 9.01C15.8469 9.09666 15.9002 9.24666 15.9002 9.45999V14.86C15.8269 14.9333 15.7202 14.99 15.5802 15.03C15.4469 15.07 15.2869 15.09 15.1002 15.09C14.9002 15.09 14.7169 15.0567 14.5502 14.99C14.3902 14.9167 14.2469 14.77 14.1202 14.55L12.6802 11.96C12.5469 11.7267 12.4169 11.48 12.2902 11.22C12.1702 10.9533 12.0636 10.7133 11.9702 10.5L11.9102 10.51C11.9436 10.8767 11.9636 11.2533 11.9702 11.64C11.9836 12.0267 11.9902 12.3933 11.9902 12.74V15.01C11.9369 15.0233 11.8569 15.04 11.7502 15.06C11.6436 15.08 11.5302 15.09 11.4102 15.09Z\",\n fill: \"#191D23\"\n })), _line || (_line = /*#__PURE__*/React.createElement(\"line\", {\n x1: 1.58562,\n y1: 14.6998,\n x2: 11.5856,\n y2: 2.69981,\n stroke: \"#191D23\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBoolean);\nexport default __webpack_public_path__ + \"static/media/boolean.68c0e9fc.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _rect, _rect2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgMultipleChoice(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.86816 3.26465H15.3682\",\n stroke: \"#191D23\",\n strokeWidth: 1.2,\n strokeLinecap: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.86816 12.2646H15.3682\",\n stroke: \"#191D23\",\n strokeWidth: 1.2,\n strokeLinecap: \"round\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 1.23281,\n y: 1.1,\n width: 4.95385,\n height: 4.95385,\n rx: 1.4,\n stroke: \"#191D23\",\n strokeWidth: 1.2\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 1.23281,\n y: 9.94619,\n width: 4.95385,\n height: 4.95385,\n rx: 1.4,\n stroke: \"#191D23\",\n strokeWidth: 1.2\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMultipleChoice);\nexport default __webpack_public_path__ + \"static/media/multipleChoice.61d81e3d.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgEmoji(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.6517 11.6517C10.1872 13.1161 7.81282 13.1161 6.34835 11.6517M16.5 9C16.5 13.1421 13.1421 16.5 9 16.5C4.85786 16.5 1.5 13.1421 1.5 9C1.5 4.85786 4.85786 1.5 9 1.5C13.1421 1.5 16.5 4.85786 16.5 9ZM7.125 7.125C7.125 7.47018 6.98509 7.75 6.8125 7.75C6.63991 7.75 6.5 7.47018 6.5 7.125C6.5 6.77982 6.63991 6.5 6.8125 6.5C6.98509 6.5 7.125 6.77982 7.125 7.125ZM6.8125 7.125H6.81875V7.1375H6.8125V7.125ZM11.5 7.125C11.5 7.47018 11.3601 7.75 11.1875 7.75C11.0149 7.75 10.875 7.47018 10.875 7.125C10.875 6.77982 11.0149 6.5 11.1875 6.5C11.3601 6.5 11.5 6.77982 11.5 7.125ZM11.1875 7.125H11.1938V7.1375H11.1875V7.125Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmoji);\nexport default __webpack_public_path__ + \"static/media/emoji.6ed4934b.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCaretDown16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 6L8 10L12 6\",\n stroke: \"black\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCaretDown16X16);\nexport default __webpack_public_path__ + \"static/media/caretDown_16x16.f5b444be.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgNps(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20,\n height: 12,\n viewBox: \"0 0 20 12\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.1735 10.2231L11.5139 6.47827L9.10736 9.37002C8.80606 9.73393 8.72389 10.2544 8.97432 10.6691C9.10736 10.8883 9.31084 11.0722 9.56911 11.1778C9.82737 11.2835 10.1013 11.2991 10.3517 11.2365C10.8213 11.1191 11.1343 10.6926 11.1735 10.2231Z\",\n stroke: \"#191D23\",\n strokeWidth: 1.2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 10C1 5.03043 5.03043 1 10 1C14.9696 1 19 5.03043 19 10\",\n stroke: \"#191D23\",\n strokeWidth: 1.2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 1V2.95652\",\n stroke: \"#191D23\",\n strokeWidth: 1.2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.6377 3.63745L5.019 5.01876\",\n stroke: \"#191D23\",\n strokeWidth: 1.2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 10H2.95652\",\n stroke: \"#191D23\",\n strokeWidth: 1.2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.9995 10H17.043\",\n stroke: \"#191D23\",\n strokeWidth: 1.2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.3627 3.63745L14.9814 5.01876\",\n stroke: \"#191D23\",\n strokeWidth: 1.2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNps);\nexport default __webpack_public_path__ + \"static/media/nps.c7fdeb4d.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgPreview(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.33301 2L12.6663 8L3.33301 14V2Z\",\n stroke: \"#0D0F11\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPreview);\nexport default __webpack_public_path__ + \"static/media/preview.fb151374.svg\";\nexport { ForwardRef as ReactComponent };","import { useState } from 'react'\nimport { styled } from '@mui/system'\n\nimport {\n MenuItem,\n ListItemIcon,\n ListItemText,\n Select,\n InputBase,\n} from '@mui/material'\n\nimport { ReactComponent as OpenEndedIcon } from '../../../icons/questionTypeIcons/freeFlow.svg'\nimport { ReactComponent as BooleanIcon } from '../../../icons/questionTypeIcons/boolean.svg'\nimport { ReactComponent as MultipleChoiceIcon } from '../../../icons/questionTypeIcons/multipleChoice.svg'\nimport { ReactComponent as EmojiIcon } from '../../../icons/questionTypeIcons/emoji.svg'\nimport { ReactComponent as CaretDownIcon } from '../../../icons/caretDown_16x16.svg'\nimport { ReactComponent as NpsIcon } from '../../../icons/questionTypeIcons/nps.svg'\n\nconst StyledMenuItem = styled(MenuItem, {\n shouldForwardProp: (prop) => prop !== 'questionType' && prop !== 'epitome',\n})(({ questionType, epitome, theme }) => ({\n fontFamily: 'Figtree, sans-serif',\n minHeight: '52px !important',\n // NOTE: Not sure what this is for?\n // '& .MuiListItemIcon-root': {\n // minWidth: '50px',\n // },\n backgroundColor: `${\n questionType === epitome && theme.palette.secondary.main\n } !important`,\n '&:hover': {\n backgroundColor: questionType === epitome && theme.palette.secondary.main,\n },\n '& svg path': {\n // Non-boolean type svgs need the stroke\n stroke:\n questionType === epitome && epitome !== 'BOOLEAN'\n ? theme.palette.base.white\n : '',\n // Only the boolean svg needs the fill\n fill:\n questionType === epitome && epitome === 'BOOLEAN'\n ? theme.palette.base.white\n : '',\n },\n '& svg rect': {\n stroke: questionType === epitome ? theme.palette.base.white : '',\n },\n '& svg line': {\n stroke: questionType === epitome ? theme.palette.base.white : '',\n },\n margin: '0 15px',\n borderRadius: theme.shape.borderRadius.xs,\n}))\n\nconst StyledListItemText = styled(ListItemText, {\n shouldForwardProp: (prop) => prop !== 'selected',\n})(({ selected, theme }) => ({\n span: {\n color: selected && theme.palette.base.white,\n },\n}))\n\nconst StyledInput = styled(InputBase)(({ theme }) => ({\n '& .MuiInputBase-input': {\n width: '100%',\n fontFamily: 'Figtree, sans-serif',\n fontWeight: '400',\n fontSize: '0.875rem',\n border: 'none',\n position: 'relative',\n backgroundColor: 'transparent',\n color: theme.palette.neutral.main,\n textOverflow: 'ellipsis',\n padding: 0,\n '&:focus': {\n outline: 'none',\n },\n '&::placeholder': {\n color: theme.palette.neutral.light,\n opacity: '50%',\n },\n },\n}))\n\nconst StyledCaretIcon = styled(CaretDownIcon)(({ theme }) => ({\n path: {\n stroke: theme.palette.neutral.dark,\n },\n}))\n\nexport const renderStyledMenuItem = (questionType, question) => (\n \n \n \n \n \n {questionType.label}\n \n \n)\n\nexport const QuestionTypeIcon = ({ questionType }) => {\n if (questionType === 'FREE_FLOW') {\n return \n }\n\n if (questionType === 'BOOLEAN') {\n return \n }\n\n if (questionType === 'EMOJI_SCALE') {\n return \n }\n\n if (questionType === 'MULTIPLE_CHOICE') {\n return \n }\n\n if (questionType === 'NPS') {\n return \n }\n\n return \n}\n\nconst CodeBuilderQuestionTypePicker = ({\n availableQuestionTypes,\n changeQuestionType,\n question,\n}) => {\n const [value, setValue] = useState('')\n\n const updateQuestionType = (questionTypeId) => {\n setValue(questionTypeId)\n changeQuestionType(question.id, { question_type_id: questionTypeId })\n }\n return (\n {\n updateQuestionType(e.target.value)\n }}\n MenuProps={{\n PaperProps: {\n style: {\n transformOrigin: 'right top',\n },\n },\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'right',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'right',\n },\n }}\n input={}\n value={value}\n renderValue={() => null}\n IconComponent={StyledCaretIcon}>\n {availableQuestionTypes?.map((questionType) => {\n return renderStyledMenuItem(questionType, question)\n })}\n \n )\n}\n\nexport default CodeBuilderQuestionTypePicker\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgPlusIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.28613 6H10.7147\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 10.3775V1.62244\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlusIcon16X16);\nexport default __webpack_public_path__ + \"static/media/plusIcon_16x16.bc6668b1.svg\";\nexport { ForwardRef as ReactComponent };","import { useContext, useState, useEffect } from 'react'\n\nimport { QuestionHeaderActionButton } from './CodeBuilderQuestionHeader'\nimport { ReactComponent as Preview } from '../../../icons/preview.svg'\n\nimport { AuthenticationContext } from '../../authentication/authenticationContext'\nimport { makeSurveyLink } from '../../common/helpers'\nimport CloseIcon from '@mui/icons-material/Close'\n\nimport { Tooltip, Dialog, DialogContent, DialogTitle } from '@mui/material'\nimport { styled } from '@mui/system'\n\nimport { isMobileOnly } from 'react-device-detect'\n\nconst SURVEY_HEIGHT_THRESHOLD = 800\n\nconst IframeContainer = styled('div')({\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n overflow: 'hidden',\n})\n\nconst StyledIframe = styled('iframe')(({ overrideHeight }) => ({\n width: '100%',\n height: overrideHeight,\n border: 'none',\n transform: 'scale(0.9)',\n}))\n\nconst StyledDialogContent = styled(DialogContent)({\n height: '100vh',\n padding: 0,\n})\n\nconst StyledDialogTitle = styled(DialogTitle)({\n display: 'flex',\n justifyContent: 'flex-end',\n})\n\nconst CodeBuilderLaunchPreviewButton = ({ code }) => {\n const [previewOpen, setPreviewOpen] = useState(false)\n const { authData } = useContext(AuthenticationContext)\n const { shortlink } = authData?.user\n const [screenHeight, setScreenHeight] = useState(window.innerHeight)\n\n const surveyLinkSrc = makeSurveyLink({\n shortlink: shortlink,\n code: code,\n test: true,\n })\n\n // -----------------------------------------\n // -----------------------------------------\n // Use Similar dynamic resizing to the survey parent so that the layout doesn't\n // completely break if someone is using an odd screen. Although it's not perfect\n // since this is a modal and an iFrame.\n const surveyHeight =\n isMobileOnly || screenHeight < SURVEY_HEIGHT_THRESHOLD\n ? '100%'\n : SURVEY_HEIGHT_THRESHOLD\n\n useEffect(() => {\n const handleResize = () => {\n setScreenHeight(window.innerHeight)\n }\n\n window.addEventListener('resize', handleResize)\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n // ------------------------------------------\n // ------------------------------------------\n\n return (\n <>\n \n }\n color=\"tertiary\"\n onClick={() => setPreviewOpen(true)}>\n Preview\n \n \n setPreviewOpen(false)}\n fullScreen\n maxWidth=\"lg\"\n aria-labelledby=\"preview-mode-survey\">\n \n }\n onClick={() => setPreviewOpen(false)}>\n Close Preview\n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default CodeBuilderLaunchPreviewButton\n","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCircledArrowRight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_9586_5593)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.99999 14.6666C11.6819 14.6666 14.6667 11.6819 14.6667 7.99998C14.6667 4.31808 11.6819 1.33331 7.99999 1.33331C4.3181 1.33331 1.33333 4.31808 1.33333 7.99998C1.33333 11.6819 4.3181 14.6666 7.99999 14.6666Z\",\n stroke: \"#0D0F11\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 10.6666L10.6667 7.99998L8 5.33331\",\n stroke: \"black\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.33333 8H10.6667\",\n stroke: \"black\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_9586_5593\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCircledArrowRight);\nexport default __webpack_public_path__ + \"static/media/circledArrowRight.f36d07a9.svg\";\nexport { ForwardRef as ReactComponent };","import { useState, useContext } from 'react'\nimport { styled } from '@mui/system'\n\nimport { Menu, Tooltip } from '@mui/material'\n\nimport { AuthenticationContext } from '../../authentication/authenticationContext'\nimport { renderStyledMenuItem } from './CodeBuilderQuestionTypePicker'\nimport { QuestionHeaderActionButton } from './CodeBuilderQuestionHeader'\n\nimport { ReactComponent as PlusIcon } from '../../../icons/plusIcon_16x16.svg'\n\nimport {\n usePermissionHelper,\n CUSTOM_QUESTION_LIMIT,\n} from '../../../utils/permission_helper'\n\nimport { MenuItem } from '@mui/material'\n\nconst NewQuestionNoticeContainer = styled(MenuItem)(({ theme }) => ({\n backgroundColor: theme.palette.neutral.lightest,\n fontSize: theme.typography.paragraph00,\n textWrap: 'wrap',\n maxWidth: '232px',\n '&:hover': {\n backgroundColor: theme.palette.neutral.lightest,\n },\n marginBottom: '8px',\n marginTop: '-8px',\n paddingTop: '12px',\n paddingBottom: '12px',\n}))\n\nconst CodeBuilderAddQuestionButton = ({\n questionLoading,\n handleAddQuestion,\n availableQuestionTypes,\n}) => {\n const [anchorEl, setAnchorEl] = useState(null)\n const open = Boolean(anchorEl)\n\n const handleClick = async (event) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const {\n toggleUpgradeModal,\n authData: {\n user: {\n membership: { shouldShowUpgrades },\n },\n },\n } = useContext(AuthenticationContext)\n\n const { findPermission } = usePermissionHelper()\n const customQuestionPermission = findPermission(CUSTOM_QUESTION_LIMIT)\n\n const _handleAddQuestion = async (questionTypeId) => {\n if (shouldShowUpgrades && !customQuestionPermission.isBelowLimit()) {\n return toggleUpgradeModal(\n true,\n 'Upgrade your plan to add more questions.',\n { permissionType: 'custom_question_limit' }\n )\n }\n\n await handleAddQuestion(questionTypeId)\n handleClose()\n }\n\n return (\n <>\n \n }\n aria-expanded={open ? 'true' : undefined}\n color=\"tertiary\"\n disabled={questionLoading}\n onClick={handleClick}>\n Add a question\n \n \n \n \n Your new question is added after the current question\n \n {availableQuestionTypes?.map((questionType, i) => {\n return (\n
_handleAddQuestion(questionType.id)} key={i}>\n {renderStyledMenuItem(questionType, {})}\n
\n )\n })}\n \n \n )\n}\n\nexport default CodeBuilderAddQuestionButton\n","import { styled } from '@mui/system'\nimport { Typography, Button } from '@mui/material'\n\nimport CodeBuilderToggleQuestionButton from './CodeBuilderToggleQuestionButton'\nimport CodeBuilderDeleteButton from './CodeBuilderDeleteButton'\nimport CodeBuilderQuestionTypePicker from './CodeBuilderQuestionTypePicker'\nimport CodeBuilderLaunchPreviewButton from './CodeBuilderLaunchPreviewButton'\nimport CodeBuilderAddQuestionButton from './CodeBuilderAddQuestionButton'\n\nimport { usePermissionHelper } from '../../../utils/permission_helper'\n\nconst HeaderContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n paddingLeft: theme.spacing(2.5),\n paddingRight: theme.spacing(0.75),\n minHeight: theme.spacing(5.5),\n background: theme.palette.surface.subtle,\n borderTopLeftRadius: theme.shape.borderRadius.xxs,\n borderTopRightRadius: theme.shape.borderRadius.xxs,\n}))\n\nconst QuestionType = styled(Typography)(({ theme }) => ({\n flex: 1,\n color: theme.palette.text.hint,\n fontWeight: theme.fontWeights.semiBold,\n marginRight: theme.spacing(1),\n span: {\n color: theme.palette.text.link,\n },\n svg: {\n path: {\n stroke: theme.palette.neutral.darkest,\n },\n },\n}))\n\nconst QuestionHeaderActionButtonsContainer = styled('div')(({ theme }) => ({\n marginRight: theme.spacing(2),\n display: 'flex',\n gap: theme.spacing(1.5),\n justifyContent: 'flex-end',\n}))\n\nexport const QuestionHeaderActionButton = styled(Button)(({ theme }) => ({\n height: '32px',\n backgroundColor: theme.palette.base.white,\n borderRadius: theme.shape.borderRadius.xs,\n color: theme.palette.neutral.darkest,\n whiteSpace: 'nowrap',\n svg: {\n path: {\n stroke: theme.palette.neutral.darkest,\n },\n },\n [theme.breakpoints.down('lg')]: {\n minWidth: '32px',\n '& .button-text': {\n display: 'none',\n },\n '& .MuiButton-startIcon': { margin: 0 },\n },\n}))\n\nconst CodeBuilderQuestionHeader = ({\n code,\n question,\n canInsertQuestion,\n updateQuestion,\n changeQuestionType,\n handleAddQuestion,\n handleDeleteQuestion,\n questionLoading,\n availableQuestionTypes,\n}) => {\n const { canAccessAction } = usePermissionHelper()\n\n const updateQuestionEnabled = (questionId) => {\n updateQuestion(questionId, { enabled: !question.enabled })\n }\n\n const showQuestionType =\n question.questionType !== 'code' &&\n question.questionType !== 'downloadSlide'\n\n const showPreviewButton = !question.hidePreview && code\n\n const renderHeaderContent = () => {\n return (\n <>\n \n {showQuestionType && 'Question Type: '}\n {question.config?.questionTypeDescription}\n {/* don't render the picker if there are no available question types */}\n {question?.config?.canChangeQuestionType &&\n canAccessAction(question.config.changeQuestionTypeTier) &&\n availableQuestionTypes?.length > 0 && (\n \n )}\n \n <>\n \n {showPreviewButton && (\n \n )}\n {canInsertQuestion && (\n \n )}\n \n {question.config?.canToggleEnable && (\n updateQuestionEnabled(question.id)}\n enabled={question.enabled}\n question={question}\n canToggleVisibility={canAccessAction(\n question.config.toggleEnabledTier\n )}\n toggleEnabledTier={question.config.toggleEnabledTier}\n />\n )}\n {question.config?.canDelete && (\n handleDeleteQuestion(question.id)}\n />\n )}\n \n \n )\n }\n\n return {renderHeaderContent()}\n}\n\nexport default CodeBuilderQuestionHeader\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgHeadphoneIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 22,\n height: 22,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3 18V12C3 9.61305 3.94821 7.32387 5.63604 5.63604C7.32387 3.94821 9.61305 3 12 3C14.3869 3 16.6761 3.94821 18.364 5.63604C20.0518 7.32387 21 9.61305 21 12V18\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 19C21 19.5304 20.7893 20.0391 20.4142 20.4142C20.0391 20.7893 19.5304 21 19 21H18C17.4696 21 16.9609 20.7893 16.5858 20.4142C16.2107 20.0391 16 19.5304 16 19V16C16 15.4696 16.2107 14.9609 16.5858 14.5858C16.9609 14.2107 17.4696 14 18 14H21V19ZM3 19C3 19.5304 3.21071 20.0391 3.58579 20.4142C3.96086 20.7893 4.46957 21 5 21H6C6.53043 21 7.03914 20.7893 7.41421 20.4142C7.78929 20.0391 8 19.5304 8 19V16C8 15.4696 7.78929 14.9609 7.41421 14.5858C7.03914 14.2107 6.53043 14 6 14H3V19Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgHeadphoneIcon);\nexport default __webpack_public_path__ + \"static/media/headphoneIcon.78138698.svg\";\nexport { ForwardRef as ReactComponent };","import { useEffect, useState } from 'react'\n\nimport Api from '../../services/api'\n\nimport { QuestionHeaderActionButton } from '../codes/builder/CodeBuilderQuestionHeader'\n\nimport HelpOutlineIcon from '@mui/icons-material/HelpOutline'\nimport { ReactComponent as CircleArrowRight } from '../../icons/circledArrowRight.svg'\nimport { ReactComponent as HeadphoneIcon } from '../../icons/headphoneIcon.svg'\n\nimport { styled } from '@mui/system'\n\nimport { Typography, CircularProgress } from '@mui/material'\n\nimport moment from 'moment-timezone'\n\nexport const WEBINAR_TYPES = {\n AMA: 'AMA',\n DEMO: 'DEMO',\n}\n\nconst RecordedDemoContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginTop: theme.spacing(3),\n padding: theme.spacing(1.5),\n borderRadius: theme.shape.borderRadius.xs,\n backgroundColor: theme.palette.neutral.extraLight,\n}))\n\nconst WebinarRow = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '10px',\n borderBottom: `1px solid ${theme.palette.neutral.extraLight}`,\n}))\n\nconst ContentWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n padding: theme.spacing(3.5, 6),\n backgroundColor: theme.palette.base.white,\n minWidth: '280px'\n}))\n\nconst Header = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(3),\n}))\n\nconst WebinarTitle = styled(Typography)(({ theme }) => ({\n fontWeight: theme.fontWeights.semiBold,\n [theme.breakpoints.down('sm')]: {\n fontSize: '0.875rem',\n },\n}))\n\nconst WebinarCaption = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.main,\n}))\n\nconst StyledIconWrapper = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(3),\n svg: {\n height: '35px',\n width: '35px',\n },\n}))\n\nconst WebinarList = styled('div')(({ theme }) => ({\n border: `1px solid ${theme.palette.neutral.extraLight}`,\n}))\n\nconst WebinarTitleSection = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(0.5),\n}))\n\nconst WEBINAR_DATA = [\n {\n id: 0,\n webinarType: WEBINAR_TYPES.DEMO,\n title: 'Join us at one of our FREE upcoming live trainings!',\n description: (\n <>\n During this session, we'll walk you through the essential steps and key\n features of Talkadot. We cover everything from basic steps and best\n practices to various tips & tricks to best optimize your ROI. You'll be\n ready to go with confidence by the end of the session!\n
\n
\n No matter your level of familiarity with Talkadot, our goal is to\n empower you with the knowledge and skills to make the most out of your\n speaking engagements.\n
\n
\n \n ),\n icon: ,\n },\n {\n id: 1,\n webinarType: WEBINAR_TYPES.AMA,\n title: \"Join us at one of our FREE upcoming live AMA's!\",\n description: (\n <>\n In these sessions, we're here to provide you with personalized\n assistance on any topic you need help with. Consider this session as a\n fantastic opportunity to receive one-on-one support tailored to your\n specific needs.\n
\n
\n The Talkadot team is committed to ensuring your satisfaction and\n answering any questions you might have. We're here to make your\n experience the best, so please don't hesitate to attend!\n
\n
\n We look forward to helping you out! 😊\n
\n
\n \n ),\n icon: ,\n },\n]\n\nconst UpcomingWebinarRow = ({ webinar }) => {\n // Display the webinar time in current users timezone\n const formatWebinarTime = () => {\n const start = moment.utc(webinar.start_time).tz(webinar.timezone)\n const end = start.clone().add(Number(webinar.duration), 'minutes')\n\n const localStart = start.clone().local()\n const localEnd = end.clone().local()\n\n const date = localStart.format('ddd, MMM Do')\n const time = `${localStart.format('h:mm')} - ${localEnd.format('h:mm A')}`\n\n let tzAbbr = localStart.format('z')\n\n if (!tzAbbr || tzAbbr === 'UTC') {\n tzAbbr = new Intl.DateTimeFormat(undefined, { timeZoneName: 'short' })\n .formatToParts(localStart.toDate())\n .find((part) => part.type === 'timeZoneName')?.value\n }\n\n return { date, time, tzAbbr }\n }\n\n const { date, time, tzAbbr } = formatWebinarTime()\n\n return (\n \n \n \n {date} @ {time} {tzAbbr}\n \n ({webinar.topic})\n \n }\n color=\"tertiary\"\n onClick={() => window.open(webinar.registration_link)}>\n Sign Up\n \n \n )\n}\n\nconst UpcomingWebinars = ({ webinarType }) => {\n const [webinars, setWebinars] = useState([])\n const [isLoading, setIsLoading] = useState(false)\n const webinarData = WEBINAR_DATA.find(\n (webinarDatum) => webinarDatum.webinarType === webinarType\n )\n\n // If we want to show other types of webinars, or a list of all of them\n // we'll need to change this logic. For now, only show Demo's & AMA's\n const invalidWebinarType =\n !webinarType ||\n (webinarType !== WEBINAR_TYPES.AMA && webinarType !== WEBINAR_TYPES.DEMO)\n\n const handleSetWebinars = (webinars) => {\n if (invalidWebinarType) {\n return\n }\n\n return setWebinars(\n webinars.filter((webinar) => webinar.meeting_type === webinarType)\n )\n }\n\n useEffect(() => {\n const fetchUpcomingWebinars = async () => {\n try {\n setIsLoading(true)\n const res = await Api.getUpcomingWebinars()\n\n if (!res.errors) {\n handleSetWebinars(res)\n setIsLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoading(false)\n }\n }\n\n fetchUpcomingWebinars()\n }, [])\n\n const renderLoader = () => (\n
\n \n
\n )\n\n const renderWebinars = () => {\n if (!webinars || webinars.length === 0) {\n return (\n \n There are no upcoming webinars. If you need help with anything, please\n contact support at hello@talkadot.com.\n \n )\n }\n\n return (\n <>\n {webinarData?.description}\n \n {webinars.map((webinar) => (\n \n ))}\n \n \n )\n }\n\n const renderRecordedDemo = () => (\n \n \n None of these times work for you? Watch our recorded demo instead:\n \n }\n color=\"tertiary\"\n onClick={() => window.open('https://vimeo.com/1046486721', '_blank')}>\n Watch now\n \n \n )\n\n return (\n \n {webinarData?.icon}\n
\n {webinarData?.title}\n
\n {isLoading ? renderLoader() : renderWebinars()}\n {webinarType === WEBINAR_TYPES.DEMO && renderRecordedDemo()}\n
\n )\n}\n\nexport default UpcomingWebinars\n","import { styled } from '@mui/system'\n\nimport CloseIcon from '@mui/icons-material/Close'\n\n// Note:\n// Use this component as a close icon for MUI Dialogs\nconst StyledCloseIcon = styled(CloseIcon)(({ theme }) => ({\n position: 'absolute',\n top: theme.spacing(2),\n right: theme.spacing(2),\n cursor: 'pointer',\n color: theme.palette.neutral.main,\n '&:hover': {\n color: theme.palette.neutral.dark,\n },\n zIndex: 999,\n}))\n\nconst ModalCloseIcon = ({ onClick }) => {\n return \n}\n\nexport default ModalCloseIcon","import { useState, useContext } from 'react'\nimport { styled } from '@mui/system'\n\nimport {\n Typography,\n Button,\n Dialog,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\n\nimport UpcomingWebinars, { WEBINAR_TYPES } from './UpcomingWebinars'\nimport ModalCloseIcon from '../common/ModalCloseIcon'\nimport { ReactComponent as HeadphoneIcon } from '../../icons/headphoneIcon.svg'\nimport { ReactComponent as CircleArrowRight } from '../../icons/circledArrowRight.svg'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nconst AlertContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n maxWidth: '850px',\n padding: '16px 24px',\n justifyContent: 'space-between',\n alignItems: 'center',\n borderRadius: theme.shape.borderRadius.sm,\n backgroundColor: theme.palette.tertiary.main,\n marginBottom: theme.spacing(2),\n}))\n\nconst AlertTitle = styled(Typography)(({ theme }) => ({\n color: theme.palette.base.white,\n display: 'flex',\n alignItems: 'center',\n}))\n\nconst AlertActionButton = styled(Button)(({ theme }) => ({\n height: '32px',\n backgroundColor: theme.palette.base.white,\n borderRadius: theme.shape.borderRadius.xs,\n color: theme.palette.neutral.darkest,\n whiteSpace: 'nowrap',\n '& .MuiButton-startIcon': {\n display: 'none',\n margin: 0,\n svg: {\n path: {\n stroke: theme.palette.neutral.darkest,\n },\n },\n },\n [theme.breakpoints.down('md')]: {\n minWidth: '32px',\n '& .button-text': {\n display: 'none',\n },\n '& .MuiButton-startIcon': {\n display: 'inherit',\n },\n },\n}))\n\nconst StyledHeadphoneIcon = styled(HeadphoneIcon)(({ theme }) => ({\n marginRight: '8px',\n stroke: theme.palette.base.white,\n path: {\n stroke: theme.palette.base.white,\n },\n}))\n\nconst AlertContent = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n}))\n\nconst AlertDescription = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.semiLight,\n}))\n\nconst WebinarAlert = () => {\n const [open, setOpen] = useState(false)\n const { authData } = useContext(AuthenticationContext)\n const { showWebinarAlert } = authData\n const isMobile = useMediaQuery(useTheme().breakpoints.down('sm'))\n\n const renderWebinarAlert = () => (\n \n \n \n \n Join an upcoming demo\n \n \n Speakers who join a live demo book more talks. Grab your free spot.\n \n \n }\n onClick={() => setOpen(true)}>\n Schedule Now\n \n setOpen(false)}\n open={open}>\n setOpen(false)} />\n \n \n \n )\n\n return showWebinarAlert && renderWebinarAlert()\n}\n\nexport default WebinarAlert\n","import { useContext, useEffect, useState } from 'react'\n\nimport { AuthenticationContext } from '../../authentication/authenticationContext'\nimport Api from '../../../services/api'\n\nimport DashboardSubheader from './DashboardSubheader'\nimport NotificationParent from './NotificationParent'\nimport ReferralParent from '../../referrals/ReferralParent'\nimport TrialProgressParent from './TrialProgressParent'\nimport VideoParent from './VideoParent'\nimport PageContainer from '../../common/PageContainer'\nimport PageHeader from '../../common/PageHeader'\nimport WebinarAlert from '../../helpCenter/WebinarAlert'\n\nconst DashboardParent = () => {\n const [isNewUser, setIsNewUser] = useState(false)\n const [notifications, setNotifications] = useState([])\n const [trialProgressData, setTrialProgressData] = useState(null)\n const [loading, setLoading] = useState(true)\n\n const { authData, setNotification } = useContext(AuthenticationContext)\n const {\n user: {\n first_name,\n isAssociate,\n membership: { shouldShowUpgrades },\n },\n } = authData\n\n useEffect(() => {\n const fetchNotifications = async () => {\n try {\n const res = await Api.fetchNotifications()\n if (!res.errors) {\n setLoading(false)\n setNotifications(res.notifications)\n setTrialProgressData(res.trialProgressData)\n setIsNewUser(res.isNewUser)\n } else {\n throw res.errors\n }\n } catch (error) {\n setNotification(error, 'error')\n }\n }\n\n fetchNotifications()\n }, [])\n\n const renderHeaderText = () => {\n if (isAssociate) {\n return `👋 Welcome to ${first_name}'s Account!`\n } else {\n return `👋 Welcome back ${first_name}!`\n }\n }\n\n const renderTrialProgress = () => {\n if (trialProgressData) {\n return \n }\n }\n\n if (loading) {\n return <>\n }\n\n return (\n \n \n \n \n {notifications && }\n {renderTrialProgress()}\n \n \n \n )\n}\n\nexport default DashboardParent\n","export const SET_PROFILE = 'SET_PROFILE'\nexport const SET_CURRENT_STEP = 'SET_CURRENT_STEP'\nexport const SET_INDUSTRIES = 'SET_INDUSTRIES'\nexport const SET_GOALS = 'SET_GOALS'\nexport const SET_SHORTLINK = 'SET_SHORTLINK'\nexport const TOGGLE_ACTIVE_INDUSTRY = 'TOGGLE_ACTIVE_INDUSTRY'\nexport const TOGGLE_IS_LOADING = 'TOGGLE_IS_LOADING'\nexport const SET_FORM_ERROR = 'SET_FORM_ERROR'\nexport const RESET_ONBOARDING_DATA = 'RESET_ONBOARDING_DATA'\nexport const SET_SELECTED_REFERRER_OPTION = 'SET_SELECTED_REFERRER_OPTION'\nexport const SET_ADDITIONAL_REFERRER_CONTEXT = 'SET_ADDITIONAL_REFERRER_CONTEXT'\nexport const SET_REFERRER_DATA_ATTRIBUTE = 'SET_REFERRER_DATA_ATTRIBUTE'\n","import * as ActionTypes from './actionTypes'\n\nconst INDUSTRIES = [\n 'Motiviational',\n 'Business',\n 'Sales',\n 'Startups',\n 'Medicine',\n 'Law',\n 'Technology',\n 'Energy',\n]\nexport const initialOnboardingState = {\n profile: {\n firstName: null,\n lastName: null,\n avatar: null,\n },\n socialLinks: {\n instagram: null,\n twitter: null,\n youtube: null,\n linkedin: null,\n },\n formError: null,\n shortlink: null,\n currentStep: 1,\n isLoading: false,\n businessGoals: ['1-4', '5-10', '11-15', '15+'],\n industries: INDUSTRIES.map((industry, i) => ({\n name: industry,\n isActive: false,\n })),\n referrerData: {\n selectedReferrerOption: null,\n selectedReferrerOrganization: null,\n selectedReferrerChapter: null,\n additionalReferrerContext: null,\n },\n}\n\nexport const onboardingReducer = (state, action) => {\n switch (action.type) {\n case ActionTypes.SET_PROFILE:\n return {\n ...state,\n profile: {\n ...state.profile,\n [action.payload.profileAttribute]: action.payload.value,\n },\n }\n case ActionTypes.SET_CURRENT_STEP: {\n return {\n ...state,\n currentStep: action.payload,\n }\n }\n case ActionTypes.SET_SHORTLINK: {\n return {\n ...state,\n shortlink: action.payload,\n }\n }\n case ActionTypes.TOGGLE_ACTIVE_INDUSTRY: {\n return {\n ...state,\n industries: state.industries.map((industry, i) =>\n industry.name === action.payload\n ? { ...industry, isActive: !industry.isActive }\n : { ...industry }\n ),\n }\n }\n case ActionTypes.TOGGLE_IS_LOADING: {\n return {\n ...state,\n isLoading: action.payload,\n }\n }\n case ActionTypes.SET_FORM_ERROR: {\n return {\n ...state,\n formError: action.payload,\n }\n }\n case ActionTypes.SET_REFERRER_DATA_ATTRIBUTE: {\n return {\n ...state,\n referrerData: {\n ...state.referrerData,\n [action.payload.attrType]: action.payload.attrValue,\n },\n }\n }\n case ActionTypes.RESET_ONBOARDING_DATA: {\n return {\n ...initialOnboardingState,\n }\n }\n default:\n return { ...state }\n }\n}\n","import { Typography, Divider } from '@mui/material'\nimport { styled } from '@mui/system'\nimport React from 'react'\n\nconst WelcomeContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n height: '100%',\n justifyContent: 'space-between',\n backgroundColor: 'white',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n alignItems: 'center',\n },\n}))\n\nconst HeaderSection = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n margin: theme.spacing(2),\n [theme.breakpoints.down('sm')]: {\n margin: theme.spacing(1),\n },\n}))\n\nconst StepSection = styled('ol')(({ theme }) => ({\n margin: theme.spacing(2),\n}))\n\nconst Step = ({ step }) => {\n return (\n ({\n [theme.breakpoints.down('sm')]: {\n fontSize: '18px',\n },\n })}>\n ({\n my: 2,\n [theme.breakpoints.down('sm')]: {\n fontSize: '18px',\n my: 1,\n },\n })}>\n {step.title}\n \n ({\n my: 2,\n [theme.breakpoints.down('sm')]: {\n fontSize: '14px',\n my: 1,\n },\n })}>\n {step.content}\n \n \n )\n}\n\nconst WelcomeScreen = () => {\n const steps = [\n {\n title: 'Tell us about yourself',\n content:\n 'Share a bit about your speaking so we can generate your feedback code.',\n },\n {\n title: 'Get your code',\n content:\n 'You’ll get a resuable QR code for feedback, leads, and to give your audience an optional bonus.',\n },\n {\n title: 'Insert your slide',\n content: 'Drop the slide into your deck. You’re ready to go.',\n },\n ]\n\n return (\n \n \n ({\n p: 1,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center',\n fontSize: '26px',\n },\n })}>\n It's easy to get started with Talkadot.\n \n \n \n {steps.map((step, index) => (\n \n \n {index < steps.length - 1 && }\n \n ))}\n \n \n )\n}\n\nexport default WelcomeScreen\n","/**\n * Validates the format of a given shortlink string.\n *\n * @param {string} string - The shortlink string to be validated.\n * @returns {Object} - An object with properties:\n * - `valid`: A boolean indicating whether the string is valid.\n * - `message`: A string providing an error message if invalid, or null if valid.\n */\nexport const validateShortlinkFormat = (string) => {\n const shortlinkRegex = /^[a-z0-9-]+$/i\n\n if (!string || string.length < 2) {\n return {\n valid: false,\n message: 'shortlinks must be at least 2 characters in length',\n }\n }\n\n if (string?.length > 19) {\n return { valid: false, message: 'shortlinks must be 19 characters or less' }\n }\n\n if (!shortlinkRegex.test(string)) {\n return {\n valid: false,\n message:\n 'shortlink can only be letters and numbers with no special characters',\n }\n }\n\n return { valid: true, message: null }\n}\n\nexport const validateEmailFormat = (email) => {\n // test cases @, @@, @@@\n if (email === '') {\n return { valid: false, message: 'Please enter a Value' }\n }\n\n if (!/^([^@]*@[^@]*)$/.test(email)) {\n return { valid: false, message: 'An email address must contain a single @' }\n }\n\n const [username, domain] = email.split('@')\n\n if (username.length < 1) {\n return {\n valid: false,\n message:\n 'The username portion of the email address is missing (the portion before the @:)',\n }\n }\n\n const username_regex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+$/\n\n if (!username_regex.test(username)) {\n return {\n valid: false,\n message:\n 'The username portion of the email address contains an invalid character (the portion before the @:)',\n }\n }\n\n if (domain.length < 1) {\n return {\n valid: false,\n message:\n 'The domain portion of the email address is missing (the portion after the @:)',\n }\n }\n\n const domainRegex =\n /^[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/\n\n if (!domainRegex.test(domain)) {\n return {\n valid: false,\n message:\n 'The domain portion of the email address is invalid (the portion after the @)',\n }\n }\n\n return { valid: true, message: null }\n}\n\nexport const validateNameFormat = (name) => {\n if (name.length > 25) {\n return { valid: false, message: 'Name must be less than 25 characters' }\n }\n\n return { valid: true, message: null }\n}\n\nexport const validateUrlFormat = (url) => {\n try {\n new URL(url)\n return { valid: true, message: null }\n } catch (error) {\n return { valid: false, message: 'Invalid URL' }\n }\n}\n","import { useContext, useEffect } from 'react'\nimport TextField from '@mui/material/TextField'\nimport { styled } from '@mui/system'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { OnboardingContext } from '../onboarding/onboardingContext'\nimport { validateEmailFormat, validateNameFormat } from '../../utils/validators'\n\nconst StyledForm = styled('form')({\n width: '100%',\n margin: '0 auto',\n})\n\nconst UserAttributeForm = ({\n formValue,\n formLabel,\n profileAttribute,\n helperText,\n inputStyle,\n}) => {\n const { setProfileAttribute } = useContext(AuthenticationContext)\n const { toggleFormError, onboardingState } = useContext(OnboardingContext)\n const { formError } = onboardingState\n\n useEffect(() => {\n toggleFormError(null)\n }, [])\n\n const handleChange = (e) => {\n // if profile attribute is first name or last name, do not allow more than 25 characters\n if (profileAttribute === 'first_name' || profileAttribute === 'last_name') {\n const { valid, message } = validateNameFormat(e.target.value)\n\n if (!valid) {\n toggleFormError(message)\n\n // if the target value length is less than the current form value length, set the profile attribute\n // this allows the user to continue typing if they are deleting characters and the length is greater than 25\n if (e.target.value.length < formValue.length) {\n setProfileAttribute(profileAttribute, e.target.value)\n }\n\n // do not set profile attribute because string is too long\n return\n }\n }\n\n // if profile attribute is email, validate email format\n if (profileAttribute === 'email') {\n const { valid, message } = validateEmailFormat(e.target.value)\n\n if (!valid) {\n toggleFormError(message)\n // set profile attribute because user should be able to continue typing\n setProfileAttribute(profileAttribute, e.target.value)\n return\n }\n }\n\n toggleFormError(null)\n setProfileAttribute(profileAttribute, e.target.value)\n }\n\n return (\n \n input && input.focus()}\n onChange={(e) => handleChange(e)}\n autoComplete=\"off\"\n inputProps={{\n style: inputStyle,\n }}\n />\n \n )\n}\n\nexport default UserAttributeForm\n","import React, { useState, useEffect } from 'react'\nimport UserAttributeForm from '../../common/UserAttributeForm'\nimport { Typography, CircularProgress } from '@mui/material'\nimport Api from '../../../services/api'\nimport CheckIcon from '@mui/icons-material/Check'\nimport CancelIcon from '@mui/icons-material/Cancel'\n\nimport { styled } from '@mui/system'\n\nfunction useDebounce(value, delay) {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState(value)\n\n useEffect(\n () => {\n // Update debounced value after delay\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n // Cancel the timeout if value changes (also on delay change or unmount)\n // This is how we prevent debounced value from updating if value is changed ...\n // .. within the delay period. Timeout gets cleared and restarted.\n return () => {\n clearTimeout(handler)\n }\n },\n [value, delay] // Only re-call effect if value or delay changes\n )\n return debouncedValue\n}\n\nconst LengthErrorContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n})\n\nconst TinyText = styled(Typography)({\n fontSize: '12px',\n})\n\nconst ShortLinkWrapper = styled('div')({\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n})\n\nconst AvailabilityWrapper = styled('div')(({ theme }) => ({\n position: 'absolute',\n right: 0,\n top: theme.spacing(4),\n display: 'flex',\n width: '120px',\n svg: {\n marginRight: theme.spacing(1),\n },\n}))\n\nconst AvailableSpan = styled('span')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n color: theme.palette.success.main,\n}))\nconst UnAvailableSpan = styled('span')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n color: theme.palette.error.main,\n}))\n\nconst ShortlinkPicker = ({ formValue, formLabel, profileAttribute }) => {\n const [isChecking, setIsChecking] = useState(false)\n const [isAvailable, setIsAvailable] = useState(false)\n\n const debouncedShortlink = useDebounce(formValue, 300)\n\n useEffect(() => {\n const checkShortlink = async () => {\n if (debouncedShortlink) {\n setIsChecking(true)\n\n if (formValue?.length > 19) {\n setIsChecking(false)\n return\n }\n\n const params = {\n shortlink_availability: {\n shortlink: formValue,\n },\n }\n\n try {\n const res = await Api.checkShortlinkAvailability(params)\n\n if (!res.errors) {\n setIsAvailable(res.available)\n setIsChecking(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsChecking(false)\n }\n }\n }\n\n checkShortlink()\n }, [debouncedShortlink]) // Only call effect if debounced search term changes\n\n const renderAvailability = () => {\n if (!formValue) return\n\n return (\n \n {isAvailable && formValue?.length <= 19 ? (\n \n \n available!\n \n ) : formValue?.length > 19 ? (\n \n \n \n Too long\n (19 chars or less)\n \n \n ) : (\n \n unavailable\n \n )}\n \n )\n }\n\n const userFormInputStyle = {\n fontSize: '32px',\n fontWeight: 300,\n marginRight: '14px',\n paddingRight: '120px',\n }\n\n return (\n
\n \n \n \n {isChecking ? : renderAvailability()}\n \n \n theme.palette.primary.main }}>\n talk.ac/{formValue}\n \n
\n )\n}\n\nexport default ShortlinkPicker\n","const size = {\n mobile: '425px',\n tablet: '768px',\n laptop: '1024px',\n}\n\nexport const device = {\n mobile: `(max-width: ${size.tablet})`,\n tablet: `(min-width: ${size.tablet}) and (max-width: ${size.laptop})`,\n laptop: `(min-width: ${size.laptop})`,\n}\n","import { styled } from '@mui/system'\nimport { useTheme } from '@mui/material/styles'\nimport { motion } from 'framer-motion/dist/framer-motion'\n\nimport { device } from '../../../responsive'\n\nconst FieldOption = styled(motion.div)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n boxShadow: `${theme.palette.border.main} 0px 0px 0px 1px`,\n marginTop: '10px',\n fontSize: '1.5rem',\n cursor: 'pointer',\n transition: '200ms all',\n [`@media ${device.mobile}`]: {\n fontSize: '1rem',\n minWidth: '100px',\n },\n minWidth: '450px',\n borderRadius: '8px',\n padding: '16px',\n}))\n\nexport const MultipleChoiceOption = ({ option, onClick, selected }) => {\n const theme = useTheme()\n return (\n \n
{option.text}
\n \n )\n}\n","import { useEffect, useState, useCallback, useMemo } from 'react'\nimport { styled } from '@mui/system'\n\nimport { convertStringToArray } from '../../../utils/array'\nimport { MultipleChoiceOption } from './MultipleChoiceOption'\n\nconst MultipleChoiceContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n}))\n\nconst MultipleChoiceQuestion = ({\n profileAttribute,\n question,\n user,\n submitAction,\n}) => {\n const { type, options, multipleSelection, allOfAboveOptionAvailable } =\n question\n const selections = user?.[profileAttribute]?.[type]\n\n const multipleChoiceSelection = useMemo(\n () => (selections ? convertStringToArray(selections) : []),\n [selections]\n )\n\n const [selected, setSelected] = useState(multipleChoiceSelection)\n const [allSelected, setAllSelected] = useState(\n options.length === multipleChoiceSelection.length\n )\n\n useEffect(() => {\n setSelected(multipleChoiceSelection)\n if (multipleChoiceSelection.length === options.length) {\n setAllSelected(true)\n }\n }, [multipleChoiceSelection, options.length])\n\n const handleSelection = useCallback(\n (optionValue) => {\n if (allSelected && multipleSelection) {\n submitAction?.({\n questionType: type,\n optionValues: [optionValue.text],\n })\n setAllSelected(false)\n return\n }\n\n if (multipleSelection) {\n let newSelected\n if (selected.includes(optionValue.text)) {\n newSelected = selected.filter((v) => v !== optionValue.text)\n setSelected(newSelected)\n } else {\n newSelected = [...selected, optionValue.text]\n setSelected(newSelected)\n }\n\n submitAction?.({\n questionType: type,\n optionValues: newSelected,\n })\n return\n }\n setSelected([optionValue.text])\n submitAction?.({ questionType: type, optionValue })\n },\n [multipleSelection, selected, submitAction, type, allSelected]\n )\n\n const handleAllAbove = useCallback(() => {\n if (!allSelected) {\n const optionValues = options.map((q) => q.text)\n submitAction?.({ questionType: type, optionValues })\n } else {\n submitAction?.({\n questionType: type,\n optionValues: [],\n })\n }\n setAllSelected((allSelected) => !allSelected)\n }, [allSelected, submitAction, options, type])\n\n const renderOptions = () =>\n options.map((option) => {\n const optionValue = { text: option.text }\n return (\n handleSelection(optionValue)}\n />\n )\n })\n\n const renderAllOfTheAbove = useCallback(() => {\n const option = { text: 'All of the above' }\n return (\n \n )\n }, [allSelected, handleAllAbove])\n\n return (\n \n {renderOptions()}\n {allOfAboveOptionAvailable && renderAllOfTheAbove()}\n \n )\n}\n\nexport default MultipleChoiceQuestion\n","export const convertStringToArray = (object) => {\n return typeof object === 'string' ? Array(object) : object\n}\n","import React from 'react'\nimport { TextField } from '@mui/material'\nimport { styled } from '@mui/system'\nimport { MultipleChoiceOption } from '../common/MultipleChoiceOption'\n\nconst OtherOptionTextfield = styled(TextField)({\n input: {\n fontSize: '20px',\n fontWeight: '300',\n paddingLeft: '16px',\n },\n marginTop: '8px',\n})\n\nconst MultipleChoiceContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n})\n\nconst ReferralQuestionParent = ({\n setSelectedReferrerOption,\n selectedReferrerOption,\n referrerOptions,\n setAdditionalReferrerContext,\n additionalReferrerContext,\n}) => {\n return (\n \n {referrerOptions?.map((referrerOption) => {\n const isSelected = selectedReferrerOption === referrerOption.text\n return (\n \n setSelectedReferrerOption(referrerOption.text)}\n selected={isSelected}\n />\n\n {referrerOption.additionalContextRequired && isSelected && (\n {\n setSelectedReferrerOption(referrerOption.text)\n setAdditionalReferrerContext(e.target.value)\n }}\n />\n )}\n \n )\n })}\n \n )\n}\n\nexport default ReferralQuestionParent\n","const NsaChapterList = [\n 'BlackNSA - BNSA',\n 'Florida Speakers Assc - NSAFSA',\n 'NSA Arizona - NSAAZ',\n 'NSA Austin - NSAAUS',\n 'NSA Carolinas - NSACAS',\n 'NSA Central Florida - NSACF',\n 'NSA Colorado - NSACO',\n 'NSA Connecticut - NSACT',\n 'NSA DC - NSADC',\n 'NSA Georgia - NSAGA',\n 'NSA Houston - NSAHOU',\n 'NSA Illinois - NSAIL',\n 'NSA Kansas City - NSAKC',\n 'NSA Kentucky - NSAKY',\n 'NSA Las Vegas - NSANV',\n 'NSA Los Angeles - NSALA',\n 'NSA Michigan - NSAMI',\n 'NSA Minnesota - NSAMN',\n 'NSA Mountain West - NSAMW',\n 'NSA New England - NSANE',\n 'NSA New Mexico - NSANM',\n 'NSA New Orleans - NSANOLA',\n 'NSA New York - NSANY',\n 'NSA North Texas - NSANT',\n 'NSA Northern California - NSANC',\n 'NSA Northwest - NSANW',\n 'NSA Ohio - NSAOH',\n 'NSA Oregon - NSAOR',\n 'NSA Philadelphia - NSAPHL',\n 'NSA Pittsburgh - NSAPITT',\n 'NSA St. Louis - NSAMO',\n 'NSA Virginia - NSAVA',\n 'NSA Wisconsin - NSAWIS',\n]\n\nexport const OrganizationsList = [\n {\n label: 'Innovation Women',\n },\n {\n label: 'National Speakers Association',\n chapterList: NsaChapterList,\n },\n {\n label: 'Next Level Speakers Academy',\n },\n {\n label: 'Maxwell Leadership',\n },\n {\n label: 'Toastmasters',\n },\n {\n label: 'Black Speakers Network',\n },\n {\n label: 'Speakerflow',\n },\n {\n label: 'APCA',\n },\n {\n label: 'CAPS',\n },\n {\n label: 'Greek University',\n },\n {\n label: 'Impact Eleven',\n },\n {\n label: 'NAMCA',\n },\n {\n label: 'Other - Not Listed Here',\n },\n]\n\nexport const FullOrganizationsList = OrganizationsList.map(\n (listItem) => listItem.label\n).concat(NsaChapterList)\n","import { useState, useEffect } from 'react'\nimport { Typography, TextField, Autocomplete } from '@mui/material'\nimport { styled } from '@mui/system'\n\nimport { OrganizationsList } from '../helpers/referralsHelper'\n\nconst OrganizationListHeader = styled(Typography)({\n fontSize: '1.25rem',\n marginTop: '25px',\n marginBottom: '15px',\n})\n\nconst StyledTextField = styled(TextField)({\n '& .MuiOutlinedInput-root': {\n borderRadius: '8px',\n },\n})\n\nconst ReferralOrganizationPicker = ({\n setProfileAttribute,\n existingReferrerChapter,\n existingReferrerOrganization,\n setReferrerChapter,\n setReferrerOrganization,\n}) => {\n const [chapterList, setChapterList] = useState(null)\n\n useEffect(() => {\n if (existingReferrerOrganization?.chapterList) {\n setChapterList(\n formatChapterList(existingReferrerOrganization?.chapterList)\n )\n }\n }, [])\n\n const formatChapterList = (chapterList) => {\n return chapterList.map((chapterName) => {\n return { label: chapterName }\n })\n }\n\n const handleReferrerChange = (selectedOrganization) => {\n if (!selectedOrganization) {\n return setReferrerOrganization('')\n }\n\n setReferrerOrganization(selectedOrganization)\n setProfileAttribute('referrer', selectedOrganization.label)\n\n if (selectedOrganization?.chapterList) {\n return setChapterList(formatChapterList(selectedOrganization.chapterList))\n }\n\n return setChapterList(null)\n }\n\n const handleChapterSelect = (selectedChapter) => {\n // If I don't select a chapter, set the referrer to be the parent organization\n if (!selectedChapter) {\n setProfileAttribute('referrer', existingReferrerOrganization.label)\n return setReferrerChapter('')\n }\n\n setReferrerChapter(selectedChapter)\n return setProfileAttribute('referrer', selectedChapter.label)\n }\n\n return (\n
\n \n Which primary organization did you hear from?\n \n handleReferrerChange(value)}\n renderInput={(params) => (\n \n )}\n />\n {chapterList?.length > 0 && (\n <>\n \n Which chapter?\n \n handleChapterSelect(value)}\n renderInput={(params) => (\n \n )}\n />\n \n )}\n
\n )\n}\n\nexport default ReferralOrganizationPicker\n","import Compressor from 'compressorjs'\n\n/**\n * This function was adapted from the one in the ReadMe of https://github.com/DominicTobias/react-image-crop\n * @param {File} imageSrc - Image File url\n * @param {Object} pixelCrop - pixelCrop Object provided by react-easy-crop\n * @param {number} rotation - optional rotation parameter\n */\n\nconst createImage = (url) =>\n new Promise((resolve, reject) => {\n const image = new Image()\n image.addEventListener('load', () => resolve(image))\n image.addEventListener('error', (error) => reject(error))\n image.setAttribute('crossOrigin', 'anonymous') // needed to avoid cross-origin issues on CodeSandbox\n image.src = url\n })\n\nfunction getRadianAngle(degreeValue) {\n return (degreeValue * Math.PI) / 180\n}\n\nexport default async function getCroppedImg(imageSrc, pixelCrop, rotation = 0) {\n const image = await createImage(imageSrc)\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n\n const maxSize = Math.max(image.width, image.height)\n // NOTE: original safeArea code used Math.sqrt(2) * maxSize\n // const safeArea = 2 * ((maxSize / 2) * Math.sqrt(2))\n const safeArea = 2 * ((maxSize / 2) * 2)\n\n // set each dimensions to double largest dimension to allow for a safe area for the\n // image to rotate in without being clipped by canvas context\n canvas.width = safeArea\n canvas.height = safeArea\n\n // set background color for images zoomed out beyond the image dimensions\n ctx.fillStyle = 'white'\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n // translate canvas context to a central location on image to allow rotating around the center.\n ctx.translate(safeArea / 2, safeArea / 2)\n ctx.rotate(getRadianAngle(rotation))\n ctx.translate(-safeArea / 2, -safeArea / 2)\n\n // draw rotated image and store data.\n ctx.drawImage(\n image,\n safeArea / 2 - image.width * 0.5,\n safeArea / 2 - image.height * 0.5\n )\n\n const data = ctx.getImageData(0, 0, safeArea, safeArea)\n\n // set canvas width to final desired crop size - this will clear existing context\n canvas.width = pixelCrop.width\n canvas.height = pixelCrop.height\n\n // paste generated rotate image with correct offsets for x,y crop values.\n ctx.putImageData(\n data,\n 0 - safeArea / 2 + image.width * 0.5 - pixelCrop.x,\n 0 - safeArea / 2 + image.height * 0.5 - pixelCrop.y\n )\n\n // As Base64 string\n // return canvas.toDataURL(\"image/jpeg\");\n return canvas\n}\n\nexport const getNormalizedFile = (\n file,\n { maxWidth = 1000, maxHeight = 1000 } = {}\n) => {\n return new Promise((resolve, reject) => {\n new Compressor(file, {\n maxWidth,\n maxHeight,\n success(normalizedFile) {\n resolve(normalizedFile)\n },\n error(error) {\n reject(error)\n },\n })\n })\n}\n\nexport const generateCroppedImage = async (imageSrc, crop) => {\n if (!crop || !imageSrc) {\n return\n }\n const canvas = await getCroppedImg(imageSrc, crop)\n\n return canvas.toDataURL('image/jpeg')\n}\n","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgEditIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_206_2650)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.333 2.00004C11.5081 1.82494 11.716 1.68605 11.9447 1.59129C12.1735 1.49653 12.4187 1.44775 12.6663 1.44775C12.914 1.44775 13.1592 1.49653 13.3879 1.59129C13.6167 1.68605 13.8246 1.82494 13.9997 2.00004C14.1748 2.17513 14.3137 2.383 14.4084 2.61178C14.5032 2.84055 14.552 3.08575 14.552 3.33337C14.552 3.58099 14.5032 3.82619 14.4084 4.05497C14.3137 4.28374 14.1748 4.49161 13.9997 4.66671L4.99967 13.6667L1.33301 14.6667L2.33301 11L11.333 2.00004Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_206_2650\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEditIcon16X16);\nexport default __webpack_public_path__ + \"static/media/editIcon_16x16.1c9859b8.svg\";\nexport { ForwardRef as ReactComponent };","export const dataUrlToFileUsingFetch = async (url, fileName, mimeType) => {\n const response = await fetch(url)\n const buffer = await response.arrayBuffer()\n\n return new File([buffer], fileName, { type: mimeType })\n}\n","export default __webpack_public_path__ + \"static/media/emptyAvatar.c84819f5.svg\";","export default __webpack_public_path__ + \"static/media/emptyGroupAvatar.1806a457.svg\";","import { useState, useContext, useRef, useCallback } from 'react'\nimport {\n Avatar,\n IconButton,\n CircularProgress,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n} from '@mui/material'\nimport { Slider, Button } from '@material-ui/core'\nimport { keyframes, styled } from '@mui/material/styles'\nimport CloseIcon from '@mui/icons-material/Close'\nimport Cropper from 'react-easy-crop'\n\nimport Api from '../../services/api'\nimport { generateCroppedImage, getNormalizedFile } from '../../utils/cropImage'\nimport { dataUrlToFileUsingFetch } from '../../utils/dataUrlToFile'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { OnboardingContext } from '../onboarding/onboardingContext'\nimport EmptyAvatar from '../../icons/emptyAvatar.svg'\nimport EmptyGroupAvatar from '../../icons/emptyGroupAvatar.svg'\n\nconst pulsate = keyframes({\n '0%': {\n boxShadow: 'rgb(255, 153, 0) 0px 0px 1px 1px',\n },\n '50%': {\n boxShadow: 'rgb(255, 153, 0.75) 0px 0px 6px 6px',\n },\n '100%': {\n boxShadow: 'rgb(255, 153, 0) 0px 0px 0px 0px',\n },\n})\n\nconst CropperDialogContent = styled(DialogContent)({\n position: 'relative',\n})\n\nconst CloseModalButton = styled(IconButton)({\n position: 'absolute',\n right: 8,\n top: 8,\n color: (theme) => theme.palette.grey[500],\n})\n\nconst CropperSliderContainer = styled('div')({\n height: '450px',\n})\n\nconst CropperContainer = styled('div')({\n height: '90%',\n position: 'relative',\n})\n\nconst SliderContainer = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n marginTop: '24px',\n})\n\nconst SliderWrapper = styled('div')({\n width: '50%',\n})\n\nconst AvatarIconButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'inSpeakerSlide',\n})(({ inSpeakerSlide }) => ({\n padding: inSpeakerSlide ? '0px' : '8px',\n marginRight: inSpeakerSlide ? '20px' : '0px',\n animation: inSpeakerSlide\n ? `${pulsate} 1s ease-in-out 0s infinite normal none running`\n : 'none',\n}))\n\nconst ProfileAvatar = styled(Avatar, {\n shouldForwardProp: (prop) => prop !== 'isLoading' && prop !== 'size',\n})(({ isLoading, size }) => ({\n width: size ? `${size}px` : '200px',\n height: size ? `${size}px` : '200px',\n opacity: `${isLoading ? 0.3 : 1}`,\n // Note: the image width and height here is a solution to\n // prevent a small black border to show up on the left and top\n // of the image in certain occassions.\n img: {\n width: '102%',\n height: '102%',\n },\n}))\n\nconst EditAvatar = ({\n currentAvatar,\n submitOverrideFunction = null,\n size,\n inSpeakerSlide,\n callback,\n isGroupAvatar,\n}) => {\n const [avatarFile, setAvatarFile] = useState(null)\n const [isLoading, setIsLoading] = useState(false)\n const [image, setImage] = useState(null)\n const [croppedArea, setCroppedArea] = useState(null)\n const [crop, setCrop] = useState({ x: 0, y: 0 })\n const [zoom, setZoom] = useState(1)\n const [cropperOpen, setCropperOpen] = useState(false)\n\n const { setNotification } = useContext(AuthenticationContext)\n const { submitAvatar } = useContext(OnboardingContext)\n\n const inputRef = useRef()\n\n const onCropComplete = (croppedAreaPercentage, croppedAreaPixels) => {\n setCroppedArea(croppedAreaPixels)\n }\n\n const onSave = async () => {\n const croppedImage = await generateCroppedImage(image, croppedArea)\n const file = await dataUrlToFileUsingFetch(\n croppedImage,\n 'profile_pic.jpeg',\n 'image/jpeg'\n )\n\n setAvatarFile(croppedImage)\n\n await editAvatar(file)\n\n setCropperOpen(false)\n setImage(null)\n\n if (inputRef?.current) {\n inputRef.current.value = ''\n }\n\n // if we are in the speaker slide, we need to advance the survey offers onboarding last step\n if (callback) {\n callback()\n }\n }\n\n const handleChange = async (e) => {\n if (e.target.files && e.target.files.length > 0) {\n const file = e.target.files[0]\n const imageDataUrl = await readFile(file)\n setImage(imageDataUrl)\n setCropperOpen(true)\n }\n }\n\n const clearValue = () => {\n inputRef.current.value = ''\n }\n\n const handleClose = () => {\n setCropperOpen(false)\n }\n\n const readFile = useCallback((file) => {\n return new Promise((resolve, reject) => {\n try {\n const reader = new FileReader()\n reader.onload = () => {\n resolve(reader.result)\n }\n getNormalizedFile(file)\n .then((normalizedFile) => reader.readAsDataURL(normalizedFile))\n .catch((error) => reject(error))\n } catch (error) {\n reject(error)\n }\n })\n }, [])\n\n const sendFileToAmazon = async (presignedUrl, uploadableFile) => {\n const res = await fetch(presignedUrl, {\n method: 'PUT',\n body: uploadableFile,\n headers: {\n 'Content-Type': uploadableFile.type,\n },\n })\n\n if (!res.ok) {\n throw 'Sorry, something went wrong uploading your file'\n }\n\n return\n }\n\n const editAvatar = async (uploadableFile) => {\n if (!uploadableFile) {\n return\n }\n\n if (isLoading) {\n return\n }\n\n setIsLoading(true)\n\n let fileParts = uploadableFile.name.split('.')\n let fileName = fileParts[0]\n let fileType = uploadableFile.type\n\n try {\n const params = {\n avatar_upload: {\n file_name: fileName,\n file_type: fileType,\n },\n }\n\n const res = await Api.presignAvatarUrl(params)\n await sendFileToAmazon(res.presignedUrl, uploadableFile)\n !!submitOverrideFunction\n ? await submitOverrideFunction(res.storageUrl)\n : await submitAvatar(res.storageUrl)\n setIsLoading(false)\n // Note: This is throwing an \"can't update state on an unmounted component\" error\n // setNotification('Picture Updated!', 'success')\n } catch (err) {\n setIsLoading(false)\n setNotification(JSON.stringify(err), 'error')\n }\n }\n\n const genericAvatar = isGroupAvatar ? EmptyGroupAvatar : EmptyAvatar\n const avatarImage = currentAvatar ? currentAvatar : genericAvatar\n\n return (\n <>\n
\n
\n \n \n
\n
\n \n \n {isGroupAvatar\n ? 'Upload Survey Profile Photo'\n : 'Upload Profile Photo'}\n \n \n \n \n \n \n \n \n \n\n \n \n setZoom(zoom)}\n />\n \n \n \n {isLoading && (\n \n )}\n \n \n \n \n \n \n )\n}\n\nexport default EditAvatar\n","import { styled } from '@mui/material'\nimport EditAvatar from '../../accountSettings/EditAvatar'\n\nconst ProfileWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'center',\n marginTop: theme.spacing(2),\n}))\n\nconst ProfilePicture = ({ avatar }) => {\n return (\n \n \n \n )\n}\n\nexport default ProfilePicture\n","export const sanitizeUserName = (str) =>\n // Replace non-alphanumeric characters with an empty string\n str ? str.replace(/[^A-Za-z0-9]/g, '').toLowerCase() : ''\n\nexport const capitalize = (str) => {\n if (typeof str !== 'string') return ''\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport const titleize = (str) => {\n if (typeof str !== 'string') return ''\n return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()\n}\n\nexport const randomCodeString = (length) => {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n let result = ''\n for (let i = 0; i < length; i++) {\n result += chars.charAt(Math.floor(Math.random() * chars.length))\n }\n return result\n}\n\nexport const parseAutoFillTags = ({ question, speakerName }) => {\n const { content, replacementTarget, replacementValue } = question\n\n let parsedContent = content || ''\n\n if (replacementTarget) {\n parsedContent = parsedContent.replace(\n replacementTarget,\n replacementValue.toLowerCase()\n )\n }\n\n if (parsedContent.includes('{{speaker_name}}')) {\n parsedContent = parsedContent.replace('{{speaker_name}}', speakerName)\n }\n\n return parsedContent\n}\n\nexport const parseEmojiKeywords = (question) => {\n const { content, replacementTarget, replacementValue } = question\n\n let parsedContent = content || ''\n\n if (replacementTarget) {\n parsedContent = parsedContent.replace(replacementTarget, replacementValue)\n }\n\n return { ...question, content: parsedContent }\n}\n\nexport const parseSpeakerName = (question, speakerName) => {\n const { content } = question\n\n let parsedContent = content || ''\n\n if (parsedContent.includes('{{speaker_name}}')) {\n parsedContent = parsedContent.replace('{{speaker_name}}', speakerName)\n }\n\n return { ...question, content: parsedContent }\n}\n\nexport const stripHtmlTags = (question) => {\n const { content } = question\n\n const parsedContent = content.replace(/<[^>]*>?/gm, '')\n\n return { ...question, content: parsedContent }\n}\n\nexport const stripEmojiTags = (question) => {\n const { content, replacementTarget } = question\n\n let parsedContent = content.replace(replacementTarget, '')\n\n parsedContent = parsedContent.replace(/\\?$/, '')\n\n return { ...question, content: parsedContent }\n}\n","import { createContext, useReducer, useContext } from 'react'\n\nimport { onboardingReducer, initialOnboardingState } from './onboardingReducer'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport * as ActionTypes from './actionTypes'\nimport history from '../../routes/history'\n\nimport WelcomeScreen from './questions/WelcomeScreen'\nimport UserAttributeForm from '../common/UserAttributeForm'\nimport ShortlinkPicker from './questions/ShortlinkPicker'\nimport MultipleChoiceQuestion from './common/MultipleChoiceQuestion'\nimport ReferralQuestionParent from './questions/ReferralQuestionParent'\nimport ReferralOrganizationPicker from './questions/ReferralOrganizationPicker'\nimport ProfilePicture from './questions/ProfilePicture'\n\nimport Api from '../../services/api'\nimport { trackOnboardingComplete } from '../../services/metrics'\nimport { validateShortlinkFormat } from '../../utils/validators'\nimport { sanitizeUserName } from '../../utils/string'\n\nexport const OnboardingContext = createContext({\n onboardingState: initialOnboardingState,\n})\n\nexport const OnboardingTypes = {\n FirstName: 'firstName',\n LastName: 'lastName',\n Avatar: 'avatar',\n SurveyLink: 'surveyLink',\n ReferrerParent: 'referrer_parent',\n ReferrerFriend: 'referrer_friend',\n ReferrerOrganization: 'referrer_organization',\n ReferrerChild: 'referrer_child',\n NextTalk: 'nextTalk',\n MainBenefits: 'mainBenefits',\n TalksPerYear: 'talksPerYear',\n BureauTalksInfo: 'bureauTalksInfo',\n Welcome: 'welcome',\n}\n\nconst QuestionTypes = {\n NextTalk: 'next_talk',\n MainBenefits: 'main_benefits',\n ReferrerOptions: 'referral_options',\n TalksPerYear: 'talks_per_year',\n BureauTalksInfo: 'bureau_talks_info',\n}\n\nconst ReferrerTypes = {\n Friend: 'Through a friend or fellow speaker',\n Organization: 'From an organization or group',\n Other: 'Other',\n}\n\nconst ReferrerOptions = [\n { id: 1, text: ReferrerTypes.Friend, additionalContextRequired: false },\n { id: 2, text: ReferrerTypes.Organization, additionalContextRequired: false },\n { id: 3, text: ReferrerTypes.Other, additionalContextRequired: true },\n]\n\nconst OnboardingContextProvider = (props) => {\n const [onboardingState, dispatch] = useReducer(\n onboardingReducer,\n initialOnboardingState\n )\n const {\n authData,\n setProfileAttribute,\n setNotification,\n canToggleTalkadotBranding,\n setUserMembership,\n setUserData,\n } = useContext(AuthenticationContext)\n const { user } = authData\n\n const defaultShortLink = user\n ? sanitizeUserName(user.first_name + user.last_name)\n : ''\n\n const toggleIsLoading = (isLoading) => {\n dispatch({\n type: ActionTypes.TOGGLE_IS_LOADING,\n payload: isLoading,\n })\n }\n\n const toggleFormError = (formError) => {\n dispatch({\n type: ActionTypes.SET_FORM_ERROR,\n payload: formError,\n })\n }\n\n const setReferrerDataAttribute = (attributeType, attributeValue) => {\n dispatch({\n type: ActionTypes.SET_REFERRER_DATA_ATTRIBUTE,\n payload: {\n attrType: attributeType,\n attrValue: attributeValue,\n },\n })\n }\n\n const setSelectedReferrerOption = (referrerOption) => {\n return setReferrerDataAttribute('selectedReferrerOption', referrerOption)\n }\n\n const setAdditionalReferrerContext = (additionalReferrerContext) => {\n return setReferrerDataAttribute(\n 'additionalReferrerContext',\n additionalReferrerContext\n )\n }\n\n const setReferrerOrganization = (referrerOrganization) => {\n return setReferrerDataAttribute(\n 'selectedReferrerOrganization',\n referrerOrganization\n )\n }\n\n const setReferrerChapter = (referrerChapter) => {\n return setReferrerDataAttribute('selectedReferrerChapter', referrerChapter)\n }\n\n const submitCustomUrl = async () => {\n const { shortlink } = user\n const { valid, message } = validateShortlinkFormat(shortlink)\n\n if (!valid) {\n return toggleFormError(message)\n }\n\n const params = {\n user: {\n id: user.id,\n shortlink: user.shortlink.trim(),\n },\n }\n\n await submitProfileAttribute(params)\n }\n\n const handleOnboardingComplete = async () => {\n const params = {\n user: {\n id: user.id,\n onboarding_complete: true,\n },\n }\n\n try {\n const res = await Api.updateUser(params)\n if (!res.errors) {\n setProfileAttribute('onboarding_complete', true)\n\n trackOnboardingComplete({\n userId: user.id,\n benefits: user.onboarding_info?.main_benefits,\n nextTalk: user.onboarding_info?.next_talk,\n })\n }\n } catch (err) {\n setNotification(err)\n }\n\n return history.push('/dashboard')\n }\n\n const findNextStep = (currentStep) => {\n return steps.filter((step) => step.id === currentStep.id + 1)[0]\n }\n\n const isReferrerQuestion = (nextStep) => {\n return (\n nextStep.type === OnboardingTypes.ReferrerParent ||\n nextStep.type === OnboardingTypes.ReferrerChild\n )\n }\n\n // If the next question is a referral tracking question\n // and the user already has a valid referrer, skip this question entirely\n // OR\n // If the user selects \"other\" for referrer and does not input a referral option\n // OR\n // If the user selects \"friend\" for referrer and does not input a referral value\n const shouldSkipNextStep = (nextStep) => {\n const { selectedReferrerOption } = onboardingState.referrerData\n return (\n (isReferrerQuestion(nextStep) && user.referrer && !nextStep.isLastStep) ||\n (selectedReferrerOption === ReferrerTypes.Other &&\n !user.referrer &&\n !nextStep.isLastStep) ||\n (selectedReferrerOption === ReferrerTypes.Friend &&\n nextStep.subquestionType === OnboardingTypes.ReferrerOrganization)\n )\n }\n\n const goForward = async () => {\n const currentStep = getCurrentStep()\n\n if (currentStep.isLastStep) {\n return await handleOnboardingComplete()\n }\n\n const nextStep = findNextStep(currentStep)\n\n if (shouldSkipNextStep(nextStep)) {\n return setCurrentStep(nextStep.skipQuestionId)\n }\n\n try {\n const params = {\n user: {\n last_onboarding_step: onboardingState.currentStep,\n },\n }\n\n await Api.updateUser(params)\n } catch (err) {\n // just catch the error\n }\n\n setCurrentStep(onboardingState.currentStep + 1)\n }\n\n const setCurrentStep = (step) => {\n dispatch({\n type: ActionTypes.SET_CURRENT_STEP,\n payload: step,\n })\n }\n\n const goBack = () => {\n const currentStep = getCurrentStep()\n\n if (currentStep.isFirstStep) {\n return\n }\n\n const backStepId = currentStep.backQuestionId\n ? currentStep.backQuestionId\n : currentStep.id - 1\n\n dispatch({\n type: ActionTypes.SET_CURRENT_STEP,\n payload: backStepId,\n })\n }\n\n const submitFirstName = async () => {\n if (\n !user.first_name ||\n !user.first_name.trim() ||\n user.first_name.trim().length === 0\n ) {\n return toggleFormError(\n 'Please fill out a valid first name before continuing'\n )\n }\n\n const params = {\n user: {\n id: user.id,\n first_name: user.first_name.trim(),\n },\n }\n\n return await submitProfileAttribute(params)\n }\n\n const submitEmail = async () => {\n if (!user.email || !user.email.trim()) {\n return toggleFormError('Please fill out a valid email before continuing')\n }\n\n const params = {\n user: {\n id: user.id,\n email: user.email.trim(),\n },\n }\n\n return await submitProfileAttribute(params)\n }\n\n const submitToggleTalkadotBranding = async (showBranding) => {\n // Don't toggle if they don't have permissions\n if (!canToggleTalkadotBranding()) {\n return\n }\n\n const params = {\n user: {\n id: user.id,\n show_talkadot_branding: showBranding,\n },\n }\n\n return await submitProfileAttribute(params)\n }\n\n const submitAvatar = async (avatarLink) => {\n const params = {\n user: {\n id: user.id,\n avatar: avatarLink,\n },\n }\n\n try {\n toggleIsLoading(true)\n\n const res = await Api.updateUser(params)\n\n if (!res.errors) {\n setProfileAttribute('avatar', res.avatar)\n toggleIsLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n toggleIsLoading(false)\n setNotification(err)\n }\n }\n\n const submitLastNameFromAccountForm = async () => {\n if (!user.last_name || !user.last_name.trim()) {\n return toggleFormError(\n 'Please fill out a valid last name before continuing'\n )\n }\n\n const params = {\n user: {\n id: user.id,\n last_name: user.last_name.trim(),\n },\n }\n\n return await submitProfileAttribute(params)\n }\n\n const goToNextQuestionFromSubquestionType = (subquestionType) => {\n const nextStep = steps.find(\n (step) => step.subquestionType === subquestionType\n )\n return setCurrentStep(nextStep.id)\n }\n\n const formatReferrerType = (referrerType) => {\n if (referrerType === ReferrerTypes.Friend) {\n return 'FRIEND'\n }\n\n if (referrerType === ReferrerTypes.Organization) {\n return 'ORGANIZATION'\n }\n\n return 'OTHER'\n }\n\n const syncReferrerData = async () => {\n const { selectedReferrerOption, additionalReferrerContext } =\n onboardingState.referrerData\n\n const params = {\n user: {\n id: user.id,\n referrer: user.referrer || additionalReferrerContext,\n },\n referrer_type: formatReferrerType(selectedReferrerOption),\n }\n\n try {\n toggleIsLoading(true)\n\n const res = await Api.updateReferrer(params)\n\n if (!res.errors) {\n toggleIsLoading(false)\n setUserMembership(res)\n return goForward()\n } else {\n throw res.errors\n }\n } catch (err) {\n toggleIsLoading(false)\n setNotification(err)\n }\n }\n\n const submitReferrer = async () => {\n const { selectedReferrerOption } = onboardingState.referrerData\n const currentStep = getCurrentStep()\n\n if (currentStep.type === OnboardingTypes.ReferrerParent) {\n if (!selectedReferrerOption) {\n // Skip referrer questions entirely if this is the case\n return setCurrentStep(currentStep.skipQuestionId)\n }\n\n if (selectedReferrerOption === ReferrerTypes.Friend) {\n return goToNextQuestionFromSubquestionType(\n OnboardingTypes.ReferrerFriend\n )\n }\n\n if (selectedReferrerOption === ReferrerTypes.Organization) {\n return goToNextQuestionFromSubquestionType(\n OnboardingTypes.ReferrerOrganization\n )\n }\n\n if (selectedReferrerOption === ReferrerTypes.Other) {\n setProfileAttribute(\n 'referrer',\n onboardingState.referrerData?.additionalReferrerContext\n )\n\n await syncReferrerData()\n }\n\n return setCurrentStep(currentStep.skipQuestionId)\n }\n\n return await syncReferrerData()\n }\n\n const submitOnboardingInfo = async ({ questionType, optionValue } = {}) => {\n if (!user.onboarding_info) {\n return goForward()\n }\n\n const params = {\n onboarding_info: {\n ...user.onboarding_info,\n ...(questionType ? { [questionType]: optionValue.text } : {}),\n },\n }\n\n return await submitOnboardingInfoData(params)\n }\n\n // if multiple selection is allowed\n const handleMultipleSelection = ({ questionType, optionValues }) => {\n const onboardingInfo = {\n ...user.onboarding_info,\n [questionType]: optionValues,\n }\n setProfileAttribute('onboarding_info', onboardingInfo)\n }\n\n const submitMultipleChoiceQuestion = async () => {\n const params = {\n onboarding_info: user.onboarding_info,\n }\n\n return await submitOnboardingInfoData(params)\n }\n\n const submitLastName = async () => {\n if (!user.last_name || user.last_name.trim() === '') {\n return toggleFormError(\n 'Please fill out a valid last name before continuing'\n )\n }\n\n const params = {\n user: {\n id: user.id,\n last_name: user.last_name.trim(),\n },\n }\n\n // During the onboarding flow, we want to set the users\n // talkadot shortlink option for them after they give us\n // their first name and last name\n setProfileAttribute('shortlink', defaultShortLink)\n\n return await submitProfileAttribute(params)\n }\n\n const submitProfileAttribute = async (params) => {\n try {\n toggleIsLoading(true)\n\n const res = await Api.updateUser(params)\n if (!res.errors) {\n toggleIsLoading(false)\n\n // Note: only call goForward in onboarding flow\n if (!user.onboarding_complete) {\n return goForward()\n }\n\n return\n } else {\n throw res.errors\n }\n } catch (err) {\n toggleIsLoading(false)\n setNotification(err)\n }\n }\n\n const submitOnboardingInfoData = async (params) => {\n try {\n toggleIsLoading(true)\n\n const res = await Api.updateOnboardingInfo(params)\n\n if (!res.errors) {\n toggleIsLoading(false)\n setUserData(res)\n return goForward()\n } else {\n throw res.errors\n }\n } catch (err) {\n toggleIsLoading(false)\n setNotification(err)\n }\n }\n\n const resetOnboardingData = () => {\n dispatch({\n type: ActionTypes.RESET_ONBOARDING_DATA,\n })\n }\n\n const onboardingQuestions = {\n nextTalk: {\n type: QuestionTypes.NextTalk,\n title: 'When is your next talk?',\n multipleSelection: false,\n options: [\n { id: 1, text: 'This week!' },\n { id: 2, text: 'In the next 1-2 weeks' },\n { id: 3, text: 'In the next month' },\n { id: 4, text: 'In the next 2-3 months' },\n { id: 5, text: 'No set time yet' },\n ],\n },\n mainBenefits: {\n type: QuestionTypes.MainBenefits,\n title: 'What are the main benefits you hope to get from Talkadot?',\n multipleSelection: true,\n options: [\n { id: 1, text: 'Have talk highlights to share on social media' },\n { id: 2, text: 'Get reports to show my event hosts' },\n { id: 3, text: 'See what the audience thought' },\n { id: 4, text: 'Get booking leads from my audience' },\n { id: 5, text: 'Get rebooking from my event hosts' },\n ],\n allOfAboveOptionAvailable: true,\n },\n talksPerYear: {\n type: QuestionTypes.TalksPerYear,\n title: 'How many talks do you expect to give this year?',\n multipleSelection: false,\n options: [\n { id: 1, text: '1-5' },\n { id: 2, text: '6-15' },\n { id: 3, text: '16-30' },\n { id: 4, text: '31+' },\n { id: 5, text: \"Don't know yet, I'm just getting started!\" },\n ],\n },\n bureauTalksInfo: {\n type: QuestionTypes.BureauTalksInfo,\n title: 'Do you get any of your business from speaker bureaus?',\n multipleSelection: false,\n options: [\n { id: 1, text: 'I get 50% or more of my new business from bureaus' },\n { id: 2, text: 'I get less than 50% of my business from bureaus' },\n { id: 3, text: 'I am self-represented and book my own talks' },\n { id: 4, text: 'I am exclusively represented by a bureau or manager' },\n ],\n },\n }\n\n const userFormInputStyle = {\n fontSize: '32px',\n fontWeight: 300,\n }\n\n const steps = [\n {\n id: 1,\n type: OnboardingTypes.Welcome,\n title: '',\n children: ,\n isFirstStep: true,\n submitAction: goForward,\n hideMainAction: true,\n fullWidth: true,\n },\n {\n id: 2,\n type: OnboardingTypes.FirstName,\n title: \"What's your first name?\",\n children: (\n \n ),\n submitAction: submitFirstName,\n },\n {\n id: 3,\n type: OnboardingTypes.LastName,\n title: \"What's your last name?\",\n children: (\n \n ),\n submitAction: submitLastName,\n },\n {\n id: 4,\n type: OnboardingTypes.Avatar,\n title: 'Let’s add your profile pic!',\n subtitle:\n 'This will show on your surveys, event reports, and other talkadot pages.',\n children: ,\n submitAction: goForward,\n skipable: true,\n skipQuestionId: 5,\n skipableText: `I'll do this later`,\n },\n {\n id: 5,\n type: OnboardingTypes.SurveyLink,\n title: 'Claim your Talkadot handle.',\n subtitle:\n 'This is your unique feedback link.
(you can change this later)',\n children: (\n \n ),\n submitAction: submitCustomUrl,\n },\n {\n id: 6,\n type: OnboardingTypes.ReferrerParent,\n title: 'How did you hear about Talkadot?',\n skipQuestionId: 9,\n backQuestionId: 5,\n children: (\n \n ),\n submitAction: submitReferrer,\n },\n {\n id: 7,\n type: OnboardingTypes.ReferrerChild,\n subquestionType: OnboardingTypes.ReferrerFriend,\n skipQuestionId: 9,\n backQuestionId: 6,\n title: 'You mentioned hearing about Talkadot from someone.',\n subtitle: 'Would you share their name so we can thank them?',\n children: (\n \n ),\n submitAction: submitReferrer,\n },\n {\n id: 8,\n type: OnboardingTypes.ReferrerChild,\n subquestionType: OnboardingTypes.ReferrerOrganization,\n skipQuestionId: 9,\n backQuestionId: 6,\n title:\n 'You mentioned hearing about Talkadot from an organization.',\n children: (\n \n ),\n submitAction: submitReferrer,\n },\n {\n id: 9,\n type: OnboardingTypes.NextTalk,\n backQuestionId: 6,\n title: 'When is your next talk?',\n children: (\n \n ),\n submitAction: submitOnboardingInfo,\n hideMainAction: true,\n },\n {\n id: 10,\n type: OnboardingTypes.MainBenefits,\n title: 'What are the main benefits you hope to get from Talkadot?',\n children: (\n \n ),\n submitAction: submitMultipleChoiceQuestion,\n hideMainAction: false,\n },\n {\n id: 11,\n type: OnboardingTypes.TalksPerYear,\n title: onboardingQuestions.talksPerYear.title,\n children: (\n \n ),\n submitAction: submitOnboardingInfo,\n hideMainAction: true,\n },\n {\n id: 12,\n type: OnboardingTypes.BureauTalksInfo,\n title: onboardingQuestions.bureauTalksInfo.title,\n children: (\n \n ),\n submitAction: submitOnboardingInfo,\n hideMainAction: true,\n isLastStep: true,\n },\n ]\n\n const getCurrentStep = () => {\n const currentStep = steps.filter(\n (step) => onboardingState.currentStep === step.id\n )[0]\n // In case step is out of sync due to change in onboardingSteps\n if (!currentStep) {\n return steps[steps.length - 1]\n }\n return currentStep\n }\n\n const findStartingStep = (lastCompletedOnboardingStep) => {\n if (!lastCompletedOnboardingStep) {\n return 1\n }\n\n return lastCompletedOnboardingStep + 1\n }\n\n return (\n \n {props.children}\n \n )\n}\n\nexport default OnboardingContextProvider\n","import { Button } from '@mui/material'\n\nimport CircularProgress from '@mui/material/CircularProgress'\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward'\n\n/**\n * @typedef {import('@mui/material').ButtonProps} MUIButtonProps\n */\n\n/**\n * @typedef {Object} OutlinedButtonCustomProps\n * @property {Function} [onClick] - Click handler function\n * @property {React.ReactNode} children - Button content\n * @property {boolean} [rounded=false] - Whether the button should have rounded corners\n */\n\n/**\n * @typedef {OutlinedButtonCustomProps & MUIButtonProps} OutlinedButtonProps\n */\n\n/**\n * OutlinedButton component\n * @param {OutlinedButtonProps} props - Component props\n * @returns {JSX.Element} Outlined button component\n */\nexport const OutlinedButton = ({\n onClick,\n children,\n rounded,\n ...buttonProps\n}) => (\n theme.palette.border.main,\n }}\n style={{ borderRadius: rounded ? '20px' : '8px', height: '36px' }}\n onClick={onClick}\n {...buttonProps}>\n {children}\n \n)\n\n/**\n * @typedef {Object} NextButtonCustomProps\n * @property {String} title - button text\n * @property {Function} onClick - Click handler function\n * @property {boolean} [isLoading=false] - Whether the button is in loading state\n */\n\n/**\n * @typedef {NextButtonCustomProps & MUIButtonProps} NextButtonProps\n */\n\n/**\n * NextButton component for navigation in onboarding flow\n * @param {NextButtonProps} props - Component props\n * @returns {JSX.Element} Next button component with appropriate text and loading state\n */\nexport const NextButton = ({ onClick, isLoading, title, ...buttonProps }) => {\n return (\n theme.palette.common.white,\n width: '180px',\n height: '36px',\n mx: '10px',\n }}\n onClick={onClick}\n {...buttonProps}>\n {isLoading ? : title}\n {!isLoading && (\n \n )}\n \n )\n}\n","import { styled } from '@mui/system'\nimport { OutlinedButton } from './common/OnboardingButtons'\n\nconst HeaderContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '12px',\n})\n\nconst CtaContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n gap: '10px',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n gap: '10px',\n },\n}))\n\nconst MainLogo = styled('img')({\n width: '220px',\n height: 'auto',\n})\n\nexport const OnboardingHeader = ({ onSaveAndExit }) => {\n return (\n \n \n \n \n Questions?\n
\n \n Save & Exit\n \n \n \n )\n}\n","import { styled } from '@mui/system'\nimport { Button, Typography } from '@mui/material'\n\nimport { OutlinedButton } from './common/OnboardingButtons'\n\nconst SubmitWrapper = styled('div')(({ theme, hideOkButton }) => ({\n display: 'flex',\n flexWrap: 'wrap',\n visibility: hideOkButton ? 'hidden' : 'visible',\n gap: '10px',\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}))\n\nconst EnterText = styled(Typography)({\n display: 'flex',\n alignItems: 'center',\n})\n\nconst InnerContent = styled('div')(({ theme, fullWidth }) => ({\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n maxWidth: fullWidth ? '800px' : '450px',\n margin: '0 auto',\n justifyContent: 'center',\n [theme.breakpoints.down('sm')]: {\n width: '80%',\n paddingBottom: '80px', // Add padding at bottom to account for fixed footer\n },\n}))\n\nconst TitleContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n marginBottom: '24px',\n})\n\nconst QuestionTitle = ({ title }) => (\n \n \n \n)\n\nconst QuestionSubTitle = ({ subtitle }) => (\n theme.palette.text.hint,\n mt: 1,\n textAlign: 'center ',\n }}>\n \n \n)\n\nexport const OnboardingContent = ({\n currentStep,\n hideOkButton,\n setCurrentStep,\n}) => {\n return (\n \n \n \n {currentStep.subtitle && (\n \n )}\n \n
\n {currentStep.children}\n {!currentStep.hideMainAction && (\n <>\n {!hideOkButton && (\n \n \n \n {currentStep.isLastStep ? 'Finish!' : 'OK'}\n \n \n \n or press Enter ↵\n \n \n )}\n {currentStep.skipable && (\n setCurrentStep(currentStep.skipQuestionId)}\n sx={{ marginTop: '24px' }}>\n I'll add this later\n \n )}\n \n )}\n
\n
\n )\n}\n","import { styled } from '@mui/system'\n\nconst ProgressContainer = styled('div')({\n display: 'flex',\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: '12px',\n gap: '10px',\n})\n\nconst Step = styled('div')(({ theme, active }) => ({\n flex: 1,\n height: '10px',\n backgroundColor: active\n ? `${theme.palette.neutral.main}`\n : `${theme.palette.neutral.veryLight}`,\n transition: 'background-color 0.3s ease',\n}))\n\nexport const ProgressBar = ({ progress, total }) => {\n return (\n \n {Array.from({ length: total }, (_, index) => (\n \n ))}\n \n )\n}\n","import { styled } from '@mui/system'\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack'\n\nimport { OutlinedButton, NextButton } from './common/OnboardingButtons'\nimport { ProgressBar } from './common/ProgressBar'\n\nconst FooterContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n paddingBottom: '12px',\n flexDirection: 'column',\n [theme.breakpoints.down('sm')]: {\n position: 'fixed',\n bottom: 0,\n left: 0,\n right: 0,\n width: '100%',\n backgroundColor: 'white',\n zIndex: 1000,\n },\n}))\n\nconst ButtonContainer = styled('div')(({ theme }) => ({\n padding: '20px 50px',\n [theme.breakpoints.down('sm')]: {\n padding: '0px 4px',\n },\n}))\n\nconst CtaContainer = styled('div')({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n})\n\nexport const OnboardingFooter = ({\n totalSteps,\n currentStep,\n isLoading,\n goBack,\n}) => {\n const nextButtonText = currentStep.isFirstStep\n ? 'Get Started'\n : currentStep.isLastStep\n ? 'Finish'\n : 'Next'\n\n return (\n \n \n \n \n {!currentStep.isFirstStep && (\n \n \n Back\n \n )}\n \n \n \n \n \n \n )\n}\n","import { useContext, useEffect } from 'react'\nimport { styled } from '@mui/system'\n\nimport { OnboardingContext, OnboardingTypes } from './onboardingContext'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport history from '../../routes/history'\nimport { OnboardingHeader } from './OnboardingHeader'\nimport { OnboardingContent } from './OnboardingContent'\nimport { OnboardingFooter } from './OnboardingFooter'\n\nconst OnboardingContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n height: '100vh',\n justifyContent: 'space-between',\n backgroundColor: 'white',\n})\n\nconst OnboardingParent = () => {\n const {\n onboardingState,\n getCurrentStep,\n setCurrentStep,\n goBack,\n steps,\n resetOnboardingData,\n findStartingStep,\n } = useContext(OnboardingContext)\n const { authData, logoutUser } = useContext(AuthenticationContext)\n const { user } = authData\n const { lastOnboardingStep } = user\n const { isLoading } = onboardingState\n const currentStep = getCurrentStep()\n\n const hideOkButton =\n currentStep?.type === OnboardingTypes.Avatar && !user.avatar\n\n useEffect(() => {\n if (lastOnboardingStep !== undefined) {\n setCurrentStep(findStartingStep(lastOnboardingStep))\n }\n }, [lastOnboardingStep])\n\n useEffect(() => {\n if (user.onboarding_complete) {\n return history.push('/dashboard')\n }\n }, [user])\n\n useEffect(() => {\n const keyPressHandler = (event) => {\n if (event.key === 'Enter' && !hideOkButton) {\n event.preventDefault()\n currentStep.submitAction()\n }\n }\n\n document.addEventListener('keypress', keyPressHandler)\n\n return () => {\n document.removeEventListener('keypress', keyPressHandler)\n }\n }, [currentStep, hideOkButton])\n\n const handleLogout = () => {\n logoutUser()\n resetOnboardingData()\n }\n\n return (\n \n \n \n \n \n )\n}\n\nexport default OnboardingParent\n","import { useContext, useState } from 'react'\nimport { styled } from '@mui/system'\n\nimport {\n Switch,\n Typography,\n Divider,\n Stack,\n FormControl,\n InputLabel,\n OutlinedInput,\n FormHelperText,\n InputAdornment,\n IconButton,\n Button,\n Tooltip,\n} from '@mui/material'\nimport { IoLockOpenOutline, IoLockClosedOutline } from 'react-icons/io5'\nimport Visibility from '@mui/icons-material/Visibility'\nimport VisibilityOff from '@mui/icons-material/VisibilityOff'\n\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport {\n AccountSettingsCard,\n AccountSettingsCardColumn,\n AccountSettingsCardInner,\n AccountSettingsCardTitle,\n} from './AccountSettingsParent'\n\nconst SettingWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n margin: '15px 0',\n [theme.breakpoints.down('md')]: {\n flexDirection: 'column',\n },\n}))\n\nconst LabelWrapper = styled('div')({\n display: 'flex',\n alignItems: 'center',\n})\n\nconst ToggleLabelRight = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'checked',\n})(({ theme, checked }) => ({\n minWidth: '100px',\n fontWeight: checked ? 'bold' : 'normal',\n color: checked ? 'inherit' : theme.palette.tertiary.light,\n textAlign: 'left',\n svg: {\n stroke: checked ? 'red' : '',\n },\n}))\n\nconst ToggleLabelLeft = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'checked',\n})(({ theme, checked }) => ({\n fontWeight: !checked ? 'bold' : 'normal',\n color: !checked ? 'inherit' : theme.palette.tertiary.light,\n svg: {\n stroke: !checked ? 'green' : '',\n },\n}))\n\nconst ButtonWrapper = styled('div')({\n display: 'flex',\n justifyContent: 'flex-end',\n})\n\nconst intialFormValues = {\n password: '',\n password_confirmation: '',\n}\n\nconst ProfileSettings = ({ user }) => {\n const { setNotification, setProfileAttribute } = useContext(\n AuthenticationContext\n )\n const [showNewPassword, setShowNewPassword] = useState(false)\n const [showNewConfirmPassword, setShowNewConfirmPassword] = useState(false)\n const [showPasswordFields, setShowPasswordFields] = useState(false)\n const [formValues, setFormValues] = useState(intialFormValues)\n const [passwordError, setPasswordError] = useState(false)\n\n const { isAssociate } = user\n\n const handleClickShowNewPassword = () => setShowNewPassword((show) => !show)\n\n const handleClickShowNewConfirmPassword = () =>\n setShowNewConfirmPassword((show) => !show)\n\n const handleMouseDownPassword = (e) => {\n e.preventDefault()\n }\n\n const handleInputChange = (e) => {\n const { name, value } = e.target\n setFormValues({\n ...formValues,\n [name]: value,\n })\n }\n\n const handleBlur = () => {\n if (\n formValues.password_confirmation &&\n formValues.password !== formValues.password_confirmation\n ) {\n setPasswordError(true)\n } else if (\n passwordError &&\n formValues.password === formValues.password_confirmation\n ) {\n setPasswordError(false)\n }\n }\n\n const handleToggleProfileSetting = async (attribute, checked) => {\n const params = {\n profile_setting: {},\n }\n\n params.profile_setting[attribute] = checked\n\n try {\n const res = await Api.updateProfileSettings(params)\n if (!res.errors) {\n const profileSettings = {\n ...user.profileSettings,\n ...params.profile_setting,\n }\n setProfileAttribute('profileSettings', profileSettings)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const handlePasswordSubmit = async (e) => {\n e.preventDefault()\n\n const params = {\n profile_setting: { ...formValues },\n }\n\n try {\n const res = await Api.updateProfileSettings(params)\n if (!res.errors) {\n const profileSettings = {\n ...user.profileSettings,\n password_set: true,\n }\n setProfileAttribute('profileSettings', profileSettings)\n setShowPasswordFields(false)\n setNotification('Profile Password Updated Successfully', 'success')\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const verifyPassword = () => {\n const { password, password_confirmation } = formValues\n if (password && password === password_confirmation) {\n return false\n }\n return true\n }\n\n const renderPasswordFields = () => {\n if (showPasswordFields || !user?.profileSettings?.password_set) {\n return (\n
\n \n \n \n New Password\n \n \n \n New Password\n \n \n {showNewPassword ? : }\n \n \n }\n label=\"New Password\"\n name=\"password\"\n onChange={handleInputChange}\n />\n \n \n \n \n \n Confirm New Password\n \n \n \n \n Confirm New Password\n \n \n \n {showNewConfirmPassword ? (\n \n ) : (\n \n )}\n \n \n }\n label=\"Confirm New Password\"\n name=\"password_confirmation\"\n onChange={handleInputChange}\n onBlur={handleBlur}\n error={passwordError}\n />\n {!!passwordError && (\n password does not match\n )}\n \n \n \n \n Save Password\n \n \n
\n )\n } else if (user?.profileSettings?.password_set && !showPasswordFields) {\n return (\n \n setShowPasswordFields(true)}\n sx={{ color: 'white' }}>\n Update Password\n \n \n )\n }\n }\n\n const renderPasswordProtectedSwitch = () => {\n return (\n \n handleToggleProfileSetting('password_protected', e.target.checked)\n }\n inputProps={{ 'aria-label': 'Search index toggle' }}\n checked={!!user?.profileSettings?.password_protected}\n disabled={!user?.profileSettings?.password_set}\n />\n )\n }\n\n const renderPasswordProtectedToggle = () => {\n if (!user?.profileSettings?.password_set) {\n return (\n \n {renderPasswordProtectedSwitch()}\n \n )\n }\n return renderPasswordProtectedSwitch()\n }\n\n return (\n \n \n {isAssociate ? 'Account Owner' : 'Your'} Profile Visibility\n \n \n \n \n \n \n {isAssociate ? 'P' : 'Your p'}rofile is publicly accessible.\n \n \n \n \n {user?.profileSettings?.is_public ? 'Make Private' : 'Private'}\n \n \n handleToggleProfileSetting('is_public', e.target.checked)\n }\n inputProps={{ 'aria-label': 'Talkadot public toggle' }}\n checked={!!user?.profileSettings?.is_public}\n />\n \n {user?.profileSettings?.is_public ? 'Public' : 'Make Public'}\n \n \n \n \n \n \n \n {isAssociate ? 'P' : 'Your p'}rofile is searchable on Talkadot\n \n \n \n \n {user?.profileSettings?.searchable_in_app\n ? 'Make Private'\n : 'Private'}\n \n \n handleToggleProfileSetting(\n 'searchable_in_app',\n e.target.checked\n )\n }\n inputProps={{ 'aria-label': 'Talkadot searchable toggle' }}\n checked={!!user?.profileSettings?.searchable_in_app}\n />\n \n {user?.profileSettings?.searchable_in_app\n ? 'Searchable'\n : 'Make Searchable'}\n \n \n \n \n \n \n \n {isAssociate ? 'P' : 'Your p'}rofile is discoverable off\n Talkadot\n \n \n \n \n {user?.profileSettings?.search_indexed\n ? 'Make Private'\n : 'Private'}\n \n \n handleToggleProfileSetting('search_indexed', e.target.checked)\n }\n inputProps={{ 'aria-label': 'Search index toggle' }}\n checked={!!user?.profileSettings?.search_indexed}\n />\n \n {user?.profileSettings?.search_indexed\n ? 'Discoverable'\n : 'Make Discoverable'}\n \n \n \n \n \n \n \n {isAssociate ? 'P' : 'Your p'}rofile is password protected\n \n \n \n \n \n \n {renderPasswordProtectedToggle()}\n \n \n \n \n \n {renderPasswordFields()}\n \n \n \n )\n}\n\nexport default ProfileSettings\n","import React, { useContext } from 'react'\nimport { TextField } from '@material-ui/core'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nconst EditPasswordForm = () => {\n const { setProfileAttribute, authData } = useContext(AuthenticationContext)\n const { user } = authData\n\n return(\n
\n
\n {\n setProfileAttribute('currentPassword', e.target.value)}}\n />\n {\n setProfileAttribute('newPassword', e.target.value)}}\n />\n \n
\n )\n}\n\nexport default EditPasswordForm","import { useState } from 'react'\nimport { styled } from '@mui/system'\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Button,\n Box,\n IconButton,\n Typography,\n TextField,\n} from '@mui/material'\nimport { useTheme } from '@mui/material/styles'\n\nimport CloseIcon from '@mui/icons-material/Close'\nimport ErrorIcon from '@mui/icons-material/Error'\nimport { device } from '../../responsive'\n\nconst StyledDialog = styled(Dialog, {\n shouldForwardProp: (prop) => prop !== 'backgroundColor',\n})(({ theme, backgroundColor }) => ({\n '& .MuiPaper-root': {\n backgroundColor: backgroundColor,\n width: '626px',\n fontFamily: 'Figtree, sans-serif',\n borderRadius: theme.shape.borderRadius.sm,\n },\n}))\n\nconst Title = styled(DialogTitle)({\n display: 'flex',\n alignItems: 'center',\n padding: '2.125rem 1.1875rem 0.5rem 1.1875rem',\n p: {\n fontSize: '1.25rem',\n },\n})\n\nconst TitleText = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'color',\n})(({ color }) => ({\n marginLeft: '1.3125rem',\n fontWeight: 'bold',\n color: color,\n fontFamily: 'Figtree, sans-serif',\n}))\n\nconst StyledDialogContent = styled(DialogContent)({\n padding: '0 4rem 1.25rem 4rem',\n fontSize: '0.875rem',\n})\n\nconst DangerMessage = styled('div')(({ theme }) => ({\n color: theme.palette.red.main,\n fontWeight: 'bold',\n marginTop: '1rem',\n}))\n\nconst ManualConfirmContainer = styled('div')({\n marginTop: '1.4rem',\n})\n\nconst ConfirmLabel = styled('div')(({ theme }) => ({\n color: theme.palette.base.black,\n}))\n\nconst ConfirmTextField = styled(TextField)(({ theme }) => ({\n marginTop: '1rem',\n width: '250px',\n '& .MuiOutlinedInput-root': {\n backgroundColor: theme.palette.base.white,\n borderRadius: '0',\n '& fieldset': {\n borderColor: theme.palette.base.black + ' !important', // don't judge me\n },\n },\n [`@media ${device.mobile}`]: {\n width: '100%',\n },\n}))\n\nconst StyledDialogActions = styled(DialogActions, {\n shouldForwardProp: (prop) =>\n prop !== 'columnLayout' && prop !== 'buttonOrder',\n})(({ columnLayout, buttonOrder }) => ({\n paddingBottom: '2.125rem',\n paddingRight: '4rem',\n paddingLeft: '4rem',\n button: {\n fontWeight: '600',\n textTransform: 'none',\n padding: '0.875rem 1rem',\n borderRadius: '10px',\n },\n flexDirection: columnLayout\n ? 'column-reverse'\n : buttonOrder === 'confirmFirst'\n ? 'row-reverse'\n : 'row',\n alignItems: columnLayout ? 'flex-start' : 'inherit',\n}))\n\nconst CancelButton = styled(Button)(({ theme, variant }) => ({\n border: variant === 'text' ? 'none' : `1px solid ${theme.palette.black.main}`,\n fontFamily: 'Figtree, sans-serif',\n}))\n\nconst ConfirmButton = styled(Button, {\n shouldForwardProp: (prop) =>\n prop !== 'textColor' &&\n prop !== 'columnLayout' &&\n prop !== 'manualConfirm' &&\n prop !== 'buttonOrder',\n})(({ textColor, columnLayout, buttonOrder }) => ({\n color: textColor || 'auto',\n marginLeft:\n columnLayout || buttonOrder === 'confirmFirst' ? '0 !important' : 'auto',\n marginRight: buttonOrder === 'confirmFirst' ? '1rem' : '0',\n marginBottom: columnLayout ? '2.25rem' : '0',\n fontFamily: 'Figtree, sans-serif',\n [`@media ${device.mobile}`]: {\n flex: '1',\n },\n}))\n\nconst ConfirmDialog = ({\n title,\n children,\n open,\n setOpen,\n onConfirm,\n onCancel,\n buttonColor,\n textColor,\n buttonText,\n cancelButtonText,\n cancelButtonTextColor,\n cancelButtonVariant,\n manualConfirm = false,\n confirmText = '',\n columnLayout = false,\n buttonOrder = 'confirmLast',\n variant = 'danger',\n disableOutsideClick = false,\n showCancel = true,\n hideDangerMessage,\n}) => {\n const [confirmValue, setConfirmValue] = useState('')\n\n const theme = useTheme()\n\n const backgroundColor = () => {\n switch (variant) {\n case 'danger':\n return theme.palette.red.light\n case 'warning':\n // TODO: this is placeholder\n return theme.palette.primary.light\n case 'info':\n return theme.palette.base.white\n default:\n return theme.palette.red.light\n }\n }\n\n const titleColor = () => {\n switch (variant) {\n case 'danger':\n return theme.palette.error.main\n case 'warning':\n return theme.palette.primary.main\n case 'info':\n return theme.palette.primary.main\n default:\n return theme.palette.error.main\n }\n }\n\n const handleClose = (reason) => {\n if (disableOutsideClick && reason === 'backdropClick') {\n return\n }\n\n if (onCancel) {\n onCancel()\n }\n setOpen(false)\n setConfirmValue('')\n }\n\n const handleConfirm = () => {\n if (manualConfirm && !confirmTextMatch) {\n return\n }\n setOpen(false)\n setConfirmValue('')\n onConfirm()\n }\n\n const renderIcon = () => {\n switch (variant) {\n case 'danger':\n return \n case 'warning':\n return \n case 'info':\n return \n default:\n return \n }\n }\n\n const showDangerMessage = !hideDangerMessage && variant === 'danger'\n\n const confirmTextMatch = confirmValue === confirmText\n\n return (\n handleClose(reason)}\n aria-labelledby=\"confirm-dialog\"\n backgroundColor={backgroundColor()}>\n \n {renderIcon()}\n <TitleText color={titleColor()}>{title}</TitleText>\n \n \n \n \n \n \n \n {children}\n {showDangerMessage && (\n This action cannot be undone.\n )}\n {manualConfirm && (\n \n \n To continue, type {confirmText} to confirm\n \n setConfirmValue(e.target.value.toUpperCase())}\n error={!confirmTextMatch}\n helperText={\n !confirmTextMatch &&\n confirmValue.length > 0 &&\n `Type ${confirmText} to confirm`\n }\n />\n \n )}\n \n \n {showCancel && (\n \n {cancelButtonText || 'Cancel'}\n \n )}\n \n {buttonText || 'Confirm'}\n \n \n \n )\n}\n\nexport default ConfirmDialog\n","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCopyIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_206_1985)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.3333 6H7.33333C6.59695 6 6 6.59695 6 7.33333V13.3333C6 14.0697 6.59695 14.6667 7.33333 14.6667H13.3333C14.0697 14.6667 14.6667 14.0697 14.6667 13.3333V7.33333C14.6667 6.59695 14.0697 6 13.3333 6Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.33301 10H2.66634C2.31272 10 1.97358 9.85956 1.72353 9.60952C1.47348 9.35947 1.33301 9.02033 1.33301 8.66671V2.66671C1.33301 2.31309 1.47348 1.97395 1.72353 1.7239C1.97358 1.47385 2.31272 1.33337 2.66634 1.33337H8.66634C9.01996 1.33337 9.3591 1.47385 9.60915 1.7239C9.8592 1.97395 9.99967 2.31309 9.99967 2.66671V3.33337\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_206_1985\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCopyIcon16X16);\nexport default __webpack_public_path__ + \"static/media/copyIcon_16x16.60639f5a.svg\";\nexport { ForwardRef as ReactComponent };","export default \"data:image/png;base64,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\"","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgDownloadIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 18,\n viewBox: \"0 0 16 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vector\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_2\",\n d: \"M11.2289 6.63818C13.8471 6.87437 14.9162 8.2839 14.9162 11.3696V11.4687C14.9162 14.8744 13.6144 16.2382 10.3634 16.2382H5.6289C2.37799 16.2382 1.07617 14.8744 1.07617 11.4687V11.3696C1.07617 8.30676 2.13072 6.89723 4.70526 6.6458\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_3\",\n d: \"M8 1.3811V11.1944\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_4\",\n d: \"M10.4362 9.49536L7.99984 12.0477L5.56348 9.49536\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDownloadIcon16X16);\nexport default __webpack_public_path__ + \"static/media/downloadIcon_16x16.2244f114.svg\";\nexport { ForwardRef as ReactComponent };","import { useState } from 'react'\nimport { styled } from '@mui/system'\nimport { Tooltip } from '@material-ui/core'\nimport { handleCopy } from '../common/helpers'\n\nimport { ReactComponent as CopyIcon } from '../../icons/copyIcon_16x16.svg'\n\nconst StyledIcon = styled('div')({\n display: 'flex',\n cursor: 'pointer',\n})\n\nconst CopyContent = ({ contentToCopy }) => {\n const [copyNotification, setCopyNotification] = useState('Click To Copy')\n\n const handleCopyClick = () => {\n handleCopy(contentToCopy)\n setCopyNotification('Copied!')\n\n setTimeout(() => {\n setCopyNotification('Click To Copy')\n }, 2000)\n }\n\n return (\n \n \n \n \n \n )\n}\n\nexport default CopyContent\n","import { useState } from 'react'\nimport { styled } from '@mui/system'\nimport { CircularProgress, Typography, Button } from '@mui/material'\n\nimport { ReactComponent as EditIcon } from '../../icons/editIcon_16x16.svg'\nimport speakerflowLogo from '../../icons/speakerflow.png'\n\nimport { SocialLinkIcon } from '@talkadot/survey-component-library'\nimport CopyContent from '../common/CopyContent'\n\nexport const EditDetailsContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'isEditing' && prop !== 'detailType',\n})(({ theme, isEditing, detailType }) => ({\n display: 'grid',\n gridTemplateColumns: '1fr 3fr auto',\n gridTemplateAreas: `\n \"item1 item2 item3\"\n `,\n alignItems: 'center',\n padding: '25px 0',\n gap: theme.spacing(1),\n '.full-name-form-container': {\n flex: '1',\n },\n [theme.breakpoints.down('sm')]: {\n ...(isEditing && {\n gridTemplateColumns: 'auto 1fr',\n gridTemplateAreas: `\n \"item1 item2\"\n \". item3\"\n `,\n }),\n },\n [theme.breakpoints.down('md')]: {\n '.integration-image': {\n width: '180px',\n },\n ...(detailType?.toLowerCase().includes('speakerflow') && {\n gridTemplateColumns: '1fr auto',\n gridTemplateAreas: `\n \"item1 item1\"\n \"item2 item3\"\n `,\n }),\n },\n '& > :nth-child(1)': {\n gridArea: 'item1',\n },\n '& > :nth-child(2)': {\n gridArea: 'item2',\n },\n '& > :nth-child(3)': {\n gridArea: 'item3',\n },\n}))\n\nconst EditActionsWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n svg: {\n marginRight: theme.spacing(1),\n },\n [theme.breakpoints.down('md')]: {\n div: {\n display: 'none',\n },\n },\n}))\n\nexport const StyledTitle = styled(Typography)({\n minWidth: '65px',\n})\n\nconst StyledSocialTitle = styled(Typography)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n minWidth: '120px',\n span: {\n marginLeft: theme.spacing(1),\n },\n [theme.breakpoints.down('sm')]: {\n minWidth: '24px',\n span: {\n display: 'none',\n },\n },\n}))\n\nexport const StaticDetailValue = styled(Typography)(({ theme }) => ({\n flex: '1',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n alignItems: 'center',\n display: 'flex',\n span: {\n marginRight: theme.spacing(1),\n },\n}))\n\nconst EditDetails = ({\n handleUpdate,\n detailType,\n detailValue,\n copiable,\n children,\n beforeSubmitValidation,\n}) => {\n const [isLoading, setIsLoading] = useState(false)\n const [isEditing, setIsEditing] = useState(false)\n\n const handleSubmit = async () => {\n if (beforeSubmitValidation) {\n const { valid } = beforeSubmitValidation()\n\n // invalid submission, do not change isEditing\n if (!valid) return\n }\n\n setIsLoading(true)\n await handleUpdate()\n setIsLoading(false)\n setIsEditing(false)\n }\n\n const renderDetailType = () => {\n if (detailType.toLowerCase().includes('linkedin')) {\n return (\n \n \n {detailType}\n \n )\n }\n\n if (detailType.toLowerCase().includes('twitter')) {\n return (\n \n \n {detailType}\n \n )\n }\n\n if (detailType.toLowerCase().includes('instagram')) {\n return (\n \n \n {detailType}\n \n )\n }\n\n if (detailType.toLowerCase().includes('youtube')) {\n return (\n \n \n {detailType}\n \n )\n }\n\n if (detailType.toLowerCase().includes('speakerflow')) {\n return (\n \n )\n }\n\n return {detailType}\n }\n\n const renderStaticData = () => (\n \n {renderDetailType()}\n \n {detailValue}\n {copiable && }\n \n setIsEditing(true)}>\n \n \n Edit\n \n \n \n )\n\n const renderEditableData = () => (\n \n {renderDetailType()}\n {children}\n \n {isLoading ? (\n \n ) : (\n <>\n \n setIsEditing(false)}>\n Cancel\n \n \n )}\n \n \n )\n\n return isEditing ? renderEditableData() : renderStaticData()\n}\n\nexport default EditDetails\n","import React, { useContext, useState } from 'react'\nimport TextField from '@mui/material/TextField'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nconst CustomUrlPicker = ({ onChangeOverride, shortlinkValue }) => {\n const { setProfileAttribute, authData } = useContext(AuthenticationContext)\n const { user } = authData\n const [shortlinkLengthError, setShortlinkLengthError] = useState(null)\n const previousShortlink = user.shortlink\n\n const setUserShortlink = async (shortlink) => {\n // If a legacy user has a shortlink greater than 19 characters,\n // warn them that to save it it needs to be less than the new max\n if (previousShortlink?.length > 19) {\n setShortlinkLengthError('To change this, must be less than 20 characters')\n return setProfileAttribute('shortlink', shortlink)\n }\n\n if (shortlink?.length > 19) {\n return setShortlinkLengthError('Must be 19 characters or less')\n }\n\n if (shortlink?.length <= 19) {\n setShortlinkLengthError(null)\n }\n\n setProfileAttribute('shortlink', shortlink)\n }\n\n return (\n
\n
talk.ac/
\n \"\n onChange={async (e) => {\n !!onChangeOverride\n ? await onChangeOverride(e.target.value.trim())\n : await setUserShortlink(e.target.value.trim())\n }}\n autoFocus\n />\n
\n )\n}\n\nexport default CustomUrlPicker\n","import { useContext, useEffect, useState } from 'react'\n\nimport { Divider, Typography } from '@mui/material'\nimport {\n AccountSettingsCard,\n AccountSettingsCardColumn,\n AccountSettingsCardInner,\n AccountSettingsCardTitle,\n} from './AccountSettingsParent'\nimport EditAvatar from './EditAvatar'\nimport EditPasswordForm from './EditPasswordForm'\nimport ConfirmDialog from '../common/ConfirmDialog'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { OnboardingContext } from '../onboarding/onboardingContext'\nimport UserAttributeForm from '../common/UserAttributeForm'\nimport EditDetails from './EditDetails'\nimport CustomUrlPicker from '../common/CustomUrlPicker'\nimport {\n validateShortlinkFormat,\n validateEmailFormat,\n validateNameFormat,\n} from '../../utils/validators'\n\nimport { styled } from '@mui/system'\n\nconst AvatarContainer = styled('div')({\n alignSelf: 'flex-start',\n marginTop: '20px',\n marginRight: '25px',\n})\n\nconst MainUserSettings = () => {\n const {\n submitEmail,\n submitCustomUrl,\n submitFirstName,\n submitLastNameFromAccountForm,\n } = useContext(OnboardingContext)\n const { authData, resetPassword, setProfileAttribute, setNotification } =\n useContext(AuthenticationContext)\n const { user } = authData\n const { isAssociate } = user\n\n const [originalShortlinkLocked, setOriginalShortlinkLocked] = useState(false)\n const [originalCustomUrl, setOriginalCustomUrl] = useState(null)\n const [confirmOpen, setConfirmOpen] = useState(false)\n\n useEffect(() => {\n if (user?.shortlink && !originalShortlinkLocked) {\n setOriginalCustomUrl(user.shortlink)\n setOriginalShortlinkLocked(true)\n }\n }, [user])\n\n const beforeSubmitValidation = (attribute) => {\n let valid = true\n let message = ''\n\n switch (attribute) {\n case 'shortlink':\n const { valid: shortlinkValid, message: shortlinkMessage } =\n validateShortlinkFormat(user.shortlink)\n\n valid = shortlinkValid\n message = shortlinkMessage\n break\n case 'email':\n const { valid: emailValid, message: emailMessage } =\n validateEmailFormat(user.email)\n\n valid = emailValid\n message = emailMessage\n break\n case 'first_name':\n case 'last_name':\n const { valid: nameValid, message: nameMessage } = validateNameFormat(\n user[attribute]\n )\n\n valid = nameValid\n message = nameMessage\n break\n default:\n break\n }\n\n if (!valid) {\n setNotification(message)\n }\n\n return { valid }\n }\n\n const handleCustomUrlUpdate = () => {\n setConfirmOpen(true)\n }\n\n const renderPasswordField = () => {\n if (isAssociate) {\n return <>\n }\n\n return user?.oauthProviders?.length <= 0 ? (\n \n \n \n ) : (\n
\n \n Password\n \n \n You're currently logged in with {user.oauthProviders?.[0]}\n \n
\n )\n }\n\n return (\n <>\n \n \n {isAssociate ? 'Account Owner' : 'Your Account'} Settings\n \n \n \n \n \n \n \n beforeSubmitValidation('first_name')\n }>\n \n \n \n beforeSubmitValidation('last_name')\n }>\n \n \n \n {!isAssociate && (\n beforeSubmitValidation('email')}>\n \n \n )}\n \n {renderPasswordField()}\n \n \n beforeSubmitValidation('shortlink')\n }>\n \n \n \n \n \n\n {\n setProfileAttribute('shortlink', originalCustomUrl)\n }}>\n Are you sure you want to update your Feedback Link?\n

\n If you update your feedback link, make sure to re-download all of your\n slides and QR codes and add them to your presentations!\n

\n \n \n )\n}\n\nexport default MainUserSettings\n","import { useContext } from 'react'\n\nimport { Typography } from '@mui/material'\nimport {\n AccountSettingsCard,\n AccountSettingsCardColumn,\n AccountSettingsCardInner,\n AccountSettingsCardTitle,\n} from './AccountSettingsParent'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nimport EditDetails, {\n EditDetailsContainer,\n StaticDetailValue,\n} from './EditDetails'\n\nimport UpgradeModalLauncher from '../common/UpgradeModalLauncher'\n\nimport UserAttributeForm from '../common/UserAttributeForm'\n\nconst ConfigurationOptions = () => {\n const { authData, canShowBookingLink, submitBookingLink } = useContext(\n AuthenticationContext\n )\n const { user } = authData\n\n const renderShowBookingLink = () => {\n if (canShowBookingLink) {\n return (\n \n \n \n )\n } else {\n return (\n \n \n Calendar link\n \n \n \n Add Your Booking Link To The End Of Your Talkadot Survey!\n \n \n \n
\n \n )\n }\n }\n\n return (\n \n \n {/* Note - since we've removed talkadot branding as an option,\n this is all that lives in this section. Renaming it to be more clear */}\n Calendar Link Options\n \n \n \n {renderShowBookingLink()}\n \n \n \n )\n}\n\nexport default ConfigurationOptions\n","import { useState } from 'react'\nimport Api from '../../services/api'\nimport {\n useGetUser,\n useSetNotification,\n} from '../authentication/authentication.hooks'\n\nexport const useSocialMediaData = () => {\n const [isLoading, setIsLoading] = useState(false)\n const { user } = useGetUser()\n const setNotification = useSetNotification()\n\n let params = []\n const { socialLinks } = user\n\n const submitSocialMediaData = async () => {\n for (let socialProvider in socialLinks) {\n params.push({\n provider: socialProvider,\n url: socialLinks[socialProvider]?.url,\n })\n }\n\n try {\n setIsLoading(true)\n\n const res = await Api.submitSocialMediaData({\n social_media_links: params,\n })\n\n if (!res.errors) {\n setIsLoading(false)\n return\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoading(false)\n setNotification(err)\n }\n }\n\n return {\n submitSocialMediaData,\n isLoading,\n }\n}\n","import { useContext } from 'react'\nimport { AuthenticationContext } from './authenticationContext'\n\nexport const useIsAdmin = () => {\n const { authData } = useContext(AuthenticationContext)\n return !!authData?.user?.isAdmin\n}\n\nexport const useSetNotification = () => {\n const { setNotification } = useContext(AuthenticationContext)\n return setNotification\n}\n\nexport const useGetUser = () => {\n const { authData } = useContext(AuthenticationContext)\n return { user: authData?.user }\n}\n","import { useContext } from 'react'\nimport { styled } from '@mui/system'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { Typography, TextField } from '@mui/material'\n\nconst Container = styled('div')({\n display: 'flex',\n alignItems: 'center',\n flex: '1',\n '.MuiTextField-root': {\n margin: '0',\n },\n})\n\nconst EditSocialMedia = ({\n socialPrefix,\n placeholderValue,\n socialAttributeType,\n socialAttributeValue,\n}) => {\n const { setSocialAttribute } = useContext(AuthenticationContext)\n\n return (\n \n \n {socialPrefix}\n \n \n setSocialAttribute(socialAttributeType, e.target.value)\n }\n />\n \n )\n}\n\nexport default EditSocialMedia\n","import React, { useContext } from 'react'\n\nimport { Divider } from '@mui/material'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { useSocialMediaData } from './AccountSettings.hooks'\n\nimport EditDetails from './EditDetails'\nimport EditSocialMedia from './EditSocialMedia'\n\nimport {\n AccountSettingsCard,\n AccountSettingsCardColumn,\n AccountSettingsCardInner,\n AccountSettingsCardTitle,\n} from './AccountSettingsParent'\n\nconst SocialMediaSettings = () => {\n const { submitSocialMediaData } = useSocialMediaData()\n const { authData } = useContext(AuthenticationContext)\n const { user } = authData\n\n const renderLinkedInValue = () => {\n const linkedInUrl = user?.socialLinks?.linkedin?.url\n if (linkedInUrl && linkedInUrl.includes('linkedin.com')) {\n return linkedInUrl\n } else if (linkedInUrl) {\n return `linkedin.com/in/${linkedInUrl}`\n }\n }\n\n const renderYoutubeValue = () => {\n const youtubeUrl = user?.socialLinks?.youtube?.url\n if (youtubeUrl && youtubeUrl.includes('youtube.com')) {\n return youtubeUrl\n } else if (youtubeUrl && youtubeUrl.includes('UC')) {\n return `youtube.com/channel/${youtubeUrl}`\n } else if (youtubeUrl) {\n return `youtube.com/${youtubeUrl}`\n }\n }\n\n return (\n \n \n {user.isAssociate ? 'Account Owner' : 'Your'} Social Presence\n \n \n \n \n \"\n socialAttributeType=\"twitter\"\n socialAttributeValue={user?.socialLinks?.twitter?.url}\n />\n \n \n \n \"\n socialAttributeType=\"instagram\"\n socialAttributeValue={user?.socialLinks?.instagram?.url}\n />\n \n \n \n \"\n socialAttributeType=\"linkedin\"\n socialAttributeValue={user?.socialLinks?.linkedin?.url}\n />\n \n \n \n \"\n socialAttributeType=\"youtube\"\n socialAttributeValue={user?.socialLinks?.youtube?.url}\n />\n \n \n \n \n \n )\n}\n\nexport default SocialMediaSettings\n","import React, { useContext } from 'react'\n\nimport { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nimport PageContainer from '../common/PageContainer'\nimport PageHeader from '../common/PageHeader'\nimport ProfileSettings from './ProfileSettings'\nimport MainUserSettings from './MainUserSettings'\nimport ConfigurationOptions from './ConfigurationOptions'\nimport SocialMediaSettings from './SocialMediaSettings'\n\nimport './AccountSettings.scss'\nimport WebinarAlert from '../helpCenter/WebinarAlert'\n\nconst AccountSettingsContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n})\n\nexport const AccountSettingsCard = styled('div')(({ theme }) => ({\n padding: '25px',\n backgroundColor: 'white',\n marginBottom: theme.spacing(2),\n h5: {\n textAlign: 'left',\n },\n}))\n\nexport const AccountSettingsCardInner = styled('div')(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n flexDirection: 'row',\n },\n backgroundColor: 'white',\n display: 'flex',\n flexDirection: 'column',\n marginTop: '10px',\n}))\n\nexport const AccountSettingsCardColumn = styled('div')({\n textAlign: 'left',\n width: '100%',\n})\n\nexport const AccountSettingsCardTitle = styled(Typography)({\n fontWeight: 'bold',\n})\n\nconst AccountSettingsParent = () => {\n const { authData } = useContext(AuthenticationContext)\n const { user } = authData\n\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default AccountSettingsParent\n","import { IoTrashOutline } from 'react-icons/io5'\nimport { IconButton } from '@mui/material'\nimport { styled } from '@mui/system'\nimport { device } from '../../responsive'\nimport { truncText } from '../common/StringFormatters'\nimport { isMobileOnly } from 'react-device-detect'\n\nexport const TeamMemberTableRow = styled('div')({\n display: 'grid',\n gridTemplateColumns: '5fr 1fr',\n textAlign: 'left',\n padding: '0 1.5rem',\n borderBottom: '1px solid #e0e0e0',\n [`@media ${device.mobile}`]: {\n gridTemplateColumns: '1fr auto',\n padding: '0 1rem',\n },\n})\nexport const TeamTableCell = styled('div', {\n shouldForwardProp: (prop) =>\n prop !== 'centered'\n})(({ theme, centered }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: centered ? 'center' : 'flex-start',\n padding: '1.5rem 0',\n color: 'black',\n [`@media ${device.mobile}`]: {\n padding: '1rem 0',\n },\n}))\n\nconst TeamMemberRow = ({\n associate,\n deleteAssociate\n}) => {\n const handleDelete = async (associate) => {\n await deleteAssociate(associate)\n }\n\n const renderEmailAddress = () => {\n const maxChars = isMobileOnly ? 22 : 60\n\n return truncText(associate.email, maxChars)\n }\n\n return (\n \n \n {renderEmailAddress()}\n \n \n handleDelete(associate)}>\n \n \n \n \n )\n}\nexport default TeamMemberRow\n","/**\n * Shortens a given string to a specified maximum character length, appending '...' if truncated.\n *\n * @param {string} str - The string to be shortened. If null or undefined, an empty string will be returned.\n * @param {number} [maxChars=12] - The maximum number of characters for the resulting string.\n * Must be greater than or equal to 8.\n * @returns {string} - The shortened string.\n * @throws {Error} - If maxChars is less than 8.\n *\n * @example\n * shortenString('myreallylongemailthatishuge@gmail.com', 15) // Returns 'myreallylon...'\n * shortenString('short@email.com', 15) // Returns 'short@email.com'\n */\nexport const truncText = (str, maxChars = 12) => {\n if (maxChars < 8) {\n throw new Error('maxChars should be at least 8.')\n }\n\n if (!str) return \"\"\n if (str.length <= maxChars) return str\n\n return `${str.substring(0, maxChars - 3)}...`\n}\n","import { styled } from '@mui/system'\nimport TeamMemberRow from './TeamMemberRow'\nimport { TeamTableCell } from './TeamMemberRow'\nimport { device } from '../../responsive'\n\nconst TeamMemberContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n fontSize: '0.875rem',\n width: '100%',\n maxHeight: '75vh',\n boxShadow:\n '0px 2px 1px -1px rgba(0,0,0,0.2), 0px 1px 1px 0px rgba(0,0,0,0.14), 0px 1px 3px 0px rgba(0,0,0,0.12)',\n borderRadius: '4px',\n})\nconst TeamMemberTableHeader = styled('div')(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: '5fr 1fr',\n fontWeight: 'bold',\n backgroundColor: theme.palette.secondary.light,\n textAlign: 'left',\n borderTopLeftRadius: '4px',\n borderTopRightRadius: '4px',\n padding: '0 1.5rem',\n [`@media ${device.mobile}`]: {\n gridTemplateColumns: '1fr auto',\n padding: '0 1rem',\n },\n}))\nconst TeamTable = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n boxShadow:\n '0px 2px 1px -1px rgba(0,0,0,0.2), 0px 1px 1px 0px rgba(0,0,0,0.14), 0px 1px 3px 0px rgba(0,0,0,0.12)',\n borderRadius: '4px'\n})\n\nconst TeamMemberList = ({ associates, handleDeleteAssociate }) => {\n const renderAssociateRows = () => {\n return associates.map((associate, i) => (\n \n ))\n }\n\n return (\n \n \n \n Email Address\n Actions\n \n {renderAssociateRows()}\n \n \n )\n}\n\nexport default TeamMemberList\n","import { useContext } from 'react'\nimport { styled } from '@mui/material/styles'\nimport { Typography } from '@mui/material'\nimport DiamondOutlinedIcon from '@mui/icons-material/DiamondOutlined'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nconst FormSectionWrapper = styled('div', {\n shouldForwardProp: (prop) => prop !== 'lastSection',\n})(({ lastSection }) => ({\n display: 'flex',\n alignItems: 'flex-start',\n marginTop: '15px',\n marginBottom: lastSection ? '10px' : '35px',\n width: '100%',\n}))\n\nconst StepNumber = styled('div')(({ theme }) => ({\n padding: '5px 12px',\n marginRight: '15px',\n background: theme.palette.primary.main,\n color: theme.palette.base.white,\n fontWeight: 'bolder',\n fontSize: '18px',\n}))\n\nconst StepContent = styled('div')({\n width: '80%',\n})\n\nconst StepContentDescription = styled(Typography)({\n marginBottom: '10px',\n fontSize: '1.125rem',\n fontWeight: '400',\n})\n\nconst HeaderSection = styled(Typography)({\n display: 'flex',\n justifyContent: 'space-between',\n fontSize: '18px',\n fontWeight: 'bold',\n})\n\nconst SubheaderSection = styled(Typography)({\n fontSize: '16px',\n fontWeight: '200',\n})\n\nconst HeadingNote = styled('span')({\n fontSize: '1rem',\n fontWeight: '400',\n marginLeft: '6px',\n})\n\nconst HeaderTextWrapper = styled('div')({\n display: 'flex',\n alignItems: 'center',\n})\n\nconst ProFeatureIconWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'flex-start',\n marginLeft: '6px',\n color: theme.palette.secondary.main,\n div: {\n fontSize: '0.75rem',\n },\n cursor: 'pointer',\n}))\n\nconst FormSection = ({\n stepNumber,\n description,\n descriptionAction,\n heading,\n headerComponent = 'body1',\n headingNote,\n subheading,\n showProFeatureIcon,\n children,\n permissionType = null,\n lastSection = false,\n}) => {\n const { toggleUpgradeModal } = useContext(AuthenticationContext)\n\n return (\n \n {stepNumber && {stepNumber}}\n \n {heading && (\n \n \n {heading}\n {headingNote && {headingNote}}\n \n {showProFeatureIcon && (\n \n toggleUpgradeModal(\n true,\n 'Upgrade now to unlock custom configurations!',\n permissionType\n )\n }>\n \n
\n PRO\n
\n Feature\n
\n \n )}\n
\n )}\n {subheading && (\n {subheading}\n )}\n \n \n {!!descriptionAction && descriptionAction}\n \n {children}\n
\n
\n )\n}\n\nexport default FormSection\n","import { useState } from 'react'\nimport { styled } from '@mui/system'\nimport {\n DialogActions,\n DialogContent,\n DialogTitle,\n TextField,\n Button,\n CircularProgress,\n Typography,\n} from '@mui/material'\nimport FormSection from '../common/FormSection'\nimport isEmail from 'validator/lib/isEmail'\n\nconst FormDialogContent = styled(DialogContent)({\n padding: '0px',\n})\nconst FormContainer = styled('div')({\n padding: '10px 25px',\n})\nconst OrangeCircularProgress = styled(CircularProgress)({\n color: 'orange',\n})\nconst CancelButton = styled(Button)(({ theme }) => ({\n color: 'orange',\n}))\nconst SubmitButton = styled(Button)({\n backgroundColor: 'orange',\n border: '1px solid orange',\n borderRadius: '0px',\n color: 'white',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: 'orange',\n },\n})\n\nconst TeamForm = ({\n createAssociate,\n handleClose\n}) => {\n const [email, setEmail] = useState(false)\n const [isLoading, setIsLoading] = useState(false)\n const [emailError, setEmailError] = useState(null)\n const handleSubmit = async () => {\n if (!email || !isEmail(email)) {\n return setEmailError('please fill out a valid email')\n }\n\n await _createAssociate()\n }\n const _createAssociate = async () => {\n setIsLoading(true)\n await createAssociate({associate: { email: email}})\n\n setIsLoading(false)\n handleClose()\n }\n\n return (\n <>\n \n Invite Team Member\n \n \n \n \n When you invite someone, they receive full access to your account. However, they cannot access the Subscription section or view/edit your profile information.\n \n \n input && input.focus()}\n onChange={(e) => {\n setEmailError(null)\n setEmail(e.target.value)\n }}\n />\n \n \n \n \n {false ? (\n \n ) : (\n <>\n handleClose()}>\n Cancel\n \n \n Invite Team Member\n \n \n )}\n \n \n )\n}\n\nexport default TeamForm\n","import { useContext, useEffect, useState } from 'react'\nimport { styled } from '@mui/system'\nimport { Dialog, Button, IconButton } from '@mui/material'\nimport CloseIcon from '@mui/icons-material/Close'\n\nimport TeamMemberList from './TeamMemberList'\nimport TeamForm from './TeamForm'\nimport {\n AccountSettingsCard,\n AccountSettingsCardTitle,\n AccountSettingsCardColumn,\n AccountSettingsCardInner,\n} from './AccountSettingsParent'\nimport PageContainer from '../common/PageContainer'\nimport ConfirmDialog from '../common/ConfirmDialog'\n\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { usePermissionHelper } from '../../utils/permission_helper'\n\nimport './AccountSettings.scss'\n\nconst CloseIconButton = styled(IconButton)({\n position: 'absolute',\n right: 0,\n cursor: 'pointer',\n})\n\nconst TeamParent = () => {\n const [associates, setAssociates] = useState([])\n const [associatesLoading, setAssociatesLoading] = useState(false)\n const [associateFormOpen, setAssociateFormOpen] = useState(false)\n const [deleteAssociate, setDeleteAssociate] = useState(null)\n const [confirmOpen, setConfirmOpen] = useState(false)\n const { setNotification } = useContext(AuthenticationContext)\n\n const { findPermission } = usePermissionHelper()\n\n const teamPermission = findPermission('TEAMS')\n\n useEffect(() => {\n const fetchAssociates = async () => {\n try {\n setAssociatesLoading(true)\n const res = await Api.loadAssociates()\n\n if (!res.errors) {\n setAssociatesLoading(false)\n setAssociates(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n setAssociatesLoading(false)\n return setNotification(err)\n }\n }\n\n fetchAssociates()\n }, [])\n\n const handleOpenAssociateForm = (associate) => {\n setAssociateFormOpen(true)\n }\n const handleCloseAssociateForm = () => {\n setAssociateFormOpen(false)\n }\n const shouldShowAddButton = () => {\n return associates && associates.length < teamPermission.limit\n }\n const handleDeleteAssociate = async (associate) => {\n await setDeleteAssociate(associate)\n setConfirmOpen(true)\n }\n const createAssociate = async (params) => {\n try {\n const res = await Api.createAssociate(params)\n\n if (res.errors) {\n throw res.errors\n } else {\n setAssociates([...associates, res])\n setNotification('Email sent to new member!', 'success')\n }\n } catch (err) {\n setNotification(err)\n }\n }\n const handleConfirmDelete = async () => {\n if (deleteAssociate?.id) {\n try {\n const res = await Api.deleteAssociate(deleteAssociate.id)\n\n if (res.errors) {\n throw res.errors\n } else {\n const updatedAssociates = associates.filter(\n (a) => a.id !== deleteAssociate.id\n )\n setAssociates(updatedAssociates)\n setNotification(\n `${deleteAssociate.email} has been removed from your account.`,\n 'success'\n )\n setDeleteAssociate(null)\n setConfirmOpen(false)\n }\n } catch (err) {\n setNotification(err)\n setDeleteAssociate(null)\n setConfirmOpen(false)\n }\n }\n }\n const renderMemberTable = () => {\n if (associatesLoading || !associates.length) {\n return\n }\n return (\n \n \n \n )\n }\n\n return (\n \n setDeleteAssociate(null)}>\n \n Are you sure you want to revoke this individual's access to your\n account?\n \n \n handleCloseAssociateForm()}>\n handleCloseAssociateForm()}>\n \n \n \n \n \n \n Team Members\n \n {renderMemberTable()}\n \n {shouldShowAddButton() && (\n \n \n Add Team Member\n \n \n )}\n \n \n \n )\n}\n\nexport default TeamParent\n","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgArchiveIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_206_1499)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14 5.33325V13.9999H2V5.33325\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.66699 8H9.33366\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.3337 2H0.666992V5.33333H15.3337V2Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_206_1499\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArchiveIcon16X16);\nexport default __webpack_public_path__ + \"static/media/archiveIcon_16x16.9741af54.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgLeadsIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.2274 15.9994C14.2664 15.9994 15.9922 14.273 15.9922 10.2317V8.83432C15.9973 8.80433 15.9999 8.77395 16 8.74352C15.9999 8.71366 15.9973 8.68384 15.9922 8.6544V5.76717C15.9922 1.72639 14.2664 0 10.2274 0H5.76473C1.72577 0 -1.90735e-06 1.72639 -1.90735e-06 5.76717V10.2323C-1.90735e-06 14.2736 1.72577 16 5.76473 16L10.2274 15.9994ZM14.8762 10.2319C14.8762 13.6628 13.6566 14.8842 10.2274 14.8842H5.76474C2.33561 14.8842 1.11597 13.6634 1.11597 10.2319V9.30199H3.36188C3.71528 9.2977 4.03954 9.49737 4.19479 9.81488L4.85617 11.1478C5.19986 11.8434 5.90982 12.2823 6.68564 12.2789H9.31214C10.0932 12.301 10.8126 11.8563 11.1422 11.1478L11.8064 9.81541C11.962 9.49802 12.2863 9.29845 12.6398 9.30255L14.8762 9.30254V10.2319ZM12.6376 8.18593C11.8616 8.1823 11.1513 8.6213 10.8076 9.31706L10.1456 10.6494C10.0005 10.9762 9.66927 11.1801 9.31214 11.1623L6.6862 11.1623C6.33281 11.1666 6.00855 10.9669 5.85331 10.6494L5.19248 9.31425C4.84879 8.61867 4.13883 8.17972 3.36301 8.18312H1.11653V5.76448C1.11653 2.33412 2.33617 1.11219 5.7653 1.11219H10.2274C13.6566 1.11219 14.8762 2.33244 14.8762 5.76448V8.18312L12.6376 8.18593ZM9.85579 7.0721C10.1448 7.04619 10.3662 6.80399 10.3662 6.51383C10.3662 6.22366 10.1448 5.98147 9.85579 5.95555H6.13632C5.84733 5.98147 5.6259 6.22366 5.6259 6.51383C5.6259 6.80399 5.84733 7.04619 6.13632 7.0721H9.85579ZM9.23081 4.8402C9.44203 4.86059 9.64665 4.75994 9.75943 4.5802C9.87221 4.40043 9.87382 4.1724 9.76357 3.99108C9.65333 3.80976 9.45015 3.70625 9.23866 3.72365H6.76182C6.45226 3.72365 6.20132 3.9746 6.20132 4.28416C6.19883 4.59084 6.44509 4.8416 6.75173 4.84468L9.23081 4.8402Z\",\n fill: \"#323A46\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLeadsIcon16X16);\nexport default __webpack_public_path__ + \"static/media/leadsIcon_16x16.ebb49d05.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgFireIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_262_2080)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.7951 15.4803C5.94162 15.5582 6.09618 15.3895 6.00648 15.2499C5.51956 14.4921 5.05849 13.2169 5.79309 11.5746C7.01815 8.83596 7.76359 7.41753 7.76359 7.41753C7.76359 7.41753 8.16008 9.07282 9.23489 10.5446C10.2693 11.9611 10.8355 13.7426 9.92273 15.2267C9.83707 15.366 9.98813 15.5303 10.1337 15.4559C11.2636 14.8779 12.5309 13.7185 12.6739 11.4113C12.7266 10.7063 12.6475 9.7193 12.2522 8.47378C11.7438 6.8952 11.1189 6.1586 10.7573 5.84228C10.6491 5.74765 10.4809 5.83152 10.4898 5.97495C10.5951 7.67824 9.95435 8.11047 9.58962 7.13637C9.44396 6.74731 9.35901 6.07436 9.35901 5.25485C9.35901 3.89051 8.96317 2.48605 8.0905 1.34477C7.86356 1.04798 7.59802 0.770653 7.29337 0.534158C7.18307 0.448521 7.02319 0.534599 7.03329 0.673864C7.1003 1.59877 7.03959 4.24948 4.71407 7.41625C2.60552 10.3538 3.42258 12.6098 3.7125 13.2208C4.26682 14.3914 5.04001 15.0788 5.7951 15.4803Z\",\n fill: \"#323A46\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_262_2080\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 15,\n height: 15,\n fill: \"white\",\n transform: \"translate(0.5 0.5)\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFireIcon16X16);\nexport default __webpack_public_path__ + \"static/media/fireIcon_16x16.471a14f6.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgWindIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.39301 3.05995C6.54788 2.90416 6.73884 2.78904 6.94892 2.72484C7.159 2.66064 7.38169 2.64934 7.59719 2.69194C7.81269 2.73454 8.01433 2.82973 8.18418 2.96904C8.35403 3.10836 8.48682 3.28747 8.57076 3.49048C8.6547 3.69348 8.68718 3.91408 8.66532 4.13266C8.64346 4.35124 8.56793 4.56103 8.44544 4.74339C8.32296 4.92574 8.15732 5.07501 7.96325 5.17792C7.76917 5.28084 7.55268 5.3342 7.33301 5.33328H1.33301M8.39301 12.9399C8.54788 13.0957 8.73884 13.2109 8.94892 13.2751C9.159 13.3393 9.38169 13.3506 9.59719 13.308C9.81269 13.2654 10.0143 13.1702 10.1842 13.0309C10.354 12.8915 10.4868 12.7124 10.5708 12.5094C10.6547 12.3064 10.6872 12.0858 10.6653 11.8672C10.6435 11.6487 10.5679 11.4389 10.4454 11.2565C10.323 11.0742 10.1573 10.9249 9.96325 10.822C9.76917 10.7191 9.55268 10.6657 9.33301 10.6666H1.33301M11.8197 5.15328C12.0136 4.95987 12.2521 4.81722 12.5143 4.73796C12.7764 4.65869 13.0541 4.64524 13.3227 4.69881C13.5912 4.75237 13.8425 4.87129 14.0542 5.04506C14.2659 5.21883 14.4315 5.44208 14.5363 5.69508C14.6412 5.94807 14.6821 6.22301 14.6554 6.49558C14.6288 6.76815 14.5353 7.02994 14.3834 7.25781C14.2315 7.48568 14.0258 7.6726 13.7844 7.80205C13.5431 7.93149 13.2735 7.99946 12.9997 7.99995H1.33301\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWindIcon16X16);\nexport default __webpack_public_path__ + \"static/media/windIcon_16x16.20d4f925.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgMailIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 17,\n height: 16,\n viewBox: \"0 0 17 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.1777 0.888916H4.27271C2.37922 0.888916 0.844238 2.4239 0.844238 4.31739V10.7938C0.844238 12.6873 2.37922 14.2222 4.27271 14.2222H11.1777C13.0712 14.2222 14.6061 12.6873 14.6061 10.7938V4.31739C14.6061 2.4239 13.0712 0.888916 11.1777 0.888916Z\",\n stroke: \"#384455\",\n strokeWidth: 1.3,\n strokeMiterlimit: 10\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.844238 2.79346L7.72519 7.55561L14.6061 2.79346\",\n stroke: \"#384455\",\n strokeWidth: 1.3,\n strokeMiterlimit: 10\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMailIcon16X16);\nexport default __webpack_public_path__ + \"static/media/mailIcon_16x16.51a985e5.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgTableSortIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.36608 1.82349C7.68632 1.40749 8.31368 1.40749 8.63392 1.82349L11.3386 5.337C11.7436 5.86306 11.3686 6.625 10.7047 6.625H5.2953C4.63143 6.625 4.25641 5.86306 4.66137 5.337L7.36608 1.82349Z\",\n fill: \"#90D9F6\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.63392 14.6765C8.31368 15.0925 7.68632 15.0925 7.36608 14.6765L4.66137 11.163C4.25641 10.6369 4.63142 9.875 5.2953 9.875H10.7047C11.3686 9.875 11.7436 10.6369 11.3386 11.163L8.63392 14.6765Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTableSortIcon);\nexport default __webpack_public_path__ + \"static/media/tableSortIcon.9d5ee228.svg\";\nexport { ForwardRef as ReactComponent };","/**\n * Retrieves the value from an object based on a nested path.\n * @param {Object} obj - The object to retrieve the value from.\n * @param {string} path - The nested path (e.g., 'event.talkTitle').\n * @returns {*} - The value at the specified path.\n */\nconst getValueByPath = (obj, path) => {\n return path.split('.').reduce((acc, part) => acc && acc[part], obj)\n}\n\n/**\n * Comparator function for descending order.\n * @param {Object} a - First item to compare.\n * @param {Object} b - Second item to compare.\n * @param {string} orderBy - Key to compare by.\n * @returns {number} - Comparison result: negative if a < b, positive if a > b, 0 if equal.\n */\nconst descendingComparator = (a, b, orderBy) => {\n let valueA = getValueByPath(a, orderBy)\n let valueB = getValueByPath(b, orderBy)\n\n // Handle null values\n if (valueA === null && valueB === null) {\n return 0\n }\n if (valueA === null) {\n return 1\n }\n if (valueB === null) {\n return -1\n }\n\n // Convert strings to lowercase for case-insensitive comparison\n if (typeof valueA === 'string' && typeof valueB === 'string') {\n valueA = valueA.toLowerCase()\n valueB = valueB.toLowerCase()\n }\n\n // Perform comparison\n if (valueB < valueA) {\n return -1\n }\n if (valueB > valueA) {\n return 1\n }\n return 0\n}\n\n/**\n * Returns a comparator function based on the order and key to sort by.\n * @param {string} order - Sorting order: 'asc' or 'desc'.\n * @param {string} orderBy - Key to sort by.\n * @returns {function} - Comparator function.\n */\nexport const getComparator = (order, orderBy) => {\n return order === 'desc'\n ? (a, b) => descendingComparator(a, b, orderBy)\n : (a, b) => -descendingComparator(a, b, orderBy)\n}\n","import { formatDateWithTimeZone } from '../common/helpers'\nimport { getComparator } from '../../utils/sort'\nimport moment from 'moment'\n\nconst compareDates = (leadA, leadB, granularity = 'second') => {\n const dateA = moment(leadA.createdAt)\n const dateB = moment(leadB.createdAt)\n\n if (dateA.isBefore(dateB, granularity)) {\n return 1\n }\n if (dateA.isAfter(dateB, granularity)) {\n return -1\n }\n return 0\n}\n\nconst compareWarmth = (leadA, leadB) => {\n const warmthOrder = ['hot', null, undefined]\n\n const warmthA = leadA?.warmth?.toLowerCase()\n const warmthB = leadB?.warmth?.toLowerCase()\n\n if (warmthA === warmthB) return 0\n\n const indexA = warmthOrder.indexOf(warmthA)\n const indexB = warmthOrder.indexOf(warmthB)\n\n return indexA < indexB ? -1 : 1\n}\n\n/**\n * Comparator function for sorting leads by createdAt date.\n * @param {Object} a - First lead to compare.\n * @param {Object} b - Second lead to compare.\n * @param {string} order - Sorting order: 'asc' or 'desc'.\n * @returns {number} - Comparison result: Sorts by date first, then by warmth, then by date and time.\n */\nconst compareLeads = (leadA, leadB, order) => {\n const dateA = leadA?.createdAt\n const dateB = leadB?.createdAt\n\n // Handle null dates\n if (dateA === null && dateB === null) return 0\n if (dateA === null) return 1\n if (dateB === null) return -1\n\n const sortMultiplier = order === 'desc' ? 1 : -1\n\n // Compare dates by day\n const dayComparison = compareDates(leadA, leadB, 'day')\n if (dayComparison !== 0) return dayComparison * sortMultiplier\n\n // Compare warmth\n const warmthComparison = compareWarmth(leadA, leadB)\n if (warmthComparison !== 0) return warmthComparison\n\n // Compare dates by second\n return compareDates(leadA, leadB) * sortMultiplier\n}\n\n/**\n * Returns a comparator function based on the order and key to sort by.\n * Does customized sorting for leads when sorting by createdAt date\n * @param {string} order - Sorting order: 'asc' or 'desc'.\n * @param {string} orderBy - Key to sort by.\n * @returns {function} - Comparator function.\n */\nexport const getLeadsComparator = (order, orderBy) => {\n if (orderBy.toLowerCase() !== 'createdat')\n return getComparator(order, orderBy)\n\n return (a, b) => compareLeads(a, b, order)\n}\n\n// Note:\n// This is taken from an answer on stack overflow\n// https://stackoverflow.com/questions/8358084/regular-expression-to-reformat-a-us-phone-number-in-javascript\nexport const formatPhoneNumber = (phoneNumberString) => {\n var cleaned = ('' + phoneNumberString).replace(/\\D/g, '')\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\n if (match) {\n return '(' + match[1] + ') ' + match[2] + '-' + match[3]\n }\n return null\n}\n\nexport const isBookingLead = (leadTypes) => {\n return leadTypes?.join('').includes('BOOK')\n}\n\nexport const isReferLead = (leadTypes) => {\n return leadTypes?.join('').includes('REFER')\n}\n\nexport const isOptIn = (leadTypes) => {\n return leadTypes?.join('').includes('OPT_IN')\n}\n\n// A hot lead is someone who answered \"hot\" to the classification questions,\n// and filled out ALL of their contact info\nexport const isHotLead = (lead) => {\n return lead?.warmth === 'HOT'\n}\n\nexport const allLeads = (leads) => {\n return leads.filter((lead) => !lead.archived)\n}\n\nexport const referLeads = (leads) => {\n return leads.filter(\n (lead) => lead?.leadTypes.join('').includes('REFER') && !lead.archived\n )\n}\n\nexport const bookingLeads = (leads) => {\n return leads.filter(\n (lead) => lead?.leadTypes.join('').includes('BOOK') && !lead.archived\n )\n}\n\nexport const optInLeads = (leads) => {\n return leads.filter(\n (lead) => lead?.leadTypes.join('').includes('OPT_IN') && !lead.archived\n )\n}\n\nexport const feedbackLeads = (leads) => {\n return leads.filter(\n (lead) => lead?.leadTypes.join('').includes('FEEDBACK') && !lead.archived\n )\n}\n\nexport const archivedLeads = (leads) => {\n return leads.filter((lead) => lead.archived)\n}\n\nexport const allLeadsSelected = (selectedLeads, leads) => {\n return (\n leads.length > 0 &&\n ungatedLeads(leads)\n .map((lead) => lead.id)\n .every((leadId) => selectedLeads.includes(leadId))\n )\n}\n\nexport const ungatedLeads = (leads) => {\n return leads.filter((lead) => !lead.isGated)\n}\n\nexport const humanizedFollowupFailure = (\n { followupSentAt, followupFailure },\n expandedMsg = false\n) => {\n let message\n\n switch (followupFailure) {\n case 'lead invalid state: (lead.contacted || lead.deleted_at || lead.archived)':\n message = 'Skipped - lead was marked as contacted or archived'\n break\n case 'No bonus':\n message = 'Skipped - survey did not have a bonus'\n break\n case 'at subscription limit':\n message = 'Skipped - subscription limit has been reached'\n break\n case 'invalid email':\n message = 'Skipped - email address is invalid'\n break\n // Currently we don't want to show an error if the campaign is skipped for this reason\n // due to potential user confusion. If this changes, uncomment this code\n // case 'customized leadgen questions':\n // message = 'Skipped - leadgen questions for this survey were customized'\n // break\n default:\n message = followupSentAt\n ? `Post event attempt on ${formatDateWithTimeZone(\n followupSentAt\n )} failed. Email was sent but could not be delivered. `\n : 'Email was sent but could not be delivered. '\n }\n\n if (expandedMsg && !message.includes('could not be delivered')) {\n message = `Post event email ${message.toLowerCase()}`\n }\n\n return message\n}\n","import Api from '../services/api'\nimport * as Lead from '../features/leads/helpers'\nimport { ExportToCsv } from 'export-to-csv'\n\nconst cleanAttributeForCsv = (attribute) => {\n if (!attribute) {\n return ''\n }\n\n // Convert attribute to string as some attributes are coming through as numbers\n const str = String(attribute)\n\n return str\n .replace(/’/g, \"'\") // Replace curly apostrophes\n .replace(/“|”/g, '\"') // Replace curly double quotes\n .replace(/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}]/gu, '') // Remove emojis\n // .normalize('NFC') // Normalize special characters (turned off for now, if needed, uncomment)\n}\n\nconst leadHeaders = [\n 'Created At',\n 'First Name',\n 'Last Name',\n 'Talk Title',\n 'Talk Organization',\n 'Phone',\n 'Email',\n 'Organization',\n 'Job Title',\n 'Contacted',\n 'Warmth',\n 'Booking Lead?',\n 'Refer Lead?',\n 'Email Opt In?',\n 'Opportunity Details',\n]\n\nconst leadCsvOptions = (exportTitle) => {\n return {\n fieldSeparator: ',',\n quoteStrings: '\"',\n decimalSeparator: '.',\n showLabels: true,\n showTitle: false,\n title: exportTitle,\n useTextFile: false,\n useBom: true,\n useKeysAsHeaders: false,\n headers: leadHeaders,\n filename: exportTitle,\n }\n}\n\nconst serializeLeads = (leads) => {\n return leads.map((lead) => {\n return [\n lead.createdAt,\n cleanAttributeForCsv(lead.firstName),\n cleanAttributeForCsv(lead.lastName),\n cleanAttributeForCsv(makeTalkTitle(lead)),\n cleanAttributeForCsv(makeTalkOrganization(lead)),\n cleanAttributeForCsv(lead.phone),\n cleanAttributeForCsv(lead.email),\n cleanAttributeForCsv(lead.organization),\n cleanAttributeForCsv(lead.title),\n lead.contacted ? 'yes' : 'no',\n cleanAttributeForCsv(lead.warmth),\n Lead.isBookingLead(lead.leadTypes) ? 'yes' : '',\n Lead.isReferLead(lead.leadTypes) ? 'yes' : '',\n Lead.isOptIn(lead.leadTypes) ? 'yes' : '',\n cleanAttributeForCsv(lead.opportunityDetails),\n ]\n })\n}\n\nconst makeTalkTitle = (lead) => {\n return lead.event ? lead.event.talkTitle : lead.talkTitle\n}\n\nconst makeTalkOrganization = (lead) => {\n return lead.event ? lead.event.talkOrganization : lead.talkOrganization\n}\n\nexport const exportLeads = async (leads) => {\n const exportTitle = 'talkadot-leads-export'\n\n if (leads.length <= 0) {\n return {\n success: false,\n errors: 'There are no selected leads',\n }\n }\n\n const csvData = serializeLeads(leads)\n const options = leadCsvOptions(exportTitle)\n const csvExporter = new ExportToCsv(options)\n\n csvExporter.generateCsv(csvData)\n\n return { success: true }\n}\n\nexport const exportEventLeads = async ({ event, group }) => {\n const exportTitle = `talkadot-leads-export-${\n event.talkTitle ? event.talkTitle : 'unnamed-event'\n }-${event.date}`\n\n const params = {\n event_leads: {\n event_id: event.id,\n },\n }\n\n let res\n\n if (group) {\n res = await Api.fetchGroupEventLeads({\n ...params,\n group_id: group.id,\n })\n } else {\n res = await Api.fetchEventLeads(params)\n }\n\n if (!res.errors) {\n if (res?.length <= 0) {\n return {\n success: false,\n errors: 'There are no usable leads for this session',\n }\n }\n\n const csvData = serializeLeads(res)\n const options = leadCsvOptions(exportTitle)\n const csvExporter = new ExportToCsv(options)\n\n csvExporter.generateCsv(csvData)\n\n return { success: true }\n } else {\n return res.errors\n }\n}\n\nexport const exportEventRawData = async ({ event, group }) => {\n const exportTitle = `talkadot-raw-data-export-${\n event.talkTitle ? event.talkTitle : 'unnamed-event'\n }-${event.date}`\n\n const params = {\n event_answers: {\n event_id: event.id,\n },\n }\n\n let res\n\n if (group) {\n res = await Api.fetchGroupEventRawAnswers({\n ...params,\n group_id: group.id,\n })\n } else {\n res = await Api.fetchEventRawAnswers(params)\n }\n\n if (!res.errors) {\n if (res?.length <= 0) {\n return {\n success: false,\n errors: 'There are no testimonials for this session',\n }\n }\n\n const headers = [\n 'Response Identifier',\n 'Question',\n 'Answer',\n 'Name',\n 'Email',\n 'Job Title',\n 'Organization',\n 'Phone Number',\n ]\n\n const csvData = res.map((answerData) => {\n return [\n cleanAttributeForCsv(answerData.responseIdentifier),\n cleanAttributeForCsv(answerData.question),\n cleanAttributeForCsv(answerData.answer),\n cleanAttributeForCsv(answerData.name),\n cleanAttributeForCsv(answerData.email),\n cleanAttributeForCsv(answerData.title),\n cleanAttributeForCsv(answerData.organization),\n cleanAttributeForCsv(answerData.phone),\n ]\n })\n\n const options = {\n fieldSeparator: ',',\n quoteStrings: '\"',\n decimalSeparator: '.',\n showLabels: true,\n showTitle: false,\n title: exportTitle,\n useTextFile: false,\n useBom: true,\n useKeysAsHeaders: false,\n headers: headers,\n filename: exportTitle,\n }\n const csvExporter = new ExportToCsv(options)\n csvExporter.generateCsv(csvData)\n\n return { success: true }\n } else {\n return res.errors\n }\n}\n","export const GENERIC = 'Upgrade to unlock this feature.'\n","import { useState } from 'react'\nimport { styled } from '@mui/system'\nimport { Tabs, Tab, Select, MenuItem } from '@mui/material'\n\nconst StyledContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'center',\n marginBottom: theme.spacing(3),\n borderBottom: `1px solid ${theme.palette.divider}`,\n [theme.breakpoints.down('md')]: {\n borderBottom: 'none',\n justifyContent: 'flex-start',\n marginBottom: theme.spacing(1),\n },\n}))\n\nconst StyledTabswrapper = styled('div')(({ theme }) => ({\n backgroundColor: theme.palette.neutral.extraLight,\n borderRadius: theme.shape.borderRadius.xs,\n padding: theme.spacing(1),\n [theme.breakpoints.down('md')]: {\n display: 'none',\n },\n}))\n\nconst StyledTab = styled(Tab)(({ theme }) => ({\n textTransform: 'none',\n minWidth: 72,\n fontWeight: '400',\n color: theme.palette.text.disabled,\n backgroundColor: theme.palette.surface.subtle,\n marginRight: theme.spacing(1),\n borderRadius: theme.shape.borderRadius.xs,\n '&:last-child': {\n marginRight: 0,\n },\n '&.Mui-selected': {\n color: theme.palette.text.inputText,\n backgroundColor: theme.palette.base.white,\n fontWeight: '600',\n },\n '&.Mui-focusVisible': {\n backgroundColor: 'rgba(100, 95, 228, 0.32)',\n },\n}))\n\nconst SelectWrapper = styled('div')(({ theme }) => ({\n display: 'none',\n [theme.breakpoints.down('md')]: {\n display: 'block',\n },\n}))\n\nconst StyledMenuItem = styled(MenuItem)(({ theme }) => ({\n '&.Mui-selected': {\n backgroundColor: `${theme.palette.neutral.extraLight} !important`,\n },\n}))\n\n// Value is the tab index\nexport const HeaderTabs = ({ tabs, handleTabChange, value }) => (\n \n \n handleTabChange(newValue)}\n aria-label=\"Leads tabs\"\n TabIndicatorProps={{\n style: { display: 'none' },\n }}>\n {tabs.map((tab, index) => (\n \n ))}\n \n \n \n handleTabChange(e.target.value)}\n color=\"secondary\">\n {tabs.map((tab, index) => (\n \n {tab.label}\n \n ))}\n \n \n \n)\n\nconst LeadsTabs = ({ setActiveTab, setPage }) => {\n const [value, setValue] = useState(0)\n\n const tabs = [\n { name: 'all', label: 'All Contacts' },\n { name: 'booking', label: 'Booking Leads' },\n { name: 'referral', label: 'Referral Leads' },\n { name: 'email', label: 'Email Opt Ins' },\n { name: 'archived', label: 'Archived' },\n ]\n\n const handleChange = (newValue) => {\n setValue(newValue)\n\n const activeTab = tabs[newValue].name\n setActiveTab(activeTab)\n setPage(0)\n }\n\n return (\n \n )\n}\n\nexport default LeadsTabs\n","import { styled } from '@mui/system'\nimport { TableCell } from '@mui/material'\n\nconst StyledTableCell = styled(TableCell, {\n shouldForwardProp: (prop) =>\n prop !== 'color' &&\n prop !== 'textWrap' &&\n prop !== 'width' &&\n prop !== 'minWidth' &&\n prop !== 'height' &&\n prop !== 'padding' &&\n prop !== 'paddingLeft' &&\n prop !== 'displayBreakpoint' &&\n prop !== 'lastVisibleCell',\n})(\n ({\n textWrap,\n color,\n width,\n minWidth,\n height,\n padding,\n paddingLeft,\n displayBreakpoint,\n lastVisibleCell,\n fontWeight,\n theme,\n }) => ({\n color: color || '',\n textWrap: textWrap || '',\n width: width || '',\n minWidth: minWidth || '',\n height: height || '',\n padding: padding || '',\n fontWeight: fontWeight || '',\n paddingLeft: paddingLeft ? theme.spacing(paddingLeft) : '',\n borderTopRightRadius: lastVisibleCell ? theme.shape.borderRadius.xs : '',\n ...(displayBreakpoint && {\n [theme.breakpoints.down(displayBreakpoint)]: {\n display: 'none',\n },\n }),\n })\n)\n\nconst TableCellStyled = ({\n textWrap,\n color,\n align,\n width,\n minWidth,\n height,\n padding,\n paddingLeft,\n displayBreakpoint,\n lastVisibleCell,\n fontWeight,\n onClick,\n children,\n}) => {\n return (\n \n {children}\n \n )\n}\n\nexport default TableCellStyled\n","var _path, _path2, _path3, _path4, _path5;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgItemCheckedIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 18,\n height: 16,\n viewBox: \"0 0 18 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.72754 6.18591H16.273\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.67148 13.8049H4.95512C2.3733 13.8049 1.71875 13.1664 1.71875 10.6194V4.6548C1.71875 2.34731 2.25695 1.60718 4.28604 1.49108C4.48968 1.48382 4.71512 1.47656 4.95512 1.47656H13.0351C15.6169 1.47656 16.2715 2.11511 16.2715 4.66205V7.86205\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.63672 10.5397H7.54581\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.2723 11.991C16.2723 12.5352 16.1195 13.0504 15.8505 13.4858C15.3486 14.3275 14.425 14.8935 13.3632 14.8935C12.3014 14.8935 11.3778 14.3275 10.8759 13.4858C10.6068 13.0504 10.4541 12.5352 10.4541 11.991C10.4541 10.3874 11.7559 9.0885 13.3632 9.0885C14.9705 9.0885 16.2723 10.3874 16.2723 11.991Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.2305 11.9906L12.9505 12.709L14.4996 11.2795\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgItemCheckedIcon16X16);\nexport default __webpack_public_path__ + \"static/media/itemCheckedIcon_16x16.8a0c1989.svg\";\nexport { ForwardRef as ReactComponent };","import { TableSortLabel, Tooltip } from '@mui/material'\n\nimport TableCellStyled from './TableCellStyled'\n\nimport { ReactComponent as tableSortIcon } from '../../icons/tableSortIcon.svg'\n\nconst TableHeaderCellSortable = ({\n headCell,\n order,\n orderBy,\n onRequestSort,\n lastVisibleCell,\n}) => {\n return (\n \n onRequestSort(headCell.id)}\n IconComponent={tableSortIcon}>\n {headCell.tooltip ? (\n \n {headCell.label}\n \n ) : (\n headCell.label\n )}\n \n \n )\n}\n\nexport default TableHeaderCellSortable\n","import { styled } from '@mui/system'\n\nexport const drawerWidth = 272\nexport const drawerWidthCollapsed = 88\nexport const drawerWidthMobile = 0\nexport const upperNavHeight = 140\nexport const upperNavHeightMobile = 80\n\nexport const DrawerHeader = styled('div')(({ theme }) => ({\n display: 'flex',\n height: upperNavHeight,\n ...theme.mixins.toolbar,\n [theme.breakpoints.down('sm')]: {\n height: upperNavHeightMobile,\n },\n}))\n","import { useRef, useEffect, useCallback, useState } from 'react'\nimport { styled } from '@mui/system'\nimport { TableHead, TableRow, useMediaQuery, useTheme } from '@mui/material'\n\nimport TableCellStyled from './TableCellStyled'\nimport TableHeaderCellSortable from '../common/TableHeaderCellSortable'\n\nimport {\n upperNavHeight,\n upperNavHeightMobile,\n} from '../../styles/layoutNavConstants'\n\nconst StickyHeader = styled(TableHead)(({ isSticky, navHeight }) => ({\n position: 'fixed',\n top: `${navHeight}px`,\n background: 'white',\n zIndex: 10,\n boxShadow: isSticky ? '0px 2px 5px rgba(0, 0, 0, 0.1)' : 'none',\n overflow: 'hidden',\n visibility: isSticky ? 'visible' : 'hidden', // Hide if not sticky\n}))\n\nconst StyledTableHead = styled(TableHead)(({ isSticky }) => ({\n visibility: isSticky ? 'hidden' : 'visible', // Hide if sticky\n}))\n\nconst TableHeaderSortable = ({\n headCells,\n order,\n orderBy,\n onRequestSort,\n loading,\n}) => {\n const [screenWidth, setScreenWidth] = useState(window.innerWidth)\n const [colWidths, setColWidths] = useState([])\n const [isSticky, setIsSticky] = useState(false)\n const headerRef = useRef(null)\n const stickyHeaderRef = useRef(null)\n const theme = useTheme()\n\n useEffect(() => {\n const handleResize = () => {\n setScreenWidth(window.innerWidth)\n\n if (headerRef.current) {\n const thElements = headerRef.current.querySelectorAll('th')\n\n // Delay the width calculation to ensure layout has completed\n requestAnimationFrame(() => {\n const widths = Array.from(thElements)\n .filter((th) => window.getComputedStyle(th).display !== 'none') // Only include visible th elements\n .map((th) => th.getBoundingClientRect().width) // Map the width for visible elements\n\n setColWidths(widths)\n })\n }\n }\n\n // Trigger the resize function on initial render\n handleResize()\n\n // Listen to resize events\n window.addEventListener('resize', handleResize)\n\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [loading])\n\n useEffect(() => {\n if (headerRef.current && colWidths.length > 0) {\n const thElements = stickyHeaderRef.current.querySelectorAll('th')\n const filteredElements = Array.from(thElements).filter(\n (th) => window.getComputedStyle(th).display !== 'none'\n )\n\n filteredElements.forEach((th, i) => {\n // Only apply the width if the display is not 'none'\n if (window.getComputedStyle(th).display !== 'none') {\n th.style.width = `${colWidths[i]}px`\n }\n })\n }\n }, [colWidths])\n\n const getLastVisibleCellIndex = (headCells, screenWidth, theme) => {\n return headCells.reduce((acc, headCell, index) => {\n // Define breakpoints for your screen sizes\n const smBreakpoint = theme.breakpoints.values.sm // 600px\n const mdBreakpoint = theme.breakpoints.values.md // 960px\n const lgBreakpoint = theme.breakpoints.values.lg // 1280px\n\n // Skip the cell based on its displayBreakpoint and current screen width\n if (headCell.displayBreakpoint) {\n if (\n (headCell.displayBreakpoint === 'sm' && screenWidth < smBreakpoint) ||\n (headCell.displayBreakpoint === 'md' && screenWidth < mdBreakpoint) ||\n (headCell.displayBreakpoint === 'lg' && screenWidth < lgBreakpoint)\n ) {\n return acc // Skip this cell if its breakpoint is higher than the screen width\n }\n }\n\n return index\n }, 0)\n }\n\n const renderHeadCells = (lastVisibleCellIndex) => {\n return headCells.map((headCell, i) => {\n const lastVisibleCell = i === lastVisibleCellIndex\n\n if (\n headCell.id === 'checkbox' ||\n headCell.id === 'actions' ||\n headCell.id === 'code settings' ||\n headCell.id === 'leadTypes' ||\n headCell.id === 'collapse'\n ) {\n return (\n \n {headCell.label}\n \n )\n }\n\n return (\n \n )\n })\n }\n\n const navHeight = useMediaQuery(theme.breakpoints.down('sm'))\n ? upperNavHeightMobile\n : upperNavHeight\n\n // Scroll handling to determine sticky state\n const handleScroll = useCallback(() => {\n if (headerRef.current) {\n const headerElement = headerRef.current\n const headerTop = headerElement.getBoundingClientRect().top\n\n if (headerTop <= navHeight) {\n setIsSticky(true)\n } else {\n setIsSticky(false)\n }\n }\n }, [navHeight])\n\n useEffect(() => {\n const handleScrollDebounced = () => {\n window.requestAnimationFrame(handleScroll)\n }\n\n window.addEventListener('scroll', handleScrollDebounced)\n return () => {\n window.removeEventListener('scroll', handleScrollDebounced)\n }\n }, [handleScroll])\n\n const lastVisibleCellIndex = getLastVisibleCellIndex(\n headCells,\n screenWidth,\n theme\n )\n\n return (\n <>\n \n {renderHeadCells(lastVisibleCellIndex)}\n \n\n \n {renderHeadCells(lastVisibleCellIndex)}\n \n \n )\n}\n\nexport default TableHeaderSortable\n","import TableHeaderSortable from '../common/TableHeaderSortable'\n\nconst LeadsTableHeader = ({ order, orderBy, onRequestSort, loading }) => {\n const headCells = [\n { id: 'checkbox', label: '' },\n { id: 'collapse', label: '' },\n { id: 'createdAt', label: 'Date' },\n { id: 'event.talkTitle', label: 'Talk Title', displayBreakpoint: 'md' },\n { id: 'organization', label: 'Organization', displayBreakpoint: 'lg' },\n { id: 'name', label: 'Lead Name', displayBreakpoint: 'lg' },\n { id: 'email', label: 'Lead Contact' },\n // TODO: Figure out sorting for leadTypes\n {\n id: 'leadTypes',\n label: 'Type',\n displayBreakpoint: 'lg',\n align: 'center',\n },\n {\n id: 'actions',\n label: 'Actions',\n align: 'center',\n },\n ]\n\n return (\n \n )\n}\n\nexport default LeadsTableHeader\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgDisabledBadgeIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 9,\n height: 8,\n viewBox: \"0 0 9 8\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.3999 2L2.3999 6\",\n stroke: \"#DC2626\",\n strokeWidth: 0.75,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.3999 2L6.3999 6\",\n stroke: \"#DC2626\",\n strokeWidth: 0.75,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDisabledBadgeIcon);\nexport default __webpack_public_path__ + \"static/media/disabledBadgeIcon.8667006c.svg\";\nexport { ForwardRef as ReactComponent };","import { styled } from '@mui/system'\nimport { TableCell, Typography } from '@mui/material'\n\nexport const TableCellContent = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n gap: theme.spacing(1),\n}))\n\nexport const TableCellSecondaryContent = styled('div')({\n display: 'flex',\n})\n\nexport const CheckboxTableCell = styled(TableCell)({\n padding: '9px 0 9px 4px',\n width: '46px',\n})\n\nexport const SessionFromEventIcon = styled(Typography)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n padding: '20px',\n cursor: 'help',\n background: theme.palette.border.light,\n borderRadius: '50%',\n width: '24px',\n height: '24px',\n}))\n\nexport const ActionsTableCell = styled(TableCell)(({ theme }) => ({\n padding: theme.spacing(1, 2),\n width: '80px',\n svg: {\n width: '1.5rem',\n height: '1.5rem',\n },\n}))\n\nexport const TableCellPrimaryContent = styled('span')(\n ({ newItem, boldPrimary }) => ({\n fontWeight: newItem ? '700' : boldPrimary ? '600' : '400',\n })\n)\n","import { styled } from '@mui/system'\n\nimport { ReactComponent as DisabledBadge } from '../../icons/disabledBadgeIcon.svg'\n\nconst Wrapper = styled('div')({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n})\n\nconst BadgeWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n top: '-6px',\n right: '-5px',\n width: '12px',\n height: '12px',\n borderRadius: '50%',\n backgroundColor: theme.palette.error.lightest,\n}))\n\nconst DisabledBadgeIconWrapper = ({ children }) => (\n \n {children}\n \n \n \n \n)\n\nexport default DisabledBadgeIconWrapper\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgSnowFlakeIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 18,\n viewBox: \"0 0 16 18\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.00008 1.5V16.5M9.93267 3.10714C9.34942 3.45869 8.68109 3.64395 8.00008 3.64286C7.31908 3.64395 6.65075 3.45869 6.06749 3.10714M6.06749 14.8929C6.65118 14.5423 7.31922 14.3571 8.00008 14.3571C8.68094 14.3571 9.34898 14.5423 9.93267 14.8929M14.4953 5.25L1.50488 12.75M14.0694 7.72768C13.4738 7.3974 12.9794 6.91131 12.639 6.32149C12.2986 5.73167 12.1251 5.06035 12.1371 4.37946M1.93078 10.2723C2.52632 10.6026 3.02077 11.0887 3.36116 11.6785C3.70154 12.2683 3.87503 12.9396 3.86303 13.6205M1.50488 5.25L14.4953 12.75M1.93078 7.72768C2.52632 7.3974 3.02077 6.91131 3.36116 6.32149C3.70154 5.73167 3.87503 5.06035 3.86303 4.37946M14.0694 10.2723C13.4738 10.6026 12.9794 11.0887 12.639 11.6785C12.2986 12.2683 12.1251 12.9396 12.1371 13.6205\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSnowFlakeIcon16X16);\nexport default __webpack_public_path__ + \"static/media/snowFlakeIcon_16x16.6e2fa6bf.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgAiSparklesIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Icons\",\n clipPath: \"url(#clip0_7548_6653)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M6.66645 14.1573L4.50311 9.83L0.175781 7.66667L4.50311 5.50333L6.66645 1.176L8.82978 5.50333L13.1571 7.66667L8.82978 9.83L6.66645 14.1573ZM11.9998 14L12.9998 16L13.9998 14L15.9998 13L13.9998 12L12.9998 10L11.9998 12L9.99978 13L11.9998 14ZM12.8884 3.11133L13.6664 4.66667L14.4444 3.11133L15.9998 2.33333L14.4444 1.55533L13.6664 0L12.8884 1.55533L11.3331 2.33333L12.8884 3.11133Z\",\n fill: \"#1197CB\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_7548_6653\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAiSparklesIcon16X16);\nexport default __webpack_public_path__ + \"static/media/aiSparklesIcon_16x16.76560c21.svg\";\nexport { ForwardRef as ReactComponent };","import { styled, useTheme } from '@mui/system'\nimport { Typography, Tooltip } from '@mui/material'\n\nimport DisabledBadgeIconWrapper from '../common/DisabledBadgeIconWrapper'\n\nimport { ReactComponent as FireIcon } from '../../icons/fireIcon_16x16.svg'\nimport { ReactComponent as WindIcon } from '../../icons/windIcon_16x16.svg'\nimport { ReactComponent as EmailIcon } from '../../icons/mailIcon_16x16.svg'\nimport { ReactComponent as SnowFlakeIcon } from '../../icons/snowFlakeIcon_16x16.svg'\n\nimport * as Lead from './helpers'\nimport { capitalize } from '../../utils/string'\n\nconst LeadTypeIconContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n})\n\nconst StyledLeadTypeIcon = styled('div', {\n shouldForwardProp: (prop) =>\n prop !== 'color' && prop !== 'svgType' && prop !== 'extraLeftMargin',\n})(({ color, svgType, extraLeftMargin }) => ({\n display: 'flex',\n alignItems: 'center',\n // Add extra margin equal to the size of our 24x24 SVGs\n marginLeft: extraLeftMargin && '24px',\n svg: {\n path: {\n fill: svgType === 'fill' ? color : '',\n stroke: svgType === 'stroke' ? color : '',\n },\n },\n}))\n\nconst StyledTypography = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'expanded',\n})(({ expanded }) => ({\n fontWeight: expanded ? '600' : '',\n}))\n\nconst LeadTypeIcon = ({\n lead,\n expanded = false,\n typographyVariant = 'body1',\n}) => {\n const theme = useTheme()\n\n const leadTypes = lead.leadTypes || []\n\n const makeTooltipContent = (tooltipContent) => {\n return tooltipContent\n }\n\n let iconsData = []\n let type = ''\n let temperature = ''\n\n const parseLeadTypes = () => {\n if (lead.placeholder) {\n iconsData.push({\n color: theme.palette.neutral.extraLight,\n icon: ,\n svgType: 'fill',\n })\n type = 'lead'\n\n return\n }\n\n const isBookingLead = Lead.isBookingLead(leadTypes)\n const isReferLead = Lead.isReferLead(leadTypes)\n const isOptIn = Lead.isOptIn(leadTypes)\n const isFeedbackLead = leadTypes?.join('').includes('FEEDBACK')\n\n if (isBookingLead) {\n type = 'lead'\n } else if (isReferLead) {\n type = 'referral'\n } else if (isOptIn) {\n type = 'email'\n } else if (isFeedbackLead) {\n type = 'feedback'\n }\n\n if (Lead.isHotLead(lead)) {\n temperature = 'Hot'\n\n if (isBookingLead) {\n iconsData.push({\n color: theme.palette.error.semiDark,\n icon: ,\n svgType: 'fill',\n tooltip: makeTooltipContent(\n 'Hot Booking Lead - This person indicated they want to book you, filled out necessary contact information, and has a verified opportunity!'\n ),\n })\n }\n\n if (isReferLead) {\n iconsData.push({\n color: theme.palette.error.semiDark,\n icon: ,\n svgType: 'stroke',\n tooltip: makeTooltipContent(\n 'Hot Referral Lead - This person indicated they want to refer you, filled out necessary contact information, and has a verified opportunity!'\n ),\n })\n }\n }\n\n if (isOptIn) {\n iconsData.push({\n icon: ,\n tooltip: 'Opted in to receive emails',\n })\n }\n\n if (!isOptIn) {\n iconsData.push({\n icon: ,\n tooltip: isFeedbackLead\n ? 'Opted out of newsletters, but provided contact information for feedback'\n : 'Opted out of newsletters, but provided contact information for booking',\n disabled: true,\n })\n }\n }\n\n parseLeadTypes()\n\n const parseLeadTitle = (type) => {\n switch (type) {\n case 'lead':\n return `${temperature} Booking Lead`\n case 'referral':\n return `${temperature} Referral Lead`\n case 'email':\n return 'Email Opt In'\n default:\n return capitalize(type)\n }\n }\n\n const title = expanded ? parseLeadTitle(type) : capitalize(type)\n\n return (\n \n {iconsData.map((iconData, index) =>\n iconData.disabled ? (\n \n \n \n {iconData.icon}\n \n \n \n ) : (\n \n \n {iconData.icon}\n \n \n )\n )}\n \n {title}\n \n \n )\n}\n\nexport default LeadTypeIcon\n","var _path, _path2, _path3, _path4, _path5, _path6;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgEmojiIcon1(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 102,\n height: 102,\n viewBox: \"0 0 102 102\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.3199 101.42C79.3042 101.42 101.99 78.7342 101.99 50.75C101.99 22.7657 79.3042 0.0799561 51.3199 0.0799561C23.3356 0.0799561 0.649902 22.7657 0.649902 50.75C0.649902 78.7342 23.3356 101.42 51.3199 101.42Z\",\n fill: \"#E8354D\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.02 44.93C20.02 47.1 21.78 48.87 23.96 48.87H25.21C27.38 48.87 29.15 47.11 29.15 44.93C29.15 42.75 27.39 40.99 25.21 40.99H23.96C21.79 40.99 20.02 42.75 20.02 44.93Z\",\n fill: \"#701A25\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.5099 36.2599C19.7899 37.5699 19.8699 38.9999 20.6799 39.4499L29.4999 44.3099C30.3199 44.7599 31.5699 44.0699 32.2899 42.7599C33.0099 41.4499 32.9299 40.0199 32.1199 39.5699L23.2999 34.7099C22.4799 34.2599 21.2299 34.9499 20.5099 36.2699V36.2599Z\",\n fill: \"#701A25\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.4298 36.2599C82.1498 37.5699 82.0698 38.9999 81.2598 39.4499L72.4398 44.3099C71.6198 44.7599 70.3698 44.0699 69.6498 42.7599C68.9298 41.4499 69.0098 40.0199 69.8198 39.5699L78.6398 34.7099C79.4598 34.2599 80.7098 34.9499 81.4298 36.2699V36.2599Z\",\n fill: \"#701A25\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.49 44.93C73.49 47.1 75.25 48.87 77.43 48.87H78.68C80.85 48.87 82.62 47.11 82.62 44.93C82.62 42.75 80.86 40.99 78.68 40.99H77.43C75.26 40.99 73.49 42.75 73.49 44.93Z\",\n fill: \"#701A25\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.34 70.3299C65.36 70.3299 64.4199 69.7499 64.0299 68.7799C63.9 68.4799 60.6299 61.0499 51.3699 61.0499C43.3099 61.0599 38.5499 69.0099 38.4999 69.0899C37.7999 70.2799 36.2699 70.6799 35.0799 69.9899C33.8899 69.2999 33.4799 67.7699 34.1699 66.5799C34.4199 66.1499 40.3799 56.0699 51.3299 56.0499C64.0399 56.0499 68.4599 66.4399 68.6499 66.8799C69.1799 68.1599 68.5699 69.6199 67.2899 70.1399C66.9799 70.2699 66.66 70.3299 66.34 70.3299Z\",\n fill: \"#701A25\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmojiIcon1);\nexport default __webpack_public_path__ + \"static/media/emojiIcon_1.c4581a8c.svg\";\nexport { ForwardRef as ReactComponent };","import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\n\nconst RatingContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n}))\n\nconst EmojiWrapper = styled('span')(({ emojiFontSize }) => ({\n fontSize: emojiFontSize,\n}))\n\nconst StyledTypography = styled(Typography)(({ theme }) => ({\n marginLeft: theme.spacing(1),\n}))\n\nconst YesNoRating = ({\n answerValue,\n answerContent,\n emojiFontSize,\n typographyVariant,\n}) => {\n return (\n \n {answerValue?.toLowerCase().includes('yes') ? (\n 👍\n ) : (\n 👎\n )}\n \n {answerContent}\n \n \n )\n}\n\nexport default YesNoRating\n","var _path, _path2, _path3, _path4;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgEmojiIcon2(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 103,\n height: 102,\n viewBox: \"0 0 103 102\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.6597 101.42C79.644 101.42 102.33 78.7342 102.33 50.75C102.33 22.7657 79.644 0.0799561 51.6597 0.0799561C23.6755 0.0799561 0.989746 22.7657 0.989746 50.75C0.989746 78.7342 23.6755 101.42 51.6597 101.42Z\",\n fill: \"#FC7E1E\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.1497 44.93C21.1497 47.1 22.9097 48.87 25.0897 48.87H26.3397C28.5097 48.87 30.2796 47.11 30.2796 44.93C30.2796 42.75 28.5197 40.99 26.3397 40.99H25.0897C22.9197 40.99 21.1497 42.75 21.1497 44.93Z\",\n fill: \"#63320A\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74.6196 44.93C74.6196 47.1 76.3796 48.87 78.5596 48.87H79.8096C81.9796 48.87 83.7496 47.11 83.7496 44.93C83.7496 42.75 81.9896 40.99 79.8096 40.99H78.5596C76.3896 40.99 74.6196 42.75 74.6196 44.93Z\",\n fill: \"#63320A\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.6698 70.3299C65.6898 70.3299 64.7498 69.7499 64.3598 68.7799C64.2298 68.4799 60.9598 61.0499 51.6998 61.0499C43.6398 61.0599 38.8798 69.0099 38.8298 69.0899C38.1298 70.2799 36.6098 70.6799 35.4098 69.9899C34.2198 69.2999 33.8098 67.7699 34.4998 66.5799C34.7498 66.1499 40.7098 56.0699 51.6598 56.0499C64.3698 56.0499 68.7898 66.4399 68.9798 66.8799C69.5098 68.1599 68.8998 69.6199 67.6198 70.1399C67.3098 70.2699 66.9898 70.3299 66.6698 70.3299Z\",\n fill: \"#63320A\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmojiIcon2);\nexport default __webpack_public_path__ + \"static/media/emojiIcon_2.78eb7f43.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgEmojiIcon3(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 102,\n height: 103,\n viewBox: \"0 0 102 103\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.67 102.09C78.6543 102.09 101.34 79.4041 101.34 51.4199C101.34 23.4356 78.6543 0.749878 50.67 0.749878C22.6857 0.749878 0 23.4356 0 51.4199C0 79.4041 22.6857 102.09 50.67 102.09Z\",\n fill: \"#FFCE2B\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.3799 45.3499C19.3799 47.5199 21.1399 49.2899 23.3199 49.2899H24.5699C26.7399 49.2899 28.5099 47.5299 28.5099 45.3499C28.5099 43.1699 26.7499 41.4099 24.5699 41.4099H23.3199C21.1499 41.4099 19.3799 43.1699 19.3799 45.3499Z\",\n fill: \"#594208\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M72.8401 45.3499C72.8401 47.5199 74.6001 49.2899 76.7801 49.2899H78.0301C80.2001 49.2899 81.9701 47.5299 81.9701 45.3499C81.9701 43.1699 80.2101 41.4099 78.0301 41.4099H76.7801C74.6101 41.4099 72.8401 43.1699 72.8401 45.3499Z\",\n fill: \"#594208\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.4399 68.8699C57.1499 68.8699 56.8599 68.8199 56.5699 68.7099L38.1799 61.8699C36.8899 61.3899 36.2299 59.9499 36.7099 58.6599C37.1899 57.3699 38.6299 56.7099 39.9199 57.1899L58.3099 64.0299C59.5999 64.5099 60.2599 65.9499 59.7799 67.2399C59.4099 68.2499 58.4499 68.8699 57.4399 68.8699Z\",\n fill: \"#594208\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmojiIcon3);\nexport default __webpack_public_path__ + \"static/media/emojiIcon_3.1a60bea1.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgEmojiIcon4(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 102,\n height: 103,\n viewBox: \"0 0 102 103\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.67 102.09C78.6543 102.09 101.34 79.4041 101.34 51.4199C101.34 23.4356 78.6543 0.749878 50.67 0.749878C22.6857 0.749878 0 23.4356 0 51.4199C0 79.4041 22.6857 102.09 50.67 102.09Z\",\n fill: \"#ACD91A\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.3701 45.5999C19.3701 47.7699 21.1301 49.5399 23.3101 49.5399H24.5601C26.7301 49.5399 28.5001 47.7799 28.5001 45.5999C28.5001 43.4199 26.7401 41.6599 24.5601 41.6599H23.3101C21.1401 41.6599 19.3701 43.4199 19.3701 45.5999Z\",\n fill: \"#495C0B\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M72.8401 45.5999C72.8401 47.7699 74.6001 49.5399 76.7801 49.5399H78.0301C80.2001 49.5399 81.9701 47.7799 81.9701 45.5999C81.9701 43.4199 80.2101 41.6599 78.0301 41.6599H76.7801C74.6101 41.6599 72.8401 43.4199 72.8401 45.5999Z\",\n fill: \"#495C0B\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.7 73.5098C39.72 73.4898 33.75 63.4098 33.51 62.9798C32.82 61.7898 33.23 60.2598 34.42 59.5598C35.61 58.8698 37.14 59.2698 37.83 60.4698C37.92 60.6198 42.67 68.4998 50.67 68.5098C59.96 68.5098 63.22 61.0798 63.36 60.7598C63.9 59.4898 65.3601 58.8898 66.6301 59.4298C67.9001 59.9598 68.5 61.4098 67.98 62.6798C67.8 63.1198 63.38 73.5098 50.7 73.5098Z\",\n fill: \"#495C0B\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmojiIcon4);\nexport default __webpack_public_path__ + \"static/media/emojiIcon_4.38615c9d.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgEmojiIcon5(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 102,\n height: 103,\n viewBox: \"0 0 102 103\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.67 102.09C78.6543 102.09 101.34 79.4041 101.34 51.4199C101.34 23.4356 78.6543 0.749878 50.67 0.749878C22.6858 0.749878 0 23.4356 0 51.4199C0 79.4041 22.6858 102.09 50.67 102.09Z\",\n fill: \"#4ECC58\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.3701 45.5999C19.3701 47.7699 21.1301 49.5399 23.3101 49.5399H24.5601C26.7301 49.5399 28.5001 47.7799 28.5001 45.5999C28.5001 43.4199 26.7401 41.6599 24.5601 41.6599H23.3101C21.1401 41.6599 19.3701 43.4199 19.3701 45.5999Z\",\n fill: \"#1F5223\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M72.8401 45.5999C72.8401 47.7699 74.6001 49.5399 76.7801 49.5399H78.0301C80.2001 49.5399 81.9701 47.7799 81.9701 45.5999C81.9701 43.4199 80.2101 41.6599 78.0301 41.6599H76.7801C74.6101 41.6599 72.8401 43.4199 72.8401 45.5999Z\",\n fill: \"#1F5223\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.4099 57.5999C31.4099 57.5999 38.2999 73.6399 50.6699 73.6599C65.0199 73.6899 69.9299 57.5999 69.9299 57.5999H31.3999H31.4099Z\",\n fill: \"#1F5223\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmojiIcon5);\nexport default __webpack_public_path__ + \"static/media/emojiIcon_5.143a3051.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgEllipsisIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.875 9.25C3.46079 9.25 3.125 9.58579 3.125 10C3.125 10.4142 3.46079 10.75 3.875 10.75V9.25ZM3.88375 10.75C4.29796 10.75 4.63375 10.4142 4.63375 10C4.63375 9.58579 4.29796 9.25 3.88375 9.25V10.75ZM10 9.25C9.58579 9.25 9.25 9.58579 9.25 10C9.25 10.4142 9.58579 10.75 10 10.75V9.25ZM10.0087 10.75C10.423 10.75 10.7587 10.4142 10.7587 10C10.7587 9.58579 10.423 9.25 10.0087 9.25V10.75ZM16.125 9.25C15.7108 9.25 15.375 9.58579 15.375 10C15.375 10.4142 15.7108 10.75 16.125 10.75V9.25ZM16.1337 10.75C16.548 10.75 16.8837 10.4142 16.8837 10C16.8837 9.58579 16.548 9.25 16.1337 9.25V10.75ZM4 10C4 10.069 3.94404 10.125 3.875 10.125V11.625C4.77246 11.625 5.5 10.8975 5.5 10H4ZM3.875 10.125C3.80596 10.125 3.75 10.069 3.75 10H2.25C2.25 10.8975 2.97754 11.625 3.875 11.625V10.125ZM3.75 10C3.75 9.93096 3.80596 9.875 3.875 9.875V8.375C2.97754 8.375 2.25 9.10254 2.25 10H3.75ZM3.875 9.875C3.94404 9.875 4 9.93096 4 10H5.5C5.5 9.10254 4.77246 8.375 3.875 8.375V9.875ZM10.125 10C10.125 10.069 10.069 10.125 10 10.125V11.625C10.8975 11.625 11.625 10.8975 11.625 10H10.125ZM10 10.125C9.93096 10.125 9.875 10.069 9.875 10H8.375C8.375 10.8975 9.10254 11.625 10 11.625V10.125ZM9.875 10C9.875 9.93096 9.93096 9.875 10 9.875V8.375C9.10254 8.375 8.375 9.10254 8.375 10H9.875ZM10 9.875C10.069 9.875 10.125 9.93096 10.125 10H11.625C11.625 9.10254 10.8975 8.375 10 8.375V9.875ZM16.25 10C16.25 10.069 16.194 10.125 16.125 10.125V11.625C17.0225 11.625 17.75 10.8975 17.75 10H16.25ZM16.125 10.125C16.056 10.125 16 10.069 16 10H14.5C14.5 10.8975 15.2275 11.625 16.125 11.625V10.125ZM16 10C16 9.93096 16.056 9.875 16.125 9.875V8.375C15.2275 8.375 14.5 9.10254 14.5 10H16ZM16.125 9.875C16.194 9.875 16.25 9.93096 16.25 10H17.75C17.75 9.10254 17.0225 8.375 16.125 8.375V9.875ZM3.875 10.75H3.88375V9.25H3.875V10.75ZM10 10.75H10.0087V9.25H10V10.75ZM16.125 10.75H16.1337V9.25H16.125V10.75Z\",\n fill: \"#1F2937\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEllipsisIcon);\nexport default __webpack_public_path__ + \"static/media/ellipsisIcon.db2692a2.svg\";\nexport { ForwardRef as ReactComponent };","import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\n\nimport { ReactComponent as Emoji1 } from '../../icons/emojiIcon_1.svg'\nimport { ReactComponent as Emoji2 } from '../../icons/emojiIcon_2.svg'\nimport { ReactComponent as Emoji3 } from '../../icons/emojiIcon_3.svg'\nimport { ReactComponent as Emoji4 } from '../../icons/emojiIcon_4.svg'\nimport { ReactComponent as Emoji5 } from '../../icons/emojiIcon_5.svg'\n\nconst EmojiRatingContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n})\n\nconst EmojiWrapper = styled('span', {\n shouldForwardProp: (prop) => prop !== 'emojiSize',\n})(({ emojiSize }) => ({\n svg: {\n width: emojiSize,\n height: emojiSize,\n },\n}))\n\nconst StyledTypography = styled(Typography)(({ theme }) => ({\n marginLeft: theme.spacing(1),\n}))\n\nconst EmojiRating = ({ answerValue, answerText, emojiSize }) => {\n const emojiList = [\n {\n icon: ,\n value: '1',\n },\n {\n icon: ,\n value: '2',\n },\n {\n icon: ,\n value: '3',\n },\n {\n icon: ,\n value: '4',\n },\n {\n icon: ,\n value: '5',\n },\n ]\n\n const emoji = emojiList.find((e) => e.value === answerValue)\n\n return (\n \n {emoji?.icon}\n {answerText}\n \n )\n}\n\nexport default EmojiRating\n","import { styled } from '@mui/system'\nimport { CircularProgress } from '@mui/material'\n\nconst StyledLoadingSpinner = styled(CircularProgress)(({ theme }) => ({\n color: theme.palette.primary.main,\n svg: {\n marginRight: '0',\n },\n}))\n\nconst LoadingSpinner = () => {\n return \n}\n\nexport default LoadingSpinner\n","import { useState, useRef } from 'react'\nimport { styled } from '@mui/system'\n\nimport {\n Button,\n ButtonGroup,\n Paper,\n Popper,\n MenuItem,\n MenuList,\n Grow,\n ClickAwayListener,\n Tooltip,\n} from '@mui/material'\n\nimport ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown'\n\nconst StyledButton = styled(Button)(({ theme }) => ({\n svg: {\n path: {\n stroke: theme.palette.neutral.semiLight,\n },\n },\n fontWeight: '400',\n}))\n\nconst StyledPopper = styled(Popper)(({ theme }) => ({\n zIndex: 3,\n}))\n\nconst SplitButton = ({ options, variant = 'text', color = 'secondary' }) => {\n const [open, setOpen] = useState(false)\n const anchorRef = useRef(null)\n const [selectedIndex, setSelectedIndex] = useState(0)\n\n const handleClick = () => {\n options[selectedIndex].onClick()\n }\n\n const handleMenuItemClick = (event, index) => {\n setSelectedIndex(index)\n setOpen(false)\n }\n\n const handleToggle = () => {\n setOpen((prevOpen) => !prevOpen)\n }\n\n const handleClose = (event) => {\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\n return\n }\n\n setOpen(false)\n }\n\n const renderMenuItem = ({\n text,\n disabled = false,\n tooltipText,\n tooltipPlacement = 'bottom',\n index,\n }) => {\n const menuItem = (\n handleMenuItemClick(event, index)}\n disabled={disabled}>\n {text}\n \n )\n\n return tooltipText ? (\n \n
{menuItem}
\n \n ) : (\n menuItem\n )\n }\n\n return (\n <>\n \n \n {options[selectedIndex].text}\n \n \n \n \n \n \n {({ TransitionProps, placement }) => (\n \n \n \n \n {options.map((option, index) =>\n renderMenuItem({ ...option, index })\n )}\n \n \n \n \n )}\n \n \n )\n}\n\nexport default SplitButton\n","import { styled } from '@mui/system'\nconst InlineIconWrapper = styled('span')({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n verticalAlign: 'middle',\n})\n\nexport default InlineIconWrapper\n","import { useState, useEffect } from 'react'\nimport { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\nimport { LoadingButton } from '@mui/lab'\n\nimport { ReactComponent as CheckMarkIcon } from '../../icons/checkMarkIcon_16x16.svg'\nimport { ReactComponent as TrashIcon } from '../../icons/trash2Icon_16x16.svg'\nimport { ReactComponent as ArchiveIcon } from '../../icons/archiveIcon_16x16.svg'\nimport { ReactComponent as AISparklesIcon } from '../../icons/aiSparklesIcon_16x16.svg'\n\nimport * as Lead from './helpers'\nimport { formatDateWithTimeZone } from '../common/helpers'\n\nimport LeadTypeIcon from './LeadTypeIcon'\nimport YesNoRating from '../common/YesNoRating'\nimport EmojiRating from '../common/EmojiRating'\nimport LoadingSpinner from '../common/LoadingSpinner'\nimport SplitButton from '../common/SplitButton'\nimport InlineIconWrapper from '../common/InlineIconWrapper'\n\nconst Container = styled('div', {\n shouldForwardProp: (prop) => prop !== 'loading',\n})(({ loading }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: loading ? 'center' : '',\n}))\n\nconst ColumnWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n}))\n\nconst ContactInfoRow = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n}))\n\nconst LeadContactInfo = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(0.5),\n}))\n\nconst LeadName = styled(Typography)({\n fontWeight: '600',\n})\n\nconst ResponsesRow = styled('div')(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: '1fr 1fr 1fr',\n gap: theme.spacing(6.5),\n gridTemplateAreas: `\n \"ratings engagement feedback\"\n `,\n marginTop: theme.spacing(3.5),\n marginBottom: theme.spacing(1),\n '& > div:nth-child(1)': {\n gridArea: 'ratings',\n },\n '& > div:nth-child(2)': {\n gridArea: 'engagement',\n },\n '& > div:nth-child(3)': {\n gridArea: 'feedback',\n },\n [theme.breakpoints.down('md')]: {\n gridTemplateColumns: '1fr 1fr',\n gridTemplateAreas: `\n \"ratings engagement\"\n \"feedback feedback\"\n `,\n gap: theme.spacing(3),\n },\n [theme.breakpoints.down('sm')]: {\n gridTemplateColumns: '1fr',\n gridTemplateAreas: `\n \"ratings\"\n \"engagement\"\n \"feedback\"\n `,\n },\n}))\n\nconst LeadRatingsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n}))\n\nconst LeadTypeContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n}))\n\nconst StyledList = styled('ul')(({ theme }) => ({\n paddingLeft: theme.spacing(0),\n margin: 0,\n listStyleType: 'none',\n li: {\n fontSize: '0.875rem',\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n paddingLeft: '1em',\n },\n 'li::before': {\n content: '\"•\"',\n fontSize: '0.875rem',\n position: 'absolute',\n left: 0,\n top: '50%',\n transform: 'translateY(-50%)',\n },\n}))\n\nconst ColoredLi = styled('li', {\n shouldForwardProp: (prop) => prop !== 'alert',\n})(({ alert, theme }) => ({\n color: alert ? theme.palette.error.semiDark : theme.palette.neutral.main,\n '&::before': {\n color: alert ? theme.palette.error.semiDark : theme.palette.neutral.main,\n },\n}))\n\nconst FeedbackAnswerContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(3),\n}))\n\nconst FeedbackAnswerWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n}))\n\nconst FeedbackAnswerTitle = styled(Typography)(({ theme }) => ({\n fontWeight: '600',\n}))\n\nconst FeedbackAnswer = styled(Typography)(({ theme, variant }) => ({\n color:\n variant === 'secondaryBody1'\n ? theme.palette.secondary.main\n : theme.palette.neutral.main,\n}))\n\nconst ActionsRow = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: theme.spacing(1),\n}))\n\nconst StyledButton = styled(LoadingButton)(({ theme, variant, color }) => ({\n color: variant === 'contained' ? theme.palette.base.white : '',\n svg: {\n marginRight: theme.spacing(1),\n minWidth: '16px',\n path: {\n stroke:\n variant === 'contained'\n ? theme.palette.base.white\n : color === 'primary'\n ? theme.palette.primary.main\n : '',\n // strokeWidth: 1,\n },\n },\n [theme.breakpoints.down('sm')]: {\n display: 'none',\n },\n}))\n\nconst SplitButtonContainer = styled('div')(({ theme }) => ({\n display: 'none',\n [theme.breakpoints.down('sm')]: {\n display: 'block',\n },\n}))\n\nconst IntegrationTitle = styled(Typography)(({ theme }) => ({\n fontWeight: '600',\n marginBottom: theme.spacing(0.5),\n}))\n\nconst IntegrationContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n marginBottom: theme.spacing(1),\n [theme.breakpoints.down('md')]: {\n marginBottom: theme.spacing(3),\n },\n}))\n\nconst LeadsTableRowExpand = ({\n lead,\n leadSurveyData,\n leadLoading,\n leadUpdating,\n handleArchiveLead,\n handleMarkContacted,\n handleDeleteLead,\n}) => {\n const [integrationItems, setIntegrationItems] = useState([])\n\n useEffect(() => {\n setIntegrationItems(generateIntegrationItems(lead))\n }, [lead])\n\n const generateIntegrationItems = (currentLead) => {\n const {\n followupSentAt,\n followupFailure,\n speakerflowSyncedAt,\n zapierSyncedAt,\n upcomingSpeakerflowSyncTime,\n upcomingFollowupSendTime,\n } = currentLead\n\n const items = []\n\n if (followupFailure) {\n items.push({\n message: Lead.humanizedFollowupFailure(\n { followupSentAt, followupFailure },\n true\n ),\n alert: true,\n })\n }\n\n if (!followupFailure && followupSentAt) {\n items.push({\n message: `Post event email sent out on ${formatDateWithTimeZone(\n followupSentAt\n )}`,\n })\n }\n\n if (speakerflowSyncedAt) {\n items.push({\n message: `Pushed to Speakerflow as a lead on ${formatDateWithTimeZone(\n speakerflowSyncedAt\n )}`,\n })\n }\n\n if (zapierSyncedAt) {\n items.push({\n message: `Pushed to Zapier as a lead on ${formatDateWithTimeZone(\n zapierSyncedAt\n )}`,\n })\n }\n\n if (upcomingFollowupSendTime) {\n items.push({\n message: `Post event email scheduled for ${upcomingFollowupSendTime}`,\n })\n }\n\n if (upcomingSpeakerflowSyncTime) {\n items.push({\n message: `This contact is scheduled to be pushed to Speakerflow on ${upcomingSpeakerflowSyncTime}`,\n })\n }\n\n return items\n }\n\n const talkValue = leadSurveyData?.find((l) =>\n l.question_type.includes('RATING')\n )\n const talkReattend = leadSurveyData?.find((l) =>\n l.question_type.includes('REATTEND')\n )\n const talkEngagement = leadSurveyData?.filter((l) =>\n l.question_type.includes('ENGAGEMENT')\n )\n const talkTakeaways = leadSurveyData?.find((l) =>\n l.question_type.includes('TAKEAWAYS')\n )\n // Note: I ran into a case where there were multiple records with the\n // PUBLIC_FEEDBACK question_type but only had a boolean value\n const otherFeedback = leadSurveyData?.find(\n (l) => l.question_type.includes('PUBLIC_FEEDBACK') && l.text_value !== null\n )\n const improvementFeedback = leadSurveyData?.find((l) =>\n l.question_type.includes('IMPROVEMENT')\n )\n\n const renderLeadType = () => {\n const leadTypes = lead.leadTypes || []\n\n let listItems = []\n\n const isBookingLead = Lead.isBookingLead(leadTypes)\n const isReferLead = Lead.isReferLead(leadTypes)\n const isOptIn = Lead.isOptIn(leadTypes)\n\n if (isBookingLead) {\n listItems.push({ message: 'Books speakers' })\n }\n if (isReferLead) {\n listItems.push({ message: 'Knows someone who books speakers' })\n }\n\n if (Lead.isHotLead(lead)) {\n listItems.push({ message: 'Has an event in mind' })\n listItems.push({ message: 'Provided all contact info' })\n }\n if (isOptIn) {\n listItems.push({ message: 'Opted in to receive emails' })\n } else {\n listItems.push({ message: 'No to email opt-in', alert: true })\n }\n if (lead.opportunityDetails) {\n listItems.push({ message: 'Added details about the opportunity' })\n }\n\n return (\n <>\n \n \n {listItems.map((item, index) => (\n \n {item.message}\n \n ))}\n \n \n )\n }\n\n const renderFeedback = () => {\n return (\n <>\n {lead.opportunityDetails && (\n \n \n Can you share more information about this opportunity?\n \n \n {lead.opportunityDetails}\n \n\n {lead?.aiVerifiedOpportunityDetails && (\n \n \n \n {' '}\n AI Verified\n \n )}\n \n )}\n {talkTakeaways?.text_value && (\n \n \n How would you describe this talk to a friend or colleague?\n \n \n {talkTakeaways?.text_value}\n \n \n )}\n {otherFeedback?.text_value && (\n \n \n Anything else to add?\n \n \n {otherFeedback?.text_value}\n \n \n )}\n {improvementFeedback?.text_value && (\n \n \n Areas of improvement\n \n \n {improvementFeedback?.text_value}\n \n \n )}\n \n )\n }\n\n const renderIntegrationDetails = () => {\n if (integrationItems.length === 0) return\n\n return (\n \n Integration Details\n \n {integrationItems.map((item, index) => (\n \n {item.message}\n \n ))}\n \n \n )\n }\n\n const splitButtonOptions = [\n {\n text: `Mark as ${lead.contacted ? 'Uncontacted' : 'Contacted'}`,\n icon: ,\n onClick: () => handleMarkContacted(lead.id),\n },\n {\n text: lead.archived ? 'Unarchive' : 'Archive',\n icon: ,\n onClick: () => handleArchiveLead(lead.id),\n },\n {\n text: 'Delete',\n icon: ,\n onClick: () => handleDeleteLead(lead.id),\n },\n ]\n\n const renderContent = () => {\n if (leadLoading) {\n return \n }\n\n return (\n <>\n \n \n {lead.name && {lead.name}}\n {lead.title && (\n {lead.title}\n )}\n {lead.organization && (\n {lead.organization}\n )}\n {lead.email && (\n {lead.email}\n )}\n {lead.phone && (\n {lead.phone}\n )}\n \n {renderLeadType()}\n \n \n \n {talkValue?.text_value && (\n \n )}\n {talkReattend?.text_value && (\n \n )}\n \n \n {talkEngagement?.length > 0 &&\n talkEngagement.map((engagement, i) => {\n return (\n \n )\n })}\n \n {renderFeedback()}\n \n {renderIntegrationDetails()}\n \n handleMarkContacted(lead.id)}\n >\n \n Mark as {lead.contacted ? 'Uncontacted' : 'Contacted'}\n \n handleArchiveLead(lead.id)}\n >\n \n {lead.archived ? 'Unarchive' : 'Archive'}\n \n handleDeleteLead(lead.id)}\n >\n \n Delete\n \n \n \n \n \n \n )\n }\n\n return {renderContent()}\n}\n\nexport default LeadsTableRowExpand\n","import { styled, useTheme } from '@mui/system'\nimport { Typography } from '@mui/material'\n\nconst Chip = styled(\n ({ component: Component = 'span', ...otherProps }) => (\n \n ),\n {\n shouldForwardProp: (prop) =>\n prop !== 'backgroundColor' && prop !== 'sizeStyling',\n }\n)(({ backgroundColor, sizeStyling }) => ({\n padding: '4px 6px',\n background: backgroundColor,\n ...sizeStyling,\n}))\n\nconst ChipText = styled(Typography, {\n shouldForwardProp: (prop) =>\n prop !== 'textColor' &&\n prop !== 'fontWeight' &&\n prop !== 'applyStrikeThrough',\n})(({ textColor, fontWeight, applyStrikeThrough, theme }) => ({\n color: textColor,\n fontWeight: theme.fontWeights[fontWeight],\n textWrap: 'nowrap',\n textDecoration: applyStrikeThrough ? 'line-through' : 'none',\n}))\n\nconst StyledIcon = styled('span')({\n marginRight: '2px',\n verticalAlign: 'middle',\n})\n\nconst TableChip = ({\n text,\n color,\n variant = 'paragraph00',\n fontWeight = 'regular',\n size = 'small',\n applyStrikeThrough = false,\n component = 'span',\n icon = null,\n}) => {\n const theme = useTheme()\n let textColor = ''\n let backgroundColor = ''\n\n const sizing = {\n small: {\n borderRadius: theme.shape.borderRadius.xxs,\n },\n medium: {\n borderRadius: theme.shape.borderRadius.sm,\n },\n }\n\n switch (color) {\n case 'lightBlue':\n textColor = theme.palette.secondary.main\n backgroundColor = theme.palette.secondary.extraLight\n break\n case 'blue':\n textColor = theme.palette.secondary.veryDark\n backgroundColor = theme.palette.secondary.veryLight\n break\n case 'green':\n textColor = theme.palette.success.semiDark\n backgroundColor = theme.palette.success.extraLight\n break\n case 'purple':\n textColor = theme.palette.purple.main\n backgroundColor = theme.palette.purple.lightest\n break\n case 'pink':\n textColor = theme.palette.pink.main\n backgroundColor = theme.palette.pink.lightest\n break\n case 'orange':\n textColor = theme.palette.primary.main\n backgroundColor = theme.palette.primary.extraLight\n break\n case 'grey':\n textColor = theme.palette.neutral.main\n backgroundColor = theme.palette.neutral.extraLight\n break\n case 'red':\n textColor = theme.palette.error.semiDark\n backgroundColor = theme.palette.error.extraLight\n break\n default:\n textColor = theme.palette.error.main\n backgroundColor = theme.palette.secondary.extraLight\n }\n\n return (\n \n {icon && {icon}}\n \n {text}\n \n \n )\n}\n\nexport default TableChip\n","import { styled } from '@mui/system'\nimport { Tooltip } from '@mui/material'\n\nimport TableChip from '../common/TableChip'\n\nimport { formatDateWithTimeZone } from '../common/helpers'\nimport { humanizedFollowupFailure } from './helpers'\n\nconst Container = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n marginTop: theme.spacing(1),\n gap: theme.spacing(0.5),\n}))\n\nconst LeadsTags = ({ lead }) => {\n const {\n viewed,\n contacted,\n followupSentAt,\n followupFailure,\n speakerflowSyncedAt,\n zapierSyncedAt,\n upcomingSpeakerflowSyncTime,\n upcomingFollowupSendTime,\n // upcomingFollowupBonusWarning,\n } = lead\n\n const isScheduledEmail = !contacted && upcomingFollowupSendTime\n const shouldShowNewTag = !viewed\n const shouldShowEmailTag = followupSentAt || followupFailure\n const shouldShowCrmTag = zapierSyncedAt || speakerflowSyncedAt\n const shouldShowScheduledTag = upcomingSpeakerflowSyncTime || isScheduledEmail\n const shouldShowContactedTag =\n !shouldShowEmailTag &&\n !shouldShowCrmTag &&\n !shouldShowScheduledTag &&\n contacted\n\n const renderNewTag = () => (\n \n )\n\n const renderEmailTag = () => {\n let tagColor\n let toolTipText\n\n if (followupFailure) {\n toolTipText = humanizedFollowupFailure(lead)\n tagColor = 'red'\n } else {\n tagColor = 'grey'\n toolTipText = `Post event email sent out on ${formatDateWithTimeZone(\n followupSentAt\n )}`\n }\n\n return (\n \n \n \n \n \n )\n }\n\n const renderCrmTag = () => {\n let toolTipText\n\n if (zapierSyncedAt && speakerflowSyncedAt) {\n toolTipText = `Pushed to Speakerflow as a lead on ${formatDateWithTimeZone(\n speakerflowSyncedAt\n )}. Pushed to Zapier on ${formatDateWithTimeZone(zapierSyncedAt)}`\n } else if (speakerflowSyncedAt) {\n toolTipText = `Pushed to Speakerflow as a lead on ${formatDateWithTimeZone(\n speakerflowSyncedAt\n )}`\n } else {\n toolTipText = `Pushed to Zapier as a lead on ${formatDateWithTimeZone(\n zapierSyncedAt\n )}`\n }\n\n return (\n \n \n \n \n \n )\n }\n\n const renderScheduledTag = () => {\n let toolTipText\n\n if (isScheduledEmail && upcomingSpeakerflowSyncTime) {\n toolTipText = `Post event email scheduled for ${upcomingFollowupSendTime}. Speakerflow push scheduled for ${upcomingSpeakerflowSyncTime}`\n } else if (isScheduledEmail) {\n toolTipText = `Post event email scheduled for ${upcomingFollowupSendTime}`\n } else {\n toolTipText = `This contact is scheduled to be pushed to Speakerflow on ${upcomingSpeakerflowSyncTime}`\n }\n\n return (\n \n \n \n \n \n )\n }\n\n const renderContactedTag = () => (\n \n )\n\n return (\n \n {shouldShowNewTag && renderNewTag()}\n {shouldShowEmailTag && renderEmailTag()}\n {shouldShowCrmTag && renderCrmTag()}\n {shouldShowScheduledTag && renderScheduledTag()}\n {shouldShowContactedTag && renderContactedTag()}\n \n )\n}\n\nexport default LeadsTags\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgArrowLeft(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.6663 8H3.33301\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.99967 12.6667L3.33301 8.00004L7.99967 3.33337\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowLeft);\nexport default __webpack_public_path__ + \"static/media/arrowLeft.2c3b66ba.svg\";\nexport { ForwardRef as ReactComponent };","import { useState } from 'react'\nimport {\n IconButton,\n Menu,\n MenuItem,\n ListItemIcon,\n ListItemText,\n CircularProgress,\n Tooltip,\n} from '@mui/material'\n\nimport { ReactComponent as EllipisIcon } from '../../icons/ellipsisIcon.svg'\n\nconst TableActionsDropdown = ({ menuItems, onOpen, onClose }) => {\n const [anchorEl, setAnchorEl] = useState(null)\n\n const handleOpenDropdown = (e) => {\n onOpen && onOpen()\n\n setAnchorEl(e.currentTarget)\n }\n const handleCloseDropdown = () => {\n onClose && onClose()\n\n setAnchorEl(null)\n }\n const renderMenuItem = ({\n text,\n onClick,\n tooltipPlacement = 'bottom',\n disabled = false,\n tooltipText,\n icon,\n loading,\n visible,\n index,\n }) => {\n if (visible === false) return null\n\n const menuItem = (\n \n {icon && (\n \n {loading ? : icon}\n \n )}\n \n \n )\n\n return tooltipText ? (\n \n
{menuItem}
\n \n ) : (\n menuItem\n )\n }\n return (\n <>\n \n \n \n \n {menuItems.map((item, index) => {\n return renderMenuItem({ ...item, index })\n })}\n \n \n )\n}\n\nexport default TableActionsDropdown\n","import { styled } from '@mui/system'\nimport { Checkbox, FormControlLabel } from '@mui/material'\n\nconst UncheckedIcon = styled('span')(({ theme }) => ({\n borderRadius: theme.shape.borderRadius.xxs,\n width: 24,\n height: 24,\n boxShadow: `inset 0 0 0 1px ${theme.palette.border.main}, inset 0 -1px 0 ${theme.palette.border.main}`,\n backgroundColor: theme.palette.base.white,\n '.Mui-focusVisible &': {\n outline: '2px auto rgba(19,124,189,.6)',\n outlineOffset: 2,\n },\n 'input:hover ~ &': {\n backgroundColor: theme.palette.surface.subtle,\n },\n // 'input:disabled ~ &': {\n // boxShadow: 'none',\n // background:\n // theme.palette.mode === 'dark'\n // ? 'rgba(57,75,89,.5)'\n // : 'rgba(206,217,224,.5)',\n // },\n}))\n\nconst CheckedIcon = styled(UncheckedIcon)({\n '&:before': {\n display: 'block',\n width: 24,\n height: 24,\n backgroundImage:\n 'url(https://d3qvkz8495pjoq.cloudfront.net/checkMarkIcon_16x16.svg)',\n backgroundSize: '1rem 1rem',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n content: '\"\"',\n },\n})\n\nconst StyledFormControlLabel = styled(FormControlLabel)(({ theme }) => ({\n marginLeft: `-${theme.spacing(1)}`,\n}))\n\nconst CheckBoxStyled = ({\n sx,\n checked,\n onChange,\n inputProps,\n disabled,\n label,\n}) => {\n const renderCheckbox = () => {\n return (\n }\n checkedIcon={}\n />\n )\n }\n\n if (label) {\n return (\n \n )\n }\n\n return renderCheckbox()\n}\n\nexport default CheckBoxStyled\n","import { useState } from 'react'\nimport { Tooltip } from '@mui/material'\n\nconst GateToolTip = ({ children, title }) => {\n const [tooltipOpen, setTooltipOpen] = useState(false)\n const [disableTooltipInteractions, setDisableTooltipInteractions] =\n useState(false)\n\n const handleTooltipOpen = () => {\n if (disableTooltipInteractions) return\n setTooltipOpen(true)\n }\n\n const handleTooltipClose = () => {\n setTooltipOpen(false)\n }\n\n const handleChildOpen = () => {\n setDisableTooltipInteractions(true)\n handleTooltipClose()\n }\n\n const handleChildClose = () => {\n setDisableTooltipInteractions(false)\n }\n\n return (\n \n {children({\n onChildOpen: handleChildOpen,\n onChildClose: handleChildClose,\n })}\n \n )\n}\n\nexport default GateToolTip\n","import { useState, useContext } from 'react'\nimport { styled } from '@mui/system'\nimport { TableRow, TableCell, Collapse, IconButton, Box } from '@mui/material'\n\nimport { formatDate } from '../common/helpers'\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { AdminContext } from '../admin/adminContext'\n\nimport { ReactComponent as TrashIcon } from '../../icons/trash2Icon_16x16.svg'\nimport { ReactComponent as ArchiveIcon } from '../../icons/archiveIcon_16x16.svg'\nimport { ReactComponent as LeadContactedIcon } from '../../icons/itemCheckedIcon_16x16.svg'\nimport { ReactComponent as CaretDownIcon } from '../../icons/caretDown_16x16.svg'\n\nimport { ActionsTableCell, CheckboxTableCell } from '../common/TableComponents'\nimport LeadTypeIcon from './LeadTypeIcon'\nimport LeadsTableRowExpand from './LeadsTableRowExpand'\nimport LeadsTags from './LeadsTags'\nimport TableActionsDropdown from '../common/TableActionsDropdown'\nimport CheckBoxStyled from '../common/CheckBoxStyled'\nimport TableCellStyled from '../common/TableCellStyled'\nimport GateToolTip from '../common/GateTooltip'\n\nconst StyledTableRow = styled(TableRow, {\n shouldForwardProp: (prop) => prop !== 'selected' && prop !== 'isGated',\n})(({ theme, selected, isGated }) => ({\n cursor: 'pointer',\n opacity: isGated ? 0.5 : 1,\n backgroundColor: selected ? theme.palette.primary.lightest : '',\n}))\n\nconst CollapseTableRow = styled(TableRow, {\n shouldForwardProp: (prop) => prop !== 'open',\n})(({ theme, open }) => ({\n backgroundColor: theme.palette.neutral.lightest,\n td: {\n borderBottom: open\n ? `1px solid ${theme.palette.neutral.extraLight}`\n : 'none',\n },\n}))\n\nconst TableCellContent = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n})\n\nconst TableCellPrimaryContent = styled('span')(({ newItem, boldPrimary }) => ({\n fontWeight: newItem ? '700' : boldPrimary ? '600' : '400',\n}))\n\nconst TableCellSecondaryContent = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n marginTop: theme.spacing(1),\n gap: theme.spacing(1),\n}))\n\nconst StyledCaretIcon = styled(CaretDownIcon, {\n shouldForwardProp: (prop) => prop !== 'open',\n})(({ theme, open }) => ({\n transform: open ? 'rotate(180deg)' : 'rotate(0deg)',\n transition: 'transform 0.2s ease-in-out',\n path: {\n stroke: theme.palette.neutral.semiLight,\n },\n}))\n\nconst StyledBox = styled(Box)(({ theme }) => ({\n padding: theme.spacing(2, 11),\n boxShadow: `${theme.shape.boxShadow.xsInset}`,\n [theme.breakpoints.down('md')]: {\n padding: theme.spacing(2, 2),\n },\n}))\n\nconst LeadsTableRow = ({\n lead,\n handleDeleteLead,\n handleUpdateLeads,\n handleCheckboxChange,\n handleMarkAsViewed,\n selectedLeads,\n}) => {\n const [leadLoading, setLeadLoading] = useState(false)\n const [leadUpdating, setLeadUpdating] = useState(false)\n const [open, setOpen] = useState(false)\n const [leadData, setLeadData] = useState(null)\n const { setNotification } = useContext(AuthenticationContext)\n const { adminState } = useContext(AdminContext)\n\n const handleArchiveLead = async (leadId) => {\n setLeadUpdating(true)\n await handleUpdateLeads([leadId], { archived: !lead.archived })\n setLeadUpdating(false)\n }\n\n const handleMarkContacted = async (leadId) => {\n setLeadUpdating(true)\n await handleUpdateLeads([leadId], { contacted: !lead.contacted })\n setLeadUpdating(false)\n }\n\n const menuItems = [\n {\n text: 'Mark Contacted',\n icon: ,\n onClick: () => handleMarkContacted(lead.id),\n disabled: lead.isGated,\n },\n {\n text: lead.archived ? 'Unarchive Lead' : 'Archive Lead',\n icon: ,\n onClick: () => handleArchiveLead(lead.id),\n loading: leadUpdating,\n disabled: lead.isGated,\n },\n {\n text: 'Delete Lead',\n icon: ,\n onClick: () => handleDeleteLead(lead.id),\n disabled: lead.isGated,\n },\n ]\n\n const fetchLeadData = async () => {\n try {\n setLeadLoading(true)\n\n const isImpersonating = adminState?.impersonation?.isActive\n const reqParams = {\n lead: {\n is_impersonating: isImpersonating,\n },\n }\n\n const res = await Api.fetchLeadData(lead.id, reqParams)\n\n if (!res.errors) {\n setLeadData(res)\n setLeadLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setLeadLoading(false)\n setNotification(err, 'error')\n }\n }\n\n const handleOpen = () => {\n if (lead.isGated) return\n\n if (!open && !leadData) {\n handleMarkAsViewed(lead)\n fetchLeadData()\n }\n\n setOpen(!open)\n }\n\n const selected = selectedLeads.includes(lead.id)\n\n const renderRowContent = (onChildOpen = null, onChildClose = null) => {\n return (\n \n \n handleCheckboxChange(lead.id)}\n disabled={lead.isGated}\n inputProps={{ 'aria-labelledby': lead.id }}\n />\n \n \n \n \n \n \n \n \n \n {formatDate(lead.createdAt, lead.utcOffset)}\n \n \n \n \n \n \n {lead.event?.talkTitle}\n \n \n \n \n {lead.isGated ? '******' : lead.organization}\n \n \n \n \n \n {lead.isGated ? '******' : lead.name}\n \n \n {lead.isGated ? '******' : lead.title}\n \n \n \n \n \n \n {lead.isGated ? '******' : lead.email}\n \n \n {lead.isGated ? '******' : lead.phone}\n \n \n \n \n \n \n \n \n \n \n )\n }\n\n return (\n <>\n {lead.isGated ? (\n \n {({ onChildOpen, onChildClose }) =>\n renderRowContent(onChildOpen, onChildClose)\n }\n \n ) : (\n renderRowContent()\n )}\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default LeadsTableRow\n","import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\nimport ReactPlayer from 'react-player/vimeo'\n\nconst StyledHeader = styled(Typography)(({ theme }) => ({\n fontWeight: theme.fontWeights.semiBold,\n}))\n\nconst StyledHeaderWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(4),\n marginBottom: theme.spacing(2),\n}))\n\nconst CommunityLink = styled('a')(({ theme }) => ({\n color: theme.palette.secondary.main,\n fontWeight: '600',\n cursor: 'pointer',\n textDecoration: 'none',\n}))\n\nconst VideoPlayerWrapper = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n})\n\nconst StyledReactPlayer = styled(ReactPlayer)(({ theme }) => ({\n paddingBottom: theme.spacing(2),\n}))\n\nconst IframeMaxWidth = styled('div')({\n maxWidth: '640px',\n})\nconst IframeWrapper = styled('div')({\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n paddingTop: '56.25%', // keep 16:9 aspect ratio\n})\nconst StyledIframe = styled('iframe')({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n border: 'none',\n})\n\nconst HeaderComponent = ({ title }) => {\n return (\n \n {title}\n \n Want more ideas?\n \n {' '}\n Head to our Talkadot Community{' '}\n \n to hear from fellow unicorn speakers.\n \n \n )\n}\n\nexport const VideoPlayerComponent = ({ title, videoId }) => {\n return (\n \n \n \n \n )\n}\n\nexport const ResizableVideoPlayerComponent = ({ title, videoId }) => {\n return (\n <>\n \n \n \n \n \n \n \n )\n}\n","import { useState } from 'react'\nimport { styled, useTheme } from '@mui/system'\nimport { TableRow, TableCell, IconButton } from '@mui/material'\n\nimport { ReactComponent as TrashIcon } from '../../icons/trash2Icon_16x16.svg'\nimport { ReactComponent as ArchiveIcon } from '../../icons/archiveIcon_16x16.svg'\nimport { ReactComponent as LeadContactedIcon } from '../../icons/itemCheckedIcon_16x16.svg'\nimport { ReactComponent as CaretDownIcon } from '../../icons/caretDown_16x16.svg'\n\nimport { ActionsTableCell, CheckboxTableCell } from '../common/TableComponents'\nimport { VideoPlayerComponent } from '../common/VideoPlayerComponent'\nimport LeadTypeIcon from './LeadTypeIcon'\nimport TableActionsDropdown from '../common/TableActionsDropdown'\nimport CheckBoxStyled from '../common/CheckBoxStyled'\nimport TableCellStyled from '../common/TableCellStyled'\n\nconst StyledTableRow = styled(TableRow, {\n shouldForwardProp: (prop) => prop !== 'selected',\n})(({ theme, selected }) => ({\n backgroundColor: selected ? theme.palette.primary.lightest : '',\n}))\n\nconst TableCellContent = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n}))\n\nconst TableCellSecondaryContent = styled('span')(({ theme }) => ({\n marginTop: theme.spacing(1),\n}))\n\nconst StyledCaretIcon = styled(CaretDownIcon, {\n shouldForwardProp: (prop) => prop !== 'open',\n})(({ theme, open }) => ({\n transform: open ? 'rotate(180deg)' : 'rotate(0deg)',\n transition: 'transform 0.2s ease-in-out',\n path: {\n stroke: theme.palette.neutral.semiLight,\n },\n}))\n\nconst VideoTableRow = styled(TableRow)(({ theme }) => ({\n [theme.breakpoints.down('md')]: {\n display: 'none',\n },\n}))\n\nconst LeadsTableRowPlaceholder = () => {\n const [open, setOpen] = useState(false)\n const theme = useTheme()\n const color = theme.palette.neutral.light\n\n const lead = {\n placeholder: true,\n }\n\n const menuItems = [\n {\n text: 'Mark Contacted',\n icon: ,\n onClick: () => {},\n disabled: true,\n },\n {\n text: lead.archived ? 'Unarchive Lead' : 'Archive Lead',\n icon: ,\n onClick: () => {},\n loading: false,\n disabled: true,\n },\n {\n text: 'Delete Lead',\n icon: ,\n onClick: () => {},\n disabled: true,\n },\n ]\n\n const selected = false\n\n return (\n <>\n \n \n \n \n \n {}}\n aria-expanded={open}\n aria-label=\"show more\"\n disabled={true}>\n \n \n \n \n \n Jan 18, 2024\n \n \n \n Your leads will appear here\n \n \n Attendee Org\n \n \n \n Attendee Name\n \n Attendee Title\n \n \n \n \n \n attendee@email.com\n (000)000-000\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default LeadsTableRowPlaceholder\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgReferralMoneyIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.875 15.625C6.431 15.625 10.8447 16.2344 15.039 17.376C15.6448 17.5409 16.25 17.0905 16.25 16.4626V15.625M3.125 3.75V4.375C3.125 4.72018 2.84518 5 2.5 5H1.875M1.875 5V4.6875C1.875 4.16973 2.29473 3.75 2.8125 3.75H16.875M1.875 5V12.5M16.875 3.75V4.375C16.875 4.72018 17.1548 5 17.5 5H18.125M16.875 3.75H17.1875C17.7053 3.75 18.125 4.16973 18.125 4.6875V12.8125C18.125 13.3303 17.7053 13.75 17.1875 13.75H16.875M18.125 12.5H17.5C17.1548 12.5 16.875 12.7798 16.875 13.125V13.75M16.875 13.75H3.125M3.125 13.75H2.8125C2.29473 13.75 1.875 13.3303 1.875 12.8125V12.5M3.125 13.75V13.125C3.125 12.7798 2.84518 12.5 2.5 12.5H1.875M12.5 8.75C12.5 10.1307 11.3807 11.25 10 11.25C8.61929 11.25 7.5 10.1307 7.5 8.75C7.5 7.36929 8.61929 6.25 10 6.25C11.3807 6.25 12.5 7.36929 12.5 8.75ZM15 8.75H15.0062V8.75625H15V8.75ZM5 8.75H5.00625V8.75625H5V8.75Z\",\n stroke: \"#2FA439\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgReferralMoneyIcon);\nexport default __webpack_public_path__ + \"static/media/referralMoneyIcon.4ea00078.svg\";\nexport { ForwardRef as ReactComponent };","import { styled } from '@mui/system'\nimport { TablePagination, Button, Stack, Typography } from '@mui/material'\nimport { ReactComponent as ArrowLeft } from '../../icons/arrowLeft.svg'\n\nconst PaginationContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flex: 1,\n justifyContent: 'space-between',\n alignItems: 'center',\n marginTop: theme.spacing(2),\n button: {\n backgroundColor: theme.palette.base.white,\n },\n}))\n\nconst BackButton = styled(Button)(({ theme, disabled }) => ({\n svg: {\n marginRight: theme.spacing(1),\n path: {\n stroke: disabled ? theme.palette.action.disabled : '',\n },\n },\n [theme.breakpoints.down('md')]: {\n svg: {\n marginRight: 0,\n },\n '& .button-text': {\n display: 'none',\n },\n },\n}))\n\nconst NextButton = styled(Button)(({ theme, disabled }) => ({\n svg: {\n transform: 'rotate(180deg)',\n marginLeft: theme.spacing(1),\n path: {\n stroke: disabled ? theme.palette.action.disabled : '',\n },\n },\n [theme.breakpoints.down('md')]: {\n svg: {\n marginLeft: 0,\n },\n '& .button-text': {\n display: 'none',\n },\n },\n}))\n\nconst PageCounter = styled(Typography)(({ theme }) => ({\n fontWeight: 600,\n color: theme.palette.text.navText,\n}))\n\nconst TablePaginationFooter = ({\n rows,\n rowsPerPage,\n page,\n handleChangePage,\n}) => {\n const handlePrevButtonClick = () => {\n handleChangePage(page - 1)\n window.scrollTo(0, 0)\n }\n\n const handleNextButtonClick = () => {\n handleChangePage(page + 1)\n window.scrollTo(0, 0)\n }\n\n return (\n null}\n ActionsComponent={() => (\n \n \n \n Previous\n \n \n {`Page ${page + 1} of ${\n rows.length > 0 ? Math.ceil(rows.length / rowsPerPage) : 1\n }`}\n \n = Math.ceil(rows.length / rowsPerPage) - 1}>\n Next\n \n \n \n )}\n />\n )\n}\n\nexport default TablePaginationFooter\n","import { useEffect, useState } from 'react'\nimport {\n Paper,\n Table,\n TableContainer,\n TableBody,\n TableRow,\n TableCell,\n Skeleton,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\n\nimport LeadsTableHeader from './LeadsTableHeader'\nimport LeadsTableRow from './LeadsTableRow'\nimport LeadsTableRowPlaceholder from './LeadsTableRowPlaceholder'\nimport TablePaginationFooter from '../common/TablePaginationFooter'\n\nimport { getLeadsComparator } from './helpers'\n\nconst LeadsTable = ({\n leads,\n loading,\n handleDeleteLead,\n handleUpdateLeads,\n handleCheckboxChange,\n handleMarkAsViewed,\n selectedLeads,\n page,\n setPage,\n}) => {\n // const [rowsPerPage, setRowsPerPage] = useState(5)\n const [order, setOrder] = useState('desc')\n const [orderBy, setOrderBy] = useState('createdAt')\n const [visibleRows, setVisibleRows] = useState([])\n\n const theme = useTheme()\n const isLargeScreen = useMediaQuery(theme.breakpoints.down('lg'))\n const isMediumScreen = useMediaQuery(theme.breakpoints.down('md'))\n\n const rowsPerPage = 25\n\n useEffect(() => {\n setVisibleRows(\n leads\n .slice()\n .sort(getLeadsComparator(order, orderBy))\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n )\n }, [leads, page, rowsPerPage, order, orderBy])\n\n const handleChangePage = (newPage) => {\n setPage(newPage)\n }\n\n const emptyRows =\n page > 0 ? Math.max(0, (1 + page) * rowsPerPage - leads.length) : 0\n\n let skeletonColumns = 6\n if (isLargeScreen) {\n skeletonColumns = 3\n } else if (isMediumScreen) {\n skeletonColumns = 2\n }\n\n const renderLoadingSkeleton = () =>\n Array.from({ length: 3 }).map((_, index) => (\n \n \n \n {Array.from({ length: skeletonColumns }).map((_, cellIndex) => (\n \n \n \n ))}\n \n \n ))\n\n const handleRequestSort = (property) => {\n const isAsc = orderBy === property && order === 'asc'\n setOrder(isAsc ? 'desc' : 'asc')\n setOrderBy(property)\n }\n\n const renderTableRows = () => {\n if (loading) {\n return renderLoadingSkeleton()\n }\n\n if (visibleRows.length === 0) {\n return \n }\n\n return visibleRows.map((lead) => (\n \n ))\n }\n\n return (\n <>\n \n \n \n \n {renderTableRows()}\n {emptyRows > 0 && (\n \n \n \n )}\n \n
\n
\n \n \n )\n}\n\nexport default LeadsTable\n","import { useContext } from 'react'\nimport { styled } from '@mui/system'\nimport { Typography, Button } from '@mui/material'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nimport { ReactComponent as UpgradeIcon } from '../../icons/upgradeIcon.svg'\n\nconst Container = styled('div')(({ theme }) => ({\n position: 'relative',\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-around',\n backgroundColor: theme.palette.base.white,\n borderRadius: theme.shape.borderRadius.sm,\n padding: theme.spacing(2.5, 1.5),\n marginBottom: theme.spacing(4.5),\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n },\n}))\n\nconst StatItemContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n position: 'relative',\n flex: 1,\n}))\n\nconst StatItemWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 1,\n padding: theme.spacing(0, 1),\n [theme.breakpoints.down('sm')]: {\n padding: theme.spacing(1),\n },\n}))\n\nconst StatItemIcon = styled('div', {\n shouldForwardProp: (prop) => prop !== 'svgType',\n})(({ theme, svgType }) => ({\n marginBottom: theme.spacing(1),\n svg: {\n width: '36px',\n height: '36px',\n path: {\n fill: svgType === 'fill' ? theme.palette.neutral.light : '',\n stroke: svgType === 'stroke' ? theme.palette.neutral.light : '',\n },\n },\n [theme.breakpoints.down('md')]: {\n svg: {\n width: '24px',\n height: '24px',\n },\n },\n}))\n\nconst StatItemValue = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'useErrorFontColor',\n})(({ theme, useErrorFontColor }) => ({\n color: !useErrorFontColor\n ? theme.palette.text.navText\n : theme.palette.error.main,\n marginBottom: theme.spacing(1),\n [theme.breakpoints.down('md')]: {\n fontSize: '1.5rem',\n },\n}))\n\nconst StatItemLabel = styled(Typography)(({ theme }) => ({\n textAlign: 'center',\n color: theme.palette.text.disabled,\n}))\n\nconst UpgradeButton = styled(Button)(({ theme }) => ({\n marginTop: theme.spacing(1),\n svg: {\n minWidth: '14px',\n marginRight: theme.spacing(1),\n path: {\n stroke: theme.palette.secondary.main,\n },\n },\n}))\n\nconst Divider = styled('div')(({ theme }) => ({\n '&::before': {\n content: '\"\"',\n display: 'block',\n width: '1px',\n height: '100%',\n backgroundColor: theme.palette.border.light,\n },\n [theme.breakpoints.down('sm')]: {\n '&::before': {\n display: 'none',\n },\n },\n}))\n\nconst StatsSummaryHeader = ({ statItems }) => {\n const { toggleUpgradeModal } = useContext(AuthenticationContext)\n\n return (\n \n {statItems?.map((item, index) => (\n \n \n {item.icon}\n \n {item.value}\n \n {item.label}\n {item.showUpgradeButton && (\n \n toggleUpgradeModal(true, item.upgradeButtonText)\n }>\n \n {item.upgradeButtonText}\n \n )}\n \n {index < statItems.length - 1 && }\n \n ))}\n \n )\n}\n\nexport default StatsSummaryHeader\n","import { styled } from '@mui/system'\nimport { Button, Typography, Tooltip } from '@mui/material'\n\nimport CheckBoxStyled from './CheckBoxStyled'\nimport SplitButton from './SplitButton'\n\nconst ActionsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: theme.spacing(2),\n [theme.breakpoints.down('md')]: {\n // flexDirection: 'column-reverse',\n // alignItems: 'flex-start',\n },\n}))\n\nconst BulkActionsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingLeft: theme.spacing(0.5),\n}))\n\nconst SelectedCount = styled(Typography)(({ theme }) => ({\n fontWeight: '600',\n marginRight: theme.spacing(1),\n [theme.breakpoints.down('sm')]: {\n display: 'none',\n },\n}))\n\nconst BulkActionsButtons = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n flex: '1',\n [theme.breakpoints.down('md')]: {\n display: 'none',\n },\n}))\n\nconst BulkActionsButton = styled(Button)(({ theme }) => ({\n svg: {\n path: {\n stroke: theme.palette.neutral.semiLight,\n },\n },\n fontWeight: '400',\n}))\n\nconst SplitButtonContainer = styled('div')(({ theme }) => ({\n display: 'none',\n [theme.breakpoints.down('md')]: {\n display: 'block',\n },\n}))\n\nconst CtaContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n [theme.breakpoints.down('md')]: {\n // width: '100%',\n // marginBottom: theme.spacing(1),\n },\n}))\n\nexport const StyledButton = styled(Button)(({ theme }) => ({\n color: theme.palette.base.white,\n svg: {\n marginRight: theme.spacing(1),\n minWidth: '16px',\n },\n [theme.breakpoints.down('md')]: {\n minWidth: '50px',\n height: '50px',\n paddingLeft: '8px',\n paddingRight: '8px',\n svg: {\n marginRight: 0,\n },\n '& .button-text': {\n display: 'none',\n },\n },\n}))\n\nconst renderCtaButton = ({\n onClick,\n text,\n icon,\n disabled = false,\n tooltipText,\n tooltipPlacement = 'bottom',\n}) => {\n const button = (\n \n {icon && icon}\n {text}\n \n )\n\n return tooltipText ? (\n \n
{button}
\n
\n ) : (\n button\n )\n}\n\nconst renderActionButton = ({ text, icon, onClick, disabled, tooltipText }) => {\n const button = (\n \n {text}\n \n )\n\n return tooltipText ? (\n \n
{button}
\n \n ) : (\n button\n )\n}\n\nconst TableActions = ({\n showCta = true,\n ctaOpts = {},\n showBulkActions = false,\n selectedItems,\n allSelected,\n handleSelectAllChange,\n bulkActions,\n}) => {\n return (\n \n \n {showBulkActions && (\n <>\n \n \n {selectedItems?.length} selected\n \n \n {bulkActions.map((action) => renderActionButton(action))}\n \n \n \n \n \n )}\n \n {showCta && renderCtaButton(ctaOpts)}\n \n )\n}\n\nexport default TableActions\n","import { styled } from '@mui/system'\n\nexport const LinkSpan = styled('span')(({ theme }) => ({\n color: theme.palette.secondary.main,\n textDecoration: 'underline',\n cursor: 'pointer',\n transition: theme.transitions.create('color', {\n duration: theme.transitions.duration.short,\n easing: theme.transitions.easing.easeInOut,\n }),\n '&:hover': {\n textDecoration: 'none',\n color: theme.palette.secondary.dark,\n },\n}))\n","import { useContext, useEffect, useState } from 'react'\nimport { styled, useTheme } from '@mui/system'\nimport { useMediaQuery } from '@mui/material'\nimport { Link } from 'react-router-dom'\n\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { AdminContext } from '../admin/adminContext'\n\nimport { ReactComponent as DownloadIcon } from '../../icons/downloadIcon_16x16.svg'\nimport { ReactComponent as TrashIcon } from '../../icons/trash2Icon_16x16.svg'\nimport { ReactComponent as ArchiveIcon } from '../../icons/archiveIcon_16x16.svg'\nimport { ReactComponent as LeadsIcon } from '../../icons/leadsIcon_16x16.svg'\nimport { ReactComponent as FireIcon } from '../../icons/fireIcon_16x16.svg'\nimport { ReactComponent as WindIcon } from '../../icons/windIcon_16x16.svg'\nimport { ReactComponent as EmailIcon } from '../../icons/mailIcon_16x16.svg'\n\nimport { usePermissionHelper, LEADS_LIMIT } from '../../utils/permission_helper'\nimport { useBillingRedirect } from '../../hooks/useBillingRedirect'\nimport { exportLeads } from '../../utils/exportCsv'\nimport { processWithFallback } from '../common/helpers'\nimport * as Lead from './helpers'\n\nimport { GENERIC as UPGRADE_MESSAGE } from '../../constants/messages/upgrade'\n\nimport LeadsTabs from './LeadsTabs'\nimport LeadsTable from './LeadsTable'\nimport PageContainer from '../common/PageContainer'\nimport PageHeader from '../common/PageHeader'\nimport StatsSummaryHeader from '../common/StatsSummaryHeader'\nimport TableActions from '../common/TableActions'\nimport ConfirmDialog from '../common/ConfirmDialog'\nimport InlineIconWrapper from '../common/InlineIconWrapper'\nimport { Notification } from '../common/Notification'\nimport WebinarAlert from '../helpCenter/WebinarAlert'\nimport { LinkSpan } from '../common/LinkSpan'\n\nconst StyledDownloadIcon = styled(DownloadIcon)(({ theme }) => ({\n path: {\n stroke: theme.palette.base.white,\n },\n}))\n\nconst RedFireIcon = styled(FireIcon)(({ theme }) => ({\n path: {\n fill: theme.palette.error.semiDark,\n },\n}))\n\nconst RedWindIcon = styled(WindIcon)(({ theme }) => ({\n path: {\n stroke: theme.palette.error.semiDark,\n },\n}))\n\nconst LeadsParent = () => {\n const [leads, setLeads] = useState([])\n const [allLeads, setAllLeads] = useState([])\n const [loading, setLoading] = useState(true)\n const [activeTab, setActiveTab] = useState('all')\n const [page, setPage] = useState(0)\n const [selectedLeads, setSelectedLeads] = useState([])\n const [confirmOpen, setConfirmOpen] = useState(false)\n\n const {\n authData: { user },\n setNotification,\n updatePermission,\n updateCounter,\n } = useContext(AuthenticationContext)\n const { adminState } = useContext(AdminContext)\n const { canDownloadLeads } = usePermissionHelper()\n const redirectToBilling = useBillingRedirect()\n const theme = useTheme()\n const isMediumScreen = useMediaQuery(theme.breakpoints.down('md'))\n const { findPermission, onPaidPlan } = usePermissionHelper()\n const leadsPermissionData = findPermission(LEADS_LIMIT)\n const { consumedPercentage, limit, isBelowLimit, unlimitedUsage } =\n leadsPermissionData\n const reachedLeadsAlertThreshold = consumedPercentage() >= 90\n const { plan, isTrialing, shouldShowUpgrades } = user.membership\n\n useEffect(() => {\n const fetchLeads = async () => {\n try {\n const res = await Api.loadAllLeads()\n\n if (!res.errors) {\n setAllLeads(res.leads)\n setLeads(res.leads)\n\n // Update permission values for upgrade widget\n const leadsLimitPermission = res.leadsLimitPermission\n updatePermission(leadsLimitPermission)\n\n setLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setLoading(false)\n setNotification(err)\n }\n }\n\n fetchLeads()\n }, [])\n\n useEffect(() => {\n switch (activeTab) {\n case 'all':\n setLeads(Lead.allLeads(allLeads))\n break\n case 'booking':\n setLeads(Lead.bookingLeads(allLeads))\n break\n case 'referral':\n setLeads(Lead.referLeads(allLeads))\n break\n case 'email':\n setLeads(Lead.optInLeads(allLeads))\n break\n case 'archived':\n setLeads(Lead.archivedLeads(allLeads))\n break\n default:\n setLeads(allLeads)\n }\n }, [activeTab, allLeads])\n\n useEffect(() => {\n if (!loading) {\n const updatedCount = allLeads.filter((event) => !event.viewed).length\n\n updateCounter({ unviewedLeads: updatedCount })\n }\n }, [allLeads, loading])\n\n // filter selected leads to only include selected leads that correspond to the current tab\n const filteredSelectedLeads = selectedLeads.filter((leadId) =>\n leads.find((lead) => lead.id === leadId)\n )\n\n const handleUpdateLeads = async (\n leadsToUpdate,\n updateParams,\n clearSelected = false,\n suppressNotification = false\n ) => {\n try {\n const params = {\n lead: {\n ids: leadsToUpdate,\n ...updateParams,\n },\n }\n\n const res = await Api.updateLeads(params)\n\n if (!res.errors) {\n !suppressNotification && setNotification('Lead Updated!', 'success')\n setAllLeads(\n allLeads.map((lead) =>\n leadsToUpdate.includes(lead.id)\n ? { ...lead, ...updateParams }\n : { ...lead }\n )\n )\n clearSelected && setSelectedLeads([])\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err, 'error')\n }\n }\n\n const confirmDeleteLeads = async () => {\n try {\n const params = {\n lead: {\n ids: filteredSelectedLeads,\n },\n }\n\n const res = await Api.deleteLeads(params)\n\n if (!res.errors) {\n setNotification('Lead Deleted!', 'success')\n setAllLeads(allLeads.filter((lead) => !selectedLeads.includes(lead.id)))\n setSelectedLeads([])\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err, 'error')\n setSelectedLeads([])\n }\n }\n\n const massMarkAsViewed = async (viewedLeads) => {\n const leadsToUpdate = viewedLeads.filter((lead) => !lead.viewed)\n\n if (leadsToUpdate.length === 0) return\n\n const leadIds = leadsToUpdate.map((lead) => lead.id)\n\n await handleUpdateLeads(leadIds, { viewed: true }, false, true)\n }\n\n const cancelDeleteLeads = () => {\n setSelectedLeads([])\n }\n\n const handleDeleteLead = (leadId) => {\n if (leadId) {\n const idsToDelete = [leadId]\n\n setSelectedLeads(idsToDelete)\n setConfirmOpen(true)\n }\n }\n\n const handleCheckboxChange = (leadId) => {\n if (selectedLeads.includes(leadId)) {\n setSelectedLeads(selectedLeads.filter((id) => id !== leadId))\n } else {\n setSelectedLeads([...selectedLeads, leadId])\n }\n }\n\n const handleSelectAllChange = () => {\n if (selectedLeads.length === Lead.ungatedLeads(leads).length) {\n setSelectedLeads([])\n } else {\n setSelectedLeads(Lead.ungatedLeads(leads).map((lead) => lead.id))\n }\n }\n\n const handleDownloadSelectedLeads = async () => {\n const selectedUngatedLeads = leads\n .filter((lead) => selectedLeads.includes(lead.id))\n .filter((lead) => !lead.isGated)\n\n exportLeads(selectedUngatedLeads)\n\n // clear selected leads on current tab\n setSelectedLeads(\n selectedLeads.filter(\n (leadId) => !leads.map((lead) => lead.id).includes(leadId)\n )\n )\n\n if (adminState?.impersonation?.isActive) return\n\n massMarkAsViewed(selectedUngatedLeads)\n }\n\n // No api call necessary, lead is marked as viewed during the get request\n const handleMarkAsViewed = (lead) => {\n if (lead.viewed || adminState?.impersonation?.isActive) return\n\n const updatedLeads = allLeads.map((l) => {\n if (l.id === lead.id) {\n return { ...l, viewed: true }\n }\n return l\n })\n\n setAllLeads(updatedLeads)\n }\n\n const statsSummaryItems = [\n {\n label: 'All Types',\n value: processWithFallback(allLeads?.length),\n icon: ,\n svgType: 'fill',\n useErrorFontColor: !unlimitedUsage && !isBelowLimit(),\n },\n {\n label: 'Total Leads',\n value: processWithFallback(Lead.bookingLeads(allLeads)?.length),\n icon: ,\n svgType: 'fill',\n },\n {\n label: 'Total Referrals',\n value: processWithFallback(Lead.referLeads(allLeads)?.length),\n icon: ,\n svgType: 'stroke',\n },\n {\n label: 'Total Emails',\n value: processWithFallback(Lead.optInLeads(allLeads)?.length),\n icon: ,\n svgType: 'stroke',\n },\n ]\n\n const bulkArchiveHandler = () => {\n if (activeTab === 'archived') {\n return () =>\n handleUpdateLeads(filteredSelectedLeads, { archived: false }, true)\n }\n\n return () =>\n handleUpdateLeads(\n filteredSelectedLeads,\n { archived: true, viewed: true },\n true\n )\n }\n\n const bulkArchiveText = () => {\n if (activeTab === 'archived') {\n return 'Unarchive Selected'\n }\n\n return 'Archive Selected'\n }\n\n const bulkActions = [\n {\n text: isMediumScreen ? 'Delete' : 'Delete Selected',\n icon: ,\n onClick: () => setConfirmOpen(true),\n disabled: !filteredSelectedLeads?.length,\n },\n {\n text: isMediumScreen\n ? bulkArchiveText().split(' ')[0]\n : bulkArchiveText(),\n icon: ,\n onClick: bulkArchiveHandler(),\n disabled: !filteredSelectedLeads?.length,\n },\n {\n text: isMediumScreen ? 'Download' : 'Download Selected',\n icon: ,\n onClick: handleDownloadSelectedLeads,\n tooltipText: !canDownloadLeads() && UPGRADE_MESSAGE,\n disabled: !canDownloadLeads() || !filteredSelectedLeads?.length,\n },\n ]\n\n const showConsumptionAlert = () => {\n if (loading) {\n return false\n }\n\n if (!onPaidPlan()) {\n return true\n }\n\n if (!unlimitedUsage && shouldShowUpgrades && reachedLeadsAlertThreshold) {\n return true\n }\n\n return false\n }\n\n const showUpgradeButton =\n isTrialing || (!unlimitedUsage && shouldShowUpgrades)\n\n return (\n \n \n \n {!loading && isTrialing && (\n <>\n \n You are currently on a free trial of {plan.name} which has a contact\n limit of {unlimitedUsage ? 'unlimited' : limit}.{' '}\n \n redirectToBilling({ accessMethod: 'notification' })\n }>\n Upgrade\n {' '}\n to keep this limit before your trial ends!\n \n \n )}\n {showConsumptionAlert() && (\n <>\n \n You are limited to {limit} contacts of any type on your plan.{' '}\n \n redirectToBilling({ accessMethod: 'notification' })\n }>\n Upgrade\n {' '}\n to unlock more contacts.\n \n {!isBelowLimit() && (\n \n Your old contacts are still available. Just scroll past your new\n contacts to see them.\n \n )}\n \n )}\n {!loading && (\n <>\n \n Your leads are all AI scored for quality! Only AI verified hot leads\n will have a{' '}\n \n \n {' '}\n or{' '}\n \n \n {' '}\n icon.\n
\n \n Click here to learn more.\n \n
\n \n )}\n \n \n \n \n 1 ? 's' : '') + '?'}\n open={confirmOpen}\n setOpen={setConfirmOpen}\n onConfirm={confirmDeleteLeads}\n onCancel={cancelDeleteLeads}\n buttonText=\"Delete\">\n \n {'Are you sure you want to delete' +\n (selectedLeads.length > 1 ? ' these leads' : ' this lead') +\n '?'}\n \n \n
\n )\n}\n\nexport default LeadsParent\n","import { styled } from '@mui/system'\nimport { Typography, Button } from '@mui/material'\n\nexport const FormFieldContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'noBottomMargin',\n})(({ theme, noBottomMargin }) => ({\n display: 'flex',\n flexDirection: 'row',\n margin: noBottomMargin ? '10px 0 0 0' : '10px 0',\n alignItems: 'center',\n p: {\n minWidth: '100px',\n },\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n alignItems: 'flex-start',\n },\n}))\n\nexport const FormLabel = ({ label }) => (\n \n {label}\n \n)\n\nexport const SendTestEmailButton = styled(Button)(({ theme }) => ({\n display: 'flex',\n padding: '12px 30px 12px 26px',\n color: theme.palette.base.white,\n}))\n","import { useState } from 'react'\nimport { Notification } from './Notification'\nimport { Collapse } from '@mui/material'\n\nconst FormFieldError = ({ errorMsg, allowClose, warningVariant }) => {\n const [open, setOpen] = useState(true)\n return (\n \n setOpen(false) : null}>\n {errorMsg}\n \n \n )\n}\n\nexport default FormFieldError\n","import { styled } from '@mui/system'\n\nimport FormFieldError from './FormFieldError'\n\nconst Container = styled('div', {\n shouldForwardProp: (prop) =>\n prop !== 'marginTop' && prop !== 'containerHeight',\n})(({ marginTop, containerHeight }) => ({\n display: 'flex',\n flexDirection: 'column',\n marginTop: marginTop || 0,\n height: containerHeight || '100%',\n width: '100%',\n}))\n\nconst InputContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n border: `1px solid ${theme.palette.border.main}`,\n borderRadius: theme.shape.borderRadius.xxs,\n}))\n\nconst InputWrapper = styled('div')(({ theme, canEdit }) => ({\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n height: '100%',\n backgroundColor: canEdit\n ? theme.palette.base.white\n : theme.palette.surface.subtle,\n borderRadius: theme.shape.borderRadius.xxs,\n}))\n\nexport const TextInput = styled('input')(({ theme }) => ({\n width: '100%',\n transition: '300ms all ease-in-out',\n fontFamily: 'Figtree, sans-serif',\n fontWeight: '400',\n fontSize: '0.875rem',\n border: 'none',\n position: 'relative',\n backgroundColor: 'transparent',\n color: theme.palette.neutral.main,\n textOverflow: 'ellipsis',\n padding: '1px 10px',\n height: '100%',\n minHeight: '48px',\n outline: 'none',\n borderRadius: theme.shape.borderRadius.xxs,\n '&:focus': {\n outline: `1px solid ${theme.palette.secondary.main}`,\n },\n '&::placeholder': {\n color: theme.palette.neutral.light,\n opacity: '50%',\n },\n}))\n\nconst ErrorContainer = styled('div')({\n marginTop: '10px'\n})\n\nconst InputSection = ({\n canEdit= true,\n showError = false,\n errorMsg = '',\n allowClose = false,\n children,\n}) => (\n \n \n \n {children}\n \n \n {showError && errorMsg?.length > 0 && (\n \n \n \n )}\n \n)\n\nexport default InputSection","import { useState, useEffect, useContext, useRef } from 'react'\nimport { ReactMultiEmail, isEmail } from 'react-multi-email'\nimport { styled } from '@mui/system'\nimport { Typography, Switch, Chip, Tooltip } from '@mui/material'\n\nimport { AuthenticationContext } from '../../authentication/authenticationContext'\nimport { usePermissionHelper } from '../../../utils/permission_helper'\n\nimport {\n FormFieldContainer,\n FormLabel,\n SendTestEmailButton,\n} from './sharedStyles'\nimport ConfirmDialog from '../../common/ConfirmDialog'\nimport InputSection, { TextInput } from '../../common/InputSection'\n\nimport { ReactComponent as InfoIcon } from '../../../icons/infoIcon_16x16.svg'\n\nimport Api from '../../../services/api'\n\nconst SettingsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n padding: '25px',\n alignItems: 'center',\n backgroundColor: theme.palette.base.white,\n gap: theme.spacing(1.5),\n}))\n\nconst SettingsContainerInner = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n maxWidth: '700px',\n gap: theme.spacing(1.5),\n}))\n\nconst ToggleContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n})\n\nconst EmailTemplateContainer = styled('div')({\n position: 'relative',\n})\n\nconst EmailPreviewBlock = styled('div')(({ theme }) => ({\n marginTop: '24px',\n marginLeft: '100px',\n [theme.breakpoints.down('sm')]: {\n marginLeft: '0px',\n },\n}))\n\nconst EmailPreviewContent = styled('div')({\n padding: '15px',\n fontFamily: 'Figtree, sans-serif, !important',\n fontSize: '0.875rem',\n})\n\nconst EmailTemplateCaption = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.main,\n marginLeft: '100px',\n marginTop: '10px',\n marginBottom: '25px',\n [theme.breakpoints.down('sm')]: {\n marginLeft: '0px',\n },\n}))\n\nconst ToggledOffOverlay = styled('div')(({ theme }) => ({\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n opacity: 0.5,\n backgroundColor: theme.palette.base.white,\n color: 'white',\n display: 'flex',\n zIndex: 10,\n}))\n\nconst ToggleContent = styled(Typography)(({ theme }) => ({\n fontWeight: theme.fontWeights.semiBold,\n}))\n\nconst HeaderContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'row',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n alignItems: 'flex-start',\n },\n}))\n\nconst ConstrainedInputWrap = styled('div')(({ theme }) => ({\n maxWidth: '276px',\n width: '100%',\n [theme.breakpoints.down('sm')]: {\n maxWidth: 'none',\n },\n}))\n\nconst HeaderInner = styled('div')(({ theme }) => ({\n width: '100%',\n p: {\n maxWidth: '276px',\n },\n}))\n\nconst ButtonContainer = styled('div')(({ theme }) => ({\n flexShrink: 0,\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n alignItems: 'center',\n alignSelf: 'flex-start',\n marginLeft: 'auto',\n [theme.breakpoints.down('sm')]: {\n order: -1,\n width: '100%',\n },\n}))\n\nconst StyledSendTestEmailButton = styled(SendTestEmailButton)(({ theme }) => ({\n flexShrink: 0,\n whiteSpace: 'nowrap',\n marginTop: '10px',\n marginLeft: '10px',\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n marginTop: 0,\n marginLeft: 0,\n },\n}))\n\nconst StyledInfoIcon = styled(InfoIcon)(({ theme }) => ({\n fill: theme.palette.base.black,\n marginLeft: '5px',\n}))\n\nconst StyledReactMultiEmail = styled(ReactMultiEmail)(({ theme, focused }) => ({\n transition: '300ms all ease-in-out',\n fontFamily: 'Figtree, sans-serif',\n fontWeight: '400',\n fontSize: '0.875rem',\n border: 'none',\n backgroundColor: 'transparent',\n color: theme.palette.neutral.main,\n textOverflow: 'ellipsis',\n overflowX: 'auto',\n gap: '5px',\n height: 'auto',\n padding: '1px 10px',\n borderRadius: theme.shape.borderRadius.xxs,\n outline: focused ? `1px solid ${theme.palette.secondary.main}` : 'none',\n '.react-multi-email-input': {\n minHeight: '48px',\n padding: '0 !important',\n fontFamily: 'inherit !important',\n fontWeight: 'inherit !important',\n fontSize: 'inherit !important',\n backgroundColor: 'transparent !important',\n color: 'inherit !important',\n },\n 'span[data-placeholder=\"true\"]': {\n color: theme.palette.neutral.light,\n opacity: '50%',\n padding: 0,\n display: 'flex',\n left: '10px',\n top: '50%',\n transform: 'translateY(-50%)',\n },\n}))\n\nconst ChipWrapper = styled('div')({\n display: 'flex',\n alignItems: 'center',\n minHeight: '48px',\n})\n\nconst EmailCampaignParent = ({\n campaign,\n toggleCampaignActive,\n replyToEmail,\n setReplyToEmail,\n openTestModal,\n updateBcc,\n}) => {\n const [newReplyToEmail, setNewReplyToEmail] = useState('')\n const [replyToEmailError, setReplyToEmailError] = useState('')\n const [confirmOpen, setConfirmOpen] = useState(false)\n const [bcc, setBcc] = useState([])\n const [bccError, setBccError] = useState('')\n const [focused, setFocused] = useState(false)\n const hasInitialBccBeenSet = useRef(false)\n\n const { canUseEmailCampaigns } = usePermissionHelper()\n // Uncomment when we want to show their limit and consumption for their billing interval\n // const { findPermission } = usePermissionHelper()\n // const planLimit = permission.limit\n // const consumed = permission.consumed\n\n const { toggleUpgradeModal, authData } = useContext(AuthenticationContext)\n const { user } = authData\n\n useEffect(() => {\n setNewReplyToEmail(replyToEmail)\n }, [replyToEmail])\n\n useEffect(() => {\n // Only set bcc on the initial mount, then let ReactMultiEmail control the value\n if (!hasInitialBccBeenSet.current && campaign?.bcc) {\n hasInitialBccBeenSet.current = true\n setBcc(campaign.bcc)\n }\n }, [campaign])\n\n const handleReplyToEmailBlur = () => {\n if (!newReplyToEmail?.length > 0) {\n setNewReplyToEmail(replyToEmail)\n return\n }\n\n if (replyToEmail === newReplyToEmail) {\n setNewReplyToEmail(replyToEmail)\n return\n }\n\n if (!canUseEmailCampaigns()) {\n return toggleUpgradeModal(\n true,\n 'Upgrade now to use our automated email campaigns!'\n )\n }\n\n if (!isEmail(newReplyToEmail)) {\n setReplyToEmailError('Please enter a valid email address')\n return\n }\n\n setConfirmOpen(true)\n }\n\n const handleOpenTestModal = async () => {\n if (!canUseEmailCampaigns()) {\n return toggleUpgradeModal(\n true,\n 'Upgrade now to use our automated email campaigns!'\n )\n }\n\n openTestModal()\n }\n\n const handleCancelUpdateReplyToEmail = () => {\n setNewReplyToEmail(replyToEmail)\n setReplyToEmailError('')\n }\n\n const updateReplyToEmail = async () => {\n try {\n const params = {\n account_setting: {\n reply_to_email: newReplyToEmail,\n },\n }\n\n const res = await Api.updateAccountSettings(params)\n\n if (res.errors) {\n throw res.errors\n } else {\n setReplyToEmail(res.replyToEmail)\n }\n } catch (err) {\n // handle error here\n console.log({ err })\n }\n }\n\n const handleUpdateBcc = async (emails) => {\n setBccError('')\n setBcc(emails)\n\n const result = await updateBcc(campaign.id, emails)\n\n if (result.error) {\n setBccError(result.error)\n }\n }\n\n return (\n \n \n \n \n Followup emails sent to leads is currently{' '}\n {campaign?.isActive ? 'on' : 'off'}\n \n \n toggleCampaignActive(campaign.id, e.target.checked)\n }\n />\n \n {campaign?.description}\n \n {!campaign?.isActive && }\n \n \n \n \n \n \n \n \n \n \n \n \n \n 0}\n errorMsg={replyToEmailError}>\n {\n setReplyToEmailError('')\n setNewReplyToEmail(e.target.value)\n }}\n onBlur={handleReplyToEmailBlur}\n fullWidth\n />\n \n \n \n \n \n \n Send test email\n \n \n \n {campaign?.bccEnabled && (\n \n \n BCC:\n \n \n \n \n }\n />\n 0}\n errorMsg={bccError}>\n {\n handleUpdateBcc(_emails)\n }}\n onKeyDown={(evt) => {\n if (bcc.length >= 3) {\n evt.preventDefault()\n setBccError('3 emails max')\n }\n }}\n focused={focused}\n onFocus={() => setFocused(true)}\n onBlur={() => {\n setBccError('')\n setFocused(false)\n }}\n validateEmail={(email) => {\n if (isEmail(email)) {\n return true\n } else {\n setBccError(\n 'Enter a valid email address before hitting space or return'\n )\n return false\n }\n }}\n placeholder=\"Enter up to 3 email addresses\"\n getLabel={(email, index, removeEmail) => {\n return (\n \n removeEmail(index)}\n />\n \n )\n }}\n inputClassName=\"react-multi-email-input\"\n />\n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n This template cannot be customized right now as we are performing\n optimizations for everyone. If you want to send your own followup,\n we recommend setting up a Speakerflow or Zapier integration.\n
\n
\n Your calendar booking link is set based on your Talkadot Code.\n
\n
\n \n

\n You are about to update your reply to email from{' '}\n {replyToEmail} to {newReplyToEmail}.\n

\n

\n Updating your reply-to email will update it on all of your\n email campaigns.\n

\n \n
\n
\n )\n}\n\nexport default EmailCampaignParent\n","import { styled } from '@mui/system'\n\nimport { Typography } from '@mui/material'\n\nconst Description = styled(Typography)(({ theme }) => ({\n maxWidth: '850px',\n fontSize: '1rem',\n color: theme.palette.neutral.semiDark,\n marginBottom: '25px',\n a: {\n color: theme.palette.neutral.semiDark,\n },\n}))\n\nconst PageDescription = ({ children }) => (\n {children}\n)\n\nexport default PageDescription","import StatsSummaryHeader from '../../common/StatsSummaryHeader'\n\nimport { ReactComponent as LeadsIcon } from '../../../icons/leadsIcon_16x16.svg'\nimport { ReactComponent as FireIcon } from '../../../icons/fireIcon_16x16.svg'\nimport { ReactComponent as WindIcon } from '../../../icons/windIcon_16x16.svg'\nimport { ReactComponent as EmailIcon } from '../../../icons/mailIcon_16x16.svg'\n\nimport { processWithFallback } from '../../common/helpers'\n\nconst EmailCampaignStatSummary = ({ emailCampaigns, bookingCampaign, referralCampaign, optInCampaign, unlimitedUsage, isBelowLimit, canUseEmailCampaigns }) => {\n const allSentEmails = emailCampaigns.reduce((sum, item) => sum + item.emailsSent, 0)\n\n const statsSummaryItems = [\n {\n label: 'Total followup emails sent',\n value: processWithFallback(allSentEmails),\n icon: ,\n svgType: 'fill',\n useErrorFontColor: canUseEmailCampaigns() && !unlimitedUsage && !isBelowLimit(),\n },\n {\n label: 'Total Booking Followup Emails Sent',\n value: processWithFallback(bookingCampaign?.emailsSent),\n icon: ,\n svgType: 'fill',\n },\n {\n label: 'Total Referral Followup Emails Sent',\n value: processWithFallback(referralCampaign?.emailsSent),\n icon: ,\n svgType: 'stroke',\n },\n {\n label: 'Total Opt In Bonus Emails Sent',\n value: processWithFallback(optInCampaign?.emailsSent),\n icon: ,\n svgType: 'stroke',\n },\n ]\n\n return(\n \n )\n\n}\n\nexport default EmailCampaignStatSummary","import { useState } from 'react'\n\nimport { styled } from '@mui/system'\n\nimport { HeaderTabs } from \"../LeadsTabs\"\nimport { Typography } from '@mui/material'\n\nimport { OPT_IN, BOOKING, REFERRAL } from './EmailCampaignSettings'\n\nconst CampaignStatusIcon = styled(Typography, {\n shouldForwardProp: (prop) =>\n prop !== 'isTabActive' && prop !== 'isCampaignActive',\n})(({ isTabActive, isCampaignActive, theme }) => ({\n backgroundColor: !isCampaignActive\n ? theme.palette.neutral.extraLight\n : isTabActive\n ? theme.palette.secondary.main\n : theme.palette.secondary.extraLight,\n borderRadius: '8px',\n padding: '6px 8px',\n color:\n isCampaignActive && !isTabActive\n ? theme.palette.secondary.main\n : theme.palette.base.white,\n fontWeight: 600,\n}))\n\nconst EmailCampaignTabs = ({ setActiveTab, bookingCampaign, referralCampaign, optInCampaign }) => {\n const [value, setValue] = useState(0)\n\n const tabs = [\n {\n label: 'Booking Lead Follow Up',\n name: BOOKING,\n icon: (\n \n {bookingCampaign?.isActive ? 'ON' : 'OFF'}\n \n ),\n },\n {\n label: 'Referral Lead Follow Up',\n name: REFERRAL,\n icon: (\n \n {referralCampaign?.isActive ? 'ON' : 'OFF'}\n \n ),\n },\n {\n label: 'Email Opt In Bonus Emails',\n name: OPT_IN,\n icon: (\n \n {optInCampaign?.isActive ? 'ON' : 'OFF'}\n \n ),\n },\n ]\n\n\n const handleTabChange = (newValue) => {\n setValue(newValue)\n\n const activeTab = tabs[newValue].name\n setActiveTab(activeTab)\n }\n\n return(\n \n )\n}\n\nexport default EmailCampaignTabs","import { useState, useEffect } from 'react'\nimport { styled } from '@mui/system'\n\nimport {\n DialogTitle,\n DialogContent,\n DialogActions,\n Typography,\n Select,\n MenuItem,\n Button,\n} from '@mui/material'\n\nimport {\n FormFieldContainer,\n FormLabel,\n SendTestEmailButton,\n} from './sharedStyles'\nimport InputSection, { TextInput } from '../../common/InputSection'\n\nimport isEmail from 'validator/lib/isEmail'\n\nconst StyledMenuItem = styled(MenuItem)(({ theme }) => ({\n '&.Mui-selected': {\n backgroundColor: `${theme.palette.neutral.extraLight} !important`,\n },\n}))\n\nconst StyledSelect = styled(Select)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n borderRadius: theme.shape.borderRadius.xxs,\n backgroundColor: theme.palette.base.white,\n '& .MuiSelect-select': {\n padding: '1px 10px',\n minHeight: '48px',\n display: 'flex',\n alignItems: 'center',\n },\n}))\n\nconst EmailCampaignTestParent = ({\n testEmailProps,\n handleClose,\n sendTestEmail,\n isLoading,\n}) => {\n const [email, setEmail] = useState('')\n const [offers, setOffers] = useState([])\n const [error, setError] = useState('')\n const [selectedCode, setSelectedCode] = useState('')\n\n useEffect(() => {\n setEmail(testEmailProps.email)\n setOffers(testEmailProps.offers)\n setSelectedCode(testEmailProps.offers[0]?.code || '')\n }, [testEmailProps])\n\n const handleSelectChange = (event) => {\n setSelectedCode(event.target.value)\n }\n\n const handleEmailBlur = () => {\n if (!isEmail(email)) {\n setError('Please enter a valid email address')\n }\n }\n\n const handleSendTestEmail = async () => {\n const offerId = offers.find((offer) => offer.code === selectedCode)?.id\n const result = await sendTestEmail(offerId, email)\n\n if (result.error) {\n setError(result.error)\n } else {\n handleClose()\n }\n }\n\n return (\n <>\n Send Test Email\n \n \n This will send a test email of what your leads will receive to the\n email address you enter, using the code you have selected.\n \n \n \n 0}\n errorMsg={error}>\n {\n setError('')\n setEmail(e.target.value)\n }}\n onBlur={handleEmailBlur}\n fullWidth\n />\n \n \n \n \n \n {offers.map((offer) => (\n \n {offer.code}\n \n ))}\n \n \n \n \n \n 0 || isLoading}\n onClick={handleSendTestEmail}>\n Send test email\n \n \n \n )\n}\n\nexport default EmailCampaignTestParent\n","import { useState, useEffect, useContext } from 'react'\nimport EmailCampaignParent from './EmailCampaignParent'\nimport PageDescription from '../../common/PageDescription'\nimport PageContainer from '../../common/PageContainer'\nimport PageHeader from '../../common/PageHeader'\nimport EmailCampaignStatSummary from './EmailCampaignStatSummary'\nimport EmailCampaignTabs from './EmailCampaignTabs'\nimport EmailCampaignTestParent from './EmailCampaignTestParent'\n\nimport { Notification } from '../../common/Notification'\nimport { AuthenticationContext } from '../../authentication/authenticationContext'\nimport {\n usePermissionHelper,\n EMAIL_CAMPAIGNS,\n} from '../../../utils/permission_helper'\nimport { humanizeError } from '../../../utils/errorFormatter'\n\nimport { Dialog, IconButton, useMediaQuery, useTheme, Box } from '@mui/material'\nimport { styled } from '@mui/system'\nimport CloseIcon from '@mui/icons-material/Close'\n\nimport Api from '../../../services/api'\n\nconst UpgradeLink = styled('span')(({ theme }) => ({\n cursor: 'pointer',\n textDecoration: 'underline',\n '&:hover': {\n color: theme.palette.secondary.main,\n },\n}))\n\nexport const OPT_IN = 'opt_in'\nexport const BOOKING = 'booking'\nexport const REFERRAL = 'referral'\nexport const EMAIL = OPT_IN\n\nconst initialTestEmailProps = {\n email: '',\n offers: [],\n}\n\nconst EmailCampaignSettings = () => {\n const [emailCampaigns, setEmailCampaigns] = useState([])\n const [replyToEmail, setReplyToEmail] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const [activeTab, setActiveTab] = useState('booking')\n const [currentCampaign, setCurrentCampaign] = useState('booking')\n const [selectedOffer, setSelectedOffer] = useState('')\n const [testEmailProps, setTestEmailProps] = useState(initialTestEmailProps)\n const [testModalOpen, setTestModalOpen] = useState(false)\n\n const { canUseEmailCampaigns } = usePermissionHelper()\n const { toggleUpgradeModal, authData, updatePermission, setNotification } =\n useContext(AuthenticationContext)\n\n const { findPermission } = usePermissionHelper()\n const leadsPermissionData = findPermission(EMAIL_CAMPAIGNS)\n const { consumedPercentage, limit, isBelowLimit, unlimitedUsage } =\n leadsPermissionData\n const reachedEmailAlertThreshold = consumedPercentage() >= 90\n const { user } = authData\n const {\n membership: { isTrialing, shouldShowUpgrades },\n } = user\n const showUpgradeButton =\n isTrialing || (!unlimitedUsage && shouldShowUpgrades)\n\n const bookingCampaign = emailCampaigns.find(\n (campaign) => campaign.target === BOOKING\n )\n const referralCampaign = emailCampaigns.find(\n (campaign) => campaign.target === REFERRAL\n )\n const optInCampaign = emailCampaigns.find(\n (campaign) => campaign.target === OPT_IN\n )\n\n const theme = useTheme()\n const fullScreen = useMediaQuery(theme.breakpoints.down('sm'))\n\n useEffect(() => {\n const getEmailCampaigns = async () => {\n try {\n const res = await Api.fetchEmailCampaigns()\n\n if (!res.errors) {\n setEmailCampaigns(res.campaigns)\n setReplyToEmail(res.replyToEmail)\n setTestEmailProps({\n email: user.email,\n offers: res.offers,\n })\n\n // Update permission values for upgrade widget\n const emailCampaignsPermission = res.emailCampaignsPermission\n updatePermission(emailCampaignsPermission)\n\n setIsLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoading(false)\n }\n }\n\n getEmailCampaigns()\n }, [])\n\n useEffect(() => {\n switch (activeTab) {\n case BOOKING:\n setCurrentCampaign(bookingCampaign)\n break\n case REFERRAL:\n setCurrentCampaign(referralCampaign)\n break\n case EMAIL:\n setCurrentCampaign(optInCampaign)\n break\n default:\n setCurrentCampaign(bookingCampaign)\n }\n }, [activeTab, bookingCampaign, referralCampaign, optInCampaign])\n\n const toggleCampaignActive = async (campaignToUpdateId, toggleValue) => {\n if (!canUseEmailCampaigns()) {\n return toggleUpgradeModal(\n true,\n 'Upgrade now to send automated emails to your audience!',\n EMAIL_CAMPAIGNS\n )\n }\n\n try {\n const res = await Api.updateEmailCampaign(campaignToUpdateId, {\n is_active: toggleValue,\n })\n\n if (res.errors) {\n throw res.errors\n } else {\n setEmailCampaigns(\n emailCampaigns.map((emailCampaign) =>\n emailCampaign.id === res.id\n ? { ...emailCampaign, isActive: res.isActive }\n : { ...emailCampaign }\n )\n )\n }\n } catch (err) {\n // handle error here\n }\n }\n\n const updateBcc = async (campaignToUpdateId, bcc) => {\n try {\n const res = await Api.updateEmailCampaign(campaignToUpdateId, {\n bcc: bcc,\n })\n\n if (res.errors) {\n throw res.errors\n } else {\n setEmailCampaigns(\n emailCampaigns.map((emailCampaign) =>\n emailCampaign.id === res.id\n ? { ...emailCampaign, bcc: res.bcc }\n : { ...emailCampaign }\n )\n )\n\n return { success: true }\n }\n } catch (err) {\n setIsLoading(false)\n\n return { error: humanizeError(err) }\n }\n }\n\n const sendTestEmail = async (selectedOfferId, email) => {\n setIsLoading(true)\n\n try {\n const res = await Api.sendTestCampaignEmail(currentCampaign.id, {\n email: email,\n survey_offer_id: selectedOfferId,\n })\n\n if (res.errors) {\n throw res.errors\n } else {\n setIsLoading(false)\n setNotification('Email successfully sent!', 'success')\n return { success: true }\n }\n } catch (err) {\n setIsLoading(false)\n\n return { error: humanizeError(err) }\n }\n }\n\n const openTestModal = () => {\n setTestModalOpen(true)\n }\n\n const closeTestModal = () => {\n setTestModalOpen(false)\n }\n\n return (\n \n \n \n You’ve got the leads. Now let’s make sure you are nurturing them! On all\n Talkadot Pro+ plans, we can automatically send followup emails for you\n after every talk.{' '}\n \n Learn More\n \n .\n \n\n {/* Only show this notice for people who can't use email campaigns */}\n {!canUseEmailCampaigns() && (\n \n Automatic emails sent to your audience members is a Pro+ feature.{' '}\n {\n toggleUpgradeModal(\n true,\n 'Upgrade to send these automatic emails to your audience!'\n )\n }}>\n {' '}\n Upgrade to turn these on!\n \n \n )}\n\n {/* Only show this notice for people who can use email campaigns and are approaching their limit */}\n {canUseEmailCampaigns() && reachedEmailAlertThreshold && (\n \n You are limited to {limit} emails on your current plan.{' '}\n {\n toggleUpgradeModal(\n true,\n 'Upgrade to increase your email campaign sending limit!'\n )\n }}>\n {' '}\n Upgrade to increase your limit.\n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default EmailCampaignSettings\n","import EmailCampaignSettings from './campaigns/EmailCampaignSettings'\nimport PageContainer from '../common/PageContainer'\n\nconst LeadsFollowupParent = () => {\n return (\n \n \n \n )\n}\n\nexport default LeadsFollowupParent\n","import React, { useState, useContext } from 'react'\nimport { Button, CircularProgress } from '@material-ui/core'\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nconst TestSpeakerflowButton = ({ disabled }) => {\n const [isLoading, setIsLoading] = useState(false)\n const { setNotification } = useContext(AuthenticationContext)\n\n const handleTestSpeakerflowIntegration = async () => {\n try {\n setIsLoading(true)\n\n const res = await Api.testSpeakerflowIntegration()\n\n if (!res.errors) {\n setIsLoading(false)\n setNotification('Speakerflow is setup correctly!', 'success')\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoading(false)\n setNotification(\n 'Oops - looks like there was something wrong with testing your speakerflow integration. Please try again. If the problem persists, contact us at hello@talkadot.com!'\n )\n }\n }\n\n return (\n \n {isLoading ? : 'Test'}\n \n )\n}\n\nexport default TestSpeakerflowButton\n","import React, { useState, useContext } from 'react'\nimport { Button, CircularProgress } from '@material-ui/core'\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nconst ManuallySyncSpeakerflowButton = ({ disabled }) => {\n const [isLoading, setIsLoading] = useState(false)\n const { setNotification } = useContext(AuthenticationContext)\n\n const handleManuallySyncWithSpeakerflow = async () => {\n try {\n setIsLoading(true)\n\n const res = await Api.manuallySyncWithSpeakerflow()\n\n if (!res.errors) {\n setIsLoading(false)\n setNotification('Your leads are syncing with speakerflow!', 'success')\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoading(false)\n setNotification(\n 'Oops - looks like there was something wrong with syncing your leads with Speakerflow. Please try again. If the problem persists, contact us at hello@talkadot.com!'\n )\n }\n }\n\n return (\n \n {isLoading ? : 'Sync'}\n \n )\n}\n\nexport default ManuallySyncSpeakerflowButton\n","import { useContext } from 'react'\n\nimport { styled } from '@mui/system'\nimport {\n Switch,\n Typography,\n Button,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport {\n usePermissionHelper,\n INTEGRATIONS,\n} from '../../utils/permission_helper'\n\nimport EditDetails from './EditDetails'\nimport TestSpeakerflowButton from './TestSpeakerflowButton'\nimport ManuallySyncSpeakerflowButton from './ManuallySyncSpeakerflowButton'\n\nimport UpgradeModalLauncher from '../common/UpgradeModalLauncher'\nimport UserAttributeForm from '../common/UserAttributeForm'\n\nimport {\n AccountSettingsCard,\n AccountSettingsCardColumn,\n AccountSettingsCardInner,\n AccountSettingsCardTitle,\n} from './AccountSettingsParent'\nimport { ReactComponent as DownloadIcon } from '../../icons/downloadIcon.svg'\n\nimport speakerflowLogo from '../../icons/speakerflow.png'\n\nconst SPEAKERFLOW_INTEGRATION_GUIDE_LINK =\n 'https://talkadot-static-images.s3.amazonaws.com/The-Ultimate-Talkadot-SpeakerFlow-Guide.pdf'\n\nconst SpeakerflowContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'flex-start',\n flexDirection: 'column',\n gap: '10px',\n justifyContent: 'space-between',\n img: {\n maxWidth: '250px',\n },\n button: {\n marginLeft: '5px',\n },\n}))\n\nconst SpeakerflowEditContainer = styled('div')({\n width: '100%',\n textAlign: 'left',\n marginLeft: '0px',\n marginRight: '0px',\n})\n\nconst StyledButton = styled(Button)(({ theme }) => ({\n color: theme.palette.base.white,\n textWrap: 'nowrap',\n '&:hover': {\n backgroundColor: theme.palette.secondary.main,\n },\n svg: {\n path: {\n stroke: theme.palette.base.white,\n },\n },\n}))\n\nconst HeaderContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n})\n\nconst IntegrationSettings = () => {\n const { authData, submitSpeakerflowLink, toggleSpeakerflowEnabled } =\n useContext(AuthenticationContext)\n const { user } = authData\n const { canUseIntegrations } = usePermissionHelper()\n const isIntegrationsAllowed = canUseIntegrations()\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'))\n\n const openGuide = () => {\n return window.open(\n SPEAKERFLOW_INTEGRATION_GUIDE_LINK,\n '_blank',\n 'noreferrer'\n )\n }\n\n const renderShowSpeakerflowLink = () => {\n const disableButtons =\n !isIntegrationsAllowed ||\n !user.speakerflow_url ||\n user.speakerflow_url.length <= 0\n\n if (isIntegrationsAllowed) {\n return (\n \n \n {\n submitSpeakerflowLink(isIntegrationsAllowed)\n }}\n detailType=\"Speakerflow\"\n detailValue={user?.speakerflow_url}>\n \n \n \n
\n \n toggleSpeakerflowEnabled(\n e.target.checked,\n isIntegrationsAllowed\n )\n }\n checked={user.speakerflowEnabled}\n disabled={disableButtons}\n />\n \n \n
\n
\n )\n } else {\n return (\n \n \n \n \n Integrate your leads with Speakerflow!\n \n \n \n \n )\n }\n }\n\n return (\n \n \n \n Speakerflow Integration\n \n }>\n {isMobile ? 'Guide' : 'Integration Guide'}\n \n \n \n \n {renderShowSpeakerflowLink()}\n \n \n \n )\n}\n\nexport default IntegrationSettings\n","import { Chip } from '@mui/material'\nimport { styled } from '@mui/system'\n\nconst StyledBetaChip = styled(Chip)(({ theme }) => ({\n transform: 'rotate(350deg)',\n marginLeft: '10px',\n}))\n\nconst BetaChip = () => \n\nexport default BetaChip\n","import { useContext } from 'react'\nimport { Button } from '@mui/material'\nimport { styled } from '@mui/system'\n\nimport {\n AccountSettingsCard,\n AccountSettingsCardInner,\n AccountSettingsCardTitle,\n} from './AccountSettingsParent'\nimport BetaChip from '../common/BetaChip'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { usePermissionHelper } from '../../utils/permission_helper'\n\nconst ZapierEmbedContainer = styled('div')({\n width: '100%',\n})\n\nconst ZapierSettings = ({ user }) => {\n const { toggleUpgradeModal } = useContext(AuthenticationContext)\n const { canUseIntegrations } = usePermissionHelper()\n\n return (\n \n \n Zapier Integration\n \n \n \n {canUseIntegrations() ? (\n \n \n \n ) : (\n \n toggleUpgradeModal(\n true,\n 'Upgrade to sync your leads to your CRM of choice with Zapier!'\n )\n }\n variant=\"contained\"\n color=\"primary\">\n Upgrade To Use Zapier\n \n )}\n \n \n )\n}\n\nexport default ZapierSettings\n","import { useContext } from 'react'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nimport IntegrationSettings from '../accountSettings/IntegrationSettings'\nimport ZapierSettings from '../accountSettings/ZapierSettings'\nimport PageContainer from '../common/PageContainer'\n\nconst LeadsIntegrationsParent = () => {\n const { authData } = useContext(AuthenticationContext)\n const { user } = authData\n\n return (\n \n \n \n \n )\n}\n\nexport default LeadsIntegrationsParent\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgNewIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 22,\n height: 24,\n viewBox: \"0 0 22 24\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.91563 22.9263L2.56533 19.2641C1.27925 18.516 0.486015 17.1423 0.480957 15.6545V8.35122C0.485841 6.86349 1.27919 5.48999 2.56539 4.74246L8.91569 1.07944C10.2047 0.331919 11.7954 0.331919 13.0844 1.07944L19.4347 4.74246C20.7209 5.49 21.5142 6.86352 21.519 8.35117V15.6545C21.514 17.1423 20.7207 18.516 19.4347 19.264L13.0844 22.9262C11.7934 23.6662 10.2067 23.6662 8.9157 22.9262L8.91563 22.9263ZM9.71707 2.46799L3.36758 6.13101C2.57456 6.58943 2.08574 7.43553 2.08472 8.35151V15.6548C2.08843 16.5703 2.57648 17.4154 3.36755 17.8761L9.71705 21.5383C10.5108 21.997 11.489 21.997 12.2828 21.5383L18.6331 17.8761C19.4258 17.4171 19.9142 16.5708 19.9151 15.6548V8.3515C19.9114 7.43641 19.4237 6.59165 18.633 6.13098L12.2827 2.46797C11.488 2.01296 10.5117 2.01296 9.71702 2.46797L9.71707 2.46799ZM6.99497 14.6943C6.54739 14.6943 6.18457 14.3315 6.18457 13.8839C6.18457 13.4363 6.54739 13.0735 6.99497 13.0735H15.099C15.5466 13.0735 15.9094 13.4363 15.9094 13.8839C15.9094 14.3315 15.5466 14.6943 15.099 14.6943H6.99497ZM6.99497 10.642C6.54739 10.642 6.18457 10.2792 6.18457 9.83164C6.18457 9.38406 6.54739 9.02124 6.99497 9.02124H15.099C15.5466 9.02124 15.9094 9.38406 15.9094 9.83164C15.9094 10.2792 15.5466 10.642 15.099 10.642H6.99497Z\",\n fill: \"#323A46\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNewIcon);\nexport default __webpack_public_path__ + \"static/media/newIcon.2c37940a.svg\";\nexport { ForwardRef as ReactComponent };","import { useEffect, useState, useContext } from 'react'\nimport { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\nimport { Card } from '../dashboard/v2/DashboardCardComponents'\nimport CheckBoxStyled from '../common/CheckBoxStyled'\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { ReactComponent as ReferralMoneyIcon } from '../../icons/referralMoneyIcon.svg'\n\nconst StyledTypography = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.veryDark,\n marginBottom: '15px',\n}))\n\nconst OptOutContainer = styled('div')({\n paddingTop: '20px',\n})\n\nconst ProgramLink = styled('a')(({ theme }) => ({\n textDecoration: 'none',\n color: theme.palette.tabBlue.main,\n cursor: 'pointer',\n fontWeight: theme.fontWeights.semiBold,\n}))\n\nconst Disclaimer = styled(Typography)(({ theme }) => ({\n span: {\n fontWeight: theme.fontWeights.semiBold,\n },\n a: {\n textDecoration: 'none',\n color: theme.palette.tabBlue.main,\n cursor: 'pointer',\n },\n}))\n\nconst ProgramDetailsInner = styled('div')(({ theme }) => ({\n padding: theme.spacing(6),\n}))\n\nconst ProgramDetails = ({}) => {\n const [optOut, setOptOut] = useState(false)\n const [hasPayoutInfo, setHasPayoutInfo] = useState(false)\n const { setNotification } = useContext(AuthenticationContext)\n\n useEffect(() => {\n const fetchPayoutSettings = async () => {\n try {\n const res = await Api.getReferralPayoutSettings()\n\n if (!res.errors) {\n setOptOut(res.opt_out)\n setHasPayoutInfo(res.has_payout_info)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n fetchPayoutSettings()\n }, [])\n\n const toggleOptOut = async () => {\n try {\n const res = await Api.editReferralPayoutSettings({\n referral_payout_setting: {\n opt_out: !optOut,\n },\n })\n\n if (!res.errors) {\n setOptOut(!optOut)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n return (\n \n \n {optOut && (\n \n You've opted out. Uncheck the box to opt back in.\n \n )}\n {!optOut && (\n \n {' '}\n {hasPayoutInfo\n ? 'You have joined our referral program!'\n : \"Let's make sure we can pay you!\"}\n \n )}\n {!hasPayoutInfo && (\n \n You haven't officially joined the Talkadot referral program.\n
\n
\n \n Please agree to the conditions and submit your payout information\n securely here.\n \n
\n )}\n \n We currently payout via ACH transfer within 60 days after your\n referral upgrades to a paid Pro Plan or higher, and does not cancel\n within the 30 day money back guarantee.\n \n \n Please Note: we are currently only able to make payments\n to US bank accounts. Your referrals are tracked and you will receive\n credit as soon as your country is supported! Some speakers have opted\n to create an account at{' '}\n \n https://wise.com\n {' '}\n to accept US payments.\n \n {hasPayoutInfo && (\n \n Has your payment information changed?{' '}\n \n Please submit an update here.\n \n \n )}\n \n \n \n {hasPayoutInfo\n ? 'No longer interested in this program?'\n : 'Not interested in this program?'}\n \n \n \n \n
\n
\n )\n}\n\nexport default ProgramDetails\n","import { useContext } from 'react'\n\nimport { Typography } from '@mui/material'\nimport { styled } from '@mui/system'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nimport { Notification } from '../common/Notification'\nimport PageContainer from '../common/PageContainer'\nimport PageHeader from '../common/PageHeader'\nimport ReferralParent from '../referrals/ReferralParent'\nimport ProgramDetails from '../referrals/ProgramDetails'\n\nconst NotificationContainer = styled('div')(({ theme }) => ({\n padding: theme.spacing(3, 0),\n}))\n\nconst StyledTypography = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.dark,\n fontWeight: 600,\n}))\n\nconst ReferParent = () => {\n const {\n authData: {\n user: {\n membership: { shouldShowUpgrades },\n },\n },\n } = useContext(AuthenticationContext)\n\n return (\n \n \n \n \n \n Talkadot's grown almost entirely through word of mouth. Help us\n spread the word and receive our thanks!\n \n \n \n \n \n \n )\n}\n\nexport default ReferParent\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgBreadCrumbCaret(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 9,\n height: 15,\n viewBox: \"0 0 9 15\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.976327 1.7046L6.73633 7.48096L0.976327 13.2573\",\n stroke: \"#4B5768\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBreadCrumbCaret);\nexport default __webpack_public_path__ + \"static/media/breadCrumbCaret.124f1b1d.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgAttendeesIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 48,\n height: 35,\n viewBox: \"0 0 48 35\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.3 1.9624C34.06 1.9624 32.25 3.2824 32.25 6.9624C32.25 10.6424 34.06 11.9624 36.3 11.9624C38.54 11.9624 40.35 10.6424 40.35 6.9624C40.35 3.2824 38.54 1.9624 36.3 1.9624Z\",\n stroke: \"#505050\",\n strokeWidth: 2,\n strokeMiterlimit: 10\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31 15.7724C32.41 15.2624 34.07 14.9524 36.09 14.9524C42.57 14.9524 44 18.1624 44 20.7524V22.9624H30\",\n stroke: \"#505050\",\n strokeWidth: 2,\n strokeMiterlimit: 10\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.6999 1.9624C13.9399 1.9624 15.7499 3.2824 15.7499 6.9624C15.7499 10.6424 13.9399 11.9624 11.6999 11.9624C9.4599 11.9624 7.6499 10.6424 7.6499 6.9624C7.6499 3.2824 9.4599 1.9624 11.6999 1.9624Z\",\n stroke: \"#505050\",\n strokeWidth: 2,\n strokeMiterlimit: 10\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 15.7724C15.59 15.2624 13.93 14.9524 11.91 14.9524C5.43 14.9524 4 18.1624 4 20.7524V22.9624H18\",\n stroke: \"#505050\",\n strokeWidth: 2,\n strokeMiterlimit: 10\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.05 12.9624C26.29 12.9624 28.1 14.2824 28.1 17.9624C28.1 21.6424 26.29 22.9624 24.05 22.9624C21.81 22.9624 20 21.6424 20 17.9624C20 14.2824 21.81 12.9624 24.05 12.9624Z\",\n stroke: \"#505050\",\n strokeWidth: 2,\n strokeMiterlimit: 10\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.0202 25.9624H23.9702C17.4902 25.9624 15.9902 29.1624 15.9902 31.7524V33.9624H31.9902V31.7524C31.9902 29.1624 30.4902 25.9624 24.0102 25.9624H24.0202Z\",\n stroke: \"#505050\",\n strokeWidth: 2,\n strokeMiterlimit: 10\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 22.9624H3\",\n stroke: \"#505050\",\n strokeWidth: 2,\n strokeMiterlimit: 10\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45 22.9624H48\",\n stroke: \"#505050\",\n strokeWidth: 2,\n strokeMiterlimit: 10\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 33.9624H48\",\n stroke: \"#505050\",\n strokeWidth: 2,\n strokeMiterlimit: 10\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAttendeesIcon);\nexport default __webpack_public_path__ + \"static/media/attendeesIcon.6664f16b.svg\";\nexport { ForwardRef as ReactComponent };","import { styled } from '@mui/system'\nimport { Breadcrumbs, Typography } from '@mui/material'\nimport { Link } from 'react-router-dom'\n\nimport { ReactComponent as DashboardIcon } from '../../icons/navIcons/newIcon.svg'\nimport { ReactComponent as CaretIcon } from '../../icons/navIcons/breadCrumbCaret.svg'\n\nconst StyledBreadcrumbs = styled(Breadcrumbs)(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n p: {\n color: theme.palette.text.navText,\n },\n a: {\n textDecoration: 'none',\n color: theme.palette.text.navText,\n },\n}))\n\nconst StyledDashboardIcon = styled(DashboardIcon)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n path: {\n fill: theme.palette.neutral.semiDark,\n },\n}))\n\nconst CaretDownIcon = styled(CaretIcon)(({ theme }) => ({\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(1),\n}))\n\nconst NavBreadCrumbs = ({ breadCrumbs }) => {\n return (\n }>\n \n \n \n {breadCrumbs.map((breadCrumb, index) => {\n if (breadCrumb.link) {\n return (\n \n {breadCrumb.text}\n \n )\n }\n\n return (\n ({\n fontWeight: index === breadCrumbs.length - 1 ? '600' : '400',\n color:\n index === breadCrumbs.length - 1\n ? theme.palette.text.inputText\n : theme.palette.text.navText,\n })}>\n {breadCrumb.text}\n \n )\n })}\n \n )\n}\n\nexport default NavBreadCrumbs\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgAttendeesHeaderIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 19,\n viewBox: \"0 0 24 19\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.3844 17.7797L21.4111 17.7606C21.8523 17.7587 22.2748 17.5826 22.5867 17.2706C22.8986 16.9587 23.0747 16.5362 23.0767 16.0951V2.81084C23.0747 2.36971 22.8986 1.94721 22.5867 1.63528C22.2748 1.32335 21.8523 1.14724 21.4111 1.14526L19.3844 1.1643M4.61516 1.14526L2.49208 1.1643C1.57593 1.1643 0.922852 1.9143 0.922852 2.82988V16.1147C0.922852 17.0303 1.57593 17.7797 2.49208 17.7797L4.61516 17.7606M19.3844 5.76065V13.1453M15.6921 3.91449V14.9914M11.9998 4.83757V14.0683M8.30747 3.91449V14.9914M4.61516 5.76065V13.1453\",\n stroke: \"#4B5768\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAttendeesHeaderIcon);\nexport default __webpack_public_path__ + \"static/media/attendeesHeaderIcon.63ab106a.svg\";\nexport { ForwardRef as ReactComponent };","import { styled } from '@mui/system'\nimport { Typography, Skeleton } from '@mui/material'\nimport { ReactComponent as AttendeesIcon } from '../../icons/attendeesIcon.svg'\n\nconst Container = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1.5),\n}))\n\nconst StyledTypography = styled(Typography)(({ theme }) => ({\n fontWeight: '700',\n color: theme.palette.neutral.veryDark,\n}))\n\nconst TotalAttendeesStat = ({ totalResponses, isLoading }) => (\n \n <>\n \n {isLoading ? (\n \n ) : (\n \n {totalResponses || '-'}\n \n )}\n \n \n)\n\nexport default TotalAttendeesStat\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgValuableHeaderIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 23,\n height: 23,\n viewBox: \"0 0 23 23\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.7183 5.87005C16.2137 5.87005 17.426 7.08232 17.426 8.57774M20.1337 8.57774C20.1337 11.5686 17.7091 13.9931 14.7183 13.9931C14.4017 13.9931 14.0915 13.966 13.7898 13.9138C13.2817 13.826 12.7435 13.9371 12.3789 14.3018L9.97984 16.7008H7.94908V18.7316H5.91831V20.7624H2.53369V18.2189C2.53369 17.6803 2.74765 17.1638 3.12849 16.7829L8.99425 10.9172C9.3589 10.5525 9.47001 10.0144 9.38221 9.50621C9.33009 9.20453 9.30292 8.89431 9.30292 8.57774C9.30292 5.5869 11.7275 3.16235 14.7183 3.16235C17.7091 3.16235 20.1337 5.5869 20.1337 8.57774Z\",\n stroke: \"#4B5768\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgValuableHeaderIcon);\nexport default __webpack_public_path__ + \"static/media/valuableHeaderIcon.575bb42f.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgReattendHeaderIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 26,\n height: 22,\n viewBox: \"0 0 26 22\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.2584 0.808594C14.513 0.808594 12.6669 4.5009 12.6669 4.5009C12.6669 4.5009 10.8207 0.808594 7.07533 0.808594C4.03148 0.808594 1.6211 3.35513 1.58995 6.39379C1.52648 12.7013 6.5936 17.1869 12.1476 20.9565C12.3008 21.0607 12.4817 21.1164 12.6669 21.1164C12.8521 21.1164 13.033 21.0607 13.1861 20.9565C18.7396 17.1869 23.8067 12.7013 23.7438 6.39379C23.7126 3.35513 21.3023 0.808594 18.2584 0.808594Z\",\n stroke: \"#4B5768\",\n strokeWidth: 1.2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.666504 10.9625H7.12804L9.89727 5.42407L12.6665 14.6548L15.4357 9.11638L17.2819 12.8087H24.6665\",\n stroke: \"#4B5768\",\n strokeWidth: 1.2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgReattendHeaderIcon);\nexport default __webpack_public_path__ + \"static/media/reattendHeaderIcon.50be633f.svg\";\nexport { ForwardRef as ReactComponent };","import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\n\nimport { ReactComponent as ResponsesSvg } from '../../icons/attendeesHeaderIcon.svg'\nimport { ReactComponent as ValuableSvg } from '../../icons/valuableHeaderIcon.svg'\nimport { ReactComponent as ReattendSvg } from '../../icons/reattendHeaderIcon.svg'\n\nconst CardContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'minWidth',\n})(({ theme, minWidth }) => ({\n display: 'flex',\n flexDirection: 'column',\n minWidth: minWidth || '',\n minHeight: '185px',\n borderRadius: theme.shape.borderRadius.sm,\n padding: theme.spacing(1.5),\n border: `1px solid ${theme.palette.neutral.extraLight}`,\n flex: 1,\n [theme.breakpoints.down('sm')]: {\n minWidth: '100%',\n },\n}))\n\nconst CardHeader = styled('div')({\n display: 'flex',\n alignItems: 'center',\n})\n\nconst HeaderLogo = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n marginRight: theme.spacing(1),\n}))\n\nconst HeaderText = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.veryDark,\n}))\n\nconst CardContent = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flex: 1,\n})\n\nexport const DonutStatsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(1.5),\n marginTop: theme.spacing(1.5),\n [theme.breakpoints.down('md')]: {\n alignItems: 'center',\n },\n}))\n\nexport const PrimaryDonutContainer = styled('div')({\n width: '124px',\n height: '124px',\n})\n\nexport const SecondaryDonutsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(1.5),\n [theme.breakpoints.down('md')]: {\n flexDirection: 'column',\n },\n}))\n\nexport const SecondaryDonutsColumn = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n gap: theme.spacing(1.5),\n}))\n\nexport const SecondaryDonutStatContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: theme.spacing(0.5),\n}))\n\nexport const SecondaryDonutContainer = styled('div')({\n width: '40px',\n height: '40px',\n minWidth: '40px',\n minHeight: '40px',\n})\n\nconst StatCard = ({\n type,\n isLoading,\n ratingsBreakdown,\n reattendBreakdown,\n eventType,\n speakerName,\n children,\n minWidth,\n}) => {\n const calculateValuableRating = ({ positives, total }) => {\n return parseInt((positives / total) * 100) || '0'\n }\n\n const calculateReattendRate = ({ d_yes, p_yes, total_reattend_answers }) => {\n return parseInt(((d_yes + p_yes) / total_reattend_answers) * 100) || '0'\n }\n\n const valuableHeaderContent = () => {\n if (eventType?.toUpperCase() === 'GLOBAL') {\n return ' found this event valuable'\n }\n\n if (eventType?.toUpperCase() === 'TOTAL_STATISTICS') {\n return ' found the sessions valuable'\n }\n\n return ' found this session valuable'\n }\n\n const reattendHeaderContent = () => {\n if (!eventType && !speakerName) {\n return ' would hear this speaker again'\n }\n\n if (!eventType && speakerName) {\n return ` would hear ${speakerName} speak again`\n }\n\n if (eventType.toUpperCase() === 'GLOBAL') {\n return ' would attend this event again'\n }\n\n if (eventType.toUpperCase() === 'WORKSHOP') {\n return ' would attend a session like this again'\n }\n\n if (eventType.toUpperCase() === 'TOTAL_STATISTICS') {\n return ' would hear the presenters again'\n }\n\n return ' would hear this speaker again'\n }\n\n const headerText = (type) => {\n switch (type) {\n case 'responses':\n return 'Attendee Responses'\n case 'valuable':\n if (isLoading) {\n return valuableHeaderContent()\n }\n const { positives, total } = ratingsBreakdown\n return `${calculateValuableRating({\n positives,\n total,\n })}% ${valuableHeaderContent()}`\n case 'reattend':\n if (isLoading) {\n return reattendHeaderContent()\n }\n const { d_yes, p_yes, total_reattend_answers } = reattendBreakdown\n return `${calculateReattendRate({\n d_yes,\n p_yes,\n total_reattend_answers,\n })}% ${reattendHeaderContent()}`\n case 'emojis':\n return 'Attendees found this session'\n default:\n return ''\n }\n }\n\n const headerLogo = (type) => {\n switch (type) {\n case 'responses':\n return \n case 'valuable':\n return \n case 'reattend':\n return \n default:\n return \n }\n }\n\n return (\n \n \n {headerLogo(type)}\n {headerText(type)}\n \n {children}\n \n )\n}\n\nexport default StatCard\n","import { styled } from '@mui/system'\nimport { Typography, Skeleton } from '@mui/material'\nimport { useTheme } from '@mui/material/styles'\nimport { Doughnut } from 'react-chartjs-2'\nimport { CircularProgressbar, buildStyles } from 'react-circular-progressbar'\nimport { Chart as ChartJS, ArcElement, Tooltip } from 'chart.js'\n\nimport {\n DonutStatsContainer,\n PrimaryDonutContainer,\n SecondaryDonutsContainer,\n SecondaryDonutStatContainer,\n SecondaryDonutContainer,\n SecondaryDonutsColumn,\n} from '../common/StatCard'\n\nimport 'react-circular-progressbar/dist/styles.css'\n\nconst SecondaryDonutLabel = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.veryDark,\n}))\n\nChartJS.register(ArcElement, Tooltip)\n\nconst TalkValueStat = ({ ratingsBreakdown, isLoading }) => {\n const theme = useTheme()\n const { positives, negatives, total } = ratingsBreakdown\n\n const originalData = [negatives || 0, positives || 0]\n const isAllZero = originalData.every((item) => item === 0)\n\n const chartData = {\n labels: ['No', 'Yes'],\n datasets: [\n {\n data: isAllZero ? [1] : originalData,\n backgroundColor: isAllZero\n ? [theme.palette.neutral.lightest]\n : [theme.palette.neutral.extraLight, theme.palette.secondary.main],\n borderWidth: 0,\n cutout: '60%',\n },\n ],\n }\n\n const options = {\n plugins: {\n legend: {\n display: false,\n },\n },\n }\n\n return (\n \n {isLoading ? (\n \n ) : (\n <>\n \n \n \n \n \n \n \n Valuable\n \n \n \n \n \n \n \n Not Valuable\n \n \n \n \n \n \n \n \n )}\n \n )\n}\n\nexport default TalkValueStat\n","import { styled } from '@mui/system'\nimport { Typography, Skeleton } from '@mui/material'\nimport { CircularProgressbar, buildStyles } from 'react-circular-progressbar'\nimport 'react-circular-progressbar/dist/styles.css'\nimport { Chart as ChartJS, ArcElement, Tooltip } from 'chart.js'\nimport { Doughnut } from 'react-chartjs-2'\nimport { useTheme } from '@mui/material/styles'\n\nimport {\n DonutStatsContainer,\n PrimaryDonutContainer,\n SecondaryDonutsContainer,\n SecondaryDonutStatContainer,\n SecondaryDonutContainer,\n SecondaryDonutsColumn,\n} from '../common/StatCard'\n\nconst SecondaryDonutLabel = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.veryDark,\n maxWidth: '52px',\n textWrap: 'wrap',\n}))\n\nChartJS.register(ArcElement, Tooltip)\n\nconst TalkReattendStat = ({ reattendBreakdown, isLoading }) => {\n const theme = useTheme()\n const { d_yes, p_yes, p_no, d_no, total_reattend_answers } = reattendBreakdown\n\n const originalData = [d_no || 0, p_no || 0, p_yes || 0, d_yes || 0]\n const isAllZero = originalData.every((item) => item === 0)\n\n const chartData = {\n labels: ['Definitely Not', 'Probably Not', 'Probably', 'Definitely'],\n datasets: [\n {\n data: isAllZero ? [1] : originalData,\n backgroundColor: isAllZero\n ? [theme.palette.neutral.lightest]\n : [\n theme.palette.neutral.extraLight,\n theme.palette.neutral.dark,\n theme.palette.secondary.light,\n theme.palette.secondary.main,\n ],\n borderWidth: 0,\n cutout: '60%',\n },\n ],\n }\n\n const options = {\n plugins: {\n legend: {\n display: false,\n },\n },\n }\n\n return (\n \n {isLoading ? (\n \n ) : (\n <>\n \n \n \n \n \n \n \n Definitely Yes\n \n \n \n \n \n \n \n Probably Yes\n \n \n \n \n \n \n \n \n \n Definitely Not\n \n \n \n \n \n \n \n Probably Not\n \n \n \n \n \n \n \n \n )}\n \n )\n}\n\nexport default TalkReattendStat\n","var _defs, _rect;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgEmoji1(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Component_42_7\",\n \"data-name\": \"Component 42 \\\\u2013 7\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 58,\n height: 57,\n viewBox: \"0 0 58 57\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern1\",\n preserveAspectRatio: \"none\",\n width: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 75 75\"\n }, /*#__PURE__*/React.createElement(\"image\", {\n id: \"abc123\",\n width: \"100%\",\n height: \"100%\",\n xlinkHref: \"data:image/png;base64,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\"\n })))), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Image_45\",\n \"data-name\": \"Image 45\",\n width: 58,\n height: 57,\n fill: \"url(#pattern1)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmoji1);\nexport default __webpack_public_path__ + \"static/media/emoji-1.d5bf6a4a.svg\";\nexport { ForwardRef as ReactComponent };","import { useTheme } from '@mui/material/styles'\nimport { Typography, Skeleton } from '@mui/material'\nimport { styled } from '@mui/system'\n\nconst Container = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1.5),\n flex: 1,\n marginTop: theme.spacing(1.5),\n}))\n\nconst RowContainer = styled('div')(({ theme }) => ({\n display: 'grid',\n alignItems: 'center',\n gridTemplateColumns: '80px 1fr 40px',\n gap: theme.spacing(1.5),\n}))\n\nconst OuterProgressBar = styled('div')(({ theme }) => ({\n minWidth: '100px',\n width: '100%',\n height: '20px',\n backgroundColor: theme.palette.neutral.extraLight,\n borderRadius: theme.shape.borderRadius.xxxs,\n}))\n\nconst InnerProgressBar = styled('div', {\n shouldForwardProp: (prop) => prop !== 'width' && prop !== 'backgroundColor',\n})(({ theme, width, backgroundColor }) => ({\n height: '100%',\n width: width,\n backgroundColor: backgroundColor,\n borderRadius: theme.shape.borderRadius.xxxs,\n}))\n\nconst TalkEngagementStat = ({ isLoading, engagementBreakdown }) => {\n const theme = useTheme()\n\n const ACTIONABLE = 'actionable'\n const ENGAGING = 'engaging'\n const INSPIRING = 'inspiring'\n const RELEVANT = 'relevant'\n const INTERACTIVE = 'interactive'\n\n const isValidLabel = (label) => {\n return !label?.includes('{{') && label?.trim().split(/\\s+/).length <= 2\n }\n\n const formatLabelFromLegacyKeywords = (content) => {\n if (content.includes(ACTIONABLE)) {\n return ACTIONABLE\n }\n\n if (content.includes(ENGAGING)) {\n return ENGAGING\n }\n\n if (content.includes(INSPIRING)) {\n return INSPIRING\n }\n\n if (content.includes(RELEVANT)) {\n return RELEVANT\n }\n\n if (content.includes(INTERACTIVE)) {\n return INTERACTIVE\n }\n\n return\n }\n\n const formatLabel = (label) => {\n let formattedLabel = formatLabelFromLegacyKeywords(label)\n\n if (!formattedLabel) {\n return label\n }\n\n return formattedLabel\n }\n\n const sortedEngagementBreakdown = engagementBreakdown\n .map((engagementStat, i) => {\n if (engagementStat.label) {\n return {\n ...engagementStat,\n label: formatLabel(engagementStat.label),\n }\n } else {\n return null\n }\n })\n .filter((engagementStat) =>\n isValidLabel(engagementStat?.label) ? { ...engagementStat } : null\n )\n .sort((a, b) => parseFloat(b?.avg_value) - parseFloat(a?.avg_value))\n\n const makeBarValue = (engagementStatValue) => {\n if (!engagementStatValue) {\n return\n } else {\n // All the numbers are on a scale of 1-5, so need to adjust this for a scale of 100%\n return parseFloat(engagementStatValue * 20).toFixed()\n }\n }\n\n const COLOR_CODES = [\n theme.palette.error.main,\n theme.palette.success.semiDark,\n theme.palette.primary.main,\n theme.palette.secondary.main,\n theme.palette.error.main,\n theme.palette.success.semiDark,\n theme.palette.primary.main,\n theme.palette.secondary.main,\n ]\n\n const renderEngagementRow = (engagementType, index) => {\n const barValue = makeBarValue(engagementType.avg_value)\n\n return (\n engagementType.label && (\n \n \n {engagementType.label}\n \n \n {barValue ? (\n <>\n \n \n ) : (\n N/A\n )}\n \n {barValue}%\n \n )\n )\n }\n\n const renderLoadingState = () => (\n \n \n \n \n \n )\n\n const renderEngagementStats = () => (\n \n {sortedEngagementBreakdown?.slice(0, 4)?.map((engagementType, i) => {\n return renderEngagementRow(engagementType, i)\n })}\n \n )\n\n return isLoading ? renderLoadingState() : renderEngagementStats()\n}\n\nexport default TalkEngagementStat\n","import { styled } from '@mui/material/styles'\nimport { Typography, Tooltip, Avatar } from '@mui/material'\n\nconst BannerContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'font',\n})(({ theme, font }) => ({\n flexDirection: 'column',\n alignItems: 'center',\n maxWidth: '100%',\n padding: '15px 0',\n display: 'flex',\n backgroundColor: theme.palette.secondary.main,\n marginBottom: '15px',\n [theme.breakpoints.up('md')]: {\n flexDirection: 'row',\n padding: '25px',\n width: '85%',\n clipPath: `polygon(0 0, 100% 0, 100% 0, calc(100% - 150px) 100%, 0 100%)`,\n },\n}))\n\nconst BannerAvatar = styled(Avatar)(({ theme }) => ({\n // Note: the image width and height here is a solution to\n // prevent a small black border to show up on the left and top\n // of the image in certain occassions.\n img: {\n width: '102%',\n height: '102%',\n },\n marginRight: '20px',\n [theme.breakpoints.down('md')]: {\n marginRight: '0',\n },\n}))\n\nconst Summary = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n width: '70%',\n [theme.breakpoints.down('md')]: {\n width: '100%',\n padding: '10px 40px 0',\n textAlign: 'center',\n },\n}))\n\nconst TalkOrganization = styled(Typography, {\n shouldForwardProp: (prop) =>\n prop !== 'font' &&\n prop !== 'longName' &&\n prop !== 'isProfile' &&\n prop !== 'nameLength',\n})(({ theme, font, nameLength }) => ({\n color: 'white',\n // fontFamily: font ? font : 'inherit',\n [theme.breakpoints.down('sm')]: {\n fontSize:\n nameLength === 'long'\n ? '18px'\n : nameLength === 'medium'\n ? '22px'\n : '26px',\n },\n}))\n\nconst TalkTitle = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'font',\n})(({ theme }) => ({\n color: 'white',\n paddingRight: '15%',\n // fontFamily: font ? font : 'inherit',\n [theme.breakpoints.down('md')]: {\n paddingRight: '0',\n },\n}))\n\nconst TalkDate = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'font',\n})(({ theme }) => ({\n // fontFamily: font ? font : 'inherit',\n color: 'white',\n paddingTop: '5px',\n}))\n\nconst Banner = ({\n speaker,\n talkTitle,\n organization,\n date,\n speakers,\n isProfile = false,\n font,\n type,\n}) => {\n const renderOrganization = () => {\n const orgContent = isProfile ? speaker.fullName : organization\n\n let nameLength = 'standard'\n\n const speakerNameLength = speaker.name?.length || 0\n const speakerLastNameLength = speaker.lastName?.length || 0\n\n if (speakerNameLength > 20 || speakerLastNameLength > 20) {\n nameLength = 'long'\n } else if (speakerNameLength > 16 || speakerLastNameLength > 16) {\n nameLength = 'medium'\n }\n\n if (isProfile || organization) {\n return (\n \n
{orgContent}
\n \n )\n }\n }\n\n const renderTalkTitle = () => {\n if (isProfile) return\n return (\n \n {talkTitle ? `${talkTitle} Report` : 'Speaking Engagement Report'}\n \n )\n }\n\n const renderTalkDate = () => {\n if (type === 'group') return speaker.description\n\n if (isProfile) return 'Speaker Feedback Overview'\n\n return `Audience Feedback on ${date}`\n }\n\n return (\n // Note: the font prop is a temporary solution until we fully switch the app over to Sora font\n \n \n \n {renderOrganization()}\n {renderTalkTitle()}\n {renderTalkDate()}\n
\n {speakers?.length >= 0 &&\n speakers.map((speaker) => {\n return (\n \n \n \n )\n })}\n
\n
\n
\n )\n}\n\nexport default Banner\n","import { useState, useRef, useEffect, useCallback } from 'react'\n\nconst usePolling = ({\n apiMethod,\n shouldStopPolling,\n maxTries = 10,\n pollingInterval = 1000,\n}) => {\n const [data, setData] = useState(null)\n const [error, setError] = useState(null)\n const [isLoading, setIsLoading] = useState(false)\n const triesRef = useRef(0)\n const pollingRef = useRef(null)\n\n const stopPolling = useCallback(() => {\n if (pollingRef.current) {\n clearTimeout(pollingRef.current)\n pollingRef.current = null\n }\n triesRef.current = 0\n }, [])\n\n const startPolling = useCallback(\n (params) => {\n setIsLoading(true)\n return new Promise((resolve, reject) => {\n const poll = async () => {\n if (triesRef.current >= maxTries) {\n stopPolling()\n resolve({ status: 'failed', tries: triesRef.current })\n setData({ status: 'failed' })\n setIsLoading(false)\n return\n }\n\n try {\n const res = await apiMethod(params)\n\n if (res.errors) {\n stopPolling()\n setError(res.errors)\n setIsLoading(false)\n reject(res.errors)\n return\n }\n\n const latestData = res\n if (shouldStopPolling(latestData)) {\n setData(latestData)\n stopPolling()\n resolve({ status: 'completed', data: latestData })\n setIsLoading(false)\n return\n }\n\n triesRef.current += 1\n pollingRef.current = setTimeout(poll, pollingInterval)\n } catch (err) {\n stopPolling()\n setError(err)\n setIsLoading(false)\n reject(err)\n }\n }\n\n poll()\n })\n },\n [apiMethod, shouldStopPolling, maxTries, pollingInterval, stopPolling]\n )\n\n useEffect(() => {\n return () => stopPolling() // Clean up on unmount\n }, [stopPolling])\n\n return { data, error, isLoading, startPolling, stopPolling }\n}\n\nexport default usePolling\n","import { useEffect, useState } from 'react'\nimport { styled } from '@mui/system'\nimport { Skeleton, Typography } from '@mui/material'\n\nimport Api from '../../services/api'\n\nimport './SpeakerProfile.scss'\n\nconst SpeakerSummaryHeader = styled('div', {\n shouldForwardProp: (prop) => prop !== 'socialShare',\n})(({ socialShare }) => ({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: socialShare ? 'center' : 'flex-end',\n}))\n\n// TODO: add case for event report page\nconst SpeakerName = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'socialShare' && prop !== 'fontSize',\n})(({ socialShare, fontSize, theme }) => ({\n color: theme.palette.neutral.semiDark,\n fontWeight: socialShare ? '900' : '',\n fontSize: socialShare ? fontSize : '',\n lineHeight: socialShare ? '45px' : '',\n textAlign: 'left',\n [theme.breakpoints.down('sm')]: {\n fontSize: '24px',\n },\n}))\n\nconst initialSpeakerSummaryState = {\n firstName: null,\n lastName: null,\n}\n\nconst SpeakerHeader = ({ shareKey, id, socialShare }) => {\n const [speakerSummary, setSpeakerSummary] = useState(\n initialSpeakerSummaryState\n )\n const [isLoading, setIsLoading] = useState(false)\n const { firstName, lastName } = speakerSummary\n const speakerNameFontSize =\n firstName?.length > 20 || lastName?.length > 20 ? '38px' : '45px'\n\n const makeName = () => {\n if (firstName && lastName) {\n return `${firstName} ${lastName}`\n } else {\n return firstName\n }\n }\n\n useEffect(() => {\n const fetchSpeakerSummary = async () => {\n const params = {\n speaker_summary: {\n id: id,\n share_key: shareKey,\n },\n }\n\n try {\n setIsLoading(true)\n const res = await Api.getSpeakerSummary(params)\n\n if (!res.errors) {\n setSpeakerSummary(res)\n setIsLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoading(false)\n }\n }\n\n fetchSpeakerSummary()\n }, [])\n\n return (\n \n {isLoading ? (\n \n ) : (\n \n {makeName()}\n \n )}\n \n )\n}\n\nexport default SpeakerHeader\n","export default __webpack_public_path__ + \"static/media/tdot-social-logo.03d9b2ba.png\";","import { Avatar, Typography } from '@mui/material'\nimport { styled } from '@mui/system'\n\nimport SpeakerHeader from '../speakerProfile/SpeakerHeader'\nimport { formatDate } from '../common/helpers'\nimport talkadotLogo from '../../icons/tdot-social-logo.png'\n\nconst SocialShareBanner = styled('div')({\n display: 'flex',\n paddingTop: '0px',\n marginBottom: '15px',\n})\n\nconst SocialShareAvatar = styled(Avatar)({\n // Note: the image width and height here is a solution to\n // prevent a small black border to show up on the left and top\n // of the image in certain occassions.\n marginRight: '10px',\n marginTop: '-40px',\n marginLeft: '-35px',\n img: {\n width: '102%',\n height: '102%',\n },\n})\n\nconst SocialShareImage = styled('div')({\n // Note: using min/max width/height here to ensure borders\n // show up properly in image download\n minWidth: '844px',\n maxWidth: '844px',\n minHeight: '869px',\n maxHeight: '869px',\n position: 'relative',\n borderWidth: '72px',\n borderStyle: 'solid',\n})\n\nconst InnerContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'customQuestion',\n})(({ customQuestion }) => ({\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n padding: '0 30px',\n paddingBottom: customQuestion ? '60px' : '0',\n paddingTop: customQuestion ? '24px' : '0',\n}))\n\nconst TalkTitleWrapper = styled('div')({\n paddingLeft: '30px',\n paddingTop: '5px',\n paddingBottom: '10px',\n textAlign: 'left',\n})\nconst TalkOrganization = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'orgFontScale',\n})(({ orgFontScale }) => ({\n fontWeight: '900',\n fontSize: `${orgFontScale * 24}px`,\n minHeight: '30px',\n}))\nconst TalkTitle = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'titleFontScale',\n})(({ titleFontScale }) => ({\n fontSize: `${titleFontScale * 20}px`,\n marginTop: '-5px',\n fontWeight: '300',\n minHeight: '24px',\n}))\n\nconst MAX_ORG_CHARACTER_LENGTH = 50\nconst MAX_ORG_FONT_SCALE = 1.25\nconst MAX_TITLE_CHARACTER_LENGTH = 75\nconst MAX_TITLE_FONT_SCALE = 1.2\n\nconst Header = ({ reportData, shareKey }) => {\n const orgRatio =\n reportData.organization?.length / MAX_ORG_CHARACTER_LENGTH > 1\n ? 1\n : reportData.organization?.length / MAX_ORG_CHARACTER_LENGTH\n const titleRatio =\n reportData.talkTitle?.length / MAX_TITLE_CHARACTER_LENGTH > 1\n ? 1\n : reportData.talkTitle?.length / MAX_TITLE_CHARACTER_LENGTH\n\n const orgFontScale =\n 1 / orgRatio > MAX_ORG_FONT_SCALE ? MAX_ORG_FONT_SCALE : 1 / orgRatio\n const titleFontScale =\n 1 / titleRatio > MAX_TITLE_FONT_SCALE\n ? MAX_TITLE_FONT_SCALE\n : 1 / titleRatio\n\n return (\n
\n \n \n {reportData?.isUserEvent && (\n \n )}\n \n \n Audience Feedback On{' '}\n {reportData.date\n ? formatDate(reportData.date, reportData.utcOffset)\n : ''}\n \n \n {reportData.organization && (\n \n {reportData.organization}\n \n )}\n {reportData.talkTitle && (\n \n {reportData.talkTitle}\n \n )}\n \n
\n )\n}\n\nconst Footer = () => (\n \"Talkadot!\"\n)\n\nconst SocialShareTemplate = ({\n reportData,\n shareKey,\n downloadRef,\n color,\n children,\n downloadId,\n}) => {\n const showTalkadotBranding = reportData?.showBranding\n\n return (\n \n
\n \n {children}\n \n {showTalkadotBranding &&
}\n \n )\n}\n\nexport default SocialShareTemplate\n","import { useEffect, useState, forwardRef } from 'react'\nimport { styled } from '@mui/system'\nimport { Typography, Button } from '@mui/material'\n\nimport SocialShareTemplate from './SocialShareTemplate'\nimport { trackSocialTestimonialShare } from '../../services/metrics'\nimport { downloadComponentAsPng } from '../common/helpers'\n\nimport { RiDoubleQuotesL, RiDoubleQuotesR } from 'react-icons/ri'\n\nconst ReportDownloadContainer = styled('div')({\n '@media (max-width:960px)': {\n marginTop: '-2000px',\n position: 'absolute',\n },\n})\n\nconst FeedbackList = styled('div', {\n shouldForwardProp: (prop) => prop !== 'showTalkadotBranding',\n})(({ showTalkadotBranding }) => ({\n display: 'flex',\n flex: 1,\n textAlign: 'left',\n flexDirection: 'column',\n marginBottom: showTalkadotBranding ? '60px' : '30px',\n}))\n\nconst FeedbackContent = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'fontScale' && prop !== 'maxLines',\n})(({ fontScale, maxLines }) => ({\n flex: '1',\n padding: '0px 10px',\n fontSize: `${fontScale * 20}px`,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n display: '-webkit-box',\n WebkitLineClamp: maxLines,\n WebkitBoxOrient: 'vertical',\n}))\n\nconst OpenQuoteMark = styled(RiDoubleQuotesL)({\n fontSize: '24px',\n})\n\nconst CloseQuoteMark = styled(RiDoubleQuotesR)({\n fontSize: '24px',\n alignSelf: 'flex-end',\n})\n\nconst DownloadButton = styled(Button)(({ theme }) => ({\n position: 'absolute',\n top: theme.spacing(2),\n right: theme.spacing(9),\n}))\n\n// Should really do this by rows, and round up\n// 11 available rows\nconst TestimonialStatImage = forwardRef(\n (\n { reportData, sortedFeedback, shareKey, customPickedFeedback = null },\n ref\n ) => {\n const showTalkadotBranding = reportData?.showBranding\n const [priorityFeedback, setPriorityFeedback] = useState([])\n const [totalRowCount, setTotalRowCount] = useState(0)\n\n // Can fit an extra row without the logo\n const NEW_ROW_BUFFER = 3 // amount of rows a new quote requires\n const CHARACTERS_PER_ROW = 60 // total amount of characters at 22px size a row can fit\n const MAX_FONT_SCALE = 1.6 // multiple of base fontSize of 20px\n\n let AVAILABLE_ROWS = showTalkadotBranding ? 14 : 15\n\n const calcFeedback = (sortedFeedback) => {\n let currentRowCount = 0\n\n let totalFeedback = []\n\n for (const feedback of sortedFeedback) {\n const feedbackRows = Math.ceil(\n feedback.text.length / CHARACTERS_PER_ROW\n )\n\n if (\n feedbackRows + currentRowCount <= AVAILABLE_ROWS ||\n (currentRowCount === 0 && feedbackRows > AVAILABLE_ROWS)\n ) {\n totalFeedback.push(feedback)\n currentRowCount += feedbackRows + NEW_ROW_BUFFER\n } else {\n break\n }\n }\n setPriorityFeedback(totalFeedback)\n setTotalRowCount(currentRowCount)\n }\n useEffect(() => {\n if (customPickedFeedback?.length > 0) {\n calcFeedback(customPickedFeedback)\n } else {\n calcFeedback(sortedFeedback)\n }\n }, [reportData, sortedFeedback, customPickedFeedback])\n\n let fontScale = 1\n\n if (reportData?.organization) {\n AVAILABLE_ROWS--\n }\n if (reportData?.talkTitle) {\n AVAILABLE_ROWS--\n }\n\n if (totalRowCount > 0 && totalRowCount < AVAILABLE_ROWS) {\n const rowRatio =\n AVAILABLE_ROWS / totalRowCount > 1 ? AVAILABLE_ROWS / totalRowCount : 1\n\n fontScale = rowRatio < MAX_FONT_SCALE ? rowRatio : MAX_FONT_SCALE\n }\n\n const renderFeedback = (feedback, index) => (\n
\n
\n \n \n {feedback.text}\n \n \n
\n
\n )\n\n return (\n \n \n \n {priorityFeedback?.map((feedback, i) => {\n return renderFeedback(feedback, i)\n })}\n \n \n {\n trackSocialTestimonialShare()\n downloadComponentAsPng(ref, `talkadot-testimonial-share`)\n }}>\n Click To Download\n \n \n )\n }\n)\n\nexport default TestimonialStatImage\n","import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\n\nconst EmojiWrapper = styled('span')({\n fontSize: '1.5rem',\n})\n\nconst YesOrNoAnswer = ({ answerValue, answerContent }) => (\n
\n {answerValue?.toLowerCase().includes('yes') ? (\n 👍\n ) : (\n 👎\n )}\n \n {answerContent}{' '}\n \n
\n)\n\nexport default YesOrNoAnswer\n","var _defs, _rect;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgEmoji2(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Component_40_7\",\n \"data-name\": \"Component 40 \\\\u2013 7\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 58.091,\n height: 59,\n viewBox: \"0 0 58.091 59\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern3\",\n preserveAspectRatio: \"none\",\n width: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 76 77\"\n }, /*#__PURE__*/React.createElement(\"image\", {\n width: \"100%\",\n height: \"100%\",\n xlinkHref: \"data:image/png;base64,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\"\n })))), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Image_44\",\n \"data-name\": \"Image 44\",\n width: 58,\n height: 59,\n transform: \"translate(0.002)\",\n fill: \"url(#pattern3)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmoji2);\nexport default __webpack_public_path__ + \"static/media/emoji-2.eb2821a2.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _rect;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgEmoji3(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Component_1234\",\n \"data-name\": \"Component 42123 \\\\u2013 7999\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 58,\n height: 59,\n viewBox: \"0 0 58 59\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern2\",\n preserveAspectRatio: \"none\",\n width: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 76 77\"\n }, /*#__PURE__*/React.createElement(\"image\", {\n id: \"abc431\",\n width: \"100%\",\n height: \"100%\",\n xlinkHref: \"data:image/png;base64,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\"\n })))), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Image_43\",\n \"data-name\": \"Image 43\",\n width: 58,\n height: 59,\n fill: \"url(#pattern2)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmoji3);\nexport default __webpack_public_path__ + \"static/media/emoji-3.215cb863.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _rect;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgEmoji4(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Component_39_7\",\n \"data-name\": \"Component 39 \\\\u2013 7\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 59,\n height: 59,\n viewBox: \"0 0 59 59\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern4\",\n preserveAspectRatio: \"none\",\n width: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 76 77\"\n }, /*#__PURE__*/React.createElement(\"image\", {\n width: \"100%\",\n height: \"100%\",\n xlinkHref: \"data:image/png;base64,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\"\n })))), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Image_42\",\n \"data-name\": \"Image 42\",\n width: 59,\n height: 59,\n fill: \"url(#pattern4)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmoji4);\nexport default __webpack_public_path__ + \"static/media/emoji-4.7bebebd5.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgEmoji5(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 59,\n height: 58,\n viewBox: \"0 0 59 58\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern5\",\n preserveAspectRatio: \"none\",\n width: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 76 76\"\n }, /*#__PURE__*/React.createElement(\"image\", {\n width: \"100%\",\n height: \"100%\",\n xlinkHref: \"data:image/png;base64,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\"\n })))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Component_38_7\",\n \"data-name\": \"Component 38 \\\\u2013 7\",\n transform: \"translate(0.227)\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Image_41\",\n \"data-name\": \"Image 41\",\n width: 59,\n height: 58,\n transform: \"translate(-0.227)\",\n fill: \"url(#pattern5)\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmoji5);\nexport default __webpack_public_path__ + \"static/media/emoji-5.67598372.svg\";\nexport { ForwardRef as ReactComponent };","var _image;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgChatBubble(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 34,\n height: 33.306,\n viewBox: \"0 0 34 33.306\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _image || (_image = /*#__PURE__*/React.createElement(\"image\", {\n id: \"Image_33\",\n \"data-name\": \"Image 33\",\n width: 34,\n height: 33.306,\n opacity: 0.54,\n xlinkHref: \"data:image/png;base64,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\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgChatBubble);\nexport default __webpack_public_path__ + \"static/media/chatBubble.7afc2495.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react'\nimport { ReactComponent as Emoji1 } from '../../icons/emoji-1.svg'\nimport { ReactComponent as Emoji2 } from '../../icons/emoji-2.svg'\nimport { ReactComponent as Emoji3 } from '../../icons/emoji-3.svg'\nimport { ReactComponent as Emoji4 } from '../../icons/emoji-4.svg'\nimport { ReactComponent as Emoji5 } from '../../icons/emoji-5.svg'\nimport { Typography } from '@mui/material'\n\nconst EngagementAnswers = ({ engagementStats }) => {\n // If there are labels for the engagement stats, use those to render\n // TODO:\n // Need to clean this up so all of them function off of labels instead of\n // just the event planner ones\n // This is super hackey, but need something to work for the event planner pilots\n const shouldUseLabels = !!engagementStats && engagementStats[0]?.label\n\n // TODO: should fetch these from the API\n const ENGAGEMENT_TYPES = [\n 'Actionable',\n 'Engaging',\n 'Interactive',\n 'Inspiring',\n 'Relevant',\n 'Educational',\n 'Entertaining',\n 'Fun',\n 'Informative',\n 'Powerful',\n 'Practical',\n ]\n\n if (shouldUseLabels) {\n return engagementStats.map((stat, i) => {\n return (\n \n )\n })\n } else {\n return ENGAGEMENT_TYPES.map((engagementType, i) => {\n const answer = engagementStats.find((eStat) => {\n const engagementTypeText = eStat.text_value || eStat.question_content\n return engagementTypeText\n .toLowerCase()\n ?.includes(engagementType.toLowerCase())\n })\n return (\n \n )\n })\n }\n}\n\nconst EngagementAnswer = ({ answerValue, answerText }) => {\n const emojiList = [\n {\n icon: ,\n value: '1',\n },\n {\n icon: ,\n value: '2',\n },\n {\n icon: ,\n value: '3',\n },\n {\n icon: ,\n value: '4',\n },\n {\n icon: ,\n value: '5',\n },\n ]\n\n const emoji = emojiList.find((e) => e.value === answerValue)\n\n if (!answerValue) {\n return
\n } else {\n return (\n
\n {emoji?.icon}\n \n {answerText}\n \n
\n )\n }\n}\n\nexport default EngagementAnswers\n","import { useState, useEffect } from 'react'\nimport { styled } from '@mui/system'\nimport { CircularProgress, Typography } from '@mui/material'\n\nimport Api from '../../services/api'\n\nimport YesOrNoAnswer from '../common/YesOrNoAnswer'\nimport EngagementAnswers from '../common/EngagementAnswers'\n\nconst ContactInfoWrapper = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n textAlign: 'right',\n marginLeft: '1.5rem',\n})\n\nconst NoShareBanner = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n padding: '1.25rem',\n marginTop: '-20px',\n marginLeft: '-20px',\n background: theme.palette.base.black,\n color: theme.palette.base.white,\n width: 'calc(100% + 40px)',\n}))\n\nconst FeedbackAnswersParent = ({ feedback }) => {\n const [answers, setAnswers] = useState([])\n const [leadData, setLeadData] = useState({})\n const [isLoading, setIsLoading] = useState(false)\n const talkValue = answers?.find((l) => l.question_type.includes('RATING'))\n const talkReattend = answers?.find((l) =>\n l.question_type.includes('REATTEND')\n )\n const talkEngagement = answers?.filter((l) =>\n l.question_type.includes('ENGAGEMENT')\n )\n const talkTakeaways = answers?.find((l) =>\n l.question_type.includes('TAKEAWAYS')\n )\n const otherFeedback = answers?.find((l) =>\n l.question_type.includes('PUBLIC_FEEDBACK')\n )\n\n const statSize = talkEngagement?.length\n const statSliceIndex = Math.ceil(statSize / 2)\n\n const statSet1 = talkEngagement?.slice(0, statSliceIndex)\n const statSet2 = talkEngagement?.slice(statSliceIndex)\n\n useEffect(() => {\n const fetchAnswers = async () => {\n try {\n setIsLoading(true)\n\n const params = {\n submission: {\n id: feedback.submission_id,\n },\n }\n\n const res = await Api.getAnswersBySubmission(params)\n\n if (!res.errors) {\n setAnswers(res.answers)\n setLeadData(res.leadData)\n setIsLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoading(false)\n }\n }\n\n fetchAnswers()\n }, [feedback])\n\n return (\n
\n {isLoading ? (\n \n ) : (\n <>\n
\n {feedback?.public_share === false && (\n \n \n Sharing disabled. Permission was not granted.\n \n \n )}\n
\n
\n
\n
\n
\n \n {leadData?.name}\n \n \n {leadData?.title}\n \n \n {leadData?.organization}\n \n
\n \n {leadData?.phone && (\n \n {leadData.phone}\n \n )}\n \n {leadData?.email}\n \n \n
\n
\n
\n \n \n
\n
\n {talkEngagement?.length > 0 && (\n \n
\n \n
\n
\n \n
\n
\n )}\n
\n
\n {talkTakeaways && (\n \n {talkTakeaways?.answer_value}\n \n )}\n
\n
\n {otherFeedback && (\n \n {otherFeedback?.answer_value}\n \n )}\n
\n
\n \n )}\n
\n )\n}\n\nexport default FeedbackAnswersParent\n","var _circle, _circle2, _circle3, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgTestimonialPersonPlaceholder(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 50,\n height: 51,\n viewBox: \"0 0 50 51\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n opacity: 0.2,\n cx: 25,\n cy: 25.9624,\n r: 25,\n fill: \"#1197CB\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 25,\n cy: 19.7124,\n r: 11.25,\n fill: \"#1197CB\"\n })), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask0_11116_11503\",\n style: {\n maskType: \"alpha\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: 0,\n y: 0,\n width: 50,\n height: 51\n }, _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 25,\n cy: 25.9624,\n r: 25,\n fill: \"#E7EAEE\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask0_11116_11503)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.6248 58.4624C50.6248 72.2695 39.432 83.4624 25.6248 83.4624C11.8177 83.4624 0.624837 72.2695 0.624837 58.4624C0.624837 44.6553 11.8177 33.4624 25.6248 33.4624C39.432 33.4624 50.6248 44.6553 50.6248 58.4624Z\",\n fill: \"#1197CB\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTestimonialPersonPlaceholder);\nexport default __webpack_public_path__ + \"static/media/testimonialPersonPlaceholder.a36c9386.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgQuoteOpenSingle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 11,\n height: 18,\n viewBox: \"0 0 11 18\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.3582 0.346741C10.3667 0.586139 10.3807 0.825114 10.3828 1.06451C10.3867 1.48898 10.3761 1.91344 10.3871 2.33748C10.3913 2.50345 10.3421 2.58113 10.1808 2.64522C8.87812 3.16307 7.68665 3.8715 6.62633 4.79047C5.68869 5.60332 5.11481 6.63562 4.82787 7.88143C4.9637 7.88992 5.08552 7.89926 5.20734 7.9052C6.49135 7.97014 7.69174 8.29995 8.7771 9.01051C9.77035 9.66079 10.2869 10.6056 10.4767 11.7487C10.6108 12.5565 10.6121 13.3643 10.4032 14.1639C10.098 15.3329 9.36413 16.1636 8.34924 16.7723C7.20488 17.4582 5.96459 17.6705 4.64662 17.5431C3.65847 17.4476 2.75775 17.1501 1.99584 16.4981C1.28953 15.8936 0.854449 15.1046 0.521668 14.2552C0.234305 13.5222 0.0734325 12.7585 0.0415976 11.9695C0.0390508 11.9007 0.0144318 11.8328 0 11.7649C0 11.4962 0 11.2271 0 10.9584C0.0152808 10.8692 0.0398998 10.7805 0.0441444 10.691C0.086591 9.78091 0.269111 8.89887 0.61972 8.06013C1.42153 6.14154 2.71785 4.6088 4.35162 3.34517C5.68189 2.31626 7.18111 1.59722 8.72361 0.958396C9.24825 0.741069 9.78393 0.550059 10.3145 0.347165C10.3285 0.347165 10.3429 0.347165 10.357 0.347165L10.3582 0.346741Z\",\n fill: \"#D0D5DD\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgQuoteOpenSingle);\nexport default __webpack_public_path__ + \"static/media/quoteOpenSingle.659789f9.svg\";\nexport { ForwardRef as ReactComponent };","import { styled } from '@mui/system'\n\nimport { ReactComponent as QuoteOpenSingle } from '../../icons/quoteOpenSingle.svg'\n\nconst DoubleQuotesContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'close',\n})(({ close }) => ({\n display: 'flex',\n gap: '3px',\n justifyContent: 'center',\n alignItems: close ? 'flex-end' : 'flex-start',\n svg: {\n transform: close ? 'rotate(180deg)' : 'rotate(0deg)',\n },\n}))\n\nconst QuotationMarks = ({ close = false }) => {\n return (\n \n \n \n \n )\n}\n\nexport default QuotationMarks\n","export const addAlpha = (hexColor, opacity) => {\n // coerce values so ti is between 0 and 1.\n const _opacity = Math.round(Math.min(Math.max(opacity || 1, 0), 1) * 255)\n return hexColor + _opacity.toString(16).toUpperCase()\n}\n","import { useState } from 'react'\nimport { styled } from '@mui/system'\nimport { Typography, Tooltip } from '@mui/material'\nimport { IconButton, Menu, MenuItem, CircularProgress } from '@material-ui/core'\nimport { motion } from 'framer-motion/dist/framer-motion'\n\nimport { IoEllipsisHorizontal } from 'react-icons/io5'\nimport { FaStar } from 'react-icons/fa'\nimport { ReactComponent as ChatBubble } from '../../icons/chatBubble.svg'\nimport { ReactComponent as TestimonialPersonPlaceholder } from '../../icons/testimonialPersonPlaceholder.svg'\nimport QuotationMarks from '../common/QuotationMarks'\n\nimport { addAlpha } from '../../utils/color'\nimport { eventReportCardShareLink } from '../common/helpers'\n\nconst Container = styled('div', {\n shouldForwardProp: (prop) =>\n prop !== 'showFavouriteButton' && prop !== 'oddRow',\n})(({ theme, showFavouriteButton, oddRow }) => ({\n display: 'flex',\n width: '100%',\n height: '100%',\n minHeight: '50px',\n padding: showFavouriteButton ? '18px 18px 18px 0' : '18px',\n backgroundColor: oddRow\n ? theme.palette.secondary.lightest\n : theme.palette.surface.subtle,\n borderRadius: theme.shape.borderRadius.sm,\n}))\n\nconst FavButtonContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start',\n marginTop: '-18px',\n marginRight: '15px',\n})\n\nconst FavButtonWrapper = styled(motion.div, {\n shouldForwardProp: (prop) => prop !== 'favourited',\n})(({ theme, favourited }) => ({\n background: favourited\n ? theme.palette.secondary.main\n : addAlpha(theme.palette.tertiary.main, 0.2),\n borderRadius: `${theme.shape.borderRadius.sm} 0`,\n}))\n\nconst FavButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'favourited',\n})(({ favourited }) => ({\n fontSize: '20px',\n padding: '5px',\n svg: {\n stroke: favourited ? 'white' : addAlpha('#ffffff', 0.8),\n fill: favourited ? 'white' : addAlpha('#ffffff', 0.8),\n },\n}))\n\nconst FeedbackActions = styled('div')({\n display: 'flex',\n alignItems: 'center',\n position: 'absolute',\n top: '0',\n right: '4px',\n cursor: 'pointer',\n})\n\nconst DropDownButton = styled(IconButton)({\n padding: '4px',\n fontSize: '32px',\n})\n\nconst TestimonialContainer = styled('div')({\n display: 'flex',\n flex: '1',\n})\n\nconst TestimonialContentContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n flex: '1',\n padding: `${theme.spacing(1.5)} ${theme.spacing(1)}`,\n minHeight: '44px',\n gap: theme.spacing(2),\n}))\n\nconst TestimonialText = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'publicShare',\n})(({ theme, publicShare }) => ({\n flex: '1',\n hyphens: 'auto',\n wordBreak: 'break-word',\n color: publicShare ? 'inherit' : theme.palette.tertiary.disabledText,\n}))\n\nconst NameOrgContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-start',\n alignItems: 'center',\n gap: theme.spacing(1),\n}))\n\nconst FeedbackName = styled(Typography)({\n fontWeight: 500,\n})\n\nconst ImprovementIcon = styled(ChatBubble)({\n width: '30px',\n height: '30px',\n alignSelf: 'center',\n})\n\nconst EventReportLink = styled('a')(({ theme }) => ({\n color: theme.palette.neutral.veryDark,\n textDecoration: 'none',\n span: {\n color: theme.palette.secondary.main,\n },\n}))\n\nexport const Testimonial = ({\n feedbackType,\n feedback,\n canShareReport,\n canUseFeedbackActions,\n canFavourite,\n handleViewTestimonialData,\n handleDownloadTestimonial,\n handleToggleFavourite,\n favLoading,\n oddRow,\n showNameAndOrgSection,\n speakerShortlink,\n}) => {\n const [anchorEl, setAnchorEl] = useState(null)\n\n const handleOpenDropdown = (e) => {\n setAnchorEl(e.currentTarget)\n }\n const handleCloseDropdown = () => {\n setAnchorEl(null)\n }\n\n const handleViewDataClick = (feedback) => {\n setAnchorEl(null)\n handleViewTestimonialData(feedback)\n }\n\n const handleDownloadClick = (feedback) => {\n setAnchorEl(null)\n handleDownloadTestimonial(feedback)\n }\n\n const renderFavIcon = () => {\n if (favLoading) {\n return \n }\n\n return \n }\n\n const renderFeedbackNameOrg = () => {\n return (\n \n \n
\n \n {feedback.name || 'Attendee'}\n \n {feedback.organization && (\n {feedback.organization}\n )}\n
\n
\n )\n }\n\n const renderFeedbackReportLink = () => {\n if (speakerShortlink && feedback.share_key) {\n return (\n <>\n {' '}\n \n (see talk report)\n \n \n )\n }\n }\n\n const menuItems = () => {\n if (feedbackType === 'improvement' || !canShareReport) {\n return [\n {\n title: 'View Testimonial Data',\n onClick: (feedback) => handleViewDataClick(feedback),\n },\n ]\n } else {\n return [\n {\n title: 'View Testimonial Data',\n onClick: (feedback) => handleViewDataClick(feedback),\n },\n {\n title: feedback.public_share\n ? 'Download Shareable Testimonial'\n : 'Sharing Permission Not Granted',\n onClick: feedback.public_share\n ? (feedback) => handleDownloadClick(feedback)\n : null,\n },\n ]\n }\n }\n\n const showFavouriteButton =\n canUseFeedbackActions && canFavourite && feedback.public_share\n\n if (feedbackType !== 'improvement') {\n return (\n \n {canUseFeedbackActions && (\n \n \n \n \n \n {menuItems().map((item, i) => (\n item.onClick(feedback)}\n key={item.title}\n value={item.title}\n disabled={!feedback.public_share && i === 1}>\n {item.title}\n \n ))}\n \n \n )}\n {showFavouriteButton && (\n \n \n \n handleToggleFavourite(feedback)}\n aria-label=\"Favorite\"\n disabled={favLoading}\n favourited={feedback.favourite}>\n {renderFavIcon()}\n \n \n \n \n )}\n \n \n \n \n {feedback.text}\n {renderFeedbackReportLink()}\n \n {showNameAndOrgSection && renderFeedbackNameOrg()}\n \n \n \n \n )\n } else {\n return (\n \n {canUseFeedbackActions && (\n \n \n \n \n \n {menuItems().map((item) => (\n item.onClick(feedback)}\n key={item.title}\n value={item.title}>\n {item.title}\n \n ))}\n \n \n )}\n \n \n \n {feedback.text}\n \n \n \n )\n }\n}\n","import { styled } from '@mui/system'\nimport { Skeleton, Box } from '@mui/material'\n\n// Styled components for skeleton layouts\nconst ProfileHeaderSkeleton = styled(Box)(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: '1fr auto',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(5),\n marginTop: theme.spacing(2),\n}))\n\nconst ProfileHeaderLeftSkeleton = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(2),\n}))\n\nconst ProfileMediaCarouselSkeleton = styled(Box)(({ theme }) => ({\n width: '100%',\n height: 400,\n marginBottom: theme.spacing(5),\n display: 'flex',\n gap: theme.spacing(2),\n position: 'relative',\n [theme.breakpoints.down('md')]: {\n height: 300,\n },\n [theme.breakpoints.down('sm')]: {\n height: 200,\n },\n}))\n\nconst MediaItemSkeleton = styled(Box)(({ theme }) => ({\n flex: 1,\n borderRadius: 4,\n overflow: 'hidden',\n backgroundColor: theme.palette.neutral.lightest,\n}))\n\nconst ProfileStatCardsSkeleton = styled(Box)(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fit, minmax(260px, 1fr))',\n gap: theme.spacing(2),\n marginBottom: theme.spacing(5),\n}))\n\nconst StatCardSkeleton = styled(Box)(({ theme }) => ({\n padding: theme.spacing(2.5),\n borderRadius: 4,\n backgroundColor: theme.palette.base.white,\n boxShadow: theme.shadows[1],\n height: 150,\n}))\n\nconst ProfileSpeakerInfoSkeleton = styled(Box)(({ theme }) => ({\n marginBottom: theme.spacing(5),\n}))\n\nconst ProfileAttributesSkeleton = styled(Box)(({ theme }) => ({\n marginBottom: theme.spacing(5),\n}))\n\nconst ProfileFeedbackListSkeleton = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n marginBottom: theme.spacing(6),\n}))\n\nconst FeedbackGridSkeleton = styled(Box)(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(406px, 0.5fr))',\n gap: theme.spacing(2.5),\n [theme.breakpoints.down('lg')]: {\n gridTemplateColumns: 'repeat(auto-fill, minmax(406px, 1fr))',\n },\n [theme.breakpoints.down('sm')]: {\n gridTemplateColumns: 'repeat(auto-fill, minmax(100%, 1fr))',\n },\n}))\n\nconst ProfileBiographySkeleton = styled(Box)(({ theme }) => ({\n marginBottom: theme.spacing(6),\n}))\n\nconst ProfileSpeechTopicListSkeleton = styled(Box)(({ theme }) => ({\n marginBottom: theme.spacing(6),\n}))\n\nconst ProfileEventListSkeleton = styled(Box)(({ theme }) => ({\n marginBottom: theme.spacing(6),\n}))\n\n// Header section styled components\nconst HeaderRightSkeleton = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n})\n\n// Stat section styled components\nconst StatContentSkeleton = styled(Box)(({ theme }) => ({\n marginTop: theme.spacing(2),\n}))\n\n// Feedback section styled components\nconst FeedbackHeaderContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(2),\n}))\n\nconst FeedbackItemContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n width: '100%',\n height: '100%',\n minHeight: '50px',\n padding: '18px',\n backgroundColor: theme.palette.surface.subtle,\n borderRadius: 4,\n}))\n\nconst FeedbackItemContent = styled(Box)({\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n gap: 8,\n})\n\nconst FeedbackItemFooter = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n marginTop: theme.spacing(1),\n gap: theme.spacing(1),\n}))\n\n// Biography section styled components\nconst BiographyContainer = styled(Box)(({ theme }) => ({\n position: 'relative',\n background: theme.palette.neutral.lightest,\n padding: theme.spacing(3),\n maxWidth: '800px',\n marginBottom: theme.spacing(6),\n}))\n\nconst BiographyContent = styled(Box)(({ theme }) => ({\n marginTop: theme.spacing(2),\n}))\n\n// Speech topics section styled components\nconst SpeechTopicHeaderContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(2),\n}))\n\nconst SpeechTopicGrid = styled(Box)(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(406px, 0.5fr))',\n gap: theme.spacing(2.5),\n}))\n\nconst SpeechTopicCard = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: theme.palette.base.white,\n overflow: 'hidden',\n width: '100%',\n maxWidth: '430px',\n borderRadius: 4,\n}))\n\nconst SpeechTopicContent = styled(Box)(({ theme }) => ({\n padding: `${theme.spacing(1.5)} ${theme.spacing(2)}`,\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n}))\n\nconst SpeechTopicOutcomesList = styled(Box)(({ theme }) => ({\n paddingLeft: theme.spacing(2.5),\n}))\n\n// Event list section styled components\nconst EventListHeaderContainer = styled(Box)({\n marginBottom: 16,\n})\n\nconst EventListTableHeader = styled(Box)(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing(2),\n borderBottom: '1px solid #eee',\n}))\n\nconst EventListTableRow = styled(Box)(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing(2),\n borderBottom: '1px solid #eee',\n}))\n\n// Attribute section styled components\nconst AttributeContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n maxWidth: '340px',\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(6),\n}))\n\nconst AttributeRow = styled(Box)({\n display: 'grid',\n gridTemplateColumns: '92px 1fr 50px',\n alignItems: 'center',\n marginBottom: '1rem',\n})\n\n// Header Skeleton\nexport const HeaderSkeleton = () => (\n \n \n \n \n \n \n \n \n \n)\n\n// Media Carousel Skeleton\nexport const MediaCarouselSkeleton = () => (\n \n {[1, 2, 3, 4].map((item) => (\n \n \n \n ))}\n \n)\n\n// Stat Cards Skeleton\nexport const StatCardsSkeleton = () => (\n \n {[1, 2, 3, 4].map((item) => (\n \n \n \n \n \n \n \n ))}\n \n)\n\n// Speaker Info Skeleton\nexport const SpeakerInfoSkeleton = () => (\n \n \n \n {[1, 2, 3].map((item) => (\n \n ))}\n \n \n \n \n \n)\n\n// Attributes Skeleton\nexport const AttributesSkeleton = () => (\n \n \n \n {[1, 2, 3, 4, 5].map((item) => (\n \n \n \n \n \n ))}\n \n \n)\n\n// Feedback List Skeleton\nexport const FeedbackListSkeleton = () => (\n \n \n \n \n \n \n {[1, 2, 3, 4, 5, 6].map((item) => (\n \n \n \n \n \n \n \n \n \n \n \n ))}\n \n \n)\n\n// Biography Skeleton\nexport const BiographySkeleton = () => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\n// Speech Topic List Skeleton\nexport const SpeechTopicListSkeleton = () => (\n \n \n \n \n \n \n {[1, 2].map((item) => (\n \n {/* Video Tile Skeleton */}\n \n \n {/* Content Section Skeleton */}\n \n {/* Title */}\n \n \n {/* Key Outcomes Title */}\n \n \n {/* Outcomes List */}\n \n \n \n \n \n \n \n ))}\n \n \n)\n\n// Event List Skeleton\nexport const EventListSkeleton = () => (\n \n \n \n \n \n \n \n \n \n \n \n {[1, 2, 3, 4, 5].map((item) => (\n \n \n \n \n \n \n ))}\n \n \n)\n\nexport const FeedbackSummarySkeleton = () => (\n \n)\n \n\n","import { useEffect, useState, useRef, useContext } from 'react'\nimport { isMobileOnly } from 'react-device-detect'\nimport { motion } from 'framer-motion/dist/framer-motion'\nimport { styled } from '@mui/system'\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n Typography,\n Skeleton,\n Button,\n IconButton,\n Tooltip,\n useTheme,\n} from '@mui/material'\n\nimport CloseIcon from '@mui/icons-material/Close'\nimport { ReactComponent as EyeIcon } from '../../icons/eyeIcon_16x16.svg'\nimport { ReactComponent as EyeOffIcon } from '../../icons/eyeOffIcon_16x16.svg'\n\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport usePolling from '../../hooks/usePolling'\n\nimport TestimonialStatImage from './TestimonialStatImage'\nimport FeedbackAnswersParent from './FeedbackAnswersParent'\nimport { Testimonial } from './Testimonial'\n\nimport { FeedbackListSkeleton } from '../publicProfile/SkeletonLoaders'\n\nconst FeedbackItem = styled(motion.div)({\n position: 'relative',\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-start',\n})\n\nconst MobileImg = styled('img')({\n width: '100%',\n height: 'auto',\n display: 'block',\n})\n\nconst FeedbackListHeader = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(1),\n alignItems: 'center',\n marginBottom: theme.spacing(2.5),\n}))\n\nconst FeedbackList = styled('div')(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(406px, 0.5fr))',\n gap: theme.spacing(2.5),\n [theme.breakpoints.down('lg')]: {\n gridTemplateColumns: 'repeat(auto-fill, minmax(406px, 1fr))',\n },\n [theme.breakpoints.down('sm')]: {\n gridTemplateColumns: 'repeat(auto-fill, minmax(100%, 1fr))',\n },\n}))\n\nconst ModalFeedbackList = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2.5),\n}))\n\nconst ViewAllButton = styled(Button)(({ theme }) => ({\n paddingLeft: theme.spacing(1),\n paddingRight: theme.spacing(1),\n}))\n\nconst QuestionPublicIcon = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'isQuestionPublic',\n})(({ theme, isQuestionPublic }) => ({\n display: 'flex',\n alignItems: 'center',\n svg: {\n path: {\n stroke: isQuestionPublic\n ? theme.palette.neutral.veryDark\n : theme.palette.error.semiDark,\n },\n },\n}))\n\nconst ReportCardFeedbackList = ({\n sortedFeedback,\n title,\n isLoading,\n subTitle,\n reportData,\n shareKey,\n canShareReport,\n canUseFeedbackActions,\n canFavourite = false,\n feedbackType = null,\n setReportData,\n isCustomQuestion,\n isQuestionPublic,\n question,\n isEventOwner,\n leftNavOpen,\n handleOpenSocialShare,\n customQuestionId,\n handleToggleVisibility = () => {},\n}) => {\n const downloadRef = useRef()\n const testimonialContainerRef = useRef()\n\n const [open, setOpen] = useState(false)\n const [feedbackDataOpen, setFeedbackDataOpen] = useState(false)\n const [favLoadingId, setFavLoadingId] = useState('')\n const [selectedTestimonial, setSelectedTestimonial] = useState(null)\n const [mobileImgSrc, setMobileImgSrc] = useState('')\n\n const { showFullPageLoader, hideFullPageLoader, setNotification } =\n useContext(AuthenticationContext)\n\n const { data, startPolling } = usePolling({\n apiMethod: Api.pollSocialShareImageStatus,\n shouldStopPolling: (data) => data.status === 'completed',\n maxTries: 20,\n })\n\n const theme = useTheme()\n\n const [itemsPerRow, setItemsPerRow] = useState(1)\n\n useEffect(() => {\n const fetchImageAsBase64 = async (url) => {\n try {\n const response = await fetch(url)\n const blob = await response.blob()\n const reader = new FileReader()\n\n reader.onloadend = () => {\n setMobileImgSrc(reader.result) // Set Base64 Data URL\n }\n\n reader.readAsDataURL(blob) // Convert Blob to Base64\n } catch (error) {\n setNotification(\n 'Oops, looks like there was an issue downloading your image. Please try again. If the problem persists, contact us at hello@talkadot.com!',\n 'error'\n )\n } finally {\n hideFullPageLoader()\n }\n }\n\n if (data?.status === 'completed') {\n fetchImageAsBase64(data.image_url)\n // setMobileShareOpen(true)\n } else if (data?.status === 'failed') {\n setNotification(\n 'Oops, looks like there was an issue downloading your image. Please try again. If the problem persists, contact us at hello@talkadot.com!',\n 'error'\n )\n hideFullPageLoader()\n }\n }, [data])\n\n useEffect(() => {\n if (mobileImgSrc) {\n handleOpenSocialShare()\n }\n }, [mobileImgSrc])\n\n useEffect(() => {\n const calculateItemsPerRow = () => {\n if (testimonialContainerRef.current) {\n const containerWidth = testimonialContainerRef.current.offsetWidth\n const itemWidth = 406 // Minimum item width from minmax(406px, ...)\n const gap = 20 // Gap size (theme.spacing(2.5))\n\n // Account for gaps in the calculation\n const effectiveItemWidth = itemWidth + gap\n setItemsPerRow(\n Math.max(1, Math.floor((containerWidth + gap) / effectiveItemWidth))\n )\n }\n }\n\n // Delay calculation based on the transition duration\n const transitionDuration = leftNavOpen\n ? theme.transitions.duration.enteringScreen\n : theme.transitions.duration.leavingScreen\n\n const timeoutId = setTimeout(() => {\n calculateItemsPerRow()\n }, transitionDuration)\n\n // Also calculate immediately on resize\n window.addEventListener('resize', calculateItemsPerRow)\n\n return () => {\n clearTimeout(timeoutId)\n window.removeEventListener('resize', calculateItemsPerRow)\n }\n }, [\n leftNavOpen,\n theme.transitions.duration.enteringScreen,\n theme.transitions.duration.leavingScreen,\n ])\n\n const topFeedback = sortedFeedback?.slice(0, 9)\n\n const handleViewTestimonialData = (feedback) => {\n setSelectedTestimonial(feedback)\n setFeedbackDataOpen(true)\n }\n\n const handleMobileImageDownload = async ({ selector, feedback }) => {\n const params = {\n social_share_download: {\n share_key: shareKey,\n element_id: selector,\n answer_id: feedback.answer_id,\n custom_question_id: customQuestionId,\n },\n }\n\n showFullPageLoader()\n\n const res = await Api.getSocialShareImage(params)\n\n const taskId = res.task_id\n\n if (taskId) {\n startPolling({ task_id: taskId })\n } else {\n console.log('No task id')\n hideFullPageLoader()\n }\n }\n\n const handleDownloadTestimonial = async (feedback) => {\n if (isMobileOnly || window.innerWidth < 960) {\n handleMobileImageDownload({\n selector: 'testimonials-share-image',\n feedback,\n })\n } else {\n setSelectedTestimonial(feedback)\n handleOpenSocialShare(\n \n )\n }\n }\n\n const handleToggleFavourite = async (feedback) => {\n try {\n setFavLoadingId(feedback.answer_id)\n\n const params = {\n answer: {\n id: feedback.answer_id,\n submission_id: feedback.submission_id,\n favourite: feedback.favourite ? !feedback.favourite : true,\n },\n }\n\n const res = await Api.updateAnswer(params)\n\n if (!res.errors) {\n setFavLoadingId('')\n setReportData(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n setFavLoadingId('')\n setNotification(err)\n }\n }\n\n const renderInnerFeedback = ({ feedbackType, feedback, oddRow }) => {\n return (\n \n )\n }\n\n const spring = {\n type: 'spring',\n stiffness: 400,\n damping: 30,\n }\n\n const renderList = ({ list, singleColumn = false }) => {\n if (list.length === 0) {\n return No responses available\n }\n\n return list.map((feedback, i) => {\n const rowIndex = Math.floor(i / itemsPerRow)\n const oddRow = singleColumn ? i % 2 === 0 : rowIndex % 2 === 0\n\n return (\n \n {renderInnerFeedback({ feedbackType, feedback, oddRow })}\n \n )\n })\n }\n\n const showPublicIcon =\n isEventOwner && (isCustomQuestion || feedbackType === 'improvement')\n\n const canToggleVisibility = !!(isEventOwner && question && isCustomQuestion)\n\n if (isLoading) {\n return \n }\n return (\n
\n \n {title}\n {showPublicIcon && (\n \n {\n handleToggleVisibility(question)\n }}>\n {\n handleToggleVisibility(question)\n }}\n disabled={!canToggleVisibility}>\n {isQuestionPublic ? : }\n \n \n \n )}\n {!isLoading && sortedFeedback?.length > topFeedback?.length && (\n setOpen(true)}>\n (View All)\n \n )}\n \n {subTitle && (\n \n \"{subTitle}\"\n \n )}\n \n {renderList({ list: topFeedback })}\n \n setOpen(false)}>\n setOpen(false)}\n sx={{ position: 'absolute', right: 0, top: 0 }}>\n \n \n {title}\n \n \n {renderList({ list: sortedFeedback, singleColumn: true })}\n \n \n \n {/* This shows the metadata for the feedback */}\n setFeedbackDataOpen(false)}>\n setFeedbackDataOpen(false)}\n sx={{ position: 'absolute', right: 0, top: 0 }}>\n \n \n \n \n
\n )\n}\n\nexport default ReportCardFeedbackList\n","// import { styled } from '@mui/system'\nimport Typography from '@mui/material/Typography'\nimport Skeleton from '@mui/material/Skeleton'\nimport { FaUsers } from 'react-icons/fa'\n// import { ReactComponent as AttendeesIcon } from '../../icons/attendees.svg'\n\n// const StatWidgetSection = styled('div')(({ theme }) => ({\n// display: 'flex',\n// flexDirection: 'column',\n// alignItems: 'center',\n// marginBottom: theme.spacing(3.75),\n// }))\n\nconst TotalAttendees = ({ totalResponses, isLoading }) => (\n
\n {/* */}\n {isLoading ? (\n \n ) : (\n \n \n {totalResponses}\n {' '}\n responses\n \n )}\n {isLoading ? (\n \n ) : (\n
\n
\n \n
\n
\n )}\n {/*
*/}\n
\n)\n\nexport default TotalAttendees\n","// import { styled } from '@mui/system'\nimport { Typography, Skeleton } from '@mui/material'\nimport { CircularProgressbar, buildStyles } from 'react-circular-progressbar'\nimport 'react-circular-progressbar/dist/styles.css'\nimport { Chart as ChartJS, ArcElement, Tooltip } from 'chart.js'\nimport { Doughnut } from 'react-chartjs-2'\nimport { useTheme } from '@mui/material/styles'\n\nChartJS.register(ArcElement, Tooltip)\n\n// const StatContainer = styled('div')(({ theme }) => ({\n// display: 'flex',\n// flexDirection: 'column',\n// alignItems: 'center',\n// marginBottom: theme.spacing(3.75),\n// }))\n\nconst TalkValue = ({\n ratingsBreakdown,\n isLoading,\n eventType,\n isProfile = false,\n speaker,\n}) => {\n const theme = useTheme()\n const { positives, negatives, total } = ratingsBreakdown\n const rating = parseInt((positives / total) * 100) || 0\n\n const chartData = {\n labels: ['Yes', 'No'],\n datasets: [\n {\n data: [positives, negatives],\n backgroundColor: [\n theme.palette.eventReport.circleChartBlue,\n theme.palette.eventReport.circleChartGrey,\n ],\n borderWidth: 0,\n },\n ],\n }\n\n const options = {\n plugins: {\n legend: {\n display: false,\n },\n },\n }\n\n const renderHeaderContent = () => {\n if (!eventType) {\n return ` found ${isProfile ? speaker?.name + \"'s\" : 'this'} session${\n isProfile ? 's' : ''\n } valuable`\n }\n\n if (eventType.toUpperCase() === 'GLOBAL') {\n return ' found this event valuable'\n }\n\n if (eventType.toUpperCase() === 'TOTAL_STATISTICS') {\n return ' found the sessions valuable'\n }\n\n return ' found this session valuable'\n }\n\n return (\n
\n {/* */}\n {isLoading ? (\n \n ) : (\n \n \n {rating}%\n \n {renderHeaderContent()}\n \n )}\n {isLoading ? (\n \n ) : (\n
\n
\n \n
\n
\n
\n \n Valuable\n \n \n
\n
\n \n Not Valuable\n \n \n
\n
\n
\n )}\n {/*
*/}\n
\n )\n}\n\nexport default TalkValue\n","import { Typography, Skeleton } from '@mui/material'\nimport { CircularProgressbar, buildStyles } from 'react-circular-progressbar'\nimport 'react-circular-progressbar/dist/styles.css'\nimport { Chart as ChartJS, ArcElement, Tooltip } from 'chart.js'\nimport { Doughnut } from 'react-chartjs-2'\nimport { useTheme } from '@mui/material/styles'\n\nChartJS.register(ArcElement, Tooltip)\n\nconst TalkReattend = ({ reattendBreakdown, isLoading, speaker, eventType }) => {\n const theme = useTheme()\n const { d_yes, p_yes, p_no, d_no, total_reattend_answers } = reattendBreakdown\n const reattendRate =\n parseInt(((d_yes + p_yes) / total_reattend_answers) * 100) || 0\n\n const chartData = {\n labels: ['Definitely', 'Probably', 'Probably Not', 'Definitely Not'],\n datasets: [\n {\n data: [d_yes, p_yes, p_no, d_no],\n backgroundColor: [\n theme.palette.eventReport.circleChartBlue,\n theme.palette.eventReport.circleChartLightBlue,\n theme.palette.eventReport.circleChartGrey,\n theme.palette.eventReport.circleChartLightGrey,\n ],\n borderWidth: 0,\n },\n ],\n }\n\n const options = {\n plugins: {\n legend: {\n display: false,\n },\n },\n }\n\n const renderHeaderContent = () => {\n if (!eventType && !speaker.name) {\n return ' want to hear this speaker again'\n }\n\n if (!eventType && speaker.name) {\n return ` want to hear ${speaker.name} speak again`\n }\n\n if (eventType.toUpperCase() === 'GLOBAL') {\n return ' want to attend this event again'\n }\n\n if (eventType.toUpperCase() === 'WORKSHOP') {\n return ' want to attend a session like this again'\n }\n\n if (eventType.toUpperCase() === 'TOTAL_STATISTICS') {\n return ' want to hear the presenters again'\n }\n\n return ' want to hear this speaker again'\n }\n\n return (\n
\n {isLoading ? (\n \n ) : (\n \n \n {reattendRate}%\n \n {renderHeaderContent()}\n \n )}\n {isLoading ? (\n \n ) : (\n
\n
\n \n
\n
\n
\n \n Definitely Yes\n \n \n
\n
\n \n Probably Yes\n \n \n
\n
\n
\n
\n \n Definitely Not\n \n \n
\n
\n \n Probably Not\n \n \n
\n
\n
\n )}\n
\n )\n}\n\nexport default TalkReattend\n","import { useTheme } from '@mui/material/styles'\nimport Typography from '@mui/material/Typography'\nimport Skeleton from '@mui/material/Skeleton'\n\nconst TalkEngagement = ({\n isLoading,\n engagementBreakdown,\n isProfile = false,\n speaker,\n}) => {\n const theme = useTheme()\n\n const ACTIONABLE = 'actionable'\n const ENGAGING = 'engaging'\n const INSPIRING = 'inspiring'\n const RELEVANT = 'relevant'\n const INTERACTIVE = 'interactive'\n\n const isValidLabel = (label) => {\n return !label?.includes('{{') && label?.trim().split(/\\s+/).length <= 2\n }\n\n const formatLabelFromLegacyKeywords = (content) => {\n if (content.includes(ACTIONABLE)) {\n return ACTIONABLE\n }\n\n if (content.includes(ENGAGING)) {\n return ENGAGING\n }\n\n if (content.includes(INSPIRING)) {\n return INSPIRING\n }\n\n if (content.includes(RELEVANT)) {\n return RELEVANT\n }\n\n if (content.includes(INTERACTIVE)) {\n return INTERACTIVE\n }\n\n return\n }\n\n const formatLabel = (label) => {\n let formattedLabel = formatLabelFromLegacyKeywords(label)\n\n if (!formattedLabel) {\n return label\n }\n\n return formattedLabel\n }\n\n const sortedEngagementBreakdown = engagementBreakdown\n .map((engagementStat, i) => {\n if (engagementStat.label) {\n return {\n ...engagementStat,\n label: formatLabel(engagementStat.label),\n }\n } else {\n return null\n }\n })\n .filter((engagementStat) =>\n isValidLabel(engagementStat?.label) ? { ...engagementStat } : null\n )\n .sort((a, b) => parseFloat(b?.avg_value) - parseFloat(a?.avg_value))\n\n const makeBarValue = (engagementStatValue) => {\n if (!engagementStatValue) {\n return\n } else {\n // All the numbers are on a scale of 1-5, so need to adjust this for a scale of 100%\n return parseFloat(engagementStatValue * 20).toFixed(1)\n }\n }\n\n const COLOR_CODES = [\n theme.palette.error.main,\n theme.palette.success.semiDark,\n theme.palette.primary.main,\n theme.palette.secondary.main,\n theme.palette.error.main,\n theme.palette.success.semiDark,\n theme.palette.primary.main,\n theme.palette.secondary.main,\n ]\n\n const renderEngagementRow = (engagementType, index) => {\n const barValue = makeBarValue(engagementType.avg_value)\n\n return (\n engagementType.label && (\n
\n
\n \n {engagementType.label}\n \n
\n
\n {barValue ? (\n \n {barValue}%\n
\n ) : (\n
N/A
\n )}\n
\n
\n )\n )\n }\n\n const renderLoadingState = () => (\n \n )\n\n const renderEngagementStats = () => (\n
\n {engagementBreakdown?.length > 0 && (\n \n \n {isProfile\n ? `${speaker?.name}'s top attributes`\n : 'Attendees found this session'}\n \n \n )}\n
\n
\n {sortedEngagementBreakdown?.slice(0, 4)?.map((engagementType, i) => {\n return renderEngagementRow(engagementType, i)\n })}\n
\n
\n
\n )\n\n return isLoading ? renderLoadingState() : renderEngagementStats()\n}\n\nexport default TalkEngagement\n","import React from 'react'\nimport Typography from '@mui/material/Typography';\nimport Skeleton from '@mui/material/Skeleton'\n\nconst EventPlannerEngagement = ({ isLoading, engagementBreakdown }) => {\n const sortedEngagementBreakdown = engagementBreakdown?.sort((a, b) => parseFloat(b.avg_value) - parseFloat(a.avg_value));\n const showSection = engagementBreakdown?.length > 0\n\n const makeBarValue = (engagementStatValue) => {\n if (!engagementStatValue) {\n return\n } else {\n // All the numbers are on a scale of 1-5, so need to adjust this for a scale of 100%\n return parseFloat(engagementStatValue*20).toFixed(1)\n }\n }\n\n const COLOR_CODES = ['red', 'green', 'orange', '#178ECB', 'red', 'green', 'orange', '#178ECB']\n\n const renderEngagementRow = (engagementStat, index) => {\n const barValue = makeBarValue(engagementStat.avg_value)\n\n return(\n
\n
\n {engagementStat.label}\n
\n
\n { \n barValue ?\n
\n {barValue}%\n
:
N/A
\n }\n
\n
\n )\n }\n\n const renderLoadingState = () => (\n \n )\n\n const renderEngagementStats = () => (\n
\n \n Attendees found this event\n \n
\n
\n { sortedEngagementBreakdown.map((engagementStat, i) => {\n return renderEngagementRow(engagementStat, i)\n })}\n
\n
\n
\n )\n\n return isLoading ? renderLoadingState() : renderEngagementStats()\n}\n\nexport default EventPlannerEngagement","import { forwardRef } from 'react'\nimport { styled } from '@mui/system'\nimport { Button } from '@mui/material'\n\nimport TotalAttendees from './TotalAttendees'\nimport TalkValue from './TalkValue'\nimport TalkReattend from './TalkReattend'\nimport TalkEngagement from './TalkEngagement'\nimport SocialShareTemplate from './SocialShareTemplate'\nimport EventPlannerEngagement from './EventPlannerEngagement'\n\nimport { downloadComponentAsPng } from '../common/helpers'\nimport { trackSocialDataShare } from '../../services/metrics'\n\nconst ReportDownloadContainer = styled('div')({\n '@media (max-width:960px)': {\n marginTop: '-2000px',\n position: 'absolute',\n },\n})\n\nconst ReportWrapper = styled('div', {\n shouldForwardProp: (prop) => prop !== 'showReattendStats',\n})(({ showReattendStats }) => ({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-around',\n flex: 1,\n paddingTop: `${!showReattendStats ? '45px' : '0'}`,\n}))\n\nconst DownloadButton = styled(Button)(({ theme }) => ({\n position: 'absolute',\n top: theme.spacing(2),\n right: theme.spacing(9),\n color: theme.palette.base.white,\n}))\n\nconst ReportCardStatImage = forwardRef(\n ({ reportData, shareKey, isLoading }, ref) => {\n const showEventPlannerVersion =\n reportData?.speaker?.isEventPlanner &&\n reportData.eventType?.toUpperCase() !== 'KEYNOTE'\n const showEngagementStats =\n reportData.eventType?.toUpperCase() !== 'WORKSHOP'\n const showReattendStats =\n reportData.reattendBreakdown?.total_reattend_answers > 0\n\n const renderTalkEngagement = () => {\n // TODO:\n // Clean this up once we decide how deep to go\n // with the event planner system\n if (showEventPlannerVersion) {\n const sortedBreakdown = reportData.engagementBreakdown?.sort(\n (a, b) => parseFloat(b.avg_value) - parseFloat(a.avg_value)\n )\n\n // Only show the top 4 in the image\n const statSet = sortedBreakdown.slice(0, 4)\n\n return (\n \n )\n } else {\n return (\n \n )\n }\n }\n\n return (\n \n \n \n
\n \n {showEngagementStats && renderTalkEngagement()}\n
\n \n {showReattendStats && (\n \n )}\n \n \n
\n \n {\n trackSocialDataShare()\n downloadComponentAsPng(ref, `talkadot-social-share`)\n }}>\n Click To Download\n \n
\n )\n }\n)\n\nexport default ReportCardStatImage\n","import { useEffect, useState, useRef, useContext } from 'react'\nimport { styled } from '@mui/system'\nimport {\n Typography,\n Button,\n ClickAwayListener,\n Grow,\n Paper,\n Popper,\n MenuItem,\n MenuList,\n} from '@mui/material'\nimport { ListItemIcon } from '@material-ui/core'\nimport ShareIcon from '@mui/icons-material/Share'\nimport ContentCopyIcon from '@mui/icons-material/ContentCopy'\nimport MailOutlineIcon from '@mui/icons-material/MailOutline'\nimport ChatBubbleOutlineIcon from '@mui/icons-material/ChatBubbleOutline'\nimport { isMobileOnly } from 'react-device-detect'\n\nimport Api from '../../services/api'\nimport usePolling from '../../hooks/usePolling'\n\nimport ReportCardStatImage from './ReportCardStatImage'\nimport TestimonialStatImage from './TestimonialStatImage'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { eventReportCardShareLink } from '../common/helpers'\n\nimport { IoShareOutline } from 'react-icons/io5'\n\nconst MobileImg = styled('img')({\n width: '100%',\n height: 'auto',\n display: 'block',\n})\n\nconst ShareButton = styled(Button)({\n position: 'sticky',\n top: '0',\n right: '0',\n color: 'black',\n textTransform: 'capitalize',\n p: {\n display: 'flex',\n alignItems: 'center',\n padding: '0.5rem 1rem',\n svg: {\n marginRight: '5px',\n fontSize: '1.25rem',\n },\n '&:hover': {\n color: 'orange',\n },\n },\n})\n\nconst ShareEventReportCard = ({\n reportData,\n shareKey,\n isLoading,\n sortedFeedback,\n handleOpenSocialShare,\n}) => {\n const { setNotification, showFullPageLoader, hideFullPageLoader, authData } =\n useContext(AuthenticationContext)\n const { user } = authData\n\n const [open, setOpen] = useState(false)\n const [mobileImgSrc, setMobileImgSrc] = useState('')\n\n const anchorRef = useRef(null)\n const downloadRef = useRef()\n\n const { data, startPolling } = usePolling({\n apiMethod: Api.pollSocialShareImageStatus,\n shouldStopPolling: (data) => data.status === 'completed',\n maxTries: 20,\n })\n\n useEffect(() => {\n const fetchImageAsBase64 = async (url) => {\n try {\n const response = await fetch(url)\n const blob = await response.blob()\n const reader = new FileReader()\n\n reader.onloadend = () => {\n setMobileImgSrc(reader.result) // Set Base64 Data URL\n }\n\n reader.readAsDataURL(blob) // Convert Blob to Base64\n } catch (error) {\n setNotification(\n 'Oops, looks like there was an issue downloading your image. Please try again. If the problem persists, contact us at hello@talkadot.com!',\n 'error'\n )\n } finally {\n hideFullPageLoader()\n }\n }\n\n if (data?.status === 'completed') {\n fetchImageAsBase64(data.image_url)\n } else if (data?.status === 'failed') {\n setNotification(\n 'Oops, looks like there was an issue downloading your image. Please try again. If the problem persists, contact us at hello@talkadot.com!',\n 'error'\n )\n hideFullPageLoader()\n }\n }, [data])\n\n useEffect(() => {\n if (mobileImgSrc) {\n handleOpenSocialShare()\n }\n }, [mobileImgSrc])\n\n const reportCardShortlink = reportData?.isUserEvent ? user.shortlink : null\n\n const filteredFeedback = sortedFeedback.filter(\n (feedback) => feedback.public_share === true\n )\n\n const handleToggle = () => {\n setOpen((prevOpen) => !prevOpen)\n }\n\n const handleClose = (event) => {\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\n return\n }\n\n setOpen(false)\n }\n\n function handleListKeyDown(event) {\n if (event.key === 'Tab') {\n event.preventDefault()\n setOpen(false)\n } else if (event.key === 'Escape') {\n setOpen(false)\n }\n }\n\n const handleCopy = () => {\n setNotification('Report Link Copied To Clipboard', 'success')\n window.navigator.clipboard.writeText(\n eventReportCardShareLink(reportCardShortlink, shareKey)\n )\n }\n\n const handleMailerClick = () => {\n const email = ''\n const subject = 'Event Feedback Report'\n const body = `Check out how attendees liked my talk: ${eventReportCardShareLink(\n reportCardShortlink,\n shareKey\n )}`\n const mailData = `mailto:${email}?subject=${\n encodeURIComponent(subject) || ''\n }&body=${encodeURIComponent(body) || ''}`\n window.open(mailData)\n }\n\n const handleMobileImageDownload = async (selector) => {\n const params = {\n social_share_download: {\n share_key: shareKey,\n element_id: selector,\n },\n }\n\n showFullPageLoader()\n\n const res = await Api.getSocialShareImage(params)\n\n const taskId = res.task_id\n\n if (taskId) {\n startPolling({ task_id: taskId })\n } else {\n console.log('No task id')\n hideFullPageLoader()\n }\n }\n\n const handleDownloadReport = async () => {\n if (isMobileOnly || window.innerWidth < 960) {\n handleMobileImageDownload('report-card-share-image')\n } else {\n handleOpenSocialShare(\n \n )\n }\n }\n\n const handleDownloadTestimonials = async () => {\n if (isMobileOnly || window.innerWidth < 960) {\n handleMobileImageDownload('testimonials-share-image')\n } else {\n handleOpenSocialShare(\n \n )\n }\n }\n\n // return focus to the button when we transitioned from !open -> open\n const prevOpen = useRef(open)\n useEffect(() => {\n if (prevOpen.current === true && open === false) {\n anchorRef.current.focus()\n }\n\n prevOpen.current = open\n }, [open])\n\n return (\n <>\n \n \n \n Share\n \n \n \n {({ TransitionProps, placement }) => (\n \n \n \n \n \n \n \n \n Download Report\n \n \n \n \n \n Download Testimonials\n \n \n \n \n \n Copy Report Link\n \n \n \n \n \n Email Report\n \n \n \n \n \n )}\n \n \n )\n}\n\nexport default ShareEventReportCard\n","import { styled } from '@mui/system'\nimport { Typography, Tooltip, IconButton } from '@mui/material'\n\nimport { ReactComponent as EyeIcon } from '../../icons/eyeIcon_16x16.svg'\nimport { ReactComponent as EyeOffIcon } from '../../icons/eyeOffIcon_16x16.svg'\n\nimport TableActionsDropdown from '../common/TableActionsDropdown'\n\nconst CardContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'socialShare',\n})(({ theme, colSpan = 1, socialShare }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: socialShare ? theme.spacing(0) : theme.spacing(5),\n minHeight: '185px',\n borderRadius: theme.shape.borderRadius.sm,\n padding: socialShare ? theme.spacing(0) : theme.spacing(4),\n border: socialShare\n ? 'none'\n : `1px solid ${theme.palette.neutral.extraLight}`,\n flex: 1,\n gridColumn: `span ${colSpan}`,\n [theme.breakpoints.down('lg')]: {\n gridColumn: 'span 1', // Restrict to one column on small screens\n },\n}))\n\nconst CardHeader = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n gap: theme.spacing(1),\n}))\n\nconst CardHeaderLeft = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n}))\n\nconst CardHeaderRight = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(1),\n alignItems: 'flex-start',\n}))\n\nconst QuestionPublicIcon = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'isQuestionPublic',\n})(({ theme, isQuestionPublic }) => ({\n padding: '10px',\n svg: {\n path: {\n stroke: isQuestionPublic\n ? theme.palette.neutral.veryDark\n : theme.palette.error.semiDark,\n },\n },\n}))\n\nconst CardContent = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flex: 1,\n})\n\nconst ResponseCountContent = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.main,\n}))\n\nconst CustomQuestionCard = ({\n question,\n isEventOwner,\n children,\n handleSocialShareDownload,\n socialShare = false,\n handleToggleVisibility,\n}) => {\n const renderQuestionType = () => {\n switch (question.question_type) {\n case 'MULTIPLE_CHOICE':\n return 'Multiple Choice'\n case 'FREE_FLOW':\n return 'Long Text'\n case 'EMOJI_SCALE':\n return '5 Point Scale'\n case 'BOOLEAN':\n return 'Yes / No'\n case 'NPS':\n return 'Net Promoter Score®'\n default:\n return ''\n }\n }\n\n const totalResponses = question.answers.length\n\n const colSpan =\n question.question_type === 'MULTIPLE_CHOICE' &&\n question.possible_answers.length > 5\n ? 2\n : 1\n\n return (\n \n \n \n {!socialShare && (\n {renderQuestionType()}\n )}\n {question.content}\n \n {totalResponses} {totalResponses === 1 ? 'response' : 'responses'}\n \n \n \n {isEventOwner && !socialShare && (\n <>\n \n {\n handleToggleVisibility(question)\n }}>\n {question.isQuestionPublic ? : }\n \n \n {\n handleSocialShareDownload()\n },\n },\n ]}\n />\n \n )}\n \n \n {children}\n \n )\n}\n\nexport default CustomQuestionCard\n","export const colors = {\n neutral: {\n 50: '#F7F8F9', // lightest\n 100: '#E7EAEE', // extraLight\n 200: '#D0D5DD', // veryLight\n 300: '#B8C0CC', // light\n 400: '#A0ABBB', // semiLight\n 500: '#64748B', // main\n 600: '#4B5768', // semiDark\n 700: '#323A46', // dark\n 800: '#191D23', // veryDark\n 900: '#0D0F11', // darkest\n },\n primaryBlue: {\n 50: '#E9F7FD',\n 100: '#D2F0FB',\n 200: '#90D9F6',\n 300: '#4DC2F0',\n 400: '#20B3EC',\n 500: '#1197CB',\n 600: '#0F84B2',\n 700: '#0D7198',\n 800: '#0B5E7F',\n 900: '#06394C',\n },\n primaryOrange: {\n 50: '#FFFAF2',\n 100: '#FFF0D9',\n 200: '#FFC266',\n 300: '#FFA826',\n 400: '#FF9E0D',\n 500: '#FF9900',\n 600: '#FC7E1E',\n 700: '#D9640C',\n 800: '#A74800',\n 900: '#402600',\n },\n accentYellow: {\n 50: '#FFF9EA',\n 100: '#FFF4D5',\n 200: '#FFE295',\n 300: '#FFD155',\n 400: '#FFC62B',\n 500: '#FFBA00',\n 600: '#D97706',\n 700: '#B45309',\n 800: '#92400E',\n 900: '#78350F',\n },\n success: {\n 50: '#F0FBF1',\n 100: '#E2F6E3',\n 200: '#B5EAB9',\n 300: '#98E19E',\n 400: '#7AD982',\n 500: '#4ECC58',\n 600: '#2FA439',\n 700: '#27892F',\n 800: '#206D26',\n 900: '#103713',\n },\n error: {\n 50: '#FEF2F2',\n 100: '#FEE2E2',\n 200: '#FECACA',\n 300: '#FCA5A5',\n 400: '#F87171',\n 500: '#EF4444',\n 600: '#DC2626',\n 700: '#B91C1C',\n 800: '#991B1B',\n 900: '#7F1D1D',\n },\n shades: {\n 0: '#FFFFFF',\n 5: '#FBFBFB',\n 100: '#000000',\n },\n tags: {\n purple: {\n 50: '#F2EDFD',\n 500: '#895BF1',\n },\n pink: {\n 50: '#FCE7F6',\n 500: '#E74ABD',\n },\n },\n emojis: {\n red: '#E8354D',\n orange: '#FC7E1E',\n yellow: '#FFCE2B',\n lime: '#ACD91A',\n green: '#4ECC58',\n brightGreen: '#5CCC5B',\n },\n}\n\nexport const borderRadius = {\n xxxs: '2px',\n xxs: '4px',\n xs: '6px',\n sm: '8px',\n md: '12px',\n lg: '16px',\n xl: '20px',\n full: '50%',\n}\n\nexport const boxShadow = {\n xs: '0px 4px 8px 0px rgba(0, 0, 0, 0.10)',\n sm: '0px 6px 12px 0px rgba(0, 0, 0, 0.10)',\n md: '0px 8px 16px 0px rgba(0, 0, 0, 0.10)',\n lg: '0px 10px 20px 0px rgba(0, 0, 0, 0.10)',\n xl: '0px 12px 24px 0px rgba(0, 0, 0, 0.10)',\n xsInset:\n 'inset 0px 4px 8px -4px rgba(0, 0, 0, 0.10), inset 0px -4px 8px -4px rgba(0, 0, 0, 0.10)',\n}\n","import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\nimport LinearProgress, {\n linearProgressClasses,\n} from '@mui/material/LinearProgress'\nimport { Doughnut } from 'react-chartjs-2'\n\nimport { colors } from '../../styles/styleGuide'\n\nconst Container = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(4.5),\n flex: 1,\n [theme.breakpoints.down('md')]: {\n flexDirection: 'column',\n },\n}))\n\nconst DonutContainer = styled('div')(({ theme }) => ({\n width: '200px',\n height: '200px',\n}))\n\nconst ProgressBarsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(1.5),\n flex: 1,\n [theme.breakpoints.down('md')]: {\n width: '100%',\n },\n}))\n\nconst ProgressBarsColumn = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1.5),\n flex: 1,\n}))\n\nconst ProgressBarContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1.5),\n}))\n\nconst LabelContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n gap: theme.spacing(1),\n}))\n\nconst StyledLinearProgress = styled(LinearProgress, {\n shouldForwardProp: (prop) => prop !== 'backgroundColor',\n})(({ theme, backgroundColor }) => ({\n height: '8px',\n borderRadius: theme.shape.borderRadius.sm,\n backgroundColor: theme.palette.neutral.veryLight,\n [`& .${linearProgressClasses.bar}`]: {\n borderRadius: '8px',\n backgroundColor: backgroundColor,\n },\n}))\n\nconst CustomQuestionMultipleChoice = ({ question }) => {\n const selectedOptions = question.possible_answers\n .map((option) => {\n return {\n text: option,\n count: question.answers.filter((answer) => answer.text === option)\n .length,\n percentage: question.answers.length\n ? Math.round(\n (question.answers.filter((answer) => answer.text === option)\n .length /\n question.answers.length) *\n 100\n )\n : 0,\n }\n })\n .filter((option) => option.text.trim().length > 0)\n .sort((a, b) => b.count - a.count)\n\n const distinctSelectedOptionCount = selectedOptions.filter(\n (option) => option.count > 0\n ).length\n\n const colorMap = selectedOptions.map((option, index) => {\n if (option.count > 0) {\n // Determine color step based on distinct option count\n const colorStep = distinctSelectedOptionCount <= 5 ? 200 : 100\n // Calculate shade index, ensuring it starts from 50 and doesn't go below it\n const shadeIndex = Math.max(50, 900 - index * colorStep)\n return colors.primaryBlue[shadeIndex]\n }\n return colors.neutral[200] // Default color if count is 0, doesn't get used\n })\n\n const chartData = {\n labels: selectedOptions.map((option) => option.text),\n datasets: [\n {\n data: selectedOptions.map((option) => option.count),\n backgroundColor: colorMap,\n borderWidth: 0,\n cutout: '70%',\n },\n ],\n }\n\n const chartOptions = {\n plugins: {\n legend: {\n display: false,\n },\n },\n }\n\n const renderProgressBar = (option, index) => {\n return (\n \n \n {option.text}\n {option.percentage}%\n \n \n \n )\n }\n\n return (\n \n \n \n \n \n \n {selectedOptions\n .slice(0, 5)\n .map((option, index) => renderProgressBar(option, index))}\n \n {selectedOptions.length > 5 && (\n \n {selectedOptions\n .slice(5, 10)\n .map((option, index) => renderProgressBar(option, index + 5))}\n \n )}\n \n \n )\n}\n\nexport default CustomQuestionMultipleChoice\n","import { styled } from '@mui/system'\nimport { useTheme } from '@mui/material/styles'\nimport { Typography } from '@mui/material'\nimport { Doughnut } from 'react-chartjs-2'\nimport { Chart as ChartJS, ArcElement, Tooltip, Legend } from 'chart.js'\n\nimport EmojiRating from '../common/EmojiRating'\n\n// Register Chart.js components and plugins\nChartJS.register(ArcElement, Tooltip, Legend)\n\n// Register custom plugin locally\nconst customAverageLabelPlugin = {\n id: 'customAverageLabel',\n beforeDraw(chart) {\n const { width, height, ctx } = chart\n const averagePercentage =\n chart.options.plugins.customAverageLabel?.averagePercentage || '0'\n\n ctx.save()\n\n const text = `${averagePercentage}%`\n ctx.font = 'bold 36px Figtree, sans-serif'\n ctx.textBaseline = 'middle'\n ctx.textAlign = 'center'\n\n const textX = width / 2\n const textY = height * 0.75\n\n ctx.fillText(text, textX, textY)\n ctx.restore()\n },\n}\n\nconst Container = styled('div', {\n shouldForwardProp: (prop) => prop !== 'socialShare',\n})(({ theme, socialShare }) => ({\n display: 'flex',\n // flexDirection: 'column',\n flexDirection: socialShare ? 'row' : 'column',\n alignItems: 'center',\n gap: theme.spacing(3),\n flex: 1,\n}))\n\nconst DonutContainer = styled('div')(({ theme }) => ({\n width: '320px',\n height: '160px', // Limit the container height to half the canvas height\n overflow: 'hidden', // Hide any overflow from the canvas\n display: 'flex',\n justifyContent: 'center', // Center the donut chart horizontally\n [theme.breakpoints.down('sm')]: {\n width: '260px',\n height: '130px',\n },\n}))\n\nconst EmojiIconsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n flex: 1,\n maxWidth: '320px',\n width: '100%',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '260px',\n },\n}))\n\nconst EmojiIconContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n gap: theme.spacing(1),\n}))\n\nconst CustomQuestionEmojiScale = ({ question, socialShare }) => {\n const theme = useTheme()\n\n const range = Array.from({ length: 5 }, (_, i) => i + 1)\n const labels = [\n { answerValue: 1, label: 'Very negative' },\n { answerValue: 2, label: 'Negative' },\n { answerValue: 3, label: 'Neutral' },\n { answerValue: 4, label: 'Positive' },\n { answerValue: 5, label: 'Very positive' },\n ]\n\n const emojiRatings = range.map((rating) => {\n return {\n range_value: rating,\n label: labels.find((label) => label.answerValue === rating).label,\n count: question.answers.filter((answer) => answer.range_value === rating)\n .length,\n percentage: question.answers.length\n ? Math.round(\n (question.answers.filter((answer) => answer.range_value === rating)\n .length /\n question.answers.length) *\n 100\n )\n : 0,\n }\n })\n\n const averageRating =\n emojiRatings.reduce(\n (acc, rating) => acc + rating.range_value * rating.count,\n 0\n ) / question.answers.length\n\n const averageRatingPercentage = Math.round(\n (averageRating / 5) * 100\n ).toString()\n\n const chartData = {\n labels: labels.map((label) => label.label),\n datasets: [\n {\n data: emojiRatings.map((rating) => rating.count),\n backgroundColor: [\n theme.palette.emojis.red,\n theme.palette.emojis.orange,\n theme.palette.emojis.yellow,\n theme.palette.emojis.lime,\n theme.palette.emojis.green,\n ],\n borderWidth: 0,\n },\n ],\n }\n\n const options = {\n responsive: true,\n maintainAspectRatio: false,\n rotation: -90, // Start from the top\n circumference: 180, // Draw a half-donut\n cutout: '70%', // Make it look like a gauge by increasing the inner radius\n plugins: {\n legend: {\n display: false, // Hide the legend if you want custom labels below the chart\n },\n tooltip: {\n enabled: true,\n },\n customAverageLabel: {\n averagePercentage: averageRatingPercentage, // Pass the percentage dynamically\n },\n },\n }\n\n return (\n \n \n \n \n \n {emojiRatings\n .sort((a, b) => b.range_value - a.range_value)\n .map((rating) => (\n \n \n {rating.percentage}%\n \n ))}\n \n \n )\n}\n\nexport default CustomQuestionEmojiScale\n","import { styled } from '@mui/system'\nimport { useTheme } from '@mui/material/styles'\nimport { Typography } from '@mui/material'\nimport LinearProgress, {\n linearProgressClasses,\n} from '@mui/material/LinearProgress'\nimport { Doughnut } from 'react-chartjs-2'\n\nconst Container = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(4.5),\n alignItems: 'center',\n flex: 1,\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n },\n}))\n\nconst DonutContainer = styled('div')(({ theme }) => ({\n width: '200px',\n height: '200px',\n}))\n\nconst ProgressBarsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n gap: theme.spacing(2.5),\n flex: 1,\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n}))\n\nconst ProgressBarContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1.5),\n}))\n\nconst LabelContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n}))\n\nconst StyledLinearProgress = styled(LinearProgress)(({ theme, color }) => ({\n height: '8px',\n borderRadius: theme.shape.borderRadius.sm,\n backgroundColor: theme.palette.neutral.veryLight,\n [`& .${linearProgressClasses.bar}`]: {\n borderRadius: '8px',\n backgroundColor: color ? '' : theme.palette.neutral.semiLight,\n },\n}))\n\nconst CustomQuestionBoolean = ({ question }) => {\n const theme = useTheme()\n\n const totalAnswers = question.answers?.length || 0\n // Answers can come in with Yes + an emoji, so scope to making\n // sure it just includes 'yes'\n const yesAnswers =\n question.answers?.filter((answer) => answer.text.includes('Yes')).length ||\n 0\n const noAnswers = totalAnswers - yesAnswers\n const yesPercentage =\n totalAnswers > 0 ? Math.round((yesAnswers / totalAnswers) * 100) : 0\n const noPercentage =\n totalAnswers > 0 ? Math.round((noAnswers / totalAnswers) * 100) : 0\n\n const chartData = {\n labels: ['No', 'Yes'],\n datasets: [\n {\n data: [noAnswers, yesAnswers],\n backgroundColor: [\n theme.palette.neutral.semiLight,\n theme.palette.secondary.main,\n ],\n borderWidth: 0,\n cutout: '70%',\n },\n ],\n }\n\n const options = {\n plugins: {\n legend: {\n display: false,\n },\n },\n }\n\n return (\n \n \n \n \n \n \n \n Yes\n {yesPercentage}%\n \n \n \n \n \n No\n {noPercentage}%\n \n \n \n \n \n )\n}\n\nexport default CustomQuestionBoolean\n","import { styled } from '@mui/system'\nimport { useTheme } from '@mui/material/styles'\nimport { Typography } from '@mui/material'\nimport { Doughnut } from 'react-chartjs-2'\nimport { Chart as ChartJS, ArcElement, Tooltip, Legend } from 'chart.js'\n\nimport { capitalize } from '../../utils/string'\n\n// Register Chart.js components and plugins\nChartJS.register(ArcElement, Tooltip, Legend)\n\n// Register custom plugin locally\nconst customAverageLabelPlugin = {\n id: 'customAverageLabel',\n beforeDraw(chart) {\n const { width, height, ctx } = chart\n const averagePercentage =\n chart.options.plugins.customAverageLabel?.averagePercentage || '0'\n\n ctx.save()\n\n const text = `${averagePercentage}`\n ctx.font = 'bold 36px Figtree, sans-serif'\n ctx.textBaseline = 'middle'\n ctx.textAlign = 'center'\n\n const textX = width / 2\n const textY = height * 0.75\n\n ctx.fillText(text, textX, textY)\n ctx.restore()\n },\n}\n\nconst Container = styled('div', {\n shouldForwardProp: (prop) => prop !== 'socialShare',\n})(({ theme, socialShare }) => ({\n display: 'flex',\n // flexDirection: 'column',\n flexDirection: socialShare ? 'row' : 'column',\n alignItems: 'center',\n gap: theme.spacing(3),\n flex: 1,\n}))\n\nconst DonutContainer = styled('div')(({ theme }) => ({\n width: '320px',\n height: '160px', // Limit the container height to half the canvas height\n overflow: 'hidden', // Hide any overflow from the canvas\n display: 'flex',\n justifyContent: 'center', // Center the donut chart horizontally\n [theme.breakpoints.down('sm')]: {\n width: '260px',\n height: '130px',\n },\n}))\n\nconst LegendContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n flex: 1,\n maxWidth: '320px',\n width: '100%',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '260px',\n },\n}))\n\nconst NpsRatingContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n gap: theme.spacing(1),\n}))\n\nconst NpsRatingIconContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n gap: theme.spacing(1),\n}))\n\nconst NpsRatingIcon = styled('div', {\n shouldForwardProp: (prop) => prop !== 'ratingType',\n})(({ theme, ratingType }) => ({\n width: '16px',\n height: '16px',\n borderRadius: '50%',\n backgroundColor:\n ratingType === 'detractors'\n ? theme.palette.emojis.red\n : ratingType === 'passives'\n ? theme.palette.emojis.yellow\n : theme.palette.emojis.green,\n}))\n\nconst CustomQuestionNps = ({ question, socialShare }) => {\n const theme = useTheme()\n\n const totalAnswers = question.answers.length\n\n const npsRatings = question.answers.reduce(\n (acc, answer) => {\n if (answer.range_value >= 0 && answer.range_value <= 6) {\n acc.detractors.count++\n } else if (answer.range_value >= 7 && answer.range_value <= 8) {\n acc.passives.count++\n } else if (answer.range_value >= 9 && answer.range_value <= 10) {\n acc.promoters.count++\n }\n\n // Update percentages dynamically\n acc.detractors.percentage = Math.round(\n (acc.detractors.count / totalAnswers) * 100\n )\n acc.passives.percentage = Math.round(\n (acc.passives.count / totalAnswers) * 100\n )\n acc.promoters.percentage = Math.round(\n (acc.promoters.count / totalAnswers) * 100\n )\n\n return acc\n },\n {\n promoters: { count: 0, percentage: 0.0 },\n passives: { count: 0, percentage: 0.0 },\n detractors: { count: 0, percentage: 0.0 },\n }\n )\n\n const npsScore =\n npsRatings.promoters.percentage - npsRatings.detractors.percentage\n\n const chartData = {\n labels: Object.keys(npsRatings).map((rating) => capitalize(rating)),\n datasets: [\n {\n data: Object.values(npsRatings).map((rating) => rating.count),\n backgroundColor: [\n theme.palette.emojis.green,\n theme.palette.emojis.yellow,\n theme.palette.emojis.red,\n ],\n borderWidth: 0,\n },\n ],\n }\n\n const options = {\n responsive: true,\n maintainAspectRatio: false,\n rotation: -90, // Start from the top\n circumference: 180, // Draw a half-donut\n cutout: '70%', // Make it look like a gauge by increasing the inner radius\n plugins: {\n legend: {\n display: false, // Hide the legend if you want custom labels below the chart\n },\n tooltip: {\n enabled: true,\n },\n customAverageLabel: {\n averagePercentage: npsScore, // Pass the percentage dynamically\n },\n },\n }\n\n return (\n \n \n \n \n \n {Object.entries(npsRatings).map(([ratingType, rating]) => (\n \n \n \n {capitalize(ratingType)}\n \n {rating.percentage}%\n \n ))}\n \n \n )\n}\n\nexport default CustomQuestionNps\n","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgAiIconOutline(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20,\n height: 21,\n viewBox: \"0 0 20 21\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.17766 14.2156L7.5 16.5874L6.82234 14.2156C6.4664 12.9698 5.4926 11.996 4.24682 11.6401L1.875 10.9624L4.24683 10.2847C5.4926 9.9288 6.4664 8.95501 6.82234 7.70923L7.5 5.3374L8.17766 7.70923C8.5336 8.95501 9.5074 9.9288 10.7532 10.2847L13.125 10.9624L10.7532 11.6401C9.5074 11.996 8.5336 12.9698 8.17766 14.2156Z\",\n stroke: \"#64748B\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.2157 8.22452L15 9.0874L14.7843 8.22452C14.5324 7.21684 13.7456 6.43004 12.7379 6.17812L11.875 5.9624L12.7379 5.74668C13.7456 5.49476 14.5324 4.70796 14.7843 3.70029L15 2.8374L15.2157 3.70029C15.4676 4.70796 16.2544 5.49476 17.2621 5.74668L18.125 5.9624L17.2621 6.17812C16.2544 6.43004 15.4676 7.21684 15.2157 8.22452Z\",\n stroke: \"#64748B\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.0785 18.1018L13.75 19.0874L13.4215 18.1018C13.2348 17.5419 12.7955 17.1026 12.2356 16.9159L11.25 16.5874L12.2356 16.2589C12.7955 16.0722 13.2348 15.6329 13.4215 15.073L13.75 14.0874L14.0785 15.073C14.2652 15.6329 14.7045 16.0722 15.2644 16.2589L16.25 16.5874L15.2644 16.9159C14.7045 17.1026 14.2652 17.5419 14.0785 18.1018Z\",\n stroke: \"#64748B\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAiIconOutline);\nexport default __webpack_public_path__ + \"static/media/aiIconOutline.5d65cd24.svg\";\nexport { ForwardRef as ReactComponent };","import CustomQuestionMultipleChoice from './CustomQuestionMultipleChoice'\nimport CustomQuestionEmojiScale from './CustomQuestionEmojiScale'\nimport CustomQuestionBoolean from './CustomQuestionBoolean'\nimport CustomQuestionNps from './CustomQuestionNps'\n\nexport const renderCustomQuestionContent = (question, socialShare = false) => {\n switch (question.question_type) {\n case 'MULTIPLE_CHOICE':\n return \n case 'EMOJI_SCALE':\n return (\n \n )\n case 'BOOLEAN':\n return \n case 'NPS':\n return \n default:\n return null\n }\n}\n","import { useRef } from 'react'\nimport { styled } from '@mui/system'\nimport { Button } from '@mui/material'\n\nimport SocialShareTemplate from './SocialShareTemplate'\nimport CustomQuestionCard from './CustomQuestionCard'\n\nimport { renderCustomQuestionContent } from './customQuestionRenderer'\nimport { downloadComponentAsPng } from '../common/helpers'\n\nconst SocialShareContainer = styled('div')({})\n\nconst DownloadButton = styled(Button)(({ theme }) => ({\n position: 'absolute',\n top: theme.spacing(2),\n right: theme.spacing(9),\n color: theme.palette.base.white,\n}))\n\nconst CustomQuestionSocialShareContent = ({\n question,\n reportData,\n shareKey,\n isEventOwner,\n handleOpenSocialShare,\n handleToggleVisibility,\n}) => {\n const ref = useRef()\n\n return (\n \n \n \n {renderCustomQuestionContent(question, true)}\n \n \n \n downloadComponentAsPng(ref, `talkadot-custom-question-share`)\n }>\n Click To Download\n \n \n )\n}\n\nexport default CustomQuestionSocialShareContent\n","import { useContext, useEffect, useState } from 'react'\nimport { styled } from '@mui/system'\nimport { isMobileOnly } from 'react-device-detect'\n\nimport CustomQuestionCard from './CustomQuestionCard'\nimport CustomQuestionSocialShareContent from './CustomQuestionSocialShareContent'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nimport Api from '../../services/api'\nimport usePolling from '../../hooks/usePolling'\nimport { renderCustomQuestionContent } from './customQuestionRenderer'\n\nconst MobileImg = styled('img')({\n width: '100%',\n height: 'auto',\n display: 'block',\n})\n\nconst CustomQuestion = ({\n question,\n isEventOwner,\n handleOpenSocialShare,\n reportData,\n shareKey,\n handleToggleVisibility,\n}) => {\n const [mobileImgSrc, setMobileImgSrc] = useState('')\n\n const { setNotification, showFullPageLoader, hideFullPageLoader, authData } =\n useContext(AuthenticationContext)\n\n const { data, startPolling } = usePolling({\n apiMethod: Api.pollSocialShareImageStatus,\n shouldStopPolling: (data) => data.status === 'completed',\n maxTries: 20,\n })\n\n useEffect(() => {\n const fetchImageAsBase64 = async (url) => {\n try {\n const response = await fetch(url)\n const blob = await response.blob()\n const reader = new FileReader()\n\n reader.onloadend = () => {\n setMobileImgSrc(reader.result) // Set Base64 Data URL\n }\n\n reader.readAsDataURL(blob) // Convert Blob to Base64\n } catch (error) {\n setNotification(\n 'Oops, looks like there was an issue downloading your image. Please try again. If the problem persists, contact us at hello@talkadot.com!',\n 'error'\n )\n } finally {\n hideFullPageLoader()\n }\n }\n\n if (data?.status === 'completed') {\n fetchImageAsBase64(data.image_url)\n } else if (data?.status === 'failed') {\n setNotification(\n 'Oops, looks like there was an issue downloading your image. Please try again. If the problem persists, contact us at hello@talkadot.com!',\n 'error'\n )\n hideFullPageLoader()\n }\n }, [data])\n\n useEffect(() => {\n if (mobileImgSrc) {\n handleOpenSocialShare()\n }\n }, [mobileImgSrc])\n\n const handleMobileImageDownload = async ({ selector, question }) => {\n const params = {\n social_share_download: {\n share_key: shareKey,\n element_id: selector,\n custom_question_id: question?.id,\n },\n }\n\n showFullPageLoader()\n\n const res = await Api.getSocialShareImage(params)\n\n const taskId = res.task_id\n\n if (taskId) {\n startPolling({ task_id: taskId })\n } else {\n console.log('No task id')\n hideFullPageLoader()\n }\n }\n\n const handleSocialShareDownload = () => {\n if (isMobileOnly || window.innerWidth < 960) {\n handleMobileImageDownload({\n selector: 'custom-question-share-image',\n question,\n })\n } else {\n handleOpenSocialShare(\n \n )\n }\n }\n\n return (\n \n {renderCustomQuestionContent(question, false)}\n \n )\n}\n\nexport default CustomQuestion\n","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgThumbsUp16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_206_1735)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.66634 14.6667H2.66634C2.31272 14.6667 1.97358 14.5262 1.72353 14.2762C1.47348 14.0261 1.33301 13.687 1.33301 13.3334V8.66671C1.33301 8.31309 1.47348 7.97395 1.72353 7.7239C1.97358 7.47385 2.31272 7.33337 2.66634 7.33337H4.66634M9.33301 6.00004V3.33337C9.33301 2.80294 9.12229 2.29423 8.74722 1.91916C8.37215 1.54409 7.86344 1.33337 7.33301 1.33337L4.66634 7.33337V14.6667H12.1863C12.5079 14.6703 12.8199 14.5576 13.0649 14.3494C13.31 14.1411 13.4715 13.8513 13.5197 13.5334L14.4397 7.53337C14.4687 7.34228 14.4558 7.14716 14.4019 6.96154C14.348 6.77592 14.2544 6.60424 14.1276 6.45838C14.0008 6.31253 13.8437 6.196 13.6674 6.11685C13.4911 6.03771 13.2996 5.99785 13.1063 6.00004H9.33301Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_206_1735\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgThumbsUp16X16);\nexport default __webpack_public_path__ + \"static/media/thumbs_up_16x16.3beb5504.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgThumbsDown16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_206_1733)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.3334 1.33337H13.1134C13.4907 1.3267 13.8573 1.45879 14.1436 1.70458C14.43 1.95037 14.6161 2.29274 14.6667 2.6667V7.33337C14.6161 7.70733 14.43 8.0497 14.1436 8.29549C13.8573 8.54128 13.4907 8.67338 13.1134 8.6667H11.3334M6.66669 10V12.6667C6.66669 13.1971 6.8774 13.7058 7.25247 14.0809C7.62755 14.456 8.13625 14.6667 8.66669 14.6667L11.3334 8.6667V1.33337H3.81335C3.4918 1.32974 3.17977 1.44243 2.93475 1.6507C2.68973 1.85897 2.52824 2.14877 2.48002 2.4667L1.56002 8.4667C1.53102 8.6578 1.5439 8.85292 1.59779 9.03854C1.65168 9.22416 1.74529 9.39584 1.87211 9.54169C1.99894 9.68755 2.15597 9.80408 2.33231 9.88323C2.50864 9.96237 2.70008 10.0022 2.89335 10H6.66669Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_206_1733\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgThumbsDown16X16);\nexport default __webpack_public_path__ + \"static/media/thumbs_down_16x16.d32a0470.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgDocumentReportIcon20X20(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Media / Icon/Unfilled/document-report\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M15.25 12V10.0312C15.25 8.63328 14.1167 7.5 12.7188 7.5H11.5938C11.1278 7.5 10.75 7.12224 10.75 6.65625V5.53125C10.75 4.13328 9.61672 3 8.21875 3H6.8125M7.375 13.6875V14.25M9.625 12V14.25M11.875 10.3125V14.25M8.5 3H4.84375C4.37776 3 4 3.37776 4 3.84375V16.7812C4 17.2472 4.37776 17.625 4.84375 17.625H14.4062C14.8722 17.625 15.25 17.2472 15.25 16.7812V9.75C15.25 6.02208 12.2279 3 8.5 3Z\",\n stroke: \"#1F2937\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDocumentReportIcon20X20);\nexport default __webpack_public_path__ + \"static/media/documentReportIcon_20x20.40b17277.svg\";\nexport { ForwardRef as ReactComponent };","import { styled } from '@mui/system'\nimport React, { useState } from 'react'\nimport { IconButton, Typography } from '@mui/material'\nimport { ReactComponent as ThumbUpIcon } from '../../icons/thumbs_up_16x16.svg'\nimport { ReactComponent as ThumbDownIcon } from '../../icons/thumbs_down_16x16.svg'\n\nconst LikeDislikeButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'variant',\n})(({ theme, variant }) => ({\n '& svg path': {\n stroke: variant === 'selected' ? null : theme.palette.neutral.light,\n strokeWidth: variant === 'selected' ? null : 1,\n },\n}))\n\nconst Container = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n}))\n\nconst IconContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(0.5),\n marginLeft: theme.spacing(1),\n}))\n\nconst LabelText = styled(Typography)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n color: theme.palette.neutral.main,\n height: '100%',\n}))\n\nconst LikeDislike = ({ ratingState, changeState, labelText }) => {\n const [isLoading, setIsLoading] = useState(false)\n const [state, setState] = useState(ratingState)\n\n const label = labelText || 'Is this summary valuable to you?'\n\n const handleRatingChange = async (action) => {\n const prevState = state\n let newState\n\n // Determine the new state based on the action and current state\n if (action === 'thumbs_up') {\n newState = prevState === 'thumbs_up' ? 'neutral' : 'thumbs_up'\n } else if (action === 'thumbs_down') {\n newState = prevState === 'thumbs_down' ? 'neutral' : 'thumbs_down'\n }\n\n setIsLoading(true) // Set loading state before performing async operation\n await changeState(newState, prevState) // Perform the async operation\n setIsLoading(false) // Reset loading state after the operation\n\n setState(newState) // Update the state after async operation is complete\n }\n\n return (\n \n {label}\n \n handleRatingChange('thumbs_up')}\n disabled={isLoading}\n >\n \n \n handleRatingChange('thumbs_down')}\n disabled={isLoading}\n >\n \n \n \n \n )\n}\n\nexport default LikeDislike\n","import {\n useContext,\n useMemo,\n useRef,\n useState,\n useEffect,\n useCallback,\n} from 'react'\nimport { styled } from '@mui/system'\nimport {\n Typography,\n Button,\n IconButton,\n Tooltip,\n useMediaQuery,\n} from '@mui/material'\n\nimport { ReactComponent as EyeIcon } from '../../icons/eyeIcon_16x16.svg'\nimport { ReactComponent as EyeOffIcon } from '../../icons/eyeOffIcon_16x16.svg'\nimport { ReactComponent as AiIcon } from '../../icons/aiIconOutline.svg'\n\nimport Api from '../../services/api'\nimport LoadingSpinner from '../common/LoadingSpinner'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nimport {\n usePermissionHelper,\n AI_EVENT_SUMMARY,\n} from '../../utils/permission_helper'\nimport LikeDislike from '../common/LikeDislike'\n\nconst EventSummaryContainer = styled('div')(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: 'repeat(3, 1fr)',\n gap: theme.spacing(2.5),\n [theme.breakpoints.down('lg')]: {\n gridTemplateColumns: '1fr',\n },\n}))\n\nconst FeedbackSummaryContainer = styled('div')(({ theme }) => ({\n gridColumn: 'span 2',\n display: 'flex',\n flexDirection: 'column',\n padding: theme.spacing(2, 0),\n}))\n\nconst HeaderContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: theme.spacing(2, 0),\n borderBottom: `3px solid ${theme.palette.secondary.main}`,\n}))\n\nconst StyledHeader = styled(Typography)(({ theme }) => ({\n margin: 0,\n color: theme.palette.neutral.veryDark,\n}))\n\nconst HeaderActions = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(1),\n}))\n\nconst ToggleQuestionButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'isEnabled',\n})(({ theme, isEnabled }) => ({\n svg: {\n path: {\n stroke: isEnabled\n ? theme.palette.neutral.semiLight\n : theme.palette.error.semiDark,\n },\n },\n}))\n\nconst StyledSummary = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.veryDark,\n marginTop: theme.spacing(1.5),\n marginBottom: theme.spacing(2),\n}))\n\nconst KeyTakeawaysHeader = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.veryDark,\n fontWeight: 'bold',\n marginBottom: theme.spacing(2),\n}))\n\nconst KeyTakeaways = styled('ul')(({ theme }) => ({\n paddingLeft: theme.spacing(2),\n margin: 0,\n marginBottom: theme.spacing(2),\n listStyleType: 'none',\n li: {\n fontSize: '0.875rem',\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n paddingLeft: '1em',\n },\n 'li::before': {\n content: '\"•\"',\n fontSize: '0.875rem',\n position: 'absolute',\n left: 0,\n top: '50%',\n transform: 'translateY(-50%)',\n },\n}))\n\nconst FooterContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(0.5),\n paddingTop: theme.spacing(2),\n}))\n\nconst FeedbackRatingContainer = styled('div')(({ theme }) => ({\n marginLeft: theme.spacing(3.5),\n}))\n\nconst Footer = styled('div')({\n display: 'flex',\n})\n\nconst FooterTextContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n})\n\nconst FooterText = styled(Typography)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n paddingLeft: theme.spacing(1),\n color: theme.palette.neutral.main,\n height: '100%',\n}))\n\nconst GenerateButton = styled(Button)(({ theme }) => ({\n width: 'max-content',\n fontSize: '0.875rem',\n fontWeight: theme.fontWeights.regular,\n padding: theme.spacing(1),\n verticalAlign: 'baseline',\n}))\n\nconst UpgradeButton = styled(Button)(({ theme }) => ({\n width: 'max-content',\n fontSize: '0.875rem',\n fontWeight: '400',\n padding: `0 ${theme.spacing(1)}`,\n}))\n\nconst FeedbackUpgradeToUseFeature = () => {\n return (\n \n This feature is only available to users on the Talkadot Pro or Elite plan.\n \n )\n}\n\nconst FeedbackContentLoading = () => {\n return (\n <>\n \n \n \n \n )\n}\n\nconst FeedbackContentDoesNotExist = ({\n hasEnoughResponses,\n generateSummary,\n summaryLoading,\n}) => {\n ''\n return (\n \n {hasEnoughResponses ? (\n <>\n There are enough responses to generate a summary for this event.\n \n Generate a summary now?\n \n \n ) : (\n 'This event does not have enough response information to adequately generate an AI summary.'\n )}\n \n )\n}\n\nconst FeedbackContentSummary = ({ summary, key_takeaways }) => {\n return (\n <>\n {summary}\n \n Presentation Outcomes Achieved:\n \n \n {key_takeaways.map((keyTakeaway, index) => (\n
  • \n {keyTakeaway}\n
  • \n ))}\n
    \n \n )\n}\n\nconst FeedbackContentError = ({ status }) => {\n const errorMessage =\n status === 'error_not_enough_feedback'\n ? 'There are not enough responses to generate a summary for this event'\n : 'There was an issue generating this summary. Please try again.'\n\n return {errorMessage}\n}\n\nconst MAX_TRIES = 20\nconst POLLING_INTERVAL = 2000 // 2 seconds\n\nconst SUMMARY_DATA_ERROR_STATE = {\n status: 'error',\n headline: null,\n summary: null,\n key_takeaways: null,\n}\n\nconst FeedbackSummaryParent = ({\n initialSummaryData,\n shareKey,\n speakerName,\n toggleVisibility,\n isPublic,\n hasEnoughResponses,\n hasNewResponses,\n isEventOwner,\n isUserEvent,\n}) => {\n const [summaryLoading, setSummaryLoading] = useState(false)\n const [summaryData, setSummaryData] = useState(initialSummaryData)\n const pollingRef = useRef(null)\n const triesRef = useRef(0)\n const { setNotification, toggleUpgradeModal } = useContext(\n AuthenticationContext\n )\n const { canUseAIEventSummary } = usePermissionHelper()\n const isMobile = useMediaQuery((theme) => theme.breakpoints.down('sm'))\n\n const { summary, key_takeaways, headline, status } = summaryData || {}\n\n const inProgress = status === 'in_progress'\n const complete = status === 'complete'\n const notEnoughFeedbackError = status === 'error_not_enough_feedback'\n\n const summaryExists = summaryData && summaryData.status !== 'not_started'\n\n useEffect(() => {\n setSummaryData(initialSummaryData)\n }, [initialSummaryData])\n\n useEffect(() => {\n setSummaryLoading(inProgress)\n }, [inProgress])\n\n useEffect(() => {\n return () => {\n if (pollingRef.current) clearTimeout(pollingRef.current)\n }\n }, [])\n\n const stopPolling = useCallback(() => {\n if (pollingRef.current) {\n clearTimeout(pollingRef.current)\n pollingRef.current = null\n }\n triesRef.current = 0\n }, [])\n\n const pollUntilSummaryGenerated = useCallback(() => {\n return new Promise((resolve, reject) => {\n const poll = async () => {\n if (triesRef.current >= MAX_TRIES) {\n stopPolling()\n resolve({ status: 'stopped', tries: triesRef.current })\n return\n }\n\n const shouldStopPolling = (latestSummaryData) => {\n return latestSummaryData && latestSummaryData.status !== 'in_progress'\n }\n\n const reqParams = {\n event_report_card_summary: {\n share_key: shareKey,\n },\n }\n\n try {\n const res = await Api.getEventReportCardSummary(reqParams)\n if (!res.errors) {\n const latestSummaryData = res.report_card_summary\n if (shouldStopPolling(latestSummaryData)) {\n setSummaryData(latestSummaryData)\n stopPolling()\n resolve({ status: 'completed', data: latestSummaryData })\n return\n }\n triesRef.current += 1\n pollingRef.current = setTimeout(poll, POLLING_INTERVAL)\n } else {\n stopPolling()\n reject(res.errors)\n }\n } catch (err) {\n stopPolling()\n reject(err)\n }\n }\n\n setTimeout(poll, POLLING_INTERVAL) // Start polling\n })\n }, [shareKey, stopPolling])\n\n const handleRateSummary = useCallback(\n async (rating) => {\n try {\n const reqParams = {\n event_report_card_summary: {\n share_key: shareKey,\n },\n }\n\n const data = { rating }\n const res = await Api.rateEventReportCardSummary(data, reqParams)\n if (!res.errors) {\n setSummaryData(res.report_card_summary)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n },\n [setNotification, shareKey]\n )\n const generateSummary = useCallback(async () => {\n const reqParams = {\n event_report_card_summary: {\n share_key: shareKey,\n },\n }\n\n const res = await Api.generateEventReportCardSummary(reqParams)\n if (!res.errors) {\n setSummaryData(res.report_card_summary)\n } else {\n throw res.errors\n }\n }, [shareKey])\n\n const handleGenerateSummary = useCallback(async () => {\n setSummaryLoading(true)\n try {\n await generateSummary()\n await pollUntilSummaryGenerated()\n } catch (err) {\n setSummaryData(SUMMARY_DATA_ERROR_STATE)\n setNotification(err)\n } finally {\n setSummaryLoading(false)\n }\n }, [generateSummary, pollUntilSummaryGenerated, setNotification])\n\n const handleToggleVisibility = async () => {\n setSummaryLoading(true)\n await toggleVisibility()\n setSummaryLoading(false)\n }\n\n const body = useMemo(() => {\n if (isEventOwner && !canUseAIEventSummary())\n return \n if (!summaryExists)\n return (\n \n )\n\n if (inProgress) return \n if (complete)\n return (\n \n )\n return \n }, [\n canUseAIEventSummary,\n complete,\n handleGenerateSummary,\n hasEnoughResponses,\n inProgress,\n isEventOwner,\n key_takeaways,\n status,\n summary,\n summaryExists,\n summaryLoading,\n ])\n\n const title = useMemo(() => {\n return (\n \n {complete ? `Summary: ${headline}` : 'Summary of this talk'}\n \n )\n }, [complete, headline])\n\n const footer = useMemo(() => {\n if (isEventOwner && !canUseAIEventSummary())\n return (\n
    \n \n \n \n toggleUpgradeModal(true, 'Upgrade to Generate AI Summary!', {\n permissionType: AI_EVENT_SUMMARY,\n })\n }\n >\n {isMobile\n ? 'Upgrade to Pro or Elite'\n : 'Upgrade to Talkadot Pro or Elite to generate a summary for this Talk.'}\n \n \n
    \n )\n\n if (!hasEnoughResponses) return null\n if (notEnoughFeedbackError) return null\n if (!summaryExists) return null\n\n const tooltipText = `This AI-generated summary captures key insights from attendee feedback for ${\n isEventOwner ? 'your' : `${speakerName}'s`\n } talk. Summaries are created when there are at least 10 detailed testimonials to ensure the results are meaningful and reflective of audience sentiment.`\n return (\n \n
    \n \n \n \n \n Summary {inProgress ? 'being generated' : 'generated'} based on{' '}\n {speakerName}'s attendee testimonials\n \n \n \n
    \n {isEventOwner && summaryData?.feedback?.rating && complete && (\n \n \n \n )}\n
    \n )\n }, [\n isEventOwner,\n canUseAIEventSummary,\n isMobile,\n hasEnoughResponses,\n notEnoughFeedbackError,\n summaryExists,\n speakerName,\n inProgress,\n summaryData?.feedback?.rating,\n complete,\n handleRateSummary,\n toggleUpgradeModal,\n ])\n\n if (!isUserEvent) return null\n if (!isEventOwner && !complete) return null\n\n return (\n \n \n \n {title}\n {isEventOwner && canUseAIEventSummary() && (\n \n \n \n {isPublic && hasEnoughResponses ? (\n \n ) : (\n \n )}\n \n \n {/* TODO: add ellipsis dropdown */}\n \n )}\n \n\n {body}\n\n {footer}\n \n \n )\n}\n\nexport default FeedbackSummaryParent\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCameraReelIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.8125 16.25H17.1875M2.8125 16.25C2.29473 16.25 1.875 15.8303 1.875 15.3125M2.8125 16.25H4.0625C4.58027 16.25 5 15.8303 5 15.3125M1.875 15.3125V4.6875M1.875 15.3125V14.0625C1.875 13.5447 2.29473 13.125 2.8125 13.125M18.125 15.3125V4.6875M18.125 15.3125C18.125 15.8303 17.7053 16.25 17.1875 16.25M18.125 15.3125V14.0625C18.125 13.5447 17.7053 13.125 17.1875 13.125M17.1875 16.25H15.9375C15.4197 16.25 15 15.8303 15 15.3125M17.1875 3.75H2.8125M17.1875 3.75C17.7053 3.75 18.125 4.16973 18.125 4.6875M17.1875 3.75H15.9375C15.4197 3.75 15 4.16973 15 4.6875M18.125 4.6875V5.9375C18.125 6.45527 17.7053 6.875 17.1875 6.875M2.8125 3.75C2.29473 3.75 1.875 4.16973 1.875 4.6875M2.8125 3.75H4.0625C4.58027 3.75 5 4.16973 5 4.6875M1.875 4.6875V5.9375C1.875 6.45527 2.29473 6.875 2.8125 6.875M2.8125 6.875H4.0625M2.8125 6.875C2.29473 6.875 1.875 7.29473 1.875 7.8125V9.0625C1.875 9.58027 2.29473 10 2.8125 10M4.0625 6.875C4.58027 6.875 5 6.45527 5 5.9375V4.6875M4.0625 6.875C4.58027 6.875 5 7.29473 5 7.8125V9.0625M5 4.6875V9.0625M5 4.6875C5 4.16973 5.41973 3.75 5.9375 3.75H14.0625C14.5803 3.75 15 4.16973 15 4.6875M15.9375 6.875H17.1875M15.9375 6.875C15.4197 6.875 15 6.45527 15 5.9375V4.6875M15.9375 6.875C15.4197 6.875 15 7.29473 15 7.8125V9.0625M17.1875 6.875C17.7053 6.875 18.125 7.29473 18.125 7.8125V9.0625C18.125 9.58027 17.7053 10 17.1875 10M15 4.6875V9.0625M5.9375 10H14.0625M5.9375 10C5.41973 10 5 9.58027 5 9.0625M5.9375 10C5.41973 10 5 10.4197 5 10.9375M5 9.0625C5 9.58027 4.58027 10 4.0625 10M15 9.0625C15 9.58027 14.5803 10 14.0625 10M15 9.0625C15 9.58027 15.4197 10 15.9375 10M14.0625 10C14.5803 10 15 10.4197 15 10.9375M5 15.3125V10.9375M5 15.3125C5 15.8303 5.41973 16.25 5.9375 16.25H14.0625C14.5803 16.25 15 15.8303 15 15.3125M5 15.3125V14.0625C5 13.5447 4.58027 13.125 4.0625 13.125M15 15.3125V10.9375M15 15.3125V14.0625C15 13.5447 15.4197 13.125 15.9375 13.125M15 10.9375V12.1875C15 12.7053 15.4197 13.125 15.9375 13.125M15 10.9375C15 10.4197 15.4197 10 15.9375 10M5 10.9375V12.1875C5 12.7053 4.58027 13.125 4.0625 13.125M5 10.9375C5 10.4197 4.58027 10 4.0625 10M2.8125 10H4.0625M2.8125 10C2.29473 10 1.875 10.4197 1.875 10.9375V12.1875C1.875 12.7053 2.29473 13.125 2.8125 13.125M15.9375 10H17.1875M17.1875 10C17.7053 10 18.125 10.4197 18.125 10.9375V12.1875C18.125 12.7053 17.7053 13.125 17.1875 13.125M2.8125 13.125H4.0625M15.9375 13.125H17.1875\",\n stroke: \"#191D23\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCameraReelIcon16X16);\nexport default __webpack_public_path__ + \"static/media/cameraReelIcon_16x16.400c7060.svg\";\nexport { ForwardRef as ReactComponent };","import { useContext } from 'react'\nimport { styled } from '@mui/system'\nimport { Typography, Button } from '@mui/material'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nimport { ReactComponent as DocumentReportIcon } from '../../icons/documentReportIcon_20x20.svg'\n\nconst Container = styled('div')(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: 'repeat(3, 1fr)',\n gap: theme.spacing(2.5),\n [theme.breakpoints.down('lg')]: {\n gridTemplateColumns: '1fr',\n },\n}))\n\nconst ContainerInner = styled('div')(({ theme }) => ({\n gridColumn: 'span 2',\n display: 'flex',\n flexDirection: 'column',\n padding: theme.spacing(2, 0),\n}))\n\nconst HeaderContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: theme.spacing(2, 0),\n borderBottom: `3px solid ${theme.palette.secondary.main}`,\n}))\n\nconst StyledHeader = styled(Typography)(({ theme }) => ({\n margin: 0,\n color: theme.palette.neutral.veryDark,\n}))\n\nconst StyledBody = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.veryDark,\n marginTop: theme.spacing(1.5),\n marginBottom: theme.spacing(2),\n}))\n\nconst UpgradeButton = styled(Button)(({ theme }) => ({\n width: 'max-content',\n fontSize: '0.875rem',\n fontWeight: '400',\n padding: `0 ${theme.spacing(1)}`,\n}))\n\nconst Footer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n})\n\nconst FooterTextContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n})\n\nconst CustomQuestionUpsell = () => {\n const { toggleUpgradeModal } = useContext(AuthenticationContext)\n\n return (\n \n \n \n Custom question data\n \n \n This data is only viewable on a paid plan.\n \n
    \n \n \n \n toggleUpgradeModal(\n true,\n 'Upgrade to unlock Hidden Custom Question Data!'\n )\n }>\n Upgrade to view custom question data.\n \n \n
    \n
    \n
    \n )\n}\n\nexport default CustomQuestionUpsell\n","import { useEffect, useState, useContext, useCallback } from 'react'\nimport { useParams } from 'react-router-dom'\nimport { Helmet } from 'react-helmet'\nimport { styled } from '@mui/system'\nimport { isMobileOnly } from 'react-device-detect'\nimport { Typography, Dialog, IconButton } from '@mui/material'\n\nimport CloseIcon from '@mui/icons-material/Close'\n\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { formatDate } from '../common/helpers'\n\nimport NavBreadCrumbs from '../nav/NavBreadCrumbs'\nimport TotalAttendeesStat from './TotalAttendeesStat'\nimport TalkValueStat from './TalkValueStat'\nimport TalkReattendStat from './TalkReattendStat'\nimport TalkEngagementStat from './TalkEngagementStat'\nimport Banner from './Banner'\nimport ReportCardFeedbackList from './ReportCardFeedbackList'\nimport SpeakerHeader from '../speakerProfile/SpeakerHeader'\nimport ShareEventReportCard from './ShareEventReportCard'\nimport EventPlannerEngagement from './EventPlannerEngagement'\nimport CustomQuestion from './CustomQuestion'\nimport FeedbackSummaryParent from './FeedbackSummaryParent'\nimport StatCard from '../common/StatCard'\nimport PageContainer from '../common/PageContainer'\nimport CustomQuestionUpsell from './CustomQuestionUpsell'\nimport ConfirmDialog from '../common/ConfirmDialog'\n\nimport './EventReportCard.scss'\n\nconst Container = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n}))\n\nconst ReportCardContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n padding: theme.spacing(3),\n backgroundColor: theme.palette.base.white,\n [theme.breakpoints.down('sm')]: {\n margin: theme.spacing(0, -3),\n },\n}))\n\nconst SpeakerHeaderContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n marginBottom: theme.spacing(2.5),\n [theme.breakpoints.down('sm')]: {\n alignItems: 'center',\n },\n}))\n\nconst CustomQuestionContainer = styled('div')(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(406px, 0.5fr))',\n gridAutoFlow: 'dense',\n gap: theme.spacing(2.5),\n margin: theme.spacing(2.5, 0),\n [theme.breakpoints.down('lg')]: {\n gridTemplateColumns: 'repeat(auto-fill, minmax(406px, 1fr))',\n },\n [theme.breakpoints.down('sm')]: {\n gridTemplateColumns: 'repeat(auto-fill, minmax(100%, 1fr))',\n },\n}))\n\nconst FreeFlowCustomQuestionContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n marginTop: theme.spacing(2.5),\n}))\n\nconst HorizontalLine = styled('hr')(({ theme }) => ({\n width: '100%',\n border: 'none',\n borderBottom: `1px solid ${theme.palette.neutral.extraLight}`,\n margin: theme.spacing(6, 0),\n}))\n\nconst initialReportDataState = {\n speaker: {\n id: null,\n name: null,\n avatar: null,\n isEventPlanner: null,\n },\n id: null,\n talkTitle: null,\n organization: null,\n date: null,\n totalResponses: null,\n ratingsBreakdown: {},\n feedback: [],\n improvement: [],\n takeaways: [],\n reattendBreakdown: {},\n isEventOwner: false,\n engagementBreakdown: [],\n speakers: [],\n eventType: null,\n isUserEvent: null,\n showBranding: null,\n hideNameAndOrgSection: true,\n access: {\n isEventOwner: null,\n isEventSpeaker: null,\n canShare: null,\n },\n}\n\nconst initialConfirmProps = {\n title: '',\n onConfirm: () => {},\n onCancel: () => {},\n children: '',\n}\n\nconst DataSummaryContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(2.5),\n flexWrap: 'wrap',\n justifyContent: 'center',\n margin: theme.spacing(2.5, 0),\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n },\n}))\n\nconst EventReportCardParent = ({ leftNavOpen }) => {\n let params = useParams()\n const [isLoading, setIsLoading] = useState(false)\n const [customQuestionsLoading, setCustomQuestionsLoading] = useState(false)\n const [reportData, setReportData] = useState(initialReportDataState)\n const [customQuestions, setCustomQuestions] = useState([])\n const [showCustomContentUpsell, setShowCustomContentUpsell] = useState(false)\n const [socialShareOpen, setSocialShareOpen] = useState(false)\n const [socialShareContent, setSocialShareContent] = useState(null)\n const [confirmDialogOpen, setConfirmDialogOpen] = useState(false)\n const [confirmProps, setConfirmProps] = useState(initialConfirmProps)\n const { setNotification, authData } = useContext(AuthenticationContext)\n\n const { user } = authData\n\n useEffect(() => {\n const loadReportCardData = async () => {\n if (!params.sharelink) {\n return setNotification('Sorry, your request is invalid.')\n }\n\n const reqParams = {\n event_report: {\n share_key: params.sharelink,\n },\n }\n\n try {\n setIsLoading(true)\n const res = await Api.getEventReportCard(reqParams)\n if (!res.errors) {\n setReportData(res)\n setIsLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoading(false)\n setNotification(err)\n }\n }\n\n loadReportCardData()\n }, [params.sharelink]) // WARNING: setNotification is purposely excluded because it causes unexpecte rerenders\n\n useEffect(() => {\n const loadCustomAnswers = async () => {\n if (!params.sharelink) {\n return\n }\n\n try {\n setCustomQuestionsLoading(true)\n\n const reqParams = {\n event_report: {\n share_key: params.sharelink,\n },\n }\n\n const res = await Api.getCustomAnswers(reqParams)\n\n if (!res.errors) {\n setShowCustomContentUpsell(res.showUpsell)\n setCustomQuestions(res.customQuestions)\n setCustomQuestionsLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setCustomQuestionsLoading(false)\n }\n }\n\n if (reportData.id) {\n loadCustomAnswers()\n }\n }, [params.sharelink, reportData.id, user?.id])\n\n const isEventOwner = reportData?.access?.isEventOwner\n const canShareReport = reportData?.access?.canShare\n const canUseFeedbackActions = reportData?.access?.canUseFeedbackActions\n const isUserEvent = reportData?.isUserEvent\n\n const _handleToggleQuestionVisibility = async (question) => {\n try {\n const data = {\n answer_id: question.answers[0].answer_id,\n }\n const res = await Api.toggleVisibility(question.id, data)\n\n if (!res.errors) {\n setCustomQuestions(\n customQuestions.map((q) =>\n q.id === question.id\n ? { ...q, isQuestionPublic: !q.isQuestionPublic }\n : q\n )\n )\n\n const message = question.isQuestionPublic\n ? 'Responses for this question are now hidden on all reports.'\n : 'Responses for this question are now viewable on all reports.'\n\n setNotification(message, 'success')\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const handleToggleSummaryVisibility = useCallback(async () => {\n if (!params.sharelink) return\n try {\n const reqParams = {\n event_report_card_summary: {\n share_key: params.sharelink,\n },\n }\n const res = await Api.toggleEventReportCardSummaryVisibility(reqParams)\n\n if (!res.errors) {\n setReportData(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }, [params.sharelink, setNotification])\n\n const filterFeedback = (feedback) => {\n if (isEventOwner) return feedback\n\n return feedback.filter((feedback) => feedback.public_share === true)\n }\n\n const nonFreeFlowCustomQuestions = customQuestions.filter(\n (question) =>\n question.question_type && question.question_type !== 'FREE_FLOW'\n )\n\n // NOTE: The second part of the OR is to handle legacy custom questions\n const freeFlowCustomQuestions = customQuestions.filter(\n (question) =>\n question.question_type === 'FREE_FLOW' ||\n (!question.question_type && question.content)\n )\n\n const filterCustomQuestions = (customQuestions) => {\n if (isEventOwner) return customQuestions\n\n return customQuestions.filter(\n (question) => question.isQuestionPublic === true\n )\n }\n\n const handleToggleQuestionVisibility = async (question) => {\n if (question.isQuestionPublic) {\n await _handleToggleQuestionVisibility(question)\n } else {\n // NOTE: Questions that have been detached from a survey will have a null offer_code\n const offerCodeElement = question.offerCode ? (\n {question.offerCode}\n ) : (\n 'this question'\n )\n const warning = (\n <>\n Making this question visible will also show it in every other report\n using code: {offerCodeElement}.\n \n )\n\n setConfirmProps({\n variant: 'info',\n hideDangerMessage: true,\n title: 'Make Question Visible',\n buttonText: 'Make visible',\n buttonColor: 'primary',\n cancelButtonText: 'Cancel',\n buttonOrder: 'confirmFirst',\n textColor: 'white',\n onConfirm: () => _handleToggleQuestionVisibility(question),\n onCancel: () => {},\n children: {warning},\n })\n setConfirmDialogOpen(true)\n }\n }\n\n const renderEmptyReport = () => (\n
    \n \n Your attendee feedback will appear here!\n \n
    \n \n Make sure to have your Talkadot Slide (or QR code) added to the last\n page of your talk to collect feedback.\n \n
    \n )\n\n const breadCrumbs = [\n {\n link: '/talks',\n text: 'Talks',\n },\n {\n text: reportData.talkTitle || 'Event Report',\n },\n ]\n\n const handleOpenSocialShare = async (content) => {\n setSocialShareContent(content)\n setSocialShareOpen(true)\n }\n\n const handleCloseSocialShare = () => {\n setSocialShareOpen(false)\n setSocialShareContent(null)\n }\n\n const renderNonFreeFlowCustomQuestions = () => {\n if (showCustomContentUpsell) {\n return \n } else if (filterCustomQuestions(nonFreeFlowCustomQuestions).length > 0) {\n return (\n <>\n \n \n {filterCustomQuestions(nonFreeFlowCustomQuestions).map(\n (customQuestion, index) => (\n \n )\n )}\n \n \n )\n }\n }\n\n return (\n \n \n \n \n \n {canShareReport && (\n \n )}\n \n \n {isUserEvent && (\n \n )}\n {canShareReport && (\n \n )}\n \n \n {!isLoading && !reportData.totalResponses ? (\n renderEmptyReport()\n ) : (\n \n \n \n \n \n \n \n {(isLoading ||\n reportData.reattendBreakdown?.total_reattend_answers > 0) && (\n \n \n \n )}\n {\n /* TODO: Update this logic once we add event planner tooling to main app */\n reportData?.speaker?.isEventPlanner &&\n reportData.eventType?.toUpperCase() !== 'KEYNOTE' ? (\n \n ) : (\n reportData.engagementBreakdown?.length > 0 && (\n \n \n \n )\n )\n }\n \n )}\n {(isLoading || !!reportData.totalResponses) && (\n <>\n \n {renderNonFreeFlowCustomQuestions()}\n
    \n {(isLoading ||\n filterFeedback(reportData.takeaways).length > 0) && (\n <>\n \n \n \n )}\n {!reportData?.speaker?.isEventPlanner &&\n filterFeedback(reportData.feedback).length > 0 && (\n <>\n \n \n \n )}\n
    \n \n )}\n\n {/* TODO: Fix mobile social share for these */}\n {filterCustomQuestions(freeFlowCustomQuestions).length > 0 && (\n <>\n \n \n {filterCustomQuestions(freeFlowCustomQuestions).map(\n (customQuestion, index) => (\n answer.text\n )}\n title={customQuestion.content}\n isCustomQuestion={true}\n question={customQuestion}\n isQuestionPublic={customQuestion.isQuestionPublic}\n isLoading={customQuestionsLoading}\n reportData={reportData}\n shareKey={params.sharelink}\n canShareReport={canShareReport}\n canUseFeedbackActions={canUseFeedbackActions}\n isEventOwner={isEventOwner}\n leftNavOpen={leftNavOpen}\n handleOpenSocialShare={handleOpenSocialShare}\n customQuestionId={customQuestion.id}\n handleToggleVisibility={handleToggleQuestionVisibility}\n />\n )\n )}\n \n \n )}\n {reportData?.improvement.length > 0 && (\n <>\n \n \n \n )}\n
    \n
    \n \n {!isMobileOnly && (\n setSocialShareOpen(false)}\n sx={{ position: 'absolute', right: 8, top: 8, zIndex: '100' }}>\n \n \n )}\n {socialShareContent}\n \n {\n setConfirmDialogOpen(false)\n }}\n variant={confirmProps.variant}\n hideDangerMessage={confirmProps.hideDangerMessage}\n onCancel={confirmProps.onCancel}\n showCancel={confirmProps.showCancel}\n cancelButtonText={confirmProps.cancelButtonText}\n title={confirmProps.title}\n buttonText={confirmProps.buttonText}\n buttonColor={confirmProps.buttonColor}\n textColor={confirmProps.textColor}\n onConfirm={confirmProps.onConfirm}\n buttonOrder={confirmProps.buttonOrder}>\n {confirmProps.children}\n \n
    \n )\n}\n\nexport default EventReportCardParent\n","import { useState, useEffect } from 'react'\nimport { useParams, useLocation } from 'react-router-dom'\nimport * as qs from 'qs'\n\nimport Api from '../../services/api'\n\nimport ReportCardStatImage from './ReportCardStatImage'\nimport TestimonialStatImage from './TestimonialStatImage'\nimport CustomQuestionSocialShareContent from './CustomQuestionSocialShareContent'\n\nconst initialReportDataState = {\n speaker: {\n id: null,\n name: null,\n avatar: null,\n isEventPlanner: null,\n },\n id: null,\n talkTitle: null,\n organization: null,\n date: null,\n totalResponses: null,\n ratingsBreakdown: {},\n feedback: [],\n improvement: [],\n takeaways: [],\n reattendBreakdown: {},\n isEventOwner: false,\n engagementBreakdown: [],\n speakers: [],\n eventType: null,\n isUserEvent: null,\n showBranding: null,\n access: {\n isEventOwner: null,\n isEventSpeaker: null,\n canShare: null,\n },\n}\n\nconst SocialShareImageParent = () => {\n let params = useParams()\n const location = useLocation()\n const [isLoading, setIsLoading] = useState(false)\n const [reportData, setReportData] = useState(initialReportDataState)\n const [customQuestions, setCustomQuestions] = useState([])\n const shareKey = params.sharelink\n\n const urlParams = qs.parse(location.search, { ignoreQueryPrefix: true })\n\n const { answerId, customQuestionId } = urlParams\n\n useEffect(() => {\n const fetchData = async () => {\n if (!params.sharelink) return\n\n setIsLoading(true) // Set loading before both API calls\n\n try {\n const reqParams = { event_report: { share_key: params.sharelink } }\n\n const [reportRes, customRes] = await Promise.all([\n Api.getEventReportCard(reqParams),\n customQuestionId\n ? Api.getCustomAnswers(reqParams)\n : Promise.resolve(null),\n ])\n\n if (reportRes && !reportRes.errors) {\n setReportData(reportRes)\n }\n\n if (customRes && !customRes.errors) {\n setCustomQuestions(customRes.customQuestions)\n }\n } catch (err) {\n console.error('Error fetching data:', err)\n } finally {\n setIsLoading(false) // Only set false after both finish\n }\n }\n\n fetchData()\n }, [params.sharelink])\n\n if (isLoading) {\n return <>\n }\n\n // This is a custom free flow question\n if (customQuestionId && answerId) {\n if (!customQuestions || customQuestions.length === 0) {\n return <>\n }\n\n const customQuestion = customQuestions.find(\n (question) => question.id === parseInt(customQuestionId)\n )\n\n const customAnswer = customQuestion.answers.find(\n (answer) => answer.answer_id === parseInt(answerId)\n )\n\n return (\n \n )\n }\n\n // This is a custom non free flow question\n if (customQuestionId) {\n if (!customQuestions || customQuestions.length === 0) {\n return <>\n }\n\n const customQuestion = customQuestions.find(\n (question) => question.id === parseInt(customQuestionId)\n )\n\n return (\n {}}\n />\n )\n }\n\n // This is a specific testimonial\n if (answerId) {\n const sortedFeedback = reportData.takeaways\n const filteredFeedback = sortedFeedback.filter(\n (feedback) => feedback.public_share === true\n )\n\n let customPickedFeedback = null\n\n if (answerId) {\n customPickedFeedback = filteredFeedback.filter(\n (feedback) => feedback.answer_id === parseInt(answerId)\n )\n\n // if no custom picked feedback is found in the takeaways, then try to find it in the reportData.feedback\n if (customPickedFeedback.length === 0) {\n const sortedFeedback = reportData.feedback\n const filteredFeedback = sortedFeedback.filter(\n (feedback) => feedback.public_share === true\n )\n customPickedFeedback = filteredFeedback.filter(\n (feedback) => feedback.answer_id === parseInt(answerId)\n )\n }\n }\n\n return (\n \n )\n }\n\n // This is the report card and top testimonials\n return (\n <>\n \n \n \n )\n}\n\nexport default SocialShareImageParent\n","import React, { useState, useContext } from 'react'\nimport { TextField, Button, Typography, CircularProgress } from '@mui/material'\nimport talkadotLogo from '../../icons/talkadot-logo.png'\nimport Api from '../../services/api'\nimport { AuthenticationContext } from './authenticationContext'\n\nimport './PasswordReset.scss'\n\nconst PasswordResetRequest = () => {\n const INITIAL_CAPTION = \"Forgot your password? Please enter your email and we'll send you a link to reset it.\"\n \n const [email, setEmail] = useState('')\n const [emailError, setEmailError] = useState(null)\n const [success, setSuccess] = useState(false)\n const [isLoading, setIsLoading] = useState(false)\n const { setNotification } = useContext(AuthenticationContext)\n\n const submitPasswordRequest = async () => {\n // Dont allow double clicks\n if (isLoading) {\n return\n }\n\n if (!email) {\n return setEmailError(\"Email cant be blank\")\n }\n\n const params = {\n password_reset: {\n email: email\n }\n }\n\n try {\n setIsLoading(true)\n const res = await Api.requestPasswordReset(params)\n\n if (!res.errors) {\n setSuccess(true)\n setIsLoading(false)\n } else {\n throw res.errors\n }\n } catch(err) {\n setEmail('')\n setNotification(err, 'error')\n setIsLoading(false)\n }\n }\n\n return(\n
    \n \"Talkadot!\"\n \n { success ? `Success! Instructions have been sent to ${email}.` : INITIAL_CAPTION }\n \n { !success && {\n setEmailError(null)\n setEmail(e.target.value)}} \n /> }\n { !success && }\n
    \n )\n\n}\n\nexport default PasswordResetRequest","import React, { useState, useContext } from 'react'\nimport { useParams, Link } from 'react-router-dom'\nimport { \n TextField, \n Button, \n Typography, \n CircularProgress \n} from '@mui/material'\nimport talkadotLogo from '../../icons/talkadot-logo.png'\nimport Api from '../../services/api'\nimport { AuthenticationContext } from './authenticationContext';\n\n\nimport './PasswordReset.scss'\n\nconst PasswordResetForm = () => {\n const [password, setPassword] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const [passwordError, setPasswordError] = useState(null)\n const { passwordResetToken } = useParams()\n const [success, setSuccess] = useState(false)\n const { setNotification } = useContext(AuthenticationContext)\n\n const handleResetPassword = async () => {\n // Don't allow double clicks\n if (isLoading) {\n return\n }\n\n if (!password) {\n return setPasswordError(\"please fill out a valid password\")\n }\n\n if (password.length < 8) {\n return setPasswordError(\"Password must be at least 8 characters\")\n }\n\n const params = {\n password_reset: {\n token: passwordResetToken,\n password: password\n }\n }\n\n try {\n setIsLoading(true)\n const res = await Api.resetPasswordbyToken(params)\n\n if (!res.errors) {\n setIsLoading(false)\n return setSuccess(true)\n } else {\n throw res.errors\n }\n } catch(err) {\n setIsLoading(false)\n return setNotification(err, 'error')\n }\n }\n\n const renderPasswordResetForm = () => (\n
    \n \"Talkadot!\"\n \n Please enter your new password:\n \n {\n setPasswordError(null)\n setPassword(e.target.value)}} \n />\n \n
    \n )\n\n const renderPasswordResetSuccess = () => (\n
    \n \"Talkadot!\"\n \n Your password has been updated successfully!\n
    \n Please click here to go back to the login page\n
    \n
    \n )\n\n return success ? renderPasswordResetSuccess() : renderPasswordResetForm()\n\n}\n\nexport default PasswordResetForm","import React, { useState, useEffect } from 'react'\nimport { Input, InputAdornment, LinearProgress } from '@mui/material'\nimport CancelIcon from '@mui/icons-material/Cancel'\nimport { styled } from '@mui/system'\n\nimport { debounce } from '@mui/material/utils'\n\nconst AdminSearchInputContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n width: '50%',\n margin: '0 auto 20px auto',\n})\n\nconst AdminSearchInputBar = styled(Input)({\n width: '100%',\n fontSize: '20px',\n marginTop: '20px',\n})\n\nconst LinearProgressContainer = styled('div')({\n minHeight: '5px',\n})\n\nconst makeSearch = async (searchTerm, fetchUsers, setIsLoading) => {\n setIsLoading(true)\n await fetchUsers(searchTerm)\n setIsLoading(false)\n}\n\nconst debouncedMakeSearch = debounce(makeSearch, 1000)\n\nconst AdminSearchBar = ({ fetchUsers }) => {\n const [isLoading, setIsLoading] = useState(false)\n const [searchTerm, setSearchTerm] = useState('')\n\n useEffect(() => {\n debouncedMakeSearch(searchTerm, fetchUsers, setIsLoading)\n }, [searchTerm, debouncedMakeSearch])\n\n const handleChange = (value) => {\n setSearchTerm(value)\n }\n\n return (\n \n handleChange(e.target.value)}\n endAdornment={\n \n handleChange('')} fontSize=\"1rem\" />\n \n }\n />\n \n {isLoading && }\n \n \n )\n}\n\nexport default AdminSearchBar\n","import React, { useEffect, useState } from 'react'\nimport DeleteIcon from '@mui/icons-material/Delete'\nimport { Tooltip, Button } from '@material-ui/core'\nimport ConfirmDialog from '../common/ConfirmDialog'\nimport Api from '../../services/api'\nimport { styled } from '@mui/system'\n\nconst initialConfirmProps = {\n title: '',\n onConfirm: () => {},\n onCancel: () => {},\n buttonColor: '',\n buttonText: '',\n cancelButtonText: '',\n manualConfirm: false,\n columnLayout: false,\n confirmText: '',\n children: '',\n}\n\nconst DeleteButton = styled(Button)(({ theme }) => ({\n color: theme.palette.error.main,\n borderColor: theme.palette.error.main,\n}))\n\nconst DeleteUserParent = ({ user, deleteSpeaker, variant = 'icon' }) => {\n const [confirmOpen, setConfirmOpen] = useState(false)\n const [confirmProps, setConfirmProps] = useState(initialConfirmProps)\n\n const handleConfirmDelete = async () => {\n await deleteSpeaker(user.id)\n setConfirmOpen(false)\n }\n\n const handleDeleteUser = async () => {\n try {\n const res = await Api.adminFetchSpeaker(user.id)\n if (!res.errors) {\n setConfirmProps({\n title: 'Are you sure you want to delete this user?',\n onConfirm: handleConfirmDelete,\n buttonColor: 'black',\n buttonText:\n 'I understand the consequences, delete this user and related data',\n cancelButtonText: 'Cancel request, keep this user',\n manualConfirm: true,\n columnLayout: true,\n confirmText: user.email.toUpperCase(),\n children: (\n
    \n You will be deleting {user.first_name} {user.last_name}'s account,\n and all related data - all of their events, leads, codes,\n submissions, and all other data be deleted.\n
      \n
    • Membership Plan: {user.membership_plan.name}
    • \n
    • Leads: {res.leadCount}
    • \n
    • Events: {res.eventCount}
    • \n
    • Codes: {res.codeCount}
    • \n
    \n
    \n ),\n })\n setConfirmOpen(true)\n } else {\n throw res.errors\n }\n } catch (err) {\n alert('Woops! Something went wrong loading meta data for this speaker')\n }\n }\n\n return (\n <>\n \n {variant === 'button' ? (\n \n Delete Speaker\n \n ) : (\n \n )}\n \n \n {confirmProps.children}\n \n \n )\n}\n\nexport default DeleteUserParent\n","import { useState, useContext } from 'react'\nimport { useHistory, Link } from 'react-router-dom'\nimport {\n Typography,\n Tooltip,\n Dialog,\n DialogTitle,\n DialogActions,\n DialogContent,\n Button,\n} from '@mui/material'\nimport { DataGrid } from '@mui/x-data-grid'\nimport { styled } from '@mui/system'\n\nimport PersonOutlineIcon from '@mui/icons-material/PersonOutline'\nimport EditIcon from '@mui/icons-material/Edit'\n\nimport { AdminContext } from './adminContext'\nimport { formatDate } from '../common/helpers'\n\nimport AdminSearchBar from './AdminSearchBar'\nimport DeleteUserParent from './DeleteUserParent'\n\nimport './Admin.scss'\n\nconst ButtonContainer = styled('div')({\n display: 'flex',\n justifyContent: 'flex-end',\n columnGap: '10px',\n})\n\nconst PlanContainer = styled('div')({\n textAlign: 'center',\n})\n\nexport const ImpersonateUserAction = ({ user, variant = 'icon' }) => {\n const [open, setOpen] = useState(false)\n\n const { impersonateUser } = useContext(AdminContext)\n\n return (\n
    \n \n {variant === 'button' ? (\n \n ) : (\n setOpen(true)} />\n )}\n \n setOpen(false)}>\n Impersonate User\n \n \n You are about to impersonate{' '}\n \n {user.first_name} {user.last_name}\n \n . Are you sure you want to do this? You will be redirected to their\n page.\n \n \n \n \n impersonateUser(user)}>\n Confirm\n \n \n \n
    \n )\n}\n\nconst AdminParent = () => {\n const { fetchUsers, adminState, deleteSpeaker } = useContext(AdminContext)\n const history = useHistory()\n\n const { users } = adminState\n\n const columns = [\n {\n field: 'first_name',\n headerName: 'First name',\n sortable: true,\n align: 'center',\n headerAlign: 'center',\n flex: 1,\n },\n {\n field: 'last_name',\n headerName: 'Last name',\n sortable: true,\n align: 'center',\n headerAlign: 'center',\n flex: 1,\n },\n {\n field: 'email',\n headerName: 'email',\n sortable: true,\n align: 'center',\n headerAlign: 'center',\n flex: 1,\n },\n {\n field: 'shortlink',\n headerName: 'Username',\n sortable: true,\n align: 'center',\n headerAlign: 'center',\n flex: 1,\n },\n {\n field: 'created_at',\n headerName: 'Registration Date',\n flex: 1,\n align: 'center',\n headerAlign: 'center',\n renderCell: (params) => (\n {formatDate(params.row.created_at)}\n ),\n },\n {\n field: 'membership_plan',\n headerName: 'Current Plan',\n flex: 1,\n align: 'center',\n sortable: true,\n headerAlign: 'center',\n renderCell: (params) => (\n \n {params.row.membership_plan.name} \n {params.row.isTrialing && Trialing}\n \n ),\n },\n {\n field: 'actions',\n headerName: 'Actions',\n flex: 0.5,\n align: 'center',\n headerAlign: 'center',\n renderCell: (params) => (\n
    \n \n \n \n \n \n \n\n \n
    \n ),\n },\n ]\n\n return (\n
    \n \n history.push('/admin/chapter_uploads')}>\n Chapter Uploads\n \n history.push('/admin/associates')}>\n View Associate Accounts\n \n history.push('/admin/commission-payouts')}>\n Upload Commission Transactions\n \n history.push('/admin/referral-uploads')}>\n Backfill Referral Data\n \n \n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n )\n}\n\nexport default AdminParent\n","import React, { useState, useContext } from 'react'\nimport {\n Box,\n Button,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n Paper,\n Typography,\n} from '@mui/material'\nimport { styled } from '@mui/system'\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nconst LIGHT_RED = '#ff7f7f'\nconst LIGHT_YELLOW = '#ffff99'\n\nconst MainContainer = styled(Box)(({ theme }) => ({\n marginTop: theme.spacing(4),\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n}))\n\nconst StyledBox = styled(Box)(({ theme }) => ({\n marginTop: theme.spacing(4),\n marginBottom: theme.spacing(4),\n}))\n\nconst StyledTypography = styled(Typography)(({ theme }) => ({\n marginBottom: theme.spacing(2),\n textAlign: 'left',\n}))\n\nconst StyledTableRow = styled(TableRow)(({ theme }) => ({\n '&:last-child td, &:last-child th': { border: 0 },\n}))\n\nconst NotificationCell = styled(TableCell, {\n shouldForwardProp: (prop) =>\n prop !== 'processable' && prop !== 'halt_process',\n})(({ theme, processable, halt_process }) => ({\n backgroundColor: processable\n ? 'none'\n : halt_process\n ? LIGHT_RED\n : LIGHT_YELLOW,\n}))\n\nconst AdminChapterUploadParent = ({ user }) => {\n const [isLoading, setIsLoading] = useState(null)\n const [parsedCsvDetails, setParsedCsvDetails] = useState(null)\n const [file, setFile] = useState(null)\n\n const { setNotification } = useContext(AuthenticationContext)\n\n const handleFileChange = (event) => {\n setFile(event.target.files[0])\n setParsedCsvDetails(null)\n }\n\n const handleUpload = async () => {\n if (file) {\n try {\n setIsLoading(true)\n\n const res = await Api.uploadChapterCsv({ file: file })\n\n if (!res.errors) {\n setParsedCsvDetails(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n setIsLoading(false)\n }\n }\n\n const handleUpdateChapters = async () => {\n if (window.confirm('Are you sure? These changes are permanent.')) {\n try {\n setIsLoading(true)\n\n const res = await Api.updateChapters({\n data_to_process: parsedCsvDetails.data_to_process,\n })\n if (!res.errors) {\n setNotification('Chapters Data Successfully Processed', 'success')\n setParsedCsvDetails(null)\n setFile(null)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n setIsLoading(false)\n }\n }\n\n const renderUnprocessableError = () => {\n if (parsedCsvDetails.block_processing) {\n return (\n \n This File cannot be processed. Please fix the errors in RED and try\n again\n \n )\n }\n\n if (parsedCsvDetails.data_to_process.length === 0) {\n return (\n \n This File does not contain any records to process\n \n )\n }\n }\n\n const renderUserDetails = () => {\n if (\n parsedCsvDetails.block_processing ||\n parsedCsvDetails.users_to_create.length === 0\n ) {\n return\n }\n\n return (\n \n \n Summary of Talkadot accounts that will be created\n \n \n \n \n \n Email\n Short Code\n \n \n \n {parsedCsvDetails.users_to_create.map((row) => (\n \n {row.email}\n {row.shortlink}\n \n ))}\n \n
    \n
    \n
    \n )\n }\n\n const renderChapterDetails = () => {\n if (\n parsedCsvDetails.block_processing ||\n parsedCsvDetails.data_to_process.length === 0\n ) {\n return\n }\n\n return (\n \n \n Chapter Details (these will be linked to the account of{' '}\n {parsedCsvDetails.primary_email})\n \n \n \n \n \n Name\n Short Code\n Creating New Record\n Number of Members added\n \n \n \n {parsedCsvDetails.data_to_process.map((row) => (\n \n {row.name}\n {row.shortlink}\n {row.id === null ? 'Yes' : 'No'}\n {row.users.length}\n \n ))}\n \n
    \n
    \n
    \n )\n }\n\n const renderRowDetails = () => (\n \n \n Row Details\n \n \n \n \n \n CSV Row Reference\n Email\n Will be processed\n Comment\n \n \n \n {parsedCsvDetails.row_info.map((row) => (\n \n \n {row.row_number}\n \n {row.email}\n {row.processable ? 'Yes' : 'No'}\n \n {row.msg}\n \n \n ))}\n \n
    \n
    \n
    \n )\n\n const renderUploadConfirmationDetails = () => (\n <>\n {renderUnprocessableError()}\n {renderUserDetails()}\n {renderChapterDetails()}\n {renderRowDetails()}\n \n )\n\n const renderSubmitActions = () => {\n if (parsedCsvDetails) {\n return (\n <>\n \n {\n setParsedCsvDetails(null)\n setFile(null)\n }}>\n Reset\n \n \n {!parsedCsvDetails.block_processing &&\n parsedCsvDetails.data_to_process.length > 0 && (\n \n \n Confirm Database Changes\n \n \n )}\n \n )\n }\n\n return (\n \n \n {file && (\n \n )}\n \n )\n }\n\n return (\n \n \n Chapter CSV uploader\n \n {isLoading ? (\n

    Please Wait. This may take a couple seconds...

    \n ) : (\n <>\n {renderSubmitActions()}\n {parsedCsvDetails && renderUploadConfirmationDetails()}\n \n )}\n
    \n )\n}\n\nexport default AdminChapterUploadParent\n","import { useState, useEffect } from 'react'\nimport {\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n} from '@mui/material'\nimport { styled } from '@mui/system'\nimport Api from '../../services/api'\n\nconst StyledTableContainer = styled(TableContainer)(({ theme }) => ({\n marginTop: theme.spacing(4),\n width: '100%',\n [theme.breakpoints.up('md')]: {\n width: '50%',\n },\n}))\nconst StyledTableCell = styled(TableCell)(({ theme }) => ({\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.common.white,\n}))\n\nconst AdminAssociatesParent = () => {\n const [associates, setAssociates] = useState([])\n\n useEffect(() => {\n const getAssociates = async () => {\n try {\n const res = await Api.adminAssociateList()\n\n if (!res.errors) {\n setAssociates(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n alert('An error occurred: ' + err)\n }\n }\n\n getAssociates()\n }, [])\n\n return (\n \n \n \n \n Owner\n Associate\n \n \n \n {associates.map((associate, index) => (\n \n {associate.owner_email}\n {associate.associate_email}\n \n ))}\n \n
    \n
    \n )\n}\n\nexport default AdminAssociatesParent\n","import { useState } from 'react'\nimport {\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n TextField,\n Radio,\n RadioGroup,\n FormControlLabel,\n FormControl,\n Button,\n CircularProgress,\n Typography,\n} from '@mui/material'\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab'\n\n// For some reason this won't import from the above grouped import\nimport AdapterDateFns from '@mui/lab/AdapterDateFns'\nimport FormSection from '../common/FormSection'\nimport Api from '../../services/api'\nimport { styled } from '@mui/material/styles'\nimport moment from 'moment'\n\nconst initialEventGroupState = {\n id: null,\n name: null,\n startDate: null,\n endDate: null,\n inPerson: true,\n virtual: null,\n thankYouMessage: null,\n thankYouButtonText: null,\n}\n\nconst ActionButton = styled(Button)({\n textTransform: 'none',\n color: 'white',\n marginBottom: '16px',\n})\n\nconst OptionalSettingsContainer = styled('div')(({ theme }) => ({\n background: theme.palette.tertiary.light,\n h6: {\n color: 'orange',\n textTransform: 'uppercase',\n paddingTop: '15px',\n paddingBottom: '15px',\n },\n}))\n\nexport const FormDialogContent = styled(DialogContent)({\n padding: '0px',\n})\n\nexport const FormDialogActions = styled(DialogActions)(({ theme }) => ({\n background: theme.palette.tertiary.light,\n}))\n\nconst FormContainer = styled('div')({\n padding: '10px 25px',\n})\n\nexport const EventGroupFormFields = ({ eventGroup, setEventGroup }) => (\n \n \n \n e.stopPropagation()}\n onChange={(e) =>\n setEventGroup({ ...eventGroup, name: e.target.value })\n }\n />\n \n \n
    \n {\n setEventGroup({\n ...eventGroup,\n startDate: moment(e).format('LL'),\n utcOffset: moment(e).utcOffset(),\n })\n }}\n renderInput={(params) => }\n />\n
    \n
    \n \n
    \n {\n setEventGroup({\n ...eventGroup,\n endDate: moment(e).format('LL'),\n utcOffset: moment(e).utcOffset(),\n })\n }}\n renderInput={(params) => }\n />\n
    \n
    \n \n \n {\n if (e.target.value === 'Virtual') {\n setEventGroup({\n ...eventGroup,\n virtual: true,\n inPerson: false,\n })\n } else {\n setEventGroup({\n ...eventGroup,\n virtual: false,\n inPerson: true,\n })\n }\n }}>\n }\n label=\"In Person\"\n className={eventGroup.inPerson && 'radio-active'}\n />\n }\n label=\"Virtual\"\n className={eventGroup.virtual && 'radio-active'}\n />\n \n \n \n
    \n \n \n \n Optional Settings\n \n \n \n setEventGroup({ ...eventGroup, thankYouMessage: e.target.value })\n }\n />\n \n \n \n setEventGroup({\n ...eventGroup,\n thankYouButtonText: e.target.value,\n })\n }\n />\n \n \n \n
    \n)\n\nconst CreateEventGroupButton = ({ setEventGroups, eventGroups }) => {\n const [eventGroup, setEventGroup] = useState(initialEventGroupState)\n const [open, setOpen] = useState(false)\n const [isLoading, setIsLoading] = useState(false)\n\n const handleClose = () => {\n setEventGroup(initialEventGroupState)\n setOpen(false)\n }\n\n const handleSubmit = async () => {\n const params = {\n event_group: {\n name: eventGroup.name,\n start_date: eventGroup.startDate,\n end_date: eventGroup.endDate,\n in_person: eventGroup.inPerson,\n virtual: eventGroup.virtual,\n thank_you_message: eventGroup.thankYouMessage,\n thank_you_button_text: eventGroup.thankYouButtonText,\n },\n }\n\n try {\n setIsLoading(true)\n const res = await Api.createEventGroup(params)\n\n if (!res.errors) {\n setEventGroups([res, ...eventGroups])\n setIsLoading(false)\n handleClose()\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoading(false)\n handleClose()\n alert(err)\n }\n }\n\n return (\n
    \n setOpen(true)}\n variant=\"contained\"\n color=\"primary\">\n Add New Event\n \n handleClose()}>\n Create An Event!\n \n \n \n \n {isLoading ? (\n \n ) : (\n
    \n \n \n Create Event\n \n
    \n )}\n
    \n
    \n
    \n )\n}\n\nexport default CreateEventGroupButton\n","import { useState } from 'react'\nimport {\n Dialog,\n DialogTitle,\n Button,\n CircularProgress,\n ListItemIcon,\n ListItemText,\n MenuItem,\n} from '@mui/material'\nimport {\n EventGroupFormFields,\n FormDialogContent,\n FormDialogActions,\n} from './CreateEventGroupButton'\nimport EditIcon from '@mui/icons-material/Edit'\nimport Api from '../../services/api'\nimport { humanizeError } from '../../utils/errorFormatter'\n\nconst EditEventGroupButton = ({ eventGroup, setEventGroups, eventGroups }) => {\n const [open, setOpen] = useState(false)\n const [isLoading, setIsLoading] = useState(false)\n const [editableEventGroup, setEditableEventGroup] = useState(eventGroup)\n\n const handleEditEventGroup = async () => {\n const params = {\n event_group: {\n name: editableEventGroup.name,\n start_date: editableEventGroup.startDate,\n end_date: editableEventGroup.endDate,\n in_person: editableEventGroup.inPerson,\n virtual: editableEventGroup.virtual,\n thank_you_message: editableEventGroup.thankYouMessage,\n thank_you_button_text: editableEventGroup.thankYouButtonText,\n },\n }\n\n try {\n setIsLoading(true)\n const res = await Api.editEventGroup(params, eventGroup.id)\n\n if (!res.errors) {\n setIsLoading(false)\n setOpen(false)\n setEventGroups(eventGroups.map((eg) => (eg.id === res.id ? res : eg)))\n } else {\n throw res.errors\n }\n } catch (err) {\n setOpen(false)\n setIsLoading(false)\n alert(humanizeError(err))\n }\n }\n\n return (\n
    \n setOpen(true)}>\n \n \n \n Edit Event\n \n setOpen(false)}>\n Edit Event Details\n \n \n \n \n {isLoading ? (\n \n ) : (\n
    \n setOpen(false)}>\n Cancel\n \n \n Save Changes\n \n
    \n )}\n
    \n \n
    \n )\n}\n\nexport default EditEventGroupButton\n","import React, { useState } from 'react'\nimport {\n Typography,\n Dialog,\n DialogTitle,\n DialogActions,\n DialogContent,\n Button,\n Switch,\n} from '@mui/material'\nimport Api from '../../services/api'\nimport { styled } from '@mui/material/styles'\nimport LoadingButton from '@mui/lab/LoadingButton'\n\nexport const BoldBlue = styled('span')(({ theme }) => ({\n color: theme.palette.tabBlue.main,\n fontWeight: 'bold',\n}))\n\nconst EventActivationSwitch = ({\n eventGroup,\n eventGroups,\n setEventGroups,\n setNotification,\n mainShortlink,\n}) => {\n const [alertOpen, setAlertOpen] = useState(false)\n const [isLoading, setIsLoading] = useState(false)\n\n const handleAssignShortlink = async () => {\n try {\n setIsLoading(true)\n const res = await Api.assignEventGroupShortlink(eventGroup.id)\n\n if (!res.errors) {\n setEventGroups(res)\n setIsLoading(false)\n setAlertOpen(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setAlertOpen(false)\n setIsLoading(false)\n return setNotification(err, 'error')\n }\n }\n\n const handleUnassignShortlink = async () => {\n try {\n setIsLoading(true)\n const res = await Api.unassignEventGroupShortlink(eventGroup.id)\n\n if (!res.errors) {\n setAlertOpen(false)\n setIsLoading(false)\n setEventGroups(eventGroups.map((eg) => (eg.id === res.id ? res : eg)))\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoading(false)\n setAlertOpen(false)\n setNotification(err, 'error')\n }\n }\n\n const toggleEventGroupShortlink = async () => {\n if (!eventGroup.shortlink) {\n await handleAssignShortlink()\n } else {\n await handleUnassignShortlink()\n }\n }\n\n return (\n
    \n setAlertOpen(true)}\n />\n setAlertOpen(false)}>\n \n {eventGroup.shortlink ? (\n
    Stop showing this event?
    \n ) : (\n
    Make this the primary event?
    \n )}\n
    \n \n \n {eventGroup.shortlink ? (\n
    \n This event list will no longer show up when attendees go to your{' '}\n talk.ac/{mainShortlink} link.\n
    \n ) : (\n
    \n This is the event list attendees will see when they go to your{' '}\n talk.ac/{mainShortlink} link.\n
    \n )}\n
    \n
    \n \n \n \n Confirm\n \n \n \n
    \n )\n}\n\nexport default EventActivationSwitch\n","import React, { useEffect, useState, useContext } from 'react'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport Api from '../../services/api'\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Skeleton,\n TableContainer,\n Tooltip,\n Typography,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n IconButton,\n Paper,\n} from '@mui/material'\nimport { useHistory } from 'react-router-dom'\nimport { styled } from '@mui/material/styles'\nimport { IoEllipsisHorizontal } from 'react-icons/io5'\nimport VisibilityIcon from '@mui/icons-material/Visibility'\n\nimport CreateEventGroupButton from './CreateEventGroupButton'\nimport EditEventGroupButton from './EditEventGroupButton'\nimport EventActivationSwitch, { BoldBlue } from './EventActivationSwitch'\n\nconst EventGroupListContainer = styled('div')({\n paddingBottom: '30px',\n})\n\nconst HoverRow = styled(TableRow)({\n cursor: 'pointer',\n '&:hover': {\n background: 'rgba(0, 0, 0, 0.04)',\n },\n})\n\nconst EventGroupListTableTabContainer = styled('div')({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginTop: '50px',\n borderBottom: '1px solid lightgrey',\n})\n\nconst TabHeader = styled(Typography)(({ theme }) => ({\n background: theme.palette.tabBlue.main,\n color: 'white',\n fontWeight: 'bold',\n padding: '10px 20px',\n borderRadius: '0px 15px 0px 0px',\n}))\n\nconst StyledTableContainer = styled(TableContainer)({\n maxHeight: '80vh',\n})\n\nconst StyledTableCell = styled(TableCell)({\n background: 'skyBlue',\n fontWeight: 'bold',\n})\n\nconst EventGroupList = () => {\n const [eventGroups, setEventGroups] = useState([])\n const [isLoading, setIsLoading] = useState(false)\n const { setNotification, authData } = useContext(AuthenticationContext)\n const history = useHistory()\n\n useEffect(() => {\n const getEventGroups = async () => {\n try {\n setIsLoading(true)\n const res = await Api.fetchAllEventGroups()\n\n if (!res.errors) {\n setEventGroups(res)\n setIsLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoading(false)\n return setNotification(err, 'error')\n }\n }\n\n getEventGroups()\n }, [])\n\n const renderSkeletonTable = () => {\n return [1, 2, 3, 4, 5].map((i) => {\n return (\n \n \n \n \n \n )\n })\n }\n\n const ShareCell = ({ eventGroup }) => {\n const [anchorEl, setAnchorEl] = useState(null)\n\n const handleOpenDropdown = (e) => {\n setAnchorEl(e.currentTarget)\n }\n const handleCloseDropdown = () => {\n setAnchorEl(null)\n }\n\n return (\n \n \n \n \n \n goToEventGroup(eventGroup.id)}>\n \n \n \n View Event\n \n \n \n \n )\n }\n\n const HEADER_CELLS = [\n {\n id: 'activate-event-placeholder',\n cx: 'fixed-w-xs',\n label: null,\n numeric: false,\n sortable: false,\n },\n {\n id: 'date',\n cx: 'fixed-w-m',\n label: 'Date',\n numeric: false,\n sortable: true,\n align: 'left',\n },\n {\n id: 'event-name',\n cx: 'fixed-w-l',\n label: 'Event',\n numeric: false,\n sortable: false,\n align: 'left',\n },\n {\n id: 'location',\n cx: 'fixed-w-l',\n label: 'Location',\n numeric: false,\n sortable: false,\n align: 'left',\n },\n // TODO:\n // To implement in later iteration\n // {\n // id: 'attendance',\n // cx: 'fixed-w-ms',\n // label: 'Attendance',\n // numeric: false,\n // sortable: false,\n // align: 'left',\n // },\n // {\n // id: 'reattend',\n // cx: 'fixed-w-ms',\n // label: 'Reattend',\n // sortable: true,\n // numeric: true,\n // tooltip:\n // 'Percent who answered positively to if they would attend another one of your talks.',\n // align: 'center',\n // },\n // {\n // id: 'rating',\n // cx: 'fixed-w-s',\n // label: 'Rating',\n // sortable: true,\n // numeric: true,\n // tooltip: 'Percent who answered yes to if they found your talk valuable.',\n // align: 'center',\n // },\n {\n id: 'sessions',\n cx: 'fixed-w-ms',\n label: 'Sessions',\n sortable: true,\n numeric: true,\n tooltip: 'Total number of sessions at this event.',\n align: 'center',\n },\n {\n id: 'speakers',\n cx: 'fixed-w-ms',\n label: 'Speakers',\n sortable: true,\n numeric: true,\n tooltip: 'Total number of speakers at this event.',\n align: 'center',\n },\n {\n id: 'actions',\n cx: 'fixed-w-s',\n label: 'Actions',\n sortable: false,\n numeric: false,\n align: 'center',\n },\n ]\n\n const goToEventGroup = (eventGroupId) => {\n return history.push(`/event-planner/event-groups/${eventGroupId}`)\n }\n\n const renderHeaderCellContent = (headCell) => {\n if (headCell.tooltip) {\n return (\n \n {headCell.label}\n \n )\n } else {\n return {headCell.label}\n }\n }\n\n const renderTableHeader = () => (\n \n {HEADER_CELLS.map((headCell) => (\n \n {renderHeaderCellContent(headCell)}\n \n ))}\n \n )\n\n const renderEventGroupShortlink = (shortlink) => (\n ({shortlink?.toUpperCase()})\n )\n\n const renderTableData = () => {\n return eventGroups.map((eventGroup, i) => {\n return (\n \n \n \n \n goToEventGroup(eventGroup.id)}>\n {eventGroup.date}\n \n goToEventGroup(eventGroup.id)}>\n {eventGroup.name}\n \n goToEventGroup(eventGroup.id)}>\n {(eventGroup.inPerson || eventGroup.virtual) &&\n eventGroup.inPerson ? (\n \n In Person{' '}\n {eventGroup.shortlink &&\n renderEventGroupShortlink(eventGroup.shortlink)}\n \n ) : (\n \n Virtual{' '}\n {eventGroup.shortlink &&\n renderEventGroupShortlink(eventGroup.shortlink)}\n \n )}\n \n goToEventGroup(eventGroup.id)}>\n {eventGroup.sessions}\n \n goToEventGroup(eventGroup.id)}>\n \n \n )\n })\n }\n\n const renderTable = () => (\n \n \n {renderTableHeader()}\n \n {isLoading ? renderSkeletonTable() : renderTableData()}\n \n
    \n
    \n )\n\n return (\n \n \n All Events\n \n \n {renderTable()}\n \n )\n}\n\nexport default EventGroupList\n","import React, { useContext, createRef } from 'react'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { Typography, Skeleton, Tooltip } from '@mui/material'\nimport EventGroupList from './EventGroupList'\nimport { styled } from '@mui/material/styles'\nimport QrCodeIcon from '@mui/icons-material/QrCode'\nimport envConfig from '../../envConfig'\nimport * as Helpers from '../common/helpers'\nimport BuildOutlinedIcon from '@mui/icons-material/BuildOutlined'\nimport ContentCopyIcon from '@mui/icons-material/ContentCopy'\n\nimport '../dashboard/Dashboard.scss'\n\nvar QRCode = require('qrcode.react')\n\nconst HeaderContainer = styled('div')({\n marginBottom: '30px',\n textAlign: 'left',\n})\n\nconst Header = styled(Typography)({\n fontWeight: 'bold',\n textTransform: 'capitalize',\n})\n\nconst EventPlannerDashboard = () => {\n const { authData, setNotification } = useContext(AuthenticationContext)\n const { user, fullPageLoader } = authData\n const fullSpeakerLink = `${envConfig.REACT_APP_SHORTLINK}/${user?.shortlink}`\n const speakerShortlink = user?.shortlink?.toUpperCase()\n const qrDownloadRef = createRef()\n\n const DownloadableQrCode = () => {\n return (\n \n \n \n )\n }\n\n const handleCopy = () => {\n Helpers.handleCopy(fullSpeakerLink)\n return setNotification('Copied!', 'success')\n }\n\n const SpeakerShortlink = () => (\n \n
    \n Your Talkadot handle:\n
    \n
    \n \n talk.ac/{user.shortlink}\n \n \n \n \n
    \n
    \n )\n\n const SpeakerLinkActions = () => {\n const exportQrCode = () => {\n return Helpers.downloadInvisibleComponent(\n qrDownloadRef,\n 'qr-code-dl',\n `Talkadot-QR-${speakerShortlink}`\n )\n }\n\n return (\n
    \n \n window.open(`http://${fullSpeakerLink}?mode=test`, '_blank')\n }>\n
    \n \n
    \n
    Test My Talkadot Flow
    \n
    \n
    \n
    \n \n
    \n
    Download My QR Code
    \n
    \n \n )\n }\n\n return (\n
    \n {fullPageLoader.isActive ? (\n \n ) : (\n \n
    \n Welcome, {user.first_name}!\n
    \n
    \n )}\n \n \n \n \n
    \n )\n}\n\nexport default EventPlannerDashboard\n","import { useContext } from 'react'\nimport { styled } from '@mui/system'\nimport { Button } from '@mui/material'\n\nimport { GroupContext } from '../groups/groupContext'\n\nconst ButtonWrapper = styled('div', {\n shouldForwardProp: (prop) => prop !== 'editAttribute',\n})(({ editAttribute }) => ({\n textAlign: editAttribute === 'compensation' ? 'center' : 'left',\n}))\n\nconst EditEventButton = styled('div')({\n color: 'skyblue',\n fontWeight: 'bold',\n cursor: 'pointer',\n})\n\nconst NewEventButton = styled(Button)({\n color: 'white',\n})\n\nconst EventButton = ({\n event,\n handleOpenEventForm,\n user,\n buttonText,\n editAttribute,\n}) => {\n const {\n groupState: { selectedGroup },\n } = useContext(GroupContext)\n\n const newEventButtonText = () => {\n if (selectedGroup) {\n return window.innerWidth < 600\n ? 'Add Chapter Event'\n : 'Add New Chapter Event'\n }\n\n if (user?.isEventPlanner) {\n return window.innerWidth < 600 ? 'Add Session' : 'Add New Session'\n } else {\n return window.innerWidth < 600\n ? 'Add Speaking Engagement'\n : 'Add New Speaking Engagement'\n }\n }\n\n return (\n \n {/* This tells us what type of link UX to render, because this component is used\n to both create new events and to edit existing ones */}\n {event ? (\n {\n handleOpenEventForm(event)\n }}>\n {buttonText}\n \n ) : (\n {\n handleOpenEventForm(event)\n }}>\n {newEventButtonText()}\n \n )}\n \n )\n}\n\nexport default EventButton\n","import React, { useContext } from 'react'\nimport Papa from 'papaparse'\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { Button } from '@mui/material'\n\nconst ScheduleUploader = ({ setEvents, eventGroupId }) => {\n const { showFullPageLoader, hideFullPageLoader } = useContext(\n AuthenticationContext\n )\n\n const handleUpload = async (event) => {\n // Passing file data (event.target.files[0]) to parse using Papa.parse\n Papa.parse(event.target.files[0], {\n header: true,\n skipEmptyLines: true,\n complete: function (results) {\n createSchedule(results.data)\n },\n })\n }\n\n const createSchedule = async (data) => {\n showFullPageLoader()\n\n const params = {\n event_group_schedule: {\n event_group_id: eventGroupId,\n schedule: data,\n },\n }\n\n try {\n const res = await Api.uploadEventGroupSchedule(params)\n\n if (res.errors) {\n throw res.errors\n } else {\n setEvents(res)\n hideFullPageLoader()\n return alert('Upload Success!!!')\n }\n } catch (err) {\n hideFullPageLoader()\n return alert(err.errors)\n }\n }\n\n return (\n \n )\n}\n\nexport default ScheduleUploader\n","export const renderCurrency = (value) => {\n return value?.toLocaleString('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0,\n })\n}\n\nexport const renderPercentage = (value) => {\n return value\n ? (value / 100).toLocaleString('en-US', {\n style: 'percent',\n minimumFractionDigits: 0,\n })\n : ''\n}\n","import { ListItemIcon, ListItemText, MenuItem } from '@mui/material'\nimport { IoPencilOutline } from 'react-icons/io5'\n\nconst EditEventIcon = ({ existingEvent, handleOpenEventForm }) => {\n return (\n <>\n {\n handleOpenEventForm(existingEvent)\n }}>\n \n \n \n Edit Event\n \n \n )\n}\n\nexport default EditEventIcon\n","import { useState } from 'react'\nimport { ExportToCsv } from 'export-to-csv'\nimport Api from '../../services/api'\nimport * as Lead from '../leads/helpers'\nimport { IoFunnelOutline } from 'react-icons/io5'\nimport {\n MenuItem,\n ListItemIcon,\n ListItemText,\n CircularProgress,\n} from '@mui/material'\n\nconst EventLeadsDownloadMenuItem = ({ event, group }) => {\n const [isDownloading, setIsDownloading] = useState(false)\n\n const cleanAttributeForCsv = (attribute) => {\n if (!attribute) {\n return ''\n }\n\n return attribute\n }\n\n const exportTitle = `talkadot-leads-export-${\n event.talkTitle ? event.talkTitle : 'unnamed-event'\n }-${event.date}`\n\n const downloadEventLeads = async () => {\n const params = {\n event_leads: {\n event_id: event.id,\n },\n }\n\n try {\n setIsDownloading(true)\n let res\n\n if (group) {\n res = await Api.fetchGroupEventLeads({\n ...params,\n group_id: group.id,\n })\n } else {\n res = await Api.fetchEventLeads(params)\n }\n\n if (!res.errors) {\n if (res?.length <= 0) {\n setIsDownloading(false)\n return alert('There are no usable leads for this session')\n }\n\n const headers = [\n 'Created At',\n 'First Name',\n 'Last Name',\n 'Talk Title',\n 'Talk Organization',\n 'Phone',\n 'Email',\n 'Organization',\n 'Job Title',\n 'Contacted',\n 'Warmth',\n 'Booking Lead?',\n 'Refer Lead?',\n 'Email Opt In?',\n ]\n\n const rows = res.map((lead) => {\n return [\n lead.createdAt,\n cleanAttributeForCsv(lead.firstName),\n cleanAttributeForCsv(lead.lastName),\n cleanAttributeForCsv(lead.talkTitle),\n cleanAttributeForCsv(lead.talkOrganization),\n cleanAttributeForCsv(lead.phone),\n cleanAttributeForCsv(lead.email),\n cleanAttributeForCsv(lead.organization),\n cleanAttributeForCsv(lead.title),\n lead.contacted ? 'yes' : 'no',\n cleanAttributeForCsv(lead.warmth),\n Lead.isBookingLead(lead.leadTypes) ? 'yes' : '',\n Lead.isReferLead(lead.leadTypes) ? 'yes' : '',\n Lead.isOptIn(lead.leadTypes) ? 'yes' : '',\n ]\n })\n\n const options = {\n fieldSeparator: ',',\n quoteStrings: '\"',\n decimalSeparator: '.',\n showLabels: true,\n showTitle: false,\n title: exportTitle,\n useTextFile: false,\n useBom: true,\n useKeysAsHeaders: false,\n headers: headers,\n filename: exportTitle,\n }\n const csvExporter = new ExportToCsv(options)\n csvExporter.generateCsv(rows)\n setIsDownloading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsDownloading(false)\n alert(err)\n }\n }\n\n return (\n \n \n {isDownloading ? : }\n \n Download Leads\n \n )\n}\n\nexport default EventLeadsDownloadMenuItem\n","import { useState } from 'react'\nimport { ExportToCsv } from 'export-to-csv'\nimport { IoChatboxOutline } from 'react-icons/io5'\nimport {\n MenuItem,\n ListItemIcon,\n ListItemText,\n CircularProgress,\n} from '@mui/material'\n\nimport Api from '../../services/api'\n\nconst EventRawDataDownloadMenuItem = ({ event, group }) => {\n const [isDownloading, setIsDownloading] = useState(false)\n\n const cleanAttributeForCsv = (attribute) => {\n if (!attribute) {\n return ''\n }\n\n return attribute\n }\n\n const exportTitle = `talkadot-raw-data-export-${\n event.talkTitle ? event.talkTitle : 'unnamed-event'\n }-${event.date}`\n\n const downloadEventData = async () => {\n const params = {\n event_answers: {\n event_id: event.id,\n },\n }\n\n try {\n setIsDownloading(true)\n let res\n\n if (group) {\n res = await Api.fetchGroupEventRawAnswers({\n ...params,\n group_id: group.id,\n })\n } else {\n res = await Api.fetchEventRawAnswers(params)\n }\n\n if (!res.errors) {\n if (res?.length <= 0) {\n setIsDownloading(false)\n return alert('There are no testimonials for this session')\n }\n\n const headers = [\n 'Question',\n 'Answer',\n 'Name',\n 'Email',\n 'Job Title',\n 'Organization',\n ]\n\n const rows = res.map((answerData) => {\n return [\n cleanAttributeForCsv(answerData.question),\n cleanAttributeForCsv(answerData.answer),\n cleanAttributeForCsv(answerData.name),\n cleanAttributeForCsv(answerData.email),\n cleanAttributeForCsv(answerData.title),\n cleanAttributeForCsv(answerData.organization),\n ]\n })\n\n const options = {\n fieldSeparator: ',',\n quoteStrings: '\"',\n decimalSeparator: '.',\n showLabels: true,\n showTitle: false,\n title: exportTitle,\n useTextFile: false,\n useBom: true,\n useKeysAsHeaders: false,\n headers: headers,\n filename: exportTitle,\n }\n const csvExporter = new ExportToCsv(options)\n csvExporter.generateCsv(rows)\n setIsDownloading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsDownloading(false)\n alert(err)\n }\n }\n\n return (\n \n \n {isDownloading ? : }\n \n Download All Data\n \n )\n}\n\nexport default EventRawDataDownloadMenuItem\n","import { useState, useContext } from 'react'\nimport Api from '../../services/api'\nimport {\n MenuItem,\n ListItemIcon,\n ListItemText,\n CircularProgress,\n} from '@mui/material'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { IoSyncCircle } from 'react-icons/io5'\n\nconst EventSpeakerflowSyncMenuItem = ({ event }) => {\n const [isSyncing, setIsSyncing] = useState(false)\n const { setNotification } = useContext(AuthenticationContext)\n\n const syncLeadsWithSpeakerflow = async () => {\n try {\n setIsSyncing(true)\n const params = {\n event_leads: {\n event_id: event.id,\n },\n }\n\n const res = await Api.syncEventLeadsWithSpeakerflow(params)\n\n if (!res.errors) {\n setIsSyncing(false)\n setNotification(\n 'Your leads from this event are syncing with speakerflow!',\n 'success'\n )\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsSyncing(false)\n setNotification(\n 'Oops - looks like there was something wrong with syncing your leads with Speakerflow. Please check your Speakerflow settings on the account settings page and try again. If the problem persists, contact us at hello@talkadot.com!'\n )\n }\n }\n\n return (\n \n \n {isSyncing ? : }\n \n Sync Leads With Speakerflow\n \n )\n}\n\nexport default EventSpeakerflowSyncMenuItem\n","import { useContext, useState } from 'react'\nimport { useHistory } from 'react-router-dom'\nimport { styled } from '@mui/system'\nimport {\n Checkbox,\n Typography,\n TableRow,\n TableCell,\n Avatar,\n List,\n ListItem,\n ListItemIcon,\n ListItemText,\n Chip,\n Menu,\n MenuItem,\n IconButton,\n Tooltip,\n} from '@mui/material'\n\nimport LockIcon from '@mui/icons-material/Lock'\n\nimport { useTheme } from '@mui/material/styles'\n\nimport {\n IoEllipsisHorizontal,\n IoTrashOutline,\n IoEyeOutline,\n IoGitPullRequestOutline,\n} from 'react-icons/io5'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { usePermissionHelper } from '../../utils/permission_helper'\nimport { GroupContext } from '../groups/groupContext'\nimport { AdminContext } from '../admin/adminContext'\nimport { formatDate } from '../common/helpers'\nimport { renderPercentage } from '../../utils/number'\n\nimport EventButton from './EventButton'\nimport EditEventIcon from './EditEventIcon'\nimport EventLeadsDownloadMenuItem from './EventLeadsDownloadMenuItem'\nimport EventRawDataDownloadMenuItem from './EventRawDataDownloadMenuItem'\nimport EventSpeakerflowSyncMenuItem from './EventSpeakerflowSyncMenuItem'\nimport { eventReportCardShareLink } from '../common/helpers'\nimport ConfirmDialog from '../common/ConfirmDialog'\n\nconst SpeakersListAvatar = styled(Avatar)({\n // Note: the image width and height here is a solution to\n // prevent a small black border to show up on the left and top\n // of the image in certain occassions.\n img: {\n width: '102%',\n height: '102%',\n },\n})\n\nconst EventCodeCell = styled('div')({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n})\n\nconst SpeakerTableRow = styled(TableRow, {\n shouldForwardProp: (prop) =>\n prop !== 'eventMergable' &&\n prop !== 'isPrimeEvent' &&\n prop !== 'isEventOwner',\n})(({ eventMergable, isPrimeEvent, isEventOwner }) => ({\n backgroundColor: isPrimeEvent\n ? '#4da02e !important'\n : eventMergable\n ? '#d3e8cb !important'\n : isEventOwner\n ? 'unset'\n : 'snow',\n td: {\n color: isPrimeEvent && 'white',\n },\n}))\n\nconst SessionFromEventIcon = styled(Typography)({\n fontWeight: 'bold',\n background: 'lightgrey',\n borderRadius: '50px',\n width: '25px',\n height: '25px',\n textAlign: 'center',\n marginLeft: '8px',\n})\n\nconst initialConfirmProps = {\n title: '',\n message: '',\n onConfirm: () => {},\n}\n\nconst EventListRow = ({\n event,\n deleteEvent,\n handleOpenEventForm,\n selectEvent,\n deselectEvent,\n handleShareEvent,\n mergeEvents,\n mergableEvents,\n primeEvent,\n}) => {\n const history = useHistory()\n const { authData } = useContext(AuthenticationContext)\n const { adminState } = useContext(AdminContext)\n const {\n groupState: { selectedGroup },\n } = useContext(GroupContext)\n const { canDownloadEventLeads } = usePermissionHelper()\n\n const [confirmOpen, setConfirmOpen] = useState(false)\n const [confirmProps, setConfirmProps] = useState(initialConfirmProps)\n\n const theme = useTheme()\n const { user } = authData\n const { isAssociate, speakerflow_url, speakerflowEnabled } = authData?.user\n const isEventOwner =\n user?.id === event?.ownerId || selectedGroup?.id === event?.ownerId\n const eventMergable = event.isSelected && !event.isPrimeEvent\n const eventReportShortlink = selectedGroup\n ? selectedGroup.shortlink\n : user.shortlink\n\n const handleMergeEvents = async () => {\n await mergeEvents()\n setConfirmOpen(false)\n }\n\n const handleMergeEventsClick = () => {\n if (mergableEvents.length > 0) {\n const mergeContent = `${mergableEvents.length} event${\n mergableEvents?.length > 1 ? 's' : ''\n } into ${formatDate(primeEvent.date, primeEvent.utcOffset)} ${\n primeEvent.talkTitle ? `- ${primeEvent.talkTitle}` : ''\n }`\n\n setConfirmProps({\n title: 'Merge Events?',\n message: `Are you sure you want to merge these events? Merging ${mergeContent} is NOT reversible.`,\n onConfirm: () => handleMergeEvents(),\n })\n\n setConfirmOpen(true)\n }\n }\n\n const renderEditableCell = ({\n value,\n buttonText = 'Add Details!',\n editAttribute = '',\n attributeName,\n }) => {\n if (isEventOwner) {\n return value ? (\n value\n ) : (\n \n )\n }\n if (attributeName === 'talkTitle') {\n return value\n } else {\n return null\n }\n }\n\n const goToEventReport = () => {\n // If admin is impersonating, don't go to a new page\n if (adminState?.impersonation?.isActive) {\n return (\n !event.isSelected && history.push(`/event-report/${event.shareKey}`)\n )\n }\n\n // Don't go to the event report if the event is currently selected as a merge event\n return (\n !event.isSelected &&\n window.open(\n eventReportCardShareLink(eventReportShortlink, event.shareKey),\n '_blank',\n 'noreferrer'\n )\n )\n }\n\n const handleClick = ({ value, allowEditDetails = false }) => {\n if (allowEditDetails && !value) {\n // open event details dialog\n return null\n } else {\n goToEventReport()\n }\n }\n\n const ShareCell = () => {\n const [anchorEl, setAnchorEl] = useState(null)\n\n const handleOpenDropdown = (e) => {\n setAnchorEl(e.currentTarget)\n }\n const handleCloseDropdown = () => {\n setAnchorEl(null)\n }\n\n return (\n \n \n \n \n \n \n \n \n \n View Report\n \n {isEventOwner && (\n \n )}\n {/* {isEventOwner &&\n !selectedGroup &&\n (hasGroupsFeatureFlag || isAdmin) && (\n handleShareEvent(event)}>\n \n \n \n Share Event\n \n )} */}\n {isEventOwner && canDownloadEventLeads() && (\n
    \n \n \n {speakerflowEnabled && speakerflow_url && (\n \n )}\n
    \n )}\n {isEventOwner && (\n \n \n \n \n Merge Events\n \n )}\n {isEventOwner && !isAssociate && (\n deleteEvent(event)}>\n \n \n \n Delete Event\n \n )}\n \n
    \n )\n }\n\n const _handleSelectEvent = () => {\n return event.isSelected ? deselectEvent(event) : selectEvent(event)\n }\n\n const renderSpeakerList = () => {\n return (\n \n {event.speakers.map((speaker) => {\n return renderSpeakerListItem(speaker)\n })}\n \n )\n }\n\n const getChipColor = (eventType) => {\n if (!eventType) {\n return\n }\n\n const et = eventType.toUpperCase()\n\n if (et === 'KEYNOTE') {\n return 'success'\n }\n\n if (et === 'WORKSHOP') {\n return 'primary'\n }\n\n if (et === 'GLOBAL') {\n return 'warning'\n }\n }\n\n const renderEventType = () => {\n const { eventType } = event\n const color = getChipColor(eventType)\n\n if (eventType) {\n return \n }\n }\n\n const renderSpeakerListItem = (speaker) => (\n \n \n \n \n \n {speaker.full_name}\n \n \n )\n\n const renderResponsesCell = () => {\n if (event.audienceSize) {\n return (\n \n {event.responses}\n \n {' '}\n / {event.audienceSize}\n \n \n )\n } else {\n return {event.responses}\n }\n }\n\n const renderEventPlannerRow = () => (\n \n \n \n \n \n \n
    {formatDate(event.date, event.utcOffset)}
    \n
    {event.startTime}
    \n
    \n \n handleClick({\n value: event.talkTitle,\n allowEditDetails: true,\n })\n }>\n {renderEditableCell({ value: event.talkTitle })}\n \n {event.isSelected && !event.isPrimeEvent && (\n \n Merge into selected event\n \n )}\n {event.isSelected && event.isPrimeEvent && (\n \n \n Click here to merge selected events into this event\n \n \n )}\n {!event.isSelected && (\n \n {renderSpeakerList()}\n \n )}\n {!event.isSelected && (\n \n {renderEventType()}\n \n )}\n {!event.isSelected && (\n \n {renderPercentage(event.reattend)}\n \n )}\n {!event.isSelected && (\n \n {renderPercentage(event.rating)}\n \n )}\n {!event.isSelected && (\n \n {renderResponsesCell()}\n \n )}\n {!event.isSelected && }\n \n )\n\n const renderGroupGuestSpeakerRow = () => (\n \n \n \n \n \n \n handleClick({\n value: event.date,\n allowEditDetails: false,\n })\n }>\n {formatDate(event.date, event.utcOffset)}\n \n \n handleClick({\n value: event.talkTitle,\n allowEditDetails: true,\n })\n }>\n {renderEditableCell({ value: event.talkTitle })}\n \n {event.isSelected && !event.isPrimeEvent && (\n \n Merge into selected event\n \n )}\n {event.isSelected && event.isPrimeEvent && (\n \n \n {mergableEvents.length > 0 ? (\n Click here to merge selected events into this event\n ) : (\n Select other events to merge into this event\n )}\n \n \n )}\n {!event.isSelected && (\n \n {renderSpeakerList()}\n \n )}\n {!event.isSelected && (\n \n {event.location}\n \n )}\n {!event.isSelected && (\n \n {event.reattend}%\n \n )}\n {!event.isSelected && (\n \n {event.rating}%\n \n )}\n {!event.isSelected && (\n \n {event.responses}\n \n )}\n {!event.isSelected && (\n \n \n {isEventOwner && event.eventCode?.toUpperCase()}\n {isEventOwner && event.lockedOfferCode && (\n \n \n \n )}\n \n \n )}\n {!event.isSelected && }\n \n )\n\n const renderStandardRow = () => (\n \n \n {!isEventOwner ? (\n \n E\n \n ) : (\n \n )}\n \n \n \n handleClick({\n value: event.date,\n allowEditDetails: false,\n })\n }>\n {formatDate(event.date, event.utcOffset)}\n \n \n handleClick({\n value: event.eventOrganization,\n allowEditDetails: true,\n })\n }>\n {renderEditableCell({ value: event.eventOrganization })}\n \n \n handleClick({\n value: event.talkTitle,\n allowEditDetails: true,\n })\n }>\n {renderEditableCell({\n value: event.talkTitle,\n attributeName: 'talkTitle',\n })}\n \n {event.isSelected && !event.isPrimeEvent && (\n \n Merge into selected event\n \n )}\n {event.isSelected && event.isPrimeEvent && (\n \n \n {mergableEvents.length > 0 ? (\n Click here to merge selected events into this event\n ) : (\n Select other events to merge into this event\n )}\n \n \n )}\n {!event.isSelected && (\n \n {event.location}\n \n )}\n {!event.isSelected && (\n \n handleClick({\n value: event.compensation,\n allowEditDetails: true,\n })\n }>\n {renderEditableCell({\n value: event.compensation !== null && `$${event.compensation}`,\n buttonText: 'add',\n editAttribute: 'compensation',\n })}\n \n )}\n {!event.isSelected && (\n \n {event.reattend}%\n \n )}\n {!event.isSelected && (\n \n {event.rating}%\n \n )}\n {!event.isSelected && (\n \n {event.responses}\n \n )}\n {!event.isSelected && (\n \n {isEventOwner ? event.leads : 'N/A'}\n \n )}\n {!event.isSelected && (\n \n \n {isEventOwner && event.eventCode?.toUpperCase()}\n {isEventOwner && event.lockedOfferCode && (\n \n \n \n )}\n \n \n )}\n {!event.isSelected && }\n \n )\n\n const renderRow = () => {\n if (user?.isEventPlanner) {\n return renderEventPlannerRow()\n } else if (selectedGroup) {\n return renderGroupGuestSpeakerRow()\n } else {\n return renderStandardRow()\n }\n }\n\n return (\n <>\n {renderRow()}\n \n {confirmProps.message}\n \n \n )\n}\nexport default EventListRow\n","export default __webpack_public_path__ + \"static/media/events-dummy-data-image.78d4db6b.png\";","import { useState, useContext, useEffect } from 'react'\nimport { styled } from '@mui/system'\nimport {\n Box,\n Paper,\n Skeleton,\n Typography,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TableSortLabel,\n Tooltip,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n TextField,\n Autocomplete,\n Button,\n} from '@mui/material'\nimport { visuallyHidden } from '@mui/utils'\n\nimport Api from '../../services/api'\nimport { device } from '../../responsive'\n\nimport ScheduleUploader from '../eventPlanners/ScheduleUploader'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { GroupContext } from '../groups/groupContext'\n\nimport EventListRow from './EventListRow'\nimport EventButton from './EventButton'\n\nimport eventDummyData from '../../icons/events-dummy-data-image.png'\n\nconst StyledTableContainer = styled(TableContainer)({\n maxHeight: '75vh',\n})\n\nconst StyledTableCell = styled(TableCell)({\n // background: 'skyBlue',\n})\n\nconst UploadActionsContainer = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n gap: '20px',\n})\n\nconst GroupShareDialog = styled(Dialog)({\n '& .MuiDialog-paper': {\n minWidth: '500px',\n },\n [`@media ${device.mobile}`]: {\n '& .MuiDialog-paper': {\n minWidth: '90vw',\n },\n },\n})\n\nconst DialogContentContainer = styled('div')({\n paddingTop: '5px',\n marginBottom: '1rem',\n})\n\nconst ShareGroupsContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n marginTop: '1rem',\n})\n\nconst ShareGroupRow = styled('div')({\n display: 'grid',\n gridTemplateColumns: '1fr 20%',\n alignItems: 'center',\n})\n\nconst StyledH4 = styled(Typography)({\n [`@media ${device.mobile}`]: {\n fontSize: '1rem',\n },\n})\n\nconst StyledH5 = styled(Typography)({\n [`@media ${device.mobile}`]: {\n fontSize: '0.875rem',\n },\n})\n\nconst MobileEventButtonWrapper = styled('div')({\n display: 'flex',\n marginTop: '1rem',\n})\n\nconst EventListParent = ({\n events,\n eventsLoading,\n setEvents,\n handleOpenEventForm,\n deleteEvent,\n eventGroupId,\n mergeEvents,\n mergableEvents,\n primeEvent,\n}) => {\n const [order, setOrder] = useState('asc')\n const [orderBy, setOrderBy] = useState('date')\n const [shareDialogOpen, setShareDialogOpen] = useState(false)\n const [shareEvent, setShareEvent] = useState(null)\n const [availableGroups, setAvailableGroups] = useState([])\n const [availableGroupsLoading, setAvailableGroupsLoading] = useState(false)\n const [filteredGroups, setFilteredGroups] = useState([])\n const [selectedGroups, setSelectedGroups] = useState([])\n const [shareGroups, setShareGroups] = useState([])\n const [shareGroupsLoading, setShareGroupsLoading] = useState(false)\n const { authData, setNotification } = useContext(AuthenticationContext)\n const {\n groupState: { selectedGroup },\n } = useContext(GroupContext)\n const { user } = authData\n\n useEffect(() => {\n const filteredGroups = availableGroups.filter(\n (group) => !shareGroups.some((shareGroup) => shareGroup.id === group.id)\n )\n setFilteredGroups(filteredGroups)\n }, [availableGroups, shareGroups])\n\n const renderSkeleton = () => {\n return [1, 2, 3, 4, 5].map((i) => {\n return (\n \n \n \n \n \n )\n })\n }\n\n const renderEventPlannerEventsPlaceholder = () => (\n
    \n \"placeholder\"\n
    \n
    \n \n Your Session List And Data Will Appear Here!\n \n
    \n \n \n \n \n
    \n
    \n )\n\n const renderEventsPlaceholder = () => (\n <>\n
    \n \"placeholder\"\n
    \n
    \n \n Your Speaking Engagement Data Will Appear Here!\n \n \n Make sure to add your Talkadot Slide (or QR code) to your talks to\n collect event data!\n \n \n You can also proactively create events in advance by clicking the\n button below.\n \n\n {window.innerWidth > 960 && (\n \n )}\n
    \n
    \n
    \n {window.innerWidth <= 960 && (\n \n \n \n )}\n \n )\n\n const selectEvent = (eventToSelect) => {\n // If there is no event selected, set this one to be event prime\n if (!events.some((event) => event.isPrimeEvent)) {\n setEvents(\n events.map((event) =>\n eventToSelect.id === event.id\n ? { ...event, isPrimeEvent: true, isSelected: true }\n : { ...event }\n )\n )\n } else {\n setEvents(\n events.map((event) =>\n eventToSelect.id === event.id\n ? { ...event, isSelected: true }\n : { ...event }\n )\n )\n }\n }\n\n const deselectAllEvents = () => {\n // Make sure to set isPrimeEvent to false as well\n setEvents(\n events.map(\n (event) => event && { ...event, isSelected: false, isPrimeEvent: false }\n )\n )\n }\n\n const deselectEvent = (eventToSelect) => {\n // If you deselect the prime event, deselect all of them\n if (eventToSelect.isPrimeEvent) {\n deselectAllEvents()\n } else {\n setEvents(\n events.map((event) =>\n eventToSelect.id === event.id\n ? { ...event, isSelected: false }\n : { ...event }\n )\n )\n }\n }\n\n // *****************************************8\n // For Table Sorting\n // Pulled from material-ui docs here:\n // https://mui.com/material-ui/react-table/\n // *******************************************\n const onRequestSort = (event, property) => {\n const isAsc = orderBy === property && order === 'asc'\n setOrder(isAsc ? 'desc' : 'asc')\n setOrderBy(property)\n }\n\n const createSortHandler = (property) => (event) => {\n onRequestSort(event, property)\n }\n\n function descendingComparator(a, b, orderBy) {\n if (b[orderBy] < a[orderBy]) {\n return -1\n }\n if (b[orderBy] > a[orderBy]) {\n return 1\n }\n return 0\n }\n\n const handleSortDate = (order, orderBy) => {\n if (order === 'desc') {\n return (a, b) =>\n b.date?.localeCompare(a.date) ||\n new Date('1970/01/01 ' + a.startTime) -\n new Date('1970/01/01 ' + b.startTime)\n } else {\n return (a, b) =>\n a.date?.localeCompare(b.date) ||\n new Date('1970/01/01 ' + a.startTime) -\n new Date('1970/01/01 ' + b.startTime)\n }\n }\n\n function getComparator(order, orderBy) {\n if (orderBy === 'date') {\n return handleSortDate(order, orderBy)\n }\n\n return order === 'desc'\n ? (a, b) => descendingComparator(a, b, orderBy)\n : (a, b) => -descendingComparator(a, b, orderBy)\n }\n\n const eventPlannerHeaderCells = [\n {\n id: 'placeholder-checkbox',\n cx: 'fixed-w-xs',\n label: null,\n numeric: false,\n sortable: false,\n align: 'left',\n },\n {\n id: 'placeholder-empty',\n cx: 'fixed-w-xs',\n label: null,\n numeric: false,\n sortable: false,\n align: 'left',\n },\n {\n id: 'date',\n cx: 'fixed-w-m',\n label: 'Date',\n numeric: false,\n sortable: true,\n align: 'left',\n },\n {\n id: 'talk',\n cx: 'fixed-w-l',\n label: 'Talk',\n numeric: false,\n sortable: false,\n align: 'left',\n },\n {\n id: 'speakers',\n cx: 'fixed-w-l',\n label: 'Speakers',\n numeric: false,\n sortable: false,\n align: 'left',\n },\n {\n id: 'talk-type',\n cx: 'fixed-w-s',\n label: 'Type',\n numeric: false,\n sortable: false,\n align: 'center',\n },\n {\n id: 'reattend',\n cx: 'fixed-w-ms',\n label: 'Reattend',\n sortable: true,\n numeric: true,\n tooltip:\n 'Percent who answered positively to if they would attend another one of your talks.',\n align: 'center',\n },\n {\n id: 'rating',\n cx: 'fixed-w-s',\n label: 'Rating',\n sortable: true,\n numeric: true,\n tooltip: 'Percent who answered yes to if they found your talk valuable.',\n align: 'center',\n },\n {\n id: 'responses',\n cx: 'fixed-w-ms',\n label: 'Responses',\n sortable: true,\n numeric: true,\n tooltip:\n 'Total number of attendees who answered at least 1 question in the review flow.',\n align: 'center',\n },\n {\n id: 'actions',\n cx: 'fixed-w-s',\n label: 'Actions',\n sortable: false,\n numeric: false,\n align: 'center',\n },\n ]\n\n const eventPlannerTableHeader = () => (\n \n {eventPlannerHeaderCells.map((headCell) => (\n \n {headCell.sortable ? (\n \n {headCell.label}\n {orderBy === headCell.id ? (\n \n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\n \n ) : null}\n \n ) : (\n headCell.label\n )}\n \n ))}\n \n )\n\n const speakerAccountTableHeader = () => (\n \n \n \n \n Date\n \n \n Organization\n \n \n Talk\n \n \n Location\n \n \n Rate\n \n \n \n Reattend\n \n \n \n \n Rating\n \n \n \n \n Responses\n \n \n \n \n Leads\n \n \n \n \n Code\n \n \n \n Actions\n \n \n )\n\n const groupGuestSpeakerTableHeader = () => (\n \n \n \n \n Date\n \n \n Talk\n \n \n Speakers\n \n \n Location\n \n \n \n Reattend\n \n \n \n \n Rating\n \n \n \n \n Responses\n \n \n \n \n Code\n \n \n \n Actions\n \n \n )\n\n const fetchShareGroups = async (eventId) => {\n try {\n const res = await Api.getShareGroups(eventId)\n if (!res.errors) {\n const groups = res.map((group) => ({\n label: group.name,\n id: group.id,\n }))\n setShareGroups(groups)\n setShareGroupsLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setShareGroupsLoading(false)\n setNotification(err)\n }\n }\n\n const fetchGroups = async (eventId) => {\n try {\n const res = await Api.getGroups()\n if (!res.errors) {\n const groups = res.groups.map((group) => ({\n label: group.name,\n id: group.id,\n }))\n setAvailableGroups(groups)\n setAvailableGroupsLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setAvailableGroupsLoading(false)\n setNotification(err)\n }\n }\n\n const handleShareEvent = async (event) => {\n setShareGroupsLoading(true)\n setAvailableGroupsLoading(true)\n setShareDialogOpen(true)\n\n await fetchShareGroups(event.id)\n fetchGroups(event.id)\n\n setShareEvent(event)\n }\n\n const renderSortableTable = () => {\n return events\n .sort(getComparator(order, orderBy))\n .map((event, i) => (\n \n ))\n }\n\n const renderStandardTable = () => {\n return events.map((event, i) => (\n \n ))\n }\n\n const renderEventList = () => {\n if (user?.isEventPlanner) {\n return renderSortableTable()\n } else {\n return renderStandardTable()\n }\n }\n\n const renderPlaceholder = () => {\n if (user.isEventPlanner) {\n return renderEventPlannerEventsPlaceholder()\n } else {\n return renderEventsPlaceholder()\n }\n }\n\n const handleOptionChange = (_event, values) => {\n setSelectedGroups(values.map((value) => value.id))\n }\n\n const handleSaveShareGroups = async () => {\n try {\n const params = {\n event_permission: {\n event_id: shareEvent.id,\n group_ids: selectedGroups,\n },\n }\n const res = await Api.createEventPermissions(params)\n if (!res.errors) {\n setShareGroups([\n ...shareGroups,\n ...availableGroups.filter((group) =>\n selectedGroups.includes(group.id)\n ),\n ])\n setSelectedGroups([])\n } else {\n setNotification(res)\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const handleRemoveShareGroup = async (groupId) => {\n const params = {\n event_permission: {\n event_id: shareEvent.id,\n group_id: groupId,\n },\n }\n const res = await Api.deleteEventPermission(params)\n if (!res.errors) {\n setShareGroups(shareGroups.filter((group) => group.id !== groupId))\n } else {\n setNotification(res)\n }\n }\n\n const renderHeader = () => {\n // TODO: Can we get rid of the event planner now?\n if (user?.isEventPlanner) {\n return eventPlannerTableHeader()\n } else if (selectedGroup) {\n return groupGuestSpeakerTableHeader()\n } else {\n return speakerAccountTableHeader()\n }\n }\n\n return (\n
    \n {eventsLoading || events?.length > 0 ? (\n \n \n {renderHeader()}\n \n {eventsLoading ? renderSkeleton() : renderEventList()}\n \n
    \n
    \n ) : (\n renderPlaceholder()\n )}\n {!selectedGroup && (\n setShareDialogOpen(false)}\n aria-labelledby=\"Event Share Dialog\">\n \n Share{' '}\n {shareEvent?.talkTitle ? `\"${shareEvent?.talkTitle}\"` : 'Event'}\n \n \n \n \n availableGroups.find((group) => group.id === id)\n )}\n onChange={handleOptionChange}\n options={filteredGroups}\n getOptionLabel={(option) => option.label}\n loading={availableGroupsLoading}\n renderInput={(params) => (\n \n )}\n />\n \n \n Groups with access\n \n {shareGroupsLoading ? (\n \n ) : (\n shareGroups.map((group) => (\n \n \n {group.label}\n \n \n \n ))\n )}\n \n \n \n \n \n \n Save\n \n \n \n )}\n
    \n )\n}\n\nexport default EventListParent\n","import { useState } from 'react'\n// import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\nimport { useTheme } from '@mui/material/styles'\nimport MergeIcon from '@mui/icons-material/Merge'\n// import DeleteIcon from '@mui/icons-material/Delete'\n\nimport { formatDate } from '../common/helpers'\n\nimport ConfirmDialog from '../common/ConfirmDialog'\n\n// const StyledMergeIcon = styled(MergeIcon)({\n// transform: 'rotate(90deg)',\n// })\n\n// const StyledButton = styled(Button)({\n// textTransform: 'none',\n// marginRight: '1rem',\n// })\n\nconst EventBulkActions = ({ mergableEvents, primeEvent, mergeEvents }) => {\n const [confirmOpen, setConfirmOpen] = useState(false)\n\n const theme = useTheme()\n\n const mergeContent = `${mergableEvents.length} event${\n mergableEvents?.length > 1 ? 's' : ''\n } into ${formatDate(primeEvent.date, primeEvent.utcOffset)} ${\n primeEvent.talkTitle ? `- ${primeEvent.talkTitle}` : ''\n }`\n\n const handleMergeEvents = async () => {\n await mergeEvents()\n setConfirmOpen(false)\n }\n\n const handleMergeEventsClick = () => {\n if (mergableEvents.length > 0) {\n setConfirmOpen(true)\n }\n }\n\n return (\n
    \n \n Merge {mergeContent}?\n \n {/* }\n color=\"tertiary\"\n onClick={handleMergeEventsClick}>\n Merge\n */}\n {/* TODO: only show if there are selected events */}\n {/* } color=\"tertiary\">\n Delete\n */}\n \n
    Are you sure you want to merge these events?
    \n
    \n Merging {mergeContent} is NOT reversible.\n
    \n \n
    \n )\n}\n\nexport default EventBulkActions\n","import { useContext, useState } from 'react'\nimport moment from 'moment'\nimport { styled } from '@mui/system'\n\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { GroupContext } from '../groups/groupContext'\n\nimport EventButton from './EventButton'\nimport EventListParent from './EventListParent'\nimport EventBulkActions from './EventBulkActions'\nimport PageHeader from '../common/PageHeader'\nimport ConfirmDialog from '../common/ConfirmDialog'\n\nimport { formatDate } from '../common/helpers'\nimport './Events.scss'\n\nconst HeaderWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n}))\n\nconst EventsParent = ({\n events,\n eventsLoading,\n setEvents,\n eventGroupId,\n handleOpenEventForm,\n}) => {\n const [confirmOpen, setConfirmOpen] = useState(false)\n const [deleteEvent, setDeleteEvent] = useState(null)\n // const [mergeActive, setMergeActive] = useState(false)\n const { setNotification, showFullPageLoader, hideFullPageLoader, authData } =\n useContext(AuthenticationContext)\n const {\n groupState: { selectedGroup },\n } = useContext(GroupContext)\n const primeEvent = events?.find((event) => event.isPrimeEvent)\n const mergableEvents = events?.filter(\n (event) => event.isSelected && !event.isPrimeEvent\n )\n\n const mergeEvents = async () => {\n try {\n showFullPageLoader()\n\n const params = {\n event_merges: {\n event_ids: mergableEvents.map((event) => event.id),\n prime_event_id: primeEvent.id,\n },\n ...(selectedGroup ? { group_id: selectedGroup.id } : {}),\n }\n\n let res\n if (selectedGroup) {\n res = await Api.mergeGroupEvent(params)\n } else {\n res = await Api.mergeEvent(params)\n }\n\n if (res.errors) {\n throw res.errors\n } else {\n setNotification('Event Merge Successful!', 'success')\n setEvents(res)\n hideFullPageLoader()\n }\n } catch (err) {\n hideFullPageLoader()\n setNotification(err, 'error')\n }\n }\n\n const handleConfirmDelete = async () => {\n if (deleteEvent?.id) {\n try {\n let res\n if (selectedGroup) {\n res = await Api.deleteGroupEvent(deleteEvent.id, selectedGroup.id)\n } else {\n res = await Api.deleteEvent(deleteEvent.id)\n }\n\n if (!res.errors) {\n setNotification('Delete Success!', 'success')\n setEvents(events.filter((event) => event.id !== deleteEvent.id))\n setDeleteEvent(null)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err, 'error')\n setDeleteEvent(null)\n }\n }\n }\n\n const handleDeleteEvent = (event) => {\n setDeleteEvent(event)\n setConfirmOpen(true)\n }\n\n const enoughResponses = (event) => {\n return event.responses > 0\n }\n\n const validMetaData = (event) => {\n return event.talkTitle || event.organization\n }\n\n const isFutureEvent = (event) => {\n return moment(event.date) > moment().add(-1, 'days')\n }\n\n const shouldShowEvent = (event) => {\n // Note:\n // This function needs to remain backwards compatible from before we\n // added the ability to track if an event is system generated or not\n\n // Hide any system generated event without enough responses\n if (event.isSystemGenerated && !enoughResponses(event)) {\n return false\n }\n\n return (\n enoughResponses(event) || validMetaData(event) || isFutureEvent(event)\n )\n }\n\n const setEventVisibility = () => {\n return events?.filter((event) => shouldShowEvent(event))\n }\n\n const renderPageHeader = () => {\n let headerText\n\n if (selectedGroup) {\n headerText = 'Chapter Speaking Events'\n } else if (authData?.user?.isEventPlanner) {\n headerText = 'Feedback By Session'\n } else {\n headerText = 'Your Speaking Engagements'\n }\n\n return \n }\n\n return (\n
    \n \n {renderPageHeader()}\n {events?.length > 0 && (\n \n )}\n \n {primeEvent && mergableEvents?.length > 0 && (\n \n )}\n {/* \n {events?.length > 0 && (\n <>\n \n \n \n )}\n */}\n \n setDeleteEvent(null)}\n buttonColor=\"black\"\n buttonText=\"I understand the consequences, delete this event and related data\"\n cancelButtonText=\"Cancel request, keep this event\"\n manualConfirm={true}\n columnLayout={true}\n confirmText=\"DELETE ALL\">\n {deleteEvent?.responses > 0 || deleteEvent?.leads > 0 ? (\n <>\n You will also be deleting{' '}\n {deleteEvent?.responses > 0\n ? `${deleteEvent.responses} responses`\n : ''}\n {deleteEvent?.leads > 0 ? ` and ${deleteEvent.leads} leads` : ''}{' '}\n related to{' '}\n {deleteEvent?.talkTitle ? (\n <>\"{deleteEvent.talkTitle}\"\n ) : (\n 'this event'\n )}{' '}\n on {formatDate(deleteEvent.date, deleteEvent.offset)}.\n \n ) : (\n <>\n )}\n \n
    \n )\n}\n\nexport default EventsParent\n","import React, { useEffect, useState, useContext } from 'react'\nimport { Typography } from '@mui/material'\nimport TotalAttendees from '../eventReportCards/TotalAttendees'\nimport TalkValue from '../eventReportCards/TalkValue'\nimport TalkReattend from '../eventReportCards/TalkReattend'\nimport EventPlannerEngagement from '../eventReportCards/EventPlannerEngagement'\nimport Banner from '../eventReportCards/Banner'\nimport Api from '../../services/api'\nimport { formatDate } from '../common/helpers'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nconst initialReportDataState = {\n totalResponses: null,\n reattendBreakdown: {},\n ratingsBreakdown: {},\n eventType: 'TOTAL_STATISTICS',\n speaker: {},\n talkTitle: null,\n organization: null,\n date: null,\n endDate: null,\n speakers: [],\n engagementBreakdown: [],\n}\n\nconst EventGroupReport = ({ eventGroupId = null }) => {\n const [reportData, setReportData] = useState(initialReportDataState)\n const [isLoading, setIsLoading] = useState(false)\n const { setNotification } = useContext(AuthenticationContext)\n\n useEffect(() => {\n const loadReportData = async () => {\n try {\n setIsLoading(true)\n\n const res = await Api.fetchEventGroupOverallData(eventGroupId)\n\n if (!res.errors) {\n setReportData({ ...reportData, ...res })\n setIsLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoading(false)\n setNotification(err)\n }\n }\n\n loadReportData()\n }, [])\n\n const renderEmptyReport = () => (\n
    \n \n Your aggregate stats will appear here!\n \n
    \n \n Once your event starts and you collect submissions, they'll appear here\n in real time!\n \n
    \n )\n\n const renderDataSummary = () => (\n
    \n \n \n \n \n
    \n )\n\n const makeBannerDate = () => {\n if (reportData.date && reportData.endDate) {\n return `${formatDate(\n reportData.date,\n reportData.utcOffset\n )} - ${formatDate(reportData.endDate, reportData.utcOffset)}`\n }\n\n if (reportData.date) {\n return formatDate(reportData.date, reportData.utcOffset)\n }\n\n return null\n }\n\n return (\n
    \n \n {!isLoading && !reportData.totalResponses\n ? renderEmptyReport()\n : renderDataSummary()}\n
    \n )\n}\n\nexport default EventGroupReport\n","import { useEffect, useState, useContext } from 'react'\n\nimport { GroupContext } from '../groups/groupContext'\n\nimport {\n Select,\n MenuItem,\n CircularProgress,\n Button,\n Typography,\n} from '@mui/material'\n\nimport ConfirmDialog from '../common/ConfirmDialog'\n\nimport Api from '../../services/api'\n\nconst SurveyOfferSelect = ({ event, setEvent }) => {\n const [isLoading, setIsLoading] = useState(false)\n const [offerCodes, setOfferCodes] = useState([])\n const [confirmOpen, setConfirmOpen] = useState(false)\n const {\n groupState: { selectedGroup },\n } = useContext(GroupContext)\n\n useEffect(() => {\n const fetchOfferCodes = async () => {\n try {\n setIsLoading(true)\n let res\n if (selectedGroup) {\n res = await Api.getAllGroupOfferCodes({\n event_id: event.id,\n group_id: selectedGroup.id,\n })\n } else {\n res = await Api.getUnlockedUserCodes({\n event_id: event.id,\n })\n }\n\n if (!res.errors) {\n setOfferCodes(res)\n setIsLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoading(false)\n }\n }\n\n fetchOfferCodes()\n }, [])\n\n const confirmClearLockedCode = () => {\n setEvent({ ...event, eventCode: null, lockedOfferCode: null })\n }\n\n const clearLockedCode = () => {\n setConfirmOpen(true)\n }\n\n return isLoading ? (\n \n ) : offerCodes.length > 0 ? (\n
    \n \n setEvent({\n ...event,\n // We need to differentiate in the UX the code the user is locking\n // as well as the event code that gets persisted in the DB\n lockedOfferCode: e.target.value,\n })\n }>\n \n Select an offer code ...\n \n {offerCodes.map((offerCode, i) => {\n return (\n \n {offerCode.code.toUpperCase()}\n \n )\n })}\n \n \n Clear Code\n \n \n Are you sure you want to remove this code from this event?\n

    \n Survey responses that use this code will no longer sync into this\n event.\n

    \n \n
    \n ) : (\n \n No unlocked offer codes available\n \n )\n}\n\nexport default SurveyOfferSelect\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgLockIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.6667 7.33337H3.33333C2.59695 7.33337 2 7.93033 2 8.66671V13.3334C2 14.0698 2.59695 14.6667 3.33333 14.6667H12.6667C13.403 14.6667 14 14.0698 14 13.3334V8.66671C14 7.93033 13.403 7.33337 12.6667 7.33337Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.66699 7.33337V4.66671C4.66699 3.78265 5.01818 2.93481 5.6433 2.30968C6.26842 1.68456 7.11627 1.33337 8.00033 1.33337C8.88438 1.33337 9.73223 1.68456 10.3573 2.30968C10.9825 2.93481 11.3337 3.78265 11.3337 4.66671V7.33337\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLockIcon16X16);\nexport default __webpack_public_path__ + \"static/media/lockIcon_16x16.a47898f9.svg\";\nexport { ForwardRef as ReactComponent };","import {\n useState,\n useContext,\n useEffect,\n useImperativeHandle,\n forwardRef,\n useCallback,\n} from 'react'\n\nimport { useHistory } from 'react-router-dom'\n\nimport { styled } from '@mui/system'\n\nimport {\n Select,\n MenuItem,\n FormControl,\n ListItemIcon,\n Typography,\n InputBase,\n Tooltip,\n} from '@mui/material'\n\nimport Api from '../../services/api'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { ReactComponent as CameraReelIcon } from '../../icons/cameraReelIcon_16x16.svg'\nimport { ReactComponent as PlusIcon } from '../../icons/plusIcon_16x16.svg'\nimport { ReactComponent as InfoIcon } from '../../icons/infoIcon_16x16.svg'\n\nconst MenuProps = {\n PaperProps: {\n style: {\n maxWidth: 400,\n maxHeight: 300,\n },\n },\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'left',\n },\n}\n\nconst StyledInfoIcon = styled(InfoIcon)(({ theme }) => ({\n fill: theme.palette.neutral.extraLight,\n marginLeft: '5px',\n width: '24px',\n height: '24px',\n}))\n\nconst StyledInput = styled(InputBase)(({ theme }) => ({\n '& .MuiInputBase-input': {\n width: '100%',\n fontFamily: 'Figtree, sans-serif',\n fontWeight: '400',\n fontSize: '0.875rem',\n border: 'none',\n position: 'relative',\n backgroundColor: 'transparent',\n color: theme.palette.neutral.main,\n textOverflow: 'ellipsis',\n paddingTop: '5px !important',\n '&:focus': {\n outline: 'none',\n },\n '&::placeholder': {\n color: theme.palette.neutral.light,\n opacity: '50%',\n },\n },\n}))\n\nconst StyledSelect = styled(Select, {\n shouldForwardProp: (prop) => prop !== 'selectedMode',\n})(({ selectedMode, theme }) => ({\n borderRadius: theme.shape.borderRadius.xs,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.short,\n easing: theme.transitions.easing.easeInOut,\n }),\n '&:hover': {\n backgroundColor: !selectedMode && theme.palette.action.hover, // Matches MUI button hover effect\n },\n '& .MuiSelect-select.MuiSelect-outlined.MuiInputBase-input': {\n paddingTop: theme.spacing(1.5),\n paddingBottom: !selectedMode && theme.spacing(1.5),\n paddingRight: !selectedMode && theme.spacing(1.5),\n paddingLeft: !selectedMode && theme.spacing(1.5),\n },\n '& .MuiSelect-icon': {\n right: '0px',\n },\n}))\n\nconst StyledMenuItem = styled(MenuItem)(({ theme }) => ({\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n}))\n\nconst SelectedItemContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n}))\n\nconst StyledSpeechTopicTitleListItem = styled(Typography)(({ theme }) => ({\n textWrap: 'wrap',\n wordBreak: 'break-word',\n}))\n\nconst EmptyOption = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n color: theme.palette.neutral.dark,\n justifyContent: 'center',\n}))\n\nconst StyledLink = styled(Typography)(({ theme }) => ({\n color: theme.palette.secondary.main,\n cursor: 'pointer',\n marginTop: theme.spacing(1),\n transition: theme.transitions.create('color', {\n duration: theme.transitions.duration.short,\n easing: theme.transitions.easing.easeInOut,\n }),\n '&:hover': {\n color: theme.palette.secondary.dark,\n },\n}))\n\nconst SpeechTopicPickerContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'selectedMode',\n})(({ selectedMode, theme }) => ({\n marginTop: selectedMode ? '0px' : theme.spacing(4),\n}))\n\nconst SelectedItemContent = styled(Typography)(({ theme }) => ({\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}))\n\nconst StyledFormControl = styled(FormControl, {\n shouldForwardProp: (prop) => prop !== 'selectedMode',\n})(({ selectedMode, theme }) => ({\n width: selectedMode ? '100%' : '250px',\n cursor: 'pointer',\n flexDirection: selectedMode ? 'column' : 'row',\n alignItems: selectedMode ? 'inherit' : 'center',\n}))\n\nconst EventSpeechTopicParent = forwardRef((props, ref) => {\n const { speechTopic: initialSpeechTopicId } = props\n const history = useHistory()\n const [loading, setLoading] = useState(true)\n const [speechTopics, setSpeechTopics] = useState([])\n const { setNotification } = useContext(AuthenticationContext)\n const [chosenSpeechTopic, setChosenSpeechTopic] = useState(\n initialSpeechTopicId || ''\n )\n useEffect(() => {\n async function fetchSpeechTopics() {\n try {\n const res = await Api.getSignatureTalks()\n setSpeechTopics(res)\n } catch (error) {\n setNotification(error, 'error')\n } finally {\n setLoading(false)\n }\n }\n fetchSpeechTopics()\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleChange = useCallback((event) => {\n setChosenSpeechTopic(event.target.value)\n }, [])\n\n useImperativeHandle(ref, () => ({\n getChosenSpeechTopic: () => chosenSpeechTopic,\n }))\n\n const selectedTopic = speechTopics.find(\n (topic) => topic.id === chosenSpeechTopic\n )\n\n const renderSelectedItem = () => (\n \n \n \n {selectedTopic.title}\n \n \n )\n\n return (\n \n \n \n : null}\n IconComponent={selectedTopic ? undefined : () => null}\n renderValue={(selected) => {\n const selectedTopic = speechTopics.find(\n (topic) => topic.id === selected\n )\n if (!selectedTopic) {\n return (\n \n \n \n Add Your Speech Topic\n \n \n )\n }\n return renderSelectedItem(selected)\n }}\n MenuProps={MenuProps}>\n \n \n None\n \n \n\n {speechTopics.map((topic) => (\n \n \n \n \n \n {topic.title}\n \n \n ))}\n \n {!selectedTopic && (\n \n \n \n )}\n \n {!selectedTopic && (\n history.push('/talks/speech-topics')}\n variant=\"caption\"\n component=\"div\">\n Click here to manage your speech topics\n \n )}\n \n \n )\n})\n\nexport default EventSpeechTopicParent\n","import React, { useState, useEffect } from 'react'\nimport { isMobileOnly } from 'react-device-detect'\n\nimport { styled } from '@mui/system'\nimport {\n Typography,\n TextField,\n Avatar,\n List,\n ListItem,\n ListItemText,\n ListItemAvatar,\n ListItemIcon,\n CircularProgress,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Button,\n Tooltip,\n} from '@mui/material'\nimport Autocomplete from '@mui/material/Autocomplete'\nimport { debounce } from '@mui/material/utils'\nimport { LoadingButton } from '@mui/lab'\nimport DeleteIcon from '@mui/icons-material/Delete'\nimport EditIcon from '@mui/icons-material/Edit'\nimport VisibilityIcon from '@mui/icons-material/Visibility'\nimport VisibilityOffIcon from '@mui/icons-material/VisibilityOff'\n\nimport Api from '../../services/api'\nimport { humanizeError } from '../../utils/errorFormatter'\nimport isEmail from 'validator/lib/isEmail'\n\nimport EditAvatar from '../accountSettings/EditAvatar'\nimport ConfirmDialog from '../common/ConfirmDialog'\n\nconst AddSpeakerText = styled(Typography)(({ theme }) => ({\n color: theme.palette.tabBlue.main,\n fontWeight: 'bold',\n marginLeft: '15px',\n marginTop: '5px',\n cursor: 'pointer',\n '&:hover': {\n color: theme.palette.primary.main,\n },\n}))\n\nconst SpeakerClickableIcon = styled(ListItemIcon)(({ theme }) => ({\n minWidth: '0px',\n justifyContent: 'center',\n cursor: 'pointer',\n margin: '0px 3px',\n '&:hover': {\n color: theme.palette.primary.main,\n },\n}))\n\nconst DisabledSpeakerIcon = styled(ListItemIcon)({\n minWidth: '0px',\n justifyContent: 'center',\n margin: '0px 3px',\n color: 'lightgrey',\n})\n\nconst SpeakerListItem = styled(ListItem)({\n paddingLeft: '0px',\n paddingRight: '0px',\n})\n\nconst StyledListItemAvatar = styled(ListItemAvatar)({\n height: !isMobileOnly && '80px',\n width: !isMobileOnly && '80px',\n marginRight: !isMobileOnly && '16px',\n})\n\nconst StyledAvatar = styled(Avatar)({\n height: !isMobileOnly && '100%',\n width: !isMobileOnly && '100%',\n})\n\nconst initialNewSpeakerState = {\n id: null,\n name: null,\n avatarUrl: null,\n shortlink: null,\n email: null,\n}\n\nconst makeSearch = async (\n searchTerm,\n setSpeakerList,\n setIsLoading,\n eventId,\n endpoint,\n finalParamsFunc\n) => {\n // reset on empty\n if (!searchTerm || searchTerm.length < 2) {\n return setSpeakerList([])\n }\n\n try {\n const params = {\n event_speaker: {\n full_name: searchTerm,\n event_id: eventId,\n },\n }\n\n setIsLoading(true)\n const res = await endpoint(finalParamsFunc(params))\n\n if (!res.errors) {\n setIsLoading(false)\n setSpeakerList(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoading(false)\n }\n}\n\nconst debouncedMakeSearch = debounce(makeSearch, 1000)\n\nconst EventSpeakersParent = ({\n event,\n setEvent,\n selectedGroup,\n updateEventSpeakers,\n}) => {\n const [searchTerm, setSearchTerm] = useState('')\n const [speakerList, setSpeakerList] = useState([])\n const [selectedSpeaker, setSelectedSpeaker] = useState(null)\n const [isLoading, setIsLoading] = useState(false)\n const [isDeleting, setIsDeleting] = useState(false)\n const [open, setOpen] = useState(false)\n const [newSpeaker, setNewSpeaker] = useState(initialNewSpeakerState)\n const [speakerLoading, setSpeakerLoading] = useState(false)\n const [newSpeakerError, setNewSpeakerError] = useState(null)\n const [newSpeakerEmailError, setNewSpeakerEmailError] = useState(null)\n const [confirmOpen, setConfirmOpen] = useState(false)\n const [removeSpeaker, setRemoveSpeaker] = useState(null)\n\n const apiList = () => {\n if (selectedGroup) {\n return {\n editEventSpeakerAvatar: Api.editGroupEventSpeakerAvatar,\n createNewSpeaker: Api.createGroupEventSpeaker,\n removeSpeakerFromEvent: Api.removeSpeakerFromGroupEvent,\n addExistingSpeakerToEvent: Api.addExistingSpeakerToGroupEvent,\n searchForSpeakers: Api.searchForGroupSpeakers,\n }\n } else {\n return {\n editEventSpeakerAvatar: Api.editEventSpeakerAvatar,\n createNewSpeaker: Api.createNewSpeaker,\n removeSpeakerFromEvent: Api.removeSpeakerFromEvent,\n addExistingSpeakerToEvent: Api.addExistingSpeakerToEvent,\n searchForSpeakers: Api.searchForSpeakers,\n }\n }\n }\n\n const finalParams = (params) => {\n if (!selectedGroup) {\n return params\n }\n\n return {\n ...params,\n group_id: selectedGroup.id,\n }\n }\n\n useEffect(() => {\n debouncedMakeSearch(\n searchTerm,\n setSpeakerList,\n setIsLoading,\n event.id,\n apiList().searchForSpeakers,\n finalParams\n )\n }, [searchTerm, debouncedMakeSearch])\n\n const handleClose = () => {\n setOpen(false)\n setNewSpeaker(initialNewSpeakerState)\n }\n\n const handleOnInputChange = async (value) => {\n setSearchTerm(value)\n }\n\n const handleCreateNewSpeaker = (e) => {\n setOpen(true)\n }\n\n const handleEditSpeaker = (speaker) => {\n setOpen(true)\n setNewSpeaker({\n id: speaker.id,\n name: `${speaker.first_name} ${speaker.last_name}`,\n email: speaker.email,\n avatar: speaker.avatar,\n })\n }\n\n const AddSpeakerButton = () => (\n \n Create New Speaker\n \n )\n\n const submitAvatar = async (avatarLink) => {\n const params = {\n event_speaker: {\n speaker_id: newSpeaker.id,\n avatar: avatarLink,\n event_id: event.id,\n },\n }\n\n try {\n const res = await apiList().editEventSpeakerAvatar(finalParams(params))\n\n if (!res.errors) {\n updateEventSpeakers(res, event.id)\n setEvent({ ...event, speakers: res })\n handleClose()\n } else {\n throw res.errors\n }\n } catch (err) {\n handleClose()\n alert(humanizeError(err))\n }\n }\n\n const handleSubmitNewSpeaker = async () => {\n if (!newSpeaker.name) {\n return setNewSpeakerError('Please submit a name for this speaker')\n }\n\n if (newSpeaker.name.length < 2) {\n return setNewSpeakerError('Must be at least 2 characters')\n }\n\n if (!newSpeaker.email || !isEmail(newSpeaker.email)) {\n return setNewSpeakerEmailError('Please fill out a valid email')\n }\n\n const params = {\n event_speaker: {\n full_name: newSpeaker.name,\n email: newSpeaker.email,\n event_id: event.id,\n },\n }\n\n try {\n setSpeakerLoading(true)\n const res = await apiList().createNewSpeaker(finalParams(params))\n\n if (!res.errors) {\n updateEventSpeakers(res, event.id)\n setEvent({ ...event, speakers: res })\n handleClose()\n setNewSpeaker(initialNewSpeakerState)\n setSpeakerLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setSpeakerLoading(false)\n return alert(humanizeError(err))\n }\n }\n\n const confirmRemoveSpeaker = async () => {\n const params = {\n event_speaker: {\n speaker_id: removeSpeaker.id,\n event_id: event.id,\n },\n }\n\n try {\n setIsDeleting(true)\n const res = await apiList().removeSpeakerFromEvent(\n finalParams(params),\n removeSpeaker.id\n )\n\n if (!res.errors) {\n // TODO: we're currently not updating events through setEvents here which is why\n // the speakers list in the events table doesn't update when we remove a speaker.\n // This also applies to the add new speaker to event function\n updateEventSpeakers(res, event.id)\n setEvent({ ...event, speakers: res })\n setIsDeleting(false)\n setRemoveSpeaker(null)\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsDeleting(false)\n setRemoveSpeaker(null)\n }\n }\n\n const handleRemoveSpeakerFromEvent = (speaker) => {\n setRemoveSpeaker(speaker)\n setConfirmOpen(true)\n }\n\n const handleAddSpeakerToEvent = async (speaker) => {\n setSelectedSpeaker(speaker)\n\n if (!speaker?.id) {\n return\n }\n\n const params = {\n event_speaker: {\n speaker_id: speaker.id,\n event_id: event.id,\n },\n }\n\n try {\n const res = await apiList().addExistingSpeakerToEvent(finalParams(params))\n if (!res.errors) {\n updateEventSpeakers(res, event.id)\n setEvent({ ...event, speakers: res })\n setSearchTerm('')\n setSpeakerList([])\n setSelectedSpeaker(null)\n } else {\n throw res.errors\n }\n } catch (err) {\n alert(humanizeError(err))\n }\n }\n\n const renderEditEventSpeakerForm = () => (\n \n )\n\n const renderCreateNewEventSpeakerForm = () => (\n
    \n e.stopPropagation()}\n onChange={(e) => {\n setNewSpeaker({ ...newSpeaker, name: e.target.value })\n setNewSpeakerError(null)\n }}\n />\n
    \n
    \n e.stopPropagation()}\n fullWidth\n onChange={(e) => {\n setNewSpeaker({ ...newSpeaker, email: e.target.value })\n setNewSpeakerEmailError(null)\n }}\n />\n
    \n )\n\n return (\n
    \n \n option?.first_name ? option.first_name : ''\n }\n options={speakerList}\n autoComplete\n loading={isLoading}\n loadingText=\"Searching ...\"\n value={selectedSpeaker}\n inputValue={searchTerm}\n blurOnSelect={true}\n noOptionsText={}\n onChange={(event, value) => handleAddSpeakerToEvent(value)}\n onInputChange={(event, value) => handleOnInputChange(value)}\n filterOptions={(options, params) => {\n // return the add new button if it's not in a loading state\n // and there's at least 1 option\n if (!isLoading && options?.length > 0) {\n return [...options, { isAddNewButton: true }]\n }\n\n return options\n }}\n renderOption={(props, option, state) => {\n if (option.isAddNewButton) {\n return \n } else {\n return (\n \n \n \n \n \n {option.first_name} {option.last_name}\n \n \n )\n }\n }}\n renderInput={(params) => (\n e.stopPropagation()}\n placeholder=\"Type the email or name of the speaker ...\"\n inputProps={{\n ...params.inputProps,\n autoComplete: 'new-password', // disable autocomplete and autofill\n }}\n />\n )}\n />\n \n {event.speakers?.map((speaker, i) => {\n return (\n \n \n \n \n \n {speaker.first_name} {speaker.last_name}\n \n {!speaker.isClaimed && (\n \n \n handleEditSpeaker(speaker)} />\n \n \n )}\n\n {speaker.profile_url ? (\n \n window.open(speaker.profile_url, '_blank')}>\n \n \n \n ) : (\n \n \n \n \n \n )}\n\n \n handleRemoveSpeakerFromEvent(speaker)}>\n {isDeleting ? : }\n \n \n \n )\n })}\n \n \n \n {newSpeaker.id ? (\n \n Edit Speaker Avatar for {newSpeaker.name}\n \n ) : (\n 'Create New Speaker'\n )}\n \n \n {newSpeaker.id\n ? renderEditEventSpeakerForm()\n : renderCreateNewEventSpeakerForm()}\n \n \n \n\n {/* only show this if we're creating and not editing */}\n {!newSpeaker.id && (\n \n Create Speaker\n \n )}\n \n \n setRemoveSpeaker(null)}>\n {`Are you sure you want to remove ${removeSpeaker?.first_name} from this session?`}\n \n
    \n )\n}\n\nexport default EventSpeakersParent\n","import { useState, useContext, useRef } from 'react'\nimport moment from 'moment'\nimport { styled } from '@mui/system'\nimport { useHistory } from 'react-router-dom'\nimport {\n DialogActions,\n DialogContent,\n DialogTitle,\n TextField,\n Radio,\n RadioGroup,\n FormControlLabel,\n FormControl,\n Button,\n InputAdornment,\n CircularProgress,\n Select,\n MenuItem,\n Typography,\n Alert,\n AlertTitle,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n} from '@mui/material'\nimport DesktopDatePicker from '@mui/lab/DesktopDatePicker'\nimport LocalizationProvider from '@mui/lab/LocalizationProvider'\nimport AdapterDateFns from '@mui/lab/AdapterDateFns'\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore'\n\nimport SurveyOfferSelect from './SurveyOfferSelect'\nimport EventSpeechTopicParent from './EventSpeechTopicParent'\nimport EventSpeakersParent from '../eventPlanners/EventSpeakersParent'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { GroupContext } from '../groups/groupContext'\n\nimport FormSection from '../common/FormSection'\nimport {\n onlyAllowPositiveNumbersAndDecimals,\n onlyAllowPositiveNumbersNoDecimals,\n} from '../common/helpers'\n\nconst MAX_ORG_CHARACTER_LENGTH = 50\nconst MAX_TITLE_CHARACTER_LENGTH = 75\nconst MAX_EVENT_NAME_CHARACTER_LENGTH = 50\n\nconst OptionalSettingsContainer = styled('div')(({ theme }) => ({\n background: theme.palette.surface.subtle,\n h6: {\n color: 'orange',\n textTransform: 'uppercase',\n },\n}))\n\nconst FormContainer = styled('div')({\n padding: '10px 25px',\n})\n\nconst FormDialogContent = styled(DialogContent)({\n padding: '0px',\n})\n\nconst SettingsAccordion = styled(Accordion)(({ theme }) => ({\n border: 'none',\n boxShadow: 'none',\n background: theme.palette.surface.subtle,\n}))\n\nconst EventFormParent = ({\n eventInitialState,\n handleClose,\n createEvent,\n editEvent,\n eventGroupId,\n updateEventSpeakers,\n}) => {\n const [event, setEvent] = useState(eventInitialState)\n const [isLoading, setIsLoading] = useState(false)\n const { authData } = useContext(AuthenticationContext)\n const {\n groupState: { selectedGroup },\n } = useContext(GroupContext)\n const { user } = authData\n const eventSpeechTopicRef = useRef()\n\n const SESSION_TYPES = ['WORKSHOP', 'KEYNOTE', 'GLOBAL']\n\n // custom Alpha Gamma Rho Jan 24 session types\n const AGR_SESSION_TYPES = [\n 'AGR_JAN_24_MODULE_1',\n 'AGR_JAN_24_MODULE_2',\n 'AGR_JAN_24_MODULE_3',\n 'AGR_JAN_24_MODULE_4',\n 'AGR_JAN_24_GLOBAL',\n ]\n\n if (\n user?.isAdmin ||\n user?.email === 'amanda@alphagammarho.org' ||\n user?.email === 'dkroondijk+eventplanner@gmail.com'\n ) {\n SESSION_TYPES.push(...AGR_SESSION_TYPES)\n }\n\n const handleSubmit = async () => {\n const params = {\n event: {\n name: event.name,\n talk_title: event.talkTitle,\n in_person: event.inPerson,\n virtual: event.virtual,\n event_organization: event.eventOrganization,\n start_time: `${event.startTime}`,\n duration: event.duration,\n date: event.date,\n utc_offset: event.utcOffset,\n time_zone: event.timeZone,\n compensation: event.compensation,\n audience_size: event.audienceSize,\n event_type: event.eventType,\n event_code: event.lockedOfferCode,\n event_group_id: eventGroupId,\n event_name: event.eventName,\n },\n }\n\n if (eventSpeechTopicRef.current) {\n params.event.signature_talk_id =\n eventSpeechTopicRef.current.getChosenSpeechTopic() ?? null\n }\n\n if (!event.id) {\n return await _createEvent(params)\n } else {\n return await _editEvent(event.id, params)\n }\n }\n\n const _createEvent = async (params) => {\n setIsLoading(true)\n await createEvent(params)\n setIsLoading(false)\n handleClose()\n }\n\n const _editEvent = async (eventId, params) => {\n setIsLoading(true)\n await editEvent(eventId, params)\n setIsLoading(false)\n handleClose()\n }\n\n // This takes a time of \"hh:mm AM/PM\" and converts it to what\n // we need for the form\n const setTimeForInput = (time) => {\n return moment(time, ['h:mm A']).format('HH:mm')\n }\n\n const renderEventPlannerForm = () => (\n \n
    \n \n {!event.id ? 'Create A New Session' : 'Edit Session'}\n \n \n \n \n setEvent({ ...event, talkTitle: e.target.value })\n }\n />\n \n \n
    \n {\n setEvent({\n ...event,\n date: moment(e).format('LL'),\n utcOffset: moment(e).utcOffset(),\n })\n }}\n renderInput={(params) => }\n />\n
    \n
    \n \n
    \n \n setEvent({ ...event, startTime: e.target.value })\n }\n />\n
    \n \n \n
    \n \n \n setEvent({ ...event, eventType: e.target.value })\n }>\n {SESSION_TYPES.map((sessionType, i) => {\n return (\n \n {sessionType}\n \n )\n })}\n \n \n
    \n \n \n \n setEvent({\n ...event,\n audienceSize: onlyAllowPositiveNumbersNoDecimals(\n e.target.value\n ),\n })\n }\n />\n \n \n \n setEvent({\n ...event,\n eventCode: e.target.value?.toUpperCase(),\n lockedOfferCode: e.target.value?.toUpperCase(),\n })\n }\n />\n \n {\n /* only show if there's an existing event being edited */\n event.id && (\n \n \n \n )\n }\n
    \n
    \n
    \n )\n\n let talkTitleCharactersRemaining = MAX_TITLE_CHARACTER_LENGTH\n let orgCharactersRemaining = MAX_ORG_CHARACTER_LENGTH\n let eventNameCharactersRemaining = MAX_EVENT_NAME_CHARACTER_LENGTH\n\n if (MAX_TITLE_CHARACTER_LENGTH - event.talkTitle?.length >= 0) {\n talkTitleCharactersRemaining =\n MAX_TITLE_CHARACTER_LENGTH - event.talkTitle?.length\n } else if (event.talkTitle?.length > 0) {\n talkTitleCharactersRemaining = 0\n }\n\n if (MAX_ORG_CHARACTER_LENGTH - event.eventOrganization?.length >= 0) {\n orgCharactersRemaining =\n MAX_ORG_CHARACTER_LENGTH - event.eventOrganization?.length\n } else if (event.eventOrganization?.length > 0) {\n orgCharactersRemaining = 0\n }\n\n if (MAX_EVENT_NAME_CHARACTER_LENGTH - event.eventName?.length >= 0) {\n eventNameCharactersRemaining =\n MAX_EVENT_NAME_CHARACTER_LENGTH - event.eventName?.length\n } else if (event.eventName?.length > 0) {\n eventNameCharactersRemaining = 0\n }\n\n const talkTitleHelperText = `${talkTitleCharactersRemaining} characters remaining`\n const orgNameHelperText = `${orgCharactersRemaining} characters remaining`\n const eventNameHelperText = `${eventNameCharactersRemaining} characters remaining`\n\n const renderTitle = () => {\n if (selectedGroup) {\n // Groups do not have a create title\n return 'Edit Chapter Event'\n } else if (event.id) {\n return 'Edit Speaking Engagement'\n } else {\n return 'Create A New Speaking Engagement'\n }\n }\n\n const renderSpeakerForm = () => {\n const stepNumbers = () => {\n if (selectedGroup) {\n return {\n talkTitle: 1,\n date: 2,\n virtual: 3,\n audienceSize: 4,\n eventSpeakers: 5, // Only renders if editing\n lockCode: event.id ? 6 : 5,\n }\n } else {\n return {\n talkTitle: 1,\n eventOrganization: 2,\n eventName: 3,\n date: 4,\n virtual: 5,\n audienceSize: 6,\n compensation: 7,\n lockCode: 8,\n }\n }\n }\n return (\n \n
    \n \n \n {renderTitle()}\n \n \n Talks will also show up automatically when you use your QR code or\n profile link. Everything is optional and can be added later\n .\n \n \n \n \n \n e.stopPropagation()}\n onChange={(e) =>\n setEvent({ ...event, talkTitle: e.target.value })\n }\n />\n {!selectedGroup && (\n \n )}\n \n {!selectedGroup && (\n \n e.stopPropagation()}\n onChange={(e) =>\n setEvent({ ...event, eventOrganization: e.target.value })\n }\n />\n \n )}\n {!selectedGroup && (\n \n e.stopPropagation()}\n onChange={(e) =>\n setEvent({ ...event, eventName: e.target.value })\n }\n />\n \n )}\n \n
    \n {\n setEvent({\n ...event,\n date: moment(e).format('LL'),\n utcOffset: moment(e).utcOffset(),\n })\n }}\n renderInput={(params) => }\n />\n
    \n \n \n \n {\n if (e.target.value === 'Virtual') {\n setEvent({ ...event, virtual: true, in_person: false })\n } else {\n setEvent({ ...event, virtual: false, in_person: true })\n }\n }}>\n }\n label=\"In Person\"\n className={event.in_person ? 'radio-active' : ''}\n />\n }\n label=\"Virtual\"\n className={event.virtual ? 'radio-active' : ''}\n />\n \n \n \n \n {\n setEvent({\n ...event,\n audienceSize: onlyAllowPositiveNumbersNoDecimals(\n e.target.value\n ),\n })\n }}\n />\n \n {!selectedGroup && (\n \n $\n ),\n }}\n variant=\"standard\"\n type=\"text\"\n className=\"short\"\n placeholder=\"to track earnings\"\n value={event.compensation || ''}\n onChange={(e) => {\n setEvent({\n ...event,\n compensation: onlyAllowPositiveNumbersAndDecimals(\n e.target.value\n ),\n })\n }}\n />\n \n )}\n\n {selectedGroup && event.id && (\n \n \n \n )}\n
    \n {!selectedGroup && (\n \n \n \n }\n aria-controls=\"panel1a-content\"\n id=\"panel1a-header\">\n \n Advanced Settings\n \n \n \n \n \n \n Warning\n \n This is only needed for advanced use cases!\n
    \n
    \n Only use this setting if you have{' '}\n \n multiple talks on the same day with different codes\n that you are creating now\n {' '}\n OR if this talk is a recorded webinar. You do\n not need this setting otherwise as Talkadot will\n automatically add responses to the correct event when\n you give your talk for you.

    \n Using this setting in the wrong scenarios will result\n in some of your responses being added to the wrong\n events.\n
    \n
    \n For more information on code locking, please reach out\n to support at hello@talkadot.com.\n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n )}\n
    \n
    \n
    \n )\n }\n\n return (\n
    \n {user?.isEventPlanner ? renderEventPlannerForm() : renderSpeakerForm()}\n \n {isLoading ? (\n \n ) : (\n
    \n \n \n {event.id ? 'Save Changes' : 'Create Event'}\n \n
    \n )}\n
    \n
    \n )\n}\n\nexport default EventFormParent\n","import { useEffect, useContext, useState } from 'react'\nimport { useParams } from 'react-router-dom'\n\nimport { Dialog, useTheme, useMediaQuery } from '@mui/material'\nimport CloseIcon from '@mui/icons-material/Close'\n\nimport EventsParent from '../events/EventsParent'\nimport Api from '../../services/api'\nimport { trackFirstEventCreated } from '../../services/metrics'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport EventGroupReport from './EventGroupReport'\nimport EventFormParent from '../events/EventFormParent'\n\nconst initialEventState = {\n id: null,\n name: null,\n talkTitle: null,\n inPerson: null,\n virtual: null,\n eventOrganization: null,\n startTime: null,\n duration: null,\n date: null,\n compensation: null,\n}\n\nconst EventGroupParent = () => {\n const [events, setEvents] = useState([])\n const [event, setEvent] = useState(initialEventState)\n const [eventFormOpen, setEventFormOpen] = useState(false)\n const [isLoading, setIsLoading] = useState(false)\n const { eventGroupId } = useParams()\n const {\n setNotification,\n authData: { user },\n } = useContext(AuthenticationContext)\n\n const theme = useTheme()\n const fullScreen = useMediaQuery(theme.breakpoints.down('sm'))\n\n useEffect(() => {\n const fetchEvents = async () => {\n try {\n setIsLoading(true)\n const res = await Api.fetchEventGroup(eventGroupId)\n if (!res.errors) {\n setIsLoading(false)\n setEvents(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoading(false)\n return setNotification(err, 'error')\n }\n }\n\n if (eventGroupId) {\n fetchEvents()\n }\n }, [eventGroupId])\n\n const createEvent = async (params) => {\n try {\n const res = await Api.createEvent(params)\n\n if (res.errors) {\n throw res.errors\n } else {\n if (events?.length === 0) {\n const params = {\n user_id: user?.id,\n user_email: user?.email,\n }\n trackFirstEventCreated(params)\n }\n setEvents([res, ...events])\n }\n } catch (err) {\n setNotification(err, 'error')\n }\n }\n\n const editEvent = async (eventId, params) => {\n try {\n const res = await Api.editEvent(eventId, params)\n\n if (res.errors) {\n throw res.errors\n } else {\n setEvents(events.map((event) => (event.id === res.id ? res : event)))\n }\n } catch (err) {\n setNotification(err, 'error')\n }\n }\n\n const updateEventSpeakers = (speakers, eventId) => {\n setEvents(\n events.map((event) => {\n if (event.id === eventId) {\n return { ...event, speakers: speakers }\n } else {\n return event\n }\n })\n )\n }\n\n const handleOpenEventForm = (clickedEvent) => {\n if (clickedEvent) {\n setEvent(clickedEvent)\n }\n\n setEventFormOpen(true)\n }\n\n const handleCloseEventForm = () => {\n setEventFormOpen(false)\n setEvent(initialEventState)\n }\n\n return (\n
    \n \n \n handleCloseEventForm()}>\n handleCloseEventForm()}\n />\n \n \n
    \n )\n}\n\nexport default EventGroupParent\n","import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\nimport { SocialLinkIcon } from '@talkadot/survey-component-library'\n\nimport { makeSocialLink } from '../../utils/socialLinks'\n\nconst Container = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n marginBottom: theme.spacing(6),\n}))\n\nconst SocialsWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(2),\n flexWrap: 'wrap',\n}))\n\nconst SocialLink = styled('a')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(0.5),\n alignItems: 'center',\n textDecoration: 'none',\n color: theme.palette.neutral.dark,\n svg: {\n path: {\n fill: theme.palette.neutral.semiLight,\n },\n },\n}))\n\nconst ProfileSpeakerInfo = ({ speaker, isLoading }) => {\n const { socialLinks } = speaker\n\n const hasSomeSocialLinks = Object.values(socialLinks).some(\n (value) => value?.normalizedUrl\n )\n\n if (isLoading || !hasSomeSocialLinks) return <>\n\n return (\n \n \n {Object.entries(socialLinks).map(([key, socialData]) => {\n if (!socialData?.normalizedUrl) return <>\n\n const { href, linkText } = makeSocialLink(key, socialData)\n\n if (!href) return <>\n\n return (\n \n \n {linkText}\n \n )\n })}\n \n \n )\n}\n\nexport default ProfileSpeakerInfo\n","export const makeSocialLink = (socialType, socialData) => {\n const { normalizedUrl, handle } = socialData\n\n switch (socialType) {\n case 'youtube':\n case 'linkedin':\n return {\n href: normalizedUrl,\n linkText: handle,\n }\n case 'instagram':\n case 'twitter':\n return {\n href: normalizedUrl,\n linkText: `@${handle}`,\n }\n default:\n return { href: '', linkText: '' }\n }\n}\n","import TableHeaderSortable from '../common/TableHeaderSortable'\n\nconst ProfileEventListHeader = ({ order, orderBy, onRequestSort, loading }) => {\n const headCells = [\n { id: 'date', label: 'Date', paddingLeft: 2 },\n { id: 'eventOrganization', label: 'Organization', displayBreakpoint: 'md' },\n { id: 'talkTitle', label: 'Talk Title' },\n {\n id: 'rating',\n label: 'Valuable',\n align: 'center',\n tooltip: 'Percent who answered yes to if they found your talk valuable.',\n displayBreakpoint: 'lg',\n },\n {\n id: 'responses',\n label: 'Responses',\n align: 'center',\n tooltip:\n 'Total number of attendees who answered at least 1 question in the review flow.',\n displayBreakpoint: 'sm',\n },\n ]\n\n return (\n \n )\n}\n\nexport default ProfileEventListHeader\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCaretLeft24X24(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 8,\n height: 14,\n viewBox: \"0 0 8 14\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.06176 12.7767L1.30176 7.00036L7.06176 1.224\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCaretLeft24X24);\nexport default __webpack_public_path__ + \"static/media/caretLeft_24x24.7bded879.svg\";\nexport { ForwardRef as ReactComponent };","import { useHistory } from 'react-router-dom'\nimport { TableRow, Tooltip } from '@mui/material'\nimport { styled } from '@mui/system'\n\nimport TableCellStyled from '../common/TableCellStyled'\nimport TableChip from '../common/TableChip'\nimport {\n TableCellContent,\n TableCellPrimaryContent,\n TableCellSecondaryContent,\n} from '../common/TableComponents'\n\nimport { ReactComponent as LockIcon } from '../../icons/lockIcon_16x16.svg'\n\nimport { formatDate } from '../common/helpers'\n\nconst StyledTableRow = styled(TableRow)({\n cursor: 'pointer',\n})\n\nconst ProfileEventListRow = ({ event, shortlink }) => {\n const history = useHistory()\n\n const eventCodeToDisplay = event.lockedOfferCode\n ? event.lockedOfferCode\n : event.eventCode\n\n const goToEventReport = () => {\n history.push(`/s/${shortlink}/event-report/${event.shareKey}`)\n }\n\n const handleClick = ({ value, allowEditDetails = false }) => {\n if (allowEditDetails && !value) {\n // open event details dialog\n return null\n } else {\n goToEventReport()\n }\n }\n \n const renderStandardRow = () => (\n \n \n handleClick({\n value: event.date,\n allowEditDetails: false,\n })\n }>\n {formatDate(event.date, event.utcOffset)}\n \n \n handleClick({\n value: event.eventOrganization,\n allowEditDetails: false,\n })\n }>\n \n \n {event.eventOrganization}\n \n {event.eventName && (\n \n {event.eventName}\n \n )}\n \n \n \n handleClick({\n value: event.talkTitle,\n allowEditDetails: false,\n })\n }>\n {event.talkTitle}\n \n \n {event.rating}%\n \n \n {event.responses}\n \n \n )\n\n return renderStandardRow()\n}\nexport default ProfileEventListRow\n","import { useEffect, useState } from 'react'\nimport { styled } from '@mui/system'\nimport {\n Paper,\n Typography,\n Skeleton,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableRow,\n Alert,\n AlertTitle,\n} from '@mui/material'\n\nimport ProfileEventListHeader from './ProfileEventListHeader'\nimport ProfileEventListRow from './ProfileEventListRow'\n\nimport { getComparator } from '../../utils/sort'\n\nimport Api from '../../services/api'\n\nconst HeaderContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n width: 'fit-content',\n}))\n\nconst TableWrapper = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(2.5),\n paddingBottom: theme.spacing(6),\n}))\n\nconst EventListCriteria = styled(Alert)({\n marginTop: '20px',\n textAlign: 'left',\n})\n\nconst ProfileEventList = ({\n authUser,\n speaker,\n}) => {\n const [showEventsCriteria, setShowEventsCriteria] = useState(true)\n const [order, setOrder] = useState('desc')\n const [orderBy, setOrderBy] = useState('createdAt')\n const [events, setEvents] = useState([])\n const [sortedEvents, setSortedEvents] = useState([])\n const [isLoading, setIsLoading] = useState(true)\n\n useEffect(() => {\n const fetchEvents = async () => {\n try {\n setIsLoading(true)\n const res = await Api.getPublicProfileSection('events', {\n public_profile: { shortlink: speaker?.shortlink },\n })\n\n if (!res.errors) {\n setEvents(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n console.error(err)\n } finally {\n setIsLoading(false)\n }\n }\n\n if (speaker?.shortlink) {\n fetchEvents()\n }\n }, [speaker?.shortlink])\n\n\n useEffect(() => {\n setSortedEvents(events.slice().sort(getComparator(order, orderBy)))\n }, [events, order, orderBy])\n\n const headerText = 'Recent Speaking Engagements'\n\n const renderSkeleton = () => {\n return [1, 2, 3, 4, 5].map((i) => {\n return (\n \n \n \n \n \n )\n })\n }\n\n const renderEventList = () => {\n return sortedEvents.map((event, i) => (\n \n ))\n }\n\n const renderPlaceholder = () => {\n return (\n \n We're still gathering feedback for this profile!\n \n )\n }\n\n const handleAlertClose = () => {\n setShowEventsCriteria(false)\n }\n\n const handleRequestSort = (property) => {\n const isAsc = orderBy === property && order === 'asc'\n setOrder(isAsc ? 'desc' : 'asc')\n setOrderBy(property)\n }\n\n return (\n <>\n \n {headerText}\n \n {authUser?.id === speaker?.id && showEventsCriteria && (\n \n Profile Events Criteria - (This message is only visible to you)\n Your profile is currently showing all events that have a{' '}\n Talk Title and 5 or more responses.\n \n )}\n \n {isLoading || events?.length > 0 ? (\n <>\n \n \n \n \n {isLoading ? renderSkeleton() : renderEventList()}\n \n
    \n
    \n \n ) : (\n renderPlaceholder()\n )}\n
    \n \n )\n}\n\nexport default ProfileEventList\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCaretRight24X24(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 8,\n height: 14,\n viewBox: \"0 0 8 14\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 12.56L6.51433 7.03L1 1.5\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCaretRight24X24);\nexport default __webpack_public_path__ + \"static/media/caretRight_24x24.378a731e.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgShareIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.66699 8V13.3333C2.66699 13.687 2.80747 14.0261 3.05752 14.2761C3.30756 14.5262 3.6467 14.6667 4.00033 14.6667H12.0003C12.3539 14.6667 12.6931 14.5262 12.9431 14.2761C13.1932 14.0261 13.3337 13.687 13.3337 13.3333V8\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.6663 4.00004L7.99967 1.33337L5.33301 4.00004\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 1.33337V10\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgShareIcon16X16);\nexport default __webpack_public_path__ + \"static/media/shareIcon_16x16.a5d47ef0.svg\";\nexport { ForwardRef as ReactComponent };","import { styled } from '@mui/system'\nimport { Pagination, PaginationItem, Stack, Typography } from '@mui/material'\nimport { ReactComponent as CaretLeft } from '../../icons/caretLeft_24x24.svg'\nimport { ReactComponent as CaretRight } from '../../icons/caretRight_24x24.svg'\n\nconst CustomPagination = styled(Pagination)(({ theme }) => ({\n '& .MuiPaginationItem-root': {\n border: `1px solid ${theme.palette.border.light}`,\n borderRadius: '50%',\n boxShadow: theme.shape.boxShadow.sm,\n '&.Mui-disabled': {\n color: theme.palette.border.main,\n boxShadow: 'none',\n },\n },\n '& .MuiPaginationItem-page': {\n display: 'none', // Hide number buttons\n },\n '& .MuiPaginationItem-ellipsis': {\n display: 'none', // Hide the ellipsis\n },\n '& .MuiPaginationItem-previousNext': {\n minWidth: '40px',\n height: '40px',\n },\n}))\n\nconst PaginationCompact = ({ page, count, onChange }) => {\n return (\n \n {`${page} / ${count}`}\n (\n \n )}\n />\n \n )\n}\n\nexport default PaginationCompact\n","import { useEffect, useState } from 'react'\nimport { styled } from '@mui/system'\nimport { Typography, Tooltip } from '@mui/material'\n\nimport { ReactComponent as InfoIcon } from '../../icons/infoIcon_16x16.svg'\n\nimport PaginationCompact from '../common/PaginationCompact'\nimport { Testimonial } from '../eventReportCards/Testimonial'\n\nimport { FeedbackListSkeleton } from './SkeletonLoaders'\n\nimport Api from '../../services/api'\n\nconst Container = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n marginBottom: theme.spacing(6),\n}))\n\nconst ListHeader = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: theme.spacing(2),\n}))\n\nconst HeaderLeftContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n}))\n\nconst StyledInfoIcon = styled(InfoIcon)(({ theme }) => ({\n fill: theme.palette.neutral.semiLight,\n}))\n\nconst ListContainer = styled('div')(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(406px, 0.5fr))',\n gap: theme.spacing(2.5),\n [theme.breakpoints.down('lg')]: {\n gridTemplateColumns: 'repeat(auto-fill, minmax(406px, 1fr))',\n },\n [theme.breakpoints.down('sm')]: {\n gridTemplateColumns: 'repeat(auto-fill, minmax(100%, 1fr))',\n },\n}))\n\nconst ProfileFeedbackList = ({ authenticated, speaker }) => {\n const perPage = 9\n\n const [feedback, setFeedback] = useState([])\n const [isLoading, setIsLoading] = useState(true)\n const [page, setPage] = useState(0)\n const [visibleFeedback, setVisibleFeedback] = useState([])\n\n useEffect(() => {\n const fetchFeedback = async () => {\n try {\n const res = await Api.getPublicProfileSection('audience_testimonials', {\n public_profile: { shortlink: speaker?.shortlink },\n })\n\n if (!res.errors) {\n setFeedback(res)\n } else {\n throw res.errors\n }\n } catch (error) {\n console.error('Error fetching feedback:', error)\n } finally {\n setIsLoading(false)\n }\n }\n\n if (speaker?.shortlink) {\n fetchFeedback()\n }\n }, [speaker?.shortlink])\n\n useEffect(() => {\n setVisibleFeedback(feedback.slice(page * perPage, (page + 1) * perPage))\n }, [feedback, page])\n\n const handlePageChange = (newPage) => {\n setPage(newPage)\n }\n\n if (isLoading) {\n return \n }\n\n return (\n \n \n \n Audience Feedback\n {authenticated && (\n \n \n \n )}\n \n handlePageChange(value - 1)}\n />\n \n {visibleFeedback.length > 0 ? (\n \n {visibleFeedback.map((feedbackItem, index) => (\n {}}\n handleViewTestimonialData={() => {}}\n // TODO: hook up handleToggleFavourite\n handleToggleFavourite={() => {}}\n favLoading={false}\n oddRow={false}\n speakerShortlink={speaker.shortlink}\n />\n ))}\n \n ) : (\n \n We're still gathering feedback for this profile!\n \n )}\n \n )\n}\n\nexport default ProfileFeedbackList\n","import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\n\nconst HeaderWrapper = styled('div', {\n shouldForwardProp: (prop) => prop !== 'width',\n})(({ width }) => ({\n display: 'flex',\n flexDirection: 'column',\n width: width ? width : 'fit-content',\n}))\n\nconst HeaderText = styled(Typography)(({ theme }) => ({\n fontWeight: theme.fontWeights.semiBold,\n}))\n\nconst UnderLine = styled('div')(({ theme }) => ({\n display: 'flex',\n height: '3px',\n background: theme.palette.secondary.main,\n}))\n\nexport const ProfileSectionHeader = ({ headerText, width }) => {\n return (\n \n {headerText}\n \n \n )\n}\n","import { useState, useContext, useEffect } from 'react'\nimport { styled } from '@mui/system'\nimport { TextField, Typography, IconButton } from '@mui/material'\nimport { ClickAwayListener } from '@mui/base'\n\nimport { ReactComponent as EditIcon } from '../../icons/editIcon_16x16.svg'\n\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nimport { ProfileSectionHeader } from './ProfileSectionHeader'\nimport { BiographySkeleton } from './SkeletonLoaders'\n\nconst BiographySectionContainer = styled('div')(({ theme }) => ({\n position: 'relative',\n background: theme.palette.neutral.lightest,\n padding: theme.spacing(3),\n maxWidth: '800px',\n marginBottom: theme.spacing(6),\n}))\n\nconst BiographyWrapper = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(2),\n}))\n\nconst PlaceHolderContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n background: theme.palette.secondary.extraLight,\n padding: '26px',\n cursor: 'pointer',\n}))\n\nconst PlaceHolderHeader = styled(Typography)(({ theme }) => ({\n color: theme.palette.secondary.main,\n marginBottom: theme.spacing(2),\n}))\n\nconst BiographyTextWrapper = styled(Typography)(({ theme }) => ({\n maxHeight: '510px',\n overflowY: 'auto',\n whiteSpace: 'pre-line',\n}))\n\nconst IconWrapper = styled('div')({\n position: 'absolute',\n top: '20px',\n right: '20px',\n})\n\nconst MAX_BIOGRAPHY_LENGTH = 700\n// const CHARACTERS_PER_LINE = 100\n// const MAX_LINES = 11\n\nconst ProfileBiography = ({ authUser, speaker, isLoading }) => {\n const { setNotification } = useContext(AuthenticationContext)\n const [isEditing, setIsEditing] = useState(false)\n const [biography, setBiography] = useState(speaker?.biography || '')\n\n const isProfileOwner = authUser?.id === speaker?.id && !authUser?.isAssociate\n\n useEffect(() => {\n setBiography(speaker?.biography || '')\n }, [speaker?.biography])\n\n const handleClickAway = async () => {\n const params = {\n profile: { biography },\n }\n\n try {\n const res = await Api.updateProfile(params)\n if (!res.errors) {\n setIsEditing(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const handleTextClick = () => {\n if (isProfileOwner) {\n setIsEditing(true)\n }\n\n return\n }\n\n // const linesRemaining = () => {\n // const newLineSplit = biography.split('\\n')\n\n // let numberOfLines = 0\n\n // newLineSplit.forEach((line) => {\n // numberOfLines += Math.ceil(line.length / CHARACTERS_PER_LINE)\n\n // if (line.length === 0) {\n // numberOfLines += 1\n // }\n // })\n\n // return MAX_LINES - numberOfLines + 1\n // }\n\n // const lastLineLengthRemaining = () => {\n // const newLineSplit = biography.split('\\n')\n // const lastLine = newLineSplit[newLineSplit.length - 1]\n\n // return CHARACTERS_PER_LINE - lastLine.length\n // }\n\n // const isDeleting = (e) => {\n // if (e.target.value.length < biography.length) {\n // return true\n // }\n // }\n\n // const handleBiographyChange = (e) => {\n // if (\n // linesRemaining(e) > 0 ||\n // (linesRemaining() === 0 && lastLineLengthRemaining() >= 0) ||\n // isDeleting(e)\n // ) {\n // setBiography(e.target.value)\n // }\n // }\n\n let charactersRemaining =\n MAX_BIOGRAPHY_LENGTH - biography.length > 0\n ? MAX_BIOGRAPHY_LENGTH - biography.length\n : 0\n\n const renderPlaceholder = () => (\n setIsEditing(true)}>\n \n Add your bio, or more information about yourself here!\n \n Tap anywhere to start.\n \n )\n\n const renderBiographyText = () => {\n if (!biography && isProfileOwner) {\n return renderPlaceholder()\n }\n return (\n \n {biography}\n \n )\n }\n\n const renderBiographyTextArea = () => {\n if (isEditing) {\n return (\n \n {/* TODO: Set character limit? Gets complicated with handling line breaks. */}\n setBiography(e.target.value)}\n // onChange={(e) => handleBiographyChange(e)}\n onBlur={handleClickAway}\n inputProps={{ maxLength: MAX_BIOGRAPHY_LENGTH }}\n />\n \n )\n }\n return renderBiographyText()\n }\n\n const renderBiographyContent = () => {\n if (isProfileOwner) {\n return renderBiographyTextArea()\n }\n return renderBiographyText()\n }\n\n const headerText = `About ${speaker?.name}`\n\n if (isLoading) {\n return \n }\n\n return !isProfileOwner && !speaker?.biography ? (\n <>\n ) : (\n \n \n {isProfileOwner && (\n \n \n \n \n \n )}\n {renderBiographyContent()}\n \n )\n}\n\nexport default ProfileBiography\n","import { styled } from '@mui/system'\nimport { Alert, AlertTitle } from '@mui/material'\n\nconst ProfileAlert = styled(Alert)(({ theme }) => ({\n marginBottom: '20px',\n textAlign: 'left',\n '.MuiAlert-message': {\n fontWeight: theme.fontWeights.regular,\n },\n a: {\n textDecoration: 'none',\n color: theme.palette.secondary.main,\n },\n}))\n\nconst ProfileSettingsAlert = ({ title, severity, children }) => {\n return (\n \n {title}\n {children}\n \n )\n}\n\nexport default ProfileSettingsAlert\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgGreyCheckmarkBulletIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 32,\n height: 33,\n viewBox: \"0 0 32 33\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.9998 27.7C22.1854 27.7 27.1998 22.6856 27.1998 16.5C27.1998 10.3144 22.1854 5.29999 15.9998 5.29999C9.81422 5.29999 4.7998 10.3144 4.7998 16.5C4.7998 22.6856 9.81422 27.7 15.9998 27.7ZM21.1898 14.6899C21.7365 14.1432 21.7365 13.2568 21.1898 12.71C20.643 12.1633 19.7566 12.1633 19.2099 12.71L14.5998 17.3201L12.7898 15.51C12.243 14.9633 11.3566 14.9633 10.8099 15.51C10.2631 16.0568 10.2631 16.9432 10.8099 17.4899L13.6099 20.2899C14.1566 20.8367 15.043 20.8367 15.5898 20.2899L21.1898 14.6899Z\",\n fill: \"#323A46\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGreyCheckmarkBulletIcon);\nexport default __webpack_public_path__ + \"static/media/greyCheckmarkBulletIcon.bd146fba.svg\";\nexport { ForwardRef as ReactComponent };","import { useState, useContext } from 'react'\nimport { styled } from '@mui/system'\nimport {\n Typography,\n IconButton,\n Button,\n Menu,\n MenuItem,\n ListItemIcon,\n Avatar,\n useTheme,\n useMediaQuery,\n} from '@mui/material'\nimport { HeaderSkeleton } from './SkeletonLoaders'\n\nimport { ReactComponent as ShareIcon } from '../../icons/shareIcon_16x16.svg'\nimport { ReactComponent as CopyIcon } from '../../icons/copyIcon_16x16.svg'\nimport { ReactComponent as MailIcon } from '../../icons/mailIcon_16x16.svg'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nimport { publicProfileLink } from '../common/helpers'\n\nconst ProfileHeaderContainer = styled('div')(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: '1fr auto',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: theme.spacing(2.5),\n marginTop: theme.spacing(2),\n}))\n\nconst ProfileHeaderLeft = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n minWidth: 0,\n gap: theme.spacing(2),\n}))\n\nconst ProfileHeaderRight = styled('div')({\n display: 'flex',\n alignItems: 'center',\n})\n\nconst StyledAvatar = styled(Avatar)({\n // Note: the image width and height here is a solution to\n // prevent a small black border to show up on the left and top\n // of the image in certain occassions.\n width: '100px',\n height: '100px',\n img: {\n width: '102%',\n height: '102%',\n },\n})\n\nconst SpeakerName = styled(Typography)(({ theme }) => ({\n color: theme.palette.text.navText,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}))\n\nconst ProfileActions = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(1),\n}))\n\nconst ProfileActionButton = styled(Button)(({ theme }) => ({\n color: theme.palette.text.navText,\n fontWeight: theme.fontWeights.regular,\n}))\n\nconst ProfileHeader = ({ speaker, isLoading }) => {\n const [anchorEl, setAnchorEl] = useState(null)\n\n const theme = useTheme()\n const isMobileScreen = useMediaQuery(theme.breakpoints.down('sm'))\n\n const {\n setNotification,\n authData: { user },\n } = useContext(AuthenticationContext)\n const { shortlink } = user\n\n const shareMenuOpen = Boolean(anchorEl)\n\n const handleClick = (e) => {\n setAnchorEl(e.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const handleCopyLink = () => {\n window.navigator.clipboard.writeText(publicProfileLink(shortlink))\n setNotification('Link copied to clipboard', 'success')\n }\n\n const handleMailLink = () => {\n const email = ''\n const subject = 'Talkadot Speaker Profile'\n const body = `Check out my profile on Talkadot: ${publicProfileLink(\n shortlink\n )}`\n const mailData = `mailto:${email}?subject=${\n encodeURIComponent(subject) || ''\n }&body=${encodeURIComponent(body) || ''}`\n window.open(mailData)\n }\n\n const menuItems = [\n {\n id: 'copy-link',\n text: 'Copy link',\n icon: ,\n onClick: handleCopyLink,\n },\n {\n id: 'email-link',\n text: 'Email link',\n icon: ,\n onClick: handleMailLink,\n },\n // TODO: Add social share options\n // {\n // id: 'share-on-social',\n // text: 'Share on social',\n // icon: ,\n // },\n ]\n\n return (\n isLoading ? : (\n \n \n \n {speaker.fullName}\n \n \n \n {isMobileScreen ? (\n \n \n \n ) : (\n }\n variant=\"text\"\n color=\"tertiary\"\n aria-controls={shareMenuOpen ? 'share-profile-menu' : undefined}\n aria-haspopup=\"true\"\n aria-expanded={shareMenuOpen ? 'true' : undefined}\n onClick={handleClick}>\n Share\n \n )}\n \n {menuItems.map((item) => (\n \n {item.icon}\n {item.text}\n \n ))}\n \n {/* TODO: Favorite button goes here */}\n \n \n \n )\n )\n}\n\nexport default ProfileHeader\n","import { styled } from '@mui/system'\n\nconst HorizontalCard = styled('div')(({ theme }) => ({\n display: 'flex',\n minHeight: '428px',\n padding: '24px 36px',\n backgroundColor: theme.palette.base.white,\n border: `1px solid ${theme.palette.neutral.extraLight}`,\n borderRadius: 'theme.shape.borderRadius.sm',\n gap: theme.spacing(3),\n position: 'relative',\n alignItems: 'center',\n\n [theme.breakpoints.down('md')]: {\n flexDirection: 'column',\n padding: theme.spacing(2),\n gap: theme.spacing(2),\n alignItems: 'center',\n flex: '0 0 auto',\n },\n}))\n\nconst VideoSectionWrapper = styled('div')(({ theme }) => ({\n position: 'relative',\n maxWidth: '430px',\n width: '100%',\n [theme.breakpoints.down('md')]: {\n width: '100%',\n },\n}))\n\nconst ContentSection = styled('div')(({ theme }) => ({\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n padding: theme.spacing(2),\n minWidth: '300px',\n [theme.breakpoints.down('md')]: {\n width: '100%',\n },\n}))\n\nconst StyledCardContent = styled('div')(({ theme }) => ({\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n}))\n\nexport {\n HorizontalCard,\n VideoSectionWrapper,\n ContentSection,\n StyledCardContent,\n}\n","import { styled } from '@mui/system'\n\nimport { IconButton } from '@mui/material'\n\nimport { IoChevronBackOutline, IoChevronForwardOutline } from 'react-icons/io5'\n\nconst VideoNavigationContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: theme.spacing(2),\n marginTop: theme.spacing(2),\n '& .MuiIconButton-root': {\n color: theme.palette.neutral.dark,\n border: `1px solid ${theme.palette.neutral.extraLight}`,\n '&:hover': {\n backgroundColor: theme.palette.neutral.lightest,\n },\n },\n}))\n\nconst VideoIndicatorsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(2),\n}))\n\nconst VideoIndicator = styled('div', {\n shouldForwardProp: (prop) => prop !== 'active',\n})(({ theme, active }) => ({\n width: '20px',\n height: '20px',\n borderRadius: '50%',\n backgroundColor: active\n ? theme.palette.neutral.dark\n : theme.palette.base.white,\n border: `1px solid ${theme.palette.neutral.dark}`,\n cursor: 'pointer',\n '&:hover': {\n transition: '200ms all ease-in-out',\n backgroundColor: active\n ? theme.palette.neutral.main\n : theme.palette.neutral.extraLight,\n },\n}))\n\nconst PaginationButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'disabled',\n})(({ theme, disabled }) => ({\n color: disabled ? theme.palette.neutral.light : theme.palette.primary.main,\n boxShadow: !disabled && '0px 6px 12px 0px rgba(0, 0, 0, 0.10)',\n cursor: disabled ? 'not-allowed' : 'pointer',\n opacity: disabled ? 0.7 : 1,\n '&:hover': {\n backgroundColor: disabled\n ? 'transparent'\n : theme.palette.primary.extraLight,\n },\n}))\n\nconst VideoPagination = ({\n signatureTalkMedia = [],\n currentVideoIndex,\n setCurrentVideoIndex,\n}) => {\n const handlePrevVideo = () => {\n // Only allow navigation if not at the first video\n if (currentVideoIndex > 0) {\n setCurrentVideoIndex((prevIndex) => prevIndex - 1)\n }\n }\n\n const handleNextVideo = () => {\n // Only allow navigation if not at the last video\n if (currentVideoIndex < signatureTalkMedia.length - 1) {\n setCurrentVideoIndex((prevIndex) => prevIndex + 1)\n }\n }\n\n const handleVideoIndicatorClick = (index) => {\n setCurrentVideoIndex(index)\n }\n\n return (\n \n \n \n \n\n \n {signatureTalkMedia.map((_, index) => (\n handleVideoIndicatorClick(index)}\n />\n ))}\n \n\n \n \n \n \n )\n}\n\nexport default VideoPagination\n","import React from 'react'\nimport ReactPlayer from 'react-player'\n\nimport { styled } from '@mui/system'\n\nimport { Typography } from '@mui/material'\nimport { VIDEO_STATES } from './speechTopicCards/VideoParent'\n\nimport PlayCircleFilledIcon from '@mui/icons-material/PlayCircleFilled'\n\nconst PlaceholderContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: theme.spacing(2),\n}))\n\nconst PlaceholderTextContent = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.main,\n padding: `0px ${theme.spacing(2)}`,\n textAlign: 'center',\n}))\n\nconst StyledPlayIcon = styled(PlayCircleFilledIcon)(({ theme }) => ({\n width: '120px',\n height: '120px',\n color: theme.palette.neutral.main,\n [theme.breakpoints.down('md')]: {\n width: '100px',\n height: '100px',\n },\n [theme.breakpoints.between('md', 'lg')]: {\n width: '60px',\n height: '60px',\n },\n}))\n\nconst VideoSection = styled('div', {\n shouldForwardProp: (prop) =>\n prop !== 'isComplete' && prop !== 'height' && prop !== 'width',\n})(({ theme, isComplete, width = 430, height = 300 }) => ({\n position: 'relative',\n width: width ? `${width}px` : '100%',\n paddingTop: `calc(${height} / ${width} * 100%)`, // Maintain aspect ratio based on props\n borderRadius: theme.shape.borderRadius.sm,\n backgroundColor: isComplete\n ? theme.palette.common.black\n : theme.palette.neutral.extraLight,\n overflow: 'hidden',\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n}))\n\nconst VideoContent = styled('div')(({ theme }) => ({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n}))\n\nconst MuxVideoTile = ({\n video,\n placeholderContent,\n shouldShowPlaceholder,\n width,\n height,\n}) => {\n const setVideoThumbnail = (video) => {\n if (!video?.playbackId) {\n return false\n }\n\n return `https://image.mux.com/${video.playbackId}/thumbnail.png?width=400&height=300&fit_mode=smartcrop&time=1`\n }\n\n const renderPlaceholder = () => (\n \n \n \n {placeholderContent}\n \n \n )\n\n return (\n \n \n {shouldShowPlaceholder ? (\n renderPlaceholder()\n ) : (\n \n )}\n \n \n )\n}\n\nexport default MuxVideoTile\n","import React, { useState } from 'react'\n\nimport { VideoSectionWrapper } from './SharedStyles'\nimport VideoPagination from './VideoPagination'\nimport MuxVideoTile from '../MuxVideoTile'\n\n// must match signature_talk_medium.rb\nexport const VIDEO_STATES = {\n COMPLETE: 'complete',\n FAILED: 'failed',\n PROCESSING: 'processing',\n UPLOADING: 'uploading',\n}\n\nconst VideoParent = ({ signatureTalkMedia, speechTopicId }) => {\n const [currentVideoIndex, setCurrentVideoIndex] = useState(0)\n const currentVideo = signatureTalkMedia?.[currentVideoIndex]\n\n const makePlaceholderContent = () => {\n if (!speechTopicId) {\n return\n }\n\n if (!signatureTalkMedia || signatureTalkMedia.length === 0) {\n return 'This speech topic has no videos yet'\n }\n\n // Completed videos don't make it into the placeholder\n if (\n currentVideo?.status === VIDEO_STATES.PROCESSING ||\n currentVideo?.status === VIDEO_STATES.UPLOADING\n ) {\n return `The video - ${currentVideo.caption} - is still processing. Please check back later.`\n }\n\n if (currentVideo?.status === VIDEO_STATES.FAILED) {\n return `The video - ${currentVideo.caption} - failed to process. Please try and upload it again. If you run into issues, please reach out to support at hello@talkadot.com.`\n }\n }\n\n const shouldShowPlaceholder =\n !speechTopicId ||\n !signatureTalkMedia ||\n signatureTalkMedia.length === 0 ||\n currentVideo?.status !== VIDEO_STATES.COMPLETE\n\n return (\n \n \n\n {signatureTalkMedia?.length > 1 && (\n \n )}\n \n )\n}\n\nexport default VideoParent\n","import Api from '../../../services/api'\n\nimport { VIDEO_STATES } from './speechTopicCards/VideoParent'\n\nexport const addMediaToSignatureTalk = async (\n signatureTalkId,\n mediaUploadObjs\n) => {\n const mediaUploadsNotAddedToSignatureTalk = mediaUploadObjs.filter(\n (mediaUploadObj) => !mediaUploadObj.signatureTalkMediaUploadId\n )\n const mediaUplodadsIds = mediaUploadsNotAddedToSignatureTalk.map(\n (mediaUploadObj) => {\n return { id: mediaUploadObj.id }\n }\n )\n\n return Api.addMediaToSingatureTalk(signatureTalkId, {\n signature_talk: { signature_talk_media_uploads: mediaUplodadsIds },\n })\n}\n\n// We want to show videos that are completed first\nexport const sortSignatureTalkMediaByState = (signatureTalkMedia) => {\n if (!signatureTalkMedia) return []\n\n return [...signatureTalkMedia].sort((a, b) => {\n // Priority order: COMPLETE > other statuses\n const statusPriority = {\n [VIDEO_STATES.COMPLETE]: 0,\n [VIDEO_STATES.PROCESSING]: 1,\n [VIDEO_STATES.UPLOADING]: 2,\n [VIDEO_STATES.FAILED]: 3,\n }\n\n // First, sort by status priority\n const statusComparison = statusPriority[a.status] - statusPriority[b.status]\n\n if (statusComparison !== 0) {\n return statusComparison\n }\n\n // If statuses are the same, sort by creation date (most recent first)\n return new Date(b.createdAt) - new Date(a.createdAt)\n })\n}\n","import { styled } from '@mui/system'\n\nimport {\n HorizontalCard,\n ContentSection,\n StyledCardContent,\n} from './speechTopicCards/SharedStyles'\n\nimport VideoParent, { VIDEO_STATES } from './speechTopicCards/VideoParent'\n\nimport { ListItemIcon, Typography, List, ListItem } from '@mui/material'\nimport { ReactComponent as GreyBullet } from '../../../icons/greyCheckmarkBulletIcon.svg'\n\nimport { sortSignatureTalkMediaByState } from './helpers'\n\nimport DOMPurify from 'dompurify';\n\nconst OutcomesList = styled(List)(({ theme }) => ({\n margin: 0,\n}))\n\nconst OutcomesListItem = styled(ListItem)(({ theme }) => ({\n paddingLeft: 0,\n color: theme.palette.neutral.dark,\n}))\n\nconst SpeechTopicTitle = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.dark,\n}))\n\nconst SpeechTopicDescription = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.dark,\n p: {\n marginTop: '0px',\n marginBottom: '0px',\n },\n}))\n\nconst SpeechTopicFullPreview = ({ speechTopic }) => {\n const validMedia = speechTopic?.signatureTalkMedia?.filter(\n (media) => media.status === VIDEO_STATES.COMPLETE\n )\n\n return (\n \n {/* If there's no processed videos, don't show them in the full preview */}\n {validMedia?.length > 0 && (\n \n )}\n \n \n \n {speechTopic.title}\n \n \n \n {speechTopic?.outcomes?.map(\n (outcome, index) =>\n !!outcome.trim() && (\n \n \n \n \n {outcome}\n \n )\n )}\n \n \n \n \n )\n}\n\nexport default SpeechTopicFullPreview\n","import React, { useState } from 'react'\nimport {\n Typography,\n List,\n ListItem,\n Dialog,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\n\nimport { styled } from '@mui/system'\n\nimport SpeechTopicFullPreview from '../SpeechTopicFullPreview'\nimport MuxVideoTile from '../MuxVideoTile'\nimport ModalCloseIcon from '../../../common/ModalCloseIcon'\n\nimport { VIDEO_STATES } from './VideoParent'\n\nconst VerticalCard = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: theme.palette.base.white,\n overflow: 'hidden',\n width: '100%',\n maxWidth: '430px',\n}))\n\nconst SpeechTopicTitle = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.dark,\n fontWeight: 600,\n '&:hover': {\n cursor: 'pointer',\n color: theme.palette.secondary.main,\n },\n}))\n\nconst ContentSection = styled('div')(({ theme }) => ({\n padding: `${theme.spacing(1.5)} 0px`,\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n}))\n\nconst OutcomesList = styled(List)(({ theme }) => ({\n margin: 0,\n padding: theme.spacing(0, 0, 0, 2.5), // Add left padding for bullets\n listStyleType: 'disc',\n}))\n\nconst OutcomesListItem = styled(ListItem)(({ theme }) => ({\n display: 'list-item',\n padding: 0,\n marginBottom: '0.5em',\n '&:last-child': {\n marginBottom: 0,\n },\n fontSize: theme.typography.fontSize,\n fontFamily: theme.typography.fontFamily,\n fontWeight: 400,\n color: theme.palette.neutral.semiDark,\n}))\n\nconst OutcomesListItemContent = styled(Typography)(({ theme }) => ({\n fontWeight: 400,\n color: theme.palette.neutral.semiDark,\n display: 'block', // Ensure proper text wrapping\n}))\n\nconst KeyOutcomesListTitle = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.semiDark,\n}))\n\nconst SpeechTopicProfileCard = ({\n speechTopic,\n handleDeleteClick,\n handleEditClick,\n}) => {\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'))\n const [previewOpen, setPreviewOpen] = useState(false)\n\n const handleOpenPreview = () => {\n setPreviewOpen(true)\n }\n\n const handleClosePreview = () => {\n setPreviewOpen(false)\n }\n\n // Only show the first completed video for signature talk. Expanding on the signature talk shows more\n // Can change this functionality in the future if needed\n const video = speechTopic?.signatureTalkMedia?.find(\n (media) => media.status === VIDEO_STATES.COMPLETE\n )\n\n return (\n \n \n \n \n {speechTopic.title}\n \n Key Outcomes:\n \n {speechTopic.outcomes.map(\n (outcome, index) =>\n !!outcome.trim() && (\n \n {outcome}\n \n )\n )}\n \n \n \n \n
    \n \n
    \n \n
    \n )\n}\n\nexport default SpeechTopicProfileCard\n","import React from 'react'\n\nimport {\n Typography,\n} from '@mui/material'\n\nimport { styled } from '@mui/system'\nimport { useHistory } from 'react-router-dom'\nimport { Button } from '@mui/material'\n\nimport MuxVideoTile from '../MuxVideoTile'\n\n\nconst VerticalCard = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: theme.palette.base.white,\n overflow: 'hidden',\n width: '100%',\n maxWidth: '430px',\n}))\n\nconst SpeechTopicTitle = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.semiLight,\n fontWeight: 600,\n}))\n\nconst ContentSection = styled('div')(({ theme }) => ({\n padding: `${theme.spacing(1.5)} 0px`,\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n}))\n\nconst PlaceholderDescription = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.semiLight,\n}))\n\nconst PlaceholderActionsContainer = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(1),\n}))\n\nconst SpeechTopicPlaceholderProfileCard = () => {\n const history = useHistory()\n\n return (\n \n \n \n \n Add your first speech topic\n \n You don't have a speech topic added yet.\n Add one to start sharing on your profile with prospective clients!\n \n \n history.push('/talks/speech-topic/new')}>\n + Add a speech topic\n \n \n \n )\n}\n\nexport default SpeechTopicPlaceholderProfileCard\n","import React, { useEffect, useState } from 'react'\nimport { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\n\nimport SpeechTopicProfileCard from '../talks/speechTopics/speechTopicCards/SpeechTopicProfileCard'\nimport SpeechTopicPlaceholderProfileCard from '../talks/speechTopics/speechTopicCards/SpeechTopicPlaceholderProfileCard'\nimport PaginationCompact from '../common/PaginationCompact'\n\nimport { SpeechTopicListSkeleton } from './SkeletonLoaders'\n\nimport { Notification } from '../common/Notification'\n\nimport Api from '../../services/api'\n\nconst HorizontalLine = styled('hr')(({ theme }) => ({\n width: '100%',\n border: 'none',\n borderBottom: `1px solid ${theme.palette.neutral.extraLight}`,\n marginBottom: theme.spacing(6),\n}))\n\nconst Container = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n marginBottom: theme.spacing(6),\n}))\n\nconst ListHeader = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: theme.spacing(2),\n}))\n\nconst GridContainer = styled('div')(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(406px, 0.5fr))',\n gap: theme.spacing(2.5),\n [theme.breakpoints.down('lg')]: {\n gridTemplateColumns: 'repeat(auto-fill, minmax(406px, 1fr))',\n },\n [theme.breakpoints.down('sm')]: {\n gridTemplateColumns: 'repeat(auto-fill, minmax(100%, 1fr))',\n },\n}))\n\nconst ITEMS_PER_PAGE = 3\n\nconst ProfileSpeechTopicList = ({ speaker, isProfileOwner }) => {\n const [page, setPage] = useState(0)\n const [speechTopics, setSpeechTopics] = useState([])\n const [isLoading, setIsLoading] = useState(true)\n const [visibleTopics, setVisibleTopics] = useState([])\n\n useEffect(() => {\n const fetchSpeechTopics = async () => {\n try {\n setIsLoading(true)\n const res = await Api.getPublicProfileSection('signature_talks', {\n public_profile: { shortlink: speaker.shortlink },\n })\n\n if (!res.errors) {\n setSpeechTopics(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n console.error('Error fetching signature talks:', err)\n } finally {\n setIsLoading(false)\n }\n }\n\n if (speaker?.shortlink) {\n fetchSpeechTopics()\n }\n }, [speaker?.shortlink])\n\n \n useEffect(() => {\n setVisibleTopics(\n speechTopics.slice(page * ITEMS_PER_PAGE, (page + 1) * ITEMS_PER_PAGE)\n )\n }, [speechTopics, page])\n\n const handlePageChange = (_event, value) => {\n setPage(value - 1)\n }\n\n const shouldRenderSpeechTopics = (\n isProfileOwner ||\n (!isProfileOwner && speechTopics?.length > 0)\n )\n\n const renderPlaceholder = () => {\n return isProfileOwner ? (\n <>\n \n Your speech topics will only appear on your profile if you mark them public and attach a video.\n \n \n \n ) : (\n We're still gathering signature talk information for this profile!\n )\n }\n\n if (!speaker || isLoading) {\n return \n }\n\n return (\n shouldRenderSpeechTopics && (\n <>\n \n \n {speaker.name}'s Signature Talks {speechTopics?.length > 0 && `(${speechTopics.length})`}\n {speechTopics.length > ITEMS_PER_PAGE && (\n \n )}\n \n {speechTopics.length === 0 ? (\n renderPlaceholder()\n ) : (\n \n {visibleTopics.map((speechTopic) => (\n \n ))}\n \n )}\n \n \n \n )\n )\n}\n\nexport default ProfileSpeechTopicList","import { useState, useRef, useEffect } from 'react'\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport SwiperCore, { Navigation } from 'swiper'\nimport 'swiper/swiper-bundle.min.css'\nimport { styled } from '@mui/system'\nimport { Box, Dialog, IconButton, useTheme } from '@mui/material'\nimport CloseIcon from '@mui/icons-material/Close'\nimport ReactPlayer from 'react-player'\nimport { MediaCarouselSkeleton } from './SkeletonLoaders'\n\nimport Api from '../../services/api'\n\n\n// NOTE: This is using the Swiper v6.8.4, which is outdated but the latest version is not compatible with the current version of React.\n// https://swiper6.vercel.app/swiper-api\n\n// Install Swiper modules\nSwiperCore.use([Navigation])\n\nconst Container = styled(Box)(({ theme }) => ({\n position: 'relative',\n maxWidth: '100%',\n overflow: 'hidden',\n marginBottom: theme.spacing(5),\n '& .swiper-button-next, & .swiper-button-prev': {\n width: '40px',\n height: '40px',\n color: theme.palette.secondary.main,\n '&::after': {\n fontSize: '20px',\n },\n },\n '& .swiper-button-next': {\n right: '8px',\n },\n '& .swiper-button-prev': {\n left: '8px',\n },\n}))\n\nconst SlideContent = styled(Box)(({ theme }) => ({\n height: 300,\n borderRadius: theme.shape.borderRadius.xxs,\n overflow: 'hidden',\n backgroundColor: theme.palette.neutral.lightest,\n cursor: 'pointer',\n [theme.breakpoints.down('md')]: {\n height: 250,\n },\n [theme.breakpoints.down('sm')]: {\n height: 150,\n },\n}))\n\nconst StyledImage = styled('img')(({ theme }) => ({\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n}))\n\nconst DialogContent = styled(Box)(({ theme }) => ({\n position: 'relative',\n maxWidth: '90vw',\n maxHeight: '90vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: theme.spacing(2),\n}))\n\nconst EnlargedImage = styled('img')({\n maxWidth: '100%',\n maxHeight: '90vh',\n objectFit: 'contain',\n})\n\nconst CloseButton = styled(IconButton)(({ theme }) => ({\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1),\n color: theme.palette.base.white,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.7)',\n },\n}))\n\nconst ProfileMediaCarousel = ({ speaker}) => {\n const theme = useTheme()\n const [selectedImage, setSelectedImage] = useState(null)\n const [isLoading, setIsLoading] = useState(true)\n const swiperRef = useRef(null)\n const [mediaItems, setMediaItems] = useState([])\n\n useEffect(() => {\n const fetchMediaItems = async () => {\n try {\n setIsLoading(true)\n const res = await Api.getPublicProfileSection('media_items', {\n public_profile: { shortlink: speaker?.shortlink },\n })\n\n if (!res.errors) {\n setMediaItems(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n console.error(err)\n } finally {\n setIsLoading(false)\n }\n }\n\n if (speaker?.shortlink) {\n fetchMediaItems()\n }\n }, [speaker?.shortlink])\n\n useEffect(() => {\n // Update Swiper when media items change\n if (swiperRef.current) {\n swiperRef.current.update()\n }\n }, [mediaItems])\n\n const handleImageClick = (imageUrl) => {\n setSelectedImage(imageUrl)\n }\n\n const handleCloseDialog = () => {\n setSelectedImage(null)\n }\n\n const handleMediaLoad = () => {\n // Update Swiper when any media loads\n if (swiperRef.current) {\n swiperRef.current.update()\n }\n }\n\n if (!speaker?.shortlink || isLoading) {\n return \n }\n\n if (!mediaItems?.length > 0) {\n return null\n }\n\n return (\n \n {\n swiperRef.current = swiper\n }}\n navigation\n spaceBetween={12}\n slidesPerView=\"auto\"\n // NOTE: Need the observer props to make sure swiper works with react-player on mobile\n observer={true}\n observeParents={true}>\n {mediaItems.map((item, index) => (\n \n \n {item.type === 'image' ? (\n handleImageClick(item.url)}\n onLoad={handleMediaLoad}\n />\n ) : (\n \n )}\n \n \n ))}\n \n\n \n \n {selectedImage && (\n <>\n \n \n \n \n \n )}\n \n \n \n )\n}\n\nexport default ProfileMediaCarousel\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCloseIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 10,\n height: 8,\n viewBox: \"0 0 10 8\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.60547 7.05469L8.39369 0.945285\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.39369 7.05484L1.60547 0.945435\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCloseIcon16X16);\nexport default __webpack_public_path__ + \"static/media/closeIcon_16x16.0f3503d5.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgEditIcon116X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_206_1577)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.33301 2.66663H2.66634C2.31272 2.66663 1.97358 2.8071 1.72353 3.05715C1.47348 3.3072 1.33301 3.64634 1.33301 3.99996V13.3333C1.33301 13.6869 1.47348 14.0261 1.72353 14.2761C1.97358 14.5262 2.31272 14.6666 2.66634 14.6666H11.9997C12.3533 14.6666 12.6924 14.5262 12.9425 14.2761C13.1925 14.0261 13.333 13.6869 13.333 13.3333V8.66663\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.333 1.66665C12.5982 1.40144 12.9579 1.25244 13.333 1.25244C13.7081 1.25244 14.0678 1.40144 14.333 1.66665C14.5982 1.93187 14.7472 2.29158 14.7472 2.66665C14.7472 3.04173 14.5982 3.40144 14.333 3.66665L7.99967 9.99999L5.33301 10.6667L5.99967 7.99999L12.333 1.66665Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_206_1577\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEditIcon116X16);\nexport default __webpack_public_path__ + \"static/media/editIcon1_16x16.6a260ca1.svg\";\nexport { ForwardRef as ReactComponent };","import { useState, useEffect } from 'react'\nimport { styled } from '@mui/system'\nimport { TextField, IconButton, InputAdornment } from '@mui/material'\n\nimport { ReactComponent as CheckIcon } from '../../icons/checkMarkIcon_16x16.svg'\nimport { ReactComponent as CancelIcon } from '../../icons/closeIcon_16x16.svg'\n\nconst StyledTextField = styled(TextField, {\n shouldForwardProp: (prop) => prop !== 'maxWidth',\n})(({ theme, maxWidth }) => ({\n width: '100%',\n maxWidth: maxWidth || '100%',\n '& .MuiInput-root': {\n '& .MuiInput-input': {\n paddingRight: theme.spacing(8),\n },\n '&::after': {\n borderBottomWidth: '1px',\n },\n },\n}))\n\nconst StyledCheckIcon = styled(CheckIcon)(({ theme }) => ({\n '& path': {\n strokeWidth: 1.5,\n },\n}))\n\nconst InputUnderline = ({\n value,\n error,\n inputRef,\n placeholder,\n handleValidate,\n handleBlur,\n handleSave,\n handleCancel,\n maxWidth,\n}) => {\n const [inputValue, setInputValue] = useState(value)\n const [originalValue, setOriginalValue] = useState(value)\n\n useEffect(() => {\n if (value) {\n setInputValue(value)\n }\n }, [value])\n\n const handleOnChange = (e) => {\n const newValue = e.target.value\n\n if (handleValidate) {\n const isValid = handleValidate(newValue)\n if (isValid === false) {\n return\n }\n }\n\n setInputValue(newValue)\n }\n\n const handleOnCancel = () => {\n if (handleCancel) {\n handleCancel()\n }\n setInputValue(originalValue)\n }\n\n const handleOnSave = () => {\n if (handleSave) {\n handleSave(inputValue)\n }\n setOriginalValue(inputValue)\n }\n\n const handleOnBlur = () => {\n if (handleBlur) {\n handleBlur(inputValue)\n }\n }\n\n return (\n {\n if (e.key === 'Enter') {\n e.preventDefault()\n handleOnSave()\n }\n }}\n inputRef={inputRef}\n placeholder={placeholder}\n variant=\"standard\"\n color=\"secondary\"\n error={!!error}\n helperText={error}\n maxWidth={maxWidth}\n InputProps={{\n endAdornment: (\n \n
    \n \n \n \n \n \n \n
    \n
    \n ),\n }}\n />\n )\n}\n\nexport default InputUnderline\n","import { useState, useRef, useContext, useEffect } from 'react'\nimport { styled } from '@mui/system'\nimport { Typography, IconButton, Skeleton } from '@mui/material'\n\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../../features/authentication/authenticationContext'\n\nimport InputUnderline from '../common/InputUnderline'\n\nimport { ReactComponent as EditIcon } from '../../icons/editIcon1_16x16.svg'\n\nconst TaglineWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n maxWidth: '1000px',\n marginBottom: theme.spacing(2.5),\n}))\n\nconst Tagline = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.veryDark,\n}))\n\nconst PlaceHolder = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.semiLight,\n cursor: 'text',\n}))\n\nconst StyledEditIcon = styled(EditIcon)(({ theme }) => ({\n path: {\n stroke: theme.palette.neutral.veryLight,\n },\n}))\n\nconst MAX_TAGLINE_LENGTH = 100\n\nconst ProfileTagline = ({ authUser, speaker, isLoading }) => {\n const [isEditing, setIsEditing] = useState(false)\n const [tagline, setTagline] = useState('')\n const [taglineError, setTaglineError] = useState(null)\n\n const { setNotification } = useContext(AuthenticationContext)\n\n const blurTimeoutRef = useRef(null)\n const inputRef = useRef(null)\n\n useEffect(() => {\n if (!isLoading && speaker?.id) {\n setTagline(speaker?.tagline || '')\n }\n }, [speaker, isLoading])\n\n const isProfileOwner = authUser?.id === speaker?.id && !authUser?.isAssociate\n\n const handleValidate = (value) => {\n if (value.length > MAX_TAGLINE_LENGTH) {\n setTaglineError(\n `Tagline must be ${MAX_TAGLINE_LENGTH} characters or less`\n )\n return false\n }\n setTaglineError(null)\n return true\n }\n\n const handleSave = async (value) => {\n if (blurTimeoutRef.current) {\n clearTimeout(blurTimeoutRef.current)\n }\n const params = {\n profile: { tagline: value },\n }\n\n try {\n const res = await Api.updateProfile(params)\n if (!res.errors) {\n setTagline(value)\n setIsEditing(false)\n setTaglineError(null)\n } else {\n throw res.errors\n }\n } catch (err) {\n console.log(err)\n setNotification(err)\n }\n }\n\n const handleCancel = () => {\n if (blurTimeoutRef.current) {\n clearTimeout(blurTimeoutRef.current)\n }\n setTaglineError(null)\n setIsEditing(false)\n }\n\n const handleBlur = (value) => {\n // Add a small delay to allow click events to fire first\n blurTimeoutRef.current = setTimeout(() => {\n handleSave(value)\n }, 200)\n }\n\n const handleEditClick = () => {\n if (isProfileOwner) {\n setIsEditing(true)\n setTimeout(() => {\n inputRef.current.focus()\n }, 100)\n }\n }\n\n const renderPlaceholder = () => {\n if (isProfileOwner) {\n return (\n \n This is where your tagline would go. Click to add it.\n \n )\n }\n }\n\n if (isLoading) {\n return (\n \n \n \n )\n }\n\n if (!isProfileOwner && !tagline) {\n return null\n }\n\n return (\n \n {isEditing ? (\n \n ) : (\n <>\n {tagline ? (\n \n {tagline}\n \n ) : (\n renderPlaceholder()\n )}\n {isProfileOwner && (\n \n \n \n )}\n \n )}\n \n )\n}\n\nexport default ProfileTagline\n","import { useState, useCallback, useContext, useMemo, useEffect } from 'react'\nimport { styled } from '@mui/system'\nimport { Typography, Button, Tooltip } from '@mui/material'\n\nimport { ProfileSectionHeader } from './ProfileSectionHeader'\nimport LoadingSpinner from '../common/LoadingSpinner'\nimport LikeDislike from '../common/LikeDislike'\n\nimport { ReactComponent as AiSparkles } from '../../icons/aiSparklesIcon_16x16.svg'\nimport { ReactComponent as AiIcon } from '../../icons/aiIconOutline.svg'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nimport usePolling from '../../hooks/usePolling'\n\nimport { FeedbackSummarySkeleton } from './SkeletonLoaders'\n\nimport Api from '../../services/api'\n\nconst FeedbackSummaryContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(6),\n}))\n\nconst SummaryContentWrapper = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(2),\n}))\n\nconst StyledSummary = styled(Typography)(({ theme }) => ({\n whiteSpace: 'pre-line',\n color: theme.palette.neutral.veryDark,\n marginTop: theme.spacing(1.5),\n marginBottom: theme.spacing(2),\n}))\n\nconst StyledContent = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.veryDark,\n}))\n\nconst MessageContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: theme.spacing(2),\n height: '100%',\n width: '100%',\n}))\n\nconst BigAiSparkles = styled(AiSparkles)(({ theme }) => ({\n height: 30,\n width: 30,\n}))\n\nconst DoesNotExistContent = styled(StyledContent)(({ theme }) => ({\n fontWeight: theme.fontWeights.bold,\n alignItems: 'center',\n textAlign: 'center',\n}))\n\nconst GenerateSummaryButton = styled(Button)(({ theme }) => ({\n marginTop: theme.spacing(1.5),\n color: theme.palette.base.white,\n textWrap: 'nowrap',\n maxWidth: '300px',\n width: 'auto',\n height: 'auto',\n svg: {\n marginRight: theme.spacing(1),\n '& path': {\n fill: theme.palette.base.white,\n },\n },\n [theme.breakpoints.down('sm')]: {\n minWidth: '50px',\n height: '50px',\n svg: {\n marginRight: 0,\n },\n },\n}))\n\nconst OutcomesHeader = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.veryDark,\n fontWeight: 'bold',\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}))\n\nconst Outcomes = styled('ul')(({ theme }) => ({\n paddingLeft: theme.spacing(2),\n margin: 0,\n listStyleType: 'none',\n li: {\n fontSize: '0.875rem',\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n paddingLeft: '1em',\n },\n 'li::before': {\n content: '\"•\"',\n fontSize: '0.875rem',\n position: 'absolute',\n left: 0,\n top: 0,\n },\n}))\n\n// TODO: This is temporary functionality to make testing easier.\n// Delete before releasing for General Availability\nconst DeleteButton = styled(Button)(({ theme }) => ({\n width: 'max-content',\n fontSize: '0.875rem',\n fontWeight: theme.fontWeights.regular,\n padding: theme.spacing(1),\n verticalAlign: 'baseline',\n}))\n\nconst FooterContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(0.5),\n paddingTop: theme.spacing(2),\n}))\n\nconst FeedbackRatingContainer = styled('div')(({ theme }) => ({\n marginLeft: theme.spacing(3.5),\n}))\n\nconst Footer = styled('div')({\n display: 'flex',\n})\n\nconst FooterTextContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n})\n\nconst FooterText = styled(Typography)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n paddingLeft: theme.spacing(1),\n color: theme.palette.neutral.main,\n height: '100%',\n}))\n\nconst FeedbackSummary = ({\n feedbackSummary,\n handleDeleteSummary,\n isAdmin,\n isProfileOwner,\n}) => {\n return (\n \n {feedbackSummary?.summary}\n Key Outcomes: \n \n {feedbackSummary.outcomes.map((outcome, i) => (\n
  • \n {outcome}\n
  • \n ))}\n
    \n {/* TODO: This is temporary functionality to make testing easier. Delete before releasing for General Availability */}\n {isAdmin && isProfileOwner && (\n \n Delete AI Summary\n \n )}\n
    \n )\n}\n\nconst NotEnoughFeedback = () => {\n return (\n \n \n You don't have enough feedback to generate a summary. Start by using\n Talkadot to gather feedback from your audience.\n \n \n )\n}\n\nconst FeedbackSummaryDoesNotExist = ({\n isGenerating,\n handleGenerateSummary,\n}) => {\n const content = isGenerating\n ? 'Your summary is being generated'\n : 'Generate an AI summary of all your feedback for your public profile'\n return (\n \n {isGenerating ? : }\n {content}\n \n \n Generate a summary\n \n \n )\n}\n\n// TODO: Handle not enough feedback to generate summary\n// TODO: Handle rating a summary\nconst ProfileFeedbackSummary = ({ authUser, speaker }) => {\n const [isLoading, setIsLoading] = useState(true)\n const [summary, setSummary] = useState(null)\n const [feedbackSummaryMetadata, setFeedbackSummaryMetadata] = useState(null)\n const [feedback, setFeedback] = useState(null)\n const [isGenerating, setIsGenerating] = useState(\n summary?.status === 'in_progress'\n )\n\n useEffect(() => {\n const fetchSummary = async () => {\n try {\n setIsLoading(true)\n const res = await Api.getPublicProfileSection('feedback_summary', {\n public_profile: { shortlink: speaker?.shortlink },\n })\n\n if (!res.errors) {\n setSummary(res.feedbackSummary)\n setFeedbackSummaryMetadata(res.feedbackSummaryMetadata)\n setFeedback(res.feedbackSummaryRating)\n } else {\n throw res.errors\n }\n } catch (err) {\n console.error(err)\n } finally {\n setIsLoading(false)\n }\n }\n\n if (speaker?.shortlink) {\n fetchSummary()\n }\n }, [speaker?.shortlink])\n\n const isAdmin = !!authUser?.isAdmin\n const canGenerateSummary = feedbackSummaryMetadata?.canBeSummarized\n const isProfileOwner = authUser?.id === speaker?.id && !authUser?.isAssociate\n const hasCompletedFeedbackSummary = summary?.status === 'complete'\n const speakerName = speaker?.name\n\n const { setNotification } = useContext(AuthenticationContext)\n const { startPolling: startPollingForNewSummary } = usePolling({\n apiMethod: () => {\n return Api.getUserProfileFeedbackSummary(speaker?.id)\n },\n shouldStopPolling: (data) =>\n data.profileSummary?.feedbackSummary?.status !== 'in_progress',\n maxTries: 30,\n pollingInterval: 3000,\n })\n\n const generateSummary = useCallback(async () => {\n const resp = await Api.generateUserProfileFeedbackSummary(speaker?.id)\n if (resp.errors) {\n throw resp.errors\n }\n return resp\n }, [speaker?.id])\n\n const handleGenerateSummary = useCallback(async () => {\n setIsGenerating(true)\n\n try {\n const resp = await generateSummary()\n if (resp.errors) {\n throw resp.errors\n }\n setSummary(resp?.profileSummary?.feedbackSummary)\n } catch (err) {\n setNotification(err)\n setIsGenerating(false)\n return\n }\n\n try {\n const pollingResp = await startPollingForNewSummary()\n setSummary(pollingResp?.data?.profileSummary?.feedbackSummary)\n } catch (err) {\n setNotification(err)\n } finally {\n setIsGenerating(false)\n }\n }, [generateSummary, setNotification, startPollingForNewSummary])\n\n // TODO: This is temporary functionality to make testing easier. Delete before releasing for General Availability\n const handleDeleteSummary = useCallback(async () => {\n try {\n const resp = await Api.destroyUserProfileFeedbackSummary(speaker?.id)\n if (resp.errors) {\n throw resp.errors\n }\n setSummary(null)\n setFeedback(null)\n } catch (err) {\n setNotification(err)\n }\n }, [speaker?.id, setNotification])\n\n const title = useMemo(() => {\n return `Audience on ${speaker?.name}`\n }, [speaker?.name])\n\n const handleRateSummary = useCallback(\n async (rating) => {\n try {\n const data = { rating }\n const res = await Api.rateUserProileFeedbackSummary(speaker?.id, data)\n if (!res.errors) {\n setFeedback(res.profileSummary?.feedbackSummaryRating)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n },\n [speaker?.id, setNotification]\n )\n\n const content = useMemo(() => {\n // TODO: We probably want a placeholder here\n // TODO: We probably want to show different things if the user is the profile owner\n\n if (!isProfileOwner && !hasCompletedFeedbackSummary) return\n\n // handle the case where we don't have enough feedback to generate a summary\n if (!hasCompletedFeedbackSummary && !canGenerateSummary) {\n if (isProfileOwner) {\n return \n } else {\n return\n }\n }\n\n // handle the case where we have enough feedback to generate a summary\n if (!hasCompletedFeedbackSummary && canGenerateSummary) {\n if (isProfileOwner) {\n return (\n \n )\n } else {\n return\n }\n }\n\n return (\n \n )\n }, [\n canGenerateSummary,\n handleDeleteSummary,\n handleGenerateSummary,\n hasCompletedFeedbackSummary,\n isAdmin,\n isGenerating,\n isProfileOwner,\n summary,\n ])\n\n const footer = useMemo(() => {\n if (!hasCompletedFeedbackSummary) return null\n\n const tooltipText = `This AI-generated summary captures key insights from attendee feedback for ${\n isProfileOwner ? 'your' : `${speakerName}'s`\n } talks.`\n\n return (\n \n
    \n \n \n \n \n Summary generated based on all of{' '}\n {isProfileOwner ? 'your' : `${speakerName}'s`} testimonials\n \n \n \n
    \n {isProfileOwner && hasCompletedFeedbackSummary && (\n \n \n \n )}\n
    \n )\n }, [\n hasCompletedFeedbackSummary,\n isProfileOwner,\n speakerName,\n handleRateSummary,\n feedback?.rating,\n ])\n\n // TODO: Remove this check once we have this released publically\n if (!isAdmin) return null\n\n if (!isProfileOwner && !hasCompletedFeedbackSummary) return null\n\n if (!speaker?.shortlink || isLoading) {\n return (\n \n \n \n )\n }\n\n return (\n \n \n {content}\n {footer}\n \n )\n}\n\nexport default ProfileFeedbackSummary\n","export const ResponsesSvg = () => {\n return (\n \n \n \n )\n}\n","export const ValuableSvg = () => {\n return (\n \n \n \n )\n}\n","export const ReattendSvg = () => {\n return (\n \n \n \n \n )\n}\n","export const LocationSvg = () => {\n return (\n \n \n \n \n \n \n \n )\n}\n","import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\n\nimport { ResponsesSvg } from './ResponsesSvg'\nimport { ValuableSvg } from './ValuableSvg'\nimport { ReattendSvg } from './ReattendSvg'\nimport { LocationSvg } from './LocationSvg'\n\nconst Container = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n})\n\nconst CardContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n padding: theme.spacing(1.5),\n border: `1px solid ${theme.palette.border.light}`,\n borderRadius: theme.shape.borderRadius.sm,\n width: '100%',\n height: '164px',\n}))\n\nconst CardHeader = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n}))\n\nconst HeaderLogo = styled('div')({\n display: 'flex',\n alignItems: 'center',\n marginRight: '10px',\n})\n\nconst HeaderText = styled(Typography)(({ theme }) => ({\n color: theme.palette.text.inputText,\n}))\n\nconst CardContentContainer = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flex: 1,\n})\n\nconst CardFooter = styled(Typography)(({ theme }) => ({\n fontWeight: theme.fontWeights.semiBold,\n textAlign: 'center',\n}))\n\nconst typeConfig = {\n responses: {\n text: 'Audience Feedback',\n logo: ,\n color: (theme) => theme.palette.secondary.main,\n footer: 'Responses from attendees',\n },\n valuable: {\n text: 'Find Valuable',\n logo: ,\n color: (theme) => theme.palette.profileWidget.lightBlue,\n footer: 'Find sessions valuable',\n },\n reattend: {\n text: 'Reattend Rate',\n logo: ,\n color: (theme) => theme.palette.profileWidget.teal,\n footer: 'Interested in attending future talks',\n },\n location: {\n text: 'Talks Given',\n logo: ,\n color: (theme) => theme.palette.profileWidget.green,\n footer: 'Audience type',\n },\n}\n\nexport const ProfileStatCard = ({ type, children }) => {\n const { text, logo, footer } = typeConfig[type]\n\n return (\n \n \n \n {logo}\n {text}\n \n {children}\n {footer}\n \n \n )\n}\n","import { styled } from '@mui/system'\nimport { Skeleton, Typography } from '@mui/material'\n\nimport { ReactComponent as AttendeesIcon } from '../../icons/attendeesIcon.svg'\n\nconst StatWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n}))\n\nconst ResponseCount = styled(Typography)(({ theme }) => ({\n fontWeight: theme.fontWeights.bold,\n}))\n\nexport const ResponsesStatContent = ({ totalResponses, isLoading }) => {\n return isLoading ? (\n \n ) : (\n <>\n {totalResponses > 0 && (\n \n \n \n {totalResponses?.toLocaleString()}\n \n \n )}\n \n )\n}\n","import { styled } from '@mui/system'\nimport { Skeleton, Typography } from '@mui/material'\nimport { Chart as ChartJS, ArcElement, Tooltip } from 'chart.js'\nimport { Doughnut } from 'react-chartjs-2'\n\nimport { useTheme } from '@mui/material/styles'\n\nChartJS.register(ArcElement, Tooltip)\n\nconst StatWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(2),\n}))\n\nconst StatPercentage = styled(Typography)(({ theme }) => ({\n fontWeight: theme.fontWeights.bold,\n}))\n\nconst CircleChartWrapper = styled('div')({\n width: '80px',\n height: '80px',\n})\n\nexport const ValuableStatContent = ({ ratingsBreakdown, isLoading }) => {\n const theme = useTheme()\n const { positives, negatives, total } = ratingsBreakdown\n const rating = parseInt((positives / total) * 100) || 0\n\n const chartData = {\n labels: ['Yes', 'No'],\n datasets: [\n {\n data: [positives, negatives],\n backgroundColor: [\n theme.palette.secondary.main,\n theme.palette.neutral.extraLight,\n ],\n borderWidth: 0,\n },\n ],\n }\n\n const options = {\n plugins: {\n legend: {\n display: false,\n },\n },\n }\n\n return isLoading ? (\n \n ) : (\n <>\n {rating > 0 && (\n \n {rating}%\n \n \n \n \n )}\n \n )\n}\n","import { styled } from '@mui/system'\nimport { Skeleton, Typography } from '@mui/material'\nimport { Chart as ChartJS, ArcElement, Tooltip } from 'chart.js'\nimport { Doughnut } from 'react-chartjs-2'\n\nimport { useTheme } from '@mui/material/styles'\n\nChartJS.register(ArcElement, Tooltip)\n\nconst StatWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(2),\n // Note: this is fudging the centering due to the chart padding for the label overflow fix\n marginLeft: '40px',\n}))\n\nconst StatPercentage = styled(Typography)(({ theme }) => ({\n fontWeight: theme.fontWeights.bold,\n}))\n\nconst CircleChartWrapper = styled('div')({\n // Note: This width is to account for the chart layout padding to handle the label overflow\n width: '120px',\n height: '80px',\n})\n\nexport const ReattendStatContent = ({\n reattendBreakdown,\n isLoading,\n speaker,\n}) => {\n const theme = useTheme()\n const { d_yes, p_yes, p_no, d_no, total_reattend_answers } = reattendBreakdown\n const reattendRate =\n parseInt(((d_yes + p_yes) / total_reattend_answers) * 100) || 0\n\n const chartData = {\n labels: ['Definitely', 'Probably', 'Probably Not', 'Definitely Not'],\n datasets: [\n {\n data: [d_yes, p_yes, p_no, d_no],\n backgroundColor: [\n theme.palette.secondary.main,\n theme.palette.profileWidget.lightBlue,\n theme.palette.neutral.dark,\n theme.palette.neutral.extraLight,\n ],\n borderWidth: 0,\n },\n ],\n }\n\n const options = {\n plugins: {\n legend: {\n display: false,\n },\n },\n layout: {\n // Note: this is a workaround to prevent tooltips from being cut off\n padding: {\n right: 40,\n bottom: 40,\n },\n },\n }\n\n return isLoading ? (\n \n ) : (\n <>\n {reattendRate > 0 && (\n \n {reattendRate}%\n \n \n \n \n )}\n \n )\n}\n","import { styled } from '@mui/system'\nimport { Skeleton, Typography } from '@mui/material'\nimport { Chart as ChartJS, ArcElement, Tooltip } from 'chart.js'\nimport { Doughnut } from 'react-chartjs-2'\n\nimport { useTheme } from '@mui/material/styles'\n\nChartJS.register(ArcElement, Tooltip)\n\nconst StatWrapper = styled('div')({\n display: 'flex',\n})\n\nconst InPersonPercentageWrapper = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-end',\n})\n\nconst VirtualPercentageWrapper = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start',\n})\n\nconst StatPercentage = styled(Typography)(({ theme }) => ({\n fontWeight: theme.fontWeights.bold,\n}))\n\nconst CircleChartWrapper = styled('div')({\n alignSelf: 'center',\n width: '96px',\n height: '80px',\n marginLeft: '16px',\n})\n\nexport const LocationStatContent = ({ locationBreakdown, isLoading }) => {\n const theme = useTheme()\n const { totalEvents, inPerson, virtual } = locationBreakdown\n const inPersonRate = (inPerson / totalEvents) * 100 || 0\n const virtualRate = (virtual / totalEvents) * 100 || 0\n\n const chartData = {\n labels: ['Virtual', 'In Person'],\n datasets: [\n {\n data: [virtual, inPerson],\n backgroundColor: [\n theme.palette.neutral.extraLight,\n theme.palette.secondary.main,\n ],\n borderWidth: 0,\n },\n ],\n }\n\n const options = {\n plugins: {\n legend: {\n display: false,\n },\n },\n layout: {\n // Note: this is a workaround to prevent tooltips from being cut off\n padding: {\n right: 16,\n bottom: 16,\n },\n },\n }\n\n return isLoading ? (\n \n ) : (\n <>\n {inPersonRate > 0 && (\n \n \n \n {Math.round(inPersonRate)}\n %\n \n In person\n \n \n \n \n \n \n {Math.round(virtualRate)}%\n \n Virtual\n \n \n )}\n \n )\n}\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgZapierIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 105,\n height: 28,\n \"data-testid\": \"ZapierLogo\",\n viewBox: \"0 0 244 66\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n className: \"css-tyvwmd-ZapierLogo\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.1877 45.2253L57.1534 45.1166L78.809 25.2914V15.7391H44.0663V25.2914H64.8181L64.8524 25.3829L43.4084 45.2253V54.7775H79.1579V45.2253H57.1877Z\",\n fill: \"#201515\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.487 14.8297C96.4797 14.8297 93.2136 15.434 90.6892 16.6429C88.3376 17.6963 86.3568 19.4321 85.0036 21.6249C83.7091 23.8321 82.8962 26.2883 82.6184 28.832L93.1602 30.3135C93.5415 28.0674 94.3042 26.4754 95.4482 25.5373C96.7486 24.5562 98.3511 24.0605 99.9783 24.136C102.118 24.136 103.67 24.7079 104.634 25.8519C105.59 26.9959 106.076 28.5803 106.076 30.6681V31.7091H95.9401C90.7807 31.7091 87.0742 32.8531 84.8206 35.1411C82.5669 37.429 81.442 40.4492 81.4458 44.2014C81.4458 48.0452 82.5707 50.9052 84.8206 52.7813C87.0704 54.6574 89.8999 55.5897 93.3089 55.5783C97.5379 55.5783 100.791 54.1235 103.067 51.214C104.412 49.426 105.372 47.3793 105.887 45.2024H106.27L107.723 54.7546H117.275V30.5651C117.275 25.5659 115.958 21.6936 113.323 18.948C110.688 16.2024 106.409 14.8297 100.487 14.8297ZM103.828 44.6475C102.312 45.9116 100.327 46.5408 97.8562 46.5408C95.8199 46.5408 94.4052 46.1843 93.6121 45.4712C93.2256 45.1338 92.9182 44.7155 92.7116 44.246C92.505 43.7764 92.4043 43.2671 92.4166 42.7543C92.3941 42.2706 92.4702 41.7874 92.6403 41.3341C92.8104 40.8808 93.071 40.4668 93.4062 40.1174C93.7687 39.7774 94.1964 39.5145 94.6633 39.3444C95.1303 39.1743 95.6269 39.1006 96.1231 39.1278H106.093V39.7856C106.113 40.7154 105.919 41.6374 105.527 42.4804C105.134 43.3234 104.553 44.0649 103.828 44.6475Z\",\n fill: \"#201515\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M175.035 15.7391H163.75V54.7833H175.035V15.7391Z\",\n fill: \"#201515\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M241.666 15.7391C238.478 15.7391 235.965 16.864 234.127 19.1139C232.808 20.7307 231.805 23.1197 231.119 26.2809H230.787L229.311 15.7391H219.673V54.7775H230.959V34.7578C230.959 32.2335 231.55 30.2982 232.732 28.9521C233.914 27.606 236.095 26.933 239.275 26.933H243.559V15.7391H241.666Z\",\n fill: \"#201515\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M208.473 17.0147C205.839 15.4474 202.515 14.6657 198.504 14.6695C192.189 14.6695 187.247 16.4675 183.678 20.0634C180.108 23.6593 178.324 28.6166 178.324 34.9352C178.233 38.7553 179.067 42.5407 180.755 45.9689C182.3 49.0238 184.706 51.5592 187.676 53.2618C190.665 54.9892 194.221 55.8548 198.344 55.8586C201.909 55.8586 204.887 55.3095 207.278 54.2113C209.526 53.225 211.483 51.6791 212.964 49.7211C214.373 47.7991 215.42 45.6359 216.052 43.3377L206.329 40.615C205.919 42.1094 205.131 43.4728 204.041 44.5732C202.942 45.6714 201.102 46.2206 198.521 46.2206C195.451 46.2206 193.163 45.3416 191.657 43.5837C190.564 42.3139 189.878 40.5006 189.575 38.1498H216.201C216.31 37.0515 216.367 36.1306 216.367 35.387V32.9561C216.431 29.6903 215.757 26.4522 214.394 23.4839C213.118 20.7799 211.054 18.5248 208.473 17.0147ZM198.178 23.9758C202.754 23.9758 205.348 26.2275 205.962 30.731H189.775C190.032 29.2284 190.655 27.8121 191.588 26.607C193.072 24.8491 195.268 23.972 198.178 23.9758Z\",\n fill: \"#201515\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M169.515 0.00366253C168.666 -0.0252113 167.82 0.116874 167.027 0.421484C166.234 0.726094 165.511 1.187 164.899 1.77682C164.297 2.3723 163.824 3.08658 163.512 3.87431C163.2 4.66204 163.055 5.50601 163.086 6.35275C163.056 7.20497 163.201 8.05433 163.514 8.84781C163.826 9.64129 164.299 10.3619 164.902 10.9646C165.505 11.5673 166.226 12.0392 167.02 12.3509C167.814 12.6626 168.663 12.8074 169.515 12.7762C170.362 12.8082 171.206 12.6635 171.994 12.3514C172.782 12.0392 173.496 11.5664 174.091 10.963C174.682 10.3534 175.142 9.63077 175.446 8.83849C175.75 8.04621 175.89 7.20067 175.859 6.35275C175.898 5.50985 175.761 4.66806 175.456 3.88115C175.151 3.09424 174.686 2.37951 174.09 1.78258C173.493 1.18565 172.779 0.719644 171.992 0.414327C171.206 0.109011 170.364 -0.0288946 169.521 0.00938803L169.515 0.00366253Z\",\n fill: \"#201515\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M146.201 14.6695C142.357 14.6695 139.268 15.8764 136.935 18.2902C135.207 20.0786 133.939 22.7479 133.131 26.2981H132.771L131.295 15.7563H121.657V66H132.942V45.3054H133.354C133.698 46.6852 134.181 48.0267 134.795 49.3093C135.75 51.3986 137.316 53.1496 139.286 54.3314C141.328 55.446 143.629 56.0005 145.955 55.9387C150.68 55.9387 154.277 54.0988 156.748 50.419C159.219 46.7392 160.455 41.6046 160.455 35.0153C160.455 28.6509 159.259 23.6689 156.869 20.0691C154.478 16.4694 150.922 14.6695 146.201 14.6695ZM147.345 42.9602C146.029 44.8668 143.97 45.8201 141.167 45.8201C140.012 45.8735 138.86 45.6507 137.808 45.1703C136.755 44.6898 135.832 43.9656 135.116 43.0574C133.655 41.2233 132.927 38.7122 132.931 35.5243V34.7807C132.931 31.5432 133.659 29.0646 135.116 27.3448C136.572 25.625 138.59 24.7747 141.167 24.7937C144.02 24.7937 146.092 25.6994 147.385 27.5107C148.678 29.322 149.324 31.8483 149.324 35.0896C149.332 38.4414 148.676 41.065 147.356 42.9602H147.345Z\",\n fill: \"#201515\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.0441 45.2253H0V54.789H39.0441V45.2253Z\",\n fill: \"#FF4F00\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZapierIcon);\nexport default __webpack_public_path__ + \"static/media/zapierIcon.d5c640d7.svg\";\nexport { ForwardRef as ReactComponent };","import { useState, useEffect } from 'react'\n\nimport { styled } from '@mui/system'\n\nimport { ProfileStatCard } from './ProfileStatCard'\nimport { ResponsesStatContent } from './ResponsesStatContent'\nimport { ValuableStatContent } from './ValuableStatContent'\nimport { ReattendStatContent } from './ReattendStatContent'\nimport { LocationStatContent } from './LocationStatContent'\n\nimport Api from '../../services/api'\n\nconst ProfileStatCardsWrapper = styled('div')(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fit, minmax(260px, 1fr))',\n gap: theme.spacing(2),\n marginBottom: theme.spacing(5),\n}))\n\nconst INITIAL_STATS_STATE = {\n events: [],\n totalResponses: {\n total: null,\n positives: null,\n negatives: null,\n id: null,\n },\n reattendBreakdown: {\n total_reattend_answers: null,\n d_yes: null,\n p_yes: null,\n p_no: null,\n d_no: null,\n id: null,\n }\n}\n\nconst PublicProfileStatisticsParent = ({ speaker }) => {\n const [statsData, setStatsData] = useState(INITIAL_STATS_STATE)\n const [isLoading, setIsLoading] = useState(true)\n\n useEffect(() => {\n const fetchStats = async () => {\n try {\n const res = await Api.getPublicProfileSection('stats', {\n public_profile: { shortlink: speaker?.shortlink },\n })\n\n if (!res.errors) {\n setStatsData({\n events: res.events || [],\n totalResponses: res.totalResponses || INITIAL_STATS_STATE.totalResponses,\n reattendBreakdown: res.reattendBreakdown || INITIAL_STATS_STATE.reattendBreakdown,\n })\n } else {\n throw res.errors\n }\n setIsLoading(false)\n } catch (err) {\n setIsLoading(false)\n }\n }\n\n if (speaker?.shortlink) {\n fetchStats()\n }\n }, [speaker?.shortlink])\n\n const locationBreakdown = () => {\n if (!statsData?.events) return\n\n const locationData = { totalEvents: 0, inPerson: 0, virtual: 0 }\n\n statsData.events.forEach((event) => {\n locationData.totalEvents += 1\n\n if (event.in_person) {\n return (locationData.inPerson += 1)\n }\n if (event.virtual) {\n return (locationData.virtual += 1)\n }\n // use in_person default value if both values are nil\n return (locationData.inPerson += 1)\n })\n\n return locationData\n }\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default PublicProfileStatisticsParent","import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\nimport LinearProgress, {\n linearProgressClasses,\n} from '@mui/material/LinearProgress'\n\nimport { ProfileSectionHeader } from './ProfileSectionHeader'\nimport { AttributesSkeleton } from './SkeletonLoaders'\n\nconst AttributesContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n maxWidth: '340px',\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(6),\n}))\n\nconst AttributeWrapper = styled('div')({\n display: 'grid',\n gridTemplateColumns: '92px 1fr 50px',\n alignItems: 'center',\n marginBottom: '1rem',\n})\n\nconst AttributeLabel = styled(Typography)({\n textTransform: 'capitalize',\n})\n\nconst AttributeProgressBar = styled(LinearProgress)(({ theme }) => ({\n height: '10px',\n borderRadius: '100px',\n [`&.${linearProgressClasses.colorPrimary}`]: {\n backgroundColor: theme.palette.neutral.extraLight,\n },\n [`& .${linearProgressClasses.bar}`]: {\n borderRadius: '10px',\n backgroundColor: theme.palette.secondary.main,\n },\n marginRight: '10px',\n}))\n\nconst PlaceHolderContainer = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(2.5),\n paddingBottom: theme.spacing(6),\n}))\n\nexport const ProfileAttributes = ({ speaker, engagementBreakdown, isLoading }) => {\n const ACTIONABLE = 'actionable'\n const ENGAGING = 'engaging'\n const INSPIRING = 'inspiring'\n const RELEVANT = 'relevant'\n const INTERACTIVE = 'interactive'\n\n const headerText = `Attendees say ${speaker?.name}'s talks are`\n\n const isValidLabel = (label) => {\n return !label?.includes('{{') && label?.trim().split(/\\s+/).length <= 2\n }\n\n const formatLabelFromLegacyKeywords = (content) => {\n if (content.includes(ACTIONABLE)) {\n return ACTIONABLE\n }\n\n if (content.includes(ENGAGING)) {\n return ENGAGING\n }\n\n if (content.includes(INSPIRING)) {\n return INSPIRING\n }\n\n if (content.includes(RELEVANT)) {\n return RELEVANT\n }\n\n if (content.includes(INTERACTIVE)) {\n return INTERACTIVE\n }\n\n return\n }\n\n const formatLabel = (label) => {\n let formattedLabel = formatLabelFromLegacyKeywords(label)\n\n if (!formattedLabel) {\n return label\n }\n\n return formattedLabel\n }\n\n const sortedEngagementBreakdown = engagementBreakdown\n .map((engagementStat, i) => {\n if (engagementStat.label) {\n return {\n ...engagementStat,\n label: formatLabel(engagementStat.label),\n }\n } else {\n return null\n }\n })\n .filter((engagementStat) =>\n isValidLabel(engagementStat?.label) ? { ...engagementStat } : null\n )\n .sort((a, b) => {\n const scoreA = a.answer_count * a.avg_value\n const scoreB = b.answer_count * b.avg_value\n\n return scoreB - scoreA // Sort in descending order based on the multiplied score\n })\n\n const makeBarValue = (engagementStatValue) => {\n if (!engagementStatValue) {\n return\n } else {\n // All the numbers are on a scale of 1-5, so need to adjust this for a scale of 100%\n return Number(parseFloat(engagementStatValue * 20).toFixed(1))\n }\n }\n\n const renderEngagementRow = (engagementType, index) => {\n const barValue = makeBarValue(engagementType.avg_value)\n return (\n \n {engagementType.label}\n \n {Math.round(barValue)}%\n \n )\n }\n\n const renderPlaceholder = () => {\n return (\n \n We're still gathering feedback for this profile!\n \n )\n }\n\n if (isLoading) {\n return \n }\n\n return (\n <>\n \n {sortedEngagementBreakdown?.length > 0 ? (\n \n {sortedEngagementBreakdown?.slice(0, 5)?.map((engagementType, i) => {\n return renderEngagementRow(engagementType, i)\n })}\n \n ) : (\n {renderPlaceholder()}\n )}\n \n )\n}\n","import { useEffect, useState } from 'react'\n\nimport Api from '../../services/api'\n\nimport { ProfileAttributes } from './ProfileAttributes'\n\nconst PublicProfileEngagementAttributes = ({ speaker }) => {\n const [engagementBreakdown, setEngagementBreakdown] = useState([])\n const [isLoading, setIsLoading] = useState(true)\n\n useEffect(() => {\n const fetchEngagementBreakdown = async () => {\n try {\n setIsLoading(true)\n const res = await Api.getPublicProfileSection('engagement_breakdown', {\n public_profile: { shortlink: speaker?.shortlink },\n })\n\n if (!res.errors) {\n setEngagementBreakdown(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n console.error(err)\n } finally {\n setIsLoading(false)\n }\n }\n\n if (speaker?.shortlink) {\n fetchEngagementBreakdown()\n }\n }, [speaker?.shortlink])\n\n return (\n \n )\n}\n\nexport default PublicProfileEngagementAttributes","import { useEffect, useContext, useState } from 'react'\nimport { useParams } from 'react-router-dom'\nimport { Helmet } from 'react-helmet'\nimport { Link } from 'react-router-dom'\n\nimport { styled } from '@mui/system'\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n DialogContentText,\n DialogActions,\n TextField,\n Button,\n} from '@mui/material'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport Api from '../../services/api'\nimport ProfileSpeakerInfo from './ProfileSpeakerInfo'\nimport ProfileEventList from './ProfileEventList'\nimport ProfileFeedbackList from './ProfileFeedbackList'\nimport ProfileBiography from './ProfileBiography'\nimport ProfileSettingsAlert from './ProfileSettingsAlert'\nimport ProfileHeader from './ProfileHeader'\nimport ProfileSpeechTopicList from './ProfileSpeechTopicList'\nimport ProfileMediaCarousel from './ProfileMediaCarousel'\nimport ProfileTagline from './ProfileTagline'\nimport ProfileFeedbackSummary from './ProfileFeedbackSummary'\nimport PublicProfileStatisticsParent from './PublicProfileStatisticsParent'\nimport PublicProfileEngagementAttributes from './PublicProfileEngagementAttributes'\n\nimport PageContainer from '../common/PageContainer'\n\nconst ProfileContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n padding: theme.spacing(3),\n backgroundColor: theme.palette.base.white,\n [theme.breakpoints.down('sm')]: {\n margin: theme.spacing(0, -3),\n },\n}))\n\nconst HorizontalLine = styled('hr')(({ theme }) => ({\n width: '100%',\n border: 'none',\n borderBottom: `1px solid ${theme.palette.neutral.extraLight}`,\n marginBottom: theme.spacing(6),\n}))\n\nconst INITIAL_SPEAKER_STATE = {\n avatar: null,\n id: null,\n isEventPlanner: null,\n biography: null,\n name: null,\n socialLinks: {\n instagram: null,\n twitter: null,\n youtube: null,\n linkedin: null,\n },\n shortlink: null,\n tagline: null,\n}\n\nconst PublicProfileParent = () => {\n const { authData, setNotification, showFullPageLoader, hideFullPageLoader } =\n useContext(AuthenticationContext)\n const [speaker, setSpeaker] = useState(INITIAL_SPEAKER_STATE)\n\n const [open, setOpen] = useState(true)\n const [formValues, setFormValues] = useState({ password: '' })\n const [authorized, setAuthorized] = useState(false)\n const [profileSettings, setProfileSettings] = useState(null)\n const [isLoadingSettings, setIsLoadingSettings] = useState(true)\n const [isLoadingSpeaker, setIsLoadingSpeaker] = useState(true)\n\n const { user } = authData\n\n const params = useParams()\n const { shortlink } = params\n\n const isProfileOwner = user?.id === speaker?.id && !user?.isAssociate\n\n const fetchSpeaker = async () => {\n try {\n setIsLoadingSpeaker(true)\n const res = await Api.getPublicProfileSection('speaker', {\n public_profile: { shortlink },\n })\n\n if (!res.errors) {\n setSpeaker(res)\n setIsLoadingSpeaker(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n } finally {\n setIsLoadingSpeaker(false)\n }\n }\n\n useEffect(() => {\n const loadProfileSettings = async () => {\n if (!shortlink) {\n return setNotification('Profile not found')\n }\n\n const reqParams = {\n public_profile: {\n shortlink: params.shortlink,\n },\n }\n\n try {\n const res = await Api.getPublicProfileSettings(reqParams)\n\n if (!res.errors) {\n setProfileSettings(res)\n setIsLoadingSettings(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoadingSettings(false)\n setNotification(err)\n }\n }\n\n loadProfileSettings()\n }, [shortlink, params.shortlink]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n if (!shortlink) return setNotification('Profile not found')\n\n if (profileSettings && !profileSettings?.password_protected) {\n fetchSpeaker()\n }\n }, [profileSettings]) // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleClose = () => {\n setOpen(false)\n }\n\n const handleInputChange = (e) => {\n const { name, value } = e.target\n setFormValues({\n ...formValues,\n [name]: value,\n })\n }\n\n const handlePasswordSubmit = async (e) => {\n e.preventDefault()\n const reqParams = {\n public_profile: {\n shortlink: params.shortlink,\n password: formValues.password,\n },\n }\n try {\n showFullPageLoader()\n const res = await Api.getPublicProtectedProfile(reqParams)\n if (!res.errors && res.authenticated) {\n hideFullPageLoader()\n setOpen(false)\n setAuthorized(true)\n await fetchSpeaker()\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n setNotification(err)\n }\n }\n\n const unauthenticated = () => !user?.id || user?.id !== speaker?.id\n\n const renderMetaTags = () => (\n \n \n \n )\n\n const renderProfilePasswordForm = () => (\n \n {renderMetaTags()}\n \n
    \n Enter Profile Password\n \n \n This Talkadot profile is password protected, please enter the\n password here.\n \n \n \n \n \n \n \n
    \n
    \n
    \n )\n\n const renderProfileSettingsHeader = () => {\n if (user?.id !== speaker?.id) return null\n\n const isPublic = user?.profileSettings?.is_public\n const title = 'Public Profile Visibility'\n const severity = isPublic ? 'warning' : 'info'\n const visibilityText = isPublic ? 'public' : 'only visible to you'\n const actionText = isPublic ? 'private' : 'public'\n\n return (\n \n Your profile is currently {visibilityText}. To make\n your profile {actionText}, toggle it to{' '}\n {isPublic ? 'Private' : 'Public'} in your{' '}\n Profile Settings on your{' '}\n Settings page.\n \n )\n }\n\n const renderProfileData = () => (\n \n {!profileSettings.search_indexed && renderMetaTags()}\n {renderProfileSettingsHeader()}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n\n const renderPrivateProfileAlert = () => (\n \n {renderMetaTags()}\n \n This profile is private.\n \n \n )\n\n const renderProfile = () => {\n if (isLoadingSettings) return null\n\n if (!profileSettings) return <>{renderMetaTags()}\n\n if (profileSettings.password_protected && !authorized) {\n return renderProfilePasswordForm()\n } else if (!profileSettings.is_public && unauthenticated()) {\n return renderPrivateProfileAlert()\n } else {\n return renderProfileData()\n }\n }\n\n return renderProfile()\n}\n\nexport default PublicProfileParent\n","import { useContext, useState, useEffect } from 'react'\nimport {\n AccountSettingsCard,\n AccountSettingsCardInner,\n AccountSettingsCardTitle,\n} from './AccountSettingsParent'\nimport { Notification } from '../common/Notification'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport {\n Elements,\n CardElement,\n useElements,\n useStripe,\n} from '@stripe/react-stripe-js'\nimport { loadStripe } from '@stripe/stripe-js'\nimport {\n Button,\n Typography,\n TextField,\n InputAdornment,\n Dialog,\n DialogContent,\n} from '@mui/material'\nimport { styled } from '@mui/system'\nimport PersonIcon from '@mui/icons-material/Person'\nimport { formatDate } from '../common/helpers'\n\nimport Api from '../../services/api'\nimport envConfig from '../../envConfig'\n\nconst stripePromise = loadStripe(envConfig.REACT_APP_STRIPE_P_KEY)\n\nconst PaymentFormContainer = styled('div')({\n width: '100%',\n button: {\n width: '100%',\n },\n '.MuiTypography-h5': {\n fontWeight: 'bold',\n marginBottom: '20px',\n },\n})\n\nconst CardNameInput = styled(TextField)({\n input: {\n fontSize: '14px !important',\n },\n svg: {\n fill: 'lightgray',\n },\n})\n\nconst CardInfoInput = styled('div')({\n marginTop: '20px',\n marginBottom: '20px',\n border: '1px solid lightgray',\n padding: '20px',\n marginBottom: '20px',\n borderRadius: '5px',\n})\n\nconst PaymentButton = styled(Button)({\n color: 'white',\n})\n\nconst BillingDataRow = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n gap: '10px',\n },\n}))\n\nconst BillingDataColumn = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n textAlign: 'left',\n})\n\nconst CheckoutForm = ({ toggleShowCreditCardForm }) => {\n const stripe = useStripe()\n const elements = useElements()\n const [cardName, setCardName] = useState()\n const [checkoutLoading, setCheckoutLoading] = useState(false)\n const [cardNameError, setCardNameError] = useState()\n const {\n setUserData,\n setNotification,\n showFullPageLoader,\n hideFullPageLoader,\n authData,\n } = useContext(AuthenticationContext)\n const { user } = authData\n\n const handleSubmit = async (e) => {\n e.preventDefault()\n\n // Dont allow double clicks\n if (checkoutLoading) {\n return false\n }\n\n if (!stripe || !elements) {\n setCheckoutLoading(false)\n return\n }\n\n if (!cardName) {\n setCheckoutLoading(false)\n return setCardNameError('Please fill out name on card')\n }\n\n setCheckoutLoading(true)\n showFullPageLoader('Hang Tight While We Update Your Payment Info!')\n\n const payload = await stripe.createPaymentMethod({\n type: 'card',\n card: elements.getElement(CardElement),\n billing_details: {\n name: cardName,\n },\n })\n\n if (payload.error) {\n setCheckoutLoading(false)\n hideFullPageLoader()\n return setNotification(payload.error)\n }\n\n try {\n const params = {\n user_payment_method: {\n stripe_card_info: {\n ...payload.paymentMethod,\n },\n },\n }\n\n const res = await Api.updatePaymentMethod(params, user.id)\n\n if (!res.errors) {\n hideFullPageLoader()\n toggleShowCreditCardForm(false)\n setUserData({ billingInfo: res })\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n setCheckoutLoading(false)\n return setNotification(err)\n }\n }\n\n return (\n \n \n Update Payment Information\n \n {\n setCardNameError(null)\n setCardName(e.target.value)\n }}\n type=\"text\"\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n \n \n \n handleSubmit(e)}\n disabled={checkoutLoading}>\n Update\n \n \n )\n}\n\nconst SubscriptionSourceParent = () => {\n const [showCreditCardForm, toggleShowCreditCardForm] = useState(false)\n const [canceledAtPeriodEnd, setCanceledAtPeriodEnd] = useState(false)\n\n const { authData } = useContext(AuthenticationContext)\n const { user } = authData\n const showPaymentInfo =\n !!user.membership.plan?.price > 0 &&\n user.billingInfo &&\n user.billingInfo.brand\n const { billingInfo } = user\n\n useEffect(() => {\n const fetchSubscriptionStatus = async () => {\n try {\n const res = await Api.getSubscriptionStatus()\n\n if (!res.errors) {\n setCanceledAtPeriodEnd(res.canceledAtPeriodEnd)\n } else {\n throw res.errors\n }\n } catch (err) {\n // Don't do anything with errors on this section.\n // Just catch them so it doesn't error out.\n }\n }\n\n fetchSubscriptionStatus()\n }, [user])\n\n const renderBillingError = () => {\n let errorText\n\n if (user.billingInfo.isExpired) {\n errorText = 'Your credit card has expired. Please update it'\n }\n\n if (user.billingInfo.paymentErrorMessage) {\n errorText =\n 'There was an issue charging your card. Please update your billing information or add a new card.'\n }\n\n if (errorText) {\n return (\n \n {errorText}\n \n )\n }\n }\n\n const renderNextBillingData = () => (\n \n {canceledAtPeriodEnd\n ? 'Subscription Cancelled. Current subscription active until '\n : 'Billing annually - Next Billing '}\n {user.membership.nextBillingDate}\n \n )\n\n return (\n \n {renderBillingError()}\n \n Billing Details\n \n \n \n \n \n Member Since:\n \n {formatDate(user.signUpDate)}\n \n {showPaymentInfo && (\n \n \n Subscription:\n \n {renderNextBillingData()}\n \n )}\n {showPaymentInfo && (\n \n \n Payment Method:\n \n \n {billingInfo?.brand} ending in {billingInfo?.last4} - exp{' '}\n {billingInfo?.expMonth}/{billingInfo?.expYear}{' '}\n \n toggleShowCreditCardForm(true)}\n variant=\"contained\"\n color=\"secondary\">\n Update\n \n \n )}\n \n \n toggleShowCreditCardForm(false)}>\n \n \n \n \n \n \n \n )\n}\n\nexport default SubscriptionSourceParent\n","import Select from 'react-select'\nimport { getCode, getNames } from 'country-list'\nimport { useTheme } from '@mui/material'\nimport { addAlpha } from '../../utils/color'\n\n// Step 1: Generate the countries array once\nconst countries = getNames().map((name) => ({\n label: name,\n value: getCode(name),\n flag: `https://flagcdn.com/w20/${getCode(name).toLowerCase()}.png`,\n}))\n\n// Step 2: Define prioritized country codes\nconst prioritizedCountryCodes = ['US', 'CA']\n\n// Step 3: Sort countries by code, prioritizing specified countries\nconst sortedCountries = countries.sort((a, b) => {\n const indexA = prioritizedCountryCodes.indexOf(a.value)\n const indexB = prioritizedCountryCodes.indexOf(b.value)\n\n if (indexA !== -1 && indexB === -1) return -1 // a is prioritized\n if (indexA === -1 && indexB !== -1) return 1 // b is prioritized\n if (indexA === -1 && indexB === -1) return a.label.localeCompare(b.label) // both are not prioritized, sort alphabetically\n return indexA - indexB // both are prioritized, keep order as defined in prioritizedCountryCodes\n})\n\nconst CountrySelect = ({ value, onChange }) => {\n const theme = useTheme()\n\n const customStyles = {\n control: (provided, state) => ({\n ...provided,\n minHeight: '44px',\n boxShadow: state.isFocused ? 'none' : provided.boxShadow,\n borderColor: state.isFocused\n ? theme.palette.neutral.semiLight\n : provided.borderColor,\n fontFamily: 'Figtree, sans-serif',\n '&:hover': {\n borderColor: state.isFocused\n ? theme.palette.neutral.semiLight\n : provided['&:hover'].borderColor,\n },\n }),\n option: (provided) => ({\n ...provided,\n display: 'flex',\n alignItems: 'center',\n fontFamily: 'Figtree, sans-serif',\n }),\n singleValue: (provided) => ({\n ...provided,\n display: 'flex',\n alignItems: 'center',\n }),\n placeholder: (provided) => ({\n ...provided,\n fontWeight: '400',\n color: addAlpha(theme.palette.neutral.main, 0.5),\n }),\n }\n\n const formatOptionLabel = ({ label, flag }) => (\n
    \n {label}\n {label}\n
    \n )\n\n return (\n country.value === value)}\n menuPlacement=\"auto\"\n menuPosition=\"fixed\"\n onChange={(selectedOption) =>\n onChange(selectedOption ? selectedOption.value : '')\n }\n />\n )\n}\n\nexport default CountrySelect\n","import { useState, useContext } from 'react'\nimport { styled, useTheme } from '@mui/system'\nimport {\n CardNumberElement,\n CardExpiryElement,\n CardCvcElement,\n useStripe,\n useElements,\n} from '@stripe/react-stripe-js'\n\nimport { Button, TextField, Typography } from '@mui/material'\n\nimport CountrySelect from '../common/CountrySelect'\n\nimport { ReactComponent as UpgradeIcon } from '../../icons/upgradeIcon.svg'\n\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { trackPurchase, trackConversion } from '../../services/metrics'\nimport { addAlpha } from '../../utils/color'\n\nconst FormContainer = styled('form')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n minWidth: '240px',\n}))\n\nconst FormInputsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2.5),\n width: '100%',\n}))\n\nconst FormFieldWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(0.5),\n width: '100%',\n}))\n\nconst MultiInputContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(2.5),\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n },\n}))\n\nconst InputLabel = styled(Typography)({\n fontWeight: '600',\n})\n\nconst InputWrapper = styled('div')(({ theme }) => ({\n border: `1px solid ${theme.palette.border.main}`,\n borderRadius: theme.shape.borderRadius.xxs,\n padding: theme.spacing(1.5, 2),\n width: '100%',\n}))\n\nconst StyledTextField = styled(TextField)(({ theme }) => ({\n input: {\n padding: theme.spacing(1.5, 2),\n '&::placeholder': {\n color: theme.palette.neutral.main,\n fontWeight: '400',\n },\n },\n '& .MuiOutlinedInput-root': {\n '& fieldset': {\n borderColor: theme.palette.border.main,\n borderRadius: theme.shape.borderRadius.xxs,\n borderWidth: 1,\n },\n '&.Mui-focused fieldset': {\n borderColor: theme.palette.neutral.semiLight,\n borderWidth: 1,\n },\n '&:hover': {\n fieldset: {\n borderColor: theme.palette.neutral.semiLight,\n },\n },\n },\n}))\n\nconst SubmitButton = styled(Button)(({ theme }) => ({\n color: theme.palette.base.white,\n fontSize: '1rem',\n marginTop: theme.spacing(6),\n marginBottom: theme.spacing(0.5),\n svg: {\n marginRight: theme.spacing(1),\n },\n}))\n\nconst TermsLink = styled('a')(({ theme }) => ({\n color: theme.palette.secondary.main,\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline',\n },\n}))\n\nconst CheckoutForm = ({ selectedPlan, isTrialing }) => {\n const stripe = useStripe()\n const elements = useElements()\n const theme = useTheme()\n\n const [cardName, setCardName] = useState('')\n const [cardNameError, setCardNameError] = useState(null)\n const [country, setCountry] = useState('')\n const [postalCode, setPostalCode] = useState('')\n\n const [checkoutLoading, setCheckoutLoading] = useState(false)\n\n const {\n showFullPageLoader,\n hideFullPageLoader,\n setNotification,\n toggleUpgradeModal,\n } = useContext(AuthenticationContext)\n\n const handleSubmit = async (e) => {\n e.preventDefault()\n\n // Dont allow double clicks\n if (checkoutLoading) {\n return false\n }\n\n if (!stripe || !elements) {\n setCheckoutLoading(false)\n return\n }\n\n if (!cardName) {\n setCheckoutLoading(false)\n return setCardNameError('Please fill out name on card')\n }\n\n const cardElement = elements.getElement(CardNumberElement)\n\n if (!cardElement) {\n return\n }\n\n setCheckoutLoading(true)\n showFullPageLoader('Hang Tight While We Upgrade Your Account!')\n\n const payload = await stripe.createPaymentMethod({\n type: 'card',\n card: cardElement,\n billing_details: {\n name: cardName,\n address: {\n country,\n postal_code: postalCode,\n },\n },\n })\n\n if (payload.error) {\n setCheckoutLoading(false)\n hideFullPageLoader()\n return setNotification(payload.error.message)\n }\n\n try {\n const params = {\n membership_plan_token: selectedPlan?.token,\n stripe_card_info: {\n ...payload.paymentMethod,\n },\n }\n\n const res = await Api.upgradePlan(params)\n\n if (!res.errors) {\n trackPurchase({\n plan: selectedPlan,\n value: selectedPlan?.price,\n // Note: the transaction_id is the charge_id from the payment_intent in latest_invoice returned from Stripe Subscription.create\n transactionId: res?.transaction_id,\n // Note: Don't send the rebate coupon if the user is not on a trial\n coupon: isTrialing ? selectedPlan?.rebate_coupon : '',\n })\n\n trackConversion({\n plan: selectedPlan?.name,\n value: selectedPlan?.price,\n })\n\n toggleUpgradeModal(false)\n setCheckoutLoading(false)\n hideFullPageLoader()\n\n // Note:\n // If payment is completed via the WelcomeModal we do not update the OnboardingInfo record to \"viewed_upgrade_info = true\",\n // instead we rely on the current plan type to handle the WelcomeModal render logic\n\n // Reload window to make sure data gets refreshed wherever they are\n return window.location.reload()\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n setCheckoutLoading(false)\n return setNotification(err)\n }\n }\n\n const stripeElementOptions = {\n style: {\n base: {\n fontFamily: 'Figtree, sans-serif',\n '::placeholder': {\n color: addAlpha(theme.palette.neutral.main, 0.5),\n fontWeight: '400',\n },\n },\n },\n }\n\n return (\n handleSubmit(e)} autoComplete=\"on\">\n \n \n Cardholder's Name\n {\n setCardNameError(null)\n setCardName(e.target.value)\n }}\n />\n \n \n Credit Card Number\n \n \n \n \n \n \n Expiration\n \n \n \n \n \n CVC\n \n \n \n \n \n \n \n Country\n \n \n \n Postal Code\n setPostalCode(e.target.value)}\n />\n \n \n \n \n \n Upgrade to {selectedPlan?.planType}!\n \n \n By continuing, you agree to the Talkadot{' '}\n \n terms and conditions\n \n \n \n )\n}\n\nexport default CheckoutForm\n","import { styled } from '@mui/system'\nimport { Typography, Tooltip, useMediaQuery, useTheme } from '@mui/material'\nimport moment from 'moment'\n\nimport { ReactComponent as CheckIcon } from '../../icons/checkMarkIcon_16x16.svg'\nimport { ReactComponent as EliteIcon } from '../../icons/membershipPlanIconElite.svg'\nimport { ReactComponent as ProIcon } from '../../icons/membershipPlanIconPro.svg'\nimport { ReactComponent as LiteIcon } from '../../icons/membershipPlanIconLite.svg'\nimport { ReactComponent as InfoIcon } from '../../icons/infoIcon_16x16.svg'\n\nimport { cleanBulletItem } from './helpers'\nimport { renderCurrency } from '../../utils/number'\n\nconst PlanDetailsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n minWidth: '280px',\n maxWidth: '550px',\n}))\n\nconst ContentWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n padding: theme.spacing(3.5, 6),\n backgroundColor: theme.palette.base.white,\n}))\n\nconst Header = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1.25),\n marginBottom: theme.spacing(3),\n}))\n\nconst FeatureBulletsContainer = styled('div')(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: '1fr 1fr',\n rowGap: theme.spacing(3),\n columnGap: theme.spacing(5),\n [theme.breakpoints.down('lg')]: {\n gridTemplateColumns: '1fr',\n },\n}))\n\nconst FeatureBullet = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'flex-start',\n svg: {\n width: '10px',\n minWidth: '10px',\n marginRight: theme.spacing(2.5),\n marginTop: '3px',\n path: {\n stroke: theme.palette.primary.main,\n },\n },\n}))\n\nconst PlanPriceSummary = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginTop: theme.spacing(3),\n padding: theme.spacing(1.5, 0),\n borderTop: `1px solid ${theme.palette.border.main}`,\n borderBottom: `1px solid ${theme.palette.border.main}`,\n}))\n\nconst PlanNameWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n [theme.breakpoints.down('lg')]: {\n flexDirection: 'column',\n alignItems: 'flex-start',\n },\n}))\n\nconst ProRateFootnote = styled(Typography)({\n textAlign: 'end',\n})\n\nconst ProRatedTooltip = styled(({ className, ...props }) => (\n \n))(({ theme }) => ({\n [`& .MuiTooltip-tooltip`]: {\n backgroundColor: theme.palette.primary.lightest,\n padding: '15px',\n border: `1px solid ${theme.palette.base.black}`,\n },\n}))\n\nconst ProRatedIcon = styled(InfoIcon)(({ theme }) => ({\n fill: theme.palette.base.black,\n height: '20px',\n width: '20px',\n}))\n\nconst PlanDetails = ({\n selectedPlan,\n upgradingPaidPlan,\n isTrialing,\n nextBillingDate,\n}) => {\n const theme = useTheme()\n const belowLargeScreen = useMediaQuery(theme.breakpoints.down('lg'))\n\n const planIcon = () => {\n switch (selectedPlan?.name) {\n case 'Talkadot Lite':\n return \n case 'Talkadot Pro':\n return \n case 'Talkadot Elite':\n return \n default:\n return \n }\n }\n\n const splitFeatureBullets = () => {\n const featureBullets = selectedPlan?.featureBullets || []\n const midIndex = Math.ceil(featureBullets.length / 2)\n const firstColumn = featureBullets.slice(0, midIndex)\n const secondColumn = featureBullets.slice(midIndex)\n return { featureBullets, firstColumn, secondColumn }\n }\n\n const { featureBullets, firstColumn, secondColumn } = splitFeatureBullets()\n\n // allows multiple columns of feature bullets where adjacent bullets are from different columns\n // but still maintain a consistent grid cell height between columns\n const interLeavedFeatureBullets = () => {\n // insert a bullet from the second column after every bullet in the first column\n const interLeavedBullets = firstColumn.reduce((acc, bullet, i) => {\n acc.push(bullet)\n if (secondColumn[i]) {\n acc.push(secondColumn[i])\n }\n return acc\n }, [])\n return interLeavedBullets\n }\n\n const bullets = belowLargeScreen\n ? featureBullets\n : interLeavedFeatureBullets()\n\n let annualPrice = selectedPlan?.price\n let monthlyPrice = selectedPlan?.price / 12\n let proratedPriceAdjusted = null\n\n if (upgradingPaidPlan && selectedPlan.proratedPrice) {\n annualPrice = selectedPlan.proratedPrice\n proratedPriceAdjusted = selectedPlan.price\n }\n\n if (isTrialing && selectedPlan?.hasOneTimeDiscount) {\n annualPrice = selectedPlan?.discountedPrice\n monthlyPrice = selectedPlan?.discountedPrice / 12\n }\n\n if (\n isTrialing &&\n (selectedPlan?.hasRecurringDiscount || selectedPlan?.hasImpliedDiscount)\n ) {\n annualPrice = selectedPlan?.discountedPrice\n monthlyPrice = selectedPlan?.discountedPrice / 12\n }\n\n const showProRatedTooltip = upgradingPaidPlan && selectedPlan.proratedPrice\n\n const makeTooltipTitle = () => (\n <>\n \n

    \n Explaining the amount you are paying today:\n

    \n

    \n The amount you're paying today is the per day cost of the new plan\n remaining in your billing cycle minus what you have already paid on\n your current plan for those days.\n

    \n

    \n We calculate this by taking the annual price of the new plan ($\n {selectedPlan?.price}), dividing it by 365 to get the daily rate, and\n then multiplying by the number of days left until your renewal date.\n From this amount, we subtract what you've already paid towards your\n current plan for the same period.\n

    \n

    \n This means you're only paying the difference for the upgrade during\n the remaining time of your current membership year.\n

    \n

    \n At your next renewal, your membership will renew at the full annual\n price of the new plan.\n

    \n
    \n \n )\n\n return (\n \n \n
    \n {planIcon()}\n \n {selectedPlan.planType} Plan Details\n \n
    \n \n {bullets.map((item, i) => (\n \n \n {cleanBulletItem(item)}\n \n ))}\n \n \n \n {`${selectedPlan.billingFrequency} ${selectedPlan.planType} plan`}\n {selectedPlan.billingFrequency === 'Annual' && (\n \n ({renderCurrency(monthlyPrice)} /month paid yearly)\n \n )}\n \n \n ${annualPrice}\n {proratedPriceAdjusted && ' today'}\n {showProRatedTooltip && (\n \n \n \n )}\n \n \n {proratedPriceAdjusted && (\n \n {`$${proratedPriceAdjusted} when your plan renews ${moment(\n nextBillingDate\n ).format('MMMM D, YYYY')}`}\n \n )}\n
    \n
    \n )\n}\n\nexport default PlanDetails\n","import { useContext, useEffect, useState } from 'react'\nimport { loadStripe } from '@stripe/stripe-js'\nimport { Elements } from '@stripe/react-stripe-js'\nimport { styled } from '@mui/system'\nimport { Button, Typography, CircularProgress } from '@mui/material'\n\nimport Api from '../../services/api'\nimport envConfig from '../../envConfig'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nimport { ReactComponent as ArrowIcon } from '../../icons/arrowLeft.svg'\nimport { ReactComponent as UpgradeIcon } from '../../icons/upgradeIcon.svg'\n\nimport {\n AccountSettingsCard,\n AccountSettingsCardInner,\n AccountSettingsCardColumn,\n} from '../accountSettings/AccountSettingsParent'\n\nimport CheckoutForm from './CheckoutForm'\nimport PricingGrid from './PricingGrid'\nimport PlanDetails from './PlanDetails'\nimport { trackViewedUpgrades } from '../../services/metrics'\n\nimport './Payments.scss'\n\nconst UpgradeContainerPlans = styled('div')({\n display: 'grid',\n})\n\nconst PricingGridContainer = styled('div')(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fit, minmax(200px, 320px))',\n gap: theme.spacing(4.5),\n justifyContent: 'center',\n}))\n\nconst Container = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n})\n\nconst UpgradeContainerCheckout = styled('div')(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: 'minmax(240px, 472px) 1fr',\n gap: theme.spacing(4.5),\n [theme.breakpoints.down('md')]: {\n gridTemplateColumns: '1fr',\n },\n}))\n\nconst FlexContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n [theme.breakpoints.down('md')]: {\n alignItems: 'center',\n },\n}))\n\nconst CheckoutFormContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n padding: theme.spacing(3),\n backgroundColor: theme.palette.base.white,\n maxWidth: '472px',\n minWidth: '288px',\n}))\n\nconst BackButton = styled(Button)(({ theme }) => ({\n marginTop: theme.spacing(3),\n marginBottom: theme.spacing(5),\n color: theme.palette.neutral.semiLight,\n border: `1px solid ${theme.palette.border.main}`,\n svg: {\n marginRight: theme.spacing(1),\n path: {\n stroke: theme.palette.neutral.semiLight,\n },\n },\n '&:hover': {\n backgroundColor: theme.palette.base.white,\n },\n}))\n\nconst FormHeader = styled(Typography)(({ theme }) => ({\n marginBottom: theme.spacing(4),\n}))\n\nconst UpgradeButton = styled(Button)(({ theme }) => ({\n color: theme.palette.base.white,\n fontSize: '1rem',\n marginBottom: theme.spacing(1),\n svg: {\n marginRight: theme.spacing(1),\n },\n}))\n\nconst StyledLink = styled('a')(({ theme }) => ({\n color: theme.palette.secondary.main,\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline',\n },\n}))\n\nconst stripePromise = loadStripe(envConfig.REACT_APP_STRIPE_P_KEY)\n\nconst UpgradeParent = () => {\n const [plansLoading, setPlansLoading] = useState(false)\n const [plans, setPlans] = useState([])\n const [checkoutLoading, setCheckoutLoading] = useState(false)\n const [upgradingPaidPlan, setUpgradingPaidPlan] = useState(false)\n const [currentPlan, setCurrentPlan] = useState({})\n const [selectedPlan, setSelectedPlan] = useState()\n const {\n toggleUpgradeModal,\n setNotification,\n showFullPageLoader,\n hideFullPageLoader,\n authData,\n } = useContext(AuthenticationContext)\n const {\n user,\n user: {\n membership: {\n isTrialing,\n subscribedWhileTrialing,\n trialDaysRemaining,\n nextBillingDate,\n },\n },\n permissionRequirements,\n } = authData\n\n useEffect(() => {\n const getUpgrades = async () => {\n try {\n setPlansLoading(true)\n const res = await Api.getAvailableUpgrades({\n permissionRequirements,\n })\n\n if (!res.errors) {\n setPlans(res.availablePlans)\n setCurrentPlan(res.currentPlan)\n setUpgradingPaidPlan(res.upgradingWhileSubscribed)\n setPlansLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setPlansLoading(false)\n setNotification(err)\n }\n }\n\n trackViewedUpgrades()\n getUpgrades()\n }, [])\n\n const renderUpgradePlans = () => {\n return plansLoading ? (\n \n ) : (\n \n \n \n \n \n {plans\n .sort(\n (a, b) => parseFloat(b.planTier) - parseFloat(a.planTier)\n )\n .map((plan, i) => {\n return (\n \n )\n })}\n \n \n \n \n \n )\n }\n\n const handleSubmitUpgrade = async (e) => {\n e.preventDefault()\n\n // Dont allow double clicks\n if (checkoutLoading) {\n return false\n }\n\n setCheckoutLoading(true)\n showFullPageLoader('Hang Tight While We Upgrade Your Account!')\n\n try {\n const params = {\n membership_plan_token: selectedPlan?.token,\n }\n\n const res = await Api.upgradePaidPlan(params)\n\n if (!res.errors) {\n toggleUpgradeModal(false)\n setCheckoutLoading(false)\n hideFullPageLoader()\n\n // Reload window to make sure data gets refreshed wherever they are\n return window.location.reload()\n } else {\n throw res.errors\n }\n } catch (err) {\n hideFullPageLoader()\n setCheckoutLoading(false)\n return setNotification(err)\n }\n }\n\n const renderUpgradeCheckoutForm = () => {\n return (\n <>\n handleSubmitUpgrade(e)}\n disabled={checkoutLoading}>\n \n Upgrade to {selectedPlan?.planType}!\n \n \n Questions? Check out our{' '}\n \n FAQ\n {' '}\n or reach out any time to{' '}\n \n hello@talkadot.com\n \n \n \n )\n }\n\n const renderCheckout = () => {\n return (\n \n \n \n \n
    \n setSelectedPlan(null)}>\n \n Back to all plans\n \n
    \n \n Join the Fam: Upgrade to {selectedPlan?.planType}\n \n {upgradingPaidPlan ? (\n renderUpgradeCheckoutForm()\n ) : (\n \n \n \n )}\n
    \n
    \n \n
    \n
    \n )\n }\n\n return selectedPlan ? renderCheckout() : renderUpgradePlans()\n}\n\nexport default UpgradeParent\n","import { useContext, useEffect } from 'react'\n\nimport SubscriptionSourceParent from './SubscriptionSourceParent'\nimport UpgradeParent from '../payments/UpgradeParent'\n\nimport PageContainer from '../common/PageContainer'\nimport PageHeader from '../common/PageHeader'\nimport WebinarAlert from '../helpCenter/WebinarAlert'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nimport useCustomerIo from '../../services/customerio'\n\nconst BillingParent = () => {\n const { authData } = useContext(AuthenticationContext)\n const { user } = authData\n const { viewedPricingPage } = useCustomerIo()\n\n useEffect(() => {\n viewedPricingPage()\n }, [])\n\n return (\n \n \n \n {/* only show this section if the speaker is on a paid plan at the moment.\n May need to change this when we handle downgrading / inactive speakers */}\n {!!user.membership.plan?.price > 0 && }\n \n \n )\n}\n\nexport default BillingParent\n","import { useState } from 'react'\nimport { handleCopy } from '../common/helpers'\nimport {\n Typography,\n Tooltip,\n Chip,\n Button,\n Alert,\n CircularProgress,\n} from '@mui/material'\nimport { ReactMultiEmail, isEmail } from 'react-multi-email'\nimport { styled } from '@mui/system'\nimport ContentCopyIcon from '@mui/icons-material/ContentCopy'\nimport envConfig from '../../envConfig'\nimport Api from '../../services/api'\nimport 'react-multi-email/dist/style.css'\n\nconst InvitationLink = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: '5px',\n color: theme.palette.secondary.main,\n '&:hover': {\n cursor: 'pointer',\n textDecoration: 'underline',\n },\n}))\n\nconst EmailChip = styled(Chip)(({ theme }) => ({\n backgroundColor: theme.palette.secondary.extraLight,\n borderRadius: '0px',\n margin: '7px',\n}))\n\nconst InvitationActionContainer = styled('div')({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginTop: '15px',\n})\n\nconst EmailAlert = styled(Alert)({\n marginBottom: '10px',\n})\n\nconst GroupInviteParent = ({ group, setPendingMembers, setGroupMembers, setParentComponentLoading }) => {\n const [copied, setCopied] = useState(false)\n const [emails, setEmails] = useState([])\n const [focused, setFocused] = useState(false)\n const [isLoading, setIsLoading] = useState(false)\n const [errorText, setErrorText] = useState(null)\n\n const invitationLink = `${envConfig.REACT_APP_CLIENT_ENDPOINT}/accept-group-invitation?git=${group?.invitation_token}`\n\n const handleCopyInvitation = () => {\n setCopied(true)\n handleCopy(invitationLink)\n\n setTimeout(() => {\n setCopied(false)\n }, 2000)\n }\n\n const handleSendInvitations = async () => {\n setErrorText(null)\n\n const validatedEmails = emails.filter((email) => {\n return isEmail(email)\n })\n\n if (!validatedEmails.length) {\n return setErrorText('Enter some valid emails to send invitations.')\n }\n\n try {\n setIsLoading(true)\n setParentComponentLoading(true)\n\n const reqParams = {\n group_invitation: {\n emails: validatedEmails,\n group_id: group.id,\n },\n }\n\n const res = await Api.sendGroupInvitations(reqParams)\n\n if (!res.errors) {\n setPendingMembers(res.invitations)\n setGroupMembers(res.members)\n setEmails([])\n setParentComponentLoading(false)\n setIsLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setParentComponentLoading(false)\n setIsLoading(false)\n setErrorText(\n 'Sorry, something went wrong sending these invitations. Please double check the emails you are sending to. If this problem persists, please contact support at hello@talkadot.com'\n )\n }\n }\n\n return (\n <>\n {errorText && {errorText}}\n
    \n {\n if (errorText) {\n setErrorText(null)\n }\n setEmails(_emails)\n }}\n focused={focused}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n style={{ height: '125px', overflow: 'scroll' }}\n placeholder=\"Enter emails here ...\"\n getLabel={(email, index, removeEmail) => {\n return (\n removeEmail(index)} />\n )\n }}\n />\n {' '}\n \n \n \n \n Copy invite link to {group?.name}\n \n \n \n {isLoading ? (\n \n ) : (\n 'Add to Chapter'\n )}\n \n \n \n )\n}\n\nexport default GroupInviteParent\n","import { useEffect, useState, useContext } from 'react'\nimport { styled } from '@mui/system'\nimport {\n Avatar,\n MenuItem,\n List,\n ListItem,\n ListItemAvatar,\n ListItemText,\n Select,\n FormControl,\n Divider,\n Typography,\n} from '@mui/material'\nimport { ClickAwayListener } from '@mui/base'\nimport ConfirmDialog from '../common/ConfirmDialog'\nimport GroupInviteParent from './GroupInviteParent'\n\nimport { IoPencilOutline } from 'react-icons/io5'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nimport Api from '../../services/api'\n\nconst UserAvatar = styled(Avatar)({\n // Note: the image width and height here is a solution to\n // prevent a small black border to show up on the left and top\n // of the image in certain occassions.\n img: {\n width: '102%',\n height: '102%',\n },\n marginRight: '1rem',\n})\n\nconst ClickableText = styled('div')({\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n})\n\nconst EditIcon = styled(IoPencilOutline)({\n marginLeft: '0.5rem',\n})\n\nconst StyledMenuItem = styled(MenuItem)(({ theme }) => ({\n '&:hover, &.Mui-focusVisible': {\n backgroundColor: theme.palette.tertiary.extraLight,\n },\n '&.Mui-selected': {\n backgroundColor: `${theme.palette.secondary.extraLight} !important`,\n },\n}))\n\nconst PendingInvitationListItem = ({ invitation }) => {\n return (\n \n {' '}\n \n \n \n \n {invitation.first_name\n ? `${invitation.first_name} ${invitation.last_name}`\n : invitation.email}\n \n \n )\n}\n\nconst GroupMembersListItem = ({\n currentUser,\n user,\n handleRemoveUserClick,\n handleUpdateUserMembership,\n}) => {\n const [editingRole, setEditingRole] = useState(false)\n const [role, setRole] = useState(user.role)\n const [selectOpen, setSelectOpen] = useState(false)\n\n useEffect(() => {\n setRole(user.role)\n }, [user.role])\n\n const handleClickAway = (e) => {\n if (!selectOpen) {\n setEditingRole(false)\n }\n }\n\n const renderRoleField = () => {\n if (editingRole) {\n return (\n \n handleClickAway(e)}>\n \n setSelectOpen(true)}\n onClose={() => setSelectOpen(false)}\n onChange={(e) => {\n handleUpdateUserMembership({\n setting: 'role',\n value: e.target.value,\n userId: user.user_id,\n })\n }}>\n {/* NOTE: should you be able to have multiple owners? */}\n {/* owner */}\n manager\n viewer\n \n handleRemoveUserClick(user)}>\n \n \n \n \n \n \n )\n } else if (role !== 'owner' && currentUser.id !== user.user_id) {\n return (\n setEditingRole(true)} centered>\n \n {role === 'member' ? 'viewer' : role}\n \n \n \n )\n } else {\n return {role}\n }\n }\n\n return (\n \n \n \n \n \n {user.email} - {user.first_name} {user.last_name}\n \n \n )\n}\n\nconst initialConfirmProps = {\n title: '',\n message: '',\n onConfirm: () => {},\n}\n\nconst ManageGroupMembershipsParent = ({ group }) => {\n const [groupMembers, setGroupMembers] = useState([])\n const [pendingMembers, setPendingMembers] = useState([])\n const [loading, setLoading] = useState(false)\n const {\n setNotification,\n authData: { user: currentUser },\n } = useContext(AuthenticationContext)\n const [confirmOpen, setConfirmOpen] = useState(false)\n const [confirmProps, setConfirmProps] = useState(initialConfirmProps)\n\n const handleRemoveFromGroup = async (id) => {\n try {\n const params = {\n group_membership: {\n group_id: group.id,\n user_id: id,\n },\n }\n const res = await Api.removeUserFromGroup(params)\n if (!res.errors) {\n setNotification('User removed from group.', 'success')\n setGroupMembers(\n groupMembers.filter((groupMember) => groupMember.user_id != id)\n )\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const handleRemoveUserClick = (groupMember) => {\n setConfirmProps({\n title: 'Remove User from Chapter?',\n message: 'Are you sure you want to remove this user from the group?',\n onConfirm: () => handleRemoveFromGroup(groupMember.user_id),\n })\n\n setConfirmOpen(true)\n }\n\n const handleUpdateUserMembership = async ({ setting, value, userId }) => {\n try {\n // TODO: add loading state\n // setLoading(true)\n\n const params = {\n group_membership: {\n user_id: userId,\n group_id: group.id,\n [setting]: value,\n },\n }\n\n const res = await Api.updateUserMembership(params)\n if (!res.errors) {\n setNotification('Chapter Membership updated successfully', 'success')\n setGroupMembers(res)\n // setLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n // setLoading(false)\n setNotification(err)\n }\n }\n\n useEffect(() => {\n const fetchMembers = async () => {\n try {\n setLoading(true)\n const params = {\n group_membership: {\n group_id: group.id,\n },\n }\n\n const res = await Api.getAllGroupMembers(params)\n\n if (!res.errors) {\n setGroupMembers(res)\n setLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setLoading(false)\n setNotification(err)\n }\n }\n\n const fetchPendingInvitations = async () => {\n try {\n setLoading(true)\n const params = {\n group_invitation: {\n group_id: group.id,\n },\n }\n\n const res = await Api.getAllPendingInvitations(params)\n\n if (!res.errors) {\n setPendingMembers(res)\n setLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setLoading(false)\n setNotification(err)\n }\n }\n\n fetchPendingInvitations()\n fetchMembers()\n }, [group])\n\n return (\n <>\n \n
    \n \n
    \n People With Access\n \n {groupMembers.map((member, i) => {\n return (\n \n )\n })}\n \n {confirmProps.message}\n \n \n
    \n \n
    \n \n Pending Members - Need to Join Talkadot\n \n \n {pendingMembers.map((member, i) => {\n return \n })}\n \n \n )\n}\n\nexport default ManageGroupMembershipsParent\n","import { useState } from 'react'\nimport { styled } from '@mui/system'\nimport {\n TableRow,\n IconButton,\n Menu,\n MenuItem,\n ListItemIcon,\n ListItemText,\n Dialog,\n DialogContent,\n DialogTitle,\n Typography,\n} from '@mui/material'\nimport ManageGroupMembershipsParent from './ManageGroupMembershipsParent'\n\nimport {\n IoEllipsisHorizontal,\n IoTrashOutline,\n IoLogOutOutline,\n IoPencilOutline,\n IoEyeOutline,\n IoPeopleCircleOutline,\n} from 'react-icons/io5'\n\nimport { StyledTableCell } from './GroupsList'\n\nconst StyledTableRow = styled(TableRow, {\n shouldForwardProp: (prop) => prop !== 'role',\n})(({ theme, role }) => ({\n cursor: role === 'member' ? 'default' : 'pointer',\n '&:hover': {\n backgroundColor: theme.palette.tertiary.extraLight,\n },\n}))\n\nconst StyledListItemText = styled(ListItemText)({\n span: {\n fontFamily: 'Figtree, sans-serif',\n },\n})\n\nconst GroupsListRow = ({\n group,\n handleViewGroup,\n handleEditGroup,\n handleDeleteGroup,\n handleLeaveGroup,\n handleGroupSettings,\n}) => {\n const [anchorEl, setAnchorEl] = useState(null)\n const [manageMembersOpen, setManageMembersOpen] = useState(false)\n\n const handleOpenDropdown = (e) => {\n setAnchorEl(e.currentTarget)\n }\n\n const handleCloseDropdown = () => {\n setAnchorEl(null)\n }\n const renderMenuItems = (group) => {\n switch (group.role) {\n case 'owner':\n return (\n
    \n handleViewGroup(group.id)}>\n \n \n \n View Chapter\n \n handleEditGroup(group)}>\n \n \n \n Edit Chapter\n \n setManageMembersOpen(true)}>\n \n \n \n Manage Members\n \n handleDeleteGroup(group.id)}>\n \n \n \n Delete Chapter\n \n
    \n )\n case 'manager':\n return (\n
    \n handleViewGroup(group.id)}>\n \n \n \n View Chapter\n \n setManageMembersOpen(true)}>\n \n \n \n Manage Members\n \n handleLeaveGroup(group.id)}>\n \n \n \n Leave Chapter\n \n
    \n )\n case 'member':\n return (\n
    \n handleViewGroup(group.id)}>\n \n \n \n View Chapter\n \n handleLeaveGroup(group.id)}>\n \n \n \n Leave Chapter\n \n
    \n )\n default:\n return null\n }\n }\n return (\n \n handleViewGroup(group.id)}>\n {group.name}\n \n handleViewGroup(group.id)}>\n {group.description}\n \n handleViewGroup(group.id)}>\n {group.role}\n \n \n \n \n \n \n {renderMenuItems(group)}\n \n \n setManageMembersOpen(false)}>\n \n \n Add New Members For {group?.name}\n \n \n \n \n \n \n \n )\n}\n\nexport default GroupsListRow\n","import { useState } from 'react'\nimport { styled } from '@mui/system'\nimport {\n TableContainer,\n Table,\n TableHead,\n TableBody,\n TableRow,\n TableCell,\n Paper,\n} from '@mui/material'\n\nimport history from '../../routes/history'\n\nimport GroupsListRow from './GroupsListRow'\nimport ConfirmDialog from '../common/ConfirmDialog'\nimport { device } from '../../responsive'\n\nexport const StyledTableContainer = styled(TableContainer)({\n marginTop: '20px',\n})\n\nexport const StyledTableHead = styled(TableHead)(({ theme }) => ({\n backgroundColor: theme.palette.secondary.light,\n th: {\n fontWeight: 'bold',\n },\n}))\n\nexport const StyledTableCell = styled(TableCell, {\n shouldForwardProp: (prop) => prop !== 'lg' && prop !== 'mobile',\n})(({ lg, mobile }) => ({\n width: lg ? '40%' : '10%',\n fontFamily: 'Figtree, sans-serif',\n [`@media ${device.mobile}`]: {\n width: lg ? '80%' : '10%',\n display: mobile ? 'table-cell' : 'none',\n },\n}))\n\nconst initialConfirmProps = {\n title: '',\n message: '',\n onConfirm: () => {},\n}\n\nconst GroupsList = ({\n groups,\n groupsLoading,\n setGroup,\n setOpen,\n setSettingsOpen,\n handleDeleteGroup,\n handleRemoveFromGroup,\n}) => {\n const [confirmOpen, setConfirmOpen] = useState(false)\n const [confirmProps, setConfirmProps] = useState(initialConfirmProps)\n\n const handleLeaveGroupClick = (groupId) => {\n setConfirmProps({\n title: 'Leave Chapter?',\n message: 'Are you sure you want to leave this Chapter?',\n onConfirm: () => handleRemoveFromGroup(groupId),\n })\n\n setConfirmOpen(true)\n }\n\n const handleDeleteGroupClick = (groupId) => {\n setConfirmProps({\n title: 'Delete Chapter?',\n message: 'Are you sure you want to delete this Chapter?',\n onConfirm: () => handleDeleteGroup(groupId),\n })\n\n setConfirmOpen(true)\n }\n\n const handleEditGroup = (group) => {\n setGroup(group)\n setOpen(true)\n }\n\n const handleViewGroup = (groupId) => {\n const group = groups.find((group) => group.id === groupId)\n\n return history.push(`/groups/${groupId}/events`)\n }\n\n const handleOpenGroupSettings = (group) => {\n setGroup(group)\n setSettingsOpen(true)\n }\n\n const renderTableRows = () => {\n if (!groups || groups.length === 0) {\n return (\n \n No chapters found\n \n )\n }\n\n return groups.map((group) => {\n return (\n \n )\n })\n }\n\n if (groupsLoading) {\n return
    Loading...
    \n }\n\n return (\n \n \n \n \n \n Name\n \n Description\n Role\n \n Actions\n \n \n \n {renderTableRows()}\n
    \n \n {confirmProps.message}\n \n
    \n )\n}\n\nexport default GroupsList\n","import { useState, useContext } from 'react'\n\nimport { styled } from '@mui/system'\nimport {\n Button,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogContentText,\n DialogActions,\n TextField,\n} from '@mui/material'\nimport LoadingButton from '@mui/lab/LoadingButton'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { GroupContext } from './groupContext'\nimport Api from '../../services/api'\n\nimport GroupsList from './GroupsList'\nimport PageContainer from '../common/PageContainer'\nimport FormSection from '../common/FormSection'\n\nconst GroupsContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n padding: '1rem',\n fontFamily: 'Figtree, sans-serif',\n})\n\nexport const ProfileStatCardsWrapper = styled('div')({\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fit, minmax(295px, 1fr))',\n gap: '40px',\n marginTop: '40px',\n marginBottom: '50px',\n fontFamily: 'Sora, sans-serif',\n})\n\nconst HeaderContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'canCreateGroup',\n})(({ canCreateGroup }) => ({\n display: 'grid',\n gridTemplateColumns: canCreateGroup ? '1fr 1fr' : '1fr',\n}))\n\nconst HeaderTextWrapper = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n})\n\nconst HeaderText = styled('div')({\n textAlign: 'left',\n fontSize: '1.5rem',\n fontWeight: 500,\n marginBottom: '1.25rem',\n})\n\nconst ButtonWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'flex-end',\n justifyContent: 'flex-end',\n button: {\n textTransform: 'none',\n fontFamily: 'Figtree, sans-serif',\n fontWeight: 'bold',\n color: theme.palette.base.white,\n },\n span: {\n marginLeft: '1rem',\n },\n}))\n\nconst initialGroupState = {\n id: null,\n name: '',\n description: '',\n shortlink: null,\n retain_report_access: false,\n}\n\nconst ChapterGroupsParent = () => {\n const { setNotification, authData } = useContext(AuthenticationContext)\n const {\n groupState: { groups },\n setGroups,\n } = useContext(GroupContext)\n const [loading, setLoading] = useState(false)\n const [open, setOpen] = useState(false)\n const [group, setGroup] = useState(initialGroupState)\n\n const { user } = authData\n\n const handleClose = () => {\n setOpen(false)\n // timeout to allow the modal to close before resetting the group state\n setTimeout(() => {\n setGroup(initialGroupState)\n }, 100)\n }\n\n const handleInputChange = (e) => {\n const { name, value } = e.target\n setGroup({\n ...group,\n [name]: value,\n })\n }\n\n const handleApiRequest = async (reqParams) => {\n try {\n setLoading(true)\n if (group?.id) {\n const res = await Api.updateGroup(group.id, reqParams)\n if (!res.errors) {\n setNotification('Chapter updated successfully', 'success')\n setLoading(false)\n setGroup(res)\n setGroups(groups.map((g) => (g.id === res.id ? res : g)))\n // NOTE: closing the modal here feels weird when toggling the report retention switch\n // setOpen(false)\n } else {\n throw res.errors\n }\n } else {\n if (reqParams.group.name) {\n const res = await Api.createGroup(reqParams)\n if (!res.errors) {\n setGroups([...groups, res])\n setLoading(false)\n setOpen(false)\n } else {\n throw res.errors\n }\n }\n }\n } catch (err) {\n setLoading(false)\n setNotification(err)\n }\n }\n\n const handleGroupSubmit = async (e) => {\n e.preventDefault()\n const reqParams = {\n group: {\n name: group.name,\n description: group.description,\n retain_report_access: group.retain_report_access,\n shortlink: group.shortlink, // ignored by api on update\n },\n }\n handleApiRequest(reqParams)\n }\n\n const handleDeleteGroup = async (groupId) => {\n try {\n const res = await Api.deleteGroup(groupId)\n if (!res.errors) {\n setGroups(groups.filter((g) => g.id !== groupId))\n setNotification('Chapter deleted successfully', 'success')\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const handleRemoveFromGroup = async (groupId) => {\n try {\n const params = {\n group_membership: {\n group_id: groupId,\n },\n }\n const res = await Api.deleteGroupMembership(params)\n if (!res.errors) {\n setGroups(groups.filter((g) => g.id !== groupId))\n setNotification('Chapter left successfully', 'success')\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const canCreateGroup = user?.canCreateGroup\n\n return (\n \n \n \n \n My Chapters\n \n {/* TODO: Might need to change this based on permssion requirements */}\n {canCreateGroup && (\n \n setOpen(true)}>\n +Add Chapter\n \n \n )}\n \n {/* TODO: clean up loading handling */}\n \n\n \n
    \n \n {group?.id ? 'Edit Chapter Details' : 'Create A New Chapter'}\n \n \n \n {group?.id\n ? 'Edit the details of your chapter here.'\n : 'Use Chapters to organize your guest speaking engagements.'}\n \n \n \n \n \n \n \n {!group?.id && (\n \n \n \n )}\n \n \n \n \n Save\n \n \n
    \n
    \n
    \n
    \n )\n}\n\nexport default ChapterGroupsParent\n","export const GroupsTabPanel = ({ children, value, index }) => {\n return (\n
    \n )}{' '}\n {lockedEvent && (\n \n \n \n )}\n \n
    \n \n \n \n \n {/* TODO: add mobile download option here, also for the one that shows after creating a new code */}\n setOpen(true)}>\n \n \n \n Download Slide\n \n \n \n \n \n View Bonus\n \n handleEdit(offer)}>\n \n \n \n Edit Code\n \n \n handleCopyCodeLink(\n makeSurveyLink({ shortlink, code: offer.code })\n )\n }>\n \n \n \n Copy Code Link\n \n handleDelete(offer.id)}>\n \n \n \n Delete Code\n \n \n
    \n setOpen(false)}>\n setOpen(false)}\n />\n \n \n \n )\n}\n\nexport default SurveyOffersList\n","import { useContext, useState } from 'react'\nimport { styled } from '@mui/system'\nimport { Button, Typography } from '@mui/material'\n\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport {\n usePermissionHelper,\n OFFER_CODE_LIMIT,\n} from '../../utils/permission_helper'\nimport { GroupContext } from '../groups/groupContext'\n\nimport SurveyOffersList from './SurveyOffersList'\nimport ConfirmDialog from '../common/ConfirmDialog'\n\nconst OffersWrapper = styled('div')({\n maxHeight: '216px',\n overflowY: 'scroll',\n marginBottom: '10px',\n})\n\nconst OffersHeader = styled('div')({\n position: 'sticky',\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: '2px 0',\n borderTop: '1px solid #d3d3d3',\n})\n\nconst NewOfferButton = styled(Button)({\n color: 'white',\n width: '50%',\n marginTop: '10px',\n})\n\nconst SurveyOffersParent = ({\n offers,\n setOffers,\n handleEdit,\n handleOpenCreateOfferForm,\n events,\n}) => {\n const [confirmOpen, setConfirmOpen] = useState(false)\n const [deleteOfferId, setDeleteOfferId] = useState(null)\n\n const { setNotification, toggleUpgradeModal } = useContext(\n AuthenticationContext\n )\n const {\n groupState: { selectedGroup },\n } = useContext(GroupContext)\n const { findPermission } = usePermissionHelper()\n\n const { limit, unlimitedUsage } = findPermission(OFFER_CODE_LIMIT)\n\n const handleConfirmDelete = async () => {\n try {\n let res\n if (selectedGroup) {\n res = await Api.deleteGroupSurveyOffer(deleteOfferId, selectedGroup.id)\n } else {\n throw new Error('Deprecated')\n }\n if (!res.errors) {\n setOffers(offers?.filter((offer) => offer.id !== deleteOfferId))\n setDeleteOfferId(null)\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n setDeleteOfferId(null)\n }\n }\n\n const handleDelete = async (offerId) => {\n setDeleteOfferId(offerId)\n setConfirmOpen(true)\n }\n\n const SurveyOffersHeader = () => (\n \n \n Code\n \n \n Code Description\n \n
    \n
    \n )\n\n const deleteOfferCode = () => {\n if (!deleteOfferId) return null\n const offer = offers.find((offer) => offer.id === deleteOfferId)\n return offer?.code\n }\n\n return (\n
    \n \n \n You have{' '}\n \n {offers?.length ? offers?.length - 1 : '0'}\n {' '}\n active Talkadot codes\n \n \n {!unlimitedUsage && (\n \n Limit: {limit}{' '}\n \n toggleUpgradeModal(\n true,\n 'Upgrade to get more codes!',\n OFFER_CODE_LIMIT\n )\n }>\n (upgrade to increase limit)\n \n \n )}\n \n \n \n \n {(!offers || offers?.length < 1) && (\n
    \n Adding an offer increases your chance of getting feedback and leads:\n
    \n )}\n \n {window.innerWidth <= 480 ? 'Add Code' : 'Add Another Talkadot Code'}\n \n setDeleteOfferId(null)}\n buttonColor=\"black\"\n buttonText=\"Delete Code\"\n manualConfirm={true}\n confirmText=\"DELETE CODE\">\n <>\n You will no longer be able to use survey code{' '}\n {deleteOfferCode()} to collect feedback.\n \n \n
    \n )\n}\n\nexport default SurveyOffersParent\n","import { useState, useContext, createRef } from 'react'\nimport { Typography, Dialog, Tooltip, Skeleton } from '@mui/material'\nimport QrCodeIcon from '@mui/icons-material/QrCode'\nimport CloseIcon from '@mui/icons-material/Close'\nimport ContentCopyIcon from '@mui/icons-material/ContentCopy'\nimport BuildOutlinedIcon from '@mui/icons-material/BuildOutlined'\n\nimport envConfig from '../../envConfig'\nimport * as Helpers from '../common/helpers'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { GroupContext } from '../groups/groupContext'\n\nimport Card from '../common/Card'\nimport SurveyOffersParent from './SurveyOffersParent'\nimport SurveyOfferSlide from './SurveyOffersSlide'\n\nvar QRCode = require('qrcode.react')\n\nconst SurveyLinkSummary = ({\n offers,\n surveyLink,\n surveyLoading,\n setOffers,\n handleEdit,\n handleOpenCreateOfferForm,\n events,\n shortlink,\n}) => {\n const [open, setOpen] = useState(false)\n const { setNotification } = useContext(AuthenticationContext)\n const {\n groupState: { selectedGroup },\n } = useContext(GroupContext)\n const qrDownloadRef = createRef()\n const fullSpeakerLink = `${envConfig.REACT_APP_SHORTLINK}/${surveyLink}`\n const speakerShortlink = shortlink?.toUpperCase()\n\n const DownloadableQrCode = () => {\n return (\n \n \n \n )\n }\n\n const handleCopy = () => {\n Helpers.handleCopy(fullSpeakerLink)\n return setNotification('Copied!', 'success')\n }\n\n const SpeakerLinkActions = () => {\n const exportQrCode = () => {\n return Helpers.downloadInvisibleComponent(\n qrDownloadRef,\n 'qr-code-dl',\n `Talkadot-QR-${speakerShortlink}`\n )\n }\n\n return (\n
    \n \n window.open(`http://${fullSpeakerLink}?mode=test`, '_blank')\n }>\n
    \n \n
    \n
    Test My Talkadot Flow
    \n
    \n
    \n
    \n \n
    \n
    Download My QR Code
    \n
    \n \n )\n }\n\n const linkText = () => {\n if (selectedGroup) {\n return 'This is your guest speaker Talkadot handle'\n } else {\n return 'Your Talkadot handle'\n }\n }\n const shareLinkText = () =>\n selectedGroup\n ? 'Have your speaker share this Talkadot handle to collect audience feedback!'\n : 'Share your Talkadot handle to get audience feedback and generate leads!'\n\n const renderSurveySummary = () => (\n \n \n
    \n {linkText()}\n
    \n
    \n \n talk.ac/{surveyLink}\n \n \n \n \n
    \n \n \n {shareLinkText()}\n \n
    \n \n \n setOpen(false)}>\n setOpen(false)}\n />\n \n \n
    \n \n
    \n )\n\n const renderSkeleton = () => (\n \n \n \n \n )\n\n return surveyLoading ? renderSkeleton() : renderSurveySummary()\n}\n\nexport default SurveyLinkSummary\n","import { useState, useEffect } from 'react'\nimport { styled } from '@mui/system'\nimport { Chip, ListItemText, ListItemIcon, Menu, MenuItem } from '@mui/material'\nimport CheckIcon from '@mui/icons-material/Check'\nimport KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'\n\nconst EmojiKeywordChipWrapper = styled('div')({\n flex: '1',\n})\n\nconst EmojiKeywordChip = styled(Chip)({\n background: 'white',\n fontSize: '16px',\n padding: '5px',\n marginLeft: '5px',\n width: '100%',\n justifyContent: 'flex-start',\n fontWeight: 'bold',\n span: {\n flex: '1',\n },\n})\n\nconst EmojiChipContent = styled('div')({\n display: 'flex',\n flex: '1',\n alignItems: 'center',\n justifyContent: 'space-between',\n})\n\nconst EmojiKeywordSelect = ({\n currentEmojiKeyword,\n offerEmojiKeywords,\n defaultEmojiKeywords,\n canAddCustomQuestion,\n setOfferEmojiKeywords,\n setPendingSubmission,\n}) => {\n const [anchorEl, setAnchorEl] = useState(null)\n const [availableEmojiKeywords, setAvailableEmojiKeywords] = useState([])\n\n useEffect(() => {\n const availableKeywords = defaultEmojiKeywords.map((keyword) => {\n const offerKeyword = offerEmojiKeywords.find(\n (offerKeyword) => offerKeyword.keyword === keyword.keyword\n )\n return {\n ...keyword,\n emoji_template_identifier: offerKeyword\n ? offerKeyword.emoji_template_identifier\n : null,\n }\n })\n\n setAvailableEmojiKeywords(availableKeywords)\n }, [offerEmojiKeywords, currentEmojiKeyword])\n\n const handleOpenDropdown = (e) => {\n setAnchorEl(e.currentTarget)\n }\n const handleCloseDropdown = () => {\n setAnchorEl(null)\n }\n\n const replaceEmojiKeyword = (oldKeyword, newKeyword) => {\n return {\n ...oldKeyword,\n keyword: newKeyword.keyword,\n }\n }\n\n const handleSelectKeyword = (newEmojiKeyword) => {\n setOfferEmojiKeywords(\n // Swap the currentEmojiKeyword with newEmojiKeyword\n offerEmojiKeywords.map((keyword) => {\n if (keyword.keyword === currentEmojiKeyword.keyword) {\n // Replace the currentEmojiKeyword with newEmojiKeyword\n return replaceEmojiKeyword(currentEmojiKeyword, newEmojiKeyword)\n } else if (keyword.keyword === newEmojiKeyword.keyword) {\n // Replace the newEmojiKeyword in the existing list with currentEmojiKeyword.keyword\n return { ...keyword, keyword: currentEmojiKeyword.keyword }\n } else {\n // Keep other keywords unchanged\n return { ...keyword }\n }\n })\n )\n\n // NOTE: Don't strictly need this because we do it in the useEffect above\n // but if I don't set it here it seems to cause some flickering in the UI\n setAvailableEmojiKeywords(\n availableEmojiKeywords.map((keyword) =>\n keyword.keyword === newEmojiKeyword.keyword\n ? {\n ...keyword,\n emoji_template_identifier:\n currentEmojiKeyword.emoji_template_identifier,\n }\n : keyword.keyword === currentEmojiKeyword.keyword\n ? {\n ...keyword,\n emoji_template_identifier: null,\n }\n : { ...keyword }\n )\n )\n // trigger handleSubmit after offer state has been updated\n setPendingSubmission(true)\n handleCloseDropdown()\n }\n\n return (\n \n \n
    {currentEmojiKeyword.keyword}
    \n \n \n }\n />\n {/* TODO: this should probably be a Select component, not a Menu */}\n \n {availableEmojiKeywords.map((emojiKeyword, i) => {\n if (\n emojiKeyword.keyword === currentEmojiKeyword.keyword ||\n !emojiKeyword.emoji_template_identifier\n ) {\n return (\n handleSelectKeyword(emojiKeyword)}>\n \n {emojiKeyword?.emoji_template_identifier && (\n \n \n \n )}\n \n )\n }\n return null\n })}\n \n
    \n )\n}\n\nexport default EmojiKeywordSelect\n","import { useState, useContext, useEffect } from 'react'\nimport { styled } from '@mui/system'\nimport {\n Typography,\n DialogActions,\n DialogContent,\n DialogTitle,\n TextField,\n Button,\n CircularProgress,\n Alert,\n Popover,\n RadioGroup,\n FormControlLabel,\n Radio,\n FormControl,\n FormHelperText,\n Tooltip,\n Checkbox,\n} from '@mui/material'\n\nimport { debounce } from 'lodash'\nimport { isMobileOnly } from 'react-device-detect'\n\nimport FileUploadIcon from '@mui/icons-material/FileUpload'\nimport CloseIcon from '@mui/icons-material/Close'\n\nimport Api from '../../services/api'\nimport { trackFirstOfferCreated } from '../../services/metrics'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { GroupContext } from '../groups/groupContext'\n\nimport {\n usePermissionHelper,\n CUSTOMIZATIONS,\n} from '../../utils/permission_helper'\n\nimport SurveyOffersSlide from './SurveyOffersSlide'\nimport EmojiKeywordSelect from './EmojiKeywordSelect'\n\nimport FormSection from '../common/FormSection'\nimport FormFieldError from '../common/FormFieldError'\nimport ConfirmDialog from '../common/ConfirmDialog'\n\nimport * as Helpers from '../common/helpers'\nimport { humanizeError } from '../../utils/errorFormatter'\n\nimport { device } from '../../responsive'\n\nconst NavBanner = styled('div')(({ theme }) => ({\n color: theme.palette.base.white,\n fontSize: '1.25rem',\n fontWeight: 'bold',\n display: 'grid',\n gridTemplateColumns: '3fr 1fr',\n}))\n\nconst NavBannerLink = styled('div', {\n shouldForwardProp: (prop) => prop !== 'active' && prop !== 'disabled',\n})(({ theme, active, disabled }) => ({\n display: 'flex',\n alignItems: 'center',\n padding: '1rem 1.5rem',\n cursor: disabled ? 'not-allowed' : 'pointer',\n background: active ? theme.palette.primary.main : theme.palette.primary.light,\n [`@media ${device.mobile}`]: {\n paddingRight: '2.5rem',\n },\n}))\n\nconst Heading = styled(Typography)({\n [`@media ${device.mobile}`]: {\n fontSize: '1.8rem',\n },\n})\n\nconst Subheading = styled(Typography)({\n marginTop: '0.875rem',\n})\n\nconst OptionalSettingsContainer = styled('div')({\n position: 'relative',\n})\n\nconst FormDialogContent = styled(DialogContent, {\n shouldForwardProp: (prop) => prop !== 'minHeight',\n})(({ minHeight }) => ({\n padding: '0px',\n minHeight: minHeight ? minHeight : '60vh',\n}))\n\nconst IframeContainer = styled('div')({\n width: '360px',\n height: '560px',\n overflow: 'hidden',\n})\n\nconst StyledIframe = styled('iframe')({\n width: '450px',\n height: '700px',\n border: 'none',\n transformOrigin: 'top left',\n transform: 'scale(0.8)',\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.16)',\n})\n\nconst ActionsContainer = styled('div')({\n padding: '10px 25px',\n display: 'grid',\n gridTemplateColumns: 'auto 1fr',\n width: '100%',\n})\n\nconst SubmitWrapper = styled('div')({\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'center',\n gridColumn: '2',\n})\n\nconst FormButtonsContainer = styled(DialogActions)({\n display: 'flex',\n justifyContent: 'flex-start',\n button: {\n textTransform: 'none',\n fontSize: '1rem',\n paddingLeft: '2rem',\n paddingRight: '2rem',\n },\n [`@media ${device.mobile}`]: {\n button: {\n paddingLeft: '1rem',\n paddingRight: '1rem',\n },\n },\n})\n\nconst SubmitButton = styled(Button)(({ theme }) => ({\n color: theme.palette.base.white,\n}))\n\nconst PaddedSection = styled('div')({\n padding: '10px 25px',\n})\n\nconst FormContainer = styled('div')({\n padding: '10px 25px',\n})\n\nconst InnerFormContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n})\n\nconst OfferUploadFieldset = styled('div')({\n display: 'flex',\n alignItems: 'center',\n svg: {\n cursor: 'pointer',\n '&:hover': {\n fill: 'orange',\n },\n },\n})\n\nconst DeleteFileIcon = styled(CloseIcon)({\n marginLeft: '0.5rem',\n '&:hover': {\n fill: 'red !important',\n },\n})\n\nconst UpgradeText = styled(Typography)(({ theme }) => ({\n color: theme.palette.secondary.main,\n cursor: 'pointer',\n fontWeight: 'bold',\n [`@media ${device.mobile}`]: {\n fontSize: '0.75rem',\n marginLeft: '0rem',\n marginBottom: '0.5rem',\n },\n}))\n\nconst EmojiKeywordChipContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n width: 'max-content',\n [`@media ${device.mobile}`]: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n maxWidth: '100%',\n },\n})\n\nconst EmojiKeywordChipRow = styled('div')({\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n marginBottom: '2px',\n})\n\nconst EmojiKeywordRowText = styled('div')({\n [`@media ${device.mobile}`]: {\n display: 'none',\n },\n})\n\nconst FormSectionWrapper = styled('div')({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n minHeight: '160px',\n})\n\nconst FormSectionDescription = styled('div', {\n shouldForwardProp: (prop) => prop !== 'marginTop' && prop !== 'width',\n})(({ theme, marginTop, width }) => ({\n background: theme.palette.tertiary.extraLight,\n padding: '0.75rem',\n fontSize: '0.875rem',\n width: width ? width : '285px',\n minWidth: '285px',\n marginTop: marginTop ? marginTop : '5px',\n [`@media ${device.mobile}`]: {\n display: 'none',\n },\n}))\n\nconst PreviewSectionWrapper = styled('div')({\n display: 'grid',\n gridTemplateColumns: '1fr 1fr',\n gridGap: '1rem',\n [`@media ${device.mobile}`]: {\n gridTemplateColumns: '1fr',\n },\n padding: '10px 25px',\n})\n\nconst PreviewDescriptionWrapper = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n [`@media ${device.mobile}`]: {\n display: 'none',\n },\n})\n\nconst FormSectionDescriptionParagraph = styled('div')({\n margin: '0px 0px 1rem 0px',\n})\n\nconst FormSectionDescriptionLink = styled('div')(({ theme }) => ({\n color: theme.palette.secondary.main,\n textDecoration: 'none',\n fontWeight: 'bold',\n cursor: 'pointer',\n}))\n\nconst FormSectionSubheading = styled('div')({\n fontSize: '1rem',\n fontWeight: 'bold',\n margin: '1.5rem 0 0.5rem',\n width: 'fit-content',\n})\n\nconst FormSectionInputWrapper = styled('div')({\n flex: '1',\n})\n\nconst StyledFormControlLabel = styled(FormControlLabel)({\n alignItems: 'flex-start',\n})\n\nconst StyledRadio = styled(Radio)({\n paddingTop: '0px',\n})\n\nconst DescriptionInputContainer = styled('div')({\n maxWidth: '400px',\n width: '100%',\n})\n\nconst TextButton = styled('span')(({ theme }) => ({\n display: 'inline-block',\n color: theme.palette.secondary.main,\n textDecoration: 'none',\n fontWeight: 'bold',\n cursor: 'pointer',\n marginTop: '1.5rem',\n}))\n\nconst PopoverContent = styled('div')({\n maxWidth: '324px',\n padding: '1.5rem 1rem',\n fontSize: '0.75rem',\n fontWeight: '300',\n})\n\nconst PopoverHeader = styled('div')({\n fontSize: '1rem',\n fontWeight: 'bold',\n marginBottom: '0.5rem',\n})\n\nconst CopyLinkContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n})\n\nconst CopyLinkText = styled('div')({\n marginBottom: '0.5rem',\n})\n\nconst CopyableLink = styled('div')(({ theme }) => ({\n margin: '0px 5px 0px 0px',\n padding: '5px 15px',\n background: theme.palette.base.white,\n border: '1px solid black',\n cursor: 'pointer',\n fontSize: '1.125rem',\n fontWeight: 'bold',\n '&:hover': {\n color: theme.palette.primary.main,\n },\n}))\n\nconst RegularText = styled('span')({\n fontWeight: 400,\n})\n\nconst SurveyOffersForm = ({\n offers,\n setOffers,\n offer,\n setOffer,\n handleClose,\n defaultEmojiKeywords,\n setVideoId,\n setVideoModalOpen,\n setSurveyOffersFormModalSize,\n setSurveyOffersFormModalFullWidth,\n surveyLink,\n isOnboarding,\n advanceLastStep,\n setCode,\n}) => {\n const {\n id,\n link,\n code,\n name,\n fileKey,\n fileName,\n disableLeadgen,\n disableBookingFlow,\n customQuestion,\n isCustomQuestionPublic,\n emojiKeywords,\n } = offer\n\n const LEADGEN_OPTIONS = {\n COLLECT_ALL_DATA: 'COLLECT_ALL_DATA',\n DISABLE_BOOKING_FLOW: 'DISABLE_BOOKING_FLOW',\n DISABLE_LEADGEN: 'DISABLE_LEADGEN',\n }\n\n const [offerCode, setOfferCode] = useState('')\n const [offerName, setOfferName] = useState('')\n const [offerLink, setOfferLink] = useState('')\n const [offerEmojiKeywords, setOfferEmojiKeywords] = useState([])\n const [leadgenOption, setLeadgenOption] = useState(\n LEADGEN_OPTIONS.COLLECT_ALL_DATA\n )\n const [offerCustomQuestion, setOfferCustomQuestion] = useState('')\n const [offerIsCustomQuestionPublic, setOfferIsCustomQuestionPublic] =\n useState(false)\n const [offerFile, setOfferFile] = useState()\n const [isLoading, setIsLoading] = useState(false)\n const [codeError, setCodeError] = useState(null)\n const [nameError, setNameError] = useState(null)\n const [linkError, setLinkError] = useState(null)\n const [charactersRemaining, setCharactersRemaining] = useState(75)\n const [showSlide, setShowSlide] = useState(false)\n const [genericInlineError, setGenericInlineError] = useState(null)\n const [anchorEl, setAnchorEl] = useState(null)\n const [formStep, setFormStep] = useState(1)\n const [pendingSubmission, setPendingSubmission] = useState(false)\n const [showDisableBookingFlowAlert, setShowDisableBookingFlowAlert] =\n useState(false)\n const [showDisableLeadgenAlert, setShowDisableLeadgenAlert] = useState(false)\n const [codeEditDialogOpen, setCodeEditDialogOpen] = useState(false)\n const { toggleUpgradeModal, authData, setNotification, updatePermission } =\n useContext(AuthenticationContext)\n const {\n groupState: { selectedGroup },\n } = useContext(GroupContext)\n const { canAddCustomQuestion, findPermission } = usePermissionHelper()\n\n const defaultEmojiKeywordsForOffer = defaultEmojiKeywords.filter(\n (keyword) => !!keyword.emoji_template_identifier\n )\n\n const CODEREGEX = /^[a-zA-Z0-9]+$/i\n\n const ACCEPTED_FILE_TYPES = [\n 'png',\n 'jpg',\n 'jpeg',\n 'doc',\n 'docx',\n 'pdf',\n 'mp3',\n 'mp4',\n // 'csv',\n // 'xls',\n // 'xlsx',\n // 'zip'\n ]\n\n useEffect(() => {\n if (offerCustomQuestion) {\n setCharactersRemaining(75 - offerCustomQuestion.length)\n }\n }, [offerCustomQuestion])\n\n useEffect(() => {\n if (disableLeadgen) {\n setLeadgenOption(LEADGEN_OPTIONS.DISABLE_LEADGEN)\n } else if (disableBookingFlow) {\n setLeadgenOption(LEADGEN_OPTIONS.DISABLE_BOOKING_FLOW)\n } else {\n setLeadgenOption(LEADGEN_OPTIONS.COLLECT_ALL_DATA)\n }\n\n if (offer.id) {\n setOfferCode(code)\n setOfferName(name)\n setOfferLink(link)\n setOfferCustomQuestion(customQuestion)\n setOfferIsCustomQuestionPublic(isCustomQuestionPublic)\n\n if (emojiKeywords?.length === 0) {\n setOfferEmojiKeywords(defaultEmojiKeywordsForOffer)\n } else {\n setOfferEmojiKeywords(emojiKeywords)\n }\n }\n }, [offer])\n\n useEffect(() => {\n if (pendingSubmission) {\n handleSubmit()\n }\n }, [pendingSubmission])\n\n const { user } = authData\n const hasAccessCustomQuestion = canAddCustomQuestion()\n\n const invalidFileType = (fileType) => {\n return !ACCEPTED_FILE_TYPES.includes(fileType.toLowerCase())\n }\n const sendFileToAmazon = async (presignedUrl) => {\n const res = await fetch(presignedUrl, {\n method: 'PUT',\n body: offerFile,\n headers: {\n 'Content-Type': offerFile.type,\n },\n })\n\n if (!res.ok) {\n throw 'Sorry, something went wrong uploading your file'\n }\n\n return\n }\n const handleSubmit = async (advanceFormStep = false) => {\n if (codeError || nameError || linkError || !offerCode || !offerName) {\n return\n }\n\n // offerFile is only set when the user is uploading a new file\n if (!offerFile) {\n setIsLoading(true)\n await createOrEditSurveyOffer()\n setIsLoading(false)\n } else {\n setIsLoading(true)\n await saveFileInS3AndCreateOffer()\n setIsLoading(false)\n }\n\n if (advanceFormStep) {\n setFormStep(formStep + 1)\n }\n\n if (pendingSubmission) {\n setPendingSubmission(false)\n }\n }\n\n const saveFileInS3AndCreateOffer = async () => {\n // This handles scenarios where people use extra periods in their file names\n let index = offerFile.name.lastIndexOf('.')\n let fileName = offerFile.name.slice(0, index)\n // Use this parsed file type to verify file types we support\n let fileType = offerFile.name.slice(index + 1)\n\n if (invalidFileType(fileType)) {\n setOfferFile(null)\n return setGenericInlineError('Invalid file type.')\n }\n\n try {\n const params = {\n presign_url: {\n file_name: fileName,\n // S3 presign urls require the raw file type\n file_type: offerFile.type,\n },\n }\n\n const res = await Api.presignUrl(params)\n await sendFileToAmazon(res.presignedUrl)\n return await createOrEditSurveyOffer(res.fileKey)\n } catch (err) {\n handleCreateError(err)\n }\n }\n\n const createOrEditSurveyOffer = async (storageKey = null) => {\n if (!id) {\n await createOffer(storageKey)\n } else {\n await editOffer(storageKey)\n }\n }\n\n // For Editing an offer\n // If I have a file key, I need to use the same one\n // If the file key changes, I need a new one\n const editOffer = async (storageKey) => {\n const params = {\n survey_offer: {\n link: offerLink,\n code: offerCode,\n name: offerName,\n // If there's a new storage key, save it. If not, leave the old key\n file_key: storageKey ? storageKey : fileKey,\n // If there's a new filename, save it, if not, keep the old one\n file_name: offerFile ? offerFile.name : fileName,\n custom_question: offerCustomQuestion,\n is_answer_public: offerIsCustomQuestionPublic,\n disable_leadgen: leadgenOption === LEADGEN_OPTIONS.DISABLE_LEADGEN,\n disable_booking_flow:\n leadgenOption === LEADGEN_OPTIONS.DISABLE_BOOKING_FLOW,\n emoji_keywords: offerEmojiKeywords,\n },\n ...(selectedGroup ? { group_id: selectedGroup.id } : {}),\n }\n\n try {\n let res\n if (selectedGroup) {\n res = await Api.editGroupSurveyOffer(params, id)\n } else {\n throw new Error('Deprecated')\n }\n\n if (!res.errors) {\n handleEditSuccess(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n handleCreateError(err)\n }\n }\n\n const handleEditSuccess = (res, showSlide = true) => {\n setOffers(\n offers.map((offer) =>\n offer.id === res.id ? { ...offer, ...res } : { ...offer }\n )\n )\n }\n\n const createOffer = async (storageKey) => {\n const params = {\n survey_offer: {\n link: offerLink,\n code: offerCode,\n name: offerName,\n file_key: storageKey,\n file_name: offerFile ? offerFile.name : null,\n custom_question: offerCustomQuestion,\n is_answer_public: offerIsCustomQuestionPublic,\n disable_leadgen: leadgenOption === LEADGEN_OPTIONS.DISABLE_LEADGEN,\n disable_booking_flow:\n leadgenOption === LEADGEN_OPTIONS.DISABLE_BOOKING_FLOW,\n emoji_keywords: offerEmojiKeywords,\n },\n ...(selectedGroup ? { group_id: selectedGroup.id } : {}),\n }\n\n try {\n let res\n if (selectedGroup) {\n res = await Api.createGroupSurveyOffer(params)\n } else {\n res = await Api.createSurveyOffer(params)\n }\n\n if (!res.errors) {\n handleCreateSuccess(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n handleCreateError(err)\n }\n }\n\n const handleCreateSuccess = (res) => {\n // NOTE: Default offer is TALK, so first offer created is the second offer\n if (offers?.length === 1) {\n const params = {\n user_id: user.id,\n user_email: user.email,\n }\n trackFirstOfferCreated(params)\n }\n\n setOffer(res)\n setOffers([...offers, res])\n\n // Update the upgrade widget content\n const codePermission = findPermission('OFFER_CODE_LIMIT')\n updatePermission({\n ...codePermission,\n consumed: codePermission.consumed + 1,\n })\n }\n\n const handleCreateError = (err) => {\n setGenericInlineError(humanizeError(err))\n }\n\n const advanceFormStep = () => {\n // if we're in the SurveyOffers onboarding flow, we want to advance the step by 2\n // so that we skip the advanced settings step\n if (isOnboarding) {\n setFormStep(formStep + 2)\n } else {\n setFormStep(formStep + 1)\n }\n }\n\n const handleBackClick = () => {\n if (isOnboarding) {\n setFormStep(formStep - 2)\n } else {\n setFormStep(formStep - 1)\n }\n }\n\n const showDownloadSlide = () => {\n setShowSlide(true)\n setSurveyOffersFormModalSize('lg')\n setSurveyOffersFormModalFullWidth(false)\n }\n\n const submitButtonDisabled = () => {\n return (\n isLoading ||\n !offerCode ||\n !offerName ||\n codeError ||\n nameError ||\n linkError\n )\n }\n\n const SurveyOfferActions = () => {\n let ctaText = ''\n let handleCtaClick = () => {}\n\n switch (formStep) {\n case 1:\n if (isOnboarding) {\n ctaText =\n isMobileOnly || window.innerWidth < 960\n ? 'Preview'\n : 'Next - Preview'\n } else {\n ctaText =\n isMobileOnly || window.innerWidth < 960\n ? 'Next'\n : 'Next - Advanced Settings'\n }\n handleCtaClick = advanceFormStep\n break\n case 2:\n ctaText =\n isMobileOnly || window.innerWidth < 960\n ? 'Preview'\n : 'Preview this feedback flow'\n handleCtaClick = advanceFormStep\n break\n case 3:\n if (isOnboarding) {\n ctaText =\n isMobileOnly || window.innerWidth < 960\n ? 'Continue'\n : 'All tested! Continue'\n handleCtaClick = () => {\n setCode(offerCode)\n advanceLastStep()\n }\n } else {\n ctaText =\n isMobileOnly || window.innerWidth < 960\n ? 'Download'\n : 'Looks good, download my slide!'\n handleCtaClick = showDownloadSlide\n }\n break\n default:\n ctaText = 'Next'\n break\n }\n\n return (\n \n {formStep > 1 && (\n \n )}\n \n {!isOnboarding && (\n handleClose()}\n sx={{ color: 'orange' }}\n disabled={isLoading}>\n Cancel\n \n )}\n \n \n \n {isLoading ? (\n \n ) : (\n ctaText\n )}\n \n \n \n \n \n )\n }\n\n const usingCustomEmoji = () => {\n return defaultEmojiKeywords.some((defaultKeyword) => {\n return defaultEmojiKeywordsForOffer.find((keyword) => {\n return (\n keyword.emoji_template_identifier &&\n defaultKeyword.emoji_template_identifier ===\n keyword.emoji_template_identifier &&\n defaultKeyword.keyword !== keyword.keyword\n )\n })\n })\n }\n\n const handleResetEmojiKeywords = () => {\n setOfferEmojiKeywords(defaultEmojiKeywords)\n setPendingSubmission(true)\n }\n\n const handleOpenVideoModal = (videoId) => {\n setVideoId(videoId)\n setVideoModalOpen(true)\n }\n\n const handleLeadPopoverClick = (event) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleLeadsPopoverClose = () => {\n setAnchorEl(null)\n }\n\n const handleDeleteFile = async () => {\n if (!isLoading) {\n setOfferFile(null)\n\n if (id && fileName) {\n const params = {\n survey_offer: {\n file_key: null,\n file_name: null,\n },\n ...(selectedGroup ? { group_id: selectedGroup.id } : {}),\n }\n\n try {\n setIsLoading(true)\n let res\n if (selectedGroup) {\n res = await Api.editGroupSurveyOffer(params, id)\n } else {\n throw new Error('Deprecated')\n }\n\n if (!res.errors) {\n setOffer(res)\n handleEditSuccess(res, false)\n setIsLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n handleCreateError(err)\n setIsLoading(false)\n }\n }\n }\n }\n\n const handleCodeChange = (e) => {\n if (codeError) {\n setCodeError(null)\n }\n\n if (genericInlineError) {\n setGenericInlineError(null)\n }\n\n if (e.target.value?.length > 0 && !CODEREGEX.test(e.target.value)) {\n setCodeError(\n 'Talkadot codes can only be letters and numbers, no spaces or symbols'\n )\n }\n\n if (e.target.value?.length > 15) {\n return setCodeError('Must be 15 characters or less')\n }\n\n setOfferCode(e.target.value.toUpperCase())\n }\n\n const handleUpdateLeadgenOptions = (e) => {\n setShowDisableBookingFlowAlert(false)\n setShowDisableLeadgenAlert(false)\n\n if (e.target.value === LEADGEN_OPTIONS.DISABLE_BOOKING_FLOW) {\n setShowDisableBookingFlowAlert(true)\n } else if (e.target.value === LEADGEN_OPTIONS.DISABLE_LEADGEN) {\n setShowDisableLeadgenAlert(true)\n } else {\n setShowDisableBookingFlowAlert(false)\n setShowDisableLeadgenAlert(false)\n }\n\n setLeadgenOption(e.target.value)\n setPendingSubmission(true)\n }\n\n const handleUpdateCustomQuestionVisibility = (e) => {\n setOfferIsCustomQuestionPublic(e.target.checked)\n setPendingSubmission(true)\n }\n\n const setFieldError = (field) => {\n switch (field) {\n case 'code':\n if (!offerCode) {\n return setCodeError('you must enter a code')\n }\n\n if (offerCode.length < 3) {\n return setCodeError('your code must be at least 3 characters')\n }\n\n break\n case 'name':\n if (!offerName) {\n return setNameError('Please add a description for your code')\n }\n break\n case 'link':\n // TODO: implement url validation\n // if (offerLink && !Helpers.isValidUrl(offerLink)) {\n // return setLinkError('Please enter a valid URL')\n // }\n break\n default:\n break\n }\n }\n\n const handleBlur = (e) => {\n // Don't save on blur if the value hasn't changed\n if (e.target.value && e.target.value === offer[e.target.name]) return\n\n setFieldError(e.target.name)\n\n // if editing code, open the ConfirmDialog here\n if (e.target.name === 'code' && id) {\n setCodeEditDialogOpen(true)\n return\n }\n\n // Use debounce to prevent onBlur event from swallowing the click event\n debounce(() => handleSubmit(), 200)()\n }\n\n const surveyLinkSrc = Helpers.makeSurveyLink({\n shortlink: surveyLink,\n code: offerCode,\n })\n\n const handleCopy = () => {\n Helpers.handleCopy(surveyLinkSrc)\n return setNotification('Copied!', 'success')\n }\n\n const leadsPopoverOpen = Boolean(anchorEl)\n\n const navLinks = [\n {\n label: 'SETUP',\n onClick: () => setFormStep(1),\n active: formStep < 3,\n },\n {\n label: 'PREVIEW',\n onClick: () => setFormStep(3),\n active: formStep === 3,\n disabled: !code || !name,\n },\n ]\n\n const renderNavBanner = () => {\n return (\n \n {navLinks.map((link, i) => {\n return (\n \n {link.label}\n \n )\n })}\n \n )\n }\n\n const renderBasicSettings = () => {\n return (\n <>\n \n \n {/* This gets weird with submit onBlur handling */}\n {/* {id ? 'Edit Talkadot code' : 'Setup a Talkadot code'} */}\n Setup a Talkadot code\n \n \n Configure what your audience sees when they go to your feedback\n form.\n \n \n {genericInlineError && (\n {genericInlineError}\n )}\n \n \n \n \n \n \n \n handleUpdateLeadgenOptions(e)}>\n }\n label=\"Yes, collect speaking leads and email addresses. (Default, recommended.)\"\n />\n
    \n }\n label=\"Email addresses only (No speaking leads. Skips booking questions.)\"\n />\n {showDisableBookingFlowAlert && (\n \n \n Are you sure?{' '}\n \n Chosing this option means we won't be asking\n your audience questions about whether they\n book paid speaking engagements.\n \n \n }\n allowClose={true}\n />\n \n )}\n
    \n }\n label=\"I don't want to collect any information. (No speaking leads. No emails collected.)\"\n />\n {showDisableLeadgenAlert && (\n \n \n Are you sure?{' '}\n \n This means we won't collect ANY personal\n information or email addresses from your\n audience.\n \n \n }\n allowClose={true}\n />\n \n )}\n \n
    \n \n
    \n \n \n Leave this on unless you are speaking to an audience where\n collecting leads is not permitted.\n \n \n See some examples of when you might turn this off.\n \n \n \n Leave this code on when...\n
    \n There might be someone in the audience that is\n interested in booking you.\n
    \n
    \n
    \n Say you might be speaking to a high school audience, but\n there are administrators who book speakers. We recommend\n keeping the code on to maximize your chances you capture\n contact information of someone who can book you.\n
    \n
    \n Turn this off when...\n
    \n You are are speaking to high school or college students.\n
    \n
    \n
    \n You to an audience that doesn't include decision makers.\n
    \n
    \n
    \n Your host would not want you to collect information.\n
    \n
    \n \n
    \n
    \n \n \n \n \n ) : null\n }\n value={offerCode}\n name=\"code\"\n onChange={(e) => handleCodeChange(e)}\n onBlur={(e) => handleBlur(e)}\n />\n \n \n Add a description\n \n \n ) : null\n }\n onChange={(e) => {\n setGenericInlineError(null)\n setNameError(null)\n setOfferName(e.target.value)\n }}\n onBlur={(e) => handleBlur(e)}\n />\n \n \n \n \n \n This is the code you give your audience.\n \n \n Keep it short to minimize typos!\n \n \n \n \n \n \n {!offerFile && !fileName ? (\n \n ) : null\n }\n fullWidth\n onChange={(e) => {\n setGenericInlineError(null)\n setLinkError(null)\n setOfferLink(e.target.value)\n }}\n onBlur={(e) => handleBlur(e)}\n />\n ) : (\n \n {offerFile ? offerFile.name : fileName}\n \n )}\n {!offerFile && !fileName ? (\n \n ) : (\n \n )}\n \n \n \n \n Optional, leave blank to skip.\n \n handleOpenVideoModal('D92PLs3Wxdk')}>\n What makes a great bonus offer?\n \n \n \n
    \n
    \n
    \n \n \n \n \n )\n }\n\n const emojiQuestionText = () => {\n if (selectedGroup) {\n return \"Was this speaker's session \"\n }\n\n return `Was ${user?.first_name}'s talk `\n }\n\n const renderAdvancedSettings = () => (\n <>\n \n \n Advanced Settings (Pro)\n \n {!canAddCustomQuestion() && (\n \n toggleUpgradeModal(\n true,\n 'Upgrade now to unlock custom configurations!',\n CUSTOMIZATIONS\n )\n }>\n Upgrade your Talkadot account to access these features!\n \n )}\n \n {genericInlineError && (\n {genericInlineError}\n )}\n \n \n \n \n \n \n \n {offerEmojiKeywords\n ?.sort(\n (a, b) =>\n parseInt(a.emoji_template_identifier?.slice(-1)) -\n parseInt(b.emoji_template_identifier?.slice(-1))\n )\n .map((emojiKeyword, i) => {\n return (\n emojiKeyword?.emoji_template_identifier && (\n \n \n {emojiQuestionText()}\n \n \n \n )\n )\n })}\n \n {usingCustomEmoji() && (\n handleResetEmojiKeywords()}>\n Reset to recommended defaults.\n \n )}\n \n \n \n Use our defaults, or choose the attributes you want feedback\n on related to your talk.\n \n \n \n \n \n {\n setCharactersRemaining(75 - e.target.value.length)\n setGenericInlineError(null)\n setCodeError(null)\n setOfferCustomQuestion(e.target.value)\n }}\n onBlur={(e) => handleBlur(e)}\n />\n \n (characters remaining: {charactersRemaining})\n \n }\n label=\"Custom question is visible on public report\"\n checked={offerIsCustomQuestionPublic}\n disabled={!offerCustomQuestion || !hasAccessCustomQuestion}\n onChange={(e) => handleUpdateCustomQuestionVisibility(e)}\n />\n \n \n \n Optional, leave blank to skip.\n \n \n \n \n \n \n \n \n \n \n \n )\n\n const renderPreview = () => (\n <>\n \n \n {isMobileOnly || window.innerWidth < 960\n ? 'Preview Feedback'\n : 'Preview your Talkadot Feedback'}\n \n \n \n \n \n \n \n \n \n \n This is what your audience will experience. Make sure it's what\n you expect!\n
    \n
    \n Note: If you use the Talkadot generated slide,\n the code will automatically be filled.\n
    \n
    \n \n \n \n Use this link to prefill your code for virtual presentations.\n \n \n {surveyLinkSrc}\n \n \n \n
    \n
    \n
    \n \n \n \n \n )\n\n const renderForm = () => {\n switch (formStep) {\n case 1:\n return renderBasicSettings()\n case 2:\n return renderAdvancedSettings()\n case 3:\n return renderPreview()\n default:\n return <>\n }\n }\n\n const handleCodeEditCancel = () => {\n setCodeEditDialogOpen(false)\n setOfferCode(code)\n }\n\n return showSlide ? (\n
    \n handleClose()}\n />\n \n
    \n ) : (\n <>\n {renderNavBanner()}\n {renderForm()}\n \n \n Are you sure you want to change your code to {offerCode}?\n \n

    \n \n If you proceed with this change, please ensure to re-download your\n slide / QR code and update your presentation!\n \n

    \n \n \n )\n}\n\nexport default SurveyOffersForm\n","import { styled } from '@mui/system'\n\nimport Api from '../../services/api'\n\nimport EditAvatar from '../accountSettings/EditAvatar'\n\nconst SettingsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n padding: theme.spacing(1),\n marginBottom: '25px',\n}))\n\nconst AvatarContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'center',\n padding: theme.spacing(3),\n}))\n\nexport const SettingsCardColumn = styled('div')(({ theme }) => ({\n textAlign: 'left',\n width: '100%',\n padding: theme.spacing(3),\n}))\n\nconst GroupEventSettings = ({\n selectedGroup,\n updateGroup,\n updateGroups,\n setNotification,\n}) => {\n const updateAvatar = async (storageUrl) => {\n const params = {\n group_metadatum: {\n avatar: storageUrl,\n },\n group_id: selectedGroup.id,\n }\n\n try {\n const res = await Api.updateGroupMetadatum(params)\n\n if (!res.errors) {\n updateGroup({ avatar: storageUrl })\n updateGroups({ avatar: storageUrl })\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n return (\n \n \n \n \n \n )\n}\n\nexport default GroupEventSettings\n","import { useContext, useEffect, useState } from 'react'\nimport { styled } from '@mui/system'\nimport {\n Skeleton,\n Dialog,\n DialogContent,\n Box,\n IconButton,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\nimport CloseIcon from '@mui/icons-material/Close'\n\nimport YouTube from 'react-youtube'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { GroupContext } from './groupContext'\nimport Api from '../../services/api'\n\nimport {\n initialCodesState,\n initialGroupOfferState,\n} from '../../constants/codes/initialOfferStates'\nimport SurveyLinkSummary from '../dashboard/SurveyLinkSummary'\nimport EventsParent from '../events/EventsParent'\nimport SurveyOffersForm from '../dashboard/SurveyOffersForm'\nimport EventFormParent from '../events/EventFormParent'\nimport GroupEventSettings from './GroupEventSettings'\n\nimport '../dashboard/Dashboard.scss'\n\nconst initialEventState = {\n id: null,\n name: null,\n talkTitle: null,\n inPerson: null,\n virtual: null,\n eventOrganization: null,\n startTime: null,\n duration: null,\n date: null,\n compensation: null,\n}\n\nconst DashboardContainer = styled('div')({\n padding: '0 1rem',\n})\n\nconst VideoDialogContent = styled(DialogContent)({\n minHeight: '600px',\n padding: 0,\n})\n\nconst VideoContainer = styled('div')({\n height: '600px',\n})\n\nconst GuestSpeakerDashboard = () => {\n const [events, setEvents] = useState([])\n const [eventsLoading, setEventsLoading] = useState(false)\n const [surveyLink, setSurveyLink] = useState(null)\n const [surveyLoading, setSurveyLoading] = useState(false)\n const [offers, setOffers] = useState(initialCodesState)\n const [surveyOfferOpen, setSurveyOfferOpen] = useState(false)\n const [offer, setOffer] = useState(initialGroupOfferState)\n const [event, setEvent] = useState(initialEventState)\n const [eventFormOpen, setEventFormOpen] = useState(false)\n const [shortlink, setShortlink] = useState(null)\n const [defaultEmojiKeywords, setDefaultEmojiKeywords] = useState([])\n const [videoModalOpen, setVideoModalOpen] = useState(false)\n const [videoId, setVideoId] = useState(null)\n const [surveyOffersFormModalSize, setSurveyOffersFormModalSize] =\n useState('md')\n const [surveyOffersFormModalFullWidth, setSurveyOffersFormModalFullWidth] =\n useState(true)\n const { authData, setNotification } = useContext(AuthenticationContext)\n const {\n groupState: { selectedGroup, groups },\n setSelectedGroup,\n setGroups,\n } = useContext(GroupContext)\n\n const theme = useTheme()\n const fullScreen = useMediaQuery(theme.breakpoints.down('sm'))\n const { fullPageLoader } = authData\n\n useEffect(() => {\n const fetchEvents = async () => {\n try {\n setEventsLoading(true)\n const res = await Api.loadGroupEvents({ group_id: selectedGroup.id })\n if (!res.errors) {\n setEventsLoading(false)\n setEvents(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n setEventsLoading(false)\n return setNotification(err, 'error')\n }\n }\n\n const loadSurvey = async () => {\n try {\n setSurveyLoading(true)\n\n const res = await Api.getGroupSurveyLink(selectedGroup.id)\n\n if (!res.errors) {\n setSurveyLink(res.shortlink)\n setShortlink(res.shortlink)\n setOffers(offers.concat(res.offers))\n setSurveyLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setSurveyLoading(false)\n setNotification(err, 'error')\n }\n }\n\n const getDefaultEmojiKeywords = async () => {\n try {\n const res = await Api.fetchDefaultEmojiKeywords()\n\n if (!res.errors) {\n setDefaultEmojiKeywords(res)\n }\n } catch (err) {}\n }\n\n loadSurvey()\n fetchEvents()\n getDefaultEmojiKeywords()\n }, [])\n\n const updateGroup = (updatedAttribute) => {\n setSelectedGroup({ ...selectedGroup, ...updatedAttribute })\n }\n\n const updateGroups = (updatedAttribute) => {\n setGroups(\n groups.map((group) =>\n group.id === selectedGroup.id\n ? { ...group, ...updatedAttribute }\n : group\n )\n )\n }\n\n const updateShortlink = (shortlink) => {\n updateGroup(shortlink)\n setSurveyLink(shortlink)\n setShortlink(shortlink)\n }\n\n const handleClose = () => {\n setOffer(initialGroupOfferState)\n setSurveyOfferOpen(false)\n }\n\n const handleEdit = (offer) => {\n setOffer(offer)\n setSurveyOfferOpen(true)\n }\n\n const handleOpenCreateOfferForm = () => {\n return setSurveyOfferOpen(true)\n }\n\n const handleOpenEventForm = async (clickedEvent) => {\n // For Chapters, create an event on initial click so we can use the tag speakers feature\n // In the future, we may want to refactor the entire tag speakers flow as\n // this is a bit of a hack\n if (clickedEvent) {\n setEvent(clickedEvent)\n } else {\n await createEvent(event)\n }\n\n setEventFormOpen(true)\n }\n\n const handleCloseEventForm = () => {\n setEventFormOpen(false)\n setEvent(initialEventState)\n }\n\n const handleVideoModalClose = () => {\n setVideoModalOpen(false)\n setVideoId('')\n }\n\n const createEvent = async (params) => {\n try {\n const res = await Api.createGroupEvent({\n ...params,\n group_id: selectedGroup.id,\n })\n\n if (res.errors) {\n throw res.errors\n } else {\n // On the newly created event, don't use the\n // date the server sends up. Allow the chapter\n // president to select it\n setEvent({ ...res, date: null })\n setEvents([res, ...events])\n }\n } catch (err) {\n setNotification(err, 'error')\n }\n }\n\n const editEvent = async (eventId, params) => {\n const groupEventParams = {\n ...params,\n group_id: selectedGroup.id,\n }\n try {\n const res = await Api.editGroupEvent(eventId, groupEventParams)\n\n if (res.errors) {\n throw res.errors\n } else {\n setEvents(events.map((event) => (event.id === res.id ? res : event)))\n }\n } catch (err) {\n setNotification(err, 'error')\n }\n }\n\n const updateEventSpeakers = (speakers, eventId) => {\n setEvents(\n events.map((event) => {\n if (event.id === eventId) {\n return { ...event, speakers: speakers }\n } else {\n return event\n }\n })\n )\n }\n\n const renderSecondaryContent = () => (\n \n )\n\n const videoOpts = {\n playerVars: {\n autoplay: 1,\n },\n width: '100%',\n height: '100%',\n }\n\n return (\n \n {fullPageLoader.isActive && (\n \n )}\n
    \n \n {renderSecondaryContent()}\n
    \n {/* TODO: Swap out with TalksTable component */}\n \n handleClose()}>\n \n handleClose()}>\n \n \n \n \n \n handleCloseEventForm()}>\n handleCloseEventForm()}\n />\n \n \n \n \n \n \n \n \n \n
    \n )\n}\n\nexport default GuestSpeakerDashboard\n","import { useContext, useEffect, useState } from 'react'\n\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { GroupContext } from './groupContext'\n\nimport GroupEventsTable from './GroupEventsTable'\n\nconst GuestSpeakerEventTable = () => {\n const [events, setEvents] = useState([])\n const [loading, setLoading] = useState(true)\n const { setNotification } = useContext(\n AuthenticationContext\n )\n const {\n groupState: { selectedGroup }\n } = useContext(GroupContext)\n\n useEffect(() => {\n const fetchEvents = async () => {\n try {\n setLoading(true)\n const res = await Api.loadGroupEvents(\n { 'group_id': selectedGroup.id }\n )\n\n if (!res.errors) {\n setLoading(false)\n setEvents(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n setLoading(false)\n return setNotification(err, 'error')\n }\n }\n\n fetchEvents()\n }, [])\n\n\n return (\n <>\n {loading ? (\n <>Loading...\n ) : (\n <>\n \n \n )}\n \n )\n}\n\nexport default GuestSpeakerEventTable\n","import { useEffect, useContext } from 'react'\n\nimport { useLocation, useParams, useHistory } from 'react-router-dom'\n\nimport { GroupContext } from './groupContext'\n\nimport GroupMembersParent from './GroupMembersParent'\nimport GuestSpeakerDashboard from './GuestSpeakerDashboard'\nimport GuestSpeakerEventTable from './GuestSpeakerEventTable'\nimport PageContainer from '../common/PageContainer'\n\nconst GroupParent = () => {\n const { id } = useParams()\n const location = useLocation()\n const history = useHistory()\n const {\n groupState: { selectedGroup, groups },\n getGroupById,\n setSelectedGroup,\n } = useContext(GroupContext)\n const viewOnly = selectedGroup?.access?.viewOnly\n\n useEffect(() => {\n if (groups === null) {\n // wait till groups exists on refresh\n return\n }\n\n const group = getGroupById(Number(id))\n\n if (group) {\n setSelectedGroup(group)\n } else {\n history.push('/dashboard')\n }\n }, [id, groups])\n\n useEffect(() => {\n // Cleanup selectedGroup when GroupParent unmounts so\n // events and survey offers no longer reference a group\n return () => {\n setSelectedGroup(null)\n }\n }, [])\n\n const renderChildComponent = () => {\n const path = location.pathname\n\n if (path.includes('/members')) {\n return \n } else if (path.includes('/events')) {\n if (viewOnly) {\n return \n }\n\n return \n }\n }\n\n return selectedGroup ? (\n {renderChildComponent()}\n ) : (\n <>Loading...\n )\n}\n\nexport default GroupParent\n","import { Switch } from '@mui/material'\nimport { styled } from '@mui/system'\n\nconst StyledSwitch = styled(Switch, {\n shouldForwardProp: (prop) =>\n prop !== 'enabledText' && prop !== 'disabledText',\n})(({ enabledText, disabledText }) => ({\n width: 77,\n height: 31,\n padding: 0,\n border: '1px solid #999999',\n borderRadius: '15px',\n backgroundColor: 'white',\n '& .MuiSwitch-switchBase': {\n padding: 0,\n margin: 2,\n transitionDuration: '300ms',\n color: '#999999',\n '&.Mui-checked': {\n transform: 'translateX(27px)',\n color: 'orange',\n '& .MuiSwitch-thumb:before': {\n content: enabledText ? `'${enabledText}'` : \"'ON'\",\n color: 'white',\n textAlign: 'center',\n top: 4,\n },\n '& + .MuiSwitch-track': {\n backgroundColor: 'white',\n },\n '&.Mui-disabled + .MuiSwitch-track': {\n backgroundColor: 'white',\n },\n },\n },\n '& .MuiSwitch-thumb': {\n width: '44px',\n height: '24px',\n borderRadius: '15px',\n '&:before': {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: 0,\n top: 4,\n content: disabledText ? `'${disabledText}'` : \"'OFF'\",\n color: 'white',\n textAlign: 'center',\n },\n },\n '& .MuiSwitch-track': {\n backgroundColor: 'white',\n },\n}))\n\nexport const SwitchWithLabel = ({ enabledText, disabledText, ...props }) => {\n return (\n \n )\n}\n","import { useEffect, useState, useContext } from 'react'\nimport { useLocation, useHistory } from 'react-router-dom'\nimport {\n Skeleton,\n Button,\n Alert,\n Typography,\n AlertTitle,\n CircularProgress,\n} from '@mui/material'\nimport { SwitchWithLabel } from '../common/SwitchWithLabel'\nimport { styled } from '@mui/system'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport * as qs from 'qs'\n\nimport Api from '../../services/api'\nimport { humanizeError } from '../../utils/errorFormatter'\n\nconst AcceptanceContainer = styled('div')(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n width: '50%',\n },\n width: '85%',\n margin: '0 auto',\n '.MuiAlert-message': {\n width: '100%',\n },\n backgroundColor: theme.palette.tertiary.extraLight,\n padding: '20px',\n}))\n\nconst InnerAcceptanceContainer = styled('div')({\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n gap: '20px',\n textAlign: 'left',\n h5: {\n textAlign: 'center',\n },\n})\n\nconst AcceptanceSettingsContainer = styled('div')({\n display: 'flex',\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n})\n\nconst AcceptanceButton = styled(Button)(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n width: '50%',\n },\n width: '100%',\n color: theme.palette.base.white,\n margin: '0 auto',\n}))\n\nconst GroupInvitationAcceptancePArent = () => {\n const [group, setGroup] = useState({})\n const [groupLoading, setGroupLoading] = useState(false)\n const [acceptanceLoading, setAcceptanceLoading] = useState(false)\n const [autoAddEvents, toggleAutoAddEvents] = useState(true)\n const [errorMessage, setErrorMessage] = useState(null)\n const location = useLocation()\n const urlParams = qs.parse(location.search, { ignoreQueryPrefix: true })\n const groupInvitationToken = urlParams.git\n const history = useHistory()\n const { authData, removeGroupInvitation, setNotification } = useContext(\n AuthenticationContext\n )\n const { user } = authData\n\n useEffect(() => {\n const fetchGroupFromToken = async () => {\n const reqParams = {\n group_invitation: {\n invitation_token: groupInvitationToken,\n },\n }\n\n try {\n setGroupLoading(true)\n const res = await Api.getGroupInvitationDetails(reqParams)\n\n if (!res.errors) {\n // setGroup(res)\n removeGroupInvitation(res)\n setNotification('Invitation accepted successfully!', 'success')\n setGroupLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setGroupLoading(false)\n setNotification(err)\n }\n }\n // if (!user?.id) {\n // // IF the user isn't signed in, send them to the registration page\n // // with the groups token\n // history.push(`/register?git=${groupInvitationToken}`)\n // } else {\n fetchGroupFromToken()\n return history.push(`/groups`)\n // }\n }, [groupInvitationToken, user])\n\n const handleJoinGroup = async () => {\n const reqParams = {\n group_membership: {\n auto_add_events: autoAddEvents,\n group_id: group.id,\n },\n }\n\n try {\n setAcceptanceLoading(true)\n setErrorMessage(null)\n const res = await Api.createGroupMembership(reqParams)\n\n if (!res.errors) {\n setAcceptanceLoading(false)\n removeGroupInvitation({ id: group.id })\n // TODO:\n // Once we adjust the permissions for group viewing,\n // send the user to that view instead\n return history.push(`/groups`)\n } else {\n throw res.errors\n }\n } catch (err) {\n setAcceptanceLoading(false)\n setErrorMessage(humanizeError(err))\n }\n }\n\n return groupLoading ? (\n \n \n \n \n ) : (\n \n {errorMessage && {errorMessage}}\n {group?.id && group.already_group_member && (\n \n \n You're already a member of {group.name}!\n \n {\n removeGroupInvitation({ id: group.id })\n history.push('/groups')\n }}>\n Go To Group Details\n \n \n )}\n {group?.id && !group.already_group_member && (\n \n \n You've been invited to join {group.name}\n \n \n \n Group Data Retention Settings:\n \n \n If you leave this group,\n {group.retain_report_access\n ? 'the group will retain access to all of the speaking engagement reports you have shared with them.'\n : 'the group will no longer be able to access all of the speaking engagement reports you have shared with them.'}\n \n \n \n \n Data Sharing Settings:\n \n \n \n Enable this setting to automatically make any newly created\n speaking engagements available to this Group. This does not\n affect speaking engagements that were created prior to toggling\n this setting on.\n \n toggleAutoAddEvents(e.target.checked)}\n />\n \n \n \n {acceptanceLoading ? (\n \n ) : (\n 'Join Group'\n )}\n \n \n )}\n \n )\n}\n\nexport default GroupInvitationAcceptancePArent\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCircleIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n className: \"h-7 w-auto\",\n width: 97,\n height: 28,\n viewBox: \"0 0 200 58\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.5583 57.3672C22.8697 57.3672 19.4023 56.6783 16.1563 55.3006C12.9103 53.8737 10.0823 51.9056 7.6724 49.3962C5.26248 46.8376 3.36897 43.8854 1.99187 40.5395C0.663958 37.1937 0 33.5772 0 29.6901C0 25.803 0.663958 22.2111 1.99187 18.9145C3.36897 15.5686 5.26248 12.641 7.6724 10.1316C10.0823 7.62225 12.9103 5.67871 16.1563 4.301C19.4023 2.8741 22.8697 2.16064 26.5583 2.16064C31.2306 2.16064 35.4603 3.12012 39.2473 5.03906C43.0835 6.958 46.2311 9.6396 48.6902 13.0839C51.1493 16.5281 52.674 20.5136 53.2642 25.0404H41.3867C40.9933 22.4818 40.0834 20.243 38.6571 18.3241C37.28 16.4051 35.5586 14.9044 33.493 13.8219C31.4765 12.7394 29.2141 12.1982 26.7059 12.1982C24.3943 12.1982 22.3041 12.6164 20.4351 13.4529C18.6154 14.2894 17.017 15.4948 15.6399 17.0694C14.312 18.6439 13.2792 20.5136 12.5414 22.6786C11.8529 24.7943 11.5086 27.1315 11.5086 29.6901C11.5086 32.2979 11.8529 34.6843 12.5414 36.8492C13.2792 38.965 14.312 40.8101 15.6399 42.3847C17.017 43.9592 18.6154 45.1893 20.4351 46.0749C22.3041 46.9114 24.3943 47.3296 26.7059 47.3296C29.2141 47.3296 31.5011 46.7884 33.5668 45.7059C35.6324 44.5742 37.3292 43.0489 38.6571 41.13C40.0342 39.1618 40.9441 36.923 41.3867 34.4137H53.2642C52.6248 38.9896 51.0756 42.9997 48.6165 46.444C46.1574 49.8882 43.0343 52.5698 39.2473 54.4888C35.4603 56.4077 31.2306 57.3672 26.5583 57.3672Z\",\n fill: \"#191B1F\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.9876 56.2601H58.7332V16.8479H68.9876V56.2601Z\",\n fill: \"#191B1F\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86.892 37.1445V56.2601H76.6376V16.8479H86.0805V24.4499C87.556 21.9405 89.6954 19.9724 92.4988 18.5455C95.3022 17.1186 98.2777 16.4051 101.425 16.4051V27.0331C98.5728 26.8363 96.0399 26.9839 93.8267 27.4759C91.6627 27.9188 89.9659 28.9274 88.7364 30.502C87.5068 32.0273 86.892 34.2414 86.892 37.1445Z\",\n fill: \"#191B1F\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M121.587 56.9981C117.8 56.9981 114.456 56.1371 111.554 54.415C108.702 52.6928 106.464 50.2818 104.841 47.182C103.218 44.0822 102.406 40.5395 102.406 36.554C102.406 32.6177 103.218 29.1243 104.841 26.0736C106.513 22.9738 108.8 20.5382 111.702 18.7669C114.603 16.9956 117.899 16.1099 121.587 16.1099C124.981 16.1099 128.055 16.8479 130.809 18.3241C133.563 19.751 135.801 21.7929 137.522 24.4499C139.244 27.0577 140.301 30.1329 140.695 33.6756H129.924C129.678 31.0678 128.792 29.0013 127.268 27.4759C125.792 25.9506 123.899 25.188 121.587 25.188C119.817 25.188 118.267 25.6554 116.94 26.5903C115.661 27.5251 114.653 28.829 113.915 30.502C113.226 32.1749 112.882 34.1922 112.882 36.554C112.882 38.8666 113.226 40.8839 113.915 42.6061C114.653 44.3282 115.661 45.6567 116.94 46.5916C118.267 47.4772 119.817 47.9201 121.587 47.9201C123.948 47.9201 125.842 47.182 127.268 45.7059C128.743 44.1806 129.629 42.0894 129.924 39.4324H140.695C140.35 43.0243 139.317 46.1487 137.596 48.8057C135.875 51.4135 133.661 53.4309 130.956 54.8578C128.251 56.2847 125.128 56.9981 121.587 56.9981Z\",\n fill: \"#191B1F\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M156.131 56.2601H145.803V3.26773L156.131 3.26773V56.2601Z\",\n fill: \"#191B1F\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M180.967 56.9243C177.032 56.9243 173.565 56.0879 170.565 54.415C167.614 52.6928 165.327 50.2818 163.704 47.182C162.081 44.0822 161.269 40.4903 161.269 36.4064C161.269 32.4701 162.105 28.9767 163.777 25.926C165.45 22.8754 167.761 20.489 170.712 18.7669C173.663 16.9956 177.032 16.1099 180.819 16.1099C183.917 16.1099 186.721 16.7003 189.229 17.8812C191.787 19.0129 193.926 20.6366 195.647 22.7524C197.369 24.8681 198.598 27.3283 199.336 30.1329C200.074 32.8883 200.197 35.8652 199.705 39.0634H167.319V32.5685H188.86C188.762 29.8131 187.95 27.6482 186.426 26.0736C184.95 24.4499 183.008 23.6381 180.598 23.6381C178.68 23.6381 177.057 24.1301 175.729 25.1142C174.401 26.0982 173.368 27.5497 172.63 29.4687C171.942 31.3384 171.597 33.651 171.597 36.4064C171.597 39.1126 171.942 41.4006 172.63 43.2703C173.319 45.1401 174.352 46.567 175.729 47.551C177.106 48.5351 178.778 49.0272 180.745 49.0272C183.008 49.0272 184.877 48.4859 186.352 47.4034C187.827 46.3209 188.86 44.8202 189.45 42.9013H199.631C198.5 47.3296 196.311 50.7739 193.065 53.2341C189.819 55.6943 185.786 56.9243 180.967 56.9243Z\",\n fill: \"#191B1F\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M70.5386 7.01152C70.5386 9.02888 69.8992 10.7018 68.6205 12.0303C67.3418 13.3096 65.6942 13.9492 63.6777 13.9492C61.6613 13.9492 59.9891 13.3096 58.6611 12.0303C57.3824 10.7018 56.743 9.02888 56.743 7.01152C56.743 4.94497 57.3824 3.27205 58.6611 1.99275C59.9891 0.664252 61.6613 0 63.6777 0C65.6942 0 67.3418 0.664252 68.6205 1.99275C69.8992 3.27205 70.5386 4.94497 70.5386 7.01152Z\",\n fill: \"#506CF0\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCircleIcon);\nexport default __webpack_public_path__ + \"static/media/circleIcon.0d702450.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgPlusIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 3.33325V12.6666\",\n stroke: \"white\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.33325 8H12.6666\",\n stroke: \"white\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlusIcon);\nexport default __webpack_public_path__ + \"static/media/plusIcon.b36d04eb.svg\";\nexport { ForwardRef as ReactComponent };","import { useState, useContext } from 'react'\nimport { styled } from '@mui/system'\nimport { Button } from '@mui/material'\nimport * as qs from 'qs'\n\nimport { AuthenticationContext } from './authenticationContext'\n\nimport Api from '../../services/api'\n\nimport envConfig from '../../envConfig'\n\nimport { ReactComponent as ZapierIcon } from '../../icons/zapierIcon.svg'\nimport { ReactComponent as CircleIcon } from '../../icons/circleIcon.svg'\nimport { IoCheckmarkCircle } from 'react-icons/io5'\n\nconst AuthenticationContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n padding: '50px 30px',\n marginBottom: '50px',\n maxWidth: '400px',\n}))\n\nconst LogosContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n marginBottom: '30px',\n})\n\nconst TalkadotLogo = styled('img')({\n width: '100px',\n marginRight: '20px',\n})\n\nconst ClientIconWrapper = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n marginLeft: '20px',\n})\n\nconst DividerContainer = styled('div')({\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n margin: '30px 0',\n})\n\nconst Divider = styled('div')({\n width: '20%',\n height: '3px',\n backgroundColor: 'rgba(0, 0, 0, 0.1)',\n})\n\nconst AccessDetailsContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'flex-start',\n})\n\nconst AccessDescription = styled('div')({\n textAlign: 'left',\n})\n\nconst AccessHeader = styled('div')({\n textAlign: 'left',\n marginBottom: '20px',\n})\n\nconst AccessListItem = styled('div')({\n display: 'flex',\n alignItems: 'center',\n marginBottom: '10px',\n})\n\nconst CheckIcon = styled(IoCheckmarkCircle)(({ theme }) => ({\n color: theme.palette.primary.main,\n fontSize: '20px',\n marginRight: '10px',\n}))\n\nconst StyledButton = styled(Button)(({ theme }) => ({\n width: '100%',\n marginTop: '20px',\n textTransform: 'none',\n color: theme.palette.common.white,\n fontWeight: 'bold',\n fontSize: '1.1rem',\n}))\n\nconst InvalidClientContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n})\n\nconst OAuthProviderAuthenticationForm = () => {\n const [codeLoading, setCodeLoading] = useState(false)\n const { setNotification } = useContext(AuthenticationContext)\n\n const params = qs.parse(window.location.search, {\n ignoreQueryPrefix: true,\n })\n const { client_id, redirect_uri, state } = params\n\n const allowedClients = [\n envConfig.REACT_APP_ZAPIER_CLIENT_ID,\n envConfig.REACT_APP_CIRCLE_CLIENT_ID,\n ]\n\n let clientName = ''\n\n switch (client_id) {\n case envConfig.REACT_APP_ZAPIER_CLIENT_ID:\n clientName = 'Zapier'\n break\n case envConfig.REACT_APP_CIRCLE_CLIENT_ID:\n clientName = 'Circle'\n break\n default:\n clientName = ''\n }\n\n const createAuthCode = async () => {\n // make request to Talkadot API to get authorization code and create the OAuthClient record\n try {\n setCodeLoading(true)\n\n const params = {\n client_id: client_id,\n }\n\n const res = await Api.createAuthCode(params)\n\n if (!res.errors) {\n const { code } = res\n // NOTE: Not setting codeLoading to false here because we are redirecting to the redirect_uri\n // after getting the code, and we want the button to be disabled until the redirect happens\n return code\n } else {\n throw res.errors\n }\n } catch (err) {\n setCodeLoading(false)\n return setNotification(err, 'error')\n }\n }\n\n const handleClick = async () => {\n // make request to Talkadot API to get authorization code and create the OAuthClient record\n const code = await createAuthCode()\n\n if (!code) return\n\n const redirectUri = `${redirect_uri}?state=${state}&code=${code}`\n window.location.href = redirectUri\n }\n\n const renderClientIcon = () => {\n switch (client_id) {\n case envConfig.REACT_APP_ZAPIER_CLIENT_ID:\n return \n case envConfig.REACT_APP_CIRCLE_CLIENT_ID:\n return \n default:\n return <>\n }\n }\n\n const renderAccessDetails = () => {\n switch (client_id) {\n case envConfig.REACT_APP_ZAPIER_CLIENT_ID:\n return (\n <>\n \n \n \n Access your leads email\n \n \n \n \n \n Access your leads name\n \n \n \n \n \n Access your leads phone number\n \n \n \n \n \n Access your event title\n \n \n \n \n \n Access your event date\n \n \n \n )\n case envConfig.REACT_APP_CIRCLE_CLIENT_ID:\n return (\n <>\n \n \n \n Access your name\n \n \n \n \n \n Access your email\n \n \n \n \n \n Access your profile image\n \n \n \n )\n default:\n return <>\n }\n }\n\n const renderAccessDescription = () => {\n switch (client_id) {\n case envConfig.REACT_APP_CIRCLE_CLIENT_ID:\n return (\n \n Talkadot is using {clientName} to power our Unicorn Speaker\n Community. Please connect to our community with your Talkadot\n account!\n \n )\n default:\n return (\n \n {clientName} wants access to your Talkadot account\n \n )\n }\n }\n\n const renderForm = () => (\n \n \n \n +\n {renderClientIcon()}\n \n {renderAccessDescription()}\n \n \n \n \n \n This will allow {clientName} to access the following\n information:\n \n {renderAccessDetails()}\n \n \n \n \n \n Allow {clientName} to access your Talkadot account?\n \n \n Grant Access\n \n \n )\n\n if (allowedClients.includes(client_id)) {\n return renderForm()\n }\n\n return (\n \n

    Invalid OAuth Client

    \n

    \n The OAuth client you are trying to authenticate with is not allowed to\n access this application.\n

    \n
    \n )\n}\n\nexport default OAuthProviderAuthenticationForm\n","import { useContext } from 'react'\nimport { Helmet } from 'react-helmet'\n\nimport { AuthenticationContext } from './authenticationContext'\n\nimport OAuthProviderAuthenticationForm from './OAuthProviderAuthenticationForm'\nimport LoginForm from './LoginForm'\nimport PageContainer from '../common/PageContainer'\n\nconst OAuthProviderAuthenticationParent = () => {\n const { authData } = useContext(AuthenticationContext)\n const { user } = authData\n\n return (\n \n \n \n \n {user?.id ? (\n \n ) : (\n \n )}\n \n )\n}\n\nexport default OAuthProviderAuthenticationParent\n","import React, { useState, useEffect } from 'react'\nimport { useLocation } from 'react-router-dom'\nimport { styled } from '@mui/system'\nimport {\n Box,\n Link,\n Grid,\n Card,\n CardHeader,\n CardContent,\n Divider,\n} from '@mui/material'\nimport DraftsOutlinedIcon from '@mui/icons-material/DraftsOutlined'\nimport EmailOutlinedIcon from '@mui/icons-material/EmailOutlined'\nimport Api from '../../services/api'\nimport * as qs from 'qs'\n\nconst MessageContainer = styled(Card)(({ theme }) => ({\n padding: `${theme.spacing(4)} ${theme.spacing(2)}`,\n width: '358px',\n borderRadius: '0',\n}))\n\nconst MessageDivider = styled(Divider)(({ theme }) => ({\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(1),\n}))\n\nconst FullHeightCenteringGrid = styled(Grid)(({ theme }) => ({\n minHeight: '100vh',\n}))\n\nconst UnsubscribeParent = () => {\n const [unsubscribed, setUnsubscribed] = useState(false)\n const [resubscribed, setResubscribed] = useState(false)\n const [talkInfo, setTalkInfo] = useState(null)\n const [invalidRequest, setInvalidRequest] = useState(false)\n const [loading, setLoading] = useState(true)\n const location = useLocation()\n const urlParams = qs.parse(location.search, { ignoreQueryPrefix: true })\n\n useEffect(() => {\n const unsubscribeLead = async () => {\n try {\n const res = await Api.unsubscribeLead({ token: urlParams.token })\n\n if (!res.errors) {\n setTalkInfo(res.talkInfo)\n\n if (res.isNewRecord) {\n setUnsubscribed(true)\n }\n } else {\n throw res.errors\n }\n } catch (err) {\n setInvalidRequest(true)\n }\n\n setLoading(false)\n }\n\n unsubscribeLead()\n }, [urlParams.token])\n\n const resubscribe = async () => {\n try {\n const res = await Api.resubscribeLead({ token: urlParams.token })\n\n if (!res.errors) {\n setResubscribed(true)\n setUnsubscribed(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setInvalidRequest(true)\n }\n }\n const renderContent = () => {\n if (invalidRequest) {\n return 'Please try again. If the problem persists, please contact support.'\n }\n if (resubscribed) {\n return `You've opted to receive future updates and bonuses from ${talkInfo.speaker}! We're glad to have you back!`\n }\n\n return `You'll no longer receive emails from ${\n talkInfo.speaker\n } related to ${talkInfo.title || 'this talk'}`\n }\n\n const renderHeadIcon = () => {\n if (resubscribed) {\n return \n }\n\n return \n }\n\n const renderHeaderContent = () => {\n if (invalidRequest) {\n return 'Something went wrong.'\n }\n\n if (resubscribed) {\n return 'Welcome back!'\n }\n\n if (unsubscribed) {\n return \"You're unsubscribed\"\n } else {\n return \"You're already unsubscribed\"\n }\n }\n\n const renderResubscribeContent = () => {\n if (resubscribed || invalidRequest) {\n return\n }\n return (\n <>\n \n
    Unsubscribed by accident?
    \n
    \n \n Subscribe again\n \n
    \n \n )\n }\n\n return (\n <>\n {!loading && (\n <>\n \n \n \n \n <>{renderHeadIcon()}\n
    {renderHeaderContent()}
    \n \n }\n />\n \n {renderContent()}\n {renderResubscribeContent()}\n \n
    \n
    \n \n \n )}\n \n )\n}\n\nexport default UnsubscribeParent\n","import React, { useState, useEffect } from 'react'\nimport { useLocation } from 'react-router-dom'\nimport { styled } from '@mui/system'\nimport { Box, Grid, Card, CardHeader, CardContent } from '@mui/material'\nimport DraftsOutlinedIcon from '@mui/icons-material/DraftsOutlined'\nimport Api from '../../services/api'\nimport * as qs from 'qs'\n\nconst MessageContainer = styled(Card)(({ theme }) => ({\n padding: `${theme.spacing(4)} ${theme.spacing(2)}`,\n width: '358px',\n borderRadius: '0',\n}))\n\nconst FullHeightCenteringGrid = styled(Grid)(({ theme }) => ({\n minHeight: '100vh',\n}))\n\nconst BonusGiftParent = () => {\n const [loading, setLoading] = useState(true)\n const location = useLocation()\n const urlParams = qs.parse(location.search, { ignoreQueryPrefix: true })\n\n useEffect(() => {\n const getBonusUrl = async () => {\n try {\n const res = await Api.getBonusUrl({ token: urlParams.token })\n\n if (!res.errors) {\n window.location.href = res.url\n } else {\n throw res.errors\n }\n } catch (err) {\n setLoading(false)\n }\n }\n\n getBonusUrl()\n }, [urlParams.token])\n\n return (\n <>\n {!loading && (\n <>\n \n \n \n \n \n
    This Gift does not exist
    \n \n }\n />\n \n If the problem persists, please contact support.\n \n
    \n
    \n \n \n )}\n \n )\n}\n\nexport default BonusGiftParent\n","import { Typography } from '@mui/material'\n\nimport {\n StyledHeading,\n StyledPaper,\n StyledSubheading,\n StyledCodeBlock,\n} from './ApiDocumentationParent'\n\nconst AuthDocumentation = () => {\n return (\n \n OAuth Controller API\n\n \n This API provides OAuth endpoints for user authorization and token\n management.\n \n\n \n Base URL: /api/v1/oauth\n \n\n Endpoints\n\n {/* Repeat this pattern for each section and endpoint */}\n 1. Authorize User\n\n \n POST /authorize\n \n\n \n Authorize a user and obtain an authorization code for OAuth token\n exchange.\n \n\n \n Parameters:\n
      \n
    • \n client_id (string, required): The ID of the OAuth\n client.\n
    • \n
    • \n redirect_uri (string, required): The URI to redirect\n after authorization.\n
    • \n
    • \n state (string): An optional state parameter for\n security.\n
    • \n
    \n
    \n\n \n Example Request:\n \n {`{\n \"client_id\": \"your_client_id\",\n \"redirect_uri\": \"https://your-redirect-uri.com\",\n \"state\": \"optional_state_parameter\"\n}`}\n \n \n\n \n Example Response:\n \n {`{\n \"code\": \"authorization_code\"\n}`}\n \n \n\n 2. Token Exchange\n\n \n POST /token\n \n\n \n Exchange an authorization code for an access token.\n \n\n \n Parameters:\n
      \n
    • \n client_id (string, required): The ID of the OAuth\n client.\n
    • \n
    • \n code (string, required): The authorization code\n obtained during authorization.\n
    • \n
    \n
    \n\n \n Example Request:\n \n {`{\n \"client_id\": \"your_client_id\",\n \"code\": \"authorization_code\"\n}`}\n \n \n\n \n Example Response:\n \n {`{\n \"access_token\": \"encrypted_access_token\",\n refresh_token: \"encrypted_refresh_token\",\n \"token_type\": \"bearer\",\n \"expires_in\": 3600\n}`}\n \n \n\n 3. Refresh Token\n\n \n POST /refresh_token\n \n\n \n Refresh an expired access token.\n \n\n \n Parameters:\n
      \n
    • \n refresh_token (string, required): The encrypted refresh\n token.\n
    • \n
    \n
    \n\n \n Example Request:\n \n {`{\n \"refresh_token\": \"encrypted_refresh_token\"\n}`}\n \n \n\n \n Example Response:\n \n {`{\n \"access_token\": \"new_encrypted_access_token\",\n \"refresh_token\": \"new_encrypted_refresh_token\",\n \"token_type\": \"bearer\",\n \"expires_in\": 3600\n}`}\n \n \n\n 4. Get User Info\n\n \n GET /user\n \n\n \n Get information about the authenticated user.\n \n\n \n Example Response:\n \n {`{\n \"email\": \"user@example.com\"\n}`}\n \n \n\n {/* Repeat the above pattern for other endpoints */}\n\n {/* Add error responses section */}\n Error Responses\n\n \n 400 Bad Request: Missing or invalid parameters.\n \n {`{\n \"error\": \"invalid_grant\",\n \"error_description\": \"Invalid authorization code\"\n}`}\n \n \n\n \n 401 Unauthorized: Invalid client credentials.\n \n {`{\n \"error\": \"unauthorized_client\",\n \"error_description\": \"Invalid client credentials\"\n}`}\n \n \n\n \n 403 Forbidden: Insufficient permissions.\n \n {`{\n \"error\": \"forbidden\",\n \"error_description\": \"Sorry, you need to upgrade your membership to use this feature.\"\n}`}\n \n \n\n \n 500 Internal Server Error: Something went wrong on our\n server.\n \n {`{\n \"error\": \"server_error\",\n \"error_description\": \"Something went wrong\"\n}`}\n \n \n\n {/* Repeat the above pattern for other error responses */}\n
    \n )\n}\n\nexport default AuthDocumentation\n","import { Typography } from '@mui/material'\n\nimport {\n StyledHeading,\n StyledPaper,\n StyledSubheading,\n StyledCodeBlock,\n} from './ApiDocumentationParent'\n\nconst WebhooksDocumentation = () => {\n return (\n \n Webhook Subscriptions API\n\n \n This API allows users to manage webhook subscriptions for receiving\n updates.\n \n\n \n Base URL: /api/v1/hooks\n \n\n Endpoints\n\n {/* Repeat this pattern for each section and endpoint */}\n \n 1. Subscribe to Webhook\n \n\n \n POST /subscribe\n \n\n \n Subscribe to a new webhook for receiving updates.\n \n\n \n Parameters:\n
      \n
    • \n hookUrl (string, required): The URL to receive webhook\n notifications.\n
    • \n
    • \n name (string, required): The name of the webhook\n subscription.\n
    • \n
    • \n client_id (string, required): The client ID associated\n with the webhook subscription.\n
    • \n
    \n
    \n\n \n Example Request:\n \n {`{\n \"hookUrl\": \"https://hooks.zapier.com/hooks/standard/12727857/caa22fd3c9ab4e6b9430c197529e46e0/\",\n \"name\": \"new_lead\",\n \"client_id\": \"12345\"\n}`}\n \n \n\n \n Example Response:\n \n {`{\n \"id\": \"1\",\n}`}\n \n \n\n \n 2. Unsubscribe from Webhook\n \n\n \n DELETE /unsubscribe\n \n\n \n Unsubscribe from an existing webhook.\n \n\n \n Parameters:\n
      \n
    • \n id (string, required): The ID of the webhook\n subscription to unsubscribe from.\n
    • \n
    \n
    \n\n \n Example Request:\n \n {`{\n \"id\": \"1\"\n}`}\n \n \n\n \n Example Response:\n \n {`{\n \"message\": \"success\"\n}`}\n \n \n\n \n 3. List of Test Data\n \n\n \n GET /perform_list\n \n\n \n Get a list of test data for webhook subscriptions.\n \n\n \n Example Response:\n \n {`{\n \"[\n {\n \"createdAt\": \"2024-02-08T12:00:00Z\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"talkTitle\": \"How to be a great speaker\",\n \"talkOrganization\": \"Best Speakers Conference\",\n \"phone\": \"123-456-7890\",\n \"email\": \"john@doe.com\",\n \"organization\": \"Event Planner Inc.\",\n \"title\": \"CEO\",\n \"contacted\": \"\",\n \"warmth\": \"HOT\",\n \"bookingLead\": \"yes\",\n \"referLead\": \"\",\n \"optInLead\": \"yes\"\n }\n ]\"\n}`}\n \n \n\n {/* Repeat the above pattern for other endpoints */}\n\n {/* Add error responses section */}\n Error Responses\n\n \n 400 Bad Request: Missing or invalid parameters.\n \n {`{\n \"error\": \"invalid_request\",\n \"error_description\": \"Missing required parameters\"\n}`}\n \n \n\n \n 404 Not Found: Webhook subscription not found.\n \n {`{\n \"error\": \"not_found\",\n \"error_description\": \"Webhook subscription not found\"\n}`}\n \n \n\n \n 500 Internal Server Error: Something went wrong on the\n server.\n \n {`{\n \"error\": \"server_error\",\n \"error_description\": \"Something went wrong\"\n}`}\n \n \n\n {/* Repeat the above pattern for other error responses */}\n
    \n )\n}\n\nexport default WebhooksDocumentation\n","import { useState } from 'react'\nimport { styled, useTheme } from '@mui/material/styles'\nimport {\n Paper,\n Typography,\n Box,\n Drawer,\n Toolbar,\n List,\n ListItem,\n ListItemButton,\n ListItemIcon,\n ListItemText,\n Divider,\n IconButton,\n CssBaseline,\n} from '@mui/material'\nimport MuiAppBar from '@mui/material/AppBar'\nimport { Helmet } from 'react-helmet'\n\nimport MenuIcon from '@mui/icons-material/Menu'\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft'\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight'\nimport WebhookIcon from '@mui/icons-material/Webhook'\nimport PersonIcon from '@mui/icons-material/Person'\n\nimport AuthDocumentation from './AuthDocumentation'\nimport WebhooksDocumentation from './WebhooksDocumentation'\n\nconst drawerWidth = 240\n\nconst Main = styled('main', { shouldForwardProp: (prop) => prop !== 'open' })(\n ({ theme, open }) => ({\n flexGrow: 1,\n transition: theme.transitions.create('margin', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n marginLeft: `-${drawerWidth}px`,\n ...(open && {\n transition: theme.transitions.create('margin', {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n marginLeft: 0,\n }),\n })\n)\n\nconst AppBar = styled(MuiAppBar, {\n shouldForwardProp: (prop) => prop !== 'open',\n})(({ theme, open }) => ({\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n ...(open && {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: `${drawerWidth}px`,\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n }),\n}))\n\nconst DrawerHeader = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(0, 1),\n // necessary for content to be below app bar\n ...theme.mixins.toolbar,\n justifyContent: 'flex-end',\n}))\n\nexport const StyledPaper = styled(Paper)(({ theme }) => ({\n padding: theme.spacing(3),\n whiteSpace: 'pre-line',\n textAlign: 'left',\n}))\n\nexport const StyledHeading = styled(Typography)(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}))\n\nexport const StyledSubheading = styled(Typography)(({ theme }) => ({\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(1),\n}))\n\nexport const StyledCodeBlock = styled('pre')(({ theme }) => ({\n backgroundColor: theme.palette.grey[200],\n padding: theme.spacing(1),\n borderRadius: theme.shape.borderRadius.sm,\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n whiteSpace: 'pre-wrap',\n}))\n\nconst ApiDocumentationParent = () => {\n const theme = useTheme()\n const [open, setOpen] = useState(true)\n const [activeTab, setActiveTab] = useState('Authentication')\n\n const handleDrawerOpen = () => {\n setOpen(true)\n }\n\n const handleDrawerClose = () => {\n setOpen(false)\n }\n\n const renderMarkdown = () => {\n switch (activeTab) {\n case 'Authentication':\n return \n case 'Webhooks':\n return \n default:\n return \n }\n }\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n Talkadot API Documentation\n \n \n \n \n \n \n {theme.direction === 'ltr' ? (\n \n ) : (\n \n )}\n \n \n \n \n {['Authentication', 'Webhooks'].map((text, index) => (\n setActiveTab(text)}>\n \n \n {index % 2 === 0 ? : }\n \n \n \n \n ))}\n \n \n
    \n \n {renderMarkdown()}\n
    \n
    \n \n )\n}\n\nexport default ApiDocumentationParent\n","var _path, _path2, _path3, _path4;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgSmileIcon36X36(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 36,\n height: 36,\n viewBox: \"0 0 36 36\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 33C26.2843 33 33 26.2843 33 18C33 9.71573 26.2843 3 18 3C9.71573 3 3 9.71573 3 18C3 26.2843 9.71573 33 18 33Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 21C12 21 14.25 24 18 24C21.75 24 24 21 24 21\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.5 13.5H22.515\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.5 13.5H13.515\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSmileIcon36X36);\nexport default __webpack_public_path__ + \"static/media/smileIcon_36x36.e05cb843.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgMicroPhoneIcon36X36(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 22,\n height: 38,\n viewBox: \"0 0 22 38\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.57422 37H16.5456\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.4562 19.5143C17.4562 21.4238 16.782 23.2552 15.5817 24.6054C14.3815 25.9557 12.7536 26.7143 11.0562 26.7143C9.35886 26.7143 7.731 25.9557 6.53076 24.6054C5.33053 23.2552 4.65625 21.4238 4.65625 19.5143V8.19999C4.65625 6.29044 5.33053 4.45909 6.53076 3.10883C7.731 1.75857 9.35886 1 11.0562 1C12.7536 1 14.3815 1.75857 15.5817 3.10883C16.782 4.45909 17.4562 6.29044 17.4562 8.19999V19.5143Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.0547 36.9995V30.8281\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 15.4004V19.5147C1 22.5154 2.05959 25.3932 3.94566 27.5151C5.83174 29.6369 8.38981 30.8289 11.0571 30.8289C13.7244 30.8289 16.2825 29.6369 18.1686 27.5151C20.0547 25.3932 21.1143 22.5154 21.1143 19.5147V15.4004\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinejoin: \"round\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.65625 14.3711H17.4562\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMicroPhoneIcon36X36);\nexport default __webpack_public_path__ + \"static/media/microPhoneIcon_36x36.feb382b3.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCreditCardIcon36X36(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 36,\n height: 36,\n viewBox: \"0 0 36 36\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.5 6H4.5C2.84315 6 1.5 7.34315 1.5 9V27C1.5 28.6569 2.84315 30 4.5 30H31.5C33.1569 30 34.5 28.6569 34.5 27V9C34.5 7.34315 33.1569 6 31.5 6Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.5 15H34.5\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCreditCardIcon36X36);\nexport default __webpack_public_path__ + \"static/media/creditCardIcon_36x36.197756c8.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgAwardIcon36X36(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 36,\n height: 36,\n viewBox: \"0 0 36 36\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 22.5C23.799 22.5 28.5 17.799 28.5 12C28.5 6.20101 23.799 1.5 18 1.5C12.201 1.5 7.5 6.20101 7.5 12C7.5 17.799 12.201 22.5 18 22.5Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.315 20.835L10.5 34.5L18 30L25.5 34.5L23.685 20.82\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAwardIcon36X36);\nexport default __webpack_public_path__ + \"static/media/awardIcon_36x36.a22ef281.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgFilterIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.6663 2H1.33301L6.66634 8.30667V12.6667L9.33301 14V8.30667L14.6663 2Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFilterIcon16X16);\nexport default __webpack_public_path__ + \"static/media/filterIcon_16x16.bfa368e8.svg\";\nexport { ForwardRef as ReactComponent };","import TableHeaderSortable from '../common/TableHeaderSortable'\n\nconst TalksTableHeader = ({ order, orderBy, onRequestSort, loading }) => {\n const headCells = [\n {\n id: 'checkbox',\n label: '',\n // displayBreakpoint: 'sm'\n },\n { id: 'date', label: 'Date' },\n { id: 'eventOrganization', label: 'Organization', displayBreakpoint: 'md' },\n { id: 'talkTitle', label: 'Talk Title' },\n {\n id: 'compensation',\n label: 'Rate',\n align: 'center',\n displayBreakpoint: 'lg',\n },\n {\n id: 'rating',\n label: 'Valuable',\n align: 'center',\n tooltip: 'Percent who answered yes to if they found your talk valuable.',\n displayBreakpoint: 'lg',\n },\n {\n id: 'responses',\n label: 'Responses',\n align: 'center',\n tooltip:\n 'Total number of attendees who answered at least 1 question in the review flow.',\n displayBreakpoint: 'sm',\n },\n {\n id: 'leads',\n label: 'Leads',\n align: 'center',\n tooltip:\n 'Total number of attendees who want to either book or refer you. Email opt-in only contacts are not included in this total.',\n displayBreakpoint: 'sm',\n },\n {\n id: 'actions',\n label: 'Actions',\n align: 'center',\n },\n ]\n\n return (\n \n )\n}\n\nexport default TalksTableHeader\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgChatBubbleSquareIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14 10C14 10.3536 13.8595 10.6928 13.6095 10.9428C13.3594 11.1929 13.0203 11.3333 12.6667 11.3333H4.66667L2 14V3.33333C2 2.97971 2.14048 2.64057 2.39052 2.39052C2.64057 2.14048 2.97971 2 3.33333 2H12.6667C13.0203 2 13.3594 2.14048 13.6095 2.39052C13.8595 2.64057 14 2.97971 14 3.33333V10Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgChatBubbleSquareIcon16X16);\nexport default __webpack_public_path__ + \"static/media/chatBubbleSquareIcon_16x16.6679b274.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgMergeIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 17,\n height: 16,\n viewBox: \"0 0 17 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.209961 3.62117C1.20515 5.03719 3.7277 7.17751 7.74508 8.26064C4.0178 9.38045 1.66325 11.4013 0.710009 12.7576L1.93723 13.6201C3.0418 12.0485 7.00583 8.82955 13.9206 8.94173L11.6996 12.273L12.9476 13.1051L15.9476 8.60545L16.242 8.16391L15.9236 7.73938L12.9236 3.73971L11.7236 4.63976L13.8144 7.42717C6.6561 7.67109 2.56255 4.3599 1.43719 2.75867L0.209961 3.62117Z\",\n fill: \"#323A46\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMergeIcon16X16);\nexport default __webpack_public_path__ + \"static/media/mergeIcon_16x16.fa79dc33.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgRefreshIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_206_2822)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.666992 13.3334V9.33337H4.66699\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.333 2.66663V6.66663H11.333\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.34033 6.00001C2.67844 5.04453 3.25308 4.19028 4.01064 3.51696C4.76819 2.84363 5.68397 2.37319 6.67252 2.14952C7.66106 1.92584 8.69016 1.95624 9.66379 2.23786C10.6374 2.51948 11.5238 3.04315 12.2403 3.76001L15.3337 6.66668M0.666992 9.33334L3.76033 12.24C4.47682 12.9569 5.36324 13.4805 6.33687 13.7622C7.31049 14.0438 8.33959 14.0742 9.32813 13.8505C10.3167 13.6268 11.2325 13.1564 11.99 12.4831C12.7476 11.8097 13.3222 10.9555 13.6603 10\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_206_2822\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRefreshIcon16X16);\nexport default __webpack_public_path__ + \"static/media/refreshIcon_16x16.b1842e5c.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgArrowRight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.33301 8H12.6663\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 3.33337L12.6667 8.00004L8 12.6667\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowRight);\nexport default __webpack_public_path__ + \"static/media/arrowRight.ce0bd778.svg\";\nexport { ForwardRef as ReactComponent };","import Api from './api'\n\nexport const syncEventLeadsWithSpeakerflow = async ({ event }) => {\n const params = {\n event_leads: {\n event_id: event.id,\n },\n }\n\n return await Api.syncEventLeadsWithSpeakerflow(params)\n}\n","import { styled } from '@mui/system'\nimport { Tooltip, Button } from '@mui/material'\n\nimport {\n ActionsTableCell,\n SessionFromEventIcon,\n TableCellContent,\n TableCellPrimaryContent,\n TableCellSecondaryContent,\n} from '../common/TableComponents'\nimport TableActionsDropdown from '../common/TableActionsDropdown'\nimport CheckBoxStyled from '../common/CheckBoxStyled'\nimport TableChip from '../common/TableChip'\nimport TableCellStyled from '../common/TableCellStyled'\nimport { ReactComponent as LockIcon } from '../../icons/lockIcon_16x16.svg'\n\nimport { formatDate } from '../common/helpers'\nimport { renderCurrency, renderPercentage } from '../../utils/number'\n\nconst StyledButton = styled(Button)(({ theme }) => ({\n padding: theme.spacing(1),\n fontSize: '0.75rem',\n lineHeight: 'normal',\n borderRadius: theme.shape.borderRadius.xs,\n borderColor: theme.palette.neutral.veryLight,\n}))\n\nconst TalksTableRowSpeaker = ({\n event,\n isEventOwner,\n handleSelectEvent,\n menuItems,\n goToEventReport,\n handleOpenEventForm,\n}) => {\n const handleCellClick = (value) => {\n // if cell does not contain a value AND user is event owner return,\n // let button handle click, otherwise open event report\n if (\n (value === '' || value === null || value === undefined) &&\n isEventOwner\n ) {\n return\n }\n goToEventReport(event)\n }\n\n // Locked codes should override the default eventCode value\n const eventCodeToDisplay = event.lockedOfferCode\n ? event.lockedOfferCode\n : event.eventCode\n\n const renderCellContent = ({ value, editButtonText = 'Add' }) => {\n if (value) {\n return <>{value}\n }\n\n return (\n <>\n {isEventOwner ? (\n
    \n handleOpenEventForm(event)}>\n {editButtonText}\n \n
    \n ) : (\n <>---\n )}\n \n )\n }\n\n const renderSelectCell = () => {\n if (!isEventOwner) {\n return (\n \n E\n \n )\n }\n\n return (\n \n )\n }\n\n return (\n <>\n \n {renderSelectCell()}\n \n handleCellClick(event.date)}\n width=\"115px\"\n textWrap=\"nowrap\">\n \n {renderCellContent({\n value: formatDate(event.date, event.utcOffset),\n })}\n {isEventOwner && event.unviewedSubmissionCount > 0 && (\n \n \n \n )}\n \n \n handleCellClick(event.eventOrganization)}\n width=\"20%\"\n padding={event.eventOrganization ? 'normal' : 'none'}\n displayBreakpoint=\"md\">\n \n \n {renderCellContent({ value: event.eventOrganization })}\n \n {event.eventName && (\n \n {event.eventName}\n \n )}\n \n \n handleCellClick(event.talkTitle)}\n minWidth=\"160px\"\n fontWeight={event.talkTitle && '600'}\n padding={event.talkTitle ? 'normal' : 'none'}>\n \n {renderCellContent({\n value: event.talkTitle,\n editButtonText: 'Add Talk Title',\n })}\n {eventCodeToDisplay && (\n \n \n }\n />\n \n \n )}\n \n \n\n handleCellClick(event.compensation)}>\n {renderCellContent({\n value: renderCurrency(event.compensation),\n })}\n \n \n {renderPercentage(parseInt(event.rating))}\n \n \n {event.responses}\n \n \n {event.leads}\n \n \n \n \n \n )\n}\n\nexport default TalksTableRowSpeaker\n","import { styled } from '@mui/system'\nimport {\n TableCell,\n Checkbox,\n Tooltip,\n Button,\n List,\n ListItem,\n ListItemText,\n ListItemIcon,\n Typography,\n Avatar,\n} from '@mui/material'\n\nimport {\n ActionsTableCell,\n CheckboxTableCell,\n SessionFromEventIcon,\n} from '../common/TableComponents'\nimport TableActionsDropdown from '../common/TableActionsDropdown'\n\nimport { formatDate } from '../common/helpers'\nimport { renderPercentage } from '../../utils/number'\n\nconst SpeakersListAvatar = styled(Avatar)({\n // Note: the image width and height here is a solution to\n // prevent a small black border to show up on the left and top\n // of the image in certain occassions.\n img: {\n width: '102%',\n height: '102%',\n },\n})\n\n// TODO: Refactor this to use common styled table cell\nconst DateCell = styled(TableCell)({\n textWrap: 'nowrap',\n})\n\nconst TalksTableRowGroup = ({\n event,\n isEventOwner,\n handleSelectEvent,\n menuItems,\n goToEventReport,\n handleOpenEventForm,\n}) => {\n const handleCellClick = (value) => {\n // if cell does not contain a value AND user is event owner return,\n // let button handle click, otherwise open event report\n if (\n (value === '' || value === null || value === undefined) &&\n isEventOwner\n ) {\n return\n }\n goToEventReport(event)\n }\n\n const renderCellContent = ({ value, editButtonText = 'add' }) => {\n return (\n <>\n {value ? (\n <>{value}\n ) : (\n handleOpenEventForm(event)}>\n {editButtonText}\n \n )}\n \n )\n }\n\n const renderSpeakerListItem = (speaker) => (\n \n \n \n \n \n {speaker.full_name}\n \n \n )\n\n const renderSpeakerList = () => {\n return (\n \n {event.speakers.map((speaker) => {\n return renderSpeakerListItem(speaker)\n })}\n \n )\n }\n\n return (\n <>\n \n {!isEventOwner ? (\n \n E\n \n ) : (\n \n )}\n \n handleCellClick(event.date)}>\n {renderCellContent({ value: formatDate(event.date, event.utcOffset) })}\n \n handleCellClick(event.talkTitle)}\n padding={event.talkTitle ? 'normal' : 'none'}>\n {renderCellContent({ value: event.talkTitle })}\n \n \n {renderSpeakerList()}\n \n \n {renderPercentage(event.reattend)}\n \n \n {renderPercentage(event.rating)}\n \n \n {event.responses}\n \n \n {event.eventCode?.toUpperCase()}\n \n \n \n \n \n )\n}\n\nexport default TalksTableRowGroup\n","import { useContext, useState } from 'react'\nimport { useHistory } from 'react-router-dom'\nimport { motion } from 'framer-motion/dist/framer-motion'\nimport { styled, useTheme } from '@mui/system'\nimport { TableRow, TableCell, Typography, useMediaQuery } from '@mui/material'\n\nimport { ReactComponent as EyeIcon } from '../../icons/eyeIcon_16x16.svg'\nimport { ReactComponent as EditIcon } from '../../icons/editIcon_16x16.svg'\nimport { ReactComponent as FilterIcon } from '../../icons/filterIcon_16x16.svg'\nimport { ReactComponent as ChatIcon } from '../../icons/chatBubbleSquareIcon_16x16.svg'\nimport { ReactComponent as MergeIcon } from '../../icons/mergeIcon_16x16.svg'\nimport { ReactComponent as RefreshIcon } from '../../icons/refreshIcon_16x16.svg'\nimport { ReactComponent as TrashIcon } from '../../icons/trash2Icon_16x16.svg'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { GroupContext } from '../groups/groupContext'\nimport { AdminContext } from '../admin/adminContext'\nimport { formatDate, eventReportCardShareLink } from '../common/helpers'\nimport { usePermissionHelper } from '../../utils/permission_helper'\nimport { exportEventLeads, exportEventRawData } from '../../utils/exportCsv'\nimport { syncEventLeadsWithSpeakerflow } from '../../services/speakerflow'\n\nimport { GENERIC as UPGRADE_MESSAGE } from '../../constants/messages/upgrade'\n\nimport TalksTableRowSpeaker from './TalksTableRowSpeaker'\nimport TalksTableRowGroup from './TalksTableRowGroup'\nimport TableCellStyled from '../common/TableCellStyled'\nimport CheckBoxStyled from '../common/CheckBoxStyled'\nimport { CheckboxTableCell } from '../common/TableComponents'\n\nconst StyledTableRow = styled(motion(TableRow), {\n shouldForwardProp: (prop) => prop !== 'animationState',\n})(({ theme, animationState }) => ({\n cursor: 'pointer',\n '&:hover': {\n // Set the background color to the hover color if the row is not selected\n // need to do this here to override the animation props\n backgroundColor:\n animationState === 'unselected' &&\n theme.palette.table.hoverRow + ' !important',\n },\n}))\n\nconst MergePrimeEventText = styled('span')(({ theme }) => ({\n fontWeight: 600,\n color: theme.palette.secondary.main,\n cursor: 'pointer',\n '&:hover': {\n textDecoration: 'underline',\n },\n}))\n\nconst TalksTableRow = ({\n event,\n selectEvent,\n deselectEvent,\n handleOpenEventForm,\n handleDeleteEvent,\n handleMergeEventsClick,\n handleMarkEventAsViewed,\n mergableEvents,\n}) => {\n const [downloadingLeads, setDownloadingLeads] = useState(false)\n const [downloadingTestimonials, setDownloadingTestimonials] = useState(false)\n const [syncingLeads, setSyncingLeads] = useState(false)\n\n const { authData, setNotification } = useContext(AuthenticationContext)\n const {\n groupState: { selectedGroup },\n } = useContext(GroupContext)\n const { adminState } = useContext(AdminContext)\n const history = useHistory()\n const theme = useTheme()\n const isMediumScreen = useMediaQuery(theme.breakpoints.down('md'))\n const { canDownloadEventLeads, canUseIntegrations } = usePermissionHelper()\n\n const { user } = authData\n const { speakerflowEnabled, speakerflow_url, isAssociate } = user\n const isEventOwner =\n user?.id === event?.ownerId || selectedGroup?.id === event?.ownerId\n const eventMergable = event.isSelected && !event.isPrimeEvent\n const eventReportShortlink = selectedGroup\n ? selectedGroup.shortlink\n : user.shortlink\n\n const _handleSelectEvent = () => {\n return event.isSelected ? deselectEvent(event) : selectEvent(event)\n }\n\n const goToEventReport = () => {\n // If admin is impersonating, don't go to a new page\n if (adminState?.impersonation?.isActive) {\n return (\n !event.isSelected && history.push(`/event-report/${event.shareKey}`)\n )\n }\n\n isEventOwner && handleMarkEventAsViewed(event)\n\n // Don't go to the event report if the event is currently selected as a merge event\n if (!event.isSelected) {\n const link = document.createElement('a')\n link.href = eventReportCardShareLink(eventReportShortlink, event.shareKey)\n link.target = '_blank'\n link.rel = 'noopener noreferrer'\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n }\n }\n\n const handleDownloadEventLeads = async () => {\n try {\n setDownloadingLeads(true)\n const res = await exportEventLeads({ event })\n setDownloadingLeads(false)\n if (res.errors) {\n throw res.errors\n }\n } catch (err) {\n setNotification(err, 'error')\n }\n }\n\n const handleDownloadEventTestimonials = async () => {\n try {\n setDownloadingTestimonials(true)\n const res = await exportEventRawData({ event })\n setDownloadingTestimonials(false)\n if (res.errors) {\n throw res.errors\n }\n } catch (err) {\n setNotification(err, 'error')\n }\n }\n\n const handleSpeakerflowSync = async () => {\n try {\n setSyncingLeads(true)\n const res = await syncEventLeadsWithSpeakerflow({ event })\n setSyncingLeads(false)\n\n if (!res.errors) {\n setNotification(\n 'Your leads from this event are syncing with speakerflow!',\n 'success'\n )\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(\n 'Oops - looks like there was something wrong with syncing your leads with Speakerflow. Please check your Speakerflow settings on the account settings page and try again. If the problem persists, contact us at hello@talkadot.com!',\n 'error'\n )\n }\n }\n\n const menuItems = [\n {\n text: 'View Report',\n icon: ,\n onClick: goToEventReport,\n visible: true,\n },\n {\n text: 'Edit Event',\n icon: ,\n onClick: () => handleOpenEventForm(event),\n visible: isEventOwner,\n },\n {\n text: 'Download Leads',\n icon: ,\n onClick: handleDownloadEventLeads,\n visible: isEventOwner,\n disabled: !canDownloadEventLeads(),\n tooltipText: !canDownloadEventLeads() && UPGRADE_MESSAGE,\n loading: downloadingLeads,\n },\n {\n text: 'Download All Data',\n icon: ,\n onClick: () => handleDownloadEventTestimonials(),\n visible: isEventOwner,\n disabled: !canDownloadEventLeads(),\n tooltipText: !canDownloadEventLeads() && UPGRADE_MESSAGE,\n loading: downloadingTestimonials,\n },\n {\n text: 'Sync Leads With Speakerflow',\n icon: ,\n onClick: handleSpeakerflowSync,\n visible:\n isEventOwner &&\n canUseIntegrations() &&\n speakerflowEnabled &&\n speakerflow_url,\n loading: syncingLeads,\n },\n {\n text: 'Merge Events',\n icon: ,\n onClick: _handleSelectEvent,\n visible: isEventOwner,\n },\n {\n text: 'Delete Event',\n icon: ,\n onClick: () => handleDeleteEvent(event),\n visible: isEventOwner && !isAssociate,\n },\n ]\n\n const renderRowContent = (onChildOpen, onChildClose) => {\n if (user?.isEventPlanner) {\n // TODO: Update in later round, or maybe not\n // return TalkTableRowEventPlanner\n } else if (selectedGroup) {\n return (\n \n )\n }\n return (\n \n )\n }\n\n const renderSelectedRowContent = () => {\n return (\n <>\n \n \n \n {formatDate(event.date, event.utcOffset)}\n {event.talkTitle}\n \n {event.eventOrganization}\n \n {selectedRowText()}\n \n )\n }\n\n const selectedRowText = () => {\n if (event.isPrimeEvent) {\n return (\n \n {mergableEvents?.length > 0 ? (\n \n {isMediumScreen\n ? 'Merge'\n : 'Merge selected events into this event'}\n \n ) : (\n Select other events to merge into this event\n )}\n \n )\n }\n return (\n \n Merge into selected event\n \n )\n }\n\n const variants = {\n primarySelected: {\n backgroundColor: theme.palette.table.selectedRowPrimary,\n color: theme.palette.base.white,\n boxShadow: theme.shape.boxShadow.sm,\n },\n secondarySelected: {\n backgroundColor: theme.palette.table.selectedRowSecondary,\n boxShadow: theme.shape.boxShadow.xs,\n },\n unselected: {\n backgroundColor: 'inherit',\n boxShadow: 'none',\n },\n hover: {\n backgroundColor: theme.palette.table.hoverRow,\n },\n }\n\n const animationState = () => {\n if (event.isPrimeEvent) {\n return 'primarySelected'\n }\n if (eventMergable) {\n return 'secondarySelected'\n }\n return 'unselected'\n }\n\n return (\n \n {event.isSelected ? renderSelectedRowContent() : renderRowContent()}\n \n )\n}\n\nexport default TalksTableRow\n","import { Typography } from '@mui/material'\nimport { Link } from 'react-router-dom'\n\nimport { styled } from '@mui/system'\n\nconst CodesNoticeContainer = styled('div')(({ theme }) => ({\n backgroundColor: theme.palette.secondary.lightest,\n padding: '12px 20px',\n maxWidth: '640px',\n margin: '10px auto',\n borderRadius: '8px',\n}))\n\nconst StyledLink = styled(Link)(({ theme }) => ({\n textDecoration: 'none',\n fontWeight: 'bold',\n color: theme.palette.secondary.main,\n cursor: 'pointer',\n}))\n\nconst CreateCodeAlert = () => {\n return (\n \n \n 👉 Codes are how you collect feedback.{' '}\n Go make your first code!\n \n \n )\n}\n\nexport default CreateCodeAlert\n","import { useTheme } from '@mui/system'\nimport { styled } from '@mui/system'\nimport { TableRow, TableCell, Button } from '@mui/material'\n\nimport { ReactComponent as EyeIcon } from '../../icons/eyeIcon_16x16.svg'\nimport { ReactComponent as EditIcon } from '../../icons/editIcon_16x16.svg'\nimport { ReactComponent as FilterIcon } from '../../icons/filterIcon_16x16.svg'\nimport { ReactComponent as ChatIcon } from '../../icons/chatBubbleSquareIcon_16x16.svg'\nimport { ReactComponent as MergeIcon } from '../../icons/mergeIcon_16x16.svg'\nimport { ReactComponent as RefreshIcon } from '../../icons/refreshIcon_16x16.svg'\nimport { ReactComponent as TrashIcon } from '../../icons/trash2Icon_16x16.svg'\n\nimport {\n ActionsTableCell,\n CheckboxTableCell,\n TableCellContent,\n TableCellSecondaryContent,\n} from '../common/TableComponents'\nimport CheckBoxStyled from '../common/CheckBoxStyled'\nimport TableChip from '../common/TableChip'\nimport TableActionsDropdown from '../common/TableActionsDropdown'\nimport TableCellStyled from '../common/TableCellStyled'\nimport { VideoPlayerComponent } from '../common/VideoPlayerComponent'\nimport CreateCodeAlert from '../common/CreateCodeAlert'\n\nimport { renderCurrency, renderPercentage } from '../../utils/number'\n\nconst VideoTableRow = styled(TableRow)(({ theme }) => ({\n [theme.breakpoints.down('md')]: {\n display: 'none',\n },\n}))\n\nconst TalksTableRowSpeakerPlaceholder = ({ handleOpenEventForm }) => {\n const theme = useTheme()\n const color = theme.palette.neutral.light\n const menuItems = [\n {\n text: 'View Report',\n icon: ,\n onClick: () => {},\n visible: true,\n disabled: true,\n },\n {\n text: 'Edit Event',\n icon: ,\n onClick: () => {},\n visible: true,\n disabled: true,\n },\n {\n text: 'Download Leads',\n icon: ,\n onClick: () => {},\n visible: true,\n disabled: true,\n },\n {\n text: 'Download All Data',\n icon: ,\n onClick: () => {},\n visible: true,\n disabled: true,\n },\n {\n text: 'Sync Leads With Speakerflow',\n icon: ,\n onClick: () => {},\n visible: true,\n disabled: true,\n },\n {\n text: 'Merge Events',\n icon: ,\n onClick: () => {},\n visible: true,\n disabled: true,\n },\n {\n text: 'Delete Event',\n icon: ,\n onClick: () => {},\n visible: true,\n disabled: true,\n },\n ]\n\n return (\n <>\n \n \n \n \n \n Jan 18, 2024\n \n \n \n Your talk title\n \n \n \n \n \n \n Organization\n \n \n {renderCurrency(5000)}\n \n \n {renderPercentage(93)}\n \n \n 42\n \n \n 38\n \n \n \n \n \n \n \n \n \n Add a talk!\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default TalksTableRowSpeakerPlaceholder\n","import { useContext } from 'react'\n\nimport { GroupContext } from '../groups/groupContext'\n\nimport TalksTableRowSpeakerPlaceholder from './TalksTableRowSpeakerPlaceholder'\n\nconst TalksTablePlaceHolder = ({ user, handleOpenEventForm }) => {\n const {\n groupState: { selectedGroup },\n } = useContext(GroupContext)\n\n const renderPlaceholderRows = () => {\n if (user?.isEventPlanner) {\n return
    EventPlannerPlaceHolder
    \n } else if (selectedGroup) {\n return
    GroupPlaceHolder
    \n } else {\n return (\n \n )\n }\n }\n\n return <>{renderPlaceholderRows()}\n}\n\nexport default TalksTablePlaceHolder\n","import { useEffect, useState } from 'react'\nimport {\n Paper,\n Table,\n TableContainer,\n TableBody,\n TableRow,\n TableCell,\n Skeleton,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\n\nimport TalksTableHeader from './TalksTableHeader'\nimport TalksTableRow from './TalksTableRow'\nimport TalksTablePlaceHolder from './TalksTablePlaceHolder'\nimport TablePaginationFooter from '../common/TablePaginationFooter'\n\nimport { getComparator } from '../../utils/sort'\n\nconst TalksTable = ({\n events,\n loading,\n handleOpenEventForm,\n handleDeleteEvent,\n handleMergeEventsClick,\n handleMarkEventAsViewed,\n mergableEvents,\n selectEvent,\n deselectEvent,\n}) => {\n const [page, setPage] = useState(0)\n // const [rowsPerPage, setRowsPerPage] = useState(5)\n const [order, setOrder] = useState('desc')\n const [orderBy, setOrderBy] = useState('')\n const [visibleRows, setVisibleRows] = useState([])\n\n const theme = useTheme()\n const isLargeScreen = useMediaQuery(theme.breakpoints.down('lg'))\n const isMediumScreen = useMediaQuery(theme.breakpoints.down('md'))\n const isSmallScreen = useMediaQuery(theme.breakpoints.down('sm'))\n\n const rowsPerPage = 25\n\n useEffect(() => {\n setVisibleRows(\n events\n .slice()\n .sort(getComparator(order, orderBy))\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n )\n }, [events, page, rowsPerPage, order, orderBy])\n\n const handleChangePage = (newPage) => {\n setPage(newPage)\n }\n\n // const emptyRows =\n // page > 0 ? Math.max(0, (1 + page) * rowsPerPage - events.length) : 0\n\n let skeletonColumns = 7\n if (isSmallScreen) {\n skeletonColumns = 2\n } else if (isMediumScreen) {\n skeletonColumns = 4\n } else if (isLargeScreen) {\n skeletonColumns = 5\n }\n\n const renderLoadingSkeleton = () =>\n Array.from({ length: 3 }).map((_, index) => (\n \n \n {Array.from({ length: skeletonColumns }).map((_, cellIndex) => (\n \n \n \n ))}\n \n \n ))\n\n const handleRequestSort = (property) => {\n const isAsc = orderBy === property && order === 'asc'\n setOrder(isAsc ? 'desc' : 'asc')\n setOrderBy(property)\n }\n\n const renderTableRows = () => {\n if (loading) {\n return renderLoadingSkeleton()\n }\n\n if (visibleRows.length === 0) {\n return \n }\n\n return visibleRows.map((event) => (\n \n ))\n }\n\n return (\n <>\n \n \n \n \n {renderTableRows()}\n {/* NOTE: Commented this out because with 25 rows as the default this looks bad */}\n {/* {emptyRows > 0 && (\n \n \n \n )} */}\n \n
    \n
    \n \n \n )\n}\n\nexport default TalksTable\n","import { useEffect, useContext, useState } from 'react'\nimport { Dialog, useMediaQuery, useTheme, Box, IconButton } from '@mui/material'\nimport { Link } from 'react-router-dom'\nimport CloseIcon from '@mui/icons-material/Close'\n\nimport { ReactComponent as PlusIcon } from '../../icons/plusIcon.svg'\nimport { ReactComponent as TotalFeedbackIcon } from '../../icons/smileIcon_36x36.svg'\nimport { ReactComponent as TotalTalksIcon } from '../../icons/microPhoneIcon_36x36.svg'\nimport { ReactComponent as RevenueYearIcon } from '../../icons/creditCardIcon_36x36.svg'\nimport { ReactComponent as RevenueAllTimeIcon } from '../../icons/awardIcon_36x36.svg'\n\nimport Api from '../../services/api'\nimport { trackFirstEventCreated } from '../../services/metrics'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { GroupContext } from '../groups/groupContext'\nimport { AdminContext } from '../admin/adminContext'\nimport { formatDate, processWithFallback } from '../common/helpers'\nimport { renderCurrency } from '../../utils/number'\n\nimport TalksTable from './TalksTable'\nimport PageContainer from '../common/PageContainer'\nimport PageHeader from '../common/PageHeader'\nimport StatsSummaryHeader from '../common/StatsSummaryHeader'\nimport TableActions from '../common/TableActions'\nimport ConfirmDialog from '../common/ConfirmDialog'\nimport EventFormParent from '../events/EventFormParent'\nimport { Notification } from '../common/Notification'\n\nimport moment from 'moment'\nimport WebinarAlert from '../helpCenter/WebinarAlert'\n\nconst initialEventState = {\n id: '',\n name: '',\n talkTitle: '',\n inPerson: '',\n virtual: '',\n eventOrganization: '',\n startTime: '',\n duration: '',\n date: '',\n compensation: '',\n}\n\nconst initialConfirmProps = {\n title: '',\n onConfirm: () => {},\n onCancel: () => {},\n buttonColor: '',\n buttonText: '',\n cancelButtonText: '',\n manualConfirm: false,\n columnLayout: false,\n confirmText: '',\n children: '',\n}\n\nconst TalksParent = () => {\n const [events, setEvents] = useState([])\n const [eventsLoading, setEventsLoading] = useState(true)\n const [event, setEvent] = useState(initialEventState)\n const [eventFormOpen, setEventFormOpen] = useState(false)\n const [confirmOpen, setConfirmOpen] = useState(false)\n const [confirmProps, setConfirmProps] = useState(initialConfirmProps)\n const theme = useTheme()\n const fullScreen = useMediaQuery(theme.breakpoints.down('sm'))\n const {\n authData: { user },\n setNotification,\n showFullPageLoader,\n hideFullPageLoader,\n updateCounter,\n } = useContext(AuthenticationContext)\n const {\n groupState: { selectedGroup },\n } = useContext(GroupContext)\n const {\n adminState: { impersonation },\n } = useContext(AdminContext)\n const { isTrialing, shouldShowUpgrades } = user.membership\n\n useEffect(() => {\n const fetchEvents = async () => {\n try {\n const res = await Api.loadEvents()\n\n if (!res.errors) {\n const filteredEvents = res.filter((event) => shouldShowEvent(event))\n setEventsLoading(false)\n setEvents(filteredEvents)\n } else {\n throw res.errors\n }\n } catch (err) {\n setEventsLoading(false)\n return setNotification(err, 'error')\n }\n }\n\n fetchEvents()\n }, [])\n\n useEffect(() => {\n if (!eventsLoading) {\n const updatedCount = events.filter(\n (event) => event.isOwner && event.unviewedSubmissionCount > 0\n ).length\n\n updateCounter({ unviewedEvents: updatedCount })\n }\n }, [events, eventsLoading])\n\n const enoughResponses = (event) => {\n return event.responses > 0\n }\n\n const validMetaData = (event) => {\n return event.talkTitle || event.organization\n }\n\n const isFutureEvent = (event) => {\n return moment(event.date) > moment().add(-1, 'days')\n }\n\n const shouldShowEvent = (event) => {\n // Note:\n // This function needs to remain backwards compatible from before we\n // added the ability to track if an event is system generated or not\n\n // Hide any system generated event without enough responses\n if (event.isSystemGenerated && !enoughResponses(event)) {\n return false\n }\n\n return (\n enoughResponses(event) || validMetaData(event) || isFutureEvent(event)\n )\n }\n\n const primeEvent = events?.find((event) => event.isPrimeEvent)\n const totalFeedback = events?.reduce((acc, event) => acc + event.responses, 0)\n const totalTalks = events?.length\n\n const revenueThisYear = events\n ?.filter((event) => moment(event.date) > moment().startOf('year'))\n .reduce((acc, event) => acc + event.compensation, 0)\n\n const revenueAllTime = events?.reduce(\n (acc, event) => acc + event.compensation,\n 0\n )\n\n const mergableEvents = events?.filter(\n (event) => event.isSelected && !event.isPrimeEvent\n )\n\n const handleOpenEventForm = (clickedEvent) => {\n if (clickedEvent) {\n setEvent(clickedEvent)\n }\n\n setEventFormOpen(true)\n }\n\n const handleCloseEventForm = () => {\n setEventFormOpen(false)\n setEvent(initialEventState)\n }\n\n const createEvent = async (params) => {\n try {\n const res = await Api.createEvent(params)\n\n if (res.errors) {\n throw res.errors\n } else {\n if (events?.length === 0) {\n const params = {\n user_id: user?.id,\n user_email: user?.email,\n }\n trackFirstEventCreated(params)\n }\n\n setEvents([res, ...events])\n }\n } catch (err) {\n setNotification(err, 'error')\n }\n }\n\n const editEvent = async (eventId, params) => {\n try {\n const res = await Api.editEvent(eventId, params)\n\n if (res.errors) {\n throw res.errors\n } else {\n setEvents(events.map((event) => (event.id === res.id ? res : event)))\n }\n } catch (err) {\n setNotification(err, 'error')\n }\n }\n\n const handleMarkEventAsViewed = async (event) => {\n if (event.unviewedSubmissionCount === 0) return\n\n await editEvent(event.id, { new_submissions: 0 })\n }\n\n const handleConfirmDelete = async (eventToDelete) => {\n if (eventToDelete) {\n try {\n let res\n if (selectedGroup) {\n res = await Api.deleteGroupEvent(eventToDelete.id, selectedGroup.id)\n } else {\n res = await Api.deleteEvent(eventToDelete.id)\n }\n\n if (!res.errors) {\n setNotification('Delete Success!', 'success')\n setEvents(events.filter((event) => event.id !== eventToDelete.id))\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err, 'error')\n }\n }\n }\n\n const handleConfirmMergeEvents = async () => {\n try {\n showFullPageLoader()\n\n const params = {\n event_merges: {\n event_ids: mergableEvents.map((event) => event.id),\n prime_event_id: primeEvent.id,\n },\n ...(selectedGroup ? { group_id: selectedGroup.id } : {}),\n }\n\n let res\n if (selectedGroup) {\n res = await Api.mergeGroupEvent(params)\n } else {\n res = await Api.mergeEvent(params)\n }\n\n if (res.errors) {\n throw res.errors\n } else {\n const filteredEvents = res.filter((event) => shouldShowEvent(event))\n setNotification('Event Merge Successful!', 'success')\n setEvents(filteredEvents)\n hideFullPageLoader()\n }\n } catch (err) {\n hideFullPageLoader()\n setNotification(err, 'error')\n }\n }\n\n const selectEvent = (eventToSelect) => {\n // If there is no event selected, set this one to be event prime\n if (!events.some((event) => event.isPrimeEvent)) {\n setEvents(\n events.map((event) =>\n eventToSelect.id === event.id\n ? { ...event, isPrimeEvent: true, isSelected: true }\n : { ...event }\n )\n )\n } else {\n setEvents(\n events.map((event) =>\n eventToSelect.id === event.id\n ? { ...event, isSelected: true }\n : { ...event }\n )\n )\n }\n }\n\n const deselectAllEvents = () => {\n // Make sure to set isPrimeEvent to false as well\n setEvents(\n events.map(\n (event) => event && { ...event, isSelected: false, isPrimeEvent: false }\n )\n )\n }\n\n const deselectEvent = (eventToSelect) => {\n // If you deselect the prime event, deselect all of them\n if (eventToSelect.isPrimeEvent) {\n deselectAllEvents()\n } else {\n setEvents(\n events.map((event) =>\n eventToSelect.id === event.id\n ? { ...event, isSelected: false }\n : { ...event }\n )\n )\n }\n }\n\n const handleMergeEvents = async () => {\n await handleConfirmMergeEvents()\n setConfirmOpen(false)\n }\n\n const mergeConfirmContent = () => (\n \n Are you sure you want to merge these events?{' '}\n \n Merging {mergableEvents.length} event\n {mergableEvents?.length > 1 ? 's' : ''} into{' '}\n {formatDate(primeEvent.date, primeEvent.utcOffset)}{' '}\n {primeEvent.talkTitle ? `- ${primeEvent.talkTitle}` : ''} is NOT\n reversible.\n \n \n )\n\n const handleMergeEventsClick = () => {\n if (mergableEvents.length > 0) {\n setConfirmProps({\n title: 'Merge Events?',\n buttonColor: 'black',\n children: mergeConfirmContent(),\n onConfirm: () => handleMergeEvents(),\n })\n\n setConfirmOpen(true)\n }\n }\n\n const handleDeleteEvent = (eventToDelete) => {\n setConfirmProps({\n title: 'Are you sure you want to delete this event?',\n onConfirm: () => handleConfirmDelete(eventToDelete),\n buttonColor: 'black',\n buttonText:\n 'I understand the consequences, delete this event and related data',\n cancelButtonText: 'Cancel request, keep this event',\n manualConfirm: true,\n columnLayout: true,\n confirmText: 'DELETE ALL',\n children:\n eventToDelete?.responses > 0 || eventToDelete?.leads > 0 ? (\n <>\n You will also be deleting{' '}\n {eventToDelete?.responses > 0\n ? `${eventToDelete.responses} responses`\n : ''}\n {eventToDelete?.leads > 0\n ? ` and ${eventToDelete.leads} leads`\n : ''}{' '}\n related to{' '}\n {eventToDelete?.talkTitle ? (\n <>\"{eventToDelete.talkTitle}\"\n ) : (\n 'this event'\n )}{' '}\n on {formatDate(eventToDelete.date, eventToDelete.offset)}.\n \n ) : (\n <>\n ),\n })\n setConfirmOpen(true)\n }\n\n const statsSummaryItems = [\n {\n label: 'Total Feedback',\n icon: ,\n svgType: 'stroke',\n value: processWithFallback(totalFeedback),\n },\n {\n label: 'Total Talks',\n icon: ,\n svgType: 'stroke',\n value: processWithFallback(totalTalks),\n },\n // {\n // label: 'Upcoming Talks',\n // value: events?.filter((event) => moment(event.date) > moment()).length,\n // },\n {\n label: 'Talks Booked This Year',\n icon: ,\n svgType: 'stroke',\n value: processWithFallback(\n revenueThisYear,\n { fallback: '$-' },\n renderCurrency\n ),\n },\n {\n label: 'Talks Booked All Time',\n icon: ,\n svgType: 'stroke',\n value: processWithFallback(\n revenueAllTime,\n { fallback: '$-' },\n renderCurrency\n ),\n },\n ]\n\n return (\n \n \n \n {!eventsLoading && !events?.find((event) => enoughResponses(event)) && (\n \n Once you start using your Talkadot Codes,\n your talk data will automatically appear here.\n \n )}\n \n ,\n }}\n />\n \n handleCloseEventForm()}>\n \n handleCloseEventForm()}>\n \n \n \n \n \n \n {confirmProps.children}\n \n \n )\n}\n\nexport default TalksParent\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgFileIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.66699 1.33337H4.00033C3.6467 1.33337 3.30756 1.47385 3.05752 1.7239C2.80747 1.97395 2.66699 2.31309 2.66699 2.66671V13.3334C2.66699 13.687 2.80747 14.0261 3.05752 14.2762C3.30756 14.5262 3.6467 14.6667 4.00033 14.6667H12.0003C12.3539 14.6667 12.6931 14.5262 12.9431 14.2762C13.1932 14.0261 13.3337 13.687 13.3337 13.3334V6.00004L8.66699 1.33337Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.66699 1.33337V6.00004H13.3337\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFileIcon16X16);\nexport default __webpack_public_path__ + \"static/media/fileIcon_16x16.8901f65d.svg\";\nexport { ForwardRef as ReactComponent };","import { styled } from '@mui/system'\n\nimport { TextField, Typography, Button } from '@mui/material'\n\n// Note:\n// If we upgrade material-ui, this functionality is built into the standard Button\nimport LoadingButton from '@mui/lab/LoadingButton'\n\nexport const StyledTextField = styled(TextField, {\n shouldForwardProp: (prop) => prop !== 'withAdornment',\n})(({ theme, withAdornment }) => ({\n '& .MuiOutlinedInput-root': {\n borderRadius: theme.shape.borderRadius.sm,\n paddingLeft: withAdornment && '0px',\n },\n marginTop: theme.spacing(1.5),\n marginBottom: theme.spacing(1.5),\n '& .MuiInputAdornment-root': {\n backgroundColor: theme.palette.neutral.extraLight,\n // Make sure this matches the textfield padding\n padding: '28px 14px',\n borderTopLeftRadius: theme.shape.borderRadius.sm,\n borderBottomLeftRadius: theme.shape.borderRadius.sm,\n },\n '& .Mui-focused': {\n '& .MuiInputAdornment-root': {\n transition: '200ms all ease-in-out',\n backgroundColor: theme.palette.secondary.extraLight,\n color: theme.palette.secondary.main,\n },\n },\n}))\n\nexport const MainContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(5),\n [theme.breakpoints.down('md')]: {\n gap: theme.spacing(0),\n },\n [theme.breakpoints.down('sm')]: {\n margin: theme.spacing(0, -3),\n },\n}))\n\nexport const SecondaryContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n height: 'min-content',\n padding: theme.spacing(5, 2.5),\n backgroundColor: theme.palette.base.white,\n}))\n\nexport const HeaderContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n paddingLeft: theme.spacing(2.5),\n paddingRight: theme.spacing(0.75),\n minHeight: theme.spacing(5.5),\n background: theme.palette.surface.subtle,\n borderTopLeftRadius: theme.shape.borderRadius.xxs,\n borderTopRightRadius: theme.shape.borderRadius.xxs,\n}))\n\nexport const FormContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n margin: '0 auto',\n border: `1px solid ${theme.palette.border.main}`,\n borderRadius: theme.shape.borderRadius.xxs,\n width: '900px',\n [theme.breakpoints.down('lg')]: {\n width: '100%',\n },\n}))\n\nexport const FormContainerInner = styled('div')(({ theme }) => ({\n display: 'flex',\n padding: '1.25rem',\n marginBottom: theme.spacing(2),\n position: 'relative',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n },\n}))\n\nexport const HeaderSubtext = styled(Typography)(({ theme }) => ({\n flex: 1,\n color: theme.palette.text.hint,\n fontWeight: theme.fontWeights.semiBold,\n marginRight: theme.spacing(1),\n span: {\n color: theme.palette.text.link,\n },\n svg: {\n path: {\n stroke: theme.palette.neutral.darkest,\n },\n },\n}))\n\nexport const NavActionContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: theme.spacing(3, 0),\n}))\n\nexport const NavActionButton = styled(LoadingButton, {\n shouldForwardProp: (prop) => prop !== 'darkMode',\n})(({ theme, disabled, darkMode }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: theme.spacing(1),\n color: darkMode ? theme.palette.neutral.dark : theme.palette.base.white,\n svg: {\n minWidth: '16px',\n path: {\n stroke: disabled\n ? theme.palette.action.disabled\n : darkMode\n ? theme.palette.neutral.dark\n : theme.palette.base.white,\n },\n },\n [theme.breakpoints.down('md')]: {\n '& .button-text': {\n display: 'none',\n },\n },\n}))\n\nexport const StepNumber = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '42px',\n height: '42px',\n padding: '0.625rem',\n marginRight: theme.spacing(3),\n marginBottom: theme.spacing(3),\n backgroundColor: theme.palette.neutral.dark,\n borderRadius: theme.shape.borderRadius.xs,\n h5: {\n color: theme.palette.base.white,\n },\n}))\n\nexport const FormContentContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n})\n\nexport const LinkButton = styled(Typography)(({ theme }) => ({\n cursor: 'pointer',\n color: theme.palette.secondary.main,\n}))\n\nexport const CharacterCounter = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'isError',\n})(({ theme, isError }) => ({\n color: isError ? theme.palette.error.main : theme.palette.text.secondary,\n position: 'absolute',\n bottom: -20,\n right: 0,\n}))\n\nconst TitleContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n minHeight: '39px',\n}))\n\nconst Title = styled(Typography)(({ theme }) => ({\n fontWeight: theme.fontWeights.semiBold,\n}))\n\nconst Caption = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.main,\n}))\n\nexport const HeaderActionButtonsContainer = styled('div')(({ theme }) => ({\n marginRight: theme.spacing(2),\n display: 'flex',\n gap: theme.spacing(1.5),\n justifyContent: 'flex-end',\n}))\n\nexport const HeaderActionButton = styled(Button)(({ theme }) => ({\n height: '32px',\n backgroundColor: theme.palette.base.white,\n borderRadius: theme.shape.borderRadius.xs,\n color: theme.palette.neutral.darkest,\n whiteSpace: 'nowrap',\n '&:disabled': {\n svg: {\n path: {\n stroke: theme.palette.action.disabled,\n },\n },\n },\n svg: {\n path: {\n stroke: theme.palette.neutral.darkest,\n },\n },\n [theme.breakpoints.down('lg')]: {\n minWidth: '32px',\n '& .button-text': {\n display: 'none',\n },\n '& .MuiButton-startIcon': { margin: 0 },\n },\n}))\n\nexport const FieldCaption = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.main,\n}))\n\nconst FormSectionTitle = ({ title, subTitle, caption }) => {\n return (\n \n {title}\n {subTitle && {subTitle}}\n {caption && {caption}}\n \n )\n}\n\nexport const FullFormSection = ({\n stepNumber,\n title,\n subTitle,\n caption,\n children,\n}) => (\n \n {stepNumber && (\n \n {stepNumber}\n \n )}\n \n \n {children}\n \n \n)\n\nexport const HeaderSubtextContainer = ({ headerSubtext }) => (\n \n {headerSubtext}\n \n)\n","import { useState } from 'react'\nimport { styled } from '@mui/system'\nimport { CircularProgress, Typography } from '@mui/material'\n\nimport { ReactComponent as ArrowRight } from '../../../icons/arrowRight.svg'\nimport { ReactComponent as ArrowLeft } from '../../../icons/arrowLeft.svg'\n\nimport FormFieldError from '../../common/FormFieldError'\n\nimport { humanizeError } from '../../../utils/errorFormatter'\n\nimport Api from '../../../services/api'\n\nimport {\n FormContainer,\n NavActionButton,\n NavActionContainer,\n StyledTextField,\n FullFormSection,\n HeaderSubtextContainer,\n CharacterCounter,\n} from '../../common/FormComponents'\n\nconst LoadingContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n})\n\nconst LoadingOverlay = styled('div')(({ theme }) => ({\n position: 'absolute',\n top: theme.spacing(1.5), // Match TextField's marginTop\n left: 0,\n right: 0,\n bottom: theme.spacing(1.5), // Match TextField's marginBottom\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: theme.spacing(2),\n backgroundColor: 'rgba(255, 255, 255, 0.6)',\n zIndex: theme.zIndex.modal - 1,\n borderRadius: theme.shape.borderRadius.sm, // Match TextField's borderRadius\n}))\n\nconst LoadingContent = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: theme.spacing(2),\n}))\n\nconst MAX_PROMPT_CHARACTERS = 7500\n\nconst SpeechTopicPromptParent = ({\n speechTopic,\n setSpeechTopic,\n setCurrentStep,\n setGenericError,\n}) => {\n const [promptContent, setPromptContent] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const [promptError, setPromptError] = useState('')\n\n const validatePromptInput = () => {\n if (promptContent?.length > MAX_PROMPT_CHARACTERS) {\n setPromptError(\n `The maximum number of characters you can use is ${MAX_PROMPT_CHARACTERS}. Please shorten your content and try again.`\n )\n return false\n }\n\n setPromptError('')\n return true\n }\n\n const handlePromptChange = (value) => {\n setPromptError('')\n setPromptContent(value)\n }\n\n const submitPrompt = async () => {\n if (!validatePromptInput()) {\n return\n }\n\n // Don't run the AI system if there's no content\n if (!promptContent.trim()) {\n return setCurrentStep(2)\n }\n\n setIsLoading(true)\n try {\n const params = {\n signature_talk: {\n prompt: promptContent,\n },\n }\n const res = await Api.generateSignatureTalkFromPrompt(params)\n if (!res.errors) {\n setSpeechTopic({\n ...speechTopic,\n description: res.description,\n title: res.title,\n outcomes: Array.isArray(res.outcomes) ? res.outcomes : [],\n })\n setCurrentStep(2)\n } else {\n throw res.errors\n }\n } catch (error) {\n setGenericError(humanizeError(error))\n } finally {\n setIsLoading(false)\n }\n }\n\n return (\n <>\n \n \n\n \n {promptError && }\n handlePromptChange(e.target.value)}\n minRows={10}\n maxRows={16}\n placeholder=\"Describe what you speak on in a few words, or paste in information about what you speak on and we will generate a topic for you\"\n disabled={isLoading}\n InputProps={{\n endAdornment: (\n MAX_PROMPT_CHARACTERS}>\n {promptContent.length}/{MAX_PROMPT_CHARACTERS}\n \n ),\n }}\n />\n {isLoading && (\n \n \n \n \n Generating Speech Topic...\n \n \n \n )}\n \n \n \n setCurrentStep(2)}\n loading={isLoading}>\n <>\n \n I'll enter my own topic\n \n \n \n \n <>\n Generate speech topic\n \n \n \n \n \n \n )\n}\n\nexport default SpeechTopicPromptParent\n","import { useEffect, useRef } from 'react'\n\nimport { styled } from '@mui/system'\n\nimport { IconButton, Tooltip, Button, InputAdornment } from '@mui/material'\n\nimport { FullFormSection, StyledTextField } from '../../common/FormComponents'\nimport { ReactComponent as CloseIcon } from '../../../icons/closeIcon.svg'\nimport { ReactComponent as PlusIcon } from '../../../icons/plusIcon.svg'\n\n\nconst OutcomesContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n width: '100%',\n padding: theme.spacing(1.5, 3, 2.5, 3),\n border: `1px solid ${theme.palette.border.main}`,\n borderRadius: theme.shape.borderRadius.xxs,\n}))\n\nconst OutcomeField = styled('div')(({ theme }) => ({\n display: 'flex',\n minHeight: '42px',\n alignItems: 'center',\n gap: theme.spacing(1.5),\n width: '100%',\n}))\n\nconst OutcomeFieldContent = styled('div')(({ theme }) => ({\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n}))\n\nconst AppendLearningOutcomeButton = styled(Button)(({ theme }) => ({\n height: '42px',\n maxWidth: '200px',\n backgroundColor: theme.palette.base.white,\n borderRadius: theme.shape.borderRadius.xs,\n color: theme.palette.neutral.darkest,\n marginTop: theme.spacing(2),\n svg: {\n path: {\n stroke: theme.palette.neutral.darkest,\n },\n },\n [theme.breakpoints.down('md')]: {\n marginRight: theme.spacing(1),\n minWidth: '32px',\n paddingLeft: '8px',\n paddingRight: '8px',\n '& .button-text': {\n display: 'none',\n },\n '& .MuiButton-startIcon': { margin: 0 },\n },\n}))\n\nconst OUTCOMES_LIMIT = 5\n\nconst SpeechTopicOutcomesForm = ({ speechTopic, setSpeechTopic, updateSpeechTopicAttribute, errors, setErrors, validateOutcomes }) => {\n const inputRefs = useRef([])\n const isAddingNewOutcome = useRef(false)\n\n useEffect(() => {\n if (speechTopic.outcomes.length === 0) {\n setSpeechTopic((prev) => ({\n ...prev,\n outcomes: [''],\n }))\n }\n // Update refs array when outcomes length changes\n inputRefs.current = inputRefs.current.slice(0, speechTopic.outcomes.length)\n }, [speechTopic.outcomes.length]) // eslint-disable-line\n\n const handleAddOutcome = () => {\n setSpeechTopic((prev) => ({\n ...prev,\n outcomes: [...prev.outcomes, ''],\n }))\n }\n\n const handleRemoveOutcome = (index) => {\n const newOutcomes = speechTopic.outcomes.filter((_, i) => i !== index)\n setSpeechTopic((prev) => ({\n ...prev,\n outcomes: newOutcomes,\n }))\n updateSpeechTopicAttribute('outcomes', newOutcomes)\n }\n\n const handleOutcomeChange = (index, value) => {\n setSpeechTopic((prev) => ({\n ...prev,\n outcomes: prev.outcomes.map((outcome, i) =>\n i === index ? value : outcome\n ),\n }))\n }\n\n const handleKeyDown = (e, index) => {\n if (e.key === 'Enter') {\n e.preventDefault() // Prevent form submission\n if (speechTopic?.outcomes?.length < OUTCOMES_LIMIT) {\n isAddingNewOutcome.current = true\n handleAddOutcome()\n // Focus the new input after React has updated the DOM\n setTimeout(() => {\n inputRefs.current[index + 1]?.focus()\n isAddingNewOutcome.current = false\n }, 0)\n }\n }\n }\n\n return (\n \n \n {speechTopic.outcomes.map((outcome, index) => (\n \n \n handleOutcomeChange(index, e.target.value)}\n onKeyDown={(e) => handleKeyDown(e, index)}\n inputRef={(el) => (inputRefs.current[index] = el)}\n placeholder={`Outcome ${index + 1}`}\n onBlur={() => {\n if (isAddingNewOutcome.current) return\n if (!validateOutcomes(speechTopic, errors, setErrors)) {\n return\n }\n updateSpeechTopicAttribute('outcomes', speechTopic.outcomes)\n }}\n InputProps={{\n startAdornment: (\n \n
    Outcome {index + 1}
    \n
    \n ),\n }}\n />\n
    \n {\n speechTopic.outcomes.length > 1 && (\n \n handleRemoveOutcome(index)}>\n \n \n \n )\n }\n
    \n ))}\n {speechTopic.outcomes.length < OUTCOMES_LIMIT && (\n }\n onClick={handleAddOutcome}>\n Add an outcome\n \n )}\n
    \n
    \n )\n}\n\nexport default SpeechTopicOutcomesForm","export const CHARACTER_LIMITS = {\n DESCRIPTION: 5000,\n TITLE: 250,\n OUTCOME: 250,\n DEMOGRAPHIC: 150,\n}\n\nexport const MAXIMUM_DEMOGRAPHICS = 10\nexport const MAXIMUM_OUTCOMES = 6\n\nexport const validateSpeechTopic = (speechTopic, errors, setErrors) => {\n const errorUpdate = {\n title: getTitleError(speechTopic.title),\n description: getDescriptionError(speechTopic.description),\n outcomes: getOutcomesError(speechTopic.outcomes),\n demographics: getDemographicError(speechTopic.demographics),\n }\n\n setErrors({\n ...errors,\n ...errorUpdate,\n })\n\n return validErrors(errorUpdate)\n}\n\nexport const validateDemographics = (demographics, errors, setErrors) => {\n const demographicErrors = getDemographicError(demographics)\n\n setErrors({\n ...errors,\n demographics: demographicErrors,\n })\n\n return !demographicErrors\n}\n\nexport const validateOutcomes = (speechTopic, errors, setErrors) => {\n const outcomesError = getOutcomesError(speechTopic.outcomes)\n setErrors({\n ...errors,\n outcomes: outcomesError,\n })\n\n return !outcomesError.length > 0\n}\n\nexport const validateTitle = (speechTopic, errors, setErrors) => {\n const titleError = getTitleError(speechTopic.title)\n setErrors({\n ...errors,\n title: titleError,\n })\n\n return !titleError\n}\n\nexport const validateDescription = (speechTopic, errors, setErrors) => {\n const descriptionError = getDescriptionError(speechTopic.description)\n setErrors({\n ...errors,\n description: descriptionError,\n })\n\n return !descriptionError\n}\n\n// private\n\nconst getDemographicError = (demographics) => {\n if (!validateMaxLength(demographics, MAXIMUM_DEMOGRAPHICS)) {\n return `You can only add up to ${MAXIMUM_DEMOGRAPHICS} audience demographics.`\n }\n\n if (\n demographics.some(\n (value) =>\n !validateExists(value) ||\n !validateMaxLength(value, CHARACTER_LIMITS.DEMOGRAPHIC)\n )\n ) {\n return `Demographic must be between 1 and ${CHARACTER_LIMITS.DEMOGRAPHIC} characters.`\n }\n\n if (!validateArrayUniqueness(demographics)) {\n return 'You have already added this audience demographic!'\n }\n\n return ''\n}\n\nconst getTitleError = (title) => {\n if (!validateExists(title)) {\n return 'Title is required'\n }\n\n if (!validateMaxLength(title, CHARACTER_LIMITS.TITLE)) {\n return `Title must be between 1 and ${CHARACTER_LIMITS.TITLE} characters.`\n }\n\n return ''\n}\n\nconst getDescriptionError = (description) => {\n if (!validateRichHtmlExists(description)) {\n return 'Description is required'\n }\n\n if (!validateRichHtmlLength(description, CHARACTER_LIMITS.DESCRIPTION)) {\n return `Description must be between 1 and ${CHARACTER_LIMITS.DESCRIPTION} characters.`\n }\n\n return ''\n}\n\nconst getOutcomesError = (outcomes) => {\n const outcomeErrors = outcomes.map((outcome, index) => {\n return validateOutcome(outcome, outcomes, index)\n })\n\n const hasErrors = outcomeErrors.some((error) => error !== '')\n\n if (hasErrors) {\n return outcomeErrors\n }\n\n return []\n}\n\nconst validateOutcome = (outcome, allOutcomes, currentIndex) => {\n if (!validateExists(outcome)) {\n return `Outcome cannot be blank`\n }\n\n if (!validateMaxLength(outcome, CHARACTER_LIMITS.OUTCOME)) {\n return `Outcome is too long (max ${CHARACTER_LIMITS.OUTCOME} characters)`\n }\n\n const normalizedCurrentOutcome = outcome.trim().toLowerCase()\n\n // Check for duplicates, excluding the current outcome's index\n const duplicateIndex = allOutcomes.findIndex(\n (otherOutcome, index) =>\n index !== currentIndex &&\n otherOutcome.trim().toLowerCase() === normalizedCurrentOutcome\n )\n\n if (duplicateIndex !== -1) {\n return `This outcome is a duplicate of outcome ${duplicateIndex + 1}`\n }\n\n return ''\n}\n\nconst validateExists = (value) => {\n return value?.trim()\n}\n\nconst validateRichHtmlExists = (value) => {\n return getRichTextLength(value) > 0\n}\n\nexport const getRichTextLength = (html) => {\n const doc = new DOMParser().parseFromString(html, 'text/html')\n return doc.body.textContent.length\n}\n\n// This is for both array and content values at the moment\n// Do not add .trim() to the statement of value\nconst validateMaxLength = (value, maxLength) => {\n return value?.length <= maxLength\n}\n\nexport const validateRichHtmlLength = (value, maxLength) => {\n return getRichTextLength(value) <= maxLength\n}\n\nconst validateArrayUniqueness = (array) => {\n return new Set(array).size === array.length\n}\n\nconst validErrors = (errorObject) => {\n return !Object.entries(errorObject).reduce((hasError, [key, value]) => {\n if (Array.isArray(value)) {\n return hasError || value.some((item) => item !== '')\n }\n return hasError || value !== ''\n }, false)\n}\n","import { useState } from 'react'\nimport { styled } from '@mui/material'\n\nimport { Typography } from '@mui/material'\n\nimport {\n validateDescription,\n CHARACTER_LIMITS,\n validateRichHtmlLength,\n getRichTextLength,\n} from './speechTopicValidators'\n\nimport ReactQuill from 'react-quill'\n\nimport { FullFormSection } from '../../common/FormComponents'\n\nconst QuillCharacterCounter = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'isError',\n})(({ theme, isError }) => ({\n color: isError ? theme.palette.error.main : theme.palette.text.secondary,\n}))\n\nconst QuillErrorContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n fontSize: '0.75rem',\n marginTop: theme.spacing(1),\n}))\n\nconst QuillError = styled(Typography)(({ theme }) => ({\n color: theme.palette.error.main,\n}))\n\nconst QuillContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'isFocused' && prop !== 'isError',\n})(({ theme, isFocused, isError }) => ({\n '& .ql-container': {\n minHeight: '300px',\n borderRadius: theme.shape.borderRadius.sm,\n transition: 'border-color 0.2s ease-in-out',\n border: isFocused\n ? `2px solid ${theme.palette.secondary.main}`\n : isError\n ? `2px solid ${theme.palette.error.main}`\n : `1px solid ${theme.palette.border.main}`,\n fontFamily: theme.typography.body1.fontFamily,\n },\n '& .ql-editor': {\n minHeight: '300px',\n },\n}))\n\nconst SpeechTopicDescriptionForm = ({\n speechTopic,\n setSpeechTopic,\n errors,\n setErrors,\n updateSpeechTopicAttribute,\n}) => {\n const [isFocused, setIsFocused] = useState(false)\n return (\n \n \n setIsFocused(true)}\n value={speechTopic?.description || ''}\n onChange={(content) => {\n setSpeechTopic((prev) => ({ ...prev, description: content }))\n }}\n onBlur={() => {\n setIsFocused(false)\n setErrors({ ...errors, descriptionError: '' })\n if (!validateDescription(speechTopic, errors, setErrors)) {\n return\n }\n updateSpeechTopicAttribute('description', speechTopic.description)\n }}\n preserveWhitespace={true}\n className={errors.description ? 'quill-error' : ''}\n modules={{\n toolbar: false,\n }}\n placeholder=\"Add a brief description of your talk\"\n />\n \n {errors.description ? (\n \n {errors.description}\n \n ) : (\n // Keep character counter on the right side\n
    \n )}\n \n {getRichTextLength(speechTopic?.description || 0)}/\n {CHARACTER_LIMITS.DESCRIPTION}\n \n \n \n \n )\n}\n\nexport default SpeechTopicDescriptionForm\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgMediaCloseIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.125 8.125L11.875 11.875M11.875 8.125L8.125 11.875M17.5 10C17.5 14.1421 14.1421 17.5 10 17.5C5.85786 17.5 2.5 14.1421 2.5 10C2.5 5.85786 5.85786 2.5 10 2.5C14.1421 2.5 17.5 5.85786 17.5 10Z\",\n stroke: \"#6B7280\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMediaCloseIcon);\nexport default __webpack_public_path__ + \"static/media/mediaCloseIcon.1312ec0b.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCloudUploadIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 71,\n height: 70,\n viewBox: \"0 0 71 70\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.5 48.4615L35.5 29.0769M35.5 29.0769L44.1154 37.6923M35.5 29.0769L26.8846 37.6923M20.4231 57.0769C13.2859 57.0769 7.5 51.2911 7.5 44.1538C7.5 38.4305 11.2206 33.5762 16.375 31.8775C16.2045 30.97 16.1154 30.0339 16.1154 29.0769C16.1154 20.7502 22.8656 14 31.1923 14C38.1743 14 44.0478 18.7459 45.7629 25.1878C46.6007 24.9161 47.4947 24.7692 48.4231 24.7692C53.1812 24.7692 57.0385 28.6265 57.0385 33.3846C57.0385 34.3844 56.8682 35.3444 56.555 36.2372C60.6148 37.7798 63.5 41.7068 63.5 46.3077C63.5 52.2554 58.6785 57.0769 52.7308 57.0769H20.4231Z\",\n stroke: \"#D0D5DD\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCloudUploadIcon);\nexport default __webpack_public_path__ + \"static/media/cloudUploadIcon.e3c25658.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgFolderIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.6663 12.6667C14.6663 13.0203 14.5259 13.3594 14.2758 13.6095C14.0258 13.8595 13.6866 14 13.333 14H2.66634C2.31272 14 1.97358 13.8595 1.72353 13.6095C1.47348 13.3594 1.33301 13.0203 1.33301 12.6667V3.33333C1.33301 2.97971 1.47348 2.64057 1.72353 2.39052C1.97358 2.14048 2.31272 2 2.66634 2H5.99967L7.33301 4H13.333C13.6866 4 14.0258 4.14048 14.2758 4.39052C14.5259 4.64057 14.6663 4.97971 14.6663 5.33333V12.6667Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFolderIcon16X16);\nexport default __webpack_public_path__ + \"static/media/folderIcon_16x16.e2b71504.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCameraReelIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 48,\n height: 48,\n viewBox: \"0 0 48 48\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.75 39H41.25M6.75 39C5.50736 39 4.5 37.9926 4.5 36.75M6.75 39H9.75C10.9926 39 12 37.9926 12 36.75M4.5 36.75V11.25M4.5 36.75V33.75C4.5 32.5074 5.50736 31.5 6.75 31.5M43.5 36.75V11.25M43.5 36.75C43.5 37.9926 42.4926 39 41.25 39M43.5 36.75V33.75C43.5 32.5074 42.4926 31.5 41.25 31.5M41.25 39H38.25C37.0074 39 36 37.9926 36 36.75M41.25 9H6.75M41.25 9C42.4926 9 43.5 10.0074 43.5 11.25M41.25 9H38.25C37.0074 9 36 10.0074 36 11.25M43.5 11.25V14.25C43.5 15.4926 42.4926 16.5 41.25 16.5M6.75 9C5.50736 9 4.5 10.0074 4.5 11.25M6.75 9H9.75C10.9926 9 12 10.0074 12 11.25M4.5 11.25V14.25C4.5 15.4926 5.50736 16.5 6.75 16.5M6.75 16.5H9.75M6.75 16.5C5.50736 16.5 4.5 17.5074 4.5 18.75V21.75C4.5 22.9926 5.50736 24 6.75 24M9.75 16.5C10.9926 16.5 12 15.4926 12 14.25V11.25M9.75 16.5C10.9926 16.5 12 17.5074 12 18.75V21.75M12 11.25V21.75M12 11.25C12 10.0074 13.0074 9 14.25 9H33.75C34.9926 9 36 10.0074 36 11.25M38.25 16.5H41.25M38.25 16.5C37.0074 16.5 36 15.4926 36 14.25V11.25M38.25 16.5C37.0074 16.5 36 17.5074 36 18.75V21.75M41.25 16.5C42.4926 16.5 43.5 17.5074 43.5 18.75V21.75C43.5 22.9926 42.4926 24 41.25 24M36 11.25V21.75M14.25 24H33.75M14.25 24C13.0074 24 12 22.9926 12 21.75M14.25 24C13.0074 24 12 25.0074 12 26.25M12 21.75C12 22.9926 10.9926 24 9.75 24M36 21.75C36 22.9926 34.9926 24 33.75 24M36 21.75C36 22.9926 37.0074 24 38.25 24M33.75 24C34.9926 24 36 25.0074 36 26.25M12 36.75V26.25M12 36.75C12 37.9926 13.0074 39 14.25 39H33.75C34.9926 39 36 37.9926 36 36.75M12 36.75V33.75C12 32.5074 10.9926 31.5 9.75 31.5M36 36.75V26.25M36 36.75V33.75C36 32.5074 37.0074 31.5 38.25 31.5M36 26.25V29.25C36 30.4926 37.0074 31.5 38.25 31.5M36 26.25C36 25.0074 37.0074 24 38.25 24M12 26.25V29.25C12 30.4926 10.9926 31.5 9.75 31.5M12 26.25C12 25.0074 10.9926 24 9.75 24M6.75 24H9.75M6.75 24C5.50736 24 4.5 25.0074 4.5 26.25V29.25C4.5 30.4926 5.50736 31.5 6.75 31.5M38.25 24H41.25M41.25 24C42.4926 24 43.5 25.0074 43.5 26.25V29.25C43.5 30.4926 42.4926 31.5 41.25 31.5M6.75 31.5H9.75M38.25 31.5H41.25\",\n stroke: \"#1197CB\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCameraReelIcon);\nexport default __webpack_public_path__ + \"static/media/cameraReelIcon.b9e34d8c.svg\";\nexport { ForwardRef as ReactComponent };","import { useCallback, useMemo } from 'react'\n\nimport { styled } from '@mui/system'\nimport Dropzone from 'react-dropzone'\nimport {\n IconButton,\n Typography,\n LinearProgress,\n Button,\n Tooltip,\n} from '@mui/material'\n\nimport { ReactComponent as FileIcon } from '../../icons/fileIcon_16x16.svg'\nimport { ReactComponent as MediaCloseIcon } from '../../icons/mediaCloseIcon.svg'\n\nimport { ReactComponent as CloudUploadIcon } from '../../icons/cloudUploadIcon.svg'\nimport { ReactComponent as FolderIcon } from '../../icons/folderIcon_16x16.svg'\n\nexport const Container = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(1.5),\n width: '430px',\n justifyContent: 'space-between',\n border: `1px solid ${theme.palette.border.main}`,\n borderRadius: theme.shape.borderRadius.xxs,\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n}))\n\nexport const FileInfoContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n gap: theme.spacing(2),\n}))\n\nexport const FileInfoContainerInner = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n gap: theme.spacing(2),\n}))\n\nexport const FileName = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.darkest,\n fontWeight: theme.fontWeights.semiBold,\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}))\n\nconst UploadPercent = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.darkest,\n fontWeight: theme.fontWeights.semiBold,\n}))\n\nexport const UploadDetails = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.main,\n}))\n\nexport const FileCta = styled(IconButton)(({ theme }) => ({\n padding: '0px',\n}))\n\nexport const StyledLinearProgress = styled(LinearProgress)(({ theme }) => ({\n height: '12px',\n borderRadius: theme.shape.borderRadius.xxs,\n backgroundColor: theme.palette.neutral[500], // Track color\n '.MuiLinearProgress-bar': {\n borderRadius: theme.shape.borderRadius.xxs,\n backgroundColor: theme.palette.secondary.main, // Progress color\n },\n}))\n\nconst DropzoneWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'center',\n margin: theme.spacing(3.75, 0),\n}))\n\nconst DropzoneContainer = styled('div')(({ theme, isDragActive }) => ({\n alignItems: 'center',\n border: isDragActive\n ? `1px solid ${theme.palette.secondary.main}`\n : `1px dashed ${theme.palette.border.main}`,\n width: '100%',\n padding: theme.spacing(2.5, 7.5),\n textAlign: 'center',\n cursor: 'pointer',\n borderRadius: theme.shape.borderRadius.sm,\n backgroundColor: isDragActive ? theme.palette.action.hover : 'transparent',\n transition: 'background-color 0.3s ease',\n [theme.breakpoints.down('sm')]: {\n width: 'auto',\n },\n}))\n\nconst UploadButton = styled(Button)(({ theme }) => ({\n marginTop: theme.spacing(2.5),\n color: theme.palette.base.white,\n height: '32px',\n borderRadius: theme.shape.borderRadius.xs,\n svg: {\n path: {\n stroke: theme.palette.base.white,\n },\n },\n}))\n\nconst TextButton = styled('span')(({ theme }) => ({\n color: theme.palette.secondary.main,\n fontWeight: theme.fontWeights.semiBold,\n}))\n\nconst DropzoneText = styled(Typography)(({ theme }) => ({\n color: theme.palette.text.hint,\n div: {\n fontWeight: theme.fontWeights.semiBold,\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n },\n}))\n\nconst ErrorText = styled(Typography)(({ theme }) => ({\n color: theme.palette.error.main,\n fontWeight: theme.fontWeights.semiBold,\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n}))\n\nconst FileInfoRow = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n width: '100%',\n gap: theme.spacing(3),\n}))\n\nconst parseFileRejectionError = (errorCode) => {\n switch (errorCode) {\n case 'file-invalid-type':\n return 'Invalid file type.'\n case 'file-too-large':\n return 'File is too large.'\n default:\n return 'Sorry, something went wrong uploading your file'\n }\n}\n\nconst renderFileRejectionErrors = (\n fileRejection,\n humanizeFileRejectionError\n) => {\n const { errors } = fileRejection\n return errors.map((error) => {\n return (\n \n {humanizeFileRejectionError\n ? humanizeFileRejectionError(error.code)\n : parseFileRejectionError(error.code)}\n \n )\n })\n}\n\nconst UploadFile = ({\n fileName,\n fileSize,\n uploading,\n icon,\n uploadProgress,\n handleUploadCancel,\n handleUploadDelete,\n}) => {\n const displayIcon = useMemo(() => {\n return icon || \n })\n\n const renderCta = () => {\n return (\n \n \n \n \n \n )\n }\n\n return (\n \n \n
    {displayIcon}
    \n \n \n {fileName}\n {renderCta()}\n \n \n \n \n {(\n (uploadProgress * (fileSize / 1000000).toFixed(1)) /\n 100\n ).toFixed(1)}{' '}\n / {(fileSize / 1000000).toFixed(1)} MB\n \n {uploadProgress}%\n \n \n
    \n
    \n )\n}\n\nconst UploadMediaDropzone = (props) => {\n const {\n acceptedMimeTypes,\n maxNumberOfFiles,\n maxFileSize,\n isUploading,\n handleFileUpload,\n dropzoneHelperContent,\n humanizeFileRejectionError,\n hasUploadedFiles = false,\n } = props\n\n const handleOnDrop = useCallback(\n (acceptedFiles) => {\n handleFileUpload(acceptedFiles)\n },\n [handleFileUpload]\n )\n\n const renderPrimaryDropzoneContent = ({ isDragActive }) => {\n return (\n <>\n \n
    \n {isDragActive\n ? 'Drop the files here...'\n : 'Drag and drop a file to upload'}\n
    \n
    \n {dropzoneHelperContent}\n {!isUploading && (\n }>\n Browse Files\n \n )}\n \n )\n }\n\n const renderSecondaryDropzoneContent = ({ isDragActive }) => {\n return (\n \n {isDragActive ? (\n 'Drop files here...'\n ) : (\n <>\n Upload a File or Drag and drop\n \n )}\n \n )\n }\n\n const renderDropzone = useCallback(\n ({ getRootProps, getInputProps, isDragActive, fileRejections }) => (\n \n \n
    \n {fileRejections.length > 0 &&\n renderFileRejectionErrors(\n fileRejections[0],\n humanizeFileRejectionError\n )}\n
    \n \n {hasUploadedFiles\n ? renderSecondaryDropzoneContent({ isDragActive })\n : renderPrimaryDropzoneContent({ isDragActive })}\n
    \n ),\n [\n dropzoneHelperContent,\n humanizeFileRejectionError,\n isUploading,\n hasUploadedFiles,\n ]\n )\n\n return (\n \n \n {renderDropzone}\n \n \n )\n}\n\nexport default UploadMediaDropzone\n\nexport { UploadFile }\n","import { useState } from 'react'\n\nimport { styled } from '@mui/system'\n\nimport { ListItemIcon, Menu, MenuItem, ListItemText } from '@mui/material'\nimport { IoEllipsisHorizontal } from 'react-icons/io5'\nimport { ReactComponent as TrashIcon } from '../../../icons/trash2Icon_16x16.svg'\nimport { VideoSectionWrapper } from './speechTopicCards/SharedStyles'\nimport { VIDEO_STATES } from './speechTopicCards/VideoParent'\nimport MuxVideoTile from './MuxVideoTile'\nimport { Typography, IconButton } from '@mui/material'\nimport ConfirmDialog from '../../common/ConfirmDialog'\n\nimport Api from '../../../services/api'\n\nconst TileWrapper = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(2.5),\n display: 'flex',\n justifyContent: 'center',\n}))\n\nconst TileInfoContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: theme.spacing(1),\n alignItems: 'center',\n gap: theme.spacing(2.5),\n}))\n\nconst TileInfoTitle = styled(Typography)(({ theme }) => ({\n fontWeight: theme.fontWeights.semiBold,\n}))\n\nconst SpeechTopicFormVideoTile = ({ media, setSpeechTopic }) => {\n const [menuState, setMenuState] = useState({ anchorEl: null, mediaId: null })\n const [showDeleteDialog, setShowDeleteDialog] = useState(false)\n const [mediaToDelete, setMediaToDelete] = useState(null)\n\n const handleDeleteClick = (media) => {\n setMediaToDelete(media)\n setShowDeleteDialog(true)\n }\n\n const handleCancelDelete = () => {\n setMediaToDelete(null)\n setMenuState({ anchorEl: null, mediaId: null })\n }\n\n const handleOpenDropdown = (e, media) => {\n setMenuState({ anchorEl: e.currentTarget, mediaId: media.id })\n }\n\n const handleCloseDropdown = () => {\n setMenuState({ anchorEl: null, mediaId: null })\n }\n\n const makePlaceholderContent = (video) => {\n if (\n video?.status === VIDEO_STATES.PROCESSING ||\n video?.status === VIDEO_STATES.UPLOADING\n ) {\n return `This video is processing. Please check back later.`\n }\n\n if (video?.status === VIDEO_STATES.FAILED) {\n return `This video failed to process. Please remove it and try to upload it again. If you run into issues, please reach out to support at hello@talkadot.com.`\n }\n }\n\n const handleRemoveMedia = async () => {\n try {\n const res = await Api.deleteSignatureTalkMedia(mediaToDelete.id)\n\n if (!res.errors) {\n if (mediaToDelete.id === menuState.mediaId) {\n setSpeechTopic((prev) => ({\n ...prev,\n signatureTalkMedia: prev.signatureTalkMedia.filter(\n (m) => m.id !== mediaToDelete.id\n ),\n }))\n handleCloseDropdown()\n setShowDeleteDialog(false)\n setMediaToDelete(null)\n }\n } else {\n throw res.errors\n }\n } catch (errors) {\n console.error(errors)\n }\n }\n\n return (\n \n \n \n \n {media.caption}\n handleOpenDropdown(e, media)}\n aria-label=\"Open to show more\"\n title=\"Open to show more\">\n \n \n \n handleDeleteClick(media)}>\n {' '}\n \n \n \n Delete Video\n \n \n \n \n \n
    \n This action will delete your video from this speech topic. If you want\n to re-add this video in the future, you'll need to upload it again.\n
    \n \n
    \n )\n}\n\nexport default SpeechTopicFormVideoTile\n","import axios from 'axios'\nimport Api from '../services/api'\n\nexport const MULTIPART_CHUNK_SIZE = 10 * 1024 * 1024 // 10MB \nexport const PROGRESS_THROTTLE = 200\nconst MAX_CONCURRENT_UPLOADS = 5 // Limit concurrent upload for S3 Multipart Upload for browser performance\n\nexport const uploadToS3 = async ({\n presignedUrl,\n file,\n setUploading,\n setCancelTokenSource,\n onUploadProgress,\n}) => {\n try {\n setUploading(true)\n\n const cancelToken = axios.CancelToken.source()\n setCancelTokenSource(cancelToken)\n\n const res = await axios.put(presignedUrl, file, {\n headers: {\n 'Content-Type': file.type,\n },\n cancelToken: cancelToken.token,\n onUploadProgress: (progressEvent) => {\n const percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total\n )\n if (onUploadProgress) {\n onUploadProgress(percentCompleted) // Call the progress callback function\n }\n },\n })\n\n if (res.status !== 200) {\n throw new Error('Sorry, something went wrong uploading your file')\n }\n\n setUploading(false)\n return res.data\n } catch (error) {\n setUploading(false)\n throw new Error(error.message)\n }\n}\n\nexport const cancelUpload = (cancelTokenSource) => {\n if (cancelTokenSource) {\n cancelTokenSource.cancel('File upload cancelled')\n }\n}\n\nexport const presignVideoUploadUrl = async ({ fileName, fileType }) => {\n const params = {\n video_upload_presign_url: {\n file_name: fileName,\n file_type: fileType,\n },\n }\n\n const res = await Api.videoUploadPresignedUrls(params)\n\n if (res.errors) {\n throw res.errors\n }\n\n return res\n}\n\nexport const presignSpeakerMediaUploadUrl = async ({ fileName, fileType }) => {\n const params = {\n media_upload_presign_url: {\n file_name: fileName,\n file_type: fileType,\n },\n }\n\n const res = await Api.speakerMediaUploadPresignedUrls(params)\n\n if (res.errors) {\n throw res.errors\n }\n\n return res\n}\n\nexport const presignUrl = async ({ fileName, fileType }) => {\n const params = {\n presign_url: {\n file_name: fileName,\n file_type: fileType,\n },\n }\n\n const res = await Api.presignUrl(params)\n\n if (res.errors) {\n throw res.errors\n }\n\n return res\n}\n\nexport const initiateMultipartUpload = async ({ fileName, fileType, fileSize }) => {\n const params = {\n video_upload_multipart: {\n file_name: fileName,\n file_type: fileType,\n file_size: fileSize, // Add file size to calculate parts needed\n chunk_size: MULTIPART_CHUNK_SIZE\n }\n }\n\n const res = await Api.initiateMultipartUpload(params)\n \n if (res.errors) throw res.errors\n if (!res.urls || !Array.isArray(res.urls)) {\n throw new Error('Invalid response from server: missing or invalid urls array')\n }\n return {\n uploadId: res.upload_id,\n key: res.key,\n urls: res.urls\n }\n}\n\nexport const uploadPart = async ({\n url, \n part, \n partNumber,\n onProgress,\n cancelToken \n}) => {\n const config = {\n onUploadProgress: (progressEvent) => {\n const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total)\n onProgress?.(percentCompleted, partNumber)\n },\n headers: {\n 'Content-Type': 'application/octet-stream',\n }\n }\n\n if (cancelToken) {\n config.cancelToken = cancelToken.token\n }\n\n await axios.put(url, part, config)\n}\n\nexport const completeMultipartUpload = async ({ uploadId, key }) => {\n const params = {\n video_upload_complete: {\n upload_id: uploadId,\n key: key\n }\n }\n \n const res = await Api.completeMultipartUpload(params)\n if (res.errors) throw res.errors\n return res\n}\n\nexport const uploadToS3WithMultipart = async ({\n file,\n uploadId,\n key,\n urls,\n onUploadProgress,\n setUploading,\n setCancelTokenSource,\n}) => { \n const parts = [];\n const cancelToken = axios.CancelToken.source();\n setCancelTokenSource?.(cancelToken);\n setUploading?.(true);\n\n const totalChunks = Math.ceil(file.size / MULTIPART_CHUNK_SIZE);\n\n if (!urls || urls.length === 0) {\n console.error('[Multipart Upload] No URLs provided:', urls);\n throw new Error('No presigned URLs provided for multipart upload');\n }\n\n const uploadQueue = new Set(); // Track active uploads\n const partProgress = new Map();\n let lastReportedProgress = 0;\n let lastProgressUpdate = Date.now();\n\n const calculateTotalProgress = () => {\n const now = Date.now();\n if (now - lastProgressUpdate < PROGRESS_THROTTLE) {\n return lastReportedProgress;\n }\n\n const values = Array.from(partProgress.values());\n const rawProgress = values.reduce((sum, p) => sum + p, 0) / totalChunks;\n const smoothProgress = Math.min(\n 100,\n Math.max(lastReportedProgress, Math.floor(rawProgress))\n );\n\n if (Math.abs(smoothProgress - lastReportedProgress) >= 1) {\n lastReportedProgress = smoothProgress;\n lastProgressUpdate = now;\n }\n\n return lastReportedProgress;\n };\n\n // Upload part function\n const uploadPartTask = async (i) => {\n const start = i * MULTIPART_CHUNK_SIZE;\n const end = Math.min(start + MULTIPART_CHUNK_SIZE, file.size);\n const chunk = file.slice(start, end);\n const partNumber = i + 1;\n const urlData = urls[i];\n\n if (!urlData || !urlData.url) {\n throw new Error(`No presigned URL found for part ${partNumber}`);\n }\n\n try {\n const partData = await uploadPart({\n url: urlData.url,\n part: chunk,\n partNumber,\n onProgress: (progress) => {\n partProgress.set(partNumber, progress);\n onUploadProgress?.(calculateTotalProgress());\n },\n cancelToken,\n });\n\n parts.push(partData);\n partProgress.set(partNumber, 100);\n onUploadProgress?.(calculateTotalProgress());\n } catch (error) {\n console.error('[Multipart Upload] Part failed:', { partNumber, error: error.message });\n throw error;\n }\n };\n\n // Process uploads with limited concurrency\n const processQueue = async () => {\n for (let i = 0; i < totalChunks; i++) {\n while (uploadQueue.size >= MAX_CONCURRENT_UPLOADS) {\n await Promise.race(uploadQueue); // Wait for one upload to finish before adding a new one\n }\n\n const uploadPromise = uploadPartTask(i).finally(() => uploadQueue.delete(uploadPromise));\n uploadQueue.add(uploadPromise);\n }\n\n await Promise.allSettled(uploadQueue); // Wait for all uploads to finish\n };\n\n try {\n await processQueue();\n\n await completeMultipartUpload({ uploadId, key });\n\n onUploadProgress?.(100);\n } catch (error) {\n if (!axios.isCancel(error)) {\n console.error('[Multipart Upload] Fatal error:', error);\n throw error;\n } else {\n console.log('[Multipart Upload] Upload cancelled');\n }\n } finally {\n setUploading?.(false);\n }\n}","import { useState, useMemo } from 'react'\n\nimport UploadMediaDropzone, {\n UploadFile,\n} from '../../common/UploadMediaDropzone'\n\nimport { styled } from '@mui/system'\n\nimport { ReactComponent as CameraReelIcon } from '../../../icons/cameraReelIcon.svg'\nimport { VideoSectionWrapper } from './speechTopicCards/SharedStyles'\nimport { Notification } from '../../common/Notification'\nimport SpeechTopicFormVideoTile from './SpeechTopicFormVideoTile'\n\nimport {\n presignVideoUploadUrl,\n uploadToS3,\n initiateMultipartUpload,\n uploadToS3WithMultipart,\n cancelUpload,\n MULTIPART_CHUNK_SIZE,\n} from '../../../utils/fileUpload'\n\nconst VideoUploadContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n}))\n\nconst UploadFilesContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: theme.spacing(2.5),\n}))\n\nconst TileWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'center',\n}))\n\nconst videoMimeTypes = {\n 'video/*': [],\n}\n\nconst TOTAL_VIDEOS_LIMIT = 5\n\nconst humanizeFileRejectionError = (errorCode) => {\n switch (errorCode) {\n case 'file-invalid-type':\n return 'Invalid file type. Please upload a valid video file.'\n case 'file-too-large':\n return 'File is too large. Your file has to be less than 10GB.'\n default:\n return 'Sorry, something went wrong uploading your file'\n }\n}\n\nconst TalkVideoUploader = ({\n onUploadComplete,\n onUploadDelete,\n speechTopic,\n setSpeechTopic,\n setIsVideoUploading,\n isVideoUploading,\n}) => {\n // const [isUploading, setIsUploading] = useState(false)\n const [files, setFiles] = useState([])\n const [showExceededLimitNotification, setShowExceededLimitNotification] =\n useState(false)\n\n const handleUploadCancel = (fileBeingCancelled) => {\n if (fileBeingCancelled.cancelTokenSource) {\n cancelUpload(fileBeingCancelled.cancelTokenSource)\n }\n setFiles((prevFiles) =>\n prevFiles.filter((file) => file.fileKey !== fileBeingCancelled.fileKey)\n )\n }\n\n const handleUploadDelete = (fileBeingDeleted) => {\n const newFiles = files.filter(\n (file) => file.fileKey !== fileBeingDeleted.fileKey\n )\n setFiles(newFiles)\n onUploadDelete(fileBeingDeleted)\n }\n\n const uploadFiles = files.map((file, index) => {\n return (\n \n \n }\n fileName={file.file.name}\n fileSize={file.file.size}\n uploading={file.isUploading}\n uploadProgress={file.uploadProgress}\n handleUploadCancel={() => handleUploadCancel(file)}\n handleUploadDelete={() => handleUploadDelete(file)}>\n \n \n )\n })\n\n const renderExistingVideoFiles = useMemo(\n () =>\n speechTopic?.signatureTalkMedia.map((media, index) => (\n \n )),\n [speechTopic?.signatureTalkMedia, setSpeechTopic]\n )\n\n const totalExistingFiles =\n files.length + (speechTopic?.signatureTalkMedia?.length || 0)\n\n const handleFileUpload = async (acceptedFiles) => {\n setShowExceededLimitNotification(false)\n\n if (isVideoUploading) {\n return\n }\n\n if (acceptedFiles.length === 0) {\n return\n }\n\n // Calculate total files including:\n // 1. Currently uploading files (files state)\n // 2. Already uploaded files in speech topic\n // 3. New files being added (acceptedFiles)\n if (totalExistingFiles > TOTAL_VIDEOS_LIMIT) {\n setShowExceededLimitNotification(true)\n return\n }\n\n if (totalExistingFiles + acceptedFiles.length > TOTAL_VIDEOS_LIMIT) {\n setShowExceededLimitNotification(true)\n return\n }\n\n setIsVideoUploading(true)\n\n const uploadPromises = acceptedFiles.map(async (file) => {\n try {\n let fileObj = {}\n\n // Use multipart upload for files larger than 30MB\n if (file.size > 30 * 1024 * 1024) {\n const { uploadId, key, urls } = await initiateMultipartUpload({\n fileName: file.name,\n fileType: file.type,\n fileSize: file.size,\n chunkSize: MULTIPART_CHUNK_SIZE,\n })\n\n const fileKey = key\n\n fileObj = {\n file,\n fileKey,\n cancelTokenSource: null,\n uploadProgress: 0,\n isUploading: false,\n }\n\n setFiles((prevFiles) => [...prevFiles, fileObj])\n\n await uploadToS3WithMultipart({\n file,\n uploadId,\n key,\n urls,\n setUploading: (isUploading) => {\n setFiles((prevFiles) =>\n prevFiles.map((f) =>\n f.fileKey === fileKey ? { ...f, isUploading } : f\n )\n )\n },\n setCancelTokenSource: (source) => {\n setFiles((prevFiles) =>\n prevFiles.map((f) =>\n f.fileKey === fileKey\n ? { ...f, cancelTokenSource: source }\n : f\n )\n )\n },\n onUploadProgress: (progress) => {\n setFiles((prevFiles) =>\n prevFiles.map((f) =>\n f.fileKey === fileKey ? { ...f, uploadProgress: progress } : f\n )\n )\n },\n })\n } else {\n // Use standard presign URL flow\n const { presignedUrl, fileKey } = await presignVideoUploadUrl({\n fileName: file.name,\n fileType: file.type,\n })\n\n fileObj = {\n file,\n fileKey,\n presignedUrl,\n cancelTokenSource: null,\n uploadProgress: 0,\n isUploading: false,\n }\n\n setFiles((prevFiles) => [...prevFiles, fileObj])\n\n await uploadToS3({\n presignedUrl,\n file,\n setUploading: (isUploading) => {\n setFiles((prevFiles) =>\n prevFiles.map((f) =>\n f.fileKey === fileKey ? { ...f, isUploading } : f\n )\n )\n },\n setCancelTokenSource: (source) => {\n setFiles((prevFiles) =>\n prevFiles.map((f) =>\n f.fileKey === fileKey\n ? { ...f, cancelTokenSource: source }\n : f\n )\n )\n },\n onUploadProgress: (progress) => {\n setFiles((prevFiles) =>\n prevFiles.map((f) =>\n f.fileKey === fileKey ? { ...f, uploadProgress: progress } : f\n )\n )\n },\n })\n }\n\n onUploadComplete(fileObj)\n } catch (error) {\n console.error('Error uploading file:', error)\n }\n })\n\n // Reset uploading state after all files have their upload states cancelled\n try {\n await Promise.all(uploadPromises)\n } catch (error) {\n console.log(\n 'At least one file upload failed, or upload process encountered an error.'\n )\n } finally {\n setIsVideoUploading(false)\n }\n }\n\n return (\n \n \n {isVideoUploading && (\n \n Videos are currently uploading. Please do not leave or refresh the\n page until the uploads are done and you've saved your changes!\n \n )}\n {showExceededLimitNotification && (\n \n You can only add up to 5 videos per speech topic. Please remove a\n video to add a new one.\n \n )}\n {!showExceededLimitNotification && (\n \n You currently have {totalExistingFiles} video\n {totalExistingFiles === 1 ? '' : 's'} uploaded for this speech topic.\n The maximum is {TOTAL_VIDEOS_LIMIT}.\n \n )}\n {uploadFiles}\n {/* These are videos that are already attached to the speech topic incase we're in the edit view */}\n {renderExistingVideoFiles}\n \n )\n}\n\nexport default TalkVideoUploader\n","import { useCallback, useRef, forwardRef, useImperativeHandle } from 'react'\n\nimport TalkVideoUploader from './TalkVideoUploader'\nimport { FullFormSection } from '../../common/FormComponents'\n\nimport Api from '../../../services/api'\n\nconst SpeechTopicVideoUploadParent = forwardRef((props, ref) => {\n const { speechTopic, setSpeechTopic, setIsVideoUploading, isVideoUploading } = props\n const files = useRef([])\n\n useImperativeHandle(ref, () => ({\n getFiles: () => files.current,\n }))\n\n const handleUploadComplete = useCallback(async (fileObj) => {\n try {\n const res = await Api.createSignatureTalkMediaUpload({\n signature_talk_media_upload: {\n file_key: fileObj.fileKey,\n name: fileObj.file.name,\n size: fileObj.file.size,\n media_type: 'video',\n },\n })\n if (res.errors) throw res.errors\n files.current = [...files.current, { mediaUploadObj: res, fileObj }]\n } catch (error) {\n console.error(error)\n }\n }, [])\n\n const handleUploadDelete = useCallback((file) => {\n // Remove from files.current if it exists\n files.current = files.current.filter(\n (f) => f.fileObj.fileKey !== file.fileKey\n )\n }, [])\n\n return (\n \n \n \n )\n})\n\nexport default SpeechTopicVideoUploadParent\n","import { styled } from '@mui/system'\nimport { IconButton, Tooltip } from '@mui/material'\n\nimport { ReactComponent as EyeIcon } from '../../../icons/eyeIcon_16x16.svg'\nimport { ReactComponent as EyeOffIcon } from '../../../icons/eyeOffIcon_16x16.svg'\n\nconst ToggleQuestionButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'enabled' && prop !== 'iconColor',\n})(({ theme, enabled, iconColor }) => ({\n svg: {\n path: {\n stroke: enabled\n ? iconColor || theme.palette.neutral.veryDark\n : theme.palette.error.semiDark,\n },\n },\n}))\n\nconst SpeechTopicTogglePrivateButton = ({\n handleToggleClick,\n enabled,\n iconColor,\n canToggleVisibility,\n enabledTooltip = '',\n disabledTooltip = '',\n}) => {\n return (\n \n \n {enabled ? : }\n \n \n )\n}\n\nexport default SpeechTopicTogglePrivateButton\n","import { styled } from '@mui/system'\n\nimport { StyledTextField, FieldCaption } from '../../common/FormComponents'\nimport Autocomplete from '@mui/material/Autocomplete'\n\nimport { Chip, Popper } from '@mui/material'\n\nconst SuggestionAutoCompleteInputContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1.5),\n}))\n\nconst DemographicsContainer = styled('div')(({ theme }) => ({\n padding: theme.spacing(1.5, 3, 2.5, 3),\n border: `1px solid ${theme.palette.border.main}`,\n borderRadius: theme.shape.borderRadius.xxs,\n}))\n\nconst StyledPopper = styled(({ ...props }) => (\n \n))(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n width: '400px !important',\n },\n}))\n\nconst DEMOGRAPHICS = [\n {\n id: 'k-12-education',\n title: 'K-12 Education',\n },\n {\n id: 'higher-education-colleges-universities-trade-schools-',\n title: 'Higher Education (Colleges, Universities, Trade Schools)',\n },\n {\n id: 'not-for-profits-and-ngos',\n title: 'Not for profits and NGOs',\n },\n {\n id: 'professional-associations',\n title: 'Professional Associations',\n },\n {\n id: 'professional-networks',\n title: 'Professional Networks',\n },\n {\n id: 'industry-groups',\n title: 'Industry Groups',\n },\n {\n id: 'associations',\n title: 'Associations',\n },\n {\n id: 'trade-groups',\n title: 'Trade Groups',\n },\n {\n id: 'industry-alliances',\n title: 'Industry Alliances',\n },\n {\n id: 'corporate-and-business-sectors-large-corporations',\n title: 'Large Corporations',\n },\n {\n id: 'corporate-and-business-sectors-sme-small-and-medium-enterprises-',\n title: 'Small and Medium Enterprises',\n },\n {\n id: 'corporate-and-business-sectors-startups',\n title: 'Startups',\n },\n {\n id: 'community-and-civic-organizations',\n title: 'Community and Civic Organizations',\n },\n {\n id: 'faith-based-groups',\n title: 'Faith-Based Groups',\n },\n {\n id: 'government-and-public-sector',\n title: 'Government and Public Sector',\n },\n {\n id: 'specialty-events-health-and-wellness',\n title: 'Specialty Events: Health and wellness',\n },\n {\n id: 'specialty-events-tech-and-innovation',\n title: 'Specialty Events: Tech and Innovation',\n },\n {\n id: 'specialty-events-arts-culture',\n title: 'Specialty Events: Arts & Culture',\n },\n { id: 'other', title: 'Other' },\n]\n\nfunction titleize(str) {\n return str.toLowerCase().replace(/\\b\\w/g, (char) => char.toUpperCase())\n}\n\nconst TalkAutocomplete = ({\n speechTopic,\n setSpeechTopic,\n errors,\n setErrors,\n validateDemographics,\n updateSpeechTopicAttribute,\n}) => {\n const isRemovingFromArray = (updatedArray, currentArray) => {\n return currentArray.length - updatedArray.length === 1\n }\n\n const handleChangeSuccess = (newValue) => {\n setErrors({ ...errors, demographics: null })\n setSpeechTopic((prev) => ({\n ...prev,\n demographics: newValue.map((value) =>\n typeof value === 'string' ? value.trim() : value.title.trim()\n ),\n }))\n }\n\n return (\n \n }\n options={DEMOGRAPHICS.map((option) => option.title)}\n value={speechTopic.demographics || []}\n onBlur={() => {\n if (\n !validateDemographics(speechTopic.demographics, errors, setErrors)\n ) {\n return\n }\n updateSpeechTopicAttribute('demographics', speechTopic.demographics)\n }}\n onChange={(event, newValue) => {\n if (isRemovingFromArray(newValue, speechTopic.demographics)) {\n handleChangeSuccess(newValue)\n return\n }\n\n const processedValues = newValue.map((value) =>\n typeof value === 'string'\n ? value?.trim().toLowerCase()\n : value?.title?.trim().toLowerCase()\n )\n\n if (!validateDemographics(processedValues, errors, setErrors)) {\n return\n }\n\n handleChangeSuccess(newValue)\n }}\n freeSolo\n renderTags={(value, getTagProps) =>\n value.map((option, index) => {\n const { key, ...tagProps } = getTagProps({ index })\n return (\n \n )\n })\n }\n renderInput={(params) => (\n \n setErrors({ ...errors, demographics: null })}\n placeholder=\"Add appropriate audience demographics for your talk\"\n />\n \n )}\n />\n \n Select up to 10 demographics that are relevant to this speech topic. You\n can create your own by typing in the box and pressing enter.\n \n \n )\n}\n\nexport default TalkAutocomplete\n","var _path, _path2, _path3, _path4;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCodesIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.420898 2.7907C0.420898 1.24944 1.60458 0 3.06472 0H4.87763C6.33777 0 7.52145 1.24944 7.52145 2.7907V4.70433C7.52145 6.24559 6.33777 7.49503 4.87763 7.49503H3.06472C1.60458 7.49503 0.420898 6.24559 0.420898 4.70432V2.7907ZM3.06472 1.11628C2.18863 1.11628 1.47843 1.86594 1.47843 2.7907V4.70432C1.47843 5.62908 2.18863 6.37875 3.06472 6.37875H4.87763C5.75371 6.37875 6.46392 5.62908 6.46392 4.70433V2.7907C6.46392 1.86594 5.75371 1.11628 4.87763 1.11628H3.06472Z\",\n fill: \"#323A46\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.47852 2.7907C8.47852 1.24944 9.6622 0 11.1223 0H12.9352C14.3954 0 15.5791 1.24944 15.5791 2.7907V4.70433C15.5791 6.24559 14.3954 7.49503 12.9352 7.49503H11.1223C9.66219 7.49503 8.47852 6.24559 8.47852 4.70432V2.7907ZM11.1223 1.11628C10.2463 1.11628 9.53604 1.86594 9.53604 2.7907V4.70432C9.53604 5.62908 10.2463 6.37875 11.1223 6.37875H12.9352C13.8113 6.37875 14.5215 5.62908 14.5215 4.70433V2.7907C14.5215 1.86594 13.8113 1.11628 12.9352 1.11628H11.1223Z\",\n fill: \"#323A46\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.47852 11.2956C8.47852 9.75432 9.6622 8.50488 11.1223 8.50488H12.9352C14.3954 8.50488 15.5791 9.75432 15.5791 11.2956V13.2092C15.5791 14.7505 14.3954 15.9999 12.9352 15.9999H11.1223C9.66219 15.9999 8.47852 14.7505 8.47852 13.2092V11.2956ZM11.1223 9.62116C10.2463 9.62116 9.53604 10.3708 9.53604 11.2956V13.2092C9.53604 14.134 10.2463 14.8836 11.1223 14.8836H12.9352C13.8113 14.8836 14.5215 14.134 14.5215 13.2092V11.2956C14.5215 10.3708 13.8113 9.62116 12.9352 9.62116H11.1223Z\",\n fill: \"#323A46\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.420898 11.2956C0.420898 9.75432 1.60458 8.50488 3.06472 8.50488H4.87763C6.33777 8.50488 7.52145 9.75432 7.52145 11.2956V13.2092C7.52145 14.7505 6.33777 15.9999 4.87763 15.9999H3.06472C1.60458 15.9999 0.420898 14.7505 0.420898 13.2092V11.2956ZM3.06472 9.62116C2.18863 9.62116 1.47843 10.3708 1.47843 11.2956V13.2092C1.47843 14.134 2.18863 14.8836 3.06472 14.8836H4.87763C5.75371 14.8836 6.46392 14.134 6.46392 13.2092V11.2956C6.46392 10.3708 5.75371 9.62116 4.87763 9.62116H3.06472Z\",\n fill: \"#323A46\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCodesIcon16X16);\nexport default __webpack_public_path__ + \"static/media/codesIcon_16x16.33d37089.svg\";\nexport { ForwardRef as ReactComponent };","import { useState, useEffect, useRef } from 'react'\n\nimport { styled } from '@mui/system'\nimport { useHistory } from 'react-router-dom'\n\nimport { ReactComponent as Preview } from '../../../icons/preview.svg'\nimport { ReactComponent as AiSparkles } from '../../../icons/aiSparklesIcon_16x16.svg'\n\nimport {\n InputAdornment,\n Tooltip,\n Dialog,\n Button,\n useTheme,\n useMediaQuery,\n} from '@mui/material'\nimport TitleIcon from '@mui/icons-material/Title'\n\nimport SpeechTopicPromptParent from './SpeechTopicPromptParent'\nimport SpeechTopicOutcomesForm from './SpeechTopicOutcomesForm'\nimport SpeechTopicDescriptionForm from './SpeechTopicDescriptionForm'\nimport SpeechTopicVideoUploadParent from './SpeechTopicVideoUploadParent'\nimport SpeechTopicFullPreview from './SpeechTopicFullPreview'\nimport SpeechTopicTogglePrivateButton from './SpeechTopicTogglePrivateButton'\nimport TalkAutocomplete from './TalkAutocomplete'\nimport ModalCloseIcon from '../../common/ModalCloseIcon'\n\nimport { humanizeError } from '../../../utils/errorFormatter'\nimport { Notification } from '../../common/Notification'\n\nimport {\n validateTitle,\n validateOutcomes,\n validateDemographics,\n validateSpeechTopic,\n validateDescription,\n} from './speechTopicValidators'\nimport { addMediaToSignatureTalk } from './helpers'\n\nimport {\n MainContainer,\n SecondaryContainer,\n FormContainer,\n NavActionButton,\n NavActionContainer,\n StyledTextField,\n FullFormSection,\n HeaderContainer,\n HeaderSubtext,\n HeaderActionButtonsContainer,\n HeaderActionButton,\n FieldCaption,\n} from '../../common/FormComponents'\n\nimport Api from '../../../services/api'\n\nconst INITIAL_SPEECH_TOPIC_STATE = {\n title: '',\n description: '',\n // Start with 1 empty outcome\n outcomes: [''],\n demographics: [],\n signatureTalkMedia: [],\n is_public: false,\n}\n\nconst INITIAL_ERROR_STATE = {\n title: '',\n description: '',\n outcomes: [],\n demographics: '',\n}\n\nconst GenericErrorContainer = styled('div')(({ theme }) => ({\n margin: '0 auto',\n width: '900px',\n [theme.breakpoints.down('lg')]: {\n width: '100%',\n },\n}))\n\nconst PromptButton = styled(Button)(({ theme }) => ({\n marginTop: theme.spacing(3),\n color: theme.palette.base.white,\n textWrap: 'nowrap',\n maxWidth: '442px',\n width: 'auto',\n height: 'auto',\n svg: {\n marginRight: theme.spacing(1),\n '& path': {\n fill: theme.palette.base.white,\n },\n },\n [theme.breakpoints.down('sm')]: {\n minWidth: '50px',\n height: '50px',\n svg: {\n marginRight: 0,\n },\n '& .button-text': {\n display: 'none',\n },\n },\n}))\n\nconst SpeechTopicForm = ({ signatureTalkId, onSuccess }) => {\n const history = useHistory()\n const [speechTopic, setSpeechTopic] = useState(INITIAL_SPEECH_TOPIC_STATE)\n const [isSaving, setIsSaving] = useState(false)\n const [isVideoUploading, setIsVideoUploading] = useState(false)\n const [currentStep, setCurrentStep] = useState(2) // Only go to prompt step if speaker selects it\n const [errors, setErrors] = useState(INITIAL_ERROR_STATE)\n const [genericError, setGenericError] = useState('')\n const [previewOpen, setPreviewOpen] = useState(false)\n\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'))\n\n const videoUploaderRef = useRef()\n\n const isEditMode = Boolean(signatureTalkId)\n\n useEffect(() => {\n const fetchSignatureTalk = async () => {\n try {\n const res = await Api.getSignatureTalk(signatureTalkId)\n\n if (!res.errors) {\n // If the speech topic is invalid that gets returned\n if (!res.id) {\n return history.push('/talks/speech-topic/new')\n }\n setSpeechTopic(res)\n setCurrentStep(2)\n } else {\n throw res.errors\n }\n } catch (error) {\n setGenericError(humanizeError(error))\n }\n }\n\n if (signatureTalkId) {\n fetchSignatureTalk()\n }\n }, [history, signatureTalkId])\n\n const updateSpeechTopicAttribute = async (attribute, value) => {\n // Only allow blur actions when editing, not initial create\n if (!isEditMode) {\n return\n }\n\n setIsSaving(true)\n\n try {\n const params = {\n signature_talk: {\n [attribute]: value,\n },\n }\n\n const res = await Api.updateSignatureTalk(signatureTalkId, params)\n\n if (!res.errors) {\n setSpeechTopic({\n ...speechTopic,\n [attribute]: value,\n })\n } else {\n throw res.errors\n }\n } catch (error) {\n setGenericError(humanizeError(error))\n } finally {\n setIsSaving(false)\n }\n }\n\n const handleSubmit = async () => {\n if (!validateSpeechTopic(speechTopic, errors, setErrors)) {\n setGenericError(\n 'There was an issue saving your speech topic. Please check your form for errors and try again.'\n )\n window.scrollTo({ top: 0, behavior: 'smooth' })\n return\n }\n\n setGenericError('')\n setIsSaving(true)\n try {\n const params = {\n signature_talk: speechTopic,\n }\n\n let res\n if (isEditMode) {\n res = await Api.updateSignatureTalk(signatureTalkId, params)\n } else {\n res = await Api.createSignatureTalk(params)\n }\n if (res.errors) {\n throw res.errors\n }\n\n const talkId = signatureTalkId || res.id\n // Save any videos we attached to the signature talk\n if (talkId) {\n const mediaUploads = videoUploaderRef.current\n .getFiles()\n .map((fileInfo) => fileInfo.mediaUploadObj)\n if (mediaUploads.length !== 0) {\n try {\n const addMediaRes = await addMediaToSignatureTalk(\n signatureTalkId || res.id,\n mediaUploads\n )\n\n if (addMediaRes.errors) throw addMediaRes.errors\n } catch (error) {\n console.log(error) // If there's a video upload error, still let the rest of the stuff save\n }\n }\n }\n\n onSuccess?.(res)\n } catch (error) {\n setGenericError(humanizeError(error))\n window.scrollTo({ top: 0, behavior: 'smooth' })\n } finally {\n setIsSaving(false)\n }\n }\n\n const handleTogglePrivate = () => {\n const newVal = !speechTopic.is_public\n\n if (isEditMode) {\n updateSpeechTopicAttribute('is_public', newVal)\n } else {\n setSpeechTopic({\n ...speechTopic,\n is_public: newVal,\n })\n }\n }\n\n const hasValidOutcome = speechTopic?.outcomes?.some(\n (item) => item && item.toString().trim() !== ''\n )\n\n const enoughDataForPreview =\n speechTopic?.title && speechTopic?.description && hasValidOutcome\n\n const renderStep = () => {\n switch (currentStep) {\n case 1:\n return (\n \n )\n case 2:\n return renderMainForm()\n default:\n return renderMainForm()\n }\n }\n\n const renderTitle = () => (\n \n {\n if (!validateTitle(speechTopic, errors, setErrors)) {\n return\n }\n updateSpeechTopicAttribute('title', speechTopic.title)\n }}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n onChange={(e) => {\n setErrors({ ...errors, titleError: '' })\n setSpeechTopic({ ...speechTopic, title: e.target.value })\n }}\n />\n \n This is your public facing title\n \n setCurrentStep(1)}\n variant=\"contained\"\n color=\"tertiary\">\n \n \n Need a speech topic? Let us generate one for you\n \n \n \n )\n\n const renderDemographics = () => (\n \n \n \n )\n\n const renderMainFormActions = () => (\n \n {/* This is a shared component.\n Add div to make sure only button is flex-end */}\n
    \n \n {/* Wrap in span to make sure tooltip shows in the disabled state */}\n \n \n {isEditMode ? 'Update' : 'Create'} Speech Topic\n \n \n \n \n )\n\n const renderMainForm = () => (\n <>\n \n \n Speech topic set up\n \n \n {/* Need to wrap in span for tooltip to show in disabled state */}\n \n }\n color=\"tertiary\"\n disabled={!enoughDataForPreview}\n onClick={() => setPreviewOpen(true)}>\n Preview\n \n \n \n \n \n \n {renderTitle()}\n \n \n {renderDemographics()}\n \n \n {renderMainFormActions()}\n \n )\n\n return (\n \n \n {!!genericError && (\n \n {genericError}\n \n )}\n {renderStep()}\n \n setPreviewOpen(false)}\n maxWidth=\"lg\"\n fullWidth\n fullScreen={isMobile}\n aria-labelledby=\"preview-dialog-title\">\n setPreviewOpen(false)} />\n {/* Need to wrap this in a div to prevent height from overflowing */}\n
    \n \n
    \n \n
    \n )\n}\n\nexport default SpeechTopicForm\n","import React from 'react'\nimport { useParams, useHistory } from 'react-router-dom'\nimport { styled } from '@mui/system'\nimport PageHeader from '../../common/PageHeader'\nimport PageContainer from '../../common/PageContainer'\nimport PageDescription from '../../common/PageDescription'\nimport SpeechTopicForm from './SpeechTopicForm'\n\nconst FormContainer = styled('div')(({ theme }) => ({\n background: theme.palette.base.white,\n}))\n\nconst SpeechTopicParent = () => {\n const { id } = useParams()\n const history = useHistory()\n\n const handleSuccess = () => {\n history.push('/talks/speech-topics')\n }\n\n return (\n \n \n \n Your speech topic is the core message you’re known for—the one event\n planners consider when booking you. Most speakers have multiple speech\n topics (also known as a signature talk), each representing a distinct\n topic. Setting up your speech topics lets you showcase them on your\n profile, see grouped insights, and helps us cross-promote your talks to\n event hosts and clients.\n \n \n \n \n \n )\n}\n\nexport default SpeechTopicParent\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgSunRiseIcon36X36(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 36,\n height: 36,\n viewBox: \"0 0 36 36\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M34.5 33H1.5\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.5 27H34.5\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.5 27H4.5\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.5 27C25.5 25.0109 24.7098 23.1032 23.3033 21.6967C21.8968 20.2902 19.9891 19.5 18 19.5C16.0109 19.5 14.1032 20.2902 12.6967 21.6967C11.2902 23.1032 10.5 25.0109 10.5 27\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.54 17.46L29.67 15.33\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.33008 15.33L8.46008 17.46\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 3V13.5\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 9L18 3L24 9\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSunRiseIcon36X36);\nexport default __webpack_public_path__ + \"static/media/sunRiseIcon_36x36.f7a9fcdb.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgQrCodeIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.420898 2.7907C0.420898 1.24944 1.60458 0 3.06472 0H4.87763C6.33777 0 7.52145 1.24944 7.52145 2.7907V4.70433C7.52145 6.24559 6.33777 7.49503 4.87763 7.49503H3.06472C1.60458 7.49503 0.420898 6.24559 0.420898 4.70432V2.7907ZM3.06472 1.11628C2.18863 1.11628 1.47843 1.86594 1.47843 2.7907V4.70432C1.47843 5.62908 2.18863 6.37875 3.06472 6.37875H4.87763C5.75371 6.37875 6.46392 5.62908 6.46392 4.70433V2.7907C6.46392 1.86594 5.75371 1.11628 4.87763 1.11628H3.06472Z\",\n fill: \"#323A46\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.47852 2.7907C8.47852 1.24944 9.6622 0 11.1223 0H12.9352C14.3954 0 15.5791 1.24944 15.5791 2.7907V4.70433C15.5791 6.24559 14.3954 7.49503 12.9352 7.49503H11.1223C9.66219 7.49503 8.47852 6.24559 8.47852 4.70432V2.7907ZM11.1223 1.11628C10.2463 1.11628 9.53604 1.86594 9.53604 2.7907V4.70432C9.53604 5.62908 10.2463 6.37875 11.1223 6.37875H12.9352C13.8113 6.37875 14.5215 5.62908 14.5215 4.70433V2.7907C14.5215 1.86594 13.8113 1.11628 12.9352 1.11628H11.1223Z\",\n fill: \"#323A46\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.47852 11.2956C8.47852 9.75432 9.6622 8.50488 11.1223 8.50488H12.9352C14.3954 8.50488 15.5791 9.75432 15.5791 11.2956V13.2092C15.5791 14.7505 14.3954 15.9999 12.9352 15.9999H11.1223C9.66219 15.9999 8.47852 14.7505 8.47852 13.2092V11.2956ZM11.1223 9.62116C10.2463 9.62116 9.53604 10.3708 9.53604 11.2956V13.2092C9.53604 14.134 10.2463 14.8836 11.1223 14.8836H12.9352C13.8113 14.8836 14.5215 14.134 14.5215 13.2092V11.2956C14.5215 10.3708 13.8113 9.62116 12.9352 9.62116H11.1223Z\",\n fill: \"#323A46\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.420898 11.2956C0.420898 9.75432 1.60458 8.50488 3.06472 8.50488H4.87763C6.33777 8.50488 7.52145 9.75432 7.52145 11.2956V13.2092C7.52145 14.7505 6.33777 15.9999 4.87763 15.9999H3.06472C1.60458 15.9999 0.420898 14.7505 0.420898 13.2092V11.2956ZM3.06472 9.62116C2.18863 9.62116 1.47843 10.3708 1.47843 11.2956V13.2092C1.47843 14.134 2.18863 14.8836 3.06472 14.8836H4.87763C5.75371 14.8836 6.46392 14.134 6.46392 13.2092V11.2956C6.46392 10.3708 5.75371 9.62116 4.87763 9.62116H3.06472Z\",\n fill: \"#323A46\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgQrCodeIcon16X16);\nexport default __webpack_public_path__ + \"static/media/qrCodeIcon_16x16.33d37089.svg\";\nexport { ForwardRef as ReactComponent };","import TableHeaderSortable from '../common/TableHeaderSortable'\n\nconst CodesTableHeader = ({ order, orderBy, onRequestSort, loading }) => {\n const headCells = [\n { id: 'createdAt', label: 'Created', paddingLeft: 2 },\n { id: 'code', label: 'Code' },\n { id: 'name', label: 'Description', displayBreakpoint: 'md' },\n {\n id: 'code settings',\n label: 'Code Settings',\n align: 'center',\n displayBreakpoint: 'sm',\n },\n { id: 'actions', label: 'Actions', align: 'center' },\n ]\n\n return (\n \n )\n}\n\nexport default CodesTableHeader\n","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgBonusIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_206_1598)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.3337 8V14.6667H2.66699V8\",\n stroke: \"#323A46\",\n strokeWidth: 1,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.6663 4.66663H1.33301V7.99996H14.6663V4.66663Z\",\n stroke: \"#323A46\",\n strokeWidth: 1,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 14.6666V4.66663\",\n stroke: \"#323A46\",\n strokeWidth: 1,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 4.66671H11C11.442 4.66671 11.866 4.49111 12.1785 4.17855C12.4911 3.86599 12.6667 3.44207 12.6667 3.00004C12.6667 2.55801 12.4911 2.13409 12.1785 1.82153C11.866 1.50897 11.442 1.33337 11 1.33337C8.66667 1.33337 8 4.66671 8 4.66671Z\",\n stroke: \"#323A46\",\n strokeWidth: 1,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.99967 4.66671H4.99967C4.55765 4.66671 4.13372 4.49111 3.82116 4.17855C3.5086 3.86599 3.33301 3.44207 3.33301 3.00004C3.33301 2.55801 3.5086 2.13409 3.82116 1.82153C4.13372 1.50897 4.55765 1.33337 4.99967 1.33337C7.33301 1.33337 7.99967 4.66671 7.99967 4.66671Z\",\n stroke: \"#323A46\",\n strokeWidth: 1,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_206_1598\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBonusIcon16X16);\nexport default __webpack_public_path__ + \"static/media/bonusIcon_16x16.f48dae3b.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgWrenchIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.7999 4.20003C9.67775 4.32465 9.60933 4.49219 9.60933 4.66669C9.60933 4.8412 9.67775 5.00874 9.7999 5.13336L10.8666 6.20003C10.9912 6.32218 11.1587 6.3906 11.3332 6.3906C11.5077 6.3906 11.6753 6.32218 11.7999 6.20003L14.3132 3.68669C14.6485 4.42749 14.75 5.25285 14.6042 6.05279C14.4585 6.85273 14.0724 7.58926 13.4974 8.16421C12.9225 8.73917 12.1859 9.12525 11.386 9.271C10.5861 9.41675 9.7607 9.31525 9.0199 8.98003L4.41324 13.5867C4.14802 13.8519 3.78831 14.0009 3.41324 14.0009C3.03816 14.0009 2.67845 13.8519 2.41324 13.5867C2.14802 13.3215 1.99902 12.9618 1.99902 12.5867C1.99902 12.2116 2.14802 11.8519 2.41324 11.5867L7.0199 6.98003C6.68468 6.23923 6.58318 5.41387 6.72893 4.61393C6.87468 3.81399 7.26076 3.07746 7.83572 2.50251C8.41067 1.92755 9.1472 1.54147 9.94714 1.39572C10.7471 1.24997 11.5724 1.35147 12.3132 1.68669L9.80657 4.19336L9.7999 4.20003Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWrenchIcon16X16);\nexport default __webpack_public_path__ + \"static/media/wrenchIcon_16x16.7ba2fda7.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCustomSettingsIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_206_1706)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.333 14.0001V10.6667\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.333 10.6667H15.333\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.66699 13.9999V9.33325\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.666992 9.33325H4.66699\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 14V8\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 5.33325H10\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.333 8V2\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 5.33333V2\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.66699 6.66667V2\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_206_1706\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCustomSettingsIcon16X16);\nexport default __webpack_public_path__ + \"static/media/customSettingsIcon_16x16.c3e981b4.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgDocumentDuplicateIcon20X20(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13 14.25V16.7812C13 17.2472 12.6222 17.625 12.1562 17.625H4.84375C4.37776 17.625 4 17.2472 4 16.7812V7.21875C4 6.75276 4.37776 6.375 4.84375 6.375H6.25C6.6333 6.375 7.00914 6.40695 7.375 6.46833M13 14.25H15.5312C15.9972 14.25 16.375 13.8722 16.375 13.4062V9.75C16.375 6.40538 13.9424 3.62892 10.75 3.09333C10.3841 3.03195 10.0083 3 9.625 3H8.21875C7.75276 3 7.375 3.37776 7.375 3.84375V6.46833M13 14.25H8.21875C7.75276 14.25 7.375 13.8722 7.375 13.4062V6.46833M16.375 11.4375V10.0312C16.375 8.63328 15.2417 7.5 13.8438 7.5H12.7188C12.2528 7.5 11.875 7.12224 11.875 6.65625V5.53125C11.875 4.13328 10.7417 3 9.34375 3H8.5\",\n stroke: \"#1F2937\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDocumentDuplicateIcon20X20);\nexport default __webpack_public_path__ + \"static/media/documentDuplicateIcon_20x20.1683fc1b.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgFileTextIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.33366 1.33337H4.00033C3.6467 1.33337 3.30756 1.47385 3.05752 1.7239C2.80747 1.97395 2.66699 2.31309 2.66699 2.66671V13.3334C2.66699 13.687 2.80747 14.0261 3.05752 14.2762C3.30756 14.5262 3.6467 14.6667 4.00033 14.6667H12.0003C12.3539 14.6667 12.6931 14.5262 12.9431 14.2762C13.1932 14.0261 13.3337 13.687 13.3337 13.3334V5.33337L9.33366 1.33337Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.6663 11.3334H5.33301\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.6663 8.66663H5.33301\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.66634 6H5.99967H5.33301\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.33301 1.33337V5.33337H13.333\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFileTextIcon16X16);\nexport default __webpack_public_path__ + \"static/media/fileTextIcon_16x16.aa24520c.svg\";\nexport { ForwardRef as ReactComponent };","import { useContext } from 'react'\nimport { styled } from '@mui/system'\nimport { TableRow, Tooltip, Typography } from '@mui/material'\n\nimport { ReactComponent as DownloadIcon } from '../../icons/downloadIcon_16x16.svg'\nimport { ReactComponent as DownloadQRCodeIcon } from '../../icons/qrCodeIcon_16x16.svg'\nimport { ReactComponent as EyeIcon } from '../../icons/eyeIcon_16x16.svg'\nimport { ReactComponent as EditIcon } from '../../icons/editIcon_16x16.svg'\nimport { ReactComponent as CopyIcon } from '../../icons/copyIcon_16x16.svg'\nimport { ReactComponent as TrashIcon } from '../../icons/trash2Icon_16x16.svg'\nimport { ReactComponent as LockIcon } from '../../icons/lockIcon_16x16.svg'\nimport { ReactComponent as MailIcon } from '../../icons/mailIcon_16x16.svg'\nimport { ReactComponent as LeadsIcon } from '../../icons/leadsIcon_16x16.svg'\nimport { ReactComponent as BonusIcon } from '../../icons/bonusIcon_16x16.svg'\nimport { ReactComponent as WrenchIcon } from '../../icons/wrenchIcon_16x16.svg'\nimport { ReactComponent as CustomSettingsIcon } from '../../icons/customSettingsIcon_16x16.svg'\nimport { ReactComponent as DuplicateIcon } from '../../icons/documentDuplicateIcon_20x20.svg'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { GroupContext } from '../groups/groupContext'\nimport history from '../../routes/history'\n\nimport { ActionsTableCell } from '../common/TableComponents'\nimport DisabledBadgeIconWrapper from '../common/DisabledBadgeIconWrapper'\nimport TableCellStyled from '../common/TableCellStyled'\nimport TableActionsDropdown from '../common/TableActionsDropdown'\n\nimport { handleCopy, makeSurveyLink, formatDate } from '../common/helpers'\n\nconst StyledTableRow = styled(TableRow)({\n cursor: 'pointer',\n opacity: 1,\n})\n\nconst CodeTypography = styled(Typography)({\n fontWeight: 600,\n})\n\nconst SettingsIconsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: theme.spacing(1),\n}))\n\nconst SettingsIconWrapper = styled('div')({\n display: 'flex',\n alignItems: 'center',\n})\n\nconst StyledDuplicateIcon = styled(DuplicateIcon)({\n width: '16px',\n height: '16px',\n})\n\nconst CodesTableRow = ({\n offer,\n handleDelete,\n handleEdit,\n handleDuplicate,\n canDuplicate,\n handleOpenSlideDownload,\n handleDownloadQrCode,\n}) => {\n const { authData, setNotification } = useContext(AuthenticationContext)\n const {\n groupState: { selectedGroup },\n } = useContext(GroupContext)\n\n const { user } = authData\n const shortlink = selectedGroup ? selectedGroup.shortlink : user?.shortlink\n\n const codeUrl = offer.downloadUrl ? offer.downloadUrl : offer.link\n const regex = /^((http|https):\\/\\/)/\n const url = !regex.test(codeUrl) ? '//' + codeUrl : codeUrl\n\n const menuItems = [\n {\n text: 'Download Slide',\n icon: ,\n onClick: () => handleOpenSlideDownload(offer),\n },\n {\n text: 'Download QR Code',\n icon: ,\n onClick: () => handleDownloadQrCode(offer),\n },\n {\n text: 'View Bonus',\n icon: ,\n onClick: () => openOffer(),\n disabled: !codeUrl,\n },\n {\n text: 'Edit Code',\n icon: ,\n onClick: () => handleEdit(offer),\n },\n {\n text: 'Test Code',\n icon: ,\n onClick: () =>\n window.open(\n makeSurveyLink({ shortlink, code: offer.code, test: true }),\n '_blank',\n 'noreferrer'\n ),\n },\n {\n text: 'Copy Code Link',\n icon: ,\n onClick: () =>\n handleCopyCodeLink(makeSurveyLink({ shortlink, code: offer.code })),\n },\n {\n text: 'Duplicate Code',\n icon: ,\n onClick: () => handleDuplicate(offer.id),\n disabled: !canDuplicate || offer.isGated,\n tooltipText: offer.isGated\n ? 'This code uses features that were set on a higher tier plan'\n : !canDuplicate && 'Code limit reached',\n },\n {\n text: 'Delete Code',\n icon: ,\n onClick: () => handleDelete(offer.id),\n },\n ]\n\n const handleCopyCodeLink = (copyText) => {\n handleCopy(copyText)\n return setNotification('Code Link Copied!', 'success')\n }\n\n const openOffer = () => {\n return window.open(url, '_blank', 'noreferrer')\n }\n\n const renderNoBonusIcon = () => {\n const { selectedBonusType, link, downloadUrl } = offer\n if (\n selectedBonusType === 'none' ||\n (selectedBonusType === 'link' && !link) ||\n (selectedBonusType === 'file' && !downloadUrl) ||\n (!selectedBonusType && !link && !downloadUrl)\n ) {\n return (\n \n \n \n \n \n \n \n )\n }\n }\n\n const renderSettingsIcons = () => {\n const { lockedEvent } = offer\n\n return (\n \n {renderNoBonusIcon()}\n {lockedEvent && (\n \n \n \n \n \n )}\n {offer.disableContactCollection && (\n \n \n \n \n \n \n \n )}\n {offer.disableBookingFlow && (\n \n \n \n \n \n \n \n )}\n {offer.disableLeadgen && (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n {offer.customQuestion && (\n \n \n \n \n \n )}\n \n )\n }\n\n const handleCellClick = () => {\n history.push(`/codes/edit/${offer.id}`)\n }\n\n return (\n \n \n {offer.createdAt\n ? formatDate(offer.createdAt)\n : formatDate(authData.user.signUpDate)}\n \n \n \n {offer.code}\n \n \n \n {offer.name}\n \n \n {renderSettingsIcons()}\n \n \n \n \n \n )\n}\n\nexport default CodesTableRow\n","import { useEffect, useState, useContext } from 'react'\nimport {\n Paper,\n Table,\n TableContainer,\n TableBody,\n TableRow,\n TableCell,\n Skeleton,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\n\nimport { styled } from '@mui/system'\n\nimport Api from '../../services/api'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { GroupContext } from '../groups/groupContext'\nimport { usePermissionHelper } from '../../utils/permission_helper'\nimport { getComparator } from '../../utils/sort'\n\nimport CodesTableHeader from './CodesTableHeader'\nimport CodesTableRow from './CodesTableRow'\nimport TablePaginationFooter from '../common/TablePaginationFooter'\nimport ConfirmDialog from '../common/ConfirmDialog'\nimport CreateCodeAlert from '../common/CreateCodeAlert'\nimport { VideoPlayerComponent } from '../common/VideoPlayerComponent'\n\nconst VideoTableRow = styled(TableRow)(({ theme }) => ({\n [theme.breakpoints.down('md')]: {\n display: 'none',\n },\n}))\n\nconst CodesTable = ({\n offers,\n setOffers,\n loading,\n handleEdit,\n handleDuplicate,\n canDuplicate,\n handleOpenSlideDownload,\n handleDownloadQrCode,\n}) => {\n const [page, setPage] = useState(0)\n // const [rowsPerPage, setRowsPerPage] = useState(5)\n const [order, setOrder] = useState('desc')\n const [orderBy, setOrderBy] = useState('createdAt')\n const [visibleRows, setVisibleRows] = useState([])\n const [deleteOfferId, setDeleteOfferId] = useState(null)\n const [confirmOpen, setConfirmOpen] = useState(false)\n\n const { setNotification, updatePermission } = useContext(\n AuthenticationContext\n )\n const {\n groupState: { selectedGroup },\n } = useContext(GroupContext)\n\n const theme = useTheme()\n const smallScreen = useMediaQuery(theme.breakpoints.down('sm'))\n\n const { findPermission } = usePermissionHelper()\n const codePermission = findPermission('OFFER_CODE_LIMIT')\n\n const rowsPerPage = 25\n\n useEffect(() => {\n setVisibleRows(\n offers\n .slice()\n .sort(getComparator(order, orderBy))\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n )\n }, [offers, page, rowsPerPage, order, orderBy])\n\n const userCreatedOffers = offers?.filter((offer) => offer.code !== 'TALK')\n\n const handleRequestSort = (property) => {\n const isAsc = orderBy === property && order === 'asc'\n setOrder(isAsc ? 'desc' : 'asc')\n setOrderBy(property)\n }\n\n const handleChangePage = (newPage) => {\n setPage(newPage)\n }\n\n const handleConfirmDelete = async () => {\n try {\n let res\n if (selectedGroup) {\n res = await Api.deleteGroupSurveyOffer(deleteOfferId, selectedGroup.id)\n } else {\n res = await Api.deleteCode(deleteOfferId)\n }\n if (!res.errors) {\n setOffers(offers?.filter((offer) => offer.id !== deleteOfferId))\n setDeleteOfferId(null)\n\n // Update the upgrade widget content\n updatePermission({\n ...codePermission,\n consumed: codePermission.consumed - 1,\n })\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n setDeleteOfferId(null)\n }\n }\n\n const handleDelete = async (offerId) => {\n setDeleteOfferId(offerId)\n setConfirmOpen(true)\n }\n\n const deleteOfferCode = () => {\n if (!deleteOfferId) return null\n const offer = offers.find((offer) => offer.id === deleteOfferId)\n return offer?.code\n }\n\n // Avoid a layout jump when reaching the last page with empty rows.\n const emptyRows =\n page > 0 ? Math.max(0, (1 + page) * rowsPerPage - offers.length) : 0\n\n const skeletonColumns = smallScreen ? 1 : 3\n\n const renderLoadingSkeleton = () =>\n Array.from({ length: 3 }).map((_, index) => (\n \n {Array.from({ length: skeletonColumns }).map((_, cellIndex) => (\n \n \n \n ))}\n \n \n ))\n\n const renderTableRows = () => {\n if (loading) {\n return renderLoadingSkeleton()\n }\n\n return visibleRows.map((offer) => (\n \n ))\n }\n\n return (\n <>\n \n \n \n \n {renderTableRows()}\n {!loading && userCreatedOffers?.length < 1 && (\n \n \n \n \n \n \n )}\n {emptyRows > 0 && (\n \n \n \n )}\n \n
    \n
    \n \n setDeleteOfferId(null)}\n buttonColor=\"black\"\n buttonText=\"Delete Code\"\n manualConfirm={true}\n confirmText=\"DELETE CODE\">\n <>\n You will no longer be able to use survey code{' '}\n {deleteOfferCode()} to collect feedback.\n \n \n \n )\n}\n\nexport default CodesTable\n","import QRCode from 'qrcode.react'\nimport envConfig from '../../envConfig'\n\nconst DownloadableQrCode = ({ surveyLink, code }) => {\n const url = `${envConfig.REACT_APP_SHORTLINK}/${surveyLink}`\n return (\n \n )\n}\n\nexport default DownloadableQrCode\n","import { useContext, useEffect, useState } from 'react'\nimport { useHistory } from 'react-router-dom'\nimport {\n Dialog,\n DialogContent,\n Box,\n IconButton,\n Typography,\n} from '@mui/material'\n\nimport CloseIcon from '@mui/icons-material/Close'\nimport { ReactComponent as PlusIcon } from '../../icons/plusIcon.svg'\nimport { ReactComponent as CodesIcon } from '../../icons/codesIcon_16x16.svg'\nimport { ReactComponent as MostUsedCodeIcon } from '../../icons/sunRiseIcon_36x36.svg'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport Api from '../../services/api'\n\nimport SurveyOffersSlide from '../dashboard/SurveyOffersSlide'\nimport CodesTable from './CodesTable'\nimport PageContainer from '../common/PageContainer'\nimport PageHeader from '../common/PageHeader'\nimport StatsSummaryHeader from '../common/StatsSummaryHeader'\nimport TableActions from '../common/TableActions'\nimport DownloadableQrCode from '../common/DownloadableQrCode'\nimport ConfirmDialog from '../common/ConfirmDialog'\nimport { Notification } from '../common/Notification'\nimport WebinarAlert from '../helpCenter/WebinarAlert'\nimport { LinkSpan } from '../common/LinkSpan'\n\nimport { initialOfferState } from '../../constants/codes/initialOfferStates'\nimport { usePermissionHelper } from '../../utils/permission_helper'\nimport { useBillingRedirect } from '../../hooks/useBillingRedirect'\nimport { processWithFallback } from '../common/helpers'\nimport useCustomerIo from '../../services/customerio'\n\nconst initialConfirmProps = {\n title: '',\n onConfirm: () => {},\n onCancel: () => {},\n children: '',\n}\n\nconst CodesParent = () => {\n const [offers, setOffers] = useState([])\n const [offer, setOffer] = useState(initialOfferState)\n const [surveyLink, setSurveyLink] = useState('')\n const [mostUsedCode, setMostUsedCode] = useState('')\n const [loading, setLoading] = useState(true)\n const [slideDownloadOpen, setSlideDownloadOpen] = useState(false)\n const [qrDownloadOpen, setQrDownloadOpen] = useState(false)\n const [confirmDialogOpen, setConfirmDialogOpen] = useState(false)\n const [confirmProps, setConfirmProps] = useState(initialConfirmProps)\n const history = useHistory()\n\n const { authData, setNotification, updatePermission } = useContext(\n AuthenticationContext\n )\n\n const { user } = authData\n const {\n membership: { isTrialing, plan, shouldShowUpgrades },\n } = user\n\n const { findPermission } = usePermissionHelper()\n const { sendCodeDownloadedEvent, viewedCodesPage } = useCustomerIo()\n const redirectToBilling = useBillingRedirect()\n\n useEffect(() => {\n viewedCodesPage()\n }, [])\n\n useEffect(() => {\n const fetchCodes = async () => {\n try {\n const res = await Api.getCodes()\n\n if (!res.errors) {\n setLoading(false)\n setOffers(res.offers)\n setSurveyLink(res.shortlink)\n setMostUsedCode(res.mostUsedCode?.toUpperCase())\n } else {\n throw res.errors\n }\n } catch (error) {\n setLoading(false)\n setNotification(error, 'error')\n }\n }\n\n fetchCodes()\n }, [])\n\n const handleEdit = (offer) => {\n history.push(`/codes/edit/${offer.id}`)\n }\n\n const handleDuplicate = async (offerId) => {\n try {\n setLoading(true)\n let res\n res = await Api.duplicateCode(offerId)\n\n if (!res.errors) {\n updatePermission({\n ...codePermission,\n consumed: codePermission.consumed + 1,\n })\n\n history.push(`/codes/edit/${res.id}`)\n\n setNotification('Code successfully duplicated', 'success')\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n setLoading(false)\n }\n }\n\n const validateOffer = (offer) => {\n const { selectedBonusType, link, downloadUrl } = offer\n\n if (\n (selectedBonusType === 'link' && !link) ||\n (selectedBonusType === 'file' && !downloadUrl)\n ) {\n setConfirmProps({\n variant: 'info',\n hideDangerMessage: true,\n onCancel: () => {},\n showCancel: false,\n title: 'You are missing a bonus',\n buttonText: 'Add bonus',\n buttonColor: 'primary',\n textColor: 'white',\n onConfirm: () => {\n setConfirmDialogOpen(false)\n history.push(`/codes/edit/${offer.id}`)\n },\n children: (\n \n You have indicated you want to give away a bonus but have not\n uploaded a link or file. Please add a bonus before proceeding or the\n select the \"I do not want to give away anything\" option.\n \n ),\n })\n setConfirmDialogOpen(true)\n\n return false\n }\n\n return true\n }\n\n const handleOpenSlideDownload = (offer) => {\n if (!validateOffer(offer)) {\n return\n }\n\n setOffer(offer)\n setSlideDownloadOpen(true)\n }\n\n const handleCloseSlideDownload = () => {\n setSlideDownloadOpen(false)\n // use setTimeout to allow the modal to close before resetting the offer\n setTimeout(() => {\n setOffer(initialOfferState)\n }, 500)\n }\n\n const handleDownloadQrCode = (offer) => {\n if (!validateOffer(offer)) {\n return\n }\n sendCodeDownloadedEvent({ code: offer.code })\n\n setOffer(offer)\n setQrDownloadOpen(true)\n }\n\n const handleCloseQrDownload = () => {\n setQrDownloadOpen(false)\n setTimeout(() => {\n setOffer(initialOfferState)\n }, 500)\n }\n\n const codePermission = findPermission('OFFER_CODE_LIMIT')\n\n const { limit, unlimitedUsage, isBelowLimit } = codePermission\n\n const codesConsumed = loading ? 0 : offers.length\n\n const showUpgradeButton =\n isTrialing || (!unlimitedUsage && shouldShowUpgrades)\n\n const statsSummaryItems = [\n {\n label: 'Total Codes',\n value: processWithFallback(codesConsumed, (val) =>\n unlimitedUsage ? val : `${val}/${limit}`\n ),\n icon: ,\n svgType: 'fill',\n showUpgradeButton: showUpgradeButton,\n upgradeButtonText: 'Upgrade for more codes!',\n },\n {\n label: 'Most Used',\n value: mostUsedCode,\n icon: ,\n svgType: 'stroke',\n },\n ]\n\n return (\n \n \n \n {!loading && isTrialing && (\n <>\n \n You are currently on a free trial of {plan.name} which has a code\n limit of {unlimitedUsage ? 'unlimited' : limit}.{' '}\n \n redirectToBilling({ accessMethod: 'notification' })\n }>\n Upgrade\n {' '}\n to keep this limit before to keep this limit before your trial ends!\n \n \n )}\n {!loading && offers?.length < 2 && (\n \n \n Talkadot codes are used in order to:\n \n 1. Configure the questions your audience sees\n \n 2. Set up any bonuses, offers or downloads for your audience\n \n \n )}\n \n {\n history.push('/codes/edit')\n },\n text: 'Create a new code',\n icon: ,\n }}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default CodesParent\n","import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\n\nconst TitleContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n minHeight: '39px',\n}))\n\nconst Title = styled(Typography)(({ theme }) => ({\n fontWeight: theme.fontWeights.semiBold,\n}))\n\nconst Caption = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.main\n}))\n\nconst CodeBuilderSettingsTitle = ({ title, subTitle, caption }) => {\n return (\n \n {title}\n {subTitle && {subTitle}}\n {caption && {caption}}\n \n )\n}\n\nexport default CodeBuilderSettingsTitle\n","import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\n\nimport FormFieldError from '../../common/FormFieldError'\n\nconst Container = styled('div', {\n shouldForwardProp: (prop) =>\n prop !== 'marginTop' && prop !== 'containerHeight',\n})(({ marginTop, containerHeight }) => ({\n display: 'flex',\n flexDirection: 'column',\n marginTop: marginTop || 0,\n height: containerHeight || '100%',\n width: '100%',\n}))\n\nconst InputContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'isFocused',\n})(({ theme, isFocused }) => ({\n display: 'flex',\n alignItems: 'center',\n border: isFocused\n ? `1px solid ${theme.palette.secondary.main}`\n : `1px solid ${theme.palette.border.main}`,\n borderRadius: theme.shape.borderRadius.xxs,\n transition: '200ms all ease-in-out',\n marginBottom: theme.spacing(1.25),\n}))\n\nconst InputDescription = styled('div', {\n shouldForwardProp: (prop) =>\n prop !== 'visibility' && prop !== 'isFocused' && prop !== 'svgFillType',\n})(({ theme, visibility, isFocused, svgFillType }) => ({\n display: 'flex',\n visibility: visibility || 'visible',\n justifyContent: 'center',\n alignItems: 'center',\n padding: visibility === 'hidden' ? '0 0.875rem' : '0.875rem',\n backgroundColor: isFocused\n ? theme.palette.secondary.extraLight\n : theme.palette.neutral.extraLight,\n borderTopLeftRadius: theme.shape.borderRadius.xxs,\n borderBottomLeftRadius: theme.shape.borderRadius.xxs,\n minHeight: visibility === 'hidden' ? '0' : '48px',\n minWidth: '90px',\n p: {\n color: isFocused\n ? theme.palette.secondary.main\n : theme.palette.neutral.main,\n },\n svg: {\n path: {\n fill:\n isFocused && svgFillType === 'fill' ? theme.palette.secondary.main : '',\n stroke:\n isFocused && svgFillType === 'stroke'\n ? theme.palette.secondary.main\n : '',\n },\n },\n transition: '200ms all ease-in-out',\n [theme.breakpoints.down('sm')]: {\n minWidth: '60px',\n },\n}))\n\nconst InputWrapper = styled('div')(({ theme, canEdit }) => ({\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n height: '100%',\n backgroundColor: canEdit\n ? theme.palette.base.white\n : theme.palette.surface.subtle,\n borderTopRightRadius: theme.shape.borderRadius.xxs,\n borderBottomRightRadius: theme.shape.borderRadius.xxs,\n}))\n\nconst HintContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n})\n\nconst InputHint = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.main,\n padding: theme.spacing(0, 1.25, 1.25, 1.25),\n}))\n\nconst CodeBuilderInputWrapper = ({\n children,\n hint,\n inputDescription,\n marginTop,\n containerHeight,\n error,\n canEdit = false,\n isFocused,\n}) => {\n const renderInputDescription = () => {\n if (inputDescription) {\n return inputDescription\n }\n\n return Question\n }\n\n const renderHint = () => {\n return (\n hint && (\n \n \n {renderInputDescription()}\n \n {hint}\n \n )\n )\n }\n\n return (\n \n \n \n {renderInputDescription()}\n \n {children}\n \n {renderHint()}\n {error && (\n \n )}\n \n )\n}\n\nexport default CodeBuilderInputWrapper\n","import { useEffect, useState, useRef } from 'react'\nimport { styled } from '@mui/system'\nimport { Tooltip, useMediaQuery } from '@mui/material'\n\nimport CodeBuilderInputWrapper from './CodeBuilderInputWrapper'\n\nconst TextInput = styled('input', {\n shouldForwardProp: (prop) =>\n prop !== 'fontWeight' && prop !== 'error' && prop !== 'disableLeftPadding',\n})(({ theme, fontWeight, error, disableLeftPadding }) => ({\n width: '100%',\n transition: '300ms all ease-in-out',\n fontFamily: 'Figtree, sans-serif',\n fontWeight: fontWeight || '400',\n fontSize: '0.875rem',\n border: 'none',\n position: 'relative',\n backgroundColor: 'transparent',\n color: error ? theme.palette.error.main : theme.palette.neutral.main,\n textOverflow: 'ellipsis',\n padding: '1px 10px',\n paddingLeft: disableLeftPadding ? '0' : '10px',\n height: '100%',\n minHeight: '48px',\n outline: 'none',\n borderTopRightRadius: theme.shape.borderRadius.xxs,\n borderBottomRightRadius: theme.shape.borderRadius.xxs,\n '&:focus': {\n outline: 'none',\n },\n '&::placeholder': {\n color: theme.palette.neutral.light,\n opacity: '50%',\n },\n}))\n\nconst CodeBuilderInputText = ({\n value,\n inputValidation,\n inputDescription,\n marginTop,\n containerHeight,\n hint,\n placeholder,\n fontWeight,\n canEdit,\n editConfig,\n questionEnabled,\n handleOnChange,\n handleOnBlur,\n disabled,\n error,\n setError,\n disableLeftPadding,\n prefix,\n autoFocus,\n identifier,\n}) => {\n const [inputValue, setInputValue] = useState('')\n const [isDisabled, setIsDisabled] = useState(false)\n const [isFocused, setIsFocused] = useState(false)\n\n const inputRef = useRef(null)\n const isMobile = useMediaQuery((theme) => theme.breakpoints.down('sm'))\n\n useEffect(() => {\n if (value === '' || value !== inputValue) {\n setInputValue(value)\n }\n\n if (questionEnabled && canEdit && autoFocus) {\n setIsFocused(true)\n\n // NOTE: I don't love this timeout, but it's the only way I could get it to work\n // Need this timeout to allow the onBlur event to finish before setting focus\n // onBlur also runs on a timeout to allow the button click event to finish before sending the blur event\n setTimeout(() => {\n if (inputRef.current && document.activeElement !== inputRef.current) {\n inputRef.current.focus()\n inputRef.current.setSelectionRange(\n inputRef.current.value.length,\n inputRef.current.value.length\n )\n }\n }, 300)\n }\n\n if ((!canEdit || !questionEnabled) && isFocused) {\n setIsFocused(false)\n }\n\n if (inputValidation) {\n const validationError = inputValidation(value)\n if (validationError?.message) {\n setError(validationError)\n } else {\n setError(null)\n }\n }\n }, [value, autoFocus, questionEnabled, identifier])\n\n const handleChange = (e) => {\n if (!canEdit) {\n return\n }\n\n if (error) {\n setError(null)\n }\n\n const validationError = inputValidation && inputValidation(e.target.value)\n\n if (validationError?.message) {\n setError(validationError)\n if (!validationError?.allowContinue) {\n return\n }\n }\n\n setInputValue(e.target.value)\n handleOnChange(e.target.value)\n }\n\n const sendBlurEvent = async (newValue) => {\n // NOTE: I would like to skip the handleOnBlur if the value hasn't changed\n // but since we are modifying the value in the parent component, we can't compare\n // we could pass the original value to this component, but that seems like it might be overkill?\n\n if (error && !error.allowSubmit) {\n return\n }\n\n // if (canEdit && !error && newValue !== value) {\n if (canEdit) {\n setIsDisabled(true)\n await handleOnBlur(newValue)\n setIsDisabled(false)\n }\n }\n\n const handleBlur = async (e) => {\n setIsFocused(false)\n\n sendBlurEvent(inputValue)\n }\n\n const makeTooltipTitle = () => {\n if (!editConfig && canEdit) {\n return ''\n }\n\n // On mobile, if the user can't edit the content, show the input value as the tooltip\n // This is because the input value is potentially cut off and the user can't see the full value\n if (!editConfig && !canEdit && isMobile) {\n return inputValue\n }\n\n if (!editConfig && !canEdit) {\n return 'You cannot edit this content'\n }\n\n if (editConfig && !canEdit) {\n return 'Upgrade your plan to edit this option'\n }\n\n return ''\n }\n\n return (\n \n {prefix && prefix}\n \n handleChange(e)}\n onBlur={(e) => handleBlur(e)}\n onFocus={() => setIsFocused(true)}\n value={inputValue}\n placeholder={placeholder}\n fontWeight={fontWeight}\n disabled={disabled || !canEdit || isDisabled}\n disableLeftPadding={disableLeftPadding}\n />\n \n \n )\n}\n\nexport default CodeBuilderInputText\n","import { styled } from '@mui/system'\n\nconst StyledIcon = styled('div', {\n shouldForwardProp: (prop) => prop !== 'fillType',\n})(({ theme, fillType }) => ({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n svg: {\n path: {\n fill: fillType === 'fill' ? theme.palette.neutral.main : '',\n stroke: fillType === 'stroke' ? theme.palette.neutral.main : '',\n },\n },\n}))\n\nconst CodeBuilderInputIcon = ({ icon, fillType }) => {\n return {icon}\n}\n\nexport default CodeBuilderInputIcon\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgRadioUncheckedIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.5 10C0.5 4.7533 4.7533 0.5 10 0.5C15.2467 0.5 19.5 4.7533 19.5 10C19.5 15.2467 15.2467 19.5 10 19.5C4.7533 19.5 0.5 15.2467 0.5 10Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.5 10C0.5 4.7533 4.7533 0.5 10 0.5C15.2467 0.5 19.5 4.7533 19.5 10C19.5 15.2467 15.2467 19.5 10 19.5C4.7533 19.5 0.5 15.2467 0.5 10Z\",\n stroke: \"#D0D5DD\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRadioUncheckedIcon);\nexport default __webpack_public_path__ + \"static/media/radioUncheckedIcon.c31c4c80.svg\";\nexport { ForwardRef as ReactComponent };","import {\n // useEffect,\n useState,\n} from 'react'\n// import { styled } from '@mui/system'\n\nimport CodeBuilderSettingsTitle from './CodeBuilderSettingsTitle'\nimport CodeBuilderInputText from './CodeBuilderInputText'\nimport CodeBuilderInputIcon from './CodeBuilderInputIcon'\n\n// import CheckBoxStyled from '../../common/CheckBoxStyled'\n// import FormFieldError from '../../common/FormFieldError'\n\nimport { ReactComponent as CodeIcon } from '../../../icons/codesIcon_16x16.svg'\nimport { ReactComponent as DescriptionIcon } from '../../../icons/fileTextIcon_16x16.svg'\n\n// const CheckboxContainer = styled('div')(({ theme }) => ({\n// display: 'flex',\n// flexDirection: 'column',\n// gap: theme.spacing(1),\n// }))\n\nconst CODEREGEX = /^[a-zA-Z0-9]+$/i\n\nconst CodeBuilderSettingsCode = ({\n surveyOffer,\n code,\n setCode,\n description,\n setDescription,\n updateCode,\n surveyOfferLoading,\n setActiveTab,\n}) => {\n // const [codeLocked, setCodeLocked] = useState(false)\n const [codeError, setCodeError] = useState(null)\n const [descriptionError, setDescriptionError] = useState(null)\n\n // useEffect(() => {\n // if (surveyOffer?.lockedCode) {\n // setCodeLocked(true)\n // }\n // }, [surveyOffer])\n\n const codeValidation = (value) => {\n if (value?.length > 0 && !CODEREGEX.test(value)) {\n return {\n message:\n 'Talkadot codes can only be letters and numbers, no spaces or symbols',\n allowContinue: false,\n }\n }\n\n if (value?.length === 0) {\n return {\n message: 'You must enter a code',\n allowContinue: true,\n }\n }\n\n if (value?.length > 15) {\n return {\n message: 'Must be 15 characters or less',\n allowContinue: false,\n allowSubmit: true,\n }\n }\n }\n\n const descriptionValidation = (value) => {\n // Compare new length to old length to allow backspace for exising descriptions that are longer than 100 characters\n if (value?.length > 100 && value?.length > description?.length) {\n return {\n message: 'Must be 100 characters or less',\n allowContinue: false,\n allowSubmit: true,\n }\n }\n }\n\n const handleChangeCode = (value) => {\n setCode(value.toUpperCase())\n setActiveTab(1)\n }\n\n const handleUpdateCode = (data) => {\n if (!surveyOffer.id) return\n\n const { code, name } = data || {}\n if (\n (code && code !== surveyOffer.code) ||\n (name && name !== surveyOffer.name)\n ) {\n updateCode(data)\n }\n }\n\n // const handleCodeLockChange = () => {\n // setCodeLocked(!codeLocked)\n // }\n\n const handleChangeDescription = (value) => {\n setDescription(value)\n }\n\n return (\n <>\n \n handleUpdateCode({ code })}\n inputValidation={codeValidation}\n disabled={surveyOfferLoading}\n error={codeError}\n setError={setCodeError}\n canEdit={true}\n placeholder=\"Enter a code\"\n fontWeight=\"600\"\n hint={\n !surveyOffer?.code &&\n 'Use this auto-generated code, or enter a new code'\n }\n marginTop=\"1.5rem\"\n autoFocus={true}\n questionEnabled={true}\n inputDescription={\n } fillType=\"fill\" />\n }\n />\n {/* Note: Commenting out until we fully build this feature */}\n {/* \n \n {codeLocked && (\n \n \n This is a ONE USE code. Do not reuse this code or slide for\n any other talk.\n \n
    \n
    \n \n ALL responses using this code will go into the same report.\n \n \n }\n allowClose={false}\n />\n )}\n
    */}\n handleUpdateCode({ name: description })}\n inputValidation={descriptionValidation}\n disabled={surveyOfferLoading}\n canEdit={true}\n error={descriptionError}\n setError={setDescriptionError}\n placeholder=\"Write a description here\"\n marginTop=\"1.5rem\"\n hint={\n !surveyOffer?.name &&\n 'Add a description so you remember what this is later'\n }\n inputDescription={\n } fillType=\"stroke\" />\n }\n />\n \n )\n}\n\nexport default CodeBuilderSettingsCode\n","import { styled } from '@mui/system'\nimport { IconButton, Typography, LinearProgress } from '@mui/material'\n\nimport { ReactComponent as TrashIcon } from '../../../icons/trash2Icon_16x16.svg'\nimport { ReactComponent as FileIcon } from '../../../icons/fileIcon_16x16.svg'\nimport { ReactComponent as CancelIcon } from '../../../icons/closeIcon_16x16.svg'\n\nconst Container = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n marginTop: theme.spacing(2.5),\n padding: theme.spacing(2, 1.5),\n}))\n\nconst FileIconContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '26px',\n height: '26px',\n borderRadius: '50%',\n backgroundColor: theme.palette.neutral.lightest,\n marginRight: theme.spacing(1.5),\n svg: {\n maxWidth: '12px',\n path: {\n stroke: theme.palette.neutral.main,\n },\n },\n}))\n\nconst FileNameContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n})\n\nconst FileName = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.darkest,\n fontWeight: '500',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}))\n\nconst UploadDetails = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.main,\n}))\n\nconst FileCta = styled(IconButton)(({ theme }) => ({\n marginLeft: theme.spacing(1.5),\n svg: {\n path: {\n stroke: theme.palette.error.semiDark,\n },\n },\n}))\n\nconst StyledLinearProgress = styled(LinearProgress)(({ theme }) => ({\n height: '8px',\n borderRadius: theme.shape.borderRadius.xxs,\n margin: theme.spacing(1, 0),\n}))\n\nconst CodeBuilderUploadFile = ({\n fileName,\n fileSize,\n uploading,\n uploadProgress,\n handleUploadCancel,\n handleUploadDelete,\n}) => {\n const renderCta = () => {\n if (uploading) {\n return (\n \n \n \n )\n }\n\n return (\n \n \n \n )\n }\n\n return (\n \n \n \n \n \n {fileName}\n {uploading && (\n <>\n \n \n {(fileSize / 1000000).toFixed(1)}MB • {uploadProgress}% uploading\n \n \n )}\n \n {renderCta()}\n \n )\n}\n\nexport default CodeBuilderUploadFile\n","import { styled } from '@mui/system'\nimport { Typography, Button } from '@mui/material'\nimport Dropzone from 'react-dropzone'\n\nimport { ReactComponent as CloudUploadIcon } from '../../../icons/cloudUploadIcon.svg'\nimport { ReactComponent as FolderIcon } from '../../../icons/folderIcon_16x16.svg'\n\nimport CodeBuilderUploadFile from './CodeBuilderUploadFile'\n\nconst DropzoneWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'center',\n margin: theme.spacing(3.75, 0),\n}))\n\nconst DropzoneContainer = styled('div')(({ theme, isDragActive }) => ({\n alignItems: 'center',\n border: isDragActive\n ? `1px solid ${theme.palette.primary.main}`\n : `1px dashed ${theme.palette.border.main}`,\n width: '360px',\n padding: theme.spacing(2.5, 7.5),\n textAlign: 'center',\n cursor: 'pointer',\n borderRadius: theme.shape.borderRadius.sm,\n backgroundColor: isDragActive ? theme.palette.action.hover : 'transparent',\n transition: 'background-color 0.3s ease',\n [theme.breakpoints.down('sm')]: {\n width: 'auto',\n },\n}))\n\nconst UploadButton = styled(Button)(({ theme }) => ({\n marginTop: theme.spacing(2.5),\n color: theme.palette.base.white,\n height: '32px',\n borderRadius: theme.shape.borderRadius.xs,\n svg: {\n path: {\n stroke: theme.palette.base.white,\n },\n },\n}))\n\nconst DropzoneText = styled(Typography)(({ theme }) => ({\n color: theme.palette.text.hint,\n div: {\n fontWeight: theme.fontWeights.semiBold,\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n },\n}))\n\nconst ErrorText = styled(Typography)(({ theme }) => ({\n color: theme.palette.error.main,\n fontWeight: theme.fontWeights.semiBold,\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n}))\n\nconst CodeBuilderFileUploader = ({\n surveyOffer,\n uploading,\n acceptedFile,\n uploadProgress,\n handleFileUpload,\n handleUploadCancel,\n handleUploadDelete,\n}) => {\n const parseFileRejectionError = (errorCode) => {\n switch (errorCode) {\n case 'file-invalid-type':\n return 'Invalid file type. Please upload a PDF, DOC, or image file.'\n case 'file-too-large':\n return 'File is too large. Please upload a file less than 20MB.'\n default:\n return 'Sorry, something went wrong uploading your file'\n }\n }\n\n const renderFileRejectionErrors = (fileRejection) => {\n const { errors } = fileRejection\n return errors.map((error) => {\n return (\n \n {parseFileRejectionError(error.code)}\n \n )\n })\n }\n return (\n <>\n {!surveyOffer?.fileName && (\n \n handleFileUpload(acceptedFiles)}\n accept={{\n 'image/*': [],\n 'application/pdf': [],\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n ['.docx'],\n 'application/msword': ['.doc'],\n }} // TODO: check if we need to support more file types\n maxFiles={1}\n maxSize={20000000} // 20MB\n >\n {({\n getRootProps,\n getInputProps,\n isDragActive,\n fileRejections,\n }) => (\n \n \n
    \n {fileRejections.length > 0 &&\n renderFileRejectionErrors(fileRejections[0])}\n
    \n \n \n
    \n {isDragActive\n ? 'Drop the files here...'\n : 'Drag and drop a file to upload'}\n
    \n
    \n \n {/* We actually currently support way more file types */}\n PDF, DOC, or any image type up to 20MB\n \n {!uploading && (\n }>\n Browse Files\n \n )}\n \n )}\n \n
    \n )}\n {(surveyOffer?.fileName || uploading) && (\n \n )}\n \n )\n}\n\nexport default CodeBuilderFileUploader\n","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgRadioCheckedIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.5 10C0.5 4.7533 4.7533 0.5 10 0.5C15.2467 0.5 19.5 4.7533 19.5 10C19.5 15.2467 15.2467 19.5 10 19.5C4.7533 19.5 0.5 15.2467 0.5 10Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.5 10C0.5 4.7533 4.7533 0.5 10 0.5C15.2467 0.5 19.5 4.7533 19.5 10C19.5 15.2467 15.2467 19.5 10 19.5C4.7533 19.5 0.5 15.2467 0.5 10Z\",\n stroke: \"#D0D5DD\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 10C4 6.68629 6.68629 4 10 4C13.3137 4 16 6.68629 16 10C16 13.3137 13.3137 16 10 16C6.68629 16 4 13.3137 4 10Z\",\n fill: \"#FC7E1E\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRadioCheckedIcon);\nexport default __webpack_public_path__ + \"static/media/radioCheckedIcon.b10d0bd7.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgBurgerIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 14,\n height: 10,\n viewBox: \"0 0 14 10\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 10C0.734784 10 0.480444 9.89457 0.292908 9.70703C0.105371 9.5195 0 9.26522 0 9C0 8.73478 0.105371 8.4805 0.292908 8.29297C0.480444 8.10543 0.734784 8 1 8H13C13.2652 8 13.5196 8.10543 13.7071 8.29297C13.8946 8.4805 14 8.73478 14 9C14 9.26522 13.8946 9.5195 13.7071 9.70703C13.5196 9.89457 13.2652 10 13 10H1ZM1 6C0.734784 6 0.480444 5.89457 0.292908 5.70703C0.105371 5.5195 0 5.26522 0 5C0 4.73478 0.105371 4.4805 0.292908 4.29297C0.480444 4.10543 0.734784 4 1 4H13C13.2652 4 13.5196 4.10543 13.7071 4.29297C13.8946 4.4805 14 4.73478 14 5C14 5.26522 13.8946 5.5195 13.7071 5.70703C13.5196 5.89457 13.2652 6 13 6H1ZM1 2C0.734784 2 0.480444 1.89457 0.292908 1.70703C0.105371 1.51949 0 1.26522 0 1C0 0.734784 0.105371 0.480505 0.292908 0.292969C0.480444 0.105432 0.734784 0 1 0H13C13.2652 0 13.5196 0.105432 13.7071 0.292969C13.8946 0.480505 14 0.734784 14 1C14 1.26522 13.8946 1.51949 13.7071 1.70703C13.5196 1.89457 13.2652 2 13 2H1Z\",\n fill: \"#323A46\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBurgerIcon16X16);\nexport default __webpack_public_path__ + \"static/media/burgerIcon_16x16.75c60cb0.svg\";\nexport { ForwardRef as ReactComponent };","import { FormControlLabel, Radio } from '@mui/material'\n\nimport { ReactComponent as UncheckedIcon } from '../../icons/radioUncheckedIcon.svg'\nimport { ReactComponent as CheckedIcon } from '../../icons/radioCheckedIcon.svg'\n\nconst RadioButton = ({ value, label }) => {\n return (\n } checkedIcon={} />}\n label={label}\n />\n )\n}\n\nexport default RadioButton\n","import { useState, useEffect } from 'react'\nimport { RadioGroup } from '@mui/material'\nimport { ReactComponent as LinkIcon } from '../../../icons/linkIcon_16x16.svg'\n\nimport CodeBuilderSettingsTitle from './CodeBuilderSettingsTitle'\nimport CodeBuilderInputText from './CodeBuilderInputText'\nimport CodeBuilderInputIcon from './CodeBuilderInputIcon'\nimport CodeBuilderFileUploader from './CodeBuilderFileUploader'\nimport RadioButton from '../../common/RadioButton'\n\nimport { uploadToS3, presignUrl, cancelUpload } from '../../../utils/fileUpload'\nimport { isURL } from 'validator'\n\nconst CodeBuilderSettingsBonus = ({\n surveyOffer,\n surveyOfferLoading,\n updateCode,\n setActiveTab,\n}) => {\n const [uploading, setUploading] = useState(false)\n const [acceptedFile, setAcceptedFile] = useState(null)\n const [cancelTokenSource, setCancelTokenSource] = useState(null)\n const [uploadProgress, setUploadProgress] = useState(0)\n const [offerLink, setOfferLink] = useState(surveyOffer?.link || '')\n const [offerLinkError, setOfferLinkError] = useState(null)\n const [bonusType, setBonusType] = useState(\n surveyOffer?.selectedBonusType || ''\n )\n\n useEffect(() => {\n if (surveyOffer?.link !== offerLink) {\n setOfferLink(surveyOffer?.link)\n }\n }, [surveyOffer?.link])\n\n const handleFileUpload = async (acceptedFiles) => {\n const file = acceptedFiles[0]\n setAcceptedFile(file)\n\n if (!file) {\n return\n }\n\n try {\n const { name, type } = file\n\n const presignedRes = await presignUrl({ fileName: name, fileType: type })\n const { presignedUrl, fileKey } = presignedRes\n\n if (!presignedUrl) {\n throw 'Sorry, something went wrong uploading your file'\n }\n\n await uploadToS3({\n presignedUrl,\n file,\n setUploading,\n onUploadProgress: setUploadProgress,\n setCancelTokenSource,\n })\n await updateCode({ file_key: fileKey, file_name: name })\n } catch (error) {\n console.error('Error uploading file:', error)\n }\n }\n\n const handleUploadCancel = () => {\n if (cancelTokenSource) {\n cancelUpload(cancelTokenSource)\n }\n setUploading(false)\n setUploadProgress(0)\n }\n\n const handleUploadDelete = () => {\n setAcceptedFile(null)\n // TODO: delete file from S3\n updateCode({ file_key: null, file_name: null })\n }\n\n const handleChangeBonusType = async (e) => {\n await updateCode({ selected_bonus_type: e.target.value })\n setBonusType(e.target.value)\n }\n\n const handleOfferLinkBlur = () => {\n updateCode({ link: offerLink })\n }\n\n const handleOfferLinkChange = (value) => {\n setOfferLink(value)\n setActiveTab(1)\n }\n\n const textInputValidation = (value) => {\n // In the survey client offer link click handler\n // we add a leading // to the URL if it doesn't include http(s)://\n if (value && !isURL(value, { require_host: false })) {\n return {\n message: 'Link must be a valid URL',\n allowContinue: true,\n allowSubmit: false,\n }\n }\n\n if (value?.length > 500) {\n return {\n message: 'Must be 500 characters or less',\n allowContinue: false,\n allowSubmit: false,\n }\n }\n }\n\n return (\n <>\n \n \n \n {bonusType === 'file' && (\n \n )}\n \n {bonusType === 'link' && (\n } fillType=\"stroke\" />\n }\n />\n )}\n \n \n \n )\n}\n\nexport default CodeBuilderSettingsBonus\n","import { useState, useContext } from 'react'\nimport { isURL } from 'validator'\n\nimport CodeBuilderSettingsTitle from './CodeBuilderSettingsTitle'\nimport CodeBuilderInputText from './CodeBuilderInputText'\nimport CodeBuilderInputIcon from './CodeBuilderInputIcon'\n\nimport { ReactComponent as LinkIcon } from '../../../icons/linkIcon_16x16.svg'\n\nimport { AuthenticationContext } from '../../authentication/authenticationContext'\nimport { usePermissionHelper } from '../../../utils/permission_helper'\n\nimport UpgradeModalLauncher from '../../common/UpgradeModalLauncher'\n\nconst CodeBuilderSettingsBookingLink = ({ setActiveTab }) => {\n const [bookingLinkError, setBookingLinkError] = useState(false)\n const [bookingLinkLoading, setBookingLinkLoading] = useState(false)\n\n const { authData, setProfileAttribute, submitBookingLink } = useContext(\n AuthenticationContext\n )\n const { user } = authData\n\n const isOnPaidPlan =\n usePermissionHelper().onPaidPlan()\n\n const handleBookingLinkBlur = async () => {\n setBookingLinkLoading(true)\n await submitBookingLink()\n setBookingLinkLoading(false)\n }\n\n const handleOnChange = (value) => {\n setProfileAttribute('booking_link', value)\n setActiveTab(1)\n }\n\n const textInputValidation = (value) => {\n if (value && !isURL(value, { require_host: false })) {\n return {\n message: 'Link must be a valid URL',\n allowContinue: true,\n allowSubmit: false,\n }\n }\n\n if (value?.length > 500) {\n return {\n message: 'Must be 500 characters or less',\n allowContinue: false,\n }\n }\n }\n\n return (\n <>\n \n {!isOnPaidPlan && (\n
    \n \n
    \n )}\n } fillType=\"stroke\" />\n }\n />\n \n )\n}\n\nexport default CodeBuilderSettingsBookingLink\n","import { useState, useContext } from 'react'\nimport { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\n\nimport CodeBuilderSettingsTitle from './CodeBuilderSettingsTitle'\nimport CodeBuilderInputText from './CodeBuilderInputText'\nimport CodeBuilderInputIcon from './CodeBuilderInputIcon'\n\nimport { SocialLinkIcon } from '@talkadot/survey-component-library'\n\nimport { AuthenticationContext } from '../../authentication/authenticationContext'\nimport { useSocialMediaData } from '../../accountSettings/AccountSettings.hooks'\n\nconst StyledPrefix = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.main,\n paddingLeft: '10px',\n}))\n\nconst socialMediaTypes = ['twitter', 'instagram', 'linkedin', 'youtube']\n\nconst CodeBuilderSettingsSocialLinks = ({ setActiveTab }) => {\n const [socialLinkErrors, setSocialLinkErrors] = useState({})\n const [socialLinkLoading, setSocialLinkLoading] = useState(false)\n\n const { submitSocialMediaData } = useSocialMediaData()\n const { authData, setSocialAttribute } = useContext(AuthenticationContext)\n const { user } = authData\n\n const handleSocialLinkBlur = async () => {\n setSocialLinkLoading(true)\n await submitSocialMediaData()\n setSocialLinkLoading(false)\n }\n\n const handleSocialLinkChange = ({ socialType, value }) => {\n setSocialAttribute(socialType, value)\n setActiveTab(1)\n }\n\n const getPrefix = (socialType) => {\n switch (socialType) {\n case 'twitter':\n case 'instagram':\n return '@'\n case 'linkedin':\n if (user?.socialLinks[socialType]?.url?.includes('linkedin.com')) {\n return ''\n } else if (user?.socialLinks[socialType]?.url) {\n return 'linkedin.com/in/'\n }\n return ''\n case 'youtube':\n if (user?.socialLinks[socialType]?.url?.includes('youtube.com/')) {\n return ''\n } else if (user?.socialLinks[socialType]?.url?.includes('UC')) {\n return 'youtube.com/channel/'\n } else if (user?.socialLinks[socialType]?.url) {\n return 'youtube.com/'\n }\n return ''\n default:\n return ''\n }\n }\n\n const renderPrefix = (socialType) => {\n const prefix = getPrefix(socialType)\n\n if (!prefix) return null\n\n return (\n \n {prefix}\n \n )\n }\n\n const textInputValidation = (value) => {\n if (value?.length > 500) {\n return {\n message: 'Must be 500 characters or less',\n allowContinue: false,\n }\n }\n }\n\n const renderSocialLinkInputs = () => {\n return socialMediaTypes.map((socialType) => {\n const error = socialLinkErrors[socialType] || false\n\n const setError = (message) => {\n setSocialLinkErrors((prevErrors) => ({\n ...prevErrors,\n [socialType]: message,\n }))\n }\n\n return (\n \n handleSocialLinkChange({ socialType, value })\n }\n handleOnBlur={handleSocialLinkBlur}\n placeholder={` 0}\n hint=\"\"\n marginTop=\"1.5rem\"\n prefix={renderPrefix(socialType)}\n inputDescription={\n }\n fillType=\"fill\"\n />\n }\n />\n )\n })\n }\n return (\n <>\n \n {renderSocialLinkInputs()}\n \n )\n}\n\nexport default CodeBuilderSettingsSocialLinks\n","import { useState, useEffect } from 'react'\nimport { styled } from '@mui/system'\nimport { useMediaQuery, Typography } from '@mui/material'\nimport { Link } from 'react-router-dom'\n\nimport SpeakerSlide from '../../common/SpeakerSlide'\n\nconst ORIGINAL_SLIDE_WIDTH = 960\nconst ORIGINAL_SLIDE_HEIGHT = 540\n\nconst SpeakerslideContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'scale',\n})(({ theme, scale }) => ({\n width: `calc(${ORIGINAL_SLIDE_WIDTH * scale}px)`,\n height: `calc(${ORIGINAL_SLIDE_HEIGHT * scale}px)`,\n overflow: 'hidden',\n position: 'relative',\n boxShadow: theme.shape.boxShadow.xs,\n}))\n\nconst ScaleWrapper = styled('div', {\n shouldForwardProp: (prop) => prop !== 'scale',\n})(({ scale }) => ({\n transform: `scale(${scale})`,\n transformOrigin: 'left top',\n top: '0',\n left: '0',\n width: `calc(${ORIGINAL_SLIDE_WIDTH * scale}px)`,\n height: `calc(${ORIGINAL_SLIDE_HEIGHT * scale}px)`,\n}))\n\nconst StyledTypography = styled(Typography)(({ theme }) => ({\n marginTop: theme.spacing(4),\n a: {\n color: theme.palette.secondary.main,\n textDecoration: 'none',\n fontWeight: theme.fontWeights.semiBold,\n },\n [theme.breakpoints.down('sm')]: {\n // NOTE: For some reason, the font size is not being applied consistently on mobile\n fontSize: '0.75rem !important',\n },\n}))\n\nconst CodeBuilderSettingsDownloadSlide = ({ user, code, slideRef }) => {\n const [scale, setScale] = useState(0.625)\n\n const isLargeScreen = useMediaQuery((theme) => theme.breakpoints.up('lg'))\n const isMediumScreen = useMediaQuery((theme) => theme.breakpoints.down('lg'))\n const isSmallScreen = useMediaQuery((theme) => theme.breakpoints.down('md'))\n\n useEffect(() => {\n // if (isSmallScreen) {\n // setScale(0.2)\n if (isMediumScreen) {\n setScale(0.3)\n } else if (isLargeScreen) {\n setScale(0.625)\n }\n }, [isLargeScreen, isMediumScreen, isSmallScreen])\n\n return (\n <>\n \n \n \n \n \n \n Need changes to your profile picture?{' '}\n Update it in your profile.\n \n \n )\n}\n\nexport default CodeBuilderSettingsDownloadSlide\n","import { useState, useEffect } from 'react'\nimport { styled } from '@mui/system'\nimport {\n FormControl,\n Select,\n MenuItem,\n InputBase,\n Typography,\n} from '@mui/material'\n\nimport { ReactComponent as CaretDownIcon } from '../../../icons/caretDown_16x16.svg'\n\nimport CodeBuilderInputWrapper from './CodeBuilderInputWrapper'\n\nconst SelectWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n height: '100%',\n flex: 1,\n gap: theme.spacing(0.5),\n fontFamily: 'Figtree, sans-serif',\n fontWeight: '400',\n fontSize: '0.875rem',\n paddingLeft: '10px',\n p: {\n color: theme.palette.neutral.main,\n },\n}))\n\nconst StyledContent = styled(Typography)(({ theme }) => ({\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n [theme.breakpoints.down('sm')]: {\n display: 'none',\n },\n}))\n\nconst StyledFormControl = styled(FormControl)(({ theme }) => ({\n flex: 1,\n height: '20px',\n padding: '1px 10px 1px 0',\n justifyContent: 'center',\n}))\n\nconst StyledInput = styled(InputBase)(({ theme }) => ({\n '& .MuiInputBase-input': {\n width: '100%',\n fontFamily: 'Figtree, sans-serif',\n fontWeight: '600',\n fontSize: '0.875rem',\n border: 'none',\n position: 'relative',\n backgroundColor: 'transparent',\n color: theme.palette.neutral.main,\n textOverflow: 'ellipsis',\n padding: 0,\n '&:focus': {\n background: 'none',\n },\n '&::placeholder': {\n color: theme.palette.neutral.light,\n opacity: '50%',\n },\n },\n}))\n\nconst StyledCaretIcon = styled(CaretDownIcon)(({ theme }) => ({\n path: {\n stroke: theme.palette.neutral.dark,\n },\n}))\n\nconst CodeBuilderInputSelect = ({\n value,\n options,\n placeholder,\n handleOnChange,\n disabled,\n parsedEmojiContent,\n canEdit = true,\n}) => {\n const [isFocused, setIsFocused] = useState(false)\n\n useEffect(() => {\n setIsFocused(true)\n }, [parsedEmojiContent?.id])\n\n const handleOnFocusCapture = (e) => {\n setIsFocused(true)\n }\n\n const handleClose = () => {\n // add delay to handle focus event that triggers after closing\n setTimeout(() => {\n setIsFocused(false)\n }, 100)\n }\n\n return (\n \n \n {parsedEmojiContent.content}\n \n handleOnChange(e.target.value)}\n onFocusCapture={(e) => handleOnFocusCapture(e)}\n onClose={handleClose}\n disabled={disabled}\n placeholder={placeholder}\n IconComponent={StyledCaretIcon}\n input={}>\n {options.map((option) => (\n \n {option.keyword}\n \n ))}\n \n \n \n \n )\n}\n\nexport default CodeBuilderInputSelect\n","import { useEffect, useState } from 'react'\n\nimport CodeBuilderInputText from './CodeBuilderInputText'\nimport CodeBuilderInputSelect from './CodeBuilderInputSelect'\n\nimport { usePermissionHelper } from '../../../utils/permission_helper'\nimport { capitalize } from '../../../utils/string'\n\nimport Api from '../../../services/api'\n\nimport {\n parseEmojiKeywords,\n parseSpeakerName,\n stripHtmlTags,\n stripEmojiTags,\n} from '../../../utils/string'\n\nconst CodeBuilderSettingsQuestion = ({\n question,\n updateQuestion,\n setCurrentQuestion,\n questionLoading,\n speakerName,\n emojiKeywords,\n setActiveTab,\n}) => {\n const [error, setError] = useState(null)\n const [defaultKeywordOptions, setDefaultKeywordOptions] = useState([])\n const [keywordsLoading, setKeywordsLoading] = useState(false)\n\n const { questionType } = question\n\n const { canAccessAction } = usePermissionHelper()\n\n useEffect(() => {\n if (questionType === 'EMOJI_SCALE' && !defaultKeywordOptions.length) {\n fetchKeywordOptions()\n }\n }, [questionType])\n\n const fetchKeywordOptions = async () => {\n try {\n setKeywordsLoading(true)\n\n const res = await Api.fetchDefaultEmojiKeywords()\n\n if (!res.errors) {\n const lowerCasedKeywords = res.map((keyword) => ({\n ...keyword,\n keyword: keyword.keyword.toLowerCase(),\n }))\n\n setDefaultKeywordOptions(lowerCasedKeywords)\n setKeywordsLoading(false)\n }\n } catch (err) {\n setKeywordsLoading(false)\n }\n }\n\n const textInputValidation = (value) => {\n if (value?.length === 0) {\n return {\n message: 'Make sure to add some content to your question.',\n allowContinue: true,\n warningVariant: 'blueWarning',\n allowSubmit: false,\n }\n }\n\n if (!question.config.isTalkadotQuestion && question.anyLinkedAnswers) {\n return {\n message:\n 'There are already answers for this question, so the content can longer be changed.',\n allowContinue: false,\n warningVariant: 'blueWarning',\n allowSubmit: false,\n }\n }\n\n if (value?.length > 150) {\n return {\n message: 'Value must be 150 characters or less',\n allowContinue: false,\n allowSubmit: true,\n }\n }\n }\n\n const handleTextInputOnChange = ({ newValue, question }) => {\n setCurrentQuestion({ ...question, content: newValue })\n setActiveTab(1)\n }\n\n const handleSelectInputOnChange = ({ questionId, newValue }) => {\n updateQuestion(questionId, { replacement_value: newValue })\n setActiveTab(1)\n }\n\n const renderInput = () => {\n switch (questionType) {\n case 'EMOJI_SCALE':\n const parsedEmojiContent = stripHtmlTags(\n stripEmojiTags(parseSpeakerName(question, speakerName))\n )\n\n // If this is a custom question with emoji scale type (i.e., a non-talkadot-question)\n // We don't want to render the select options. Instead we want to let the\n // user just type whatever content they want\n if (!question.config?.isTalkadotQuestion) {\n return (\n \n handleTextInputOnChange({ newValue, question })\n }\n handleOnBlur={(newValue) =>\n updateQuestion(question.id, { content: newValue })\n }\n inputValidation={textInputValidation}\n disabled={questionLoading}\n autoFocus={true}\n identifier={question.id}\n />\n )\n }\n\n // Filter out the currently selected emoji keywords except for one for the current question\n const availableKeywordOptions = defaultKeywordOptions.filter(\n (keyword) =>\n !emojiKeywords.includes(keyword.keyword) ||\n keyword.keyword === question.replacementValue.toLowerCase()\n )\n\n return (\n \n handleSelectInputOnChange({\n questionId: question.id,\n newValue: capitalize(newValue),\n })\n }\n parsedEmojiContent={parsedEmojiContent}\n />\n )\n default:\n const parsedContent = stripHtmlTags(\n parseSpeakerName(parseEmojiKeywords(question), speakerName)\n )\n\n return (\n \n handleTextInputOnChange({ newValue, question })\n }\n handleOnBlur={(newValue) =>\n updateQuestion(question.id, { content: newValue })\n }\n inputValidation={textInputValidation}\n disabled={questionLoading}\n autoFocus={true}\n identifier={question.id}\n />\n )\n }\n }\n\n return <>{renderInput()}\n}\n\nexport default CodeBuilderSettingsQuestion\n","import { useState, useContext } from 'react'\nimport { styled } from '@mui/system'\nimport { Typography, Tooltip, IconButton } from '@mui/material'\n\nimport { AuthenticationContext } from '../../authentication/authenticationContext'\nimport { usePermissionHelper } from '../../../utils/permission_helper'\n\nimport CodeBuilderInputText from './CodeBuilderInputText'\nimport CodeBuilderToggleQuestionButton from './CodeBuilderToggleQuestionButton'\nimport CheckBoxStyled from '../../common/CheckBoxStyled'\n\nimport { ReactComponent as CloseIcon } from '../../../icons/closeIcon.svg'\n\nconst Container = styled('div')(({ theme }) => ({\n display: 'flex',\n minHeight: '42px',\n alignItems: 'center',\n gap: theme.spacing(1.5),\n // marginBottom: theme.spacing(1),\n width: '90%',\n [theme.breakpoints.down('lg')]: {\n width: '100%',\n },\n}))\n\nconst ContentContainer = styled('div')(({ theme }) => ({\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n}))\n\nconst ToggleWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n}))\n\nconst SettingsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n flex: '0 0 35%',\n marginBottom: '10px',\n [theme.breakpoints.down('lg')]: {\n flex: '0 0 10%',\n },\n}))\n\nconst Description = styled(Typography)(({ theme }) => ({\n fontWeight: theme.fontWeights.semiBold,\n color: theme.palette.neutral.veryDark,\n}))\n\nconst CodeBuilderPossibleAnswer = ({\n question,\n possibleAnswer,\n questionLoading,\n updatePossibleAnswer,\n handleDeletePossibleAnswer,\n setCurrentQuestion,\n setActiveTab,\n}) => {\n const [newContent, setNewContent] = useState(possibleAnswer.content)\n const [error, setError] = useState(null)\n\n // const { findPermission } = usePermissionHelper()\n // const customizationPermission = findPermission(CUSTOMIZATIONS)\n // const { granularControls } = customizationPermission\n const { canAccessAction } = usePermissionHelper()\n\n const { toggleUpgradeModal } = useContext(AuthenticationContext)\n\n const {\n config: {\n canEditContent,\n canToggleRequired,\n canToggleEnable,\n builderDescription,\n canDelete,\n editContentTier,\n toggleEnabledTier,\n toggleRequiredTier,\n },\n } = possibleAnswer\n\n const allowDelete =\n canDelete &&\n question.possibleAnswers?.length > 2 &&\n !possibleAnswer.anyLinkedAnswers\n\n const textInputValidation = (value) => {\n if (question?.config?.isTalkadotQuestion && value?.length === 0) {\n return {\n message: 'Make sure to add some content to this option.',\n allowContinue: true,\n warningVariant: 'blueWarning',\n allowSubmit: false,\n }\n }\n\n if (\n !question.config.isTalkadotQuestion &&\n possibleAnswer.anyLinkedAnswers\n ) {\n return {\n message:\n 'There are already answers for this option, so it can no longer be changed.',\n allowContinue: false,\n warningVariant: 'blueWarning',\n allowSubmit: false,\n }\n }\n\n // Check for duplicate content\n if (value?.length > 0) {\n const duplicateAnswer = question.possibleAnswers.find(\n (answer) => answer.id !== possibleAnswer.id && answer.content === value\n )\n\n if (duplicateAnswer) {\n return {\n message: 'There is already an answer with this value.',\n allowContinue: true,\n allowSubmit: false,\n }\n }\n }\n\n if (value?.length > 50) {\n return {\n message: 'Value must be 50 characters or less',\n allowContinue: false,\n allowSubmit: true,\n }\n }\n }\n\n const handleTogglePossibleAnswerSetting = async (updateParams) => {\n if (!canAccessAction(toggleEnabledTier)) {\n return toggleUpgradeModal(\n true,\n 'Upgrade your plan to change question settings and more!',\n { tierRequirement: toggleEnabledTier }\n )\n }\n\n return await updatePossibleAnswer(possibleAnswer.id, updateParams)\n }\n\n // Note:\n // When loading multiple choice possible answers, since creating them is a dynamic\n // process we don't have a builder description with the appropriate \"option number\"\n // to render. this is a bit a of a hack to make sure we show \"option 1, option 2, etc\"\n // on the UX\n const makeOptionDescription = () => {\n if (\n possibleAnswer.answerType === 'MULTIPLE_CHOICE' &&\n !question.config.isTalkadotQuestion &&\n possibleAnswer.displayOrder !== undefined &&\n possibleAnswer.displayOrder !== null\n ) {\n return `${builderDescription} ${possibleAnswer.displayOrder + 1}`\n }\n\n return builderDescription\n }\n\n const handleUpdatePossibleAnswerContent = (newValue) => {\n setCurrentQuestion({\n ...question,\n possibleAnswers: question.possibleAnswers.map((pa) =>\n pa.id === possibleAnswer.id ? { ...pa, content: newValue } : pa\n ),\n })\n setNewContent(newValue)\n }\n\n const renderContent = () => {\n if (canEditContent) {\n return (\n {makeOptionDescription()}\n }\n placeholder=\"Enter an answer\"\n value={newContent}\n editConfig={possibleAnswer.config.canEditContent}\n canEdit={canAccessAction(editContentTier)}\n error={error}\n setError={setError}\n handleOnChange={(newValue) => {\n setActiveTab(1)\n handleUpdatePossibleAnswerContent(newValue)\n }}\n handleOnBlur={(newValue) =>\n updatePossibleAnswer(possibleAnswer.id, { content: newValue })\n }\n inputValidation={textInputValidation}\n disabled={questionLoading}\n autoFocus={false}\n />\n )\n } else {\n return (\n \n {builderDescription || possibleAnswer.content}\n \n )\n }\n }\n\n const renderSettings = () => {\n return (\n \n {canToggleEnable && (\n \n {\n setActiveTab(1)\n handleTogglePossibleAnswerSetting({\n enabled: !possibleAnswer.enabled,\n })\n }}\n canToggleVisibility={canAccessAction(toggleEnabledTier)}\n toggleEnabledTier={toggleEnabledTier}\n enabled={possibleAnswer.enabled}\n enabledTooltip=\"Answer is enabled. Toggle to disable answer.\"\n disabledTooltip=\"Answer is disabled, it will not be shown for this question. Toggle to enable answer.\"\n />\n \n )}\n {canToggleRequired && (\n \n
    \n {\n setActiveTab(1)\n handleTogglePossibleAnswerSetting({\n input_required: !possibleAnswer.inputRequired,\n })\n }}\n />\n
    \n \n )}\n {allowDelete && (\n \n handleDeletePossibleAnswer(possibleAnswer.id)}>\n \n \n \n )}\n
    \n )\n }\n\n return (\n \n {renderContent()}\n {renderSettings()}\n \n )\n}\n\nexport default CodeBuilderPossibleAnswer\n","import { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\nimport CheckBoxStyled from '../../common/CheckBoxStyled'\n\nconst Container = styled('div')(({ theme }) => ({\n paddingTop: theme.spacing(1.5),\n paddingBottom: theme.spacing(1.5),\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(0.5),\n width: '90%',\n [theme.breakpoints.down('lg')]: {\n width: '100%',\n },\n}))\n\nconst Row = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1.25),\n}))\n\nconst StyledLabel = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.veryDark,\n}))\n\nconst StyledWarning = styled(Typography)(({ theme }) => ({\n color: theme.palette.error.semiDark,\n marginLeft: theme.spacing(4.25),\n maxWidth: '500px',\n}))\n\nconst CodeBuilderOver18PossibleAnswer = ({\n question,\n possibleAnswer,\n questionLoading,\n setActiveTab,\n handleToggleOver18,\n}) => {\n return (\n \n \n {\n setActiveTab(1)\n handleToggleOver18(\n question,\n possibleAnswer,\n !possibleAnswer.enabled\n )\n }}\n />\n \n I am speaking to an audience under 18\n \n \n \n When checked, anyone who identifies as under 18 will not have any\n personal information such as their name or email collected.\n \n \n )\n}\n\nexport default CodeBuilderOver18PossibleAnswer\n","import { styled } from '@mui/system'\nimport { Typography, Button } from '@mui/material'\n\nimport CodeBuilderQuestionHeader from './CodeBuilderQuestionHeader'\nimport CodeBuilderSettingsCode from './CodeBuilderSettingsCode'\nimport CodeBuilderSettingsBonus from './CodeBuilderSettingsBonus'\nimport CodeBuilderSettingsBookingLink from './CodeBuilderSettingsBookingLink'\nimport CodeBuilderSettingsSocialLinks from './CodeBuilderSettingsSocialLinks'\nimport CodeBuilderSettingsDownloadSlide from './CodeBuilderSettingsDownloadSlide'\nimport CodeBuilderSettingsQuestion from './CodeBuilderSettingsQuestion'\nimport CodeBuilderPossibleAnswer from './CodeBuilderPossibleAnswer'\nimport CodeBuilderOver18PossibleAnswer from './CodeBuilderOver18PossibleAnswer'\n\nimport CheckBoxStyled from '../../common/CheckBoxStyled'\n\nimport { ReactComponent as PlusIcon } from '../../../icons/plusIcon.svg'\n\nconst QuestionContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n border: `1px solid ${theme.palette.border.main}`,\n borderRadius: theme.shape.borderRadius.xxs,\n}))\n\nconst QuestionContainerInner = styled('div')(({ theme }) => ({\n display: 'flex',\n padding: '1.25rem',\n position: 'relative',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n },\n}))\n\nconst QuestionDisabledOverlay = styled('div')(({ theme }) => ({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n backgroundColor: theme.palette.base.white,\n opacity: 0.5,\n display: 'flex',\n zIndex: 2,\n}))\n\nconst AdditionalQuestionConfigOptionsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n marginTop: theme.spacing(3),\n}))\n\nconst QuestionNumber = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '42px',\n height: '42px',\n padding: '0.625rem',\n marginRight: theme.spacing(3),\n marginBottom: theme.spacing(3),\n backgroundColor: theme.palette.neutral.dark,\n borderRadius: theme.shape.borderRadius.xs,\n h5: {\n color: theme.palette.base.white,\n },\n}))\n\nconst QuestionSettingsContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n})\n\nconst AppendPossibleAnswerButton = styled(Button)(({ theme }) => ({\n height: '42px',\n maxWidth: '150px',\n backgroundColor: theme.palette.base.white,\n borderRadius: theme.shape.borderRadius.xs,\n color: theme.palette.neutral.darkest,\n marginRight: theme.spacing(3.25),\n svg: {\n path: {\n stroke: theme.palette.neutral.darkest,\n },\n },\n [theme.breakpoints.down('md')]: {\n marginRight: theme.spacing(1),\n minWidth: '32px',\n paddingLeft: '8px',\n paddingRight: '8px',\n '& .button-text': {\n display: 'none',\n },\n '& .MuiButton-startIcon': { margin: 0 },\n },\n}))\n\nconst PossibleAnswerSettingsContainer = styled('div')(({ theme }) => ({\n marginTop: '25px',\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n}))\n\nconst MAX_POSSIBLE_ANSWERS_PER_QUESTION = 10\n\nconst CodeBuilderQuestion = ({\n surveyOffer,\n question,\n questionNumber,\n updateQuestion,\n updatePossibleAnswer,\n changeQuestionType,\n setCurrentQuestion,\n user,\n code,\n setCode,\n description,\n setDescription,\n updateCode,\n surveyOfferLoading,\n questionLoading,\n speakerName,\n emojiKeywords,\n availableQuestionTypes,\n slideRef,\n setActiveTab,\n canInsertQuestion,\n handleAddQuestion,\n handleDeleteQuestion,\n handleCreatePossibleAnswer,\n handleDeletePossibleAnswer,\n handleToggleOver18,\n}) => {\n const { possibleAnswers } = question\n\n const renderQuestionSettings = () => {\n switch (question.questionType) {\n case 'code':\n return (\n \n )\n case 'bonus':\n return (\n \n )\n case 'bookingLink':\n return \n case 'socialLinks':\n return \n case 'downloadSlide':\n return (\n \n )\n default:\n return (\n \n )\n }\n }\n\n const renderAdditionalQuestionConfigOptions = () => {\n if (question && question.config.canToggleIsPublic) {\n return (\n \n {\n updateQuestion(question.id, {\n is_answer_public: !question.isAnswerPublic,\n })\n }}\n />\n \n )\n }\n }\n\n const renderPossibleAnswerSettings = () => {\n const filteredPossibleAnswers = possibleAnswers?.filter(\n (possibleAnswer) => !possibleAnswer.config.hiddenFromBuilder\n )\n\n if (filteredPossibleAnswers?.length > 1) {\n return (\n \n {filteredPossibleAnswers.map((possibleAnswer, i) =>\n possibleAnswer.answerType === 'OVER_18' ? (\n \n ) : (\n \n )\n )}\n {question.config.canAppendPossibleAnswers &&\n filteredPossibleAnswers.length <\n MAX_POSSIBLE_ANSWERS_PER_QUESTION && (\n }\n color=\"tertiary\"\n disabled={questionLoading}\n onClick={() => handleCreatePossibleAnswer(question)}>\n Add an option\n \n )}\n \n )\n }\n\n return\n }\n\n return (\n \n \n \n {!question.enabled && }\n \n {questionNumber}\n \n \n {renderQuestionSettings()}\n {renderPossibleAnswerSettings()}\n {renderAdditionalQuestionConfigOptions()}\n \n \n \n )\n}\n\nexport default CodeBuilderQuestion\n","import { styled } from '@mui/system'\nimport { Button } from '@mui/material'\n\nimport { ReactComponent as ArrowLeft } from '../../../icons/arrowLeft.svg'\n\nconst NavContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'singleButton',\n})(({ theme, singleButton }) => ({\n display: 'flex',\n justifyContent: singleButton ? 'flex-end' : 'space-between',\n padding: theme.spacing(3, 0),\n}))\n\nconst NavButton = styled(Button, {\n shouldForwardProp: (prop) => prop !== 'darkMode',\n})(({ theme, disabled, darkMode }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: theme.spacing(1),\n color: darkMode ? theme.palette.neutral.dark : theme.palette.base.white,\n svg: {\n minWidth: '16px',\n path: {\n stroke: disabled\n ? theme.palette.action.disabled\n : (darkMode ? theme.palette.neutral.dark : theme.palette.base.white),\n },\n },\n [theme.breakpoints.down('md')]: {\n '& .button-text': {\n display: 'none',\n },\n },\n}))\n\nconst SkipButton = styled(Button)(({ theme }) => ({\n fontWeight: theme.fontWeights.regular,\n}))\n\nconst RightButtonsWrapper = styled('div', {\n shouldForwardProp: (prop) =>\n prop !== 'showBackButton' && prop !== 'showBuilderSkipButton',\n})(({ theme, showBackButton, showBuilderSkipButton }) => ({\n display: 'flex',\n flex: 1,\n justifyContent:\n showBackButton || !showBuilderSkipButton ? 'flex-end' : 'space-between',\n gap: theme.spacing(2),\n}))\n\nconst CodeBuilderNavigation = ({\n nextButtonContent,\n skipButtonContent,\n handleBack,\n handleNext,\n handleSkip,\n showBackButton,\n showBuilderSkipButton,\n loading,\n}) => {\n return (\n \n {showBackButton && (\n \n \n
    Back
    \n
    \n )}\n \n {showBuilderSkipButton && (\n \n {skipButtonContent}\n \n )}\n \n {nextButtonContent}\n \n \n
    \n )\n}\n\nexport default CodeBuilderNavigation\n","var _path, _path2, _path3, _path4, _path5, _path6;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgQuickModeIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 61,\n height: 52,\n viewBox: \"0 0 61 52\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.7334 25.6893C59.2773 22.7968 58.2452 20.0604 56.6849 17.552C55.1247 15.0436 53.1084 12.9192 50.72 11.2389C48.4036 9.60668 45.8232 8.4665 43.0628 7.81839C41.8025 7.53035 40.5303 7.35032 39.2581 7.27831V5.56203H39.9062C41.7785 5.56203 43.1828 3.83376 42.1626 2.10548C41.7665 1.43337 40.9624 1.01331 40.0983 1.01331H36.4737C34.5894 1.01331 33.1732 2.77759 34.2533 4.51787C34.6494 5.16597 35.4415 5.55003 36.2817 5.55003H37.0138V7.26631C36.2337 7.30231 35.4535 7.38633 34.6854 7.50634C31.7929 7.96242 29.0565 8.99458 26.5481 10.5548C24.2677 11.9831 22.2994 13.7713 20.6912 15.8957C20.3191 16.3878 20.4151 17.0959 20.9072 17.4679C21.3993 17.84 22.1074 17.744 22.4795 17.2519C23.9197 15.3436 25.696 13.7353 27.7363 12.4511C30.8688 10.4948 34.4094 9.47466 38.0099 9.46266C38.0459 9.46266 38.094 9.46266 38.13 9.46266C38.166 9.46266 38.214 9.46266 38.25 9.46266C39.6782 9.46266 41.1184 9.64269 42.5467 9.97874C47.6595 11.1549 52.0042 14.2634 54.7766 18.7041C57.5491 23.1568 58.4372 28.4137 57.249 33.5265C56.0728 38.6393 52.9643 42.984 48.5236 45.7565C39.3422 51.4934 27.2082 48.6849 21.4713 39.5035C21.1472 38.9754 20.4511 38.8194 19.923 39.1434C19.395 39.4675 19.2389 40.1636 19.563 40.6917C21.1232 43.2001 23.1396 45.3244 25.5279 47.0047C27.8443 48.6369 30.4247 49.7771 33.1852 50.4252C34.8174 50.7973 36.4737 50.9893 38.13 50.9893C39.2821 50.9893 40.4223 50.8933 41.5745 50.7133C44.467 50.2572 47.2034 49.225 49.7118 47.6648C52.2202 46.1045 54.3446 44.0882 56.0248 41.6998C57.6571 39.3834 58.7973 36.803 59.4454 34.0426C60.0815 31.2701 60.1895 28.4497 59.7334 25.6653V25.6893Z\",\n fill: \"#FF9900\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.32545 22.4368H24.2198C24.8439 22.4368 25.348 21.9327 25.348 21.3086C25.348 20.6845 24.8439 20.1804 24.2198 20.1804H9.32545C8.70135 20.1804 8.19727 20.6845 8.19727 21.3086C8.19727 21.9327 8.70135 22.4368 9.32545 22.4368Z\",\n fill: \"#FF9900\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.0638 36.683C21.0638 36.0589 20.5598 35.5549 19.9357 35.5549H5.04127C4.41717 35.5549 3.91309 36.0589 3.91309 36.683C3.91309 37.3071 4.41717 37.8112 5.04127 37.8112H19.9357C20.5598 37.8112 21.0638 37.3071 21.0638 36.683Z\",\n fill: \"#FF9900\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.2483 27.5616H19.1427C19.7668 27.5616 20.2709 27.0575 20.2709 26.4334C20.2709 25.8093 19.7668 25.3052 19.1427 25.3052H4.2483C3.6242 25.3052 3.12012 25.8093 3.12012 26.4334C3.12012 27.0575 3.6242 27.5616 4.2483 27.5616Z\",\n fill: \"#FF9900\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.1387 31.5582C17.1387 30.9341 16.6347 30.4301 16.0106 30.4301H1.12818C0.504081 30.4301 0 30.9341 0 31.5582C0 32.1823 0.504081 32.6864 1.12818 32.6864H16.0226C16.6467 32.6864 17.1507 32.1823 17.1507 31.5582H17.1387Z\",\n fill: \"#FF9900\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.1177 12.6552C37.4936 12.6552 36.9896 13.1593 36.9896 13.7834V25.7133C35.5373 26.1814 34.4932 27.5496 34.4932 29.1579C34.4932 31.1502 36.1134 32.7704 38.1057 32.7704C38.6938 32.7704 39.2459 32.6264 39.738 32.3744L47.5633 40.1996C47.7793 40.4157 48.0673 40.5237 48.3554 40.5237C48.6434 40.5237 48.9315 40.4157 49.1475 40.1996C49.5916 39.7555 49.5916 39.0474 49.1475 38.6154L41.3223 30.7901C41.5743 30.298 41.7183 29.7459 41.7183 29.1579C41.7183 27.5496 40.6742 26.1934 39.2219 25.7133V13.7834C39.2219 13.1593 38.7178 12.6552 38.0937 12.6552H38.1177ZM39.474 28.9058C39.486 28.9778 39.498 29.0618 39.498 29.1459C39.498 29.902 38.8859 30.5141 38.1297 30.5141C38.0457 30.5141 37.9737 30.5141 37.8897 30.4901C37.2416 30.382 36.7495 29.818 36.7495 29.1338C36.7495 28.8458 36.8455 28.5698 37.0016 28.3417C37.2536 27.9937 37.6617 27.7536 38.1297 27.7536C38.5978 27.7536 39.0059 27.9817 39.2579 28.3417C39.3659 28.4977 39.45 28.6898 39.486 28.8938L39.474 28.9058Z\",\n fill: \"#FF9900\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgQuickModeIcon);\nexport default __webpack_public_path__ + \"static/media/quickModeIcon.b3a7edd8.svg\";\nexport { ForwardRef as ReactComponent };","import { styled } from '@mui/system'\nimport { useTheme, Typography, Tooltip } from '@mui/material'\n\nimport { ReactComponent as DragIcon } from '../../../icons/burgerIcon_16x16.svg'\nimport { ReactComponent as CustomSettingsIcon } from '../../../icons/customSettingsIcon_16x16.svg'\nimport { ReactComponent as LinkIcon } from '../../../icons/linkIcon_16x16.svg'\nimport { ReactComponent as BonusIcon } from '../../../icons/bonusIcon_16x16.svg'\nimport { ReactComponent as OpenEndedIcon } from '../../../icons/questionTypeIcons/freeFlow.svg'\nimport { ReactComponent as BooleanIcon } from '../../../icons/questionTypeIcons/boolean.svg'\nimport { ReactComponent as MultipleChoiceIcon } from '../../../icons/questionTypeIcons/multipleChoice.svg'\nimport { ReactComponent as EmojiIcon } from '../../../icons/questionTypeIcons/emoji.svg'\nimport { ReactComponent as NpsIcon } from '../../../icons/questionTypeIcons/nps.svg'\n\nimport CodeBuilderToggleQuestionButton from './CodeBuilderToggleQuestionButton'\nimport CodeBuilderDeleteButton from './CodeBuilderDeleteButton'\nimport DisabledBadgeIconWrapper from '../../common/DisabledBadgeIconWrapper'\n\nimport { usePermissionHelper } from '../../../utils/permission_helper'\n\nimport { useSortable } from '@dnd-kit/sortable'\n\nimport { CSS } from '@dnd-kit/utilities'\n\nconst QuestionItemContainer = styled('div', {\n shouldForwardProp: (prop) =>\n prop !== 'selected' && prop !== 'isGroupChild' && prop !== 'disabled',\n})(({ theme, selected, isGroupChild, disabled }) => ({\n display: 'flex',\n alignItems: 'center',\n minHeight: theme.spacing(5.5),\n padding: theme.spacing(0, 1.75),\n marginLeft: isGroupChild ? theme.spacing(4) : 0,\n backgroundColor: selected\n ? theme.palette.neutral.main\n : theme.palette.base.white,\n borderRadius: theme.shape.borderRadius.xxs,\n border: `1px solid ${theme.palette.border.light}`,\n position: 'relative',\n cursor: disabled ? 'not-allowed' : 'pointer',\n}))\n\nconst DragHandleContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'isDragging',\n})(({ theme, isDragging }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n paddingRight: theme.spacing(1.75),\n minWidth: '28px',\n cursor: isDragging ? 'grabbing' : 'grab',\n}))\n\nconst StyledDragIcon = styled(DragIcon)(({ theme }) => ({\n path: {\n fill: theme.palette.text.disabled,\n },\n}))\n\nconst DragHandlePlaceholder = styled('div')(({ theme }) => ({\n width: '28px',\n height: '100%',\n paddingRight: theme.spacing(1.75),\n}))\n\nconst StyledCustomizedIcon = styled(CustomSettingsIcon, {\n shouldForwardProp: (prop) => prop !== 'selected',\n})(({ theme, selected }) => ({\n path: {\n stroke: selected\n ? theme.palette.text.disabled\n : theme.palette.secondary.main,\n },\n}))\n\nconst ContentWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: theme.spacing(1),\n flex: 1,\n}))\n\nconst BonusIconWrapper = styled('div', {\n shouldForwardProp: (prop) => prop !== 'selected' && prop !== 'isMissingValue',\n})(({ theme, selected, isMissingValue }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n paddingRight: theme.spacing(1),\n 'svg:not(.disabled-badge)': {\n path: {\n stroke: isMissingValue\n ? theme.palette.error.main\n : selected\n ? theme.palette.base.white\n : theme.palette.neutral.light,\n },\n },\n}))\n\nconst CustomIconWrapper = styled('div', {\n shouldForwardProp: (prop) =>\n prop !== 'selected' && prop !== 'isMissingValue' && prop !== 'questionType',\n})(({ theme, selected, isMissingValue, questionType }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n svg: {\n path: {\n stroke:\n questionType !== 'BOOLEAN'\n ? isMissingValue\n ? theme.palette.error.main\n : selected\n ? theme.palette.base.white\n : theme.palette.secondary.main\n : '',\n fill:\n questionType === 'BOOLEAN'\n ? isMissingValue\n ? theme.palette.error.main\n : selected\n ? theme.palette.base.white\n : theme.palette.secondary.main\n : '',\n },\n rect: {\n stroke: isMissingValue\n ? theme.palette.error.main\n : selected\n ? theme.palette.base.white\n : theme.palette.secondary.main,\n },\n line: {\n stroke: isMissingValue\n ? theme.palette.error.main\n : selected\n ? theme.palette.base.white\n : theme.palette.secondary.main,\n },\n },\n}))\n\nconst StyledTypography = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'textColor',\n})(({ theme, textColor }) => ({\n color: textColor,\n fontWeight: theme.fontWeights.semiBold,\n paddingLeft: theme.spacing(1),\n}))\n\nconst NoDropOverlay = styled('div')(({ theme }) => ({\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n opacity: 0.5,\n backgroundColor: theme.palette.error.semiDark,\n color: 'white',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '1.2rem',\n fontWeight: 'bold',\n zIndex: 10,\n}))\n\nconst CodeBuilderPreviewQuestionItem = ({\n question,\n surveyOffer,\n selected,\n movable,\n canToggleEnable = false,\n disabled = false,\n setCurrentQuestionId,\n questionNumber,\n updateQuestion,\n handleDeleteQuestion,\n isGroupChild,\n tooltipText,\n canReorderQuestions,\n isDropAllowed,\n}) => {\n const theme = useTheme()\n\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n // transition,\n active,\n over,\n } = useSortable({ id: question.id })\n\n const { canAccessAction } = usePermissionHelper()\n\n const handleClick = () => {\n if (disabled || selected) {\n return\n }\n\n setCurrentQuestionId(question.id)\n }\n\n const updateQuestionEnabled = (questionId) => {\n updateQuestion(questionId, { enabled: !question.enabled })\n }\n\n const renderPreviewContent = () => {\n const content = `${questionNumber}. ${question.config?.previewName}`\n\n if (\n question.questionType === 'EMOJI_SCALE' &&\n question.config.isTalkadotQuestion\n ) {\n return `${content}: ${question.replacementValue}`\n }\n\n // For custom questions, show a truncated version of the\n // question content in the preview\n if (!question.config.isTalkadotQuestion && question.content) {\n return `${content} ${question.content?.substring(0, 10) + '...'}`\n }\n\n return content\n }\n\n const isBeingHovered = over?.id === question.id\n const showNoDropOverlay = isBeingHovered && !isDropAllowed\n const isDragging = active?.id === question.id\n\n const renderDragableIcon = () => {\n if (movable) {\n if (canReorderQuestions()) {\n return (\n \n {}\n \n )\n }\n\n return (\n \n \n {}\n \n \n )\n }\n\n if (!isGroupChild) {\n return \n }\n }\n\n const renderSecondaryBonusIcons = (selected) => {\n const { selectedBonusType, fileKey, link } = surveyOffer || {}\n\n const renderIconByType = ({\n icon,\n isMissingValue,\n selected,\n disabledIcon = false,\n tooltipContent,\n }) => (\n \n \n {disabledIcon ? (\n {icon}\n ) : (\n icon\n )}\n \n \n )\n\n switch (selectedBonusType) {\n case 'file': {\n const isMissingValue = !fileKey\n\n const tooltipContent = isMissingValue\n ? 'Missing bonus file'\n : 'Bonus file uploaded'\n return renderIconByType({\n icon: ,\n isMissingValue,\n selected,\n tooltipContent,\n })\n }\n case 'link': {\n const missingValue = !link\n const tooltipContent = missingValue\n ? 'Missing bonus link'\n : 'Bonus link uploaded'\n return renderIconByType({\n icon: ,\n missingValue,\n selected,\n tooltipContent,\n })\n }\n case 'none': {\n const tooltipContent = 'You have selected not to offer a bonus'\n return renderIconByType({\n icon: ,\n isMissingValue: false,\n selected,\n tooltipContent,\n disabledIcon: true,\n })\n }\n default:\n return null\n }\n }\n\n const renderSecondaryCustomQuestionIcons = (selected) => {\n const { questionType } = question\n\n const renderIconByType = ({\n icon,\n isMissingValue,\n selected,\n tooltipContent,\n }) => (\n \n \n {icon}\n \n \n )\n\n switch (questionType) {\n case 'FREE_FLOW': {\n return renderIconByType({\n icon: ,\n isMissingValue: !question.content,\n selected,\n tooltipContent: 'Open-ended question',\n })\n }\n case 'BOOLEAN': {\n return renderIconByType({\n icon: ,\n isMissingValue: !question.content,\n selected,\n tooltipContent: 'Yes/No question',\n })\n }\n case 'EMOJI_SCALE': {\n return renderIconByType({\n icon: ,\n isMissingValue: !question.content,\n selected,\n tooltipContent: '5 point scale question',\n })\n }\n case 'MULTIPLE_CHOICE': {\n return renderIconByType({\n icon: ,\n isMissingValue: !question.content,\n selected,\n tooltipContent: 'Multiple choice question',\n })\n }\n case 'NPS': {\n return renderIconByType({\n icon: ,\n isMissingValue: !question.content,\n selected,\n tooltipContent: 'Net Promoter Score® question',\n })\n }\n default:\n return null\n }\n }\n\n const renderSecondaryIcons = (selected) => {\n if (question.questionType === 'bonus') {\n return renderSecondaryBonusIcons(selected)\n }\n\n if (!question.config.isTalkadotQuestion) {\n return renderSecondaryCustomQuestionIcons(selected)\n }\n }\n\n const textColor = ({ question, selected }) => {\n if (question.content?.trim() === '') {\n return theme.palette.error.main\n } else if (selected) {\n return theme.palette.base.white\n } else if (\n (question.hasBeenCustomized || !question.config.isTalkadotQuestion) &&\n // exclude code, bonus, and thank you questions\n typeof question.id === 'number'\n ) {\n return theme.palette.secondary.main\n } else {\n return theme.palette.text.disabled\n }\n }\n\n return (\n \n \n {showNoDropOverlay && (\n 🚫 Cannot Drop Here\n )}\n {renderDragableIcon()}\n \n \n {renderPreviewContent()}\n \n {renderSecondaryIcons(selected)}\n \n {question.hasBeenCustomized && question.config.isTalkadotQuestion && (\n \n \n \n )}\n {canToggleEnable && (\n updateQuestionEnabled(question.id)}\n enabled={question.enabled}\n iconColor={theme.palette.text.disabled}\n canToggleVisibility={canAccessAction(\n question.config.toggleEnabledTier\n )}\n toggleEnabledTier={question.config.toggleEnabledTier}\n question={question}\n />\n )}\n {question.config?.canDelete && (\n handleDeleteQuestion(question.id)}\n iconColor={theme.palette.text.disabled}\n />\n )}\n \n \n )\n}\n\nexport default CodeBuilderPreviewQuestionItem\n","import { useEffect, useState, useRef } from 'react'\nimport { debounce } from 'lodash'\nimport { styled } from '@mui/system'\nimport { Tooltip } from '@mui/material'\nimport {\n SurveyContainer,\n SurveyHeader,\n SurveyActions,\n AnswersContainer,\n QuestionContainerParent,\n CodeInputTemplate,\n BooleanPossibleAnswerTemplate,\n SimpleTextPossibleAnswerTemplate,\n EmojiScalePossibleAnswerTemplate,\n MultipleChoicePossibleAnswerTemplate,\n FreeFlowPossibleAnswerTemplate,\n CheckboxPossibleAnswerTemplate,\n NpsPossibleAnswerTemplate,\n ThankYouParent,\n} from '@talkadot/survey-component-library'\n\nimport { ReactComponent as EyeOffIcon } from '../../../icons/eyeOffIcon_16x16.svg'\n\nimport { parseAutoFillTags, parseSpeakerName } from '../../../utils/string'\nimport { makeSurveyLink } from '../../../features/common/helpers'\nimport { titleize } from '../../../utils/string'\n\nconst BASE_PREVIEW_PANE_HEIGHT = 538\n\nconst OVER18_DEFAULTS = {\n EMAIL: {\n inputDisabled: true,\n placeholder: 'Email disabled, under 18',\n errorMessage: '',\n },\n NAME: {\n inputDisabled: true,\n placeholder: 'Name disabled, under 18',\n errorMessage: '',\n },\n CHECKBOX: {\n inputDisabled: true,\n checked: false,\n },\n OVER_18: {\n inputDisabled: false,\n checked: false,\n },\n}\n\nconst PreviewPaneContainer = styled('div')({\n height: '100%',\n overflowY: 'auto',\n position: 'relative',\n})\n\nconst IframeContainer = styled('div')({\n width: '318px',\n height: '495px',\n overflow: 'hidden',\n})\n\nconst StyledIframe = styled('iframe')({\n width: '450px',\n height: '700px',\n border: 'none',\n transformOrigin: 'top left',\n transform: 'scale(0.707)',\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.16)',\n})\n\nconst PreviewPaneOverlay = styled('div', {\n shouldForwardProp: (prop) =>\n prop !== 'questionEnabled' && prop !== 'previewOverlayHeight',\n})(({ theme, questionEnabled, previewOverlayHeight }) => ({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: previewOverlayHeight ? `${previewOverlayHeight}px` : '100%',\n backgroundColor: theme.palette.base.white,\n opacity: questionEnabled ? 0 : 0.5,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 2,\n '&:hover': {\n opacity: questionEnabled ? 0.3 : 0.5,\n },\n transition: 'opacity 0.3s ease',\n}))\n\nconst DisabledIcon = styled(EyeOffIcon)(({ theme }) => ({\n width: '64px',\n height: '64px',\n path: {\n stroke: theme.palette.error.semiDark,\n },\n}))\n\nconst ScaledSurveyContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'scale',\n})(({ scale }) => ({\n transform: `scale(${scale})`,\n transformOrigin: 'top',\n top: '0',\n left: '0',\n height: `calc(${BASE_PREVIEW_PANE_HEIGHT * scale}px)`,\n}))\n\nconst HeaderContainer = styled('div')({\n width: '100%',\n})\n\nconst ContentContainer = styled('div')({\n flexGrow: 1,\n width: '100%',\n paddingBottom: '8px',\n display: 'flex',\n alignSelf: 'center',\n justifyContent: 'space-around',\n})\n\nconst CodeBuilderPreviewPane = ({ currentQuestion, user, code, bonusUrl }) => {\n const [scale, setScale] = useState(1)\n const [previewOverlayHeight, setPreviewOverlayHeight] = useState(null)\n\n const previewPaneRef = useRef(null)\n const headerRef = useRef(null)\n const contentRef = useRef(null)\n\n const handleResize = () => {\n const height = previewPaneRef.current?.getBoundingClientRect().height\n const heightScale = height / BASE_PREVIEW_PANE_HEIGHT || 1\n\n if (heightScale < 1) {\n const scale = Math.max(0.3, heightScale)\n setScale(scale)\n } else if (scale !== 1) {\n setScale(1)\n }\n\n const headerHeight = headerRef.current?.getBoundingClientRect().height\n const contentHeight = contentRef.current?.getBoundingClientRect().height\n\n if (headerHeight && contentHeight) {\n const previewContentHeight = headerHeight + contentHeight\n const previewOverlayHeight =\n previewContentHeight > height ? previewContentHeight : ''\n\n setPreviewOverlayHeight(previewOverlayHeight)\n }\n }\n\n useEffect(() => {\n // Run handleResize on initial render and when window is resized\n const debouncedResize = debounce(handleResize, 10)\n\n window.addEventListener('resize', debouncedResize)\n\n return () => window.removeEventListener('resize', debouncedResize)\n }, [])\n\n useEffect(() => {\n // Run handleResize when currentQuestion changes\n const debouncedResize = debounce(handleResize, 100)\n\n debouncedResize()\n }, [currentQuestion])\n\n const name = user.first_name + ' ' + user.last_name\n const { avatar, socialLinks, booking_link } = user\n const membershipPlanTier = user?.membership?.plan?.planTier\n\n const isBookingFlowQuestion =\n currentQuestion?.config?.templateIdentifier?.includes('BOOKING')\n\n const isSurveyQuestion = Number.isInteger(currentQuestion?.id)\n\n const over18EnabledForCurrentQuestion =\n !!currentQuestion?.possibleAnswers?.find((a) => a.answerType === 'OVER_18')\n ?.enabled\n\n const renderAnswer = ({ possibleAnswer, index }) => {\n const key = possibleAnswer.id || index\n\n const over18Defaults = over18EnabledForCurrentQuestion\n ? OVER18_DEFAULTS[possibleAnswer.answerType]\n : {}\n\n switch (possibleAnswer.answerType) {\n case 'BOOLEAN':\n return (\n {}}\n content={possibleAnswer.content}\n />\n )\n case 'MULTIPLE_CHOICE':\n return (\n {}}\n content={possibleAnswer.content || 'Enter an option ...'}\n />\n )\n case 'FREE_FLOW':\n return (\n {}}\n rows={8}\n answerValue={null}\n />\n )\n case 'OPPORTUNITY_DETAILS':\n return (\n {}}\n rows={8}\n answerValue={null}\n />\n )\n case 'EMAIL':\n case 'NAME':\n case 'JOB_TITLE':\n case 'ORGANIZATION':\n case 'PHONE':\n return (\n {}}\n error={\n over18EnabledForCurrentQuestion\n ? over18Defaults.errorMessage\n : renderErrorMessage(possibleAnswer)\n }\n disabled={\n over18EnabledForCurrentQuestion\n ? over18Defaults.inputDisabled\n : false\n }\n handleBlur={() => {}}\n placeholder={\n over18EnabledForCurrentQuestion\n ? over18Defaults.placeholder\n : possibleAnswer.helperText\n }\n />\n )\n case 'EMOJI_SCALE':\n return (\n {}}\n answerValue={possibleAnswer?.answerValue}\n />\n )\n case 'CHECKBOX':\n case 'OVER_18':\n return (\n {}}\n checked={\n over18EnabledForCurrentQuestion ? over18Defaults.checked : true\n }\n disabled={\n over18EnabledForCurrentQuestion\n ? over18Defaults.inputDisabled\n : false\n }\n content={parseSpeakerName(possibleAnswer, user.first_name).content}\n />\n )\n case 'NPS':\n return (\n {}}\n answerValue={possibleAnswer?.answerValue}\n />\n )\n // NOTE: Do we even need this anymore?\n // case Survey.ANSWER_TYPES.OPT_OUT_LINK:\n // return (\n // \n // )\n default:\n return
    \n }\n }\n\n const renderAnswers = () => {\n const sortedPossibleAnswers = currentQuestion?.possibleAnswers?.sort(\n (a, b) => parseFloat(a.displayOrder) - parseFloat(b.displayOrder)\n )\n\n const questionType = currentQuestion.questionType\n\n // We don't show disabled possible answers if the question is enabled\n const filteredPossibleAnswers = !currentQuestion.enabled\n ? sortedPossibleAnswers\n : sortedPossibleAnswers?.filter(\n (possibleAnswer) => possibleAnswer.enabled\n )\n\n return filteredPossibleAnswers?.map((possibleAnswer, i) => {\n return renderAnswer({ possibleAnswer, questionType, index: i })\n })\n }\n\n const contentAlign = () => {\n if (\n currentQuestion?.questionType === 'BOOLEAN' ||\n (currentQuestion?.questionType === 'MULTI_INPUT' &&\n !isBookingFlowQuestion)\n ) {\n return 'center'\n }\n\n return 'left'\n }\n\n const codeContent = () => {\n return (\n Hi! 👋 Thanks for your time!\n
    \n
    \n
    We promise, this is quick.
    `}\n contentAlign=\"center\">\n {}}\n speakerName={name}\n invalidValue={false}\n />\n {}}\n actionText={\"Let's Start!\"}\n />\n \n )\n }\n\n const renderErrorMessage = (possibleAnswer) => {\n if (!possibleAnswer.inputRequired) return ''\n\n return `${titleize(\n possibleAnswer.answerType.split('_').join(' ')\n )} is required`\n }\n\n const shouldShowActions =\n currentQuestion.questionType !== 'BOOLEAN' &&\n currentQuestion.questionType !== 'MULTIPLE_CHOICE' &&\n currentQuestion.questionType !== 'EMOJI_SCALE' &&\n currentQuestion.questionType !== 'NPS'\n\n const surveyLinkSrc = makeSurveyLink({\n shortlink: user.shortlink,\n code,\n })\n\n const renderPreviewContent = () => {\n if (!currentQuestion.questionType) {\n return <>\n }\n\n switch (currentQuestion.questionType) {\n case 'code':\n return codeContent()\n case 'downloadSlide':\n return (\n \n \n \n )\n case 'bonus':\n return (\n 0 && !!booking_link}\n showBonusLink={bonusUrl}\n handleBookingLinkClick={() => {}}\n handleBonusLinkClick={() => {}}\n bonusLinkText=\"Get your bonus\"\n bookingLinkText=\"Book a Meeting\"\n socialLinks={socialLinks}\n showSocialLinks={Object.values(socialLinks).some(\n (value) => !!value\n )}\n showOfferError={false}\n />\n )\n\n default:\n return (\n 0}\n reduceMargins={false}\n contentAlign={contentAlign()}>\n \n {}}\n actionText={'Next'}\n />\n \n )\n }\n }\n\n const renderPreviewOverlay = () => {\n if (\n !currentQuestion.questionType ||\n currentQuestion.questionType === 'downloadSlide'\n ) {\n return\n }\n\n return (\n \n \n {(!currentQuestion.content || !currentQuestion.enabled) &&\n isSurveyQuestion && }\n \n \n )\n }\n\n return (\n \n {renderPreviewOverlay()}\n \n \n {currentQuestion.questionType !== 'downloadSlide' && (\n \n \n \n )}\n \n {renderPreviewContent()}\n \n \n \n \n )\n}\n\nexport default CodeBuilderPreviewPane\n","import { useState, useEffect, useRef } from 'react'\nimport { styled } from '@mui/system'\nimport { Tabs, Tab } from '@mui/material'\n\nimport CodeBuilderPreviewQuestionItem from './CodeBuilderPreviewQuestionItem'\nimport CodeBuilderPreviewPane from './CodeBuilderPreviewPane'\n\nimport { DndContext } from '@dnd-kit/core'\nimport { SortableContext, arrayMove } from '@dnd-kit/sortable'\n\nimport { usePermissionHelper } from '../../../utils/permission_helper'\nimport { restrictToParentElement } from '@dnd-kit/modifiers'\n\nconst PreviewContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n width: '336px',\n position: 'relative',\n [theme.breakpoints.down('md')]: {\n display: 'none',\n },\n}))\n\nconst StyledTabs = styled(Tabs)(({ theme }) => ({\n position: 'sticky',\n top: 0,\n backgroundColor: theme.palette.surface.subtle,\n zIndex: 1,\n ' .MuiTabs-flexContainer': {\n alignItems: 'flex-end',\n },\n}))\n\nconst StyledTab = styled(Tab)(({ theme }) => ({\n textTransform: 'none',\n minWidth: 72,\n fontWeight: '400',\n color: theme.palette.text.disabled,\n marginRight: theme.spacing(0.5),\n height: '52px',\n borderRadius: `${theme.shape.borderRadius.xs} ${theme.shape.borderRadius.xs} 0 0`,\n backgroundColor: theme.palette.base.white,\n '&:last-child': {\n marginRight: 0,\n },\n '&.Mui-selected': {\n color: theme.palette.text.inputText,\n fontWeight: '600',\n border: `1px solid ${theme.palette.border.light}`,\n borderBottom: 'none',\n },\n '&:not(.Mui-selected)': {\n border: `6px solid ${theme.palette.border.light}`,\n height: '45px',\n },\n '&.Mui-focusVisible': {\n backgroundColor: 'rgba(100, 95, 228, 0.32)',\n },\n}))\n\nconst TabContentContainer = styled('div', {\n shouldForwardProp: (prop) =>\n prop !== 'showTopShadow' &&\n prop !== 'showBottomShadow' &&\n prop !== 'activeTab',\n})(({ theme, showTopShadow, showBottomShadow, activeTab }) => ({\n display: 'flex',\n flexDirection: 'column',\n height: 'calc(100vh - 312px)',\n maxHeight: activeTab === 1 ? '603px' : '',\n overflowY: 'auto',\n gap: theme.spacing(0.5),\n padding: theme.spacing(1),\n backgroundColor: theme.palette.base.white,\n borderRadius: `0 0 ${theme.shape.borderRadius.xs} ${theme.shape.borderRadius.xs}`,\n border: `1px solid ${theme.palette.border.light}`,\n borderTop: 'none',\n '&::before, &::after': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n right: 0,\n height: '10px',\n pointerEvents: 'none',\n transition: 'background 0.3s ease, opacity 0.3s ease',\n },\n '&::before': {\n top: '52px',\n background: 'linear-gradient(rgba(0, 0, 0, 0.2), transparent)',\n opacity: showTopShadow ? 1 : 0,\n zIndex: 10,\n },\n '&::after': {\n bottom: 0,\n borderRadius: `0 0 ${theme.shape.borderRadius.xs} ${theme.shape.borderRadius.xs}`,\n background: 'linear-gradient(transparent, rgba(0, 0, 0, 0.2))',\n opacity: showBottomShadow ? 1 : 0,\n },\n // Always show scrollbar when content is scrollable\n '&::-webkit-scrollbar': {\n width: '6px',\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: theme.palette.grey[400],\n borderRadius: theme.shape.borderRadius.xs,\n },\n}))\n\nconst CodeBuilderPreviewPaneParent = ({\n surveyOffer,\n currentQuestion,\n currentQuestionNumber,\n setCurrentQuestionId,\n updateQuestion,\n questions,\n user,\n code,\n bonusUrl,\n activeTab,\n setActiveTab,\n missingBonus,\n repositionQuestion,\n handleUpdateSurveyQuestionState,\n surveyQuestions,\n handleDeleteQuestion,\n}) => {\n const [showTopShadow, setShowTopShadow] = useState(false)\n const [showBottomShadow, setShowBottomShadow] = useState(false)\n const [isDropAllowed, setIsDropAllowed] = useState(true)\n\n const contentRef = useRef(null)\n const { canReorderQuestions } = usePermissionHelper()\n\n const handleScroll = () => {\n const container = contentRef.current\n if (!container) return\n\n const isScrolledPastTop = container.scrollTop > 0\n\n const isScrolledPastBottom =\n container.scrollTop + container.clientHeight < container.scrollHeight\n\n setShowTopShadow(isScrolledPastTop)\n setShowBottomShadow(isScrolledPastBottom)\n }\n\n useEffect(() => {\n const container = contentRef.current\n if (container) {\n handleScroll()\n }\n }, [questions, currentQuestion, activeTab])\n\n const movedToStartOfSurvey = (idx) => {\n return idx === 0\n }\n\n const movedToEndOfSurvey = (idx) => {\n return idx === surveyQuestions.length - 1\n }\n\n const findNewPreviousQuestion = (idx, newOrderedQuestionIds) => {\n const nextIdx = idx - 1\n\n const id = newOrderedQuestionIds[nextIdx]\n return questions.find((q) => q.id === id)\n }\n\n const findNewNextQuestion = (idx, newOrderedQuestionIds) => {\n const nextIdx = idx + 1\n\n const id = newOrderedQuestionIds[nextIdx]\n return questions.find((q) => q.id === id)\n }\n\n const handleDragOver = (event) => {\n const { over, active } = event\n\n if (!over || !active) {\n return\n }\n\n const newIndex = surveyQuestions.findIndex((item) => item.id === over.id)\n const oldIndex = surveyQuestions.findIndex((item) => item.id === active.id)\n\n const newQuestions = arrayMove(surveyQuestions, oldIndex, newIndex)\n const newOrderedQuestionIds = newQuestions.map((q) => q.id)\n\n const newPreviousQuestion = findNewPreviousQuestion(\n newIndex,\n newOrderedQuestionIds\n )\n\n const newNextQuestion = findNewNextQuestion(newIndex, newOrderedQuestionIds)\n\n if (\n !movedToStartOfSurvey(newIndex) &&\n !newPreviousQuestion?.config?.canQuestionBeInsertedAfter\n ) {\n setIsDropAllowed(false)\n return\n }\n\n if (\n !movedToEndOfSurvey(newIndex) &&\n !newNextQuestion?.config?.canQuestionBeInsertedBefore\n ) {\n setIsDropAllowed(false)\n return\n }\n\n setIsDropAllowed(true)\n }\n\n const handleDragEnd = async (event) => {\n const { active, over } = event\n\n if (!active || !over) {\n return\n }\n\n if (!canReorderQuestions()) {\n // If they somehow get to this point, don't allow any sorting\n return\n }\n\n if (!isDropAllowed) {\n return\n }\n\n const existingSurveyQuestions = surveyQuestions\n\n if (over && active.id !== over.id) {\n const newIndex = surveyQuestions.findIndex((item) => item.id === over.id)\n const oldIndex = surveyQuestions.findIndex(\n (item) => item.id === active.id\n )\n\n const newQuestions = arrayMove(surveyQuestions, oldIndex, newIndex)\n\n handleUpdateSurveyQuestionState(newQuestions)\n return await repositionQuestion(\n active.id,\n newIndex,\n existingSurveyQuestions\n )\n }\n }\n\n const renderTabContent = () => {\n if (activeTab === 0) {\n return questions.map((question, index) => {\n const {\n config: { canToggleEnable },\n } = question\n\n let isGroupChild = false\n\n // If question.config.groupingIdentifier is greater or equal to 0,\n // find the group matching the groupingIdentifier in the questions array.\n // Then check if the question is the first question in the group.\n // If it is not the first question in the group, set isGroupChild to true\n if (\n question.config.groupingIdentifier !== null &&\n question.config.groupingIdentifier >= 0\n ) {\n const group = questions.filter(\n (q) =>\n q.config.groupingIdentifier === question.config.groupingIdentifier\n )\n\n if (group) {\n const groupQuestionIndex = group.findIndex(\n (q) => q.id === question.id\n )\n if (groupQuestionIndex > 0) {\n isGroupChild = true\n }\n }\n }\n\n return (\n \n )\n })\n } else {\n const {\n config: { canToggleEnable },\n } = currentQuestion\n\n return (\n <>\n {}}\n updateQuestion={updateQuestion}\n handleDeleteQuestion={handleDeleteQuestion}\n canReorderQuestions={canReorderQuestions}\n />\n \n \n )\n }\n }\n\n const handleChangeTab = (newValue) => {\n if (questions.length > 1) {\n setActiveTab(newValue)\n }\n }\n\n return (\n \n handleChangeTab(newValue)}\n variant=\"fullWidth\"\n TabIndicatorProps={{\n style: { display: 'none' },\n }}>\n {questions.length > 1 && }\n \n \n \n \n \n {renderTabContent()}\n \n \n \n \n )\n}\n\nexport default CodeBuilderPreviewPaneParent\n","import { useContext } from 'react'\n\nimport { AuthenticationContext } from '../../authentication/authenticationContext'\nimport { Notification } from '../../common/Notification'\nimport { styled } from '@mui/system'\n\nimport {\n usePermissionHelper,\n LITE_TIER,\n} from '../../../utils/permission_helper'\n\nconst UpgradeLink = styled('span')(({ theme }) => ({\n color: theme.palette.secondary.main,\n cursor: 'pointer',\n textDecoration: 'underline',\n '&:hover': {\n color: theme.palette.primary.main,\n },\n}))\n\nconst CodeBuilderUpgradeNotification = ({ currentQuestion }) => {\n const {\n toggleUpgradeModal,\n authData: {\n user: {\n membership: {\n plan: { planTier },\n },\n },\n },\n } = useContext(AuthenticationContext)\n const { getPlanTier } = usePermissionHelper()\n const planType = getPlanTier()\n const minTierRequirement = (() => {\n // Determine the minimum tier requirement for gated features in the current question\n // If the question has both Pro and Elite gating a Lite user should see both Pro and Elite when they click on this modal\n const {\n config: {\n canEditContent,\n editContentTier,\n canToggleEnable,\n toggleEnabledTier,\n canEditViaDropdown,\n editViaDropdownTier,\n },\n } = currentQuestion\n\n let tierRequirements = []\n\n const collectTierRequirements = (canEdit, tierRequirement) => {\n if (canEdit) {\n tierRequirements.push(tierRequirement)\n }\n }\n\n if (currentQuestion.config.isTalkadotQuestion) {\n for (const answer of currentQuestion.possibleAnswers) {\n const {\n config: {\n canEditContent: answerCanEditContent,\n editContentTier: answerEditContentTier,\n canToggleEnable: answerCanToggleEnable,\n toggleEnabledTier: answerToggleEnabledTier,\n canToggleRequired: answerCanToggleRequired,\n toggleRequiredTier: answerToggleRequiredTier,\n },\n } = answer\n\n collectTierRequirements(answerCanToggleEnable, answerToggleEnabledTier)\n collectTierRequirements(answerCanEditContent, answerEditContentTier)\n collectTierRequirements(\n answerCanToggleRequired,\n answerToggleRequiredTier\n )\n }\n }\n\n collectTierRequirements(canToggleEnable, toggleEnabledTier)\n collectTierRequirements(canEditContent, editContentTier)\n collectTierRequirements(canEditViaDropdown, editViaDropdownTier)\n\n tierRequirements = [...new Set(tierRequirements)]\n\n const gatedTierValues = tierRequirements.filter((tier) => tier > planTier)\n\n if (gatedTierValues.length === 0) {\n // question does not have any features they cannot use\n return 0\n } else {\n // return the tier of the lowest feature they cannot use\n return Math.min(...gatedTierValues)\n }\n })()\n\n const renderUpgradeLink = () => (\n \n toggleUpgradeModal(true, 'Upgrade for more customization options!', {\n tierRequirement: minTierRequirement,\n })\n }>\n upgrade your plan.\n \n )\n\n // If the entire realm of customizations is not available for the speaker, show a different\n // message than if some of them are available and some are not\n const upgradeNotificationContent = () => {\n if (planType === LITE_TIER) {\n return (\n <>To make changes or to skip this question, {renderUpgradeLink()}\n )\n } else {\n return <>To make changes to this question, {renderUpgradeLink()}\n }\n }\n\n const showUpgradeNotice = () => {\n if (planTier >= minTierRequirement) {\n return false\n }\n\n return upgradeNotificationContent()\n }\n\n return (\n showUpgradeNotice() && (\n \n {upgradeNotificationContent()}\n \n )\n )\n}\n\nexport default CodeBuilderUpgradeNotification\n","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgAdvancedModeIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 53,\n height: 53,\n viewBox: \"0 0 53 53\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_7245_37657)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.8597 45.2853C17.6297 46.3353 19.5597 47.1453 21.6097 47.6553C21.9397 47.7353 22.1797 48.0153 22.2097 48.3553L22.3997 50.4853C22.4497 51.0653 22.9397 51.5153 23.5297 51.5153H30.1097C30.6997 51.5153 31.1897 51.0653 31.2397 50.4853L31.4297 48.3553C31.4597 48.0153 31.6997 47.7353 32.0297 47.6553C34.0997 47.1353 36.0497 46.3153 37.8297 45.2453C38.1197 45.0753 38.4897 45.0953 38.7497 45.3153L40.3997 46.6853C40.8497 47.0653 41.5097 47.0353 41.9297 46.6153L46.5797 41.9653C46.9997 41.5453 47.0297 40.8853 46.6497 40.4353L45.2797 38.7853C45.0597 38.5253 45.0397 38.1553 45.2097 37.8653C46.2797 36.0853 47.0997 34.1353 47.6197 32.0653C47.6997 31.7353 47.9797 31.4953 48.3197 31.4653L50.4497 31.2753C51.0297 31.2253 51.4797 30.7353 51.4797 30.1453V23.5653C51.4797 22.9753 51.0297 22.4853 50.4497 22.4353L48.3197 22.2453C47.9797 22.2153 47.6997 21.9753 47.6197 21.6453C47.0997 19.5753 46.2797 17.6253 45.2097 15.8453C45.0397 15.5553 45.0597 15.1853 45.2797 14.9253L46.6497 13.2753C47.0297 12.8253 46.9997 12.1653 46.5797 11.7453L41.9297 7.09534C41.5097 6.67534 40.8497 6.64534 40.3997 7.02534L38.7497 8.39534C38.4897 8.61534 38.1197 8.63534 37.8297 8.46534C36.0597 7.40534 34.1297 6.59534 32.0897 6.07534C31.7597 5.99534 31.5197 5.71534 31.4897 5.37534L31.2297 2.56534C31.1797 1.98534 30.6897 1.53534 30.0997 1.53534H23.5197C22.9297 1.53534 22.4397 1.98534 22.3897 2.56534L22.1297 5.37534C22.0997 5.71534 21.8597 5.99534 21.5297 6.07534C19.4997 6.58534 17.5897 7.38534 15.8397 8.43534C15.5497 8.60534 15.1797 8.58534 14.9197 8.36534L12.7497 6.56534C12.2997 6.18534 11.6397 6.21534 11.2197 6.63534L6.56973 11.2853C6.14973 11.7053 6.11973 12.3653 6.49973 12.8153L8.29973 14.9853C8.51973 15.2453 8.53973 15.6153 8.36973 15.9053C7.32973 17.6553 6.51973 19.5653 6.00973 21.5953C5.92973 21.9253 5.64973 22.1653 5.30973 22.1953L2.49973 22.4553C1.91973 22.5053 1.46973 22.9953 1.46973 23.5853V30.1653C1.46973 30.7553 1.91973 31.2453 2.49973 31.2953L5.30973 31.5553C5.64973 31.5853 5.92973 31.8253 6.00973 32.1553C6.51973 34.1853 7.31973 36.0953 8.36973 37.8453C8.53973 38.1353 8.51973 38.5053 8.29973 38.7653L6.49973 40.9353C6.11973 41.3853 6.14973 42.0453 6.56973 42.4653L11.2197 47.1153C11.6397 47.5353 12.2997 47.5653 12.7497 47.1853L14.9197 45.3853C15.1797 45.1653 15.5497 45.1453 15.8397 45.3153L15.8597 45.2853Z\",\n stroke: \"#1197CB\",\n strokeWidth: 1.7,\n strokeMiterlimit: 10\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.4993 41.0353C34.5129 41.0353 41.0093 34.539 41.0093 26.5253C41.0093 18.5117 34.5129 12.0153 26.4993 12.0153C18.4856 12.0153 11.9893 18.5117 11.9893 26.5253C11.9893 34.539 18.4856 41.0353 26.4993 41.0353Z\",\n stroke: \"#1197CB\",\n strokeWidth: 1.7,\n strokeMiterlimit: 10\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.5908 33.0253V29.7153\",\n stroke: \"#1197CB\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.5908 27.0553V19.3453\",\n stroke: \"#1197CB\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.2704 27.0554H16.9004V29.7154H22.2704V27.0554Z\",\n stroke: \"#1197CB\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.501 22.5953V19.3453\",\n stroke: \"#1197CB\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.501 32.9653V25.2553\",\n stroke: \"#1197CB\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.8107 25.2653H29.1807V22.6053H23.8107V25.2653Z\",\n stroke: \"#1197CB\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.4102 33.0253V29.7153\",\n stroke: \"#1197CB\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.4102 27.0553V19.3453\",\n stroke: \"#1197CB\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.1005 27.0554H30.7305V29.7154H36.1005V27.0554Z\",\n stroke: \"#1197CB\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_7245_37657\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 52,\n height: 52,\n fill: \"white\",\n transform: \"translate(0.5 0.52533)\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAdvancedModeIcon);\nexport default __webpack_public_path__ + \"static/media/advancedModeIcon.e0b2f8c3.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCommunityIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 22,\n height: 22,\n viewBox: \"0 0 22 24\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.4345 22.2021L15.5906 20.5608C15.5906 20.5708 15.6391 20.5401 15.6584 20.5401H16.0152C19.3107 20.5401 21.353 19.5853 21.353 14.8505V10.7422C21.353 6.81734 19.3114 5.52285 17.3775 5.17247C17.0521 3.11369 15.8297 0.943604 12.1517 0.943604H5.98537C2.49723 0.943604 0.647543 2.91604 0.647543 6.63395V10.7422C0.647543 14.6721 2.69347 15.9637 4.62879 16.3127C4.94706 18.3543 6.15735 20.5401 9.84815 20.5401H10.2335L11.4281 22.2043C11.7445 22.7329 12.3153 23.0564 12.9313 23.0564C13.5474 23.0564 14.1182 22.7329 14.4345 22.2043L14.4345 22.2021ZM19.9073 10.7406V14.8489C19.9073 18.3713 18.8861 18.9978 16.0145 18.9978H15.6313C15.1594 19.0174 14.7211 19.2473 14.4367 19.6243L13.2806 21.2785C13.2221 21.4182 13.0853 21.5091 12.9338 21.5091C12.7823 21.5091 12.6456 21.4182 12.587 21.2785L11.4302 19.6372C11.1607 19.2416 10.7143 19.0035 10.2357 18.9999H9.85031C7.40333 18.9999 6.17948 17.901 5.9968 15.5596C5.96984 15.3244 5.95697 15.0877 5.95826 14.851V10.7427C5.95826 7.87682 7.16284 6.59303 9.85103 6.59303H16.0059C16.2183 6.59255 16.4305 6.60278 16.6418 6.62373C16.6654 6.62722 16.6892 6.62937 16.7131 6.63014C18.9053 6.84998 19.9073 8.15591 19.9073 10.7406V10.7406ZM9.84527 5.04932C6.35713 5.04932 4.50744 7.02175 4.50744 10.7397V14.7145C2.86613 14.2828 2.099 13.0018 2.099 10.7397V6.6314C2.099 3.76554 3.30358 2.48174 5.99176 2.48174H12.1609C14.2804 2.48174 15.4757 3.30383 15.8896 5.05075L9.84527 5.04932ZM10.8144 13.2081C10.7806 12.684 10.3341 12.283 9.80938 12.3055C9.28467 12.3281 8.87422 12.7659 8.88553 13.291C8.89685 13.8161 9.32578 14.2358 9.85097 14.2357C10.4 14.2163 10.8304 13.7572 10.8144 13.2081ZM16.9658 13.2081C16.932 12.684 16.4855 12.283 15.9608 12.3055C15.4361 12.3281 15.0256 12.7659 15.0369 13.291C15.0483 13.8161 15.4772 14.2358 16.0024 14.2357C16.5514 14.2163 16.9818 13.7572 16.9658 13.2081ZM13.8972 13.2078C13.8638 12.6836 13.4175 12.2823 12.8926 12.3046C12.3678 12.3269 11.9571 12.7646 11.9683 13.2898C11.9795 13.815 12.4085 14.2348 12.9338 14.2347C13.4826 14.2138 13.9116 13.7539 13.8943 13.205L13.8972 13.2078Z\",\n fill: \"#323A46\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCommunityIcon);\nexport default __webpack_public_path__ + \"static/media/communityIcon.e239b25a.svg\";\nexport { ForwardRef as ReactComponent };","import { useContext } from 'react'\n\nimport { styled } from '@mui/system'\nimport { Typography, Button } from '@mui/material'\n\nimport { ReactComponent as QuickModeIcon } from '../../../icons/codeBuilder/quickModeIcon.svg'\nimport { ReactComponent as AdvancedModeIcon } from '../../../icons/codeBuilder/advancedModeIcon.svg'\n\nimport { Notification } from '../../common/Notification'\nimport { buildModes } from './CodeBuilderParent'\n\nimport {\n usePermissionHelper,\n OFFER_CODE_LIMIT,\n} from '../../../utils/permission_helper'\n\nimport { AuthenticationContext } from '../../authentication/authenticationContext'\nimport WebinarAlert from '../../helpCenter/WebinarAlert'\n\nconst Card = styled('div')(({ theme }) => ({\n padding: theme.spacing(2.5),\n paddingBottom: theme.spacing(6),\n background: theme.palette.base.white,\n borderRadius: theme.shape.borderRadius.xxs,\n}))\n\nconst StepsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(2.5),\n alignItems: 'flex-start',\n justifyContent: 'center',\n width: '100%',\n marginTop: theme.spacing(6),\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n alignItems: 'center',\n gap: theme.spacing(0),\n },\n}))\n\nconst StepContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n maxWidth: '160px',\n [theme.breakpoints.down('sm')]: {\n width: '160px',\n },\n}))\n\nconst StepNumber = styled(Typography)(({ theme }) => ({\n color: theme.palette.primary.main,\n fontWeight: theme.fontWeights.semiBold,\n marginBottom: theme.spacing(0.5),\n}))\n\nconst StepHeader = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.semiDark,\n fontWeight: theme.fontWeights.semiBold,\n marginBottom: theme.spacing(0.25),\n}))\n\nconst StepText = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.main,\n minHeight: '30px',\n marginBottom: theme.spacing(2),\n [theme.breakpoints.down('sm')]: {\n minHeight: '0px',\n },\n}))\n\nconst StepGraphicContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n [theme.breakpoints.down('sm')]: {\n display: 'none',\n },\n}))\n\nconst StepGraphic = styled('img')({\n height: 'auto',\n maxWidth: '400px',\n})\n\nconst StyledHelpLink = styled('a')(({ theme }) => ({\n color: theme.palette.secondary.dark,\n}))\n\nconst ModeSelectionContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(3),\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n marginTop: theme.spacing(6),\n}))\n\nconst ModeSelectionHeader = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.semiDark,\n}))\n\nconst ModeSelectionButtonContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(2.5),\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n alignItems: 'center',\n },\n}))\n\nconst StyledButton = styled(Button)(({ theme }) => ({\n maxWidth: '275px',\n '&.MuiButton-outlined': {\n borderWidth: '2px',\n boxShadow: theme.shape.boxShadow.xs,\n '&:hover': {\n boxShadow: theme.shape.boxShadow.md,\n },\n },\n}))\n\nconst ButtonContent = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: theme.spacing(1),\n}))\n\nconst ButtonMainText = styled(Typography)(({ theme, color }) => ({\n color: theme.palette[color].main,\n fontWeight: theme.fontWeights.semiBold,\n}))\n\nconst ButtonSubText = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.semiDark,\n}))\n\nconst UpgradeNotice = styled(Typography)(({ theme }) => ({\n color: theme.palette.error.semiDark,\n fontWeight: theme.fontWeights.semiBold,\n span: {\n cursor: 'pointer',\n '&:hover': {\n color: theme.palette.primary.main,\n },\n },\n}))\n\nconst CodeBuilderAddCodeOnboarding = ({ setBuildMode }) => {\n const { canCreateSurveyOffer, findPermission } = usePermissionHelper()\n const { limit, consumed } = findPermission(OFFER_CODE_LIMIT)\n const { toggleUpgradeModal } = useContext(AuthenticationContext)\n\n const handleBuildModeOptionSelect = (buildMode) => {\n if (!canCreateSurveyOffer(consumed)) {\n return toggleUpgradeModal(\n true,\n 'Upgrade to add more codes!',\n OFFER_CODE_LIMIT,\n { granularControls: { custom_question_limit: consumed } }\n )\n }\n\n setBuildMode(buildMode)\n }\n\n return (\n \n {!canCreateSurveyOffer(consumed) && (\n \n \n You have reached your plan limit of {limit} codes.{' '}\n \n toggleUpgradeModal(true, 'Upgrade to add more codes!', {\n permissionType: OFFER_CODE_LIMIT,\n })\n }>\n Upgrade to create more.\n \n \n \n )}\n\n \n\n \n \n Talkadot codes are used in order to:\n \n 1. Configure the questions your audience sees\n \n 2. Set up any bonuses, offers or downloads for your audience\n \n
    \n \n \n Learn more about everything you can do with your codes here.\n \n \n
    \n \n \n 👇 choose a mode to start\n \n \n handleBuildModeOptionSelect(buildModes.QUICK)}>\n \n \n \n Quick Mode\n \n \n For your first time setup, or if you are fine with the Talkadot\n defaults\n \n \n \n handleBuildModeOptionSelect(buildModes.ADVANCED)}>\n \n \n \n Advanced Mode\n \n \n For when you need to add, change, or hide questions\n \n \n \n \n \n \n \n STEP 1\n Configure your code\n \n This is like creating a survey\n \n \n \n \n \n \n STEP 2\n Add your bonus\n \n Incentivize your audience to participate\n \n \n \n \n \n \n STEP 3\n Add slide to your talk\n \n Have your audience scan your QR code\n \n \n \n \n \n \n
    \n )\n}\n\nexport default CodeBuilderAddCodeOnboarding\n","import { styled } from '@mui/system'\n\nimport { Notification } from '../../common/Notification'\n\nimport { ReactComponent as EyeIcon } from '../../../icons/eyeIcon_16x16.svg'\nimport { ReactComponent as EyeOffIcon } from '../../../icons/eyeOffIcon_16x16.svg'\n\nconst DisabledNotification = styled('div')({\n svg: {\n margin: '0px 2px',\n verticalAlign: 'middle',\n },\n})\n\nconst StyledDisabledIcon = styled(EyeOffIcon)(({ theme }) => ({\n path: {\n stroke: theme.palette.error.main,\n },\n}))\n\nconst AlertText = styled('span')(({ theme }) => ({\n color: theme.palette.error.main,\n}))\n\nexport const FirstTimeToggleEnabledNotification = () => (\n \n \n Click on the icon to toggle to when you\n want to skip asking your audience a question.\n \n \n)\n\nconst CodeBuilderQuestionDisabledNotification = ({ currentQuestion }) => {\n const notificationContent = () => {\n if (currentQuestion?.config?.templateIdentifier === 'CONTACT_INFO') {\n return (\n \n \n Your audience will NOT see contact information collection questions.\n {' '}\n Toggle the to visible show this question.\n \n )\n }\n\n // All booking questions have grouping identifier of 0\n if (currentQuestion?.config?.groupingIdentifier === 0) {\n return (\n \n \n Your audience will NOT see any booking questions.\n {' '}\n Toggle the to visible show these questions.\n \n )\n }\n\n return (\n \n Your audience will NOT see this question. Toggle\n the to visible show this question.\n \n )\n }\n\n return (\n \n {notificationContent()}\n \n )\n}\n\nexport default CodeBuilderQuestionDisabledNotification\n","import { useEffect, useState, useContext, useRef } from 'react'\nimport { useParams, useHistory, useLocation } from 'react-router-dom'\nimport { styled } from '@mui/system'\nimport { useMediaQuery, Typography } from '@mui/material'\n\nimport CodeBuilderQuestion from './CodeBuilderQuestion'\nimport CodeBuilderNavigation from './CodeBuilderNavigation'\nimport CodeBuilderPreviewPaneParent from './CodeBuilderPreviewPaneParent'\nimport CodeBuilderUpgradeNotification from './CodeBuilderUpgradeNotification'\nimport CodeBuilderAddCodeOnboarding from './CodeBuilderAddCodeOnboarding'\nimport CodeBuilderQuestionDisabledNotification, {\n FirstTimeToggleEnabledNotification,\n} from './CodeBuilderQuestionDisabledNotification'\nimport PageHeader from '../../common/PageHeader'\nimport PageContainer from '../../common/PageContainer'\nimport LoadingSpinner from '../../common/LoadingSpinner'\nimport ConfirmDialog from '../../common/ConfirmDialog'\nimport { Notification } from '../../common/Notification'\n\nimport { ReactComponent as ArrowRight } from '../../../icons/arrowRight.svg'\nimport { ReactComponent as DownloadIcon } from '../../../icons/downloadIcon_16x16.svg'\n\nimport { AuthenticationContext } from '../../authentication/authenticationContext'\nimport Api from '../../../services/api'\nimport { downloadSlideAsPng } from '../../common/helpers'\nimport useCustomerIo from '../../../services/customerio'\n\nimport { randomCodeString } from '../../../utils/string'\nimport { humanizeError } from '../../../utils/errorFormatter'\nimport {\n usePermissionHelper,\n CUSTOMIZATIONS,\n} from '../../../utils/permission_helper'\n\nconst CodeBuilderContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(5),\n [theme.breakpoints.down('md')]: {\n gap: theme.spacing(0),\n },\n [theme.breakpoints.down('sm')]: {\n margin: theme.spacing(0, -3),\n },\n}))\n\nconst QuestionContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n height: 'min-content',\n padding: theme.spacing(5, 2.5),\n backgroundColor: theme.palette.base.white,\n}))\n\nconst PreviewPaneContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'activeTab',\n})(({ activeTab }) => ({\n position: 'sticky',\n top: '164px',\n height: 'calc(100vh - 260px)',\n maxHeight: activeTab === 1 ? '655px' : '',\n overflowY: 'hidden',\n}))\n\nconst MultiQuestionContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(4.5),\n}))\n\nconst LoadingSpinnerContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n height: '50vh',\n width: '100%',\n})\n\nconst initialQuestionState = {\n questionType: '',\n}\n\nexport const codeQuestionState = {\n id: 'code',\n questionType: 'code',\n enabled: true,\n sortable: false,\n canDisable: false,\n hidePreview: true,\n config: {\n previewName: 'General Setup',\n questionTypeDescription: 'Setup Code',\n },\n}\n\nexport const bonusQuestionState = {\n id: 'bonus',\n questionType: 'bonus',\n enabled: true,\n sortable: false,\n canDisable: false,\n config: {\n previewName: 'Bonus and Socials',\n questionTypeDescription: 'Bonus Uploader',\n },\n}\n\nexport const downloadSlideQuestionState = {\n id: 'downloadSlide',\n questionType: 'downloadSlide',\n enabled: true,\n sortable: false,\n canDisable: false,\n config: {\n previewName: 'Download Slide',\n questionTypeDescription: 'Download Slide',\n },\n}\n\nconst bookingLinkQuestionState = {\n id: 'bookingLink',\n questionType: 'bookingLink',\n enabled: true,\n hidePreview: true,\n config: {\n questionTypeDescription: 'Calendar Booking',\n },\n}\n\nconst socialLinksQuestionState = {\n id: 'socialLinks',\n questionType: 'socialLinks',\n enabled: true,\n hidePreview: true,\n config: {\n questionTypeDescription: 'Social Links',\n },\n}\n\nconst initialConfirmProps = {\n title: '',\n onConfirm: () => {},\n onCancel: () => {},\n children: '',\n}\n\nexport const buildModes = {\n QUICK: 'quick',\n ADVANCED: 'advanced',\n}\n\nconst CodeBuilderParent = () => {\n const [surveyOffer, setSurveyOffer] = useState({})\n const [code, setCode] = useState('')\n const [bonusUrl, setBonusUrl] = useState('')\n const [description, setDescription] = useState('')\n const [questions, setQuestions] = useState([])\n const [availableQuestionTypes, setAvailableQuestionTypes] = useState([])\n const [currentQuestion, setCurrentQuestion] = useState(initialQuestionState)\n const [initialQuestionContent, setInitialQuestionContent] = useState('')\n const [initialAnswersContent, setInitialAnswersContent] = useState([])\n const [currentQuestionId, setCurrentQuestionId] = useState('')\n const [surveyOfferLoading, setSurveyOfferLoading] = useState(false)\n const [questionLoading, setQuestionLoading] = useState(false)\n const [downloadSlideLoading, setDownloadSlideLoading] = useState(false)\n const [slideDownloaded, setSlideDownloaded] = useState(false)\n const [createCodeSkip, setCreateCodeSkip] = useState(false)\n const [confirmDialogOpen, setConfirmDialogOpen] = useState(false)\n const [confirmProps, setConfirmProps] = useState(initialConfirmProps)\n const [activeTab, setActiveTab] = useState(1)\n const [buildMode, setBuildMode] = useState('')\n const [uiDisabled, setUiDisabled] = useState(false)\n const [uncaughtError, setUncaughtError] = useState('')\n const { surveyOfferId } = useParams()\n const history = useHistory()\n const location = useLocation()\n const slideRef = useRef()\n\n const isLargeScreen = useMediaQuery((theme) => theme.breakpoints.up('lg'))\n const isSmallScreen = useMediaQuery((theme) => theme.breakpoints.down('md'))\n const isMobile = useMediaQuery((theme) => theme.breakpoints.down('sm'))\n\n const { authData, updateSurveyCustomQuestionCount, updatePermission } =\n useContext(AuthenticationContext)\n const { user, surveyCustomQuestionCount } = authData\n\n const { findPermission } = usePermissionHelper()\n const customizationPermission = findPermission(CUSTOMIZATIONS)\n const { sendCodeDownloadedEvent } = useCustomerIo()\n\n const offerBonusUrl = (surveyOffer) => {\n const { selectedBonusType, downloadUrl, link } = surveyOffer\n switch (selectedBonusType) {\n case 'file':\n return downloadUrl\n case 'link':\n return link\n default:\n return ''\n }\n }\n\n useEffect(() => {\n const getCode = async (surveyOfferId) => {\n try {\n setSurveyOfferLoading(true)\n const res = await Api.getCode(surveyOfferId)\n\n if (!res.errors) {\n const questions = res.questions\n\n setSurveyOffer(res)\n setQuestions([\n codeQuestionState,\n ...questions,\n bonusQuestionState,\n downloadSlideQuestionState,\n ])\n setCode(res.code)\n setBonusUrl(offerBonusUrl(res))\n setDescription(res.name)\n\n if (createCodeSkip) {\n setCurrentQuestionId('bonus')\n setCreateCodeSkip(false)\n } else {\n const idOverride = location.state?.idOverride\n\n setCurrentQuestionId(idOverride || 'code')\n }\n\n setSurveyOfferLoading(false)\n } else {\n // handle error\n throw res.errors\n }\n } catch (err) {\n setSurveyOfferLoading(false)\n return setUncaughtError(humanizeError(err))\n }\n }\n\n // if surveyOfferId is not null, fetch the survey offer\n // this means the user is editing an existing survey offer\n if (surveyOfferId && surveyOffer.id !== surveyOfferId) {\n // fetch survey offer\n getCode(surveyOfferId)\n return\n }\n\n // if surveyOfferId is null, set currentQuestionId to 'code'\n // this means the user is creating a new survey offer\n setCurrentQuestionId('code')\n setSurveyOffer({})\n setQuestions([codeQuestionState])\n setCode(randomCodeString(4))\n setDescription('')\n setActiveTab(1)\n }, [surveyOfferId])\n\n useEffect(() => {\n const fetchAvailableQuestionTypes = async () => {\n try {\n const res = await Api.getAvailableQuestionTypes()\n\n if (!res.errors) {\n setAvailableQuestionTypes(res)\n } else {\n throw res.errors\n }\n } catch (err) {\n return setUncaughtError(humanizeError(err))\n }\n }\n\n fetchAvailableQuestionTypes()\n }, [])\n\n useEffect(() => {\n const foundQuestion = questions?.find(\n (question) => question.id === currentQuestionId\n )\n\n if (foundQuestion) {\n setCurrentQuestion(foundQuestion)\n setInitialContent(foundQuestion)\n }\n }, [questions, currentQuestionId])\n\n // responsible for controlling SurveyCustomQuestionCount state\n useEffect(() => {\n const customQuestionCount = questions.filter(\n (question) => question.config.isTalkadotQuestion === false\n ).length\n\n if (customQuestionCount !== surveyCustomQuestionCount) {\n updateSurveyCustomQuestionCount(customQuestionCount)\n }\n }, [questions])\n\n useEffect(() => {\n setBonusUrl(offerBonusUrl(surveyOffer))\n }, [surveyOffer.selectedBonusType])\n\n useEffect(() => {\n let timeout\n\n if (questionLoading) {\n // Delay showing the loading state\n timeout = setTimeout(() => setUiDisabled(true), 300)\n } else {\n // Immediately hide the loading state\n setUiDisabled(false)\n clearTimeout(timeout) // Ensure no delayed setShowLoading(true) happens\n }\n\n return () => clearTimeout(timeout) // Cleanup if loading changes quickly\n }, [questionLoading])\n\n useEffect(() => {\n return () => {\n // When unmounting reset the count\n updateSurveyCustomQuestionCount(0)\n }\n }, [])\n\n useEffect(() => {\n setUncaughtError('')\n }, [currentQuestionId])\n\n const setInitialContent = (question) => {\n setInitialQuestionContent(question.content)\n const initialAnswersContent = question.possibleAnswers\n ? question.possibleAnswers.map(({ id, content }) => ({\n id,\n content,\n }))\n : []\n setInitialAnswersContent(initialAnswersContent)\n }\n\n const surveyQuestions = questions.filter((q) => Number.isInteger(q.id))\n\n const handleRefreshQuestionState = (questionResponse) => {\n const updatedQuestions = questions.map((question) => {\n const updatedQuestion = questionResponse.find((q) => q.id === question.id)\n if (updatedQuestion) {\n return updatedQuestion\n }\n return question\n })\n\n setQuestions(updatedQuestions)\n }\n\n const orderedSurveyQuestionIds = () => {\n return surveyQuestions.map((question) => question.id)\n }\n\n const handleUpdateSurveyQuestionState = (updatedSurveyQuestions) => {\n setQuestions([\n questions[0], // code state\n ...updatedSurveyQuestions,\n ...questions.slice(-2), // booking and download slide state\n ])\n }\n\n const incrementCodeCount = () => {\n const codePermission = findPermission('OFFER_CODE_LIMIT')\n updatePermission({\n ...codePermission,\n consumed: codePermission.consumed + 1,\n })\n }\n\n const createNewCode = async () => {\n try {\n setSurveyOfferLoading(true)\n const res = await Api.createCode({\n survey_offer: { code, name: description },\n })\n\n if (!res.errors) {\n incrementCodeCount()\n history.push({\n pathname: `/codes/edit/${res.id}`,\n state: { idOverride: res.firstQuestionId },\n })\n } else {\n // handle error\n throw res.errors\n }\n } catch (err) {\n setSurveyOfferLoading(false)\n setUncaughtError(humanizeError(err))\n }\n }\n\n const updateCode = async (data) => {\n if (!surveyOffer.id) return\n\n try {\n setSurveyOfferLoading(true)\n\n const params = {\n survey_offer: {\n ...data,\n },\n }\n\n const res = await Api.updateCode(surveyOffer.id, params)\n\n if (!res.errors) {\n setSurveyOffer(res)\n\n if (code !== res.code) {\n setCode(res.code)\n }\n\n const offerBonusUrl = res.downloadUrl || res.link\n\n if (bonusUrl !== offerBonusUrl) {\n setBonusUrl(offerBonusUrl)\n }\n\n setSurveyOfferLoading(false)\n } else {\n // handle error\n throw res.errors\n }\n } catch (err) {\n setSurveyOfferLoading(false)\n return setUncaughtError(humanizeError(err))\n }\n }\n\n const changeQuestionType = async (questionId, data) => {\n setQuestionLoading(true)\n\n try {\n const params = {\n question: {\n ...data,\n },\n }\n\n const res = await Api.changeQuestionType(questionId, params)\n\n if (!res.errors) {\n handleRefreshQuestionState(res.updatedQuestions)\n } else {\n throw res.errors\n }\n } catch (err) {\n setQuestionLoading(false)\n setUncaughtError(humanizeError(err))\n } finally {\n setQuestionLoading(false)\n }\n }\n\n const repositionQuestion = async (questionId, newIdx, existingQuestions) => {\n setQuestionLoading(true)\n\n const params = {\n idx: newIdx,\n ordered_question_ids: orderedSurveyQuestionIds(),\n }\n\n try {\n const res = await Api.repositionQuestion(questionId, params)\n\n if (!res.errors) {\n handleUpdateSurveyQuestionState(res.questions)\n } else {\n throw res.errors\n }\n } catch (err) {\n // Since we are optimistically updating the question order on\n // drag and drop, if there are any errors we want to reset the question order\n // state back to what it originally was\n handleUpdateSurveyQuestionState(existingQuestions)\n setUncaughtError(humanizeError(err))\n } finally {\n setQuestionLoading(false)\n }\n }\n\n const setBookingFlowStartUpdateNotification = (updatedQuestion) => {\n const yesAnswer = updatedQuestion.possibleAnswers.find(\n (a) => a.config?.builderDescription === 'Yes'\n )\n const nextQuestion = questions.find(\n (q) => q.id === yesAnswer.nextQuestionId\n )\n\n setConfirmProps({\n variant: 'info',\n hideDangerMessage: true,\n title: 'Update Booking Flow',\n buttonText: isMobile ? 'Update' : 'Update the followup question',\n buttonColor: 'primary',\n cancelButtonText: isMobile ? 'Cancel' : 'No changes needed',\n textColor: 'white',\n onConfirm: handleNext,\n onCancel: () => {},\n children: (\n <>\n \n You have changed the booking flow start question to{' '}\n \"{updatedQuestion.content}\".\n \n
    \n \n Does the followup question \"{nextQuestion.content}\"{' '}\n still apply?\n \n
    \n \n If not, please update the followup question to match the new booking\n flow start question.\n \n \n ),\n })\n setConfirmDialogOpen(true)\n }\n\n const updateQuestion = async (questionId, data) => {\n const dataContainsContent =\n data.content !== null && data.content !== undefined\n if (dataContainsContent && data.content === initialQuestionContent) {\n return\n }\n\n if (!dataContainsContent) {\n // We only set this if we are not updating the content column\n setQuestionLoading(true)\n }\n\n try {\n const params = {\n question: {\n ...data,\n },\n }\n\n const res = await Api.updateQuestion(questionId, params)\n\n if (!res.errors) {\n handleRefreshQuestionState(res.updatedQuestions)\n\n const updatedQuestion = res.updatedQuestions.find(\n (q) => q.id === questionId\n )\n\n const updatedContent = params.question.content\n\n if (\n updatedQuestion.config?.templateIdentifier === 'BOOKING_FLOW_START' &&\n updatedContent\n ) {\n setBookingFlowStartUpdateNotification(updatedQuestion)\n }\n } else {\n // handle error\n throw res.errors\n }\n } catch (err) {\n return setUncaughtError(humanizeError(err))\n } finally {\n if (!dataContainsContent) {\n setQuestionLoading(false)\n }\n }\n }\n\n const handleCreatePossibleAnswer = async (question) => {\n setQuestionLoading(true)\n\n try {\n const params = {\n question_id: question.id,\n possible_answer: {},\n }\n\n const res = await Api.createPossibleAnswer(params)\n\n if (!res.errors) {\n handleRefreshQuestionState(res.updatedQuestions)\n } else {\n // handle error\n throw res.errors\n }\n } catch (err) {\n setUncaughtError(humanizeError(err))\n } finally {\n setQuestionLoading(false)\n }\n }\n\n const handleDeletePossibleAnswer = async (possibleAnswerId) => {\n setQuestionLoading(true)\n\n try {\n const res = await Api.deletePossibleAnswer(possibleAnswerId)\n\n if (!res.errors) {\n handleRefreshQuestionState(res.updatedQuestions)\n } else {\n // handle error\n throw res.errors\n }\n } catch (err) {\n setUncaughtError(humanizeError(err))\n } finally {\n setQuestionLoading(false)\n }\n }\n\n const handleAddQuestion = async (questionTypeId) => {\n setQuestionLoading(true)\n setSurveyOfferLoading(true)\n\n try {\n const insertingAfter = findQuestionInsertingAfter(currentQuestion)\n const insertion_point =\n 1 +\n surveyQuestions.findIndex(\n (question) => question.id === insertingAfter.id\n )\n\n const params = {\n ordered_question_ids: orderedSurveyQuestionIds(),\n idx: insertion_point,\n survey_template_id: surveyOffer.surveyTemplateId,\n question_type_id: questionTypeId,\n }\n\n const res = await Api.createQuestion(params)\n\n if (!res.errors) {\n const updatedQuestions = res.questions\n\n handleUpdateSurveyQuestionState(updatedQuestions)\n setCurrentQuestionId(res.newQuestionId)\n } else {\n throw res.errors\n }\n } catch (err) {\n setUncaughtError(humanizeError(err))\n } finally {\n setSurveyOfferLoading(false)\n setQuestionLoading(false)\n }\n }\n\n const handleDeleteQuestion = (questionId) => {\n setConfirmProps({\n variant: 'danger',\n hideDangerMessage: false,\n onCancel: () => {},\n showCancel: true,\n cancelButtonText: 'No',\n title: 'Delete Question?',\n buttonText: 'Yes',\n buttonColor: 'error',\n textColor: 'auto',\n onConfirm: () => {\n confirmDeleteQuestion(questionId)\n },\n children: (\n \n Are you sure you want to delete this question?\n \n ),\n })\n\n setConfirmDialogOpen(true)\n }\n\n const forceEnableOver18Check = async (question) => {\n setQuestionLoading(true)\n setSurveyOfferLoading(true)\n\n try {\n const res = await Api.forceEnableOver18Check({\n survey_template_id: surveyOffer.surveyTemplateId,\n })\n\n if (!res.errors) {\n handleUpdateSurveyQuestionState(res.questions)\n } else {\n throw res.errors\n }\n } catch (err) {\n setUncaughtError(humanizeError(err))\n } finally {\n setSurveyOfferLoading(false)\n setQuestionLoading(false)\n }\n }\n\n const handleToggleOver18 = async (question, possibleAnswer, enabled) => {\n if (orderedSurveyQuestionIds()[0] === question.id || !enabled) {\n return await updatePossibleAnswer(possibleAnswer.id, { enabled: enabled })\n } else {\n setConfirmProps({\n variant: 'info',\n hideDangerMessage: true,\n title: 'Set as first Question?',\n buttonText: 'Yes',\n buttonColor: 'primary',\n cancelButtonText: 'No',\n textColor: 'white',\n onConfirm: () => {\n forceEnableOver18Check(question.id)\n },\n onCancel: () => {},\n children: (\n <>\n \n To enable this option, this question needs to be the first\n question in the survey. Do you want to set it as the first\n question and enable it?\n \n \n ),\n })\n setConfirmDialogOpen(true)\n }\n }\n\n const confirmDeleteQuestion = async (questionId) => {\n setQuestionLoading(true)\n setSurveyOfferLoading(true)\n\n try {\n const params = {\n ordered_question_ids: orderedSurveyQuestionIds(),\n }\n\n const res = await Api.deleteQuestion(questionId, params)\n\n if (!res.errors) {\n const updatedQuestions = res.questions\n\n setCurrentQuestionId(\n // If there's no question ID returned, that means this question was at the end\n // of the survey. Return the last quesiton in the updated questions array instead\n res.newQuestionId || updatedQuestions[updatedQuestions.length - 1]?.id\n )\n handleUpdateSurveyQuestionState(updatedQuestions)\n } else {\n throw res.errors\n }\n } catch (err) {\n setUncaughtError(humanizeError(err))\n } finally {\n setSurveyOfferLoading(false)\n setQuestionLoading(false)\n }\n }\n\n const updatePossibleAnswer = async (possibleAnswerId, data) => {\n const dataContainsContent =\n data?.content !== null && data.content !== undefined\n\n if (dataContainsContent) {\n const initialAnswerContent = initialAnswersContent.find(\n (answer) => answer.id === possibleAnswerId\n )?.content\n\n if (initialAnswerContent === data.content) return\n }\n\n if (!dataContainsContent) {\n // We only set this if we are not updating the content column\n setQuestionLoading(true)\n }\n\n try {\n const params = {\n possible_answer: {\n ...data,\n },\n }\n\n const res = await Api.updatePossibleAnswer(possibleAnswerId, params)\n\n if (!res.errors) {\n handleRefreshQuestionState(res.updatedQuestions)\n setQuestionLoading(false)\n\n // if the possible answer belongs to the first booking question\n // open the notification to update the subsequent booking questions\n const updatedQuestion = res.updatedQuestions.find((q) =>\n q.possibleAnswers?.find((a) => a.id === possibleAnswerId)\n )\n\n if (\n updatedQuestion.config?.templateIdentifier === 'BOOKING_FLOW_START'\n ) {\n setBookingFlowStartUpdateNotification()\n }\n } else {\n throw res.errors\n }\n } catch (err) {\n setUncaughtError(humanizeError(err))\n } finally {\n if (!dataContainsContent) {\n setQuestionLoading(false)\n }\n }\n }\n\n const downloadSlideCallback = () => {\n // disable the buttons while the file browser is opening\n setTimeout(() => {\n // set slideDownloaded to true to show the \"Finish\" button\n setSlideDownloaded(true)\n setDownloadSlideLoading(false)\n }, 500)\n }\n\n const missingBonus = () => {\n return ['link', 'file'].includes(surveyOffer.selectedBonusType) && !bonusUrl\n }\n\n const handleBack = () => {\n const currentIndex = questions.findIndex(\n (question) => question.id === currentQuestionId\n )\n // if the question we're about to go back to is not enabled,\n // and it has a groupingIdentifier, skip to the first question\n // with that groupingIdentifier\n const previousQuestion = questions[currentIndex - 1]\n if (\n previousQuestion &&\n !previousQuestion.enabled &&\n Number.isInteger(previousQuestion.config.groupingIdentifier)\n ) {\n const previousQuestions = questions.slice(0, currentIndex)\n const firstQuestionInGroup = previousQuestions.find(\n (question) =>\n question.config.groupingIdentifier ===\n previousQuestion.config.groupingIdentifier\n )\n\n if (firstQuestionInGroup) {\n setCurrentQuestionId(firstQuestionInGroup.id)\n return\n }\n }\n\n if (currentIndex > 0) {\n setCurrentQuestionId(questions[currentIndex - 1].id)\n }\n }\n\n const handleNext = () => {\n // if surveyOffer.id does not exist, create a new survey offer\n if (!surveyOffer.id && currentQuestionId === 'code') {\n if (buildMode === buildModes.QUICK) {\n setCreateCodeSkip(true)\n }\n createNewCode()\n }\n\n const currentIndex = questions.findIndex(\n (question) => question.id === currentQuestionId\n )\n\n // if the current question is the bonus question, and the selected bonus type is 'link' or 'file'\n // and the bonusUrl is empty, show an error message\n if (currentQuestionId === 'bonus' && missingBonus()) {\n setConfirmProps({\n variant: 'info',\n hideDangerMessage: true,\n onCancel: () => {},\n showCancel: false,\n title: 'You are missing a bonus',\n buttonText: 'Add bonus',\n buttonColor: 'primary',\n textColor: 'white',\n onConfirm: () => {\n setTimeout(() => {\n window.scrollTo({ top: 0, behavior: 'smooth' })\n }, 200)\n },\n children: (\n \n You have indicated you want to give away a bonus but have not\n entered a valid link or uploaded a file. Please add a bonus before\n proceeding or select the \"I do not want to give away anything\"\n option.\n \n ),\n })\n setConfirmDialogOpen(true)\n\n return\n }\n\n // if currentQuestion is not enabled, and it has a groupingIdentifier\n // skip to the first question where groupingIdentifier does not equal the current question's groupingIdentifier\n if (\n !currentQuestion.enabled &&\n Number.isInteger(currentQuestion.config.groupingIdentifier)\n ) {\n const nextQuestions = questions.slice(currentIndex + 1)\n const nextQuestionNotInGroup = nextQuestions.find(\n (question) =>\n question.config.groupingIdentifier !==\n currentQuestion.config.groupingIdentifier\n )\n\n if (nextQuestionNotInGroup) {\n setCurrentQuestionId(nextQuestionNotInGroup.id)\n return\n }\n }\n\n if (currentIndex >= 0 && currentIndex < questions.length - 1) {\n setCurrentQuestionId(questions[currentIndex + 1].id)\n }\n\n if (currentQuestionId === 'downloadSlide') {\n sendCodeDownloadedEvent({ code })\n\n setDownloadSlideLoading(true)\n downloadSlideAsPng(\n slideRef,\n `Talkadot-Slide-${user.shortlink}-${code}`,\n downloadSlideCallback\n )\n }\n }\n\n const handleSkip = async () => {\n if (currentQuestionId === 'code' && !surveyOffer.id && buildMode) {\n // go back to the add code onboarding layout\n setBuildMode('')\n return\n }\n\n // When creating a new code, skip the code question and go straight to the bonus question\n if (currentQuestionId === 'code' && !surveyOffer.id) {\n setCreateCodeSkip(true)\n await createNewCode()\n }\n\n // When on the download slide question, triggers on \"Finish\" button click\n if (currentQuestionId === 'downloadSlide') {\n history.push('/codes')\n }\n }\n\n const questionNumber = () => {\n return (\n questions.findIndex((question) => question.id === currentQuestion.id) + 1\n )\n }\n\n // Parse the currently selected emoji keywords\n const emojiKeywords = () => {\n const emojiQuestions = questions.filter(\n (question) =>\n question.questionType === 'EMOJI_SCALE' &&\n question.config.isTalkadotQuestion\n )\n\n return emojiQuestions.map((question) =>\n question.replacementValue.toLowerCase()\n )\n }\n\n const findQuestionInsertingAfter = (question) => {\n // If this is the first question in a group we treat it like the last question in a group for insertion purposes\n if (\n question.config?.groupingIdentifier !== null &&\n question.config?.groupingIdentifier !== undefined\n ) {\n const grouping = surveyQuestions.filter(\n (q) =>\n q.config.groupingIdentifier === question.config.groupingIdentifier\n )\n\n if (question.id === grouping[0].id) {\n return grouping[grouping.length - 1]\n }\n }\n\n return question\n }\n\n const canInsertQuestion = () => {\n if (!surveyOffer.id) return false\n\n const insertingAfter = findQuestionInsertingAfter(currentQuestion)\n\n const surveyQuestionIndex = surveyQuestions.findIndex(\n (q) => q.id === insertingAfter.id\n )\n\n const insertingAsLastQuestion =\n surveyQuestionIndex === surveyQuestions.length - 1\n\n const insertingBefore = surveyQuestions[surveyQuestionIndex + 1]\n\n return (\n insertingAfter?.config?.canQuestionBeInsertedAfter &&\n (insertingAsLastQuestion ||\n insertingBefore?.config?.canQuestionBeInsertedBefore)\n )\n }\n\n const renderQuestions = () => {\n if (currentQuestionId === 'bonus') {\n return (\n \n \n \n \n \n )\n }\n\n return (\n \n )\n }\n\n const nextButtonContent = () => {\n if (currentQuestionId === 'downloadSlide') {\n return (\n <>\n \n Download\n \n )\n }\n\n return (\n <>\n Next\n \n \n )\n }\n\n const skipButtonContent = () => {\n if (currentQuestionId === 'downloadSlide') {\n return 'Finish'\n }\n\n if (currentQuestionId === 'code' && !surveyOffer.id && buildMode) {\n return 'Back'\n }\n\n if (currentQuestionId === 'code') {\n if (isSmallScreen) {\n return 'Use defaults'\n }\n\n if (isLargeScreen) {\n return 'I want to use all Talkadot defaults. Go straight to add a bonus'\n }\n\n return 'Use defaults. Add a bonus'\n }\n }\n\n const showBuilderSkipButton = () => {\n if (\n (!surveyOffer?.id && currentQuestion.questionType === 'code') ||\n (currentQuestionId === 'downloadSlide' && slideDownloaded)\n ) {\n return true\n }\n\n return false\n }\n\n const currentQuestionIsFirstOccuranceOfCanToggleEnabled = () => {\n const firstWithToggleEnabled = questions.find(\n (q) => q.config.canToggleEnable\n )\n\n return firstWithToggleEnabled.id === currentQuestion.id\n }\n\n const showFirstTimeToggleEnabledNotification =\n currentQuestion.enabled &&\n currentQuestion.config.canToggleEnable &&\n currentQuestionIsFirstOccuranceOfCanToggleEnabled()\n\n const renderBuilderContent = () => {\n if (surveyOfferLoading && !currentQuestion?.questionType) {\n return (\n \n \n \n )\n }\n\n if (currentQuestion?.questionType) {\n return (\n <>\n \n {uncaughtError && (\n \n {uncaughtError}\n \n )}\n {showFirstTimeToggleEnabledNotification && (\n \n )}\n {!currentQuestion?.enabled && (\n \n )}\n {currentQuestion?.config?.alert && (\n \n {currentQuestion.config.alert}\n \n )}\n \n {renderQuestions()}\n \n \n \n \n \n \n )\n }\n }\n\n const renderPageContent = () => {\n // if the user is creating a new code show the Add Code Onboarding layout\n if (!surveyOfferId && !buildMode) {\n return \n }\n\n return (\n <>\n {renderBuilderContent()}\n {\n setConfirmDialogOpen(false)\n }}\n variant={confirmProps.variant}\n hideDangerMessage={confirmProps.hideDangerMessage}\n onCancel={confirmProps.onCancel}\n showCancel={confirmProps.showCancel}\n cancelButtonText={confirmProps.cancelButtonText}\n title={confirmProps.title}\n buttonText={confirmProps.buttonText}\n buttonColor={confirmProps.buttonColor}\n textColor={confirmProps.textColor}\n onConfirm={confirmProps.onConfirm}>\n {confirmProps.children}\n \n \n )\n }\n\n return (\n \n \n {renderPageContent()}\n \n )\n}\n\nexport default CodeBuilderParent\n","import { useEffect, useState } from 'react'\nimport Api from '../../services/api'\nimport {\n Button,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n Box,\n} from '@mui/material'\nimport { styled } from '@mui/system'\nimport { Typography } from '@material-ui/core'\nimport Papa from 'papaparse'\nimport CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline'\nimport SmsFailedIcon from '@mui/icons-material/SmsFailed'\n\nconst StyledTableContainer = styled(TableContainer)(({ theme }) => ({\n marginTop: theme.spacing(4),\n width: '100%',\n}))\n\nconst StyledTableCell = styled(TableCell)(({ theme }) => ({\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.common.white,\n}))\nconst PayoutDownloadContainer = styled('div')({\n display: 'flex',\n marginBottom: '20px',\n justifyContent: 'space-between',\n})\n\nconst StyledBox = styled(Box)(({ theme }) => ({\n marginTop: theme.spacing(4),\n marginBottom: theme.spacing(4),\n}))\n\nconst CommissionPayoutParent = () => {\n const [parsedCsvDetails, setParsedCsvDetails] = useState([])\n const [file, setFile] = useState(null)\n const [isLoading, setIsLoading] = useState(false)\n const [successfulUpdates, setSuccessfulUpdates] = useState([])\n const [failedUpdates, setFailedUpdates] = useState([])\n const [showStatusCell, setShowStatusCell] = useState(false)\n\n const handleFileChange = (event) => {\n setFile(event.target.files[0])\n Papa.parse(event.target.files[0], {\n header: true,\n skipEmptyLines: true,\n complete: function (results) {\n setParsedCsvDetails(results.data)\n },\n })\n }\n\n const handleUpload = async () => {\n try {\n setIsLoading(true)\n\n const res = await Api.uploadTransactions({\n referral_commission: {\n commissions: parsedCsvDetails,\n },\n })\n\n if (!res.errors) {\n alert('Upload Successful!')\n setSuccessfulUpdates(res.successfulUpdates)\n setFailedUpdates(res.failedUpdates)\n setShowStatusCell(true)\n setIsLoading(false)\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoading(false)\n alert(err)\n }\n }\n\n const renderUpdatedStatusCell = (commission) => {\n // Check to make sure the new commission record got updated correctly\n const successfullyUpdatedCommission = successfulUpdates.find(\n (c) => c.id == commission.id\n )\n\n if (successfullyUpdatedCommission) {\n return (\n \n \n \n )\n } else {\n return (\n \n \n \n )\n }\n }\n\n return (\n \n \n \n \n {file && (\n \n {!isLoading ? 'Upload' : 'Updating Commissions ...'}\n \n )}\n \n \n Summary of transactions to upload:\n \n \n \n Commission ID\n Payee Name\n Payee Email\n Speaker Name\n Speaker Email\n Transaction Id\n Update Status\n \n \n \n {parsedCsvDetails.map((commission, index) => (\n \n {commission.id}\n {commission.payee_name}\n {commission.payee_email}\n {commission.speaker_name}\n {commission.speaker_email}\n {commission.transaction_id}\n {showStatusCell && renderUpdatedStatusCell(commission)}\n \n ))}\n \n
    \n
    \n
    \n )\n}\n\nexport default CommissionPayoutParent\n","import { useEffect, useState } from 'react'\nimport Api from '../../services/api'\nimport { Button, Box, Typography, Alert } from '@mui/material'\nimport { styled } from '@mui/system'\nimport Papa from 'papaparse'\n\nconst PayoutDownloadContainer = styled('div')({\n display: 'flex',\n marginBottom: '20px',\n justifyContent: 'space-between',\n})\n\nconst StyledBox = styled(Box)(({ theme }) => ({\n marginTop: theme.spacing(4),\n marginBottom: theme.spacing(4),\n}))\n\nconst ReferralUploadParent = () => {\n const [parsedCsvDetails, setParsedCsvDetails] = useState([])\n const [file, setFile] = useState(null)\n const [isLoading, setIsLoading] = useState(false)\n\n const handleFileChange = (event) => {\n setFile(event.target.files[0])\n Papa.parse(event.target.files[0], {\n header: true,\n skipEmptyLines: true,\n complete: function (results) {\n setParsedCsvDetails(results.data)\n },\n })\n }\n\n const handleUpload = async () => {\n try {\n setIsLoading(true)\n const res = await Api.uploadReferrals({\n referral_backfill_data: parsedCsvDetails,\n })\n\n if (!res.error) {\n setIsLoading(false)\n alert('Referral Data Has Been Uploaded!')\n } else {\n throw res.errors\n }\n } catch (err) {\n setIsLoading(false)\n alert(err)\n }\n }\n\n return (\n
    \n Upload Referrals To Backfill\n
    \n \n Note: This is for uploading data from a specific referral spreadsheet\n into the app to backfill data. If you don't know what this referrs to,\n do not use this.{' '}\n \n \n \n \n {file && (\n \n {!isLoading ? 'Upload' : 'Uploading Data ...'}\n \n )}\n \n \n
    \n )\n}\n\nexport default ReferralUploadParent\n","import { useState } from 'react'\nimport { styled } from '@mui/system'\nimport {\n Typography,\n IconButton,\n Menu,\n MenuItem,\n ListItemIcon,\n ListItemText,\n} from '@mui/material'\n\nimport { ReactComponent as EllipisIcon } from '../../icons/ellipsisIcon.svg'\nimport { ReactComponent as EditIcon } from '../../icons/editIcon_16x16.svg'\nimport { ReactComponent as DeleteIcon } from '../../icons/trash2Icon_16x16.svg'\n\nimport { formatDateWithTimeZone } from '../common/helpers'\n\nconst Container = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n}))\n\nconst Note = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n padding: theme.spacing(2),\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: theme.shape.borderRadius.sm,\n position: 'relative',\n}))\n\nconst Footer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n}))\n\nconst SignatureContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(0.5),\n}))\n\nconst AdminSignature = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n}))\n\nconst DropdownButton = styled(IconButton)(({ theme }) => ({\n position: 'absolute',\n right: theme.spacing(0.5),\n top: theme.spacing(0.5),\n}))\n\nconst AdminUserNotes = ({\n notes,\n setActiveNote,\n handleEditNote,\n handleDeleteNote,\n}) => {\n const [anchorEl, setAnchorEl] = useState(null)\n\n const handleOpenDropdown = (e, note) => {\n setActiveNote(note)\n setAnchorEl(e.currentTarget)\n }\n\n const handleCloseDropdown = () => {\n setAnchorEl(null)\n }\n\n const editNote = () => {\n handleCloseDropdown()\n handleEditNote()\n }\n\n const deleteNote = async () => {\n handleCloseDropdown()\n handleDeleteNote()\n }\n\n const menuItems = [\n {\n text: 'Edit',\n onClick: () => editNote(),\n icon: ,\n },\n {\n text: 'Delete',\n onClick: () => deleteNote(),\n icon: ,\n },\n ]\n\n const renderMenuItem = ({ text, onClick, icon, loading, index }) => {\n return (\n \n {icon && {icon}}\n \n \n )\n }\n\n const renderActionsDropdown = () => {\n return (\n \n {menuItems.map((item, index) => {\n return renderMenuItem({ ...item, index })\n })}\n \n )\n }\n\n return (\n \n {notes.map((note) => (\n \n handleOpenDropdown(e, note)}>\n \n \n \n
    \n \n \n \n Created by: {note.createdBy}\n \n \n {formatDateWithTimeZone(note.createdAt)}\n \n \n {note.updatedAt > note.createdAt && (\n \n \n Last Updated by: {note.lastEditedBy}\n \n \n {formatDateWithTimeZone(note.updatedAt)}\n \n \n )}\n \n
    \n
    \n ))}\n {renderActionsDropdown()}\n
    \n )\n}\n\nexport default AdminUserNotes\n","import { useEffect, useContext, useState } from 'react'\nimport { useParams, useHistory, Link } from 'react-router-dom'\nimport moment from 'moment'\nimport { styled } from '@mui/system'\nimport {\n Typography,\n Tooltip,\n Dialog,\n DialogTitle,\n DialogActions,\n DialogContent,\n Button,\n Select,\n MenuItem,\n Table,\n TableHead,\n TableCell,\n TableRow,\n TableBody,\n TableContainer,\n TextField,\n Autocomplete,\n Switch,\n Breadcrumbs,\n Skeleton,\n} from '@mui/material'\nimport ShareIcon from '@mui/icons-material/Share'\nimport ReactQuill from 'react-quill'\n\nimport { AdminContext } from './adminContext'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport Api from '../../services/api'\n\nimport { removeEmptysAndNulls, formatDate, handleCopy } from '../common/helpers'\nimport { FullOrganizationsList } from '../onboarding/helpers/referralsHelper'\nimport {\n OFFER_CODE_LIMIT,\n LEADS_LIMIT,\n TEAMS,\n} from '../../utils/permission_helper'\n\nimport DeleteUserParent from './DeleteUserParent'\nimport AdminUserNotes from './AdminUserNotes'\nimport { ImpersonateUserAction } from './AdminParent'\n\nimport { Notification } from '../common/Notification'\nimport PageHeader from '../common/PageHeader'\nimport PageContainer from '../common/PageContainer'\n\nconst MembershipSelect = styled(Select)({\n minWidth: '250px',\n})\n\nconst INITIAL_USER_STATE = {\n membership: {},\n membership_plan: {},\n referralPayoutSettings: {\n id: null,\n hasPayoutInfo: null,\n optOut: null,\n },\n availableMembershipStatusus: [],\n availableMembershipPlans: {\n legacyPlans: [],\n basePlans: [],\n referralPlans: [],\n },\n notes: [],\n}\n\nconst Card = styled('div')(({ theme }) => ({\n marginTop: '30px',\n marginBottom: '30px',\n background: 'white',\n padding: '15px',\n}))\n\nconst CardHeader = styled('div')({\n marginBottom: '15px',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n})\n\nconst ActionsContainer = styled('div')({\n display: 'flex',\n justifyContent: 'flex-end',\n marginTop: '25px',\n gap: 10,\n})\n\nconst StyledTable = styled(Table)({\n border: 'none',\n tr: {\n border: 'none',\n },\n td: {\n border: 'none',\n },\n})\n\nconst AffiliateActionContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n gap: 10,\n})\n\nconst CopyAffiliateLinkAction = ({ user }) => {\n const [copied, setCopied] = useState(false)\n const handleClick = () => {\n handleCopy(user.referrerLink)\n setCopied(true)\n\n setTimeout(() => {\n setCopied(false)\n }, 5000)\n }\n\n return (\n \n \n {user.referrerLink}\n \n \n \n )\n}\n\nconst ShowUserParent = () => {\n const [pageLoading, setPageLoading] = useState(false)\n const [editReferralOpen, setEditReferralOpen] = useState(false)\n const [user, setUser] = useState(INITIAL_USER_STATE)\n const [newPlan, setNewPlan] = useState({})\n const [trialDaysRemaining, setTrialDaysRemaining] = useState('')\n const [membershipStatus, setMembershipStatus] = useState('')\n const [referrerUsers, setReferrerUsers] = useState([])\n const [selectedReferrerUser, setSelectedReferrerUser] = useState({})\n const [selectedReferrerOrganization, setSelectedReferrerOrganization] =\n useState({})\n const [userNotesLoading, setUserNotesLoading] = useState(false)\n const [noteEditorOpen, setNoteEditorOpen] = useState(false)\n const [editorValue, setEditorValue] = useState('')\n const [activeNote, setActiveNote] = useState(null)\n\n let urlParams = useParams()\n let history = useHistory()\n\n const { deleteSpeaker } = useContext(AdminContext)\n\n const { setNotification, authData } = useContext(AuthenticationContext)\n\n const resetMembershipChanges = () => {\n setMembershipStatus('')\n setTrialDaysRemaining('')\n setNewPlan({})\n }\n\n const humanReadableLimit = (limit) => {\n if (!limit) {\n return 0\n }\n\n if (limit > 0) {\n return limit\n }\n\n return 'Unlimited'\n }\n\n const humanReadablePrice = (price) => {\n return price ? `$${price}/year` : 'FREE'\n }\n\n const makeSingleRowPlanDetails = (plan) => {\n return (\n \n {plan.name} - {plan.internalName} - {humanReadablePrice(plan.price)} -{' '}\n {humanReadableLimit(plan.leadsLimit)} leads\n \n )\n }\n\n useEffect(() => {\n const fetchUser = async () => {\n try {\n setPageLoading(true)\n const res = await Api.adminFetchSpeaker(urlParams.userId)\n if (!res.error) {\n setUser(res)\n setPageLoading(false)\n } else {\n throw res.error\n }\n } catch (err) {\n setPageLoading(false)\n alert(err)\n }\n }\n\n const fetchReferralUserOptions = async () => {\n try {\n const res = await Api.getReferralUserOptions()\n\n if (!res.errors) {\n const users = res\n .filter((refUser) => refUser?.id !== user?.id)\n .map((refUser) => ({\n id: refUser.id,\n label: `${refUser.first_name} ${refUser.last_name} - ${refUser.email}`,\n fullName: `${refUser.first_name} ${refUser.last_name}`,\n }))\n\n setReferrerUsers(users)\n } else {\n throw res.errors\n }\n } catch (err) {\n alert(\n \"Something went wrong loading the referral options. Try refreshing the page - if that doesn't work, ask the devs!\"\n )\n }\n }\n\n fetchReferralUserOptions()\n fetchUser()\n\n return () => {\n setUser(INITIAL_USER_STATE)\n setReferrerUsers([])\n }\n }, [])\n\n const updateUser = async (user, updateParams) => {\n const params = {\n user: {\n ...updateParams,\n },\n }\n\n try {\n const res = await Api.updateAdminUser(params, user.id)\n\n if (!res.errors && !res.error) {\n setUser(res)\n setEditReferralOpen(false)\n setSelectedReferrerOrganization({})\n setSelectedReferrerUser({})\n setNotification('User successfully updated', 'success')\n }\n } catch (err) {\n setEditReferralOpen(false)\n setNotification(err)\n }\n }\n const updateReferralPayoutSetting = async (payoutSettingId, updateParams) => {\n try {\n const res = await Api.editAdminReferralPayoutSetting(payoutSettingId, {\n referral_payout_setting: {\n ...updateParams,\n },\n })\n\n if (!res.error && !res.errors) {\n setUser(res)\n } else {\n throw res.error\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const handleUpdateMembership = async () => {\n if (!newPlan.id && !trialDaysRemaining && !membershipStatus) {\n return\n }\n\n // Note:\n // This is a hack in the select menu to not try and submit if we accidentlly select a header row\n if (newPlan.isParentItem) {\n return\n }\n\n const updateParams = removeEmptysAndNulls({\n membership_plan_id: newPlan.id ? newPlan.id : null,\n trial_days_remaining: trialDaysRemaining ? trialDaysRemaining : null,\n status: membershipStatus ? membershipStatus : null,\n })\n\n try {\n const res = await Api.updateMembership(\n { membership: updateParams },\n user.membership.id\n )\n\n if (!res.errors && !res.error) {\n setUser(res)\n resetMembershipChanges()\n setNotification('Membership successfully updated!', 'success')\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const handleAddNote = () => {\n setNoteEditorOpen(true)\n }\n\n const handleEditNote = () => {\n setEditorValue(activeNote.content)\n setNoteEditorOpen(true)\n }\n\n const handleCloseEditor = () => {\n setNoteEditorOpen(false)\n setEditorValue('')\n setActiveNote(null)\n }\n\n const createNewNote = async (note) => {\n try {\n const res = await Api.addAdminUserNote({\n user_note: {\n content: editorValue,\n user_id: user.id,\n created_by: authData.user.id,\n last_edited_by: authData.user.id,\n },\n })\n\n if (!res.errors && !res.error) {\n setUser({\n ...user,\n notes: [...user.notes, res],\n })\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const updateNote = async () => {\n try {\n const res = await Api.updateAdminUserNote(activeNote.id, {\n user_note: {\n content: editorValue,\n user_id: user.id,\n last_edited_by: authData.user.id,\n },\n })\n\n if (!res.errors && !res.error) {\n setUser({\n ...user,\n notes: user.notes.map((note) =>\n note.id === activeNote.id ? res : note\n ),\n })\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err)\n }\n }\n\n const handleSaveNote = async () => {\n setUserNotesLoading(true)\n\n if (!editorValue) {\n setUserNotesLoading(false)\n return\n }\n\n if (!activeNote?.id) {\n createNewNote()\n } else {\n updateNote()\n }\n\n setActiveNote(null)\n setNoteEditorOpen(false)\n setEditorValue('')\n setUserNotesLoading(false)\n }\n\n const handleDeleteNote = async () => {\n if (!activeNote) return\n\n try {\n setUserNotesLoading(true)\n\n const data = {\n user_note: {\n user_id: user.id,\n },\n }\n\n const res = await Api.deleteAdminUserNote(activeNote.id, data)\n\n if (!res.errors) {\n setUser((prev) => ({\n ...prev,\n notes: prev.notes.filter((note) => note.id !== activeNote.id),\n }))\n setActiveNote(null)\n setUserNotesLoading(false)\n } else {\n throw res.errors\n }\n } catch (error) {\n setActiveNote(null)\n setUserNotesLoading(false)\n console.error(error)\n }\n }\n\n const noReferrerSelected =\n !selectedReferrerUser?.id && !selectedReferrerOrganization?.label\n const moreThanOneReferrerSelected =\n selectedReferrerUser?.id && selectedReferrerOrganization?.label\n const referrerUserSelected = selectedReferrerUser?.id\n const referrerOrganizationSelected = selectedReferrerOrganization?.label\n\n const organizationReferralList = FullOrganizationsList.map((orgItem, i) => ({\n label: orgItem,\n id: i,\n }))\n\n const findByPermissionType = (permissions, permissionType) => {\n return permissions?.find((permission) => permission.type === permissionType)\n }\n\n const leadsLimit = findByPermissionType(\n user.membership_plan?.permissions,\n LEADS_LIMIT\n )?.limit\n\n const codesLimit = findByPermissionType(\n user.membership_plan?.permissions,\n OFFER_CODE_LIMIT\n )?.limit\n\n const teamsLimit = findByPermissionType(\n user.membership_plan?.permissions,\n TEAMS\n )?.limit\n\n // Only allow editing of trial days if the plan is currently on trial\n // or if we are giving someone a trial of pro and have set to trialing_no_cc\n const canEditTrialDays =\n user.membership?.isTrialing || membershipStatus === 'trialing_no_cc'\n\n const updateReferral = () => {\n if (noReferrerSelected) {\n return alert('You did not select a valid referrer to update')\n }\n\n if (moreThanOneReferrerSelected) {\n return alert('You must select only 1 referrer for this user')\n }\n\n if (referrerUserSelected) {\n return updateUser(user, {\n referrer_user_id: selectedReferrerUser.id,\n referrer: selectedReferrerUser.fullName,\n })\n }\n\n if (referrerOrganizationSelected) {\n return updateUser(user, {\n // Set this to nil in the DB\n referrer_user_id: '',\n referrer: selectedReferrerOrganization.label,\n })\n }\n }\n\n const handleDeleteSpeaker = async () => {\n await deleteSpeaker(user.id)\n history.push('/admin')\n }\n\n const renderLoadingSkeleton = () =>\n Array.from({ length: 6 }).map((_, index) => (\n \n {Array.from({ length: 2 }).map((_, cellIndex) => (\n \n \n \n ))}\n \n \n ))\n\n return (\n \n \n Admin Dashboard\n \n {user.first_name} {user.last_name}\n \n \n
    \n \n \n \n \n Speaker Details\n \n \n \n \n \n \n \n \n \n \n Attribute\n Value\n \n Actions\n \n \n \n \n {pageLoading ? (\n renderLoadingSkeleton()\n ) : (\n <>\n \n Email\n {user.email}\n \n \n Initial Sign Up Date\n {formatDate(user.created_at)}\n \n \n Referral Link\n \n \n \n \n \n Referrer\n \n
    \n {user.referrerUser\n ? `${user.referrerUser?.first_name} ${user.referrerUser?.last_name}`\n : user.referrer}\n
    \n
    {user.referrerUser?.email}
    \n
    \n \n setEditReferralOpen(true)}>\n Edit\n \n \n
    \n\n \n Have Referral Payout Info?\n \n \n updateReferralPayoutSetting(\n user.referralPayoutSettings.id,\n {\n has_payout_info: e.target.checked,\n payout_type: 'ach',\n }\n )\n }\n checked={user.referralPayoutSettings?.hasPayoutInfo}\n />\n \n \n \n Part of Community?\n {user.isCircleMember ? 'Yes' : 'No'}\n \n \n )}\n
    \n
    \n
    \n
    \n \n \n \n Membership Details\n \n \n \n \n \n \n \n Attribute\n \n \n Current\n \n \n Proposed Change\n \n \n \n \n {pageLoading ? (\n renderLoadingSkeleton()\n ) : (\n <>\n \n Membership Plan\n \n {user.membership_plan?.name}\n \n \n setNewPlan(e.target.value)}>\n \n ---- Referral Plans ---\n \n {user.availableMembershipPlans?.referralPlans?.map(\n (plan, i) => {\n return (\n plan.id !== user.membership_plan.id && (\n \n {makeSingleRowPlanDetails(plan)}\n \n )\n )\n }\n )}\n
    \n
    \n \n ---- Non-Referral Plans ---\n \n {user.availableMembershipPlans?.basePlans?.map(\n (plan, i) => {\n return (\n plan.id !== user.membership_plan.id && (\n \n {makeSingleRowPlanDetails(plan)}\n \n )\n )\n }\n )}\n \n
    \n
    \n \n Plan Generation\n \n {user.membership_plan?.internal_name}\n \n \n \n Plan Price\n \n {user.membership_plan.price\n ? `$${user.membership_plan.price}/year`\n : 'Free'}{' '}\n \n \n \n Plan Permissions\n \n
    Leads: {humanReadableLimit(leadsLimit)}
    \n
    Codes: {humanReadableLimit(codesLimit)}
    \n
    Teams: {humanReadableLimit(teamsLimit)}
    \n
    \n
    \n \n Stripe Customer Id\n {user.stripeCustomerId && (\n \n \n {user.stripeCustomerId}\n \n \n )}\n \n \n \n \n \n
    Trialing?
    \n
    \n {user.membership.isTrialing ? (\n \n Yes. This trial will end on{' '}\n {formatDate(user.membership.trialExpiryDate)}\n \n ) : (\n No\n )}\n {canEditTrialDays && (\n \n \n How many days trial do you want to add? (note -\n measures from today)\n \n {\n setTrialDaysRemaining(e.target.value)\n }}\n />\n {trialDaysRemaining && (\n \n Trial will now end on{' '}\n \n {moment()\n .add(trialDaysRemaining, 'days')\n .format('MMM D, YYYY')}\n \n \n )}\n \n )}\n
    \n \n Membership Status\n {user.membership.status}\n \n setMembershipStatus(e.target.value)}\n defaultValue=\"\">\n {user.availableMembershipStatusus?.map((status, i) => {\n return (\n \n {status}\n \n )\n })}\n \n \n \n \n )}\n
    \n
    \n
    \n \n \n \n \n
    \n \n \n \n User Notes\n \n \n Add Note\n \n \n \n \n setEditReferralOpen(false)}>\n Select a new referrer:\n \n \n Use this option to select a speaker as their referrer:\n \n option.label}\n renderInput={(params) => (\n \n )}\n onChange={(e, value) => {\n setSelectedReferrerUser(value)\n }}\n />\n
    \n
    \n \n Use this option to select an organization as the referrer:\n \n option.label}\n isOptionEqualToValue={(option, value) => option.id === value.id}\n renderInput={(params) => (\n \n )}\n onChange={(e, value) => {\n setSelectedReferrerOrganization(value)\n }}\n />\n
    \n
    \n\n {/* Note: Can add more information about the referral commissions here if needed\n but thought that the complexity of that would be more harmful than useful for now */}\n \n Updating this speakers referrer information will automatically make\n changes to any pending commissions, and/or create a commission if\n applicable.\n \n
    \n
    \n \n \n \n \n setNoteEditorOpen(false)}\n fullWidth>\n Edit User Note\n \n \n \n \n \n \n \n \n
    \n )\n}\n\nexport default ShowUserParent\n","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgExternalLinkIcon16X16(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 8.66667V12.6667C12 13.0203 11.8595 13.3594 11.6095 13.6095C11.3594 13.8595 11.0203 14 10.6667 14H3.33333C2.97971 14 2.64057 13.8595 2.39052 13.6095C2.14048 13.3594 2 13.0203 2 12.6667V5.33333C2 4.97971 2.14048 4.64057 2.39052 4.39052C2.64057 4.14048 2.97971 4 3.33333 4H7.33333\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 2H14V6\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.66699 9.33333L14.0003 2\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgExternalLinkIcon16X16);\nexport default __webpack_public_path__ + \"static/media/externalLinkIcon_16x16.8f82e130.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgImageIcon36X36(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 36,\n height: 36,\n viewBox: \"0 0 36 36\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.5 4.5H7.5C5.84315 4.5 4.5 5.84315 4.5 7.5V28.5C4.5 30.1569 5.84315 31.5 7.5 31.5H28.5C30.1569 31.5 31.5 30.1569 31.5 28.5V7.5C31.5 5.84315 30.1569 4.5 28.5 4.5Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.5 22.5L24 15L7.5 31.5\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.75 15C13.9926 15 15 13.9926 15 12.75C15 11.5074 13.9926 10.5 12.75 10.5C11.5074 10.5 10.5 11.5074 10.5 12.75C10.5 13.9926 11.5074 15 12.75 15Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgImageIcon36X36);\nexport default __webpack_public_path__ + \"static/media/imageIcon_36x36.7cfe20d0.svg\";\nexport { ForwardRef as ReactComponent };","import { useState } from 'react'\n\nimport PageContainer from '../common/PageContainer'\nimport PageHeader from '../common/PageHeader'\nimport ModalCloseIcon from '../common/ModalCloseIcon'\n\nimport { Typography, Dialog, useMediaQuery, useTheme } from '@mui/material'\n\nimport MailOutlineIcon from '@mui/icons-material/MailOutline'\nimport HelpOutlineIcon from '@mui/icons-material/HelpOutline'\nimport NewReleasesOutlinedIcon from '@mui/icons-material/NewReleasesOutlined'\nimport OndemandVideoIcon from '@mui/icons-material/OndemandVideo';\nimport { ReactComponent as HeadphoneIcon } from '../../icons/headphoneIcon.svg'\nimport { ReactComponent as CommunityIcon } from '../../icons/navIcons/communityIcon.svg'\nimport { ReactComponent as ExternalLinkIcon } from '../../icons/externalLinkIcon_16x16.svg'\n\nimport UpcomingWebinars, { WEBINAR_TYPES } from './UpcomingWebinars'\n\nimport { styled } from '@mui/system'\n\nconst HelpDetailsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexWrap: 'wrap',\n gap: theme.spacing(2.5),\n}))\n\nconst ContentWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n padding: theme.spacing(3.5, 6),\n backgroundColor: theme.palette.base.white,\n minWidth: '280px',\n maxWidth: '550px',\n}))\n\nconst Header = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n marginBottom: theme.spacing(3),\n}))\n\nconst StyledIconWrapper = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(3),\n svg: {\n height: '35px',\n width: '35px',\n },\n}))\n\nconst ExternalLink = styled('a')(({ theme }) => ({\n color: theme.palette.secondary.main,\n cursor: 'pointer',\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline',\n },\n '&:visited': {\n color: theme.palette.secondary.main,\n },\n}))\n\nconst HELP_EMAIL = 'hello@talkadot.com'\nconst COMMUNITY_LINK = 'https://talk.talkadot.com'\nconst HELP_ARTICLES_LINK = 'https://talk.talkadot.com/c/resources'\nconst ANNOUNCEMENTS_LINK = 'https://talk.talkadot.com/c/announcements/'\nconst TEE_UP_TALKADOT_LINK = 'https://talk.talkadot.com/c/templates/the-three-best-ways-to-tee-up-talkadot'\n\nconst HelpCenterParent = () => {\n const [webinarModalOpen, setWebinarModalOpen] = useState(false)\n const [webinarType, setWebinarType] = useState('')\n const isMobile = useMediaQuery(useTheme().breakpoints.down('sm'))\n\n const CONTENT_BLOCKS = [\n {\n id: 0,\n title: 'Contact Us',\n icon: ,\n content: (\n <>\n Have questions? Email us directly at{' '}\n \n {HELP_EMAIL}\n {' '}\n and we'll get back to you as soon as we can. Support hours are\n typically M-F, 9am - 5pm PST.\n \n ),\n },\n {\n id: 1,\n title: 'Live Training Sessions',\n icon: ,\n content: (\n <>\n Want confidence you've set up your account correctly, and to make sure\n you're using best practices?{' '}\n {\n setWebinarType(WEBINAR_TYPES.DEMO)\n setWebinarModalOpen(true)\n }}>\n Join one of our upcoming live demo's\n \n .\n \n ),\n },\n {\n id: 2,\n title: 'Live Q&A Sessions',\n icon: ,\n content: (\n <>\n Have specific questions you want to ask us on a call?{' '}\n {\n setWebinarType(WEBINAR_TYPES.AMA)\n setWebinarModalOpen(true)\n }}>\n Join one of our upcoming live Ask Me Anything sessions\n \n .\n \n ),\n },\n {\n id: 3,\n title: 'Get Help From Fellow Speakers',\n icon: ,\n content: (\n <>\n Leverage the Talkadot Community to get best practice answers from\n fellow speakers{' '}\n \n here\n \n .\n \n ),\n },\n {\n id: 4,\n title: 'Learn How To Tee Up Talkadot',\n icon: ,\n content: (\n <>\n Unsure on how to add Talkadot into your presentation flow?{' '}\n \n Learn all of the ways to do it and best practices here\n \n .\n \n ),\n },\n {\n id: 5,\n title: 'Self-Serve Help Docs',\n icon: ,\n content: (\n <>\n Looking for quick reference answers to any questions you have?{' '}\n \n Check out our help docs here\n \n .\n \n ),\n },\n {\n id: 6,\n title: \"What's New?\",\n icon: ,\n content: (\n <>\n Learn of all the new features we are constantly adding to Talkadot!{' '}\n \n Click here for the latest info.\n \n \n ),\n },\n ]\n\n return (\n \n \n \n {CONTENT_BLOCKS.map((contentBlock) => {\n return (\n \n {contentBlock.icon}\n
    \n {contentBlock.title}\n
    \n {contentBlock.content}\n
    \n )\n })}\n
    \n setWebinarModalOpen(false)}\n open={webinarModalOpen}>\n setWebinarModalOpen(false)} />\n \n \n
    \n )\n}\n\nexport default HelpCenterParent\n","import { useState } from 'react'\nimport { styled } from '@mui/system'\n\nimport {\n Typography,\n IconButton,\n List,\n ListItem,\n ListItemIcon,\n Menu,\n MenuItem,\n ListItemText,\n Dialog,\n useMediaQuery,\n useTheme,\n} from '@mui/material'\n\nimport { ReactComponent as EditIcon } from '../../../../icons/editIcon_16x16.svg'\nimport { ReactComponent as GreyBullet } from '../../../../icons/greyCheckmarkBulletIcon.svg'\nimport { ReactComponent as TrashIcon } from '../../../../icons/trash2Icon_16x16.svg'\nimport { ReactComponent as PreviewIcon } from '../../../../icons/eyeIcon_16x16.svg'\nimport { IoEllipsisHorizontal } from 'react-icons/io5'\n\nimport VideoParent from './VideoParent'\nimport SpeechTopicFullPreview from '../SpeechTopicFullPreview'\nimport ModalCloseIcon from '../../../common/ModalCloseIcon'\n\nimport { sortSignatureTalkMediaByState } from '../helpers'\n\nimport DOMPurify from 'dompurify'\n\nimport {\n HorizontalCard,\n ContentSection,\n StyledCardContent,\n} from './SharedStyles'\n\nconst StyledMenuIconButton = styled(IconButton)(({ theme }) => ({\n fontSize: '1rem',\n zIndex: '10',\n position: 'absolute',\n top: theme.spacing(0.1),\n right: theme.spacing(0.1),\n}))\n\nconst OutcomesList = styled(List)(({ theme }) => ({\n margin: 0,\n}))\n\nconst OutcomesListItem = styled(ListItem)(({ theme }) => ({\n paddingLeft: 0,\n color: theme.palette.neutral.dark,\n}))\n\nconst SpeechTopicTitle = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.dark,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: 2,\n '&:hover': {\n cursor: 'pointer',\n color: theme.palette.secondary.main,\n },\n}))\n\nconst SpeechTopicDescription = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.dark,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: 3,\n}))\n\nconst SpeechTopicListCard = ({\n speechTopic,\n handleDeleteClick,\n handleEditClick,\n}) => {\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'))\n const [anchorEl, setAnchorEl] = useState(null)\n const [previewOpen, setPreviewOpen] = useState(false)\n\n const handleOpenDropdown = (e) => {\n setAnchorEl(e.currentTarget)\n }\n\n const handleCloseDropdown = () => {\n setAnchorEl(null)\n }\n\n const handleOpenPreview = () => {\n setPreviewOpen(true)\n handleCloseDropdown()\n }\n\n const handleClosePreview = () => {\n setPreviewOpen(false)\n }\n\n return (\n \n <>\n \n \n \n \n handleEditClick(speechTopic)}>\n \n \n \n Edit Speech Topic\n \n \n \n \n \n Preview Speech Topic\n \n handleDeleteClick(speechTopic)}>\n {' '}\n \n \n \n Delete Speech Topic\n \n \n \n \n \n \n handleEditClick(speechTopic)}>\n {speechTopic.title}\n \n \n \n {speechTopic?.outcomes?.map((outcome, index) => (\n \n \n \n \n {outcome}\n \n ))}\n \n \n \n \n \n {/* Need to wrap this in a div to prevent height from overflowing */}\n
    \n \n
    \n \n
    \n )\n}\n\nexport default SpeechTopicListCard\n","import { styled } from '@mui/system'\nimport {\n HorizontalCard,\n VideoSectionWrapper,\n ContentSection,\n StyledCardContent,\n} from './SharedStyles'\n\nimport { Skeleton, List, ListItem, ListItemIcon } from '@mui/material'\n\nconst StyledSkeleton = styled(Skeleton)(({ theme }) => ({\n borderRadius: theme.shape.borderRadius.sm,\n}))\n\nconst SpeechTopicSkeletonCard = () => (\n \n \n \n \n\n \n \n \n \n \n \n {[1, 2, 3].map((item) => (\n \n \n \n \n \n \n ))}\n \n \n \n \n)\n\nexport default SpeechTopicSkeletonCard\n","import { styled } from '@mui/system'\n\nimport { Typography } from '@mui/material'\n\nimport {\n HorizontalCard,\n ContentSection,\n StyledCardContent,\n} from './SharedStyles'\nimport { StyledButton } from '../../../common/TableActions'\n\nimport VideoParent from './VideoParent'\n\nconst PlaceholderTitle = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.semiLight,\n}))\n\nconst PlaceholderDescription = styled(Typography)(({ theme }) => ({\n color: theme.palette.neutral.semiLight,\n}))\n\nconst PlaceholderActionsContainer = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(4),\n}))\n\nconst SpeechTopicPlaceholderCard = ({ handleCreateNewSpeechTopic }) => (\n \n \n \n \n \n Add your first speech topic\n \n \n You don't have a speech topic added yet\n
    \n
    \n Add one to start seeing grouped-insights and so your offerings can be\n cross-promoted to event hosts and clients.\n
    \n
    \n \n \n + Add a speech topic\n \n \n
    \n
    \n)\n\nexport default SpeechTopicPlaceholderCard\n","import React, { useState, useEffect, useContext } from 'react'\nimport { useHistory } from 'react-router-dom'\nimport { styled } from '@mui/system'\n\nimport { AuthenticationContext } from '../../authentication/authenticationContext'\n\nimport { StyledButton } from '../../common/TableActions'\nimport PageDescription from '../../common/PageDescription'\nimport PageContainer from '../../common/PageContainer'\nimport PageHeader from '../../common/PageHeader'\nimport ConfirmDialog from '../../common/ConfirmDialog'\n\nimport SpeechTopicListCard from './speechTopicCards/SpeechTopicListCard'\nimport SpeechTopicSkeletonCard from './speechTopicCards/SpeechTopicSkeletonCard'\nimport SpeechTopicPlaceholderCard from './speechTopicCards/SpeechTopicPlaceholderCard'\n\nimport Api from '../../../services/api'\n\nconst GridContainer = styled('div')(({ theme }) => ({\n paddingBottom: theme.spacing(6),\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n justifyContent: 'flex-start',\n}))\n\nconst MainActions = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'flex-end',\n marginBottom: theme.spacing(2),\n}))\n\nconst SpeechTopicList = () => {\n const [speechTopics, setSpeechTopics] = useState([])\n const [isLoading, setIsLoading] = useState(false)\n const [talkToDelete, setTalkToDelete] = useState(null)\n const [showDeleteDialog, setShowDeleteDialog] = useState(false)\n\n const history = useHistory()\n const { authData } = useContext(AuthenticationContext)\n const {\n user: {\n membership: { shouldShowUpgrades },\n },\n } = authData\n\n useEffect(() => {\n fetchSpeechTopics()\n }, [])\n\n const fetchSpeechTopics = async () => {\n setIsLoading(true)\n try {\n const res = await Api.getSignatureTalks()\n\n if (!res.errors) {\n setSpeechTopics(res)\n }\n } catch (error) {\n console.error(error)\n } finally {\n setIsLoading(false)\n }\n }\n\n const handleCancelDelete = () => {\n setTalkToDelete(null)\n setShowDeleteDialog(false)\n }\n\n const handleDelete = async () => {\n if (!talkToDelete) return\n\n try {\n const res = await Api.deleteSignatureTalk(talkToDelete.id)\n\n if (!res.errors) {\n setSpeechTopics(speechTopics.filter((st) => st.id !== talkToDelete.id))\n setTalkToDelete(null)\n setShowDeleteDialog(false)\n } else {\n throw res.errors\n }\n } catch (error) {\n console.error(error)\n }\n }\n\n const handleDeleteClick = (speechTopic) => {\n setTalkToDelete(speechTopic)\n setShowDeleteDialog(true)\n }\n\n const handleEditSpeechTopic = (speechTopic) => {\n history.push(`/talks/speech-topic/edit/${speechTopic.id}`)\n }\n\n const handleCreateNewSpeechTopic = () => {\n history.push('/talks/speech-topic/new')\n }\n\n return (\n \n \n \n Your speech topic is the core message you’re known for—the one event\n planners consider when booking you. Most speakers have multiple speech\n topics (also known as a signature talk), each representing a distinct\n topic. Setting up your speech topics lets you showcase them on your\n profile, see grouped insights, and helps us cross-promote your talks to\n event hosts and clients.\n {' '}\n \n \n Add a speech topic\n \n \n \n {isLoading ? (\n // Render multiple loading skeletons\n [1, 2, 3].map((key) => )\n ) : (\n <>\n {(!speechTopics || speechTopics.length === 0) && (\n \n )}\n {speechTopics?.map((speechTopic) => (\n \n ))}\n \n )}\n \n {\n setShowDeleteDialog(false)\n setTalkToDelete(null)\n }}\n onCancel={handleCancelDelete}\n onConfirm={handleDelete}\n buttonColor=\"black\"\n manualConfirm={true}\n columnLayout={true}\n setOpen={setShowDeleteDialog}\n buttonText=\"I understand the consequences, delete this speech topic.\"\n title=\"Are you sure you want to delete this speech topic?\"\n cancelButtonText=\"Cancel - keep this speech topic\"\n confirmText=\"DELETE SPEECH TOPIC\">\n
    \n You will be deleting {talkToDelete?.title}. Any talks tagged with this\n speech topic will remain the same, but will be untagged from this\n topic.\n
    \n \n
    \n )\n}\n\nexport default SpeechTopicList\n","import { useState } from 'react'\nimport { styled } from '@mui/system'\nimport {\n ListItemIcon,\n Menu,\n MenuItem,\n ListItemText,\n Typography,\n IconButton,\n} from '@mui/material'\n\nimport { IoEllipsisHorizontal } from 'react-icons/io5'\nimport { ReactComponent as TrashIcon } from '../../../icons/trash2Icon_16x16.svg'\n\nimport { VIDEO_STATES } from '../speechTopics/speechTopicCards/VideoParent'\nimport MuxVideoTile from '../speechTopics/MuxVideoTile'\nimport ConfirmDialog from '../../common/ConfirmDialog'\n\nimport Api from '../../../services/api'\n\nconst TileWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'center',\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n}))\n\nconst TileInfoContainer = styled('div')(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: '1fr auto',\n marginTop: theme.spacing(1),\n alignItems: 'center',\n width: '100%',\n}))\n\nconst TileInfoTitle = styled(Typography)(({ theme }) => ({\n fontWeight: theme.fontWeights.semiBold,\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}))\n\nconst ImageContentWrapper = styled('div')(({ theme }) => ({\n maxHeight: '200px',\n width: 'min-content',\n img: {\n borderRadius: theme.shape.borderRadius.sm,\n maxHeight: '200px',\n },\n}))\n\nconst ContentWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n width: 'min-content',\n position: 'relative',\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n}))\n\nconst DragHandle = styled('div')(({ theme }) => ({\n position: 'absolute',\n top: 0,\n left: 0,\n cursor: 'grab',\n display: 'flex',\n alignItems: 'center',\n padding: `0 ${theme.spacing(1)}`,\n background: 'rgba(255, 255, 255, 0.50)',\n borderRadius: `${theme.shape.borderRadius.sm} 0 ${theme.shape.borderRadius.xs} 0`,\n fontSize: '1.5rem',\n zIndex: 1,\n '&:active': {\n cursor: 'grabbing',\n },\n '& svg': {\n width: '16px',\n height: '16px',\n color: theme.palette.grey[500],\n },\n}))\n\nconst MediaKitFormFileTile = ({ media, setSpeakerMedia, dragHandleProps }) => {\n const [menuState, setMenuState] = useState({ anchorEl: null, mediaId: null })\n const [showDeleteDialog, setShowDeleteDialog] = useState(false)\n const [mediaToDelete, setMediaToDelete] = useState(null)\n\n const handleDeleteClick = (media) => {\n setMediaToDelete(media)\n setShowDeleteDialog(true)\n }\n\n const handleCancelDelete = () => {\n setMediaToDelete(null)\n setMenuState({ anchorEl: null, mediaId: null })\n }\n\n const handleOpenDropdown = (e, media) => {\n setMenuState({ anchorEl: e.currentTarget, mediaId: media.id })\n }\n\n const handleCloseDropdown = () => {\n setMenuState({ anchorEl: null, mediaId: null })\n }\n\n const makePlaceholderContent = (media) => {\n if (\n media?.status === VIDEO_STATES.PROCESSING ||\n media?.status === VIDEO_STATES.UPLOADING\n ) {\n return `This file is processing. Please check back later.`\n }\n\n if (media?.status === VIDEO_STATES.FAILED) {\n return `This file failed to process. Please remove it and try to upload it again. If you run into issues, please reach out to support at hello@talkadot.com.`\n }\n }\n\n const handleRemoveMedia = async () => {\n try {\n const res = await Api.deleteSpeakerMedia(mediaToDelete.id)\n if (!res.errors) {\n setSpeakerMedia((prev) => prev.filter((m) => m.id !== media.id))\n\n handleCloseDropdown()\n setShowDeleteDialog(false)\n setMediaToDelete(null)\n } else {\n throw res.errors\n }\n } catch (errors) {\n console.error(errors)\n }\n }\n\n const renderVideoContent = () => {\n return (\n \n )\n }\n\n const renderImageContent = () => {\n return (\n \n {media.label}\n \n )\n }\n\n const renderTileContent = () => {\n switch (media.fileType) {\n case 'video':\n return renderVideoContent()\n case 'image':\n return renderImageContent()\n default:\n return null\n }\n }\n\n return (\n \n \n {/* */}⠿\n {renderTileContent()}\n \n \n {media.label}\n \n handleOpenDropdown(e, media)}\n aria-label=\"Open to show more\"\n title=\"Open to show more\">\n \n \n \n handleDeleteClick(media)}>\n {' '}\n \n \n \n Delete File\n \n \n \n \n \n
    \n This action will delete this file. If you are using this file on your\n profile, it will be removed there as well.\n
    \n \n
    \n )\n}\n\nexport default MediaKitFormFileTile\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgFileIcon36X36(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 36,\n height: 36,\n viewBox: \"0 0 36 36\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.5 3H9C8.20435 3 7.44129 3.31607 6.87868 3.87868C6.31607 4.44129 6 5.20435 6 6V30C6 30.7956 6.31607 31.5587 6.87868 32.1213C7.44129 32.6839 8.20435 33 9 33H27C27.7956 33 28.5587 32.6839 29.1213 32.1213C29.6839 31.5587 30 30.7956 30 30V13.5L19.5 3Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.5 3V13.5H30\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFileIcon36X36);\nexport default __webpack_public_path__ + \"static/media/fileIcon_36x36.8cbb1ce5.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgChaptersIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23 21V19C22.9993 18.1137 22.7044 17.2528 22.1614 16.5523C21.6184 15.8519 20.8581 15.3516 20 15.13\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 21V19C17 17.9391 16.5786 16.9217 15.8284 16.1716C15.0783 15.4214 14.0609 15 13 15H5C3.93913 15 2.92172 15.4214 2.17157 16.1716C1.42143 16.9217 1 17.9391 1 19V21\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 3.13C16.8604 3.35031 17.623 3.85071 18.1676 4.55232C18.7122 5.25392 19.0078 6.11683 19.0078 7.005C19.0078 7.89318 18.7122 8.75608 18.1676 9.45769C17.623 10.1593 16.8604 10.6597 16 10.88\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 11C11.2091 11 13 9.20914 13 7C13 4.79086 11.2091 3 9 3C6.79086 3 5 4.79086 5 7C5 9.20914 6.79086 11 9 11Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgChaptersIcon);\nexport default __webpack_public_path__ + \"static/media/chaptersIcon.278d405c.svg\";\nexport { ForwardRef as ReactComponent };","import { useState, useCallback, useMemo } from 'react'\nimport { styled } from '@mui/system'\nimport {\n DndContext,\n rectIntersection,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from '@dnd-kit/core'\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n useSortable,\n rectSortingStrategy,\n} from '@dnd-kit/sortable'\n\nimport UploadMediaDropzone, {\n UploadFile,\n} from '../../common/UploadMediaDropzone'\n\nimport MediaKitFormFileTile from './MediaKitFormFileTile'\nimport { VideoSectionWrapper } from '../speechTopics/speechTopicCards/SharedStyles'\nimport { Notification } from '../../common/Notification'\nimport { getNormalizedFile } from '../../../utils/cropImage'\nimport Api from '../../../services/api'\n\nimport { ReactComponent as CameraReelIcon } from '../../../icons/cameraReelIcon.svg'\nimport { ReactComponent as ImageIcon } from '../../../icons/imageIcon_36x36.svg'\nimport { ReactComponent as FileIcon } from '../../../icons/fileIcon_36x36.svg'\n\nimport {\n presignSpeakerMediaUploadUrl,\n uploadToS3,\n cancelUpload,\n} from '../../../utils/fileUpload'\n\nconst VideoUploadContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n}))\n\nconst UploadFilesContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexWrap: 'wrap',\n gap: theme.spacing(2.5),\n}))\n\nconst TileWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'center',\n}))\n\nconst StyledImageIcon = styled(ImageIcon)(({ theme }) => ({\n path: {\n stroke: theme.palette.secondary.main,\n },\n}))\n\nconst SortableTileWrapper = styled('div')(({ theme }) => ({\n // width: 'min-content',\n // [theme.breakpoints.down('sm')]: {\n // width: '100%',\n // },\n}))\n\nconst mediaKitFileTypes = {\n 'video/*': [],\n 'image/*': [],\n // TODO: What other file types do we want to support?\n // 'application/pdf': [],\n}\n\nconst humanizeFileRejectionError = (errorCode) => {\n switch (errorCode) {\n case 'file-invalid-type':\n return 'Invalid file type. Please upload a valid image or video file.'\n case 'file-too-large':\n return 'File is too large. Your file has to be less than 1GB.'\n default:\n return 'Sorry, something went wrong uploading your file'\n }\n}\n\nconst TOTAL_FILES_LIMIT = 10\n\nconst SortableMediaKitFormFileTile = ({ media, setSpeakerMedia, ...props }) => {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({ id: media.id })\n\n // NOTE: I'm forcing the scale to 1 in order to prevent the tile from stretching\n // when it's being dragged. This can cause a bit of overflow on the right side\n // while dragging, but not sure how else to handle the different draggable widths.\n const style = {\n transform: transform\n ? `translate3d(${transform?.x}px, ${transform?.y}px, 0) scale(1)`\n : undefined,\n transition,\n opacity: isDragging ? 0.5 : 1,\n }\n\n return (\n \n \n \n )\n}\n\nconst MediaKitFileUploader = ({\n onUploadComplete,\n onUploadDelete,\n speakerMedia,\n setSpeakerMedia,\n}) => {\n const [isUploading, setIsUploading] = useState(false)\n const [files, setFiles] = useState([])\n const [showExceededLimitNotification, setShowExceededLimitNotification] =\n useState(false)\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n )\n\n const totalExistingFiles = speakerMedia.length\n\n const handleDragEnd = useCallback(\n async (event) => {\n const { active, over } = event\n\n if (active.id !== over.id) {\n const oldIndex = speakerMedia.findIndex((item) => item.id === active.id)\n const newIndex = speakerMedia.findIndex((item) => item.id === over.id)\n const newOrder = arrayMove(speakerMedia, oldIndex, newIndex)\n\n setSpeakerMedia(newOrder)\n\n // Update the order on the backend\n try {\n await Api.updateProfile({\n ordered_speaker_media_ids: newOrder.map((media) => media.id),\n })\n } catch (error) {\n console.error('Error updating media order:', error)\n // Revert the order if the update fails\n setSpeakerMedia(speakerMedia)\n }\n }\n },\n [speakerMedia, setSpeakerMedia]\n )\n\n const handleUploadCancel = (fileBeingCancelled) => {\n if (fileBeingCancelled.cancelTokenSource) {\n cancelUpload(fileBeingCancelled.cancelTokenSource)\n }\n setFiles((prevFiles) =>\n prevFiles.filter((file) => file.fileKey !== fileBeingCancelled.fileKey)\n )\n }\n\n const handleUploadDelete = useCallback(\n (fileBeingDeleted) => {\n setFiles((prevFiles) =>\n prevFiles.filter((file) => file.fileKey !== fileBeingDeleted.fileKey)\n )\n onUploadDelete(fileBeingDeleted)\n },\n [onUploadDelete]\n )\n\n const renderFileTypeIcon = (fileType) => {\n if (fileType.includes('video')) {\n return \n }\n if (fileType.includes('image')) {\n return \n }\n return \n }\n\n const uploadFiles = files.map((file, index) => {\n return (\n \n \n handleUploadCancel(file)}\n handleUploadDelete={() => handleUploadDelete(file)}>\n \n \n )\n })\n\n const renderExistingFiles = useMemo(\n () => (\n \n media.id)}\n strategy={rectSortingStrategy}>\n \n {speakerMedia.map((media) => (\n \n ))}\n \n \n \n ),\n [speakerMedia, setSpeakerMedia, sensors, handleDragEnd]\n )\n\n const handleFileUpload = useCallback(\n async (acceptedFiles) => {\n if (isUploading) {\n return\n }\n\n if (acceptedFiles.length === 0) {\n return\n }\n\n setShowExceededLimitNotification(false)\n\n if (totalExistingFiles + acceptedFiles.length > TOTAL_FILES_LIMIT) {\n setShowExceededLimitNotification(true)\n return\n }\n\n setIsUploading(true)\n\n const uploadPromises = acceptedFiles.map(async (file) => {\n if (!file) {\n return\n }\n\n try {\n const { name, type } = file\n // Normalize image files before upload\n\n const fileToUpload = type.includes('image')\n ? await getNormalizedFile(file, { maxWidth: 2000, maxHeight: 2000 })\n : file\n\n const presigndRes = await presignSpeakerMediaUploadUrl({\n fileName: name,\n fileType: type,\n })\n const { presignedUrl, fileKey } = presigndRes\n const fileObj = {\n file: fileToUpload,\n fileKey,\n presignedUrl,\n cancelTokenSource: null,\n uploadProgress: 0,\n isUploading: false,\n }\n\n setFiles((prevFiles) => [...prevFiles, fileObj])\n\n const setUploadingFileStatus = (isUploading) => {\n setFiles((prevFiles) => {\n // Update state immutably\n return prevFiles.map((fObj) => {\n if (fObj.fileKey === fileKey) {\n return { ...fObj, isUploading: isUploading } // Create new fileObj\n }\n return fObj // Keep other fileObjs unchanged\n })\n })\n }\n\n const updateProgress = (progress) => {\n setFiles((prevFiles) => {\n // Update state immutably\n return prevFiles.map((fObj) => {\n if (fObj.fileKey === fileKey) {\n return { ...fObj, uploadProgress: progress } // Create new fileObj\n }\n return fObj // Keep other fileObjs unchanged\n })\n })\n }\n\n const setCancelTokenSource = (cancelTokenSource) => {\n setFiles((prevFiles) => {\n // Update state immutably\n return prevFiles.map((fObj) => {\n if (fObj.fileKey === fileKey) {\n return { ...fObj, cancelTokenSource: cancelTokenSource } // Create new fileObj\n }\n return fObj // Keep other fileObjs unchanged\n })\n })\n }\n\n await uploadToS3({\n presignedUrl,\n file: fileToUpload,\n setUploading: setUploadingFileStatus,\n onUploadProgress: updateProgress,\n setCancelTokenSource,\n })\n\n // clear file from files array\n setFiles((prevFiles) =>\n prevFiles.filter((fObj) => fObj.fileKey !== fileKey)\n )\n\n onUploadComplete(fileObj)\n } catch (error) {\n console.error('Error uploading file:', error)\n return Promise.resolve()\n }\n })\n\n // Reset uploading state after all files have their upload states cancelled\n try {\n await Promise.all(uploadPromises)\n } catch (error) {\n console.log(\n 'At least one file upload failed, or upload process encountered an error.'\n )\n } finally {\n setIsUploading(false)\n }\n },\n [isUploading, onUploadComplete, totalExistingFiles]\n )\n\n return (\n \n 0 || files.length > 0}\n />\n {showExceededLimitNotification && (\n \n You can only add up to {TOTAL_FILES_LIMIT} files. Please remove a file\n to add a new one.\n \n )}\n {!showExceededLimitNotification && (\n \n You currently have {totalExistingFiles} file\n {totalExistingFiles === 1 ? '' : 's'} uploaded. The maximum is{' '}\n {TOTAL_FILES_LIMIT}.\n \n )}\n {isUploading && (\n {uploadFiles}\n )}\n {renderExistingFiles}\n \n )\n}\n\nexport default MediaKitFileUploader\n","import { useCallback, useRef, forwardRef, useImperativeHandle } from 'react'\n\nimport MediaKitFileUploader from './MediaKitFileUploader'\n\nimport Api from '../../../services/api'\n\nconst MediaKitFileUploadParent = forwardRef((props, ref) => {\n const { speakerMedia, setSpeakerMedia } = props\n const files = useRef([])\n\n useImperativeHandle(ref, () => ({\n getFiles: () => files.current,\n }))\n\n const mediaType = (file) => {\n if (file.type.includes('video')) return 'video'\n if (file.type.includes('image')) return 'image'\n return 'file'\n }\n\n const handleUploadComplete = useCallback(\n async (fileObj) => {\n try {\n const res = await Api.createSpeakerMediaUpload({\n media_upload: {\n file_key: fileObj.fileKey,\n file_name: fileObj.file.name,\n size: fileObj.file.size,\n media_type: mediaType(fileObj.file),\n },\n })\n if (res.errors) throw res.errors\n files.current = [...files.current, { mediaUploadObj: res, fileObj }]\n\n setSpeakerMedia((prev) => [...prev, res])\n } catch (error) {\n console.error(error)\n }\n },\n [setSpeakerMedia]\n )\n\n const handleUploadDelete = useCallback(\n async (file) => {\n try {\n // NOTE: This should never be called since we don't show the uploadFilesContainer when the upload is complete\n // Remove from local state\n setSpeakerMedia((prev) => prev.filter((m) => m.id !== file.id))\n files.current = files.current.filter((f) => f.fileObj !== file)\n } catch (error) {\n console.error(error)\n }\n },\n [setSpeakerMedia]\n )\n\n return (\n \n )\n})\n\nexport default MediaKitFileUploadParent\n","import {\n // useContext,\n useRef,\n useState,\n useEffect,\n} from 'react'\n\n// import EditAvatar from '../../accountSettings/EditAvatar'\nimport MediaKitFileUploadParent from './MediaKitFileUploadParent'\n\nimport Api from '../../../services/api'\n\nimport {\n MainContainer,\n SecondaryContainer,\n FormContainer,\n // StyledTextField,\n FullFormSection,\n HeaderContainer,\n HeaderSubtext,\n // CharacterCounter,\n // FieldCaption,\n} from '../../common/FormComponents'\n\n// import { AuthenticationContext } from '../../authentication/authenticationContext'\n\nconst MediaKitForm = () => {\n const [speakerMedia, setSpeakerMedia] = useState([])\n\n // const { authData } = useContext(AuthenticationContext)\n // const { user } = authData\n\n const fileUploaderRef = useRef(null)\n\n useEffect(() => {\n const fetchSpeakerMedia = async () => {\n const res = await Api.getSpeakerMedia()\n setSpeakerMedia(res)\n }\n fetchSpeakerMedia()\n }, [])\n\n return (\n \n \n \n \n Setup your Media Kit\n \n {/* NOTE: check with Pokin if we still want this here. */}\n {/* \n \n \n Your headshot is an important part of your media kit. It should be\n a professional photo of you that clearly shows your face. Event\n planners and clients use your headshot to recognize you and\n promote your talk. It is also used on your speaker profile, event\n reports, and survey materials.\n \n */}\n {/* TODO: hook up bio */}\n {/* \n 0/5000,\n }}\n />\n */}\n \n \n \n \n \n \n )\n}\n\nexport default MediaKitForm\n","import React from 'react'\n\nimport { styled } from '@mui/system'\n\nimport PageHeader from '../../common/PageHeader'\nimport PageContainer from '../../common/PageContainer'\nimport PageDescription from '../../common/PageDescription'\n\nimport MediaKitForm from './MediaKitForm'\n\nconst FormContainer = styled('div')(({ theme }) => ({\n background: theme.palette.base.white,\n}))\n\nconst MediaKitParent = () => {\n return (\n \n \n \n Add all of your assets so you have a centralized place to share with\n your event planners and clients.\n \n \n \n \n \n )\n}\n\nexport default MediaKitParent\n","import React, { useContext } from 'react'\nimport { Switch, Route, Redirect, useLocation } from 'react-router-dom'\nimport * as Cookies from '../services/cookies'\n\nimport LoginForm from '../features/authentication/LoginForm'\nimport RegistrationParent from '../features/authentication/RegistrationParent'\nimport ReferrerRegistrationParent from '../features/authentication/ReferrerRegistrationParent'\nimport DashboardParent from '../features/dashboard/v2/DashboardParent'\nimport OnboardingParent from '../features/onboarding/OnboardingParent'\nimport AccountSettingsParent from '../features/accountSettings/AccountSettingsParent'\nimport TeamParent from '../features/accountSettings/TeamParent'\nimport LeadsParent from '../features/leads/LeadsParent'\nimport LeadsFollowupParent from '../features/leads/LeadsFollowupParent'\nimport LeadsIntegrationsParent from '../features/leads/LeadsIntegrationsParent'\nimport ReferParent from '../features/refer/ReferParent'\nimport EventReportCardParent from '../features/eventReportCards/EventReportCardParent'\nimport SocialShareImageParent from '../features/eventReportCards/SocialShareImageParent'\nimport PasswordResetRequest from '../features/authentication/PasswordResetRequest'\nimport PasswordResetForm from '../features/authentication/PasswordResetForm'\nimport { LinkedInCallback } from 'react-linkedin-login-oauth2'\nimport { AuthenticationContext } from '../features/authentication/authenticationContext'\nimport { usePermissionHelper } from '../utils/permission_helper'\nimport AdminParent from '../features/admin/AdminParent'\nimport AdminChapterUploadParent from '../features/admin/AdminChapterUploadParent'\nimport AdminAssociatesParent from '../features/admin/AdminAssociatesParent'\nimport EventPlannerDashboard from '../features/eventPlanners/EventPlannerDashboard'\nimport EventGroupParent from '../features/eventPlanners/EventGroupParent'\nimport PublicProfileParent from '../features/publicProfile/PublicProfileParent'\nimport BillingParent from '../features/accountSettings/BillingParent'\nimport ChapterGroupsParent from '../features/groups/ChapterGroupsParent'\nimport GroupParent from '../features/groups/GroupParent'\nimport GroupInivtationAcceptanceParent from '../features/groups/GroupInvitationAcceptanceParent'\nimport OAuthProviderAuthenticationParent from '../features/authentication/OAuthProviderAuthenticationParent'\nimport UnsubscribeParent from '../features/unsubscribe/UnsubscribeParent'\nimport BonusGiftParent from '../features/bonusGift/BonusGiftParent'\nimport ApiDocumentationParent from '../features/api/ApiDocumentationParent'\nimport TalksParent from '../features/talks/TalksParent'\nimport SpeechTopicParent from '../features/talks/speechTopics/SpeechTopicParent'\nimport CodesParent from '../features/codes/CodesParent'\nimport CodeBuilderParent from '../features/codes/builder/CodeBuilderParent'\nimport CommissionPayoutParent from '../features/admin/CommissionPayoutParent'\nimport ReferralUploadParent from '../features/admin/ReferralUploadParent'\nimport ShowUserParent from '../features/admin/ShowUserParent'\nimport HelpCenterParent from '../features/helpCenter/HelpCenterParent'\nimport SpeechTopicList from '../features/talks/speechTopics/SpeechTopicList'\nimport MediaKitParent from '../features/talks/mediaKit/MediaKitParent'\n\n// If user is logged in, redirect them to the homepage\nconst UnAuthRoute = ({ component: Component, ...rest }) => {\n const isAuthenticated = Cookies.getAuthToken()\n\n return (\n {\n if (!isAuthenticated) {\n return \n }\n\n return \n }}\n />\n )\n}\n\n// Routes that you need to be logged in to use\nconst ProtectedRoute = ({ component, ...rest }) => {\n const isAuthenticated = Cookies.getAuthToken()\n\n const routeComponent = (props) =>\n isAuthenticated ? (\n React.createElement(component, props)\n ) : (\n \n )\n\n return \n}\n\nconst AdminRoute = ({ component, ...rest }) => {\n const { authData } = useContext(AuthenticationContext)\n const { isAdmin } = authData?.user\n\n // Make sure authData is loaded before checking if user is admin to allow refreshing of admin page without redirecting\n if (!authData.user.id) {\n return null\n }\n\n if (!isAdmin) {\n return \n }\n\n return \n}\n\nconst InvitationRoute = ({ component, ...rest }) => {\n const isAuthenticated = Cookies.getAuthToken()\n const location = useLocation()\n\n if (isAuthenticated) {\n return \n }\n\n return \n}\n\nconst DashboardRoute = ({ component, ...rest }) => {\n const { authData } = useContext(AuthenticationContext)\n const isEventPlanner = authData?.user?.isEventPlanner\n\n if (isEventPlanner) {\n return \n } else {\n return \n }\n}\n\nconst Routes = ({ leftNavOpen }) => {\n const { authData } = useContext(AuthenticationContext)\n const { hasGroupsFeatureFlag } = authData?.user\n const { canAccessTeams } = usePermissionHelper()\n\n return (\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 {canAccessTeams() && (\n \n )}\n \n \n \n \n {/* NOTE: this is a feature flag for media kit */}\n {/* ************************************************************** */}\n \n {/* ************************************************************** */}\n\n \n \n \n \n \n \n \n {hasGroupsFeatureFlag && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default Routes\n","import React from 'react'\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Typography from '@mui/material/Typography'\n\nimport './FullPageLoader.scss'\n\nconst FullPageLoader = ({content, loaderType}) => {\n return(\n
    \n
    \n
    \n \n
    \n \n {content} \n \n
    \n
    \n )\n}\n\nexport default FullPageLoader","import React, { useContext, useEffect, useState } from 'react'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport Snackbar from '@mui/material/Snackbar'\n\nimport { Notification } from './Notification'\n\nconst NotificationParent = () => {\n const { authData, closeNotification } = useContext(AuthenticationContext)\n const { notification } = authData\n const { showNotification, message, notificationType } = notification\n\n const [state, setState] = useState({\n open: true,\n vertical: 'top',\n horizontal: 'right',\n })\n\n const { vertical, horizontal, open } = state\n\n useEffect(() => {\n setState({ ...state, open: showNotification })\n }, [showNotification])\n\n const handleClose = () => {\n closeNotification()\n setState({ ...state, open: false })\n }\n\n const renderNotification = () => {\n let variant\n switch (notificationType) {\n case 'info':\n variant = 'whiteWarning'\n break\n case 'success':\n variant = 'success'\n break\n case 'warning':\n variant = 'orangeWarning'\n break\n case 'error':\n variant = 'error'\n break\n default:\n variant = 'error'\n }\n\n return (\n \n {message}\n \n )\n }\n\n return (\n //
    \n \n {renderNotification()}\n \n //
    \n )\n}\n\nexport default NotificationParent\n","var _path, _path2, _path3;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgLogoutIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 17L21 12L16 7\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 12H9\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 21H5C4.46957 21 3.96086 20.7893 3.58579 20.4142C3.21071 20.0391 3 19.5304 3 19V5C3 4.46957 3.21071 3.96086 3.58579 3.58579C3.96086 3.21071 4.46957 3 5 3H9\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoutIcon);\nexport default __webpack_public_path__ + \"static/media/logoutIcon.e09c1d10.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgSettingsIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1825_2573)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.4 15C19.2669 15.3016 19.2272 15.6362 19.286 15.9606C19.3448 16.285 19.4995 16.5843 19.73 16.82L19.79 16.88C19.976 17.0657 20.1235 17.2863 20.2241 17.5291C20.3248 17.7719 20.3766 18.0322 20.3766 18.295C20.3766 18.5578 20.3248 18.8181 20.2241 19.0609C20.1235 19.3037 19.976 19.5243 19.79 19.71C19.6043 19.896 19.3837 20.0435 19.1409 20.1441C18.8981 20.2448 18.6378 20.2966 18.375 20.2966C18.1122 20.2966 17.8519 20.2448 17.6091 20.1441C17.3663 20.0435 17.1457 19.896 16.96 19.71L16.9 19.65C16.6643 19.4195 16.365 19.2648 16.0406 19.206C15.7162 19.1472 15.3816 19.1869 15.08 19.32C14.7842 19.4468 14.532 19.6572 14.3543 19.9255C14.1766 20.1938 14.0813 20.5082 14.08 20.83V21C14.08 21.5304 13.8693 22.0391 13.4942 22.4142C13.1191 22.7893 12.6104 23 12.08 23C11.5496 23 11.0409 22.7893 10.6658 22.4142C10.2907 22.0391 10.08 21.5304 10.08 21V20.91C10.0723 20.579 9.96512 20.258 9.77251 19.9887C9.5799 19.7194 9.31074 19.5143 9 19.4C8.69838 19.2669 8.36381 19.2272 8.03941 19.286C7.71502 19.3448 7.41568 19.4995 7.18 19.73L7.12 19.79C6.93425 19.976 6.71368 20.1235 6.47088 20.2241C6.22808 20.3248 5.96783 20.3766 5.705 20.3766C5.44217 20.3766 5.18192 20.3248 4.93912 20.2241C4.69632 20.1235 4.47575 19.976 4.29 19.79C4.10405 19.6043 3.95653 19.3837 3.85588 19.1409C3.75523 18.8981 3.70343 18.6378 3.70343 18.375C3.70343 18.1122 3.75523 17.8519 3.85588 17.6091C3.95653 17.3663 4.10405 17.1457 4.29 16.96L4.35 16.9C4.58054 16.6643 4.73519 16.365 4.794 16.0406C4.85282 15.7162 4.81312 15.3816 4.68 15.08C4.55324 14.7842 4.34276 14.532 4.07447 14.3543C3.80618 14.1766 3.49179 14.0813 3.17 14.08H3C2.46957 14.08 1.96086 13.8693 1.58579 13.4942C1.21071 13.1191 1 12.6104 1 12.08C1 11.5496 1.21071 11.0409 1.58579 10.6658C1.96086 10.2907 2.46957 10.08 3 10.08H3.09C3.42099 10.0723 3.742 9.96512 4.0113 9.77251C4.28059 9.5799 4.48572 9.31074 4.6 9C4.73312 8.69838 4.77282 8.36381 4.714 8.03941C4.65519 7.71502 4.50054 7.41568 4.27 7.18L4.21 7.12C4.02405 6.93425 3.87653 6.71368 3.77588 6.47088C3.67523 6.22808 3.62343 5.96783 3.62343 5.705C3.62343 5.44217 3.67523 5.18192 3.77588 4.93912C3.87653 4.69632 4.02405 4.47575 4.21 4.29C4.39575 4.10405 4.61632 3.95653 4.85912 3.85588C5.10192 3.75523 5.36217 3.70343 5.625 3.70343C5.88783 3.70343 6.14808 3.75523 6.39088 3.85588C6.63368 3.95653 6.85425 4.10405 7.04 4.29L7.1 4.35C7.33568 4.58054 7.63502 4.73519 7.95941 4.794C8.28381 4.85282 8.61838 4.81312 8.92 4.68H9C9.29577 4.55324 9.54802 4.34276 9.72569 4.07447C9.90337 3.80618 9.99872 3.49179 10 3.17V3C10 2.46957 10.2107 1.96086 10.5858 1.58579C10.9609 1.21071 11.4696 1 12 1C12.5304 1 13.0391 1.21071 13.4142 1.58579C13.7893 1.96086 14 2.46957 14 3V3.09C14.0013 3.41179 14.0966 3.72618 14.2743 3.99447C14.452 4.26276 14.7042 4.47324 15 4.6C15.3016 4.73312 15.6362 4.77282 15.9606 4.714C16.285 4.65519 16.5843 4.50054 16.82 4.27L16.88 4.21C17.0657 4.02405 17.2863 3.87653 17.5291 3.77588C17.7719 3.67523 18.0322 3.62343 18.295 3.62343C18.5578 3.62343 18.8181 3.67523 19.0609 3.77588C19.3037 3.87653 19.5243 4.02405 19.71 4.21C19.896 4.39575 20.0435 4.61632 20.1441 4.85912C20.2448 5.10192 20.2966 5.36217 20.2966 5.625C20.2966 5.88783 20.2448 6.14808 20.1441 6.39088C20.0435 6.63368 19.896 6.85425 19.71 7.04L19.65 7.1C19.4195 7.33568 19.2648 7.63502 19.206 7.95941C19.1472 8.28381 19.1869 8.61838 19.32 8.92V9C19.4468 9.29577 19.6572 9.54802 19.9255 9.72569C20.1938 9.90337 20.5082 9.99872 20.83 10H21C21.5304 10 22.0391 10.2107 22.4142 10.5858C22.7893 10.9609 23 11.4696 23 12C23 12.5304 22.7893 13.0391 22.4142 13.4142C22.0391 13.7893 21.5304 14 21 14H20.91C20.5882 14.0013 20.2738 14.0966 20.0055 14.2743C19.7372 14.452 19.5268 14.7042 19.4 15V15Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1825_2573\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSettingsIcon);\nexport default __webpack_public_path__ + \"static/media/settingsIcon.5a651d29.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgUpgradeIconWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 18,\n height: 22,\n viewBox: \"0 0 18 22\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.0901 12.2799H6.1801V19.4799C6.1801 21.1599 7.0901 21.4999 8.2001 20.2399L15.7701 11.6399C16.7001 10.5899 16.3101 9.7199 14.9001 9.7199H11.8101V2.5199C11.8101 0.839898 10.9001 0.499897 9.7901 1.7599L2.2201 10.3599C1.3001 11.4199 1.6901 12.2799 3.0901 12.2799Z\",\n stroke: \"white\",\n strokeWidth: 1.5,\n strokeMiterlimit: 10,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUpgradeIconWhite);\nexport default __webpack_public_path__ + \"static/media/upgradeIcon_white.c84a3a24.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgTalksIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 22,\n height: 22,\n viewBox: \"0 0 16 26\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.05078 25H11.3651\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.9708 13.3429C11.9708 14.6159 11.5213 15.8368 10.7212 16.737C9.921 17.6371 8.83576 18.1429 7.70417 18.1429C6.57258 18.1429 5.48733 17.6371 4.68718 16.737C3.88702 15.8368 3.4375 14.6159 3.4375 13.3429V5.8C3.4375 4.52696 3.88702 3.30606 4.68718 2.40589C5.48733 1.50571 6.57258 1 7.70417 1C8.83576 1 9.921 1.50571 10.7212 2.40589C11.5213 3.30606 11.9708 4.52696 11.9708 5.8V13.3429Z\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.70312 25V20.8857\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 10.6006V13.3434C1 15.3439 1.70639 17.2625 2.96378 18.677C4.22117 20.0916 5.92655 20.8863 7.70476 20.8863C9.48297 20.8863 11.1884 20.0916 12.4457 18.677C13.7031 17.2625 14.4095 15.3439 14.4095 13.3434V10.6006\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinejoin: \"round\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.4375 9.91406H11.9708\",\n stroke: \"#323A46\",\n strokeWidth: 1.5,\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTalksIcon);\nexport default __webpack_public_path__ + \"static/media/talksIcon.9ec8a978.svg\";\nexport { ForwardRef as ReactComponent };","import { useContext } from 'react'\nimport { useHistory, useLocation } from 'react-router-dom'\nimport { Menu, MenuItem, ListItemIcon, Divider, Avatar } from '@mui/material'\nimport { styled } from '@mui/system'\nimport { ReactComponent as ChaptersIcon } from '../../icons/navIcons/chaptersIcon.svg'\nimport { ReactComponent as LogOutIcon } from '../../icons/navIcons/logoutIcon.svg'\nimport { ReactComponent as SettingsIcon } from '../../icons/navIcons/settingsIcon.svg'\nimport { ReactComponent as UpgradeIcon } from '../../icons/upgradeIcon_white.svg'\nimport HelpOutlineIcon from '@mui/icons-material/HelpOutline'\n\nimport AdminPanelSettings from '@mui/icons-material/AdminPanelSettings'\n\nimport envConfig from '../../envConfig'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport { GroupContext } from '../groups/groupContext'\nimport { usePermissionHelper } from '../../utils/permission_helper'\nimport { useBillingRedirect } from '../../hooks/useBillingRedirect'\n\nconst StyledMenu = styled(Menu)(({ theme }) => ({\n '& .MuiPaper-root': {\n filter: `drop-shadow(${theme.shape.boxShadow.xs})`,\n top: '100px !important',\n borderRadius: `0 0 ${theme.shape.borderRadius.md} ${theme.shape.borderRadius.md}`,\n minWidth: '258px',\n '&:before': {\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n top: 0,\n right: 14,\n width: 18,\n height: 18,\n backgroundColor: 'white',\n transform: 'translateY(-50%) rotate(45deg)',\n zIndex: 0,\n },\n [theme.breakpoints.down('sm')]: {\n top: '80px !important',\n },\n },\n}))\n\nconst StyledMenuItem = styled(MenuItem)(({ theme }) => ({\n fontFamily: 'Figtree, sans-serif',\n minHeight: '52px !important',\n '& .MuiListItemIcon-root': {\n minWidth: '50px',\n },\n '& :not(.MuiAvatar-root, .upgrade-icon) > svg': {\n width: '2rem',\n height: '2rem',\n paddingLeft: theme.spacing(1),\n },\n}))\n\nconst UpgradeIconContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '40px',\n height: '40px',\n borderRadius: theme.shape.borderRadius.sm,\n backgroundColor: theme.palette.tertiary.main,\n svg: {\n width: '18px',\n height: '22px',\n },\n}))\n\nconst GroupsBadge = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.secondary.extraLight,\n color: theme.palette.secondary.main,\n borderRadius: theme.shape.borderRadius.sm,\n padding: '4px 6px',\n marginLeft: '8px',\n fontWeight: '600',\n}))\n\nconst SettingsMenuAvatar = styled(Avatar)({\n marginRight: '10px',\n // Note: the image width and height here is a solution to\n // prevent a small black border to show up on the left and top\n // of the image in certain occassions.\n img: {\n width: '102%',\n height: '102%',\n },\n})\n\nconst NewSettingsMenu = ({ dropDownOpen, handleDropDownClose, anchorEl }) => {\n const {\n logoutUser,\n authData: { user },\n } = useContext(AuthenticationContext)\n const { isAdmin, isAssociate, first_name, shortlink } = user\n const {\n groupState: { groups },\n getPrimaryGroup,\n } = useContext(GroupContext)\n const history = useHistory()\n const location = useLocation()\n const { onPaidPlan } = usePermissionHelper()\n const primaryGroup = getPrimaryGroup()\n const redirectToBilling = useBillingRedirect()\n\n const showPublicProfileLink = !location.pathname.includes('/groups')\n\n const handleSelectGroup = (groupId) => {\n const newPath = `/groups/${groupId}/events`\n\n history.push(newPath)\n handleDropDownClose()\n }\n\n const handleSpeakerAvatarClick = () => {\n handleDropDownClose()\n\n if (showPublicProfileLink) {\n window.location.href = `${envConfig.REACT_APP_PUBLIC_PAGE_ENDPOINT}/s/${shortlink}`\n } else {\n history.push('/')\n }\n }\n\n const renderSpeakerAvatarText = () => {\n if (showPublicProfileLink) {\n return {isAssociate ? first_name + \"'s\" : 'Your'} public profile\n } else {\n return {user?.first_name + ' ' + user?.last_name}\n }\n }\n\n const renderPrimaryGroupMenuItem = () => {\n if (groups?.length > 0 && primaryGroup) {\n return (\n handleSelectGroup(primaryGroup.id)}>\n \n \n \n {primaryGroup.name}\n \n )\n }\n }\n\n const renderAllGroupsMenuItem = () => {\n if (groups?.length > 0) {\n return (\n {\n handleDropDownClose()\n history.push('/groups')\n }}>\n \n \n \n See all your chapters\n {groups.length}\n \n )\n }\n }\n\n const renderUpgradeMenuItem = () => {\n return (\n !onPaidPlan() && (\n redirectToBilling({ accessMethod: 'navbar' })}>\n \n \n \n \n \n Upgrade to Pro!\n \n )\n )\n }\n\n return (\n \n \n \n \n \n {renderSpeakerAvatarText()}\n \n \n {renderUpgradeMenuItem()}\n {renderPrimaryGroupMenuItem()}\n {renderAllGroupsMenuItem()}\n {\n handleDropDownClose()\n history.push('/account')\n }}>\n \n \n \n Account Settings\n \n {\n handleDropDownClose()\n history.push('/help')\n }}>\n \n \n \n Help\n \n\n \n \n \n \n Log Out\n \n {isAdmin && }\n {isAdmin && (\n {\n handleDropDownClose()\n history.push('/admin')\n }}>\n \n \n \n Admin Panel\n \n )}\n \n )\n}\n\nexport default NewSettingsMenu\n","import { useLocation } from 'react-router-dom'\n\n/**\n * Matches a given path name against a specific link pattern.\n * This function checks if the path contains the specified link,\n * followed by an optional trailing slash or query parameters.\n *\n * @param {string} pathName - The path name to match against.\n * @param {string} link - The link pattern to match. Should not include leading or trailing slashes.\n * @param {boolean} [strictMatch=true] - Whether to enforce strict matching.\n * @returns {boolean} - Returns true if the path matches the link pattern, otherwise false.\n *\n * @example\n * // returns true\n * matchPath('base_url/leads', 'leads')\n * matchPath('base_url/something/leads/something-else', 'leads')\n * matchPath('base_url/leads?search=s', 'leads')\n * matchPath('base_url/event-planner/leads', 'leads')\n *\n * // returns false\n * matchPath('base_url/leads/integrations', 'leads', false)\n * matchPath('base_url/leadss/', 'leads')\n */\nconst matchPath = (pathName, link, strictMatch = true) => {\n const regex = strictMatch\n ? new RegExp(`/${link}($|\\\\?)`)\n : new RegExp(`/${link}($|\\\\/|\\\\?)`)\n return regex.test(pathName)\n}\n\nexport const usePageType = (strictMatch = true) => {\n const location = useLocation()\n const pathName = location.pathname\n\n if (matchPath(pathName, 'leads/follow-up', strictMatch)) {\n return 'emailCampaigns'\n }\n if (matchPath(pathName, 'codes/edit', false)) {\n return 'surveyBuilder'\n }\n if (matchPath(pathName, 'leads', strictMatch)) {\n return 'leads'\n }\n if (matchPath(pathName, 'codes', strictMatch)) {\n return 'codes'\n }\n if (matchPath(pathName, 'talks', strictMatch)) {\n return 'talks'\n }\n\n return null\n}\n\nexport const useIsEventPlannerPage = () => {\n const location = useLocation()\n return matchPath(location.pathname, 'event-planner', false)\n}\n\nexport const useIsChapterPage = () => {\n const location = useLocation()\n return matchPath(location.pathname, 'groups', false)\n}\n","var _path, _path2, _path3, _path4;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgCodesIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 22,\n height: 22,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.5 3.81396C0.5 1.98371 1.98371 0.5 3.81396 0.5H6.08639C7.91664 0.5 9.40034 1.98371 9.40034 3.81396V6.08639C9.40034 7.91664 7.91663 9.40034 6.08639 9.40034H3.81396C1.98371 9.40034 0.5 7.91663 0.5 6.08639V3.81396ZM3.81396 1.82558C2.71581 1.82558 1.82558 2.71581 1.82558 3.81396V6.08639C1.82558 7.18454 2.71581 8.07476 3.81396 8.07476H6.08639C7.18454 8.07476 8.07476 7.18454 8.07476 6.08639V3.81396C8.07476 2.71581 7.18454 1.82558 6.08639 1.82558H3.81396Z\",\n fill: \"#323A46\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.5996 3.81396C10.5996 1.98371 12.0833 0.5 13.9136 0.5H16.186C18.0162 0.5 19.5 1.98371 19.5 3.81396V6.08639C19.5 7.91664 18.0162 9.40034 16.186 9.40034H13.9136C12.0833 9.40034 10.5996 7.91663 10.5996 6.08639V3.81396ZM13.9136 1.82558C12.8154 1.82558 11.9252 2.71581 11.9252 3.81396V6.08639C11.9252 7.18454 12.8154 8.07476 13.9136 8.07476H16.186C17.2841 8.07476 18.1744 7.18454 18.1744 6.08639V3.81396C18.1744 2.71581 17.2841 1.82558 16.186 1.82558H13.9136Z\",\n fill: \"#323A46\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.5996 13.9133C10.5996 12.0831 12.0833 10.5994 13.9136 10.5994H16.186C18.0162 10.5994 19.5 12.0831 19.5 13.9133V16.1858C19.5 18.016 18.0162 19.4997 16.186 19.4997H13.9136C12.0833 19.4997 10.5996 18.016 10.5996 16.1858V13.9133ZM13.9136 11.9249C12.8154 11.9249 11.9252 12.8152 11.9252 13.9133V16.1858C11.9252 17.2839 12.8154 18.1741 13.9136 18.1741H16.186C17.2841 18.1741 18.1744 17.2839 18.1744 16.1858V13.9133C18.1744 12.8152 17.2841 11.9249 16.186 11.9249H13.9136Z\",\n fill: \"#323A46\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.5 13.9133C0.5 12.0831 1.98371 10.5994 3.81396 10.5994H6.08639C7.91664 10.5994 9.40034 12.0831 9.40034 13.9133V16.1858C9.40034 18.016 7.91663 19.4997 6.08639 19.4997H3.81396C1.98371 19.4997 0.5 18.016 0.5 16.1858V13.9133ZM3.81396 11.9249C2.71581 11.9249 1.82558 12.8152 1.82558 13.9133V16.1858C1.82558 17.2839 2.71581 18.1741 3.81396 18.1741H6.08639C7.18454 18.1741 8.07476 17.2839 8.07476 16.1858V13.9133C8.07476 12.8152 7.18454 11.9249 6.08639 11.9249H3.81396Z\",\n fill: \"#323A46\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCodesIcon);\nexport default __webpack_public_path__ + \"static/media/codesIcon.f76e9765.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgLeadsIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 22,\n height: 22,\n viewBox: \"0 0 24 23.999\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n id: \"inbox\",\n d: \"M55.077,285.481c-6.059,0-8.647-2.589-8.647-8.65v-2.1a.822.822,0,0,1-.011-.136.8.8,0,0,1,.011-.134v-4.33c0-6.062,2.589-8.651,8.647-8.651h6.694c6.059,0,8.647,2.589,8.647,8.651v6.7c0,6.061-2.589,8.65-8.647,8.65Zm-6.973-8.65c0,5.145,1.83,6.976,6.973,6.976h6.694c5.144,0,6.973-1.83,6.973-6.976v-1.4H65.375a1.372,1.372,0,0,0-1.249.77l-.994,2a3.046,3.046,0,0,1-2.744,1.7H56.45a2.936,2.936,0,0,1-2.745-1.7l-.993-2a1.374,1.374,0,0,0-1.25-.77H48.1Zm3.358-3.07a3.046,3.046,0,0,1,2.745,1.7l.993,2a1.3,1.3,0,0,0,1.25.77h3.938a1.372,1.372,0,0,0,1.249-.77l.994-2a3.046,3.046,0,0,1,2.744-1.7h3.369v-3.627c0-5.146-1.83-6.976-6.973-6.976H55.077c-5.144,0-6.973,1.83-6.973,6.976v3.627Zm4.173-1.674a.837.837,0,0,1,0-1.675h5.579a.837.837,0,0,1,0,1.675Zm.938-3.348a.837.837,0,1,1-.011-1.674h3.715a.843.843,0,0,1,.837.837.834.834,0,0,1-.826.838Z\",\n transform: \"translate(-46.418 -261.482)\",\n fill: \"#323A46\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLeadsIcon);\nexport default __webpack_public_path__ + \"static/media/leadsIcon.3bb0a0f5.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgResourcesIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 22,\n height: 22,\n viewBox: \"0 0 20 22\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.76305 20.9795L9.44889 18.352C9.80082 18.1967 10.2019 18.1967 10.5538 18.352L15.2404 20.9795C16.0341 21.5092 17.0532 21.5647 17.8998 21.1245C18.6895 20.584 19.1316 19.6637 19.0598 18.7094L19.0598 5.04495C19.0678 2.58919 17.0878 0.589705 14.6321 0.57373H5.36772C2.91218 0.590104 0.93236 2.58936 0.939999 5.04495V18.7109C0.868214 19.6652 1.31026 20.5855 2.10004 21.126C2.43685 21.3259 2.82201 21.4297 3.21368 21.4261C3.76036 21.4157 4.2947 21.2617 4.76306 20.9795H4.76305ZM8.75792 17.0811L4.07136 19.7086C3.71828 19.9768 3.25012 20.0396 2.83882 19.8739C2.50192 19.5884 2.33224 19.1519 2.38785 18.7139L2.38786 5.04499C2.385 3.39001 3.71848 2.0429 5.37347 2.02896L14.6342 2.02891C16.2895 2.0425 17.6234 3.3897 17.6206 5.04504L17.6206 18.711C17.7587 19.155 17.5741 19.6359 17.1743 19.8734C16.7745 20.1109 16.2639 20.043 15.94 19.7093L11.2534 17.0818C10.4697 16.6809 9.54098 16.6809 8.75719 17.0818L8.75792 17.0811ZM12.8971 8.81552C13.1414 8.7264 13.3195 8.51377 13.3645 8.25768C13.4095 8.0016 13.3144 7.74095 13.1151 7.57399C12.9158 7.40703 12.6426 7.35901 12.3983 7.44814C10.8505 8.01138 9.15371 8.01138 7.60589 7.44814C7.42604 7.38287 7.22757 7.39207 7.05455 7.47376C6.88152 7.55545 6.74827 7.70281 6.68438 7.88313C6.61818 8.06421 6.62686 8.26423 6.70849 8.43894C6.79013 8.61365 6.93799 8.74861 7.11939 8.81402C8.98528 9.49961 11.0341 9.49961 12.9 8.81406L12.8971 8.81552Z\",\n fill: \"#323A46\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgResourcesIcon);\nexport default __webpack_public_path__ + \"static/media/resourcesIcon.5d930ddc.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\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 * as React from \"react\";\n\nfunction SvgGroupEvents(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 26.411,\n viewBox: \"0 0 24 26.411\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n id: \"cal\",\n d: \"M1059.581,703.2c-4.493,0-7.077-2.58-7.077-7.064V685.7c0-4.167,2.232-6.689,6.153-7.025v-.96a.923.923,0,0,1,1.847,0v.921h8v-.921a.923.923,0,0,1,1.846,0v.96c3.922.335,6.154,2.858,6.154,7.025v10.441c0,4.484-2.584,7.064-7.077,7.064Zm-5.231-7.064c0,3.514,1.71,5.221,5.231,5.221h9.847c3.52,0,5.231-1.707,5.231-5.221v-8.8H1054.35Zm20.307-10.638c-.057-3.064-1.47-4.7-4.307-4.98v.878a.923.923,0,0,1-1.846,0v-.921h-8v.921a.923.923,0,0,1-1.847,0v-.878c-2.836.279-4.248,1.916-4.306,4.98Zm-6.719,11.511a1.155,1.155,0,0,1-.259-.4,1.157,1.157,0,0,1,0-.934,1.156,1.156,0,0,1,.259-.4,1.232,1.232,0,0,1,1.107-.332.733.733,0,0,1,.234.075.861.861,0,0,1,.222.11,1.679,1.679,0,0,1,.185.147,1.235,1.235,0,0,1-1.748,1.744Zm-4.307,0a1.289,1.289,0,0,1-.357-.873,1.219,1.219,0,0,1,.1-.467,1.158,1.158,0,0,1,.259-.4,1.29,1.29,0,0,1,1.747,0,1.138,1.138,0,0,1,.259.4,1.219,1.219,0,0,1,.1.467,1.236,1.236,0,0,1-2.1.873Zm-3.9.259a1.416,1.416,0,0,1-.406-.259,1.289,1.289,0,0,1-.357-.873,1.219,1.219,0,0,1,.1-.467,1.141,1.141,0,0,1,.259-.4,1.234,1.234,0,1,1,.874,2.1A1.241,1.241,0,0,1,1059.729,697.27Zm8.615-4.3a1.276,1.276,0,0,1-.406-.259l-.147-.184a.917.917,0,0,1-.111-.221.766.766,0,0,1-.074-.221,1.916,1.916,0,0,1-.025-.247,1.287,1.287,0,0,1,.357-.871,1.257,1.257,0,0,1,.406-.258,1.231,1.231,0,0,1,1.342.258,1.292,1.292,0,0,1,.356.871,1.906,1.906,0,0,1-.024.247.807.807,0,0,1-.075.221.925.925,0,0,1-.11.221,1.849,1.849,0,0,1-.147.184,1.294,1.294,0,0,1-.874.357A1.223,1.223,0,0,1,1068.344,692.97Zm-4.307,0a1.279,1.279,0,0,1-.406-.259,1.264,1.264,0,0,1-.357-.872,1.227,1.227,0,0,1,.1-.467,1.441,1.441,0,0,1,.259-.4,1.26,1.26,0,0,1,.406-.258,1.233,1.233,0,0,1,1.341.258,1.288,1.288,0,0,1,.357.871,1.775,1.775,0,0,1-.025.247.773.773,0,0,1-.074.221.949.949,0,0,1-.11.221,1.7,1.7,0,0,1-.148.184,1.291,1.291,0,0,1-.874.357A1.222,1.222,0,0,1,1064.036,692.97Zm-4.307,0a1.179,1.179,0,0,1-.763-1.13,1.219,1.219,0,0,1,.1-.467,1.42,1.42,0,0,1,.259-.406,1.274,1.274,0,0,1,1.747,0,1.291,1.291,0,0,1,.357.873,1.922,1.922,0,0,1-.025.246.765.765,0,0,1-.073.221.927.927,0,0,1-.112.221,1.972,1.972,0,0,1-.147.185,1.3,1.3,0,0,1-.874.356A1.219,1.219,0,0,1,1059.729,692.97Z\",\n transform: \"translate(-1052.504 -676.791)\",\n fill: \"#fff\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGroupEvents);\nexport default __webpack_public_path__ + \"static/media/group-events.08442380.svg\";\nexport { ForwardRef as ReactComponent };","import { useContext, useState, Fragment } from 'react'\nimport { useLocation, useHistory } from 'react-router-dom'\nimport { styled } from '@mui/system'\nimport {\n ListItem,\n ListItemButton,\n ListItemIcon,\n ListItemText,\n Typography,\n Tooltip,\n Dialog,\n useTheme,\n useMediaQuery,\n} from '@mui/material'\n\nimport { GroupContext } from '../groups/groupContext'\nimport { AuthenticationContext } from '../authentication/authenticationContext'\n\nimport { usePermissionHelper } from '../../utils/permission_helper'\nimport { useIsChapterPage } from '../../utils/pathHelper'\nimport { useBillingRedirect } from '../../hooks/useBillingRedirect'\nimport ModalCloseIcon from '../common/ModalCloseIcon'\nimport UpcomingWebinars, { WEBINAR_TYPES } from '../helpCenter/UpcomingWebinars'\n\nimport TableChip from '../common/TableChip'\n\nimport { ReactComponent as NewIcon } from '../../icons/navIcons/newIcon.svg'\n// import { ReactComponent as DashboardIcon } from '../../icons/navIcons/dashboardIcon.svg'\nimport { ReactComponent as TalksIcon } from '../../icons/navIcons/talksIcon.svg'\nimport { ReactComponent as CodesIcon } from '../../icons/navIcons/codesIcon.svg'\nimport { ReactComponent as LeadsIcon } from '../../icons/navIcons/leadsIcon.svg'\nimport { ReactComponent as ResourcesIcon } from '../../icons/navIcons/resourcesIcon.svg'\nimport { ReactComponent as CommunityIcon } from '../../icons/navIcons/communityIcon.svg'\nimport { ReactComponent as GiftIcon } from '../../icons/giftIcon.svg'\nimport { ReactComponent as GroupEventsIcon } from '../../icons/group-events.svg'\nimport { ReactComponent as SettingsIcon } from '../../icons/navIcons/settingsIcon.svg'\nimport { ReactComponent as ExternalLinkIcon } from '../../icons/externalLinkIcon_16x16.svg'\nimport { ReactComponent as HeadphoneIcon } from '../../icons/headphoneIcon.svg'\n\nimport HelpOutlineIcon from '@mui/icons-material/HelpOutline'\n\nconst MenuItemIconContainer = styled('div')({\n display: 'flex',\n alightItems: 'center',\n position: 'relative',\n})\n\nconst MultiContentWrapper = styled('span')({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n})\n\nconst BadgeIcon = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n top: '-6px',\n right: '-7px',\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n border: `0.75px solid ${theme.palette.base.white}`,\n backgroundColor: theme.palette.secondary.main,\n}))\n\nconst StyledGiftIcon = styled(GiftIcon)(({ theme }) => ({\n stroke: theme.palette.neutral.dark,\n width: '22px',\n height: '22px',\n}))\n\nconst MenuItem = styled(ListItemButton, {\n shouldForwardProp: (prop) =>\n prop !== 'selected' && prop !== 'open' && prop !== 'spacer',\n})(({ theme, open, selected, spacer }) => ({\n minHeight: 48,\n justifyContent: open ? 'initial' : 'center',\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1),\n backgroundColor: selected && theme.palette.secondary.main,\n borderRadius: theme.shape.borderRadius.xs,\n '&:hover': {\n backgroundColor: selected && theme.palette.secondary.light,\n },\n [theme.breakpoints.down('sm')]: {\n minHeight: spacer ? 24 : 48,\n padding: spacer ? 0 : '',\n },\n}))\n\nconst IconWrapper = styled(ListItemIcon, {\n shouldForwardProp: (prop) =>\n prop !== 'selected' && prop !== 'open' && prop !== 'type',\n})(({ theme, open, selected, type }) => ({\n minWidth: 0,\n marginRight: open ? theme.spacing(1.5) : 0,\n justifyContent: 'center',\n '& svg path': {\n fill:\n type === 'Talks' || type === 'Settings' || type === 'Refer & Earn'\n ? ''\n : selected\n ? theme.palette.base.white\n : '',\n stroke:\n type === 'Talks' || type === 'Settings' || type === 'Refer & Earn'\n ? selected\n ? theme.palette.base.white\n : ''\n : '',\n },\n}))\n\nconst MenuItemText = styled(ListItemText, {\n shouldForwardProp: (prop) => prop !== 'selected' && prop !== 'open',\n})(({ theme, open, selected }) => ({\n display: !open && 'none',\n margin: 0,\n p: {\n fontWeight: 600,\n color: selected && theme.palette.base.white,\n },\n}))\n\nconst SubMenuContainer = styled('div')(({ theme, selected }) => ({\n display: 'flex',\n flexDirection: 'column',\n paddingLeft: theme.spacing(3),\n marginTop: selected ? theme.spacing(1) : 0,\n height: selected ? 'auto' : 0,\n}))\n\nconst SubMenuItem = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(1),\n paddingLeft: theme.spacing(3),\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: theme.palette.surface.subtle,\n },\n transition: theme.transitions.create('background-color', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n}))\n\nconst SubMenuItemIcon = styled('div')(({ theme, selected }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n border: selected\n ? `1px solid ${theme.palette.neutral.extraLight}`\n : `2px solid ${theme.palette.neutral.extraLight}`,\n backgroundColor: selected ? theme.palette.secondary.main : 'transparent',\n}))\n\nconst SubMenuItemText = styled(Typography)(({ theme, selected }) => ({\n marginLeft: theme.spacing(1),\n color: selected ? theme.palette.secondary.main : theme.palette.text.navText,\n}))\n\nconst NavItems = ({\n open,\n closeDrawer,\n isScrolling,\n setIsScrolling,\n touchStartY,\n handleAutoOpenDrawer,\n}) => {\n const location = useLocation()\n const history = useHistory()\n const { canAccessTeams } = usePermissionHelper()\n const pathName = location.pathname\n const isChapterPage = useIsChapterPage()\n const isMobile = useMediaQuery((theme) => theme.breakpoints.down('sm'))\n const {\n groupState: { selectedGroup },\n } = useContext(GroupContext)\n const {\n updateCounter,\n authData: {\n user,\n user: {\n counters: {\n unviewedEvents,\n unviewedLeads,\n unviewedCommunityNotifications,\n },\n },\n },\n } = useContext(AuthenticationContext)\n const [webinarModalOpen, setWebinarModalOpen] = useState(false)\n const redirectToBilling = useBillingRedirect()\n\n const GROUP_NAV_ITEMS = [\n {\n icon: ,\n content: isChapterPage ? 'My Chapters' : 'Dashboard',\n isSelected: pathName === '/dashboard' || pathName === '/groups',\n handleClick: isChapterPage\n ? () => history.push('/groups')\n : () => history.push('/dashboard'),\n closeOnClick: true,\n },\n ...(selectedGroup\n ? [\n {\n icon: ,\n content: 'Events',\n isSelected: pathName.includes('events'),\n disabled: !selectedGroup,\n // NOTE: this is kind of redundant since we're already checking for selectedGroup above\n // but I'm leaving it here for now in case we want to show the menu item regardless of whether a group is selected\n handleClick: () =>\n selectedGroup &&\n history.push(`/groups/${selectedGroup?.id}/events`),\n },\n ]\n : []),\n {\n icon: <>,\n content: '',\n isSelected: false,\n disabled: true,\n },\n {\n icon: ,\n content: 'Settings',\n isSelected: pathName.includes('account'),\n handleClick: () => history.push('/account/settings'),\n },\n // {\n // key: 2,\n // icon: ,\n // content: 'Chapters',\n // isSelected: pathName.includes('members'),\n // link: `/members`,\n // },\n ]\n\n const SPEAKER_NAV_ITEMS = [\n {\n icon: ,\n content: 'Home',\n isSelected: pathName === '/dashboard' || pathName === '/',\n handleClick: () => history.push('/dashboard'),\n closeOnClick: true,\n helperContent: 'Get updates here',\n },\n {\n icon: <>,\n content: '',\n isSelected: false,\n disabled: true,\n spacer: true,\n },\n {\n icon: ,\n content: 'Codes',\n isSelected: pathName.includes('codes'),\n handleClick: () => history.push('/codes'),\n hidden: user?.isEventPlanner,\n closeOnClick: false,\n helperContent: 'Create your Talkadot surveys',\n subMenuItems: [\n {\n icon: <>,\n content: 'Your Codes',\n isSelected: pathName === '/codes',\n handleClick: () => history.push('/codes'),\n closeOnClick: true,\n },\n {\n icon: <>,\n content: 'Add a Code',\n isSelected: pathName.includes('codes/edit'),\n handleClick: () => history.push('/codes/edit'),\n closeOnClick: true,\n },\n ],\n },\n {\n icon:\n !open && !selectedGroup && unviewedEvents > 0 ? (\n \n \n \n \n ) : (\n \n ),\n identifier: 'Talks',\n content:\n !selectedGroup && unviewedEvents > 0 ? (\n \n Talks\n \n \n ) : (\n 'Talks'\n ),\n isSelected: pathName.includes('talks'),\n handleClick: () => history.push('/talks'),\n hidden: user?.isEventPlanner,\n closeOnClick: false,\n helperContent: 'View your audience responses',\n subMenuItems: [\n {\n icon: <>,\n content: 'My Talks',\n isSelected: pathName === '/talks',\n handleClick: () => history.push('/talks'),\n closeOnClick: true,\n },\n {\n icon: <>,\n content: 'My speech topics',\n isSelected: pathName === '/talks/speech-topics',\n handleClick: () => history.push('/talks/speech-topics'),\n closeOnClick: true,\n },\n {\n icon: <>,\n content: 'Add a speech topic',\n isSelected: pathName === '/talks/speech-topic/new',\n handleClick: () => history.push('/talks/speech-topic/new'),\n closeOnClick: true,\n },\n {\n icon: <>,\n content: 'My Media Kit',\n shouldHide: !user?.isAdmin,\n isSelected: pathName === '/talks/media-kit',\n handleClick: () => history.push('/talks/media-kit'),\n closeOnClick: true,\n },\n ],\n },\n {\n icon:\n !open && !selectedGroup && unviewedLeads > 0 ? (\n \n \n \n \n ) : (\n \n ),\n content:\n !selectedGroup && unviewedLeads > 0 ? (\n \n Leads\n \n \n ) : (\n 'Leads'\n ),\n isSelected: pathName.includes('leads'),\n handleClick: () => history.push('/leads'),\n closeOnClick: false,\n helperContent: 'Access bookings, referrals & email opt-ins',\n subMenuItems: [\n {\n icon: <>,\n content: 'My Leads',\n isSelected: pathName === '/leads',\n handleClick: () => history.push('/leads'),\n closeOnClick: true,\n },\n {\n icon: <>,\n content: 'Leads followup',\n isSelected: pathName.includes('leads/follow-up'),\n handleClick: () => history.push('/leads/follow-up'),\n closeOnClick: true,\n },\n {\n icon: <>,\n content: 'Integrations',\n isSelected: pathName.includes('leads/integrations'),\n handleClick: () => history.push('/leads/integrations'),\n closeOnClick: true,\n },\n ],\n },\n {\n icon: <>,\n content: '',\n isSelected: false,\n disabled: true,\n spacer: true,\n },\n {\n icon: ,\n content: (\n \n Resources\n \n \n ),\n isSelected: pathName.includes('resources'),\n helperContent: 'Learn how to use Talkadot',\n // Take them to resources even if they aren't a user in circles, since\n // the resource pages are public and dont require an account\n handleClick: () =>\n window.open('https://talk.talkadot.com/c/resources', '_blank'),\n closeOnClick: true,\n },\n {\n icon:\n !open && unviewedCommunityNotifications > 0 ? (\n \n \n \n \n ) : (\n \n ),\n content:\n unviewedCommunityNotifications > 0 ? (\n \n Community\n \n \n ) : (\n \n Community\n \n \n ),\n isSelected: pathName.includes('community'),\n handleClick: () => {\n updateCounter({ unviewedCommunityNotifications: 0 })\n window.open('https://talk.talkadot.com/sign_in', '_blank')\n },\n helperContent: 'Connect with other Talkadotters',\n closeOnClick: true,\n },\n {\n icon: ,\n content: 'Onboarding',\n isSelected: pathName.includes('onboarding'),\n handleClick: () => setWebinarModalOpen(true),\n // This needs to be false so the modal doesn't close automatically on click of this nav item\n closeOnClick: false,\n helperContent: 'Join a live training session',\n },\n {\n icon: ,\n identifier: 'Refer & Earn',\n content: 'Refer & Earn',\n isSelected: pathName.includes('refer-and-earn'),\n handleClick: () => history.push('/refer-and-earn'),\n closeOnClick: true,\n helperContent: 'Invite friends and earn rewards',\n },\n {\n icon: <>,\n content: '',\n isSelected: false,\n disabled: true,\n spacer: true,\n },\n {\n icon: ,\n identifier: 'Settings',\n content: 'Settings',\n isSelected: pathName.includes('account'),\n handleClick: () => history.push('/account/settings'),\n closeOnClick: false,\n helperContent: 'Manage your account details',\n subMenuItems: [\n {\n icon: <>,\n content: 'Account',\n isSelected: pathName.includes('account/settings'),\n handleClick: () => history.push('/account/settings'),\n closeOnClick: true,\n },\n {\n icon: <>,\n content: 'Plan & Billing',\n isSelected: pathName.includes('account/billing'),\n handleClick: () => redirectToBilling({ accessMethod: 'navbar' }),\n closeOnClick: true,\n },\n ].concat(\n canAccessTeams()\n ? [\n {\n icon: <>,\n content: 'Team Management',\n isSelected: pathName.includes('account/team'),\n handleClick: () => history.push('/account/team'),\n closeOnClick: true,\n },\n ]\n : []\n ),\n },\n {\n icon: ,\n identifier: 'help',\n content: 'Help',\n isSelected: pathName.includes('help'),\n handleClick: () => history.push('/help'),\n closeOnClick: false,\n helperContent: 'Contact us for any assistance',\n },\n ]\n\n const handleOnTouch = ({ handleClick, closeOnClick }) => {\n handleClick()\n\n if (open && closeOnClick & isMobile) {\n closeDrawer()\n }\n }\n\n const handleTouchStart = (e) => {\n touchStartY.current = e.touches[0].clientY\n setIsScrolling(false)\n }\n\n const handleTouchMove = (e) => {\n const touchCurrentY = e.touches[0].clientY\n const deltaY = Math.abs(touchCurrentY - touchStartY.current)\n if (deltaY > 5) {\n // Adjust this threshold as needed\n setIsScrolling(true)\n }\n }\n\n const handleTouchEnd = ({ handleClick, closeOnClick }) => {\n if (!isScrolling) {\n handleOnTouch({ handleClick, closeOnClick })\n }\n setIsScrolling(false)\n }\n\n const renderNavItems = () => {\n const navItems =\n pathName.includes('groups') && !pathName.includes('event-planner')\n ? GROUP_NAV_ITEMS\n : SPEAKER_NAV_ITEMS\n\n return navItems.map(\n (\n {\n icon,\n identifier,\n content,\n isSelected,\n disabled,\n handleClick,\n subMenuItems,\n spacer,\n hidden,\n closeOnClick,\n helperContent,\n },\n i\n ) => {\n return hidden ? (\n \n ) : (\n \n \n \n handleClick()}\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={() =>\n handleTouchEnd({ handleClick, closeOnClick })\n }\n onPointerEnter={handleAutoOpenDrawer}>\n \n {icon}\n \n \n \n \n \n {open && subMenuItems && (\n \n {isSelected &&\n subMenuItems\n .filter((item) => !item.shouldHide)\n .map(\n (\n { content, isSelected, handleClick, closeOnClick },\n j\n ) => (\n handleClick()}\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={() =>\n handleTouchEnd({\n isSelected,\n handleClick,\n closeOnClick,\n })\n }>\n \n \n {content}\n \n \n )\n )}\n \n )}\n \n )\n }\n )\n }\n\n return (\n <>\n {renderNavItems()}\n setWebinarModalOpen(false)}\n open={webinarModalOpen}>\n setWebinarModalOpen(false)} />\n \n \n \n )\n}\n\nexport default NavItems\n","import { useState, useRef } from 'react'\nimport { styled } from '@mui/system'\nimport { Drawer, List } from '@mui/material'\n\nimport NavItems from './NavItems'\n\nimport { upperNavHeightMobile } from '../../styles/layoutNavConstants'\n\nconst DrawerHeaderLayout = styled('div')(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(1),\n minHeight: upperNavHeightMobile,\n}))\n\nconst BurgerMenu = ({ open, handleAutoOpenDrawer, closeDrawer }) => {\n const [isScrolling, setIsScrolling] = useState(false)\n const touchStartY = useRef(0)\n\n return (\n \n \n \n \n \n \n )\n}\n\nexport default BurgerMenu\n","import { Link, useLocation } from 'react-router-dom'\nimport { styled } from '@mui/system'\nimport { Box, Button } from '@mui/material'\n\nimport {\n makeReferralLink,\n makeRegistrationLink,\n extractShortlinkFromUrl,\n} from '../common/helpers'\n\nconst UnAuthContainer = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n padding: '1rem 0',\n img: {\n width: '120px',\n },\n})\n\nconst LogoLink = styled('a')({\n display: 'flex',\n alignItems: 'center',\n})\n\nconst NavButtonWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n a: {\n textDecoration: 'none',\n },\n 'a:first-child': {\n marginRight: '1.125rem',\n },\n}))\n\nconst NavButton = styled(Button)(({ type, theme }) => ({\n textTransform: 'none',\n color: type === 'register' ? theme.palette.base.white : '',\n fontSize: '1rem',\n height: '46px',\n}))\n\nconst UpperNavUnAuth = () => {\n const location = useLocation()\n const signupLinkUrl = () => {\n // if the current page is the public profile page or the event report page, we want the signup link to point to the referral link for the owner of the profile\n if (location.pathname.includes('/s/')) {\n const shortlink = extractShortlinkFromUrl(location.pathname)\n const referralLink = makeReferralLink(shortlink)\n\n return referralLink\n }\n\n return makeRegistrationLink()\n }\n return (\n \n \n \n \n \n \n \n Sign In\n \n \n \n \n Free Sign Up\n \n \n \n \n )\n}\n\nexport default UpperNavUnAuth\n","import { useContext } from 'react'\nimport { styled } from '@mui/system'\nimport { Typography } from '@mui/material'\nimport { AdminContext } from './adminContext'\n\nconst BannerContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: theme.palette.error.main,\n color: theme.palette.base.white,\n flex: 1,\n height: '100%',\n}))\n\nconst StyledTypography = styled(Typography)(({ theme }) => ({\n color: theme.palette.base.white,\n}))\n\nconst StopImpersonating = styled('span')(({ theme }) => ({\n cursor: 'pointer',\n textDecoration: 'underline',\n}))\n\nconst ImpersonationBanner = () => {\n const { adminState, stopImpersonatingUser } = useContext(AdminContext)\n const { impersonation } = adminState\n\n return (\n \n \n Currently viewing as{' '}\n \n {impersonation?.user?.first_name} {impersonation?.user?.last_name} -{' '}\n \n \n Stop Viewing\n \n \n \n )\n}\n\nexport default ImpersonationBanner\n","import { useState, useContext } from 'react'\nimport { Link } from 'react-router-dom'\nimport { styled } from '@mui/system'\nimport {\n AppBar,\n Toolbar,\n Button,\n Avatar,\n Box,\n Typography,\n IconButton,\n useMediaQuery,\n} from '@mui/material'\n\nimport { ReactComponent as CaretDown } from '../../icons/caretDown_16x16.svg'\nimport { ReactComponent as BurgerMenuIcon } from '../../icons/burgerIcon_16x16.svg'\n\nimport NewSettingsMenu from './NewSettingsMenu'\nimport BurgerMenu from './BurgerMenu'\nimport UpperNavUnAuth from './UpperNavUnAuth'\nimport ImpersonationBanner from '../admin/ImpersonationBanner'\n\nimport {\n drawerWidth,\n drawerWidthCollapsed,\n upperNavHeight,\n upperNavHeightMobile,\n} from '../../styles/layoutNavConstants'\n\nimport { GroupContext } from '../groups/groupContext'\nimport { AdminContext } from '../admin/adminContext'\n\nconst StyledAppBar = styled(AppBar, {\n shouldForwardProp: (prop) => prop !== 'open' && prop !== 'loggedInUser',\n})(({ theme, open, loggedInUser }) => ({\n justifyContent: 'center',\n backgroundColor: theme.palette.base.white,\n marginLeft: open ? drawerWidth : drawerWidthCollapsed,\n height: upperNavHeight,\n width: loggedInUser\n ? open\n ? `calc(100% - ${drawerWidth}px)`\n : `calc(100% - ${drawerWidthCollapsed}px)`\n : '100%',\n transition: theme.transitions.create(['width', 'margin'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n [theme.breakpoints.down('sm')]: {\n marginLeft: '0',\n height: upperNavHeightMobile,\n width: '100%',\n zIndex: theme.zIndex.drawer + 1,\n },\n}))\n\nconst StyledToolbar = styled(Toolbar)(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n [theme.breakpoints.up('sm')]: {\n display: 'flex',\n justifyContent: 'flex-end',\n '&.MuiToolbar-gutters': {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n },\n}))\n\nconst BurgerMenuButton = styled(IconButton)(({ theme }) => ({\n marginRight: theme.spacing(2),\n}))\n\nconst StyledBurgerMenuIcon = styled(BurgerMenuIcon)({\n width: '22px',\n height: '22px',\n})\n\nconst BannerToolbar = styled(Toolbar)({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n})\n\nconst MainLogo = styled('img')({\n width: '100px',\n height: 'auto',\n cursor: 'pointer',\n})\n\nconst LeftNavContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n}))\n\nconst RightNavContainer = styled(Button)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n cursor: 'pointer',\n position: 'relative',\n minWidth: '258px',\n maxWidth: '400px',\n [theme.breakpoints.down('sm')]: {\n minWidth: '0',\n },\n}))\n\nconst CaretContainer = styled('div')(({ theme, dropDownOpen }) => ({\n display: 'flex',\n alignItems: 'center',\n height: '15px',\n fontSize: '15px',\n color: theme.palette.nav.expandIcon,\n transform: dropDownOpen ? 'rotate(180deg)' : 'rotate(0deg)',\n transition: 'transform 0.2s ease-in-out',\n}))\n\nconst ProfileInfoContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n fontFamily: 'Figtree, sans-serif',\n paddingRight: theme.spacing(2),\n}))\n\nconst StyledAvatar = styled(Avatar)({\n // Note: the image width and height here is a solution to\n // prevent a small black border to show up on the left and top\n // of the image in certain occassions.\n width: 40,\n height: 40,\n img: {\n width: '102%',\n height: '102%',\n },\n})\n\nconst AvatarContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n marginRight: theme.spacing(1),\n textAlign: 'center',\n [theme.breakpoints.down('sm')]: {\n marginRight: 0,\n },\n}))\n\nconst AvatarNameContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n})\n\nconst NamePlanContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n justifyContent: 'center',\n [theme.breakpoints.down('sm')]: {\n display: 'none',\n },\n}))\n\nconst NameText = styled(Typography)({\n textAlign: 'left',\n fontWeight: '600',\n})\n\nconst UpperNav = ({\n open,\n user,\n toggleDrawer,\n closeDrawer,\n handleAutoOpenDrawer,\n}) => {\n const [anchorEl, setAnchorEl] = useState(null)\n const isMobileScreen = useMediaQuery((theme) => theme.breakpoints.down('sm'))\n const {\n groupState: { selectedGroup },\n } = useContext(GroupContext)\n const { adminState } = useContext(AdminContext)\n const { impersonation } = adminState\n\n const dropDownOpen = Boolean(anchorEl)\n\n const handleDropDownOpen = (event) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleDropDownClose = () => {\n setAnchorEl(null)\n }\n\n const renderNavContent = () => {\n if (user?.id) {\n return (\n <>\n {isMobileScreen && (\n \n toggleDrawer()}\n aria-label=\"open nav menu\">\n \n \n \n \n \n \n \n )}\n \n \n \n \n \n \n \n \n {selectedGroup\n ? selectedGroup.name\n : (user?.first_name || '') +\n ' ' +\n (user?.last_name || '')}\n \n \n {user?.membership?.plan?.name}{' '}\n {user.membership.isTrialing ? 'Trial ' : 'Plan'}\n \n \n \n \n \n \n \n \n \n \n )\n } else {\n return \n }\n }\n\n const renderAlertBanner = () => {\n if (impersonation?.isActive) {\n return (\n \n \n \n )\n }\n }\n\n return (\n \n {renderAlertBanner()}\n {renderNavContent()}\n \n )\n}\n\nexport default UpperNav\n","import { useContext } from 'react'\nimport { useHistory } from 'react-router-dom'\nimport { styled } from '@mui/system'\nimport {\n Typography,\n LinearProgress,\n IconButton,\n // Tooltip\n} from '@mui/material'\n\nimport UpgradeButton from './UpgradeButton'\n\nimport { ReactComponent as ArrowLeft } from '../../icons/arrowLeft.svg'\n// import { ReactComponent as InfoIcon } from '../../icons/infoIcon_16x16.svg'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport {\n usePermissionHelper,\n OFFER_CODE_LIMIT,\n EMAIL_CAMPAIGNS,\n LEADS_LIMIT,\n CUSTOM_QUESTION_LIMIT,\n} from '../../utils/permission_helper'\nimport { usePageType } from '../../utils/pathHelper'\nimport { useBillingRedirect } from '../../hooks/useBillingRedirect'\n\nconst UpgradeWidgetContainer = styled('div', {\n shouldForwardProp: (prop) => prop !== 'status',\n})(({ theme, status }) => ({\n display: 'grid',\n gridTemplateColumns: 'auto 1fr',\n gap: theme.spacing(1.125),\n padding: theme.spacing(2, 1.125),\n cursor: 'pointer',\n backgroundColor:\n status === 'urgent'\n ? theme.palette.primary.semiDark\n : theme.palette.neutral.semiDark,\n borderRadius: theme.shape.borderRadius.sm,\n}))\n\nconst ConsumptionContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n})\n\nconst Title = styled(Typography)(({ theme }) => ({\n color: theme.palette.base.white,\n fontWeight: '600',\n textWrap: 'wrap',\n}))\n\nconst SubTitle = styled(Typography, {\n shouldForwardProp: (prop) => prop !== 'status',\n})(({ theme, status }) => ({\n color:\n status === 'urgent'\n ? theme.palette.base.white\n : theme.palette.neutral.light,\n marginBottom: theme.spacing(1.5),\n}))\n\nconst StyledLinearProgress = styled(LinearProgress)(({ theme }) => ({\n border: `1px solid ${theme.palette.base.white}`,\n borderRadius: '18px',\n height: '18px',\n marginBottom: theme.spacing(1.5),\n}))\n\nconst CtaContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: theme.spacing(1),\n}))\n\nconst CtaText = styled(Typography)(({ theme }) => ({\n color: theme.palette.base.white,\n textWrap: 'wrap',\n}))\n\nconst ArrowButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'status' && prop !== 'renderCta',\n})(({ theme, status, renderCta }) => ({\n visibility: renderCta ? 'visible' : 'hidden',\n transform: 'rotate(180deg)',\n backgroundColor:\n status === 'urgent'\n ? theme.palette.primary.main\n : theme.palette.neutral.main,\n svg: {\n path: {\n stroke: theme.palette.base.white,\n },\n },\n '&:hover': {\n backgroundColor:\n status === 'urgent'\n ? theme.palette.primary.light\n : theme.palette.neutral.semiLight,\n },\n}))\n\n// const ToolTipContentWrapper = styled('div')(({ theme }) => ({\n// display: 'flex',\n// alignItems: 'center',\n// gap: '4px',\n// }))\n\n// const StyledInfoIcon = styled(InfoIcon, {\n// shouldForwardProp: (prop) => prop !== 'status',\n// })(({ theme, status }) => ({\n// // fill:\n// // status === 'urgent'\n// // ? theme.palette.base.white\n// // : theme.palette.neutral.light,\n// // stroke:\n// // status === 'urgent'\n// // ? theme.palette.base.white\n// // : theme.palette.neutral.light,\n// }))\n\nconst pageTypeToPermissionDict = {\n codes: OFFER_CODE_LIMIT,\n leads: LEADS_LIMIT,\n emailCampaigns: EMAIL_CAMPAIGNS,\n surveyBuilder: CUSTOM_QUESTION_LIMIT,\n}\n\nconst permissionWidgetData = (\n { type, consumed, limit, enabled, consumedPercentage },\n shouldShowUpgrades\n) => {\n let data\n const limitExceeded = consumed >= limit\n const renderCta = shouldShowUpgrades\n\n const commonData = {\n consumedPercentage: consumedPercentage(),\n limitExceeded,\n renderCta,\n }\n\n switch (type) {\n case 'LEADS_LIMIT':\n data = {\n title: limitExceeded ? 'Contact limit exceeded' : 'Contacts collected',\n subTitle: `${consumed}/${limit}`,\n // \n // \n // {`${consumed}/${limit}`}\n // \n // \n // \n ctaText: shouldShowUpgrades\n ? 'Upgrade for more contacts'\n : 'Contact us at hello@talkadot.com for more',\n upgradeHelperText: shouldShowUpgrades\n ? 'Upgrade for more contacts'\n : '',\n }\n break\n case 'OFFER_CODE_LIMIT':\n data = {\n title: limitExceeded ? 'Code limit reached' : 'Codes created',\n subTitle: `${consumed}/${limit}`,\n ctaText: shouldShowUpgrades\n ? 'Upgrade for more codes'\n : 'Contact us at hello@talkadot.com for more',\n upgradeHelperText: shouldShowUpgrades ? 'Upgrade for more codes' : '',\n }\n break\n case 'EMAIL_CAMPAIGNS':\n if (enabled) {\n data = {\n title: limitExceeded\n ? 'Email followup limit reached'\n : 'Followup emails sent',\n subTitle: `${consumed}/${limit}`,\n ctaText: shouldShowUpgrades\n ? 'Upgrade for more emails'\n : 'Contact us at hello@talkadot.com for more',\n upgradeHelperText: shouldShowUpgrades\n ? 'Upgrade for more emails'\n : '',\n }\n } else {\n // Lite user messaging\n data = {\n title: 'Email Followup',\n limitExceeded: true,\n consumedPercentage: 100,\n ctaText: 'Upgrade to Access Email followups',\n upgradeHelperText: 'Upgrade to Access Email followups',\n }\n }\n break\n case 'CUSTOM_QUESTION_LIMIT':\n if (enabled) {\n data = {\n title: limitExceeded ? 'Question limit reached' : 'Questions used',\n subTitle: `${consumed}/${limit}`,\n ctaText: shouldShowUpgrades\n ? 'Upgrade to add more questions'\n : 'Contact us at hello@talkadot.com for more',\n upgradeHelperText: shouldShowUpgrades\n ? 'Upgrade to add more questions'\n : '',\n }\n } else {\n // Lite user messaging\n data = {\n title: 'Code Customizations',\n limitExceeded: true,\n consumedPercentage: 100,\n ctaText: 'Upgrade for enhanced Code customizations',\n upgradeHelperText: 'Upgrade for enhanced Code customizations',\n }\n }\n break\n default:\n data = {}\n break\n }\n\n return {\n ...commonData,\n ...data,\n }\n}\n\nconst UpgradeWidget = () => {\n const {\n authData: {\n user: {\n membership: {\n isTrialing,\n trialDaysRemaining,\n shouldShowUpgrades,\n plan: { planType, trialPeriodDays },\n },\n billingInfo: { paymentErrorMessage, isExpired },\n },\n },\n } = useContext(AuthenticationContext)\n const history = useHistory()\n const { findPermission, onPaidPlan } = usePermissionHelper()\n const pageType = usePageType()\n const redirectToBilling = useBillingRedirect()\n const permissionType = pageTypeToPermissionDict[pageType]\n const activePermission = permissionType\n ? findPermission(permissionType)\n : null\n\n // The widget type can be set for multiple scenarios, prioritized in the following order:\n const widgetType = (() => {\n if (isExpired) {\n return 'CARD_EXPIRED'\n }\n\n if (paymentErrorMessage) {\n return 'PAYMENT_ERROR'\n }\n\n if (isTrialing) {\n return 'TRIAL'\n }\n\n if (activePermission) {\n return 'PERMISSION'\n }\n\n if (!onPaidPlan()) {\n return 'FREE_PLAN'\n }\n\n return null\n })()\n\n const shouldRender = () => {\n if (!widgetType) return false\n\n if (widgetType !== 'PERMISSION') return true\n\n // Show upgrade widget for feature related to permissions if:\n // 1. On a free plan\n // 2. Plan doesn't have permission to the feature\n // 3. Plan has a limit, consumption is >= 90%, can upgrade to a higher tier\n // 4. Plan has a limit, they are at that limit, cannot upgrade to a higher tier\n\n if (!onPaidPlan()) return true\n\n if (!activePermission.enabled) return true\n\n if (!activePermission.unlimitedUsage) {\n if (shouldShowUpgrades && activePermission.consumedPercentage() >= 90) {\n return true\n }\n\n return !shouldShowUpgrades && !activePermission.isBelowLimit()\n }\n\n return false\n }\n\n if (!shouldRender()) {\n return null\n }\n\n let title = ''\n let subTitle = ''\n let ctaText = ''\n let status = ''\n let consumedPercentage = 100\n let limitExceeded = false\n let renderCta = true\n let ctaType = 'upgrade'\n let ctaClickHandler = () => redirectToBilling({ accessMethod: 'widget' })\n\n switch (widgetType) {\n case 'CARD_EXPIRED':\n title = 'Credit Card Expired'\n subTitle = 'Update your card now'\n ctaText = 'Update your payment info now'\n status = 'urgent'\n ctaType = 'updateBilling'\n break\n case 'FREE_PLAN':\n title = 'Upgrade Plan'\n subTitle = ''\n ctaText = 'Upgrade to unlock features and limits'\n status = 'normal'\n ctaType = 'upgrade'\n break\n case 'PAYMENT_ERROR':\n title = 'Payment Failed'\n subTitle = 'Update your card now'\n ctaText = 'Update your payment info now'\n status = 'urgent'\n ctaType = 'updateBilling'\n break\n case 'TRIAL':\n const consumed = trialPeriodDays - trialDaysRemaining\n const limit = trialPeriodDays\n const lastTrialDay = limit - consumed <= 1\n\n consumedPercentage = (consumed / limit) * 100\n limitExceeded = consumed >= limit\n title = lastTrialDay\n ? 'Last day of your trial!'\n : \"You're on a free trial\"\n subTitle = lastTrialDay\n ? '1 day left!'\n : `${limit - consumed}/${limit} days left of ${planType.toLowerCase()}`\n ctaText = 'Upgrade now'\n status = lastTrialDay ? 'urgent' : 'normal'\n break\n case 'PERMISSION':\n ;({\n title,\n subTitle,\n ctaText,\n status,\n consumedPercentage,\n limitExceeded,\n renderCta,\n } = permissionWidgetData(activePermission, shouldShowUpgrades))\n break\n default:\n break\n }\n\n return (\n \n {renderCta && ctaType === 'upgrade' && (\n \n )}\n \n {title}\n \n {subTitle}\n \n \n \n {ctaText}\n \n \n \n \n \n \n )\n}\n\nexport default UpgradeWidget\n","import { useContext, useState, useRef } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport { Drawer, List } from '@mui/material'\nimport { styled } from '@mui/system'\n\nimport { AuthenticationContext } from '../authentication/authenticationContext'\nimport NavItems from './NavItems'\nimport UpgradeWidget from '../common/UpgradeWidget'\nimport UpgradeButton from '../common/UpgradeButton'\n\nimport {\n drawerWidth,\n drawerWidthCollapsed,\n drawerWidthMobile,\n upperNavHeight,\n upperNavHeightMobile,\n} from '../../styles/layoutNavConstants'\n\nconst StyledDrawer = styled(Drawer, {\n shouldForwardProp: (prop) => prop !== 'open',\n})(({ theme, open }) => ({\n width: drawerWidth,\n flexShrink: 0,\n whiteSpace: 'nowrap',\n overflowY: 'scroll',\n ...(open && {\n ...openedMixin(theme),\n '& .MuiDrawer-paper': openedMixin(theme),\n }),\n ...(!open && {\n ...closedMixin(theme),\n '& .MuiDrawer-paper': closedMixin(theme),\n }),\n [theme.breakpoints.down('sm')]: {\n display: 'none',\n },\n}))\n\nconst ListContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n flex: 5,\n marginTop: theme.spacing(1),\n}))\n\nconst UpgradeWidgetContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n justifyContent: 'flex-end',\n alignItems: 'center',\n padding: theme.spacing(3, 1.5),\n}))\n\nconst DrawerHeaderLayout = styled('div')(({ theme }) => ({\n position: 'sticky',\n top: 0,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n paddingTop: theme.spacing(3),\n minHeight: upperNavHeight,\n backgroundColor: theme.palette.base.white,\n borderBottom: `1px solid ${theme.palette.border.light}`,\n zIndex: 1301,\n [theme.breakpoints.down('sm')]: {\n paddingTop: theme.spacing(1),\n minHeight: upperNavHeightMobile,\n },\n}))\n\nconst LogoContainer = styled(Link)({\n display: 'flex',\n height: '95px',\n})\n\nconst MainLogo = styled('img', {\n shouldForwardProp: (prop) => prop !== 'open',\n})(({ theme, open }) => ({\n width: open ? '214px' : '64px',\n height: 'auto',\n maxHeight: '93.4px',\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n [theme.breakpoints.down('sm')]: {\n width: open ? '214px' : '48px',\n },\n}))\n\nconst openedMixin = (theme) => ({\n width: drawerWidth,\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n borderRight: 'none',\n})\n\nconst closedMixin = (theme) => ({\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n width: drawerWidthMobile,\n borderRight: 'none',\n [theme.breakpoints.up('sm')]: {\n width: drawerWidthCollapsed,\n },\n})\n\nconst LeftNav = ({\n open,\n handleAutoOpenDrawer,\n handleAutoCloseDrawer,\n closeDrawer,\n}) => {\n const {\n authData: { user },\n } = useContext(AuthenticationContext)\n\n const [isScrolling, setIsScrolling] = useState(false)\n const touchStartY = useRef(0)\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n {open ? (\n \n ) : (\n user.membership.shouldShowUpgrades && (\n \n )\n )}\n \n \n )\n}\n\nexport default LeftNav\n","// This a custom hook to manage the front chat widget\n// There is an official SDK that has some dependencies that\n// didn't resolve with our code, so wrote this instead.\n// See docs here:\n// https://dev.frontapp.com/docs/chat-sdk-reference\n\nimport { useEffect, useState } from 'react'\n\nexport default function useFrontChat(user) {\n const [chatWidgetInitialized, setChatWidgetInitialized] = useState(false)\n\n const loadChatWidget = (options) => {\n // We currently only want to use chat for logged in users\n // Even though we don't show it on certain routes, this adds another\n // layer of protection for it\n if (!user?.id) {\n return\n }\n\n if (!chatWidgetInitialized) {\n if (window.FrontChat) {\n window.FrontChat('init', options)\n setChatWidgetInitialized(true)\n }\n }\n }\n\n useEffect(() => {\n const options = {\n chatId: process.env.REACT_APP_FRONT_CHAT_ID,\n useDefaultLauncher: true,\n email: user.email,\n userHash: user.frontLiveChatHash,\n name: user.first_name,\n customFields: {\n 'Membership Plan': user.membership.plan.name,\n },\n }\n\n if (!chatWidgetInitialized) {\n loadChatWidget(options)\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n user.id,\n user.email,\n user.first_name,\n user.last_name,\n user.frontLiveChatHash,\n ])\n\n return null\n}\n","import { useEffect, useContext, useState } from 'react'\nimport { useLocation } from 'react-router-dom'\nimport { isMobileOnly } from 'react-device-detect'\n\nimport { styled } from '@mui/system'\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n Box,\n IconButton,\n useTheme,\n useMediaQuery,\n Tooltip,\n} from '@mui/material'\nimport CloseIcon from '@mui/icons-material/Close'\n\nimport { ReactComponent as CaretButton } from './icons/caretLeftButton.svg'\n\nimport Routes from './routes/index'\nimport FullPageLoader from './features/common/FullPageLoader'\nimport NotificationParent from './features/common/NotificationParent'\nimport UpgradeParent from './features/payments/UpgradeParent'\n\nimport { DrawerHeader } from './styles/layoutNavConstants'\nimport UpperNav from './features/nav/UpperNav'\nimport LeftNav from './features/nav/LeftNav'\n\nimport { AuthenticationContext } from './features/authentication/authenticationContext'\nimport { GroupContext } from './features/groups/groupContext'\nimport { OnboardingContext } from './features/onboarding/onboardingContext'\n\nimport Api from './services/api'\nimport history from './routes/history'\nimport * as Cookies from './services/cookies'\nimport { trackUser } from './services/metrics'\nimport {\n drawerWidth,\n drawerWidthCollapsed,\n drawerWidthMobile,\n upperNavHeight,\n} from './styles/layoutNavConstants'\n\nimport useFrontChat from './utils/useFrontChat'\nimport useCustomerIo from './services/customerio'\n\nimport './App.scss'\n\nconst AppContainer = styled(Box)({\n display: 'flex',\n})\n\nconst MainContentContainer = styled(Box, {\n shouldForwardProp: (prop) => prop !== 'leftNavOpen' && prop !== 'showLeftNav',\n})(({ theme, leftNavOpen, showLeftNav, location }) => ({\n position: 'relative',\n flexGrow: 1,\n minHeight: '100vh',\n padding: location?.pathname === '/welcome' ? 0 : theme.spacing(3),\n backgroundColor: theme.palette.surface.subtle,\n width: showLeftNav\n ? `calc(100% - ${leftNavOpen ? drawerWidth : drawerWidthCollapsed}px)`\n : '100%',\n // add width transition to make the main content resize smoothly and match the drawer\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n [theme.breakpoints.down('sm')]: {\n width: showLeftNav\n ? `calc(100% - ${leftNavOpen ? drawerWidth : drawerWidthMobile}px)`\n : '100%',\n // add left margin to the main content to account for the drawer width due to the drawer being fixed on mobile\n marginLeft: showLeftNav ? drawerWidthMobile : 0,\n },\n}))\n\nconst DrawerToggleButton = styled(IconButton, {\n shouldForwardProp: (prop) => prop !== 'open',\n})(({ theme, open }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '50%',\n border: `1.5px solid ${theme.palette.border.main}`,\n backgroundColor: theme.palette.base.white,\n boxShadow: theme.shape.boxShadow.xs,\n width: '38px',\n height: '38px',\n padding: 0,\n position: 'fixed',\n top: upperNavHeight,\n left: open ? drawerWidth : drawerWidthCollapsed,\n transform: 'translate(-50%, -50%)',\n zIndex: 1302,\n transition: theme.transitions.create('left', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n '&:hover': {\n backgroundColor: theme.palette.surface.subtle,\n },\n '& svg': {\n transform: open ? 'rotate(0deg)' : 'rotate(180deg)',\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n}))\n\nfunction App() {\n let location = useLocation()\n const {\n setUserData,\n authData,\n setNotification,\n toggleUpgradeModal,\n setShowWebinarAlert,\n } = useContext(AuthenticationContext)\n const { setGroups } = useContext(GroupContext)\n const { setCurrentStep, findStartingStep } = useContext(OnboardingContext)\n const { notification, showUpgradeModal, upgradeHelperText, user } = authData\n\n const theme = useTheme()\n const isLargeScreen = useMediaQuery(theme.breakpoints.up('md'))\n const isMediumScreen = useMediaQuery(theme.breakpoints.down('md'))\n const isMobileScreen = useMediaQuery(theme.breakpoints.down('sm'))\n\n const [loading, setLoading] = useState(false)\n const [leftNavOpen, setLeftNavOpen] = useState(!isMobileOnly)\n const [autoCloseDrawer, setAutoCloseDrawer] = useState(false)\n\n const { viewedPricingPage } = useCustomerIo()\n\n useFrontChat(user)\n\n const toggleDrawer = () => {\n setLeftNavOpen(!leftNavOpen)\n }\n\n const closeDrawer = () => {\n setLeftNavOpen(false)\n }\n\n const handleAutoOpenDrawer = () => {\n if (!leftNavOpen) {\n setLeftNavOpen(true)\n setAutoCloseDrawer(true)\n }\n }\n\n const handleAutoCloseDrawer = () => {\n if (leftNavOpen && autoCloseDrawer) {\n setLeftNavOpen(false)\n setAutoCloseDrawer(false)\n }\n }\n\n useEffect(() => {\n if (showUpgradeModal) {\n viewedPricingPage()\n }\n }, [showUpgradeModal])\n\n useEffect(() => {\n const loadAuthenticatedUsersData = async () => {\n // Clear out impersonation tokens on browser refreshes or fresh app reloads\n Cookies.deleteImpersonationToken()\n\n const isAuthenticated = Cookies.getAuthToken()\n\n // Don't try and run this if the user isn't currently signed in\n if (!isAuthenticated) {\n return\n }\n\n try {\n setLoading(true)\n\n const res = await Api.loadAuthenticatedUserData()\n\n if (!res.errors) {\n const userData = res.userData\n const { id, onboarding_complete, lastOnboardingStep } = userData\n\n setUserData(userData)\n setGroups(res.groupData)\n setCurrentStep(findStartingStep(lastOnboardingStep))\n setLoading(false)\n trackUser(id)\n if (!onboarding_complete) {\n return history.push('/welcome')\n }\n } else {\n throw res.errors\n }\n } catch (err) {\n setNotification(err, 'error')\n setLoading(false)\n }\n }\n\n loadAuthenticatedUsersData()\n }, [])\n\n useEffect(() => {\n const fetchWebinarAlertMetadata = async () => {\n try {\n const res = await Api.getWebinarNotificationMetadata()\n\n if (!res.errors) {\n setShowWebinarAlert(res.show_webinar_notification)\n } else {\n throw res.errors\n }\n } catch (err) {\n console.error('Error fetching webinar alert metadata:', err)\n }\n }\n\n // Only fetch if user exists and the ID has changed\n if (user.id) {\n fetchWebinarAlertMetadata()\n }\n }, [user.id])\n\n useEffect(() => {\n if (isMediumScreen && leftNavOpen) {\n setLeftNavOpen(false)\n }\n\n if (isLargeScreen && !leftNavOpen) {\n setLeftNavOpen(true)\n }\n }, [isMediumScreen, isLargeScreen])\n\n const NO_NAVBAR_PAGES = [\n '/survey',\n '/welcome',\n '/register',\n '/login',\n '/request-password-reset',\n '/password-reset',\n '/referrer',\n '/oauth/authorize',\n '/unsubscribe',\n '/thank-you-gift',\n '/api/docs',\n ]\n\n const shouldShowNavbar = !NO_NAVBAR_PAGES.includes(location.pathname)\n\n const renderMainContentHeader = () => {\n if (shouldShowNavbar) {\n return (\n <>\n \n {user?.id && !isMobileScreen && (\n \n toggleDrawer()}\n open={leftNavOpen}>\n \n \n \n )}\n \n )\n }\n }\n\n const renderAppLayout = () => {\n if (loading) {\n return \n }\n\n return (\n
    \n \n {shouldShowNavbar && (\n <>\n \n {user?.id && (\n \n )}\n \n )}\n \n {renderMainContentHeader()}\n \n {authData?.fullPageLoader?.isActive && (\n \n )}\n \n \n {notification && notification.showNotification && (\n \n )}\n toggleUpgradeModal(false)}>\n toggleUpgradeModal(false)}\n />\n {upgradeHelperText && (\n \n {upgradeHelperText}\n \n )}\n \n \n \n \n
    \n )\n }\n\n return renderAppLayout()\n}\n\nexport default App\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import { useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\n\nexport default function ScrollToTop() {\n const { pathname } = useLocation();\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n\n return null;\n}","// Copy and paste of https://github.com/ncoughlin/scroll-to-hash-element\nimport { useEffect } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nconst ScrollToHashElement = () => {\n const location = useLocation()\n\n useEffect(() => {\n const { hash } = location\n\n const removeHashCharacter = (str) => {\n const result = str.slice(1)\n return result\n }\n\n if (hash) {\n const element = document.getElementById(removeHashCharacter(hash))\n\n if (element) {\n element.scrollIntoView({\n behavior: 'smooth',\n inline: 'nearest',\n })\n }\n }\n }, [location])\n\n return null\n}\n\nexport default ScrollToHashElement\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport { Router } from 'react-router-dom'\nimport { ThemeProvider, createTheme } from '@mui/material/styles'\nimport 'react-quill/dist/quill.snow.css'\n\n// Error Logging\nimport * as Sentry from '@sentry/react'\nimport { Integrations } from '@sentry/tracing'\n\nimport App from './App'\nimport history from './routes/history'\nimport reportWebVitals from './reportWebVitals'\nimport AuthenticationContextProvider from './features/authentication/authenticationContext'\nimport OnboardingContextProvider from './features/onboarding/onboardingContext'\nimport AdminContextProvider from './features/admin/adminContext'\nimport GroupContextProvider from './features/groups/groupContext'\nimport ScrollToTop from './features/common/ScrollToTop'\nimport ScrollToHashElement from './utils/scrollToElement'\n\nimport './index.css'\nimport { colors, borderRadius, boxShadow } from './styles/styleGuide'\n\nSentry.init({\n dsn: 'https://e9ac63ff824742ebb26a43fc6a0ad2ef@o1153581.ingest.sentry.io/6232787',\n environment: process.env.REACT_APP_SENTRY_ENVIRONMENT,\n integrations: [new Integrations.BrowserTracing()],\n tracesSampleRate: 0.0,\n})\n\nconst { palette } = createTheme()\nconst { augmentColor } = palette\nconst createColor = (color) => augmentColor({ color: { main: color } })\n\n// // Font weights are defined here instead of styleGuide.js because in designs it depend on both typography and weight type\nconst fontWeights = {\n regular: 400,\n semiBold: 600,\n bold: 700,\n extraBold: 800,\n}\n\nconst typography = {\n paragraph01: {\n fontFamily: 'Figtree, sans-serif',\n fontSize: '0.875rem',\n fontWeight: 400,\n lineHeight: 1.43,\n color: colors.neutral[900],\n },\n}\n\nconst theme = createTheme({\n typography: {\n fontFamily: 'Figtree, sans-serif',\n },\n zIndex: {\n modal: 1400,\n },\n components: {\n MuiButton: {\n styleOverrides: {\n root: {\n textTransform: 'none',\n borderRadius: borderRadius.sm,\n padding: '8px 16px',\n boxShadow: 'none',\n fontWeight: 600,\n },\n },\n },\n MuiTableHead: {\n styleOverrides: {\n root: {\n backgroundColor: colors.primaryBlue[500],\n '& .MuiTableCell-head': {\n // also set background color at the table cell level, otherwise the sticky header styling will override it\n // still need to set it at the head level, otherwise you see faint lines between the cells\n backgroundColor: colors.primaryBlue[500],\n color: colors.shades[0],\n fontWeight: 600,\n textWrap: 'nowrap',\n '&:first-of-type': {\n borderTopLeftRadius: borderRadius.xs,\n },\n '&:last-child': {\n borderTopRightRadius: borderRadius.xs,\n },\n },\n },\n },\n },\n MuiTableSortLabel: {\n styleOverrides: {\n root: {\n '& .MuiTableSortLabel-icon': {\n opacity: 0.3,\n },\n '&.MuiTableSortLabel-active': {\n opacity: 1,\n },\n },\n },\n },\n MuiTableCell: {\n styleOverrides: {\n root: {\n borderBottom: `1px solid ${colors.neutral[100]}`,\n fontSize: '0.875rem',\n padding: '10px 6px',\n },\n },\n },\n MuiTableRow: {\n styleOverrides: {\n root: {\n '&:hover': {\n backgroundColor: colors.neutral[50],\n },\n },\n },\n },\n MuiTablePagination: {\n styleOverrides: {\n root: {\n // position: 'sticky',\n // bottom: 0,\n // left: 0,\n backgroundColor: colors.neutral[50],\n boxShadow: `0px -2px 4px ${colors.neutral[50]}`,\n '& .MuiTablePagination-spacer': {\n flex: 'none',\n width: 0, // Set width to 0 to disable the spacer\n },\n '& .MuiToolbar-gutters': {\n padding: '0 24px',\n },\n },\n },\n },\n MuiLinearProgress: {\n styleOverrides: {\n colorSecondary: {\n backgroundColor: colors.shades[0],\n '& .MuiLinearProgress-bar': {\n backgroundColor: colors.primaryBlue[500],\n },\n },\n colorError: {\n backgroundColor: colors.shades[0],\n '& .MuiLinearProgress-bar': {\n backgroundColor: colors.error[600],\n },\n },\n },\n },\n MuiAlert: {\n styleOverrides: {\n root: {\n borderWidth: '1px',\n borderStyle: 'solid',\n borderRadius: borderRadius.xxs,\n backgroundColor: colors.shades[0],\n '& .MuiAlert-message': {\n ...typography.paragraph01,\n fontWeight: 600,\n },\n },\n },\n variants: [\n {\n props: { variant: 'greyWarning' },\n style: {\n '& .MuiAlert-message': {\n color: colors.neutral[500],\n },\n borderColor: colors.neutral[100],\n },\n },\n {\n props: { variant: 'subtleWarning' },\n style: {\n '& .MuiAlert-message': {\n color: colors.neutral[500],\n },\n borderColor: colors.neutral[200],\n backgroundColor: colors.neutral[50],\n },\n },\n {\n props: { variant: 'whiteWarning' },\n style: {\n '& .MuiAlert-message': {\n color: colors.neutral[500],\n },\n borderColor: colors.neutral[100],\n },\n },\n {\n props: { variant: 'blueWarningFilled' },\n style: {\n borderColor: colors.primaryBlue[600],\n backgroundColor: colors.primaryBlue[50],\n },\n },\n {\n props: { variant: 'blueWarning' },\n style: {\n '& .MuiAlert-message': {\n color: colors.primaryBlue[500],\n },\n borderColor: colors.primaryBlue[500],\n },\n },\n {\n props: { variant: 'orangeWarning' },\n style: {\n '& .MuiAlert-message': {\n color: colors.primaryOrange[500],\n },\n borderColor: colors.primaryOrange[500],\n },\n },\n {\n props: { variant: 'redWarning' }, // Red alert in designs\n style: {\n '& .MuiAlert-message': {\n color: colors.error[600],\n },\n borderColor: colors.error[600],\n },\n },\n {\n props: { variant: 'error' }, // Red warning in designs\n style: {\n '& .MuiAlert-message': {\n color: colors.error[600],\n },\n borderColor: colors.error[600],\n },\n },\n {\n props: { variant: 'success' }, // Green warning in designs\n style: {\n '& .MuiAlert-message': {\n color: colors.success[600],\n },\n borderColor: colors.success[600],\n },\n },\n ],\n },\n },\n palette: {\n primary: {\n lightest: colors.primaryOrange[50],\n extraLight: colors.primaryOrange[100],\n veryLight: colors.primaryOrange[200],\n light: colors.primaryOrange[300],\n semiLight: colors.primaryOrange[400],\n main: colors.primaryOrange[500],\n semiDark: colors.primaryOrange[600],\n dark: colors.primaryOrange[700],\n veryDark: colors.primaryOrange[800],\n darkest: colors.primaryOrange[900],\n },\n secondary: {\n lightest: colors.primaryBlue[50],\n extraLight: colors.primaryBlue[100],\n veryLight: colors.primaryBlue[200],\n light: colors.primaryBlue[300],\n semiLight: colors.primaryBlue[400],\n main: colors.primaryBlue[500],\n semiDark: colors.primaryBlue[600],\n dark: colors.primaryBlue[700],\n veryDark: colors.primaryBlue[800],\n darkest: colors.primaryBlue[900],\n },\n tertiary: {\n light: colors.neutral[500],\n main: colors.neutral[700],\n dark: colors.neutral[900],\n },\n neutral: {\n lightest: colors.neutral[50],\n extraLight: colors.neutral[100],\n veryLight: colors.neutral[200],\n light: colors.neutral[300],\n semiLight: colors.neutral[400],\n main: colors.neutral[500],\n semiDark: colors.neutral[600],\n dark: colors.neutral[700],\n veryDark: colors.neutral[800],\n darkest: colors.neutral[900],\n },\n base: {\n white: colors.shades[0],\n black: colors.shades[100],\n },\n border: {\n lighter: colors.neutral[50],\n light: colors.neutral[100],\n main: colors.neutral[200],\n },\n surface: {\n subtle: colors.neutral[50],\n },\n text: {\n disabled: colors.neutral[400],\n hint: colors.neutral[500],\n navText: colors.neutral[600],\n inputText: colors.neutral[800],\n link: colors.primaryBlue[500],\n },\n table: {\n selectedRowPrimary: colors.accentYellow[200],\n selectedRowSecondary: colors.accentYellow[100],\n hoverRow: colors.neutral[50],\n },\n success: {\n lightest: colors.success[50],\n extraLight: colors.success[100],\n veryLight: colors.success[200],\n light: colors.success[300],\n semiLight: colors.success[400],\n main: colors.success[500],\n semiDark: colors.success[600],\n dark: colors.success[700],\n veryDark: colors.success[800],\n darkest: colors.success[900],\n },\n error: {\n lightest: colors.error[50],\n extraLight: colors.error[100],\n veryLight: colors.error[200],\n light: colors.error[300],\n semiLight: colors.error[400],\n main: colors.error[500],\n semiDark: colors.error[600],\n dark: colors.error[700],\n veryDark: colors.error[800],\n darkest: colors.error[900],\n },\n purple: {\n lightest: colors.tags.purple[50],\n main: colors.tags.purple[500],\n },\n pink: {\n lightest: colors.tags.pink[50],\n main: colors.tags.pink[500],\n },\n yellow: {\n lightest: colors.accentYellow[50],\n extraLight: colors.accentYellow[100],\n veryLight: colors.accentYellow[200],\n light: colors.accentYellow[300],\n semiLight: colors.accentYellow[400],\n main: colors.accentYellow[500],\n semiDark: colors.accentYellow[600],\n dark: colors.accentYellow[700],\n veryDark: colors.accentYellow[800],\n darkest: colors.accentYellow[900],\n },\n emojis: {\n ...colors.emojis,\n },\n\n // TODO: Get rid of the colors below once we have built out the new components\n tabBlue: {\n main: '#1197CA',\n },\n red: {\n main: '#EA3A3D',\n light: '#FBD7D8',\n },\n eventReport: {\n circleChartBlue: '#178ECB',\n circleChartLightBlue: '#60A3DF',\n circleChartGrey: '#585758',\n circleChartLightGrey: '#A7A7A7',\n },\n profileWidget: {\n lightBlue: '#4EAFCB',\n teal: '#5CC7C2',\n green: '#7BDDAB',\n chartValuable: '#368BA3',\n chartReattendPYes: '#459693',\n chartLocationVirtual: '#2B7C53',\n linearProgressGray: '#555555',\n },\n nav: {\n border: '#E3E7EE',\n expandIcon: '#dbe3e8',\n svgFill: 'rgb(56, 68, 85)',\n impersonation: {\n background: 'red',\n },\n },\n black: createColor('#000000'),\n white: createColor('#FFFFFF'),\n greyExtraLight: createColor('#EEEEEE'),\n teal: createColor('#27D79E'),\n },\n // END OF PALETTE\n shape: {\n borderRadius: {\n ...borderRadius,\n },\n boxShadow: {\n ...boxShadow,\n },\n },\n fontWeights,\n})\n\ntheme.typography.display1 = {\n fontFamily: 'Figtree, sans-serif',\n fontSize: '4.5rem',\n fontWeight: 600,\n lineHeight: 1.11,\n letterSpacing: '-0.04em',\n color: colors.neutral[900],\n}\n\ntheme.typography.display2 = {\n fontFamily: 'Figtree, sans-serif',\n fontSize: '3.75rem',\n fontWeight: 600,\n lineHeight: 1.2,\n letterSpacing: '-0.04em',\n color: colors.neutral[900],\n}\n\ntheme.typography.h1 = {\n fontFamily: 'Figtree, sans-serif',\n fontSize: '3rem',\n fontWeight: 600,\n lineHeight: 1.17,\n letterSpacing: '-0.04em',\n color: colors.neutral[900],\n [theme.breakpoints.down('sm')]: {\n fontSize: '2.125rem',\n },\n}\n\ntheme.typography.h2 = {\n fontFamily: 'Figtree, sans-serif',\n fontSize: '2.4375rem',\n fontWeight: 600,\n lineHeight: 1.2,\n letterSpacing: '-0.02em',\n color: colors.neutral[900],\n [theme.breakpoints.down('sm')]: {\n fontSize: '2.0625rem',\n },\n}\n\ntheme.typography.h3 = {\n fontFamily: 'Figtree, sans-serif',\n fontSize: '2rem',\n fontWeight: 600,\n lineHeight: 1.125,\n letterSpacing: '-0.02em',\n color: colors.neutral[900],\n [theme.breakpoints.down('sm')]: {\n fontSize: '1.75rem',\n },\n}\n\ntheme.typography.h4 = {\n fontFamily: 'Figtree, sans-serif',\n fontSize: '1.75rem',\n fontWeight: 600,\n lineHeight: 1.214,\n color: colors.neutral[900],\n [theme.breakpoints.down('sm')]: {\n fontSize: '1.4375rem',\n },\n}\n\ntheme.typography.h5 = {\n fontFamily: 'Figtree, sans-serif',\n fontSize: '1.375rem',\n fontWeight: 700,\n lineHeight: 1.36,\n letterSpacing: '-0.02em',\n color: colors.neutral[900],\n [theme.breakpoints.down('sm')]: {\n fontSize: '1.125rem',\n },\n}\n\ntheme.typography.h6 = {\n fontFamily: 'Figtree, sans-serif',\n fontSize: '1.125rem',\n fontWeight: 700,\n lineHeight: 1.28,\n letterSpacing: '-0.02em',\n color: colors.neutral[900],\n [theme.breakpoints.down('sm')]: {\n fontSize: '1rem',\n },\n}\n\n// Subheading in the style guide\ntheme.typography.subtitle1 = {\n fontFamily: 'Figtree, sans-serif',\n fontSize: '1.25rem',\n fontWeight: 400,\n lineHeight: 1.2,\n color: colors.neutral[900],\n}\n\n// Paragraph 01 in the style guide\ntheme.typography.body1 = {\n ...typography.paragraph01,\n}\n\n// Paragraph 02 in the style guide\ntheme.typography.body2 = {\n fontFamily: 'Figtree, sans-serif',\n fontSize: '1rem',\n fontWeight: 400,\n lineHeight: 1.1875,\n color: colors.neutral[900],\n}\n\ntheme.typography.paragraph00 = {\n fontFamily: 'Figtree, sans-serif',\n fontSize: '0.75rem',\n fontWeight: 400,\n lineHeight: 1.17,\n color: colors.neutral[800],\n}\n\ntheme.typography.paragraph03 = {\n fontFamily: 'Figtree, sans-serif',\n fontSize: '1.125rem',\n fontWeight: 400,\n lineHeight: 1.22,\n color: colors.neutral[900],\n}\n\ntheme.typography.conversation = {\n fontFamily: 'CaveatBrush, cursive',\n fontSize: '1.125rem',\n fontWeight: 400,\n lineHeight: 1.2,\n color: colors.neutral[900],\n}\n\ntheme.typography.caption = {\n fontFamily: 'Figtree, sans-serif',\n fontSize: '0.75rem',\n fontWeight: 400,\n lineHeight: 1.17,\n color: colors.neutral[900],\n}\n\ntheme.typography.footer = {\n fontFamily: 'Figtree, sans-serif',\n fontSize: '0.833rem',\n fontWeight: 400,\n lineHeight: 1.2,\n color: colors.neutral[900],\n}\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n document.getElementById('root')\n)\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals()\n","// NOTE: This code is copied from the dom-to-image package and modified to use the window.devicePixelRatio logic\n// similar to html-to-image package in order to upscale the image output\n\n;(function (global) {\n 'use strict'\n\n var util = newUtil()\n var inliner = newInliner()\n var fontFaces = newFontFaces()\n var images = newImages()\n\n // Default impl options\n var defaultOptions = {\n // Default is to fail on error, no placeholder\n imagePlaceholder: undefined,\n // Default cache bust is false, it will use the cache\n cacheBust: false,\n // To set a fixed Pixel Ratio\n pixelRatio: null,\n }\n\n var domtoimage = {\n toSvg: toSvg,\n toPng: toPng,\n toJpeg: toJpeg,\n toBlob: toBlob,\n toPixelData: toPixelData,\n impl: {\n fontFaces: fontFaces,\n images: images,\n util: util,\n inliner: inliner,\n options: {},\n },\n }\n\n if (typeof module !== 'undefined') module.exports = domtoimage\n else global.domtoimage = domtoimage\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options\n * @param {Function} options.filter - Should return true if passed node should be included in the output\n * (excluding node means excluding it's children as well). Not called on the root node.\n * @param {String} options.bgcolor - color for the background, any valid CSS color value.\n * @param {Number} options.width - width to be applied to node before rendering.\n * @param {Number} options.height - height to be applied to node before rendering.\n * @param {Object} options.style - an object whose properties to be copied to node's style before rendering.\n * @param {Number} options.quality - a Number between 0 and 1 indicating image quality (applicable to JPEG only),\n defaults to 1.0.\n * @param {String} options.imagePlaceholder - dataURL to use as a placeholder for failed images, default behaviour is to fail fast on images we can't fetch\n * @param {Boolean} options.cacheBust - set to true to cache bust by appending the time to the request url\n * @return {Promise} - A promise that is fulfilled with a SVG image data URL\n * */\n\n function getPixelRatio(options) {\n // let ratio\n\n // let FINAL_PROCESS\n // try {\n // FINAL_PROCESS = process\n // } catch (e) {\n // // pass\n // }\n\n // const val =\n // FINAL_PROCESS && FINAL_PROCESS.env\n // ? FINAL_PROCESS.env.devicePixelRatio\n // : null\n // if (val) {\n // ratio = parseInt(val, 10)\n // if (Number.isNaN(ratio)) {\n // ratio = 1\n // }\n // }\n // return ratio || window.devicePixelRatio || 1\n\n // NOTE: the commented out code is from the html-to-image package\n return options.pixelRatio || window.devicePixelRatio || 1\n }\n\n function toSvg(node, options) {\n options = options || {}\n copyOptions(options)\n\n return Promise.resolve(node)\n .then(function (node) {\n return cloneNode(node, options.filter, true)\n })\n .then(embedFonts)\n .then(inlineImages)\n .then(applyOptions)\n .then(function (clone) {\n return makeSvgDataUri(\n clone,\n options.width || util.width(node),\n options.height || util.height(node)\n )\n })\n\n function applyOptions(clone) {\n if (options.bgcolor) clone.style.backgroundColor = options.bgcolor\n\n if (options.width) clone.style.width = options.width + 'px'\n if (options.height) clone.style.height = options.height + 'px'\n\n if (options.style)\n Object.keys(options.style).forEach(function (property) {\n clone.style[property] = options.style[property]\n })\n\n return clone\n }\n }\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options, @see {@link toSvg}\n * @return {Promise} - A promise that is fulfilled with a Uint8Array containing RGBA pixel data.\n * */\n function toPixelData(node, options) {\n return draw(node, options || {}).then(function (canvas) {\n return canvas\n .getContext('2d')\n .getImageData(0, 0, util.width(node), util.height(node)).data\n })\n }\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options, @see {@link toSvg}\n * @return {Promise} - A promise that is fulfilled with a PNG image data URL\n * */\n function toPng(node, options) {\n return draw(node, options || {}).then(function (canvas) {\n return canvas.toDataURL()\n })\n }\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options, @see {@link toSvg}\n * @return {Promise} - A promise that is fulfilled with a JPEG image data URL\n * */\n function toJpeg(node, options) {\n options = options || {}\n return draw(node, options).then(function (canvas) {\n return canvas.toDataURL('image/jpeg', options.quality || 1.0)\n })\n }\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options, @see {@link toSvg}\n * @return {Promise} - A promise that is fulfilled with a PNG image blob\n * */\n function toBlob(node, options) {\n return draw(node, options || {}).then(util.canvasToBlob)\n }\n\n function copyOptions(options) {\n // Copy options to impl options for use in impl\n if (typeof options.imagePlaceholder === 'undefined') {\n domtoimage.impl.options.imagePlaceholder = defaultOptions.imagePlaceholder\n } else {\n domtoimage.impl.options.imagePlaceholder = options.imagePlaceholder\n }\n\n if (typeof options.cacheBust === 'undefined') {\n domtoimage.impl.options.cacheBust = defaultOptions.cacheBust\n } else {\n domtoimage.impl.options.cacheBust = options.cacheBust\n }\n }\n\n function draw(domNode, options) {\n return toSvg(domNode, options)\n .then(util.makeImage)\n .then(util.delay(100))\n .then(function (image) {\n var canvas = newCanvas(domNode)\n // NOTE: change the canvas.getContext call here to pass in the canvasWidth and canvasHeight calculated using the pixelRatio\n // canvas.getContext('2d').drawImage(image, 0, 0)\n canvas\n .getContext('2d')\n .drawImage(image, 0, 0, canvas.width, canvas.height)\n return canvas\n })\n\n function newCanvas(domNode) {\n var canvas = document.createElement('canvas')\n\n const ratio = getPixelRatio(options)\n const width = options.width || util.width(domNode)\n const height = options.height || util.height(domNode)\n const canvasWidth = width * ratio\n const canvasHeight = height * ratio\n\n canvas.width = canvasWidth\n canvas.height = canvasHeight\n\n if (options.bgcolor) {\n var ctx = canvas.getContext('2d')\n ctx.fillStyle = options.bgcolor\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n }\n\n return canvas\n }\n }\n\n function cloneNode(node, filter, root) {\n if (!root && filter && !filter(node)) return Promise.resolve()\n\n return Promise.resolve(node)\n .then(makeNodeCopy)\n .then(function (clone) {\n return cloneChildren(node, clone, filter)\n })\n .then(function (clone) {\n return processClone(node, clone)\n })\n\n function makeNodeCopy(node) {\n if (node instanceof HTMLCanvasElement)\n return util.makeImage(node.toDataURL())\n return node.cloneNode(false)\n }\n\n function cloneChildren(original, clone, filter) {\n var children = original.childNodes\n if (children.length === 0) return Promise.resolve(clone)\n\n return cloneChildrenInOrder(clone, util.asArray(children), filter).then(\n function () {\n return clone\n }\n )\n\n function cloneChildrenInOrder(parent, children, filter) {\n var done = Promise.resolve()\n children.forEach(function (child) {\n done = done\n .then(function () {\n return cloneNode(child, filter)\n })\n .then(function (childClone) {\n if (childClone) parent.appendChild(childClone)\n })\n })\n return done\n }\n }\n\n function processClone(original, clone) {\n if (!(clone instanceof Element)) return clone\n\n return Promise.resolve()\n .then(cloneStyle)\n .then(clonePseudoElements)\n .then(copyUserInput)\n .then(fixSvg)\n .then(function () {\n return clone\n })\n\n function cloneStyle() {\n copyStyle(window.getComputedStyle(original), clone.style)\n\n function copyStyle(source, target) {\n if (source.cssText) target.cssText = source.cssText\n else copyProperties(source, target)\n\n function copyProperties(source, target) {\n util.asArray(source).forEach(function (name) {\n target.setProperty(\n name,\n source.getPropertyValue(name),\n source.getPropertyPriority(name)\n )\n })\n }\n }\n }\n\n function clonePseudoElements() {\n ;[':before', ':after'].forEach(function (element) {\n clonePseudoElement(element)\n })\n\n function clonePseudoElement(element) {\n var style = window.getComputedStyle(original, element)\n var content = style.getPropertyValue('content')\n\n if (content === '' || content === 'none') return\n\n var className = util.uid()\n clone.className = clone.className + ' ' + className\n var styleElement = document.createElement('style')\n styleElement.appendChild(\n formatPseudoElementStyle(className, element, style)\n )\n clone.appendChild(styleElement)\n\n function formatPseudoElementStyle(className, element, style) {\n var selector = '.' + className + ':' + element\n var cssText = style.cssText\n ? formatCssText(style)\n : formatCssProperties(style)\n return document.createTextNode(selector + '{' + cssText + '}')\n\n function formatCssText(style) {\n var content = style.getPropertyValue('content')\n return style.cssText + ' content: ' + content + ';'\n }\n\n function formatCssProperties(style) {\n return util.asArray(style).map(formatProperty).join('; ') + ';'\n\n function formatProperty(name) {\n return (\n name +\n ': ' +\n style.getPropertyValue(name) +\n (style.getPropertyPriority(name) ? ' !important' : '')\n )\n }\n }\n }\n }\n }\n\n function copyUserInput() {\n if (original instanceof HTMLTextAreaElement)\n clone.innerHTML = original.value\n if (original instanceof HTMLInputElement)\n clone.setAttribute('value', original.value)\n }\n\n function fixSvg() {\n if (!(clone instanceof SVGElement)) return\n clone.setAttribute('xmlns', 'http://www.w3.org/2000/svg')\n\n if (!(clone instanceof SVGRectElement)) return\n ;['width', 'height'].forEach(function (attribute) {\n var value = clone.getAttribute(attribute)\n if (!value) return\n\n clone.style.setProperty(attribute, value)\n })\n }\n }\n }\n\n function embedFonts(node) {\n return fontFaces.resolveAll().then(function (cssText) {\n var styleNode = document.createElement('style')\n node.appendChild(styleNode)\n styleNode.appendChild(document.createTextNode(cssText))\n return node\n })\n }\n\n function inlineImages(node) {\n return images.inlineAll(node).then(function () {\n return node\n })\n }\n\n function makeSvgDataUri(node, width, height) {\n return Promise.resolve(node)\n .then(function (node) {\n node.setAttribute('xmlns', 'http://www.w3.org/1999/xhtml')\n return new XMLSerializer().serializeToString(node)\n })\n .then(util.escapeXhtml)\n .then(function (xhtml) {\n return (\n '' +\n xhtml +\n ''\n )\n })\n .then(function (foreignObject) {\n return (\n '' +\n foreignObject +\n ''\n )\n })\n .then(function (svg) {\n return 'data:image/svg+xml;charset=utf-8,' + svg\n })\n }\n\n function newUtil() {\n return {\n escape: escape,\n parseExtension: parseExtension,\n mimeType: mimeType,\n dataAsUrl: dataAsUrl,\n isDataUrl: isDataUrl,\n canvasToBlob: canvasToBlob,\n resolveUrl: resolveUrl,\n getAndEncode: getAndEncode,\n uid: uid(),\n delay: delay,\n asArray: asArray,\n escapeXhtml: escapeXhtml,\n makeImage: makeImage,\n width: width,\n height: height,\n }\n\n function mimes() {\n /*\n * Only WOFF and EOT mime types for fonts are 'real'\n * see http://www.iana.org/assignments/media-types/media-types.xhtml\n */\n var WOFF = 'application/font-woff'\n var JPEG = 'image/jpeg'\n\n return {\n woff: WOFF,\n woff2: WOFF,\n ttf: 'application/font-truetype',\n eot: 'application/vnd.ms-fontobject',\n png: 'image/png',\n jpg: JPEG,\n jpeg: JPEG,\n gif: 'image/gif',\n tiff: 'image/tiff',\n svg: 'image/svg+xml',\n }\n }\n\n function parseExtension(url) {\n var match = /\\.([^\\.\\/]*?)$/g.exec(url)\n if (match) return match[1]\n else return ''\n }\n\n function mimeType(url) {\n var extension = parseExtension(url).toLowerCase()\n return mimes()[extension] || ''\n }\n\n function isDataUrl(url) {\n return url.search(/^(data:)/) !== -1\n }\n\n function toBlob(canvas) {\n return new Promise(function (resolve) {\n var binaryString = window.atob(canvas.toDataURL().split(',')[1])\n var length = binaryString.length\n var binaryArray = new Uint8Array(length)\n\n for (var i = 0; i < length; i++)\n binaryArray[i] = binaryString.charCodeAt(i)\n\n resolve(\n new Blob([binaryArray], {\n type: 'image/png',\n })\n )\n })\n }\n\n function canvasToBlob(canvas) {\n if (canvas.toBlob)\n return new Promise(function (resolve) {\n canvas.toBlob(resolve)\n })\n\n return toBlob(canvas)\n }\n\n function resolveUrl(url, baseUrl) {\n var doc = document.implementation.createHTMLDocument()\n var base = doc.createElement('base')\n doc.head.appendChild(base)\n var a = doc.createElement('a')\n doc.body.appendChild(a)\n base.href = baseUrl\n a.href = url\n return a.href\n }\n\n function uid() {\n var index = 0\n\n return function () {\n return 'u' + fourRandomChars() + index++\n\n function fourRandomChars() {\n /* see http://stackoverflow.com/a/6248722/2519373 */\n return (\n '0000' + ((Math.random() * Math.pow(36, 4)) << 0).toString(36)\n ).slice(-4)\n }\n }\n }\n\n function makeImage(uri) {\n return new Promise(function (resolve, reject) {\n var image = new Image()\n image.onload = function () {\n resolve(image)\n }\n image.onerror = reject\n image.src = uri\n })\n }\n\n function getAndEncode(url) {\n var TIMEOUT = 30000\n if (domtoimage.impl.options.cacheBust) {\n // Cache bypass so we dont have CORS issues with cached images\n // Source: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache\n url += (/\\?/.test(url) ? '&' : '?') + new Date().getTime()\n }\n\n return new Promise(function (resolve) {\n var request = new XMLHttpRequest()\n\n request.onreadystatechange = done\n request.ontimeout = timeout\n request.responseType = 'blob'\n request.timeout = TIMEOUT\n request.open('GET', url, true)\n request.send()\n\n var placeholder\n if (domtoimage.impl.options.imagePlaceholder) {\n var split = domtoimage.impl.options.imagePlaceholder.split(/,/)\n if (split && split[1]) {\n placeholder = split[1]\n }\n }\n\n function done() {\n if (request.readyState !== 4) return\n\n if (request.status !== 200) {\n if (placeholder) {\n resolve(placeholder)\n } else {\n fail(\n 'cannot fetch resource: ' + url + ', status: ' + request.status\n )\n }\n\n return\n }\n\n var encoder = new FileReader()\n encoder.onloadend = function () {\n var content = encoder.result.split(/,/)[1]\n resolve(content)\n }\n encoder.readAsDataURL(request.response)\n }\n\n function timeout() {\n if (placeholder) {\n resolve(placeholder)\n } else {\n fail(\n 'timeout of ' +\n TIMEOUT +\n 'ms occured while fetching resource: ' +\n url\n )\n }\n }\n\n function fail(message) {\n console.error(message)\n resolve('')\n }\n })\n }\n\n function dataAsUrl(content, type) {\n return 'data:' + type + ';base64,' + content\n }\n\n function escape(string) {\n return string.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, '\\\\$1')\n }\n\n function delay(ms) {\n return function (arg) {\n return new Promise(function (resolve) {\n setTimeout(function () {\n resolve(arg)\n }, ms)\n })\n }\n }\n\n function asArray(arrayLike) {\n var array = []\n var length = arrayLike.length\n for (var i = 0; i < length; i++) array.push(arrayLike[i])\n return array\n }\n\n function escapeXhtml(string) {\n return string.replace(/#/g, '%23').replace(/\\n/g, '%0A')\n }\n\n function width(node) {\n var leftBorder = px(node, 'border-left-width')\n var rightBorder = px(node, 'border-right-width')\n return node.scrollWidth + leftBorder + rightBorder\n }\n\n function height(node) {\n var topBorder = px(node, 'border-top-width')\n var bottomBorder = px(node, 'border-bottom-width')\n return node.scrollHeight + topBorder + bottomBorder\n }\n\n function px(node, styleProperty) {\n var value = window.getComputedStyle(node).getPropertyValue(styleProperty)\n return parseFloat(value.replace('px', ''))\n }\n }\n\n function newInliner() {\n var URL_REGEX = /url\\(['\"]?([^'\"]+?)['\"]?\\)/g\n\n return {\n inlineAll: inlineAll,\n shouldProcess: shouldProcess,\n impl: {\n readUrls: readUrls,\n inline: inline,\n },\n }\n\n function shouldProcess(string) {\n return string.search(URL_REGEX) !== -1\n }\n\n function readUrls(string) {\n var result = []\n var match\n while ((match = URL_REGEX.exec(string)) !== null) {\n result.push(match[1])\n }\n return result.filter(function (url) {\n return !util.isDataUrl(url)\n })\n }\n\n function inline(string, url, baseUrl, get) {\n return Promise.resolve(url)\n .then(function (url) {\n return baseUrl ? util.resolveUrl(url, baseUrl) : url\n })\n .then(get || util.getAndEncode)\n .then(function (data) {\n return util.dataAsUrl(data, util.mimeType(url))\n })\n .then(function (dataUrl) {\n return string.replace(urlAsRegex(url), '$1' + dataUrl + '$3')\n })\n\n function urlAsRegex(url) {\n return new RegExp(\n '(url\\\\([\\'\"]?)(' + util.escape(url) + ')([\\'\"]?\\\\))',\n 'g'\n )\n }\n }\n\n function inlineAll(string, baseUrl, get) {\n if (nothingToInline()) return Promise.resolve(string)\n\n return Promise.resolve(string)\n .then(readUrls)\n .then(function (urls) {\n var done = Promise.resolve(string)\n urls.forEach(function (url) {\n done = done.then(function (string) {\n return inline(string, url, baseUrl, get)\n })\n })\n return done\n })\n\n function nothingToInline() {\n return !shouldProcess(string)\n }\n }\n }\n\n function newFontFaces() {\n return {\n resolveAll: resolveAll,\n impl: {\n readAll: readAll,\n },\n }\n\n function resolveAll() {\n return readAll(document)\n .then(function (webFonts) {\n return Promise.all(\n webFonts.map(function (webFont) {\n return webFont.resolve()\n })\n )\n })\n .then(function (cssStrings) {\n return cssStrings.join('\\n')\n })\n }\n\n function readAll() {\n return Promise.resolve(util.asArray(document.styleSheets))\n .then(getCssRules)\n .then(selectWebFontRules)\n .then(function (rules) {\n return rules.map(newWebFont)\n })\n\n function selectWebFontRules(cssRules) {\n return cssRules\n .filter(function (rule) {\n return rule.type === CSSRule.FONT_FACE_RULE\n })\n .filter(function (rule) {\n return inliner.shouldProcess(rule.style.getPropertyValue('src'))\n })\n }\n\n function getCssRules(styleSheets) {\n var cssRules = []\n styleSheets.forEach(function (sheet) {\n try {\n util\n .asArray(sheet.cssRules || [])\n .forEach(cssRules.push.bind(cssRules))\n } catch (e) {\n console.log(\n 'Error while reading CSS rules from ' + sheet.href,\n e.toString()\n )\n }\n })\n return cssRules\n }\n\n function newWebFont(webFontRule) {\n return {\n resolve: function resolve() {\n var baseUrl = (webFontRule.parentStyleSheet || {}).href\n return inliner.inlineAll(webFontRule.cssText, baseUrl)\n },\n src: function () {\n return webFontRule.style.getPropertyValue('src')\n },\n }\n }\n }\n }\n\n function newImages() {\n return {\n inlineAll: inlineAll,\n impl: {\n newImage: newImage,\n },\n }\n\n function newImage(element) {\n return {\n inline: inline,\n }\n\n function inline(get) {\n if (util.isDataUrl(element.src)) return Promise.resolve()\n\n return Promise.resolve(element.src)\n .then(get || util.getAndEncode)\n .then(function (data) {\n return util.dataAsUrl(data, util.mimeType(element.src))\n })\n .then(function (dataUrl) {\n return new Promise(function (resolve, reject) {\n element.onload = resolve\n element.onerror = reject\n element.src = dataUrl\n })\n })\n }\n }\n\n function inlineAll(node) {\n if (!(node instanceof Element)) return Promise.resolve(node)\n\n return inlineBackground(node).then(function () {\n if (node instanceof HTMLImageElement) return newImage(node).inline()\n else\n return Promise.all(\n util.asArray(node.childNodes).map(function (child) {\n return inlineAll(child)\n })\n )\n })\n\n function inlineBackground(node) {\n var background = node.style.getPropertyValue('background')\n\n if (!background) return Promise.resolve(node)\n\n return inliner\n .inlineAll(background)\n .then(function (inlined) {\n node.style.setProperty(\n 'background',\n inlined,\n node.style.getPropertyPriority('background')\n )\n })\n .then(function () {\n return node\n })\n }\n }\n }\n})(this)\n"],"sourceRoot":""}