posthog-js 1.136.5 → 1.136.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/array.full.js +2 -2
  2. package/dist/array.full.js.map +1 -1
  3. package/dist/array.js +1 -1
  4. package/dist/array.js.map +1 -1
  5. package/dist/es.js +1 -1
  6. package/dist/es.js.map +1 -1
  7. package/dist/lib/src/extensions/surveys/components/ConfirmationMessage.d.ts +3 -3
  8. package/dist/lib/src/extensions/surveys/components/QuestionTypes.d.ts +8 -12
  9. package/dist/lib/src/extensions/surveys/surveys-utils.d.ts +3 -3
  10. package/dist/lib/src/extensions/surveys.d.ts +3 -5
  11. package/dist/lib/src/posthog-surveys-types.d.ts +1 -1
  12. package/dist/module.d.ts +1 -1
  13. package/dist/module.js +1 -1
  14. package/dist/module.js.map +1 -1
  15. package/dist/surveys-module-previews.js +1 -1
  16. package/dist/surveys-module-previews.js.map +1 -1
  17. package/dist/surveys.js +1 -1
  18. package/dist/surveys.js.map +1 -1
  19. package/lib/package.json +1 -1
  20. package/lib/src/extensions/replay/sessionrecording.js +2 -0
  21. package/lib/src/extensions/replay/sessionrecording.js.map +1 -1
  22. package/lib/src/extensions/surveys/components/BottomSection.jsx +3 -3
  23. package/lib/src/extensions/surveys/components/BottomSection.jsx.map +1 -1
  24. package/lib/src/extensions/surveys/components/ConfirmationMessage.d.ts +3 -3
  25. package/lib/src/extensions/surveys/components/ConfirmationMessage.jsx +3 -3
  26. package/lib/src/extensions/surveys/components/ConfirmationMessage.jsx.map +1 -1
  27. package/lib/src/extensions/surveys/components/QuestionHeader.jsx +2 -2
  28. package/lib/src/extensions/surveys/components/QuestionHeader.jsx.map +1 -1
  29. package/lib/src/extensions/surveys/components/QuestionTypes.d.ts +8 -12
  30. package/lib/src/extensions/surveys/components/QuestionTypes.jsx +21 -17
  31. package/lib/src/extensions/surveys/components/QuestionTypes.jsx.map +1 -1
  32. package/lib/src/extensions/surveys/surveys-utils.d.ts +3 -3
  33. package/lib/src/extensions/surveys/surveys-utils.jsx +7 -7
  34. package/lib/src/extensions/surveys/surveys-utils.jsx.map +1 -1
  35. package/lib/src/extensions/surveys.d.ts +3 -5
  36. package/lib/src/extensions/surveys.jsx +104 -68
  37. package/lib/src/extensions/surveys.jsx.map +1 -1
  38. package/lib/src/posthog-surveys-types.d.ts +1 -1
  39. package/lib/src/posthog-surveys-types.js.map +1 -1
  40. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"surveys.jsx","sourceRoot":"","sources":["../../../src/extensions/surveys.tsx"],"names":[],"mappings":"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","sourcesContent":["import { PostHog } from '../posthog-core'\nimport {\n BasicSurveyQuestion,\n LinkSurveyQuestion,\n MultipleSurveyQuestion,\n RatingSurveyQuestion,\n Survey,\n SurveyAppearance,\n SurveyQuestion,\n SurveyQuestionType,\n SurveyType,\n} from '../posthog-surveys-types'\n\nimport { window as _window, document as _document } from '../utils/globals'\nimport {\n style,\n defaultSurveyAppearance,\n sendSurveyEvent,\n createShadow,\n getContrastingTextColor,\n SurveyContext,\n getDisplayOrderQuestions,\n} from './surveys/surveys-utils'\nimport * as Preact from 'preact'\nimport { createWidgetShadow, createWidgetStyle } from './surveys-widget'\nimport { useState, useEffect, useRef, useContext, useMemo } from 'preact/hooks'\nimport { isNumber } from '../utils/type-utils'\nimport { ConfirmationMessage } from './surveys/components/ConfirmationMessage'\nimport {\n OpenTextQuestion,\n LinkQuestion,\n RatingQuestion,\n MultipleChoiceQuestion,\n} from './surveys/components/QuestionTypes'\n\n// We cast the types here which is dangerous but protected by the top level generateSurveys call\nconst window = _window as Window & typeof globalThis\nconst document = _document as Document\n\nconst handleWidget = (posthog: PostHog, survey: Survey) => {\n const shadow = createWidgetShadow(survey)\n const surveyStyleSheet = style(survey.appearance)\n shadow.appendChild(Object.assign(document.createElement('style'), { innerText: surveyStyleSheet }))\n Preact.render(<FeedbackWidget key={'feedback-survey'} posthog={posthog} survey={survey} />, shadow)\n}\n\nexport const callSurveys = (posthog: PostHog, forceReload: boolean = false) => {\n posthog?.getActiveMatchingSurveys((surveys) => {\n const nonAPISurveys = surveys.filter((survey) => survey.type !== 'api')\n nonAPISurveys.forEach((survey) => {\n if (survey.type === SurveyType.Widget) {\n if (\n survey.appearance?.widgetType === 'tab' &&\n document.querySelectorAll(`.PostHogWidget${survey.id}`).length === 0\n ) {\n handleWidget(posthog, survey)\n }\n if (survey.appearance?.widgetType === 'selector' && survey.appearance?.widgetSelector) {\n const selectorOnPage = document.querySelector(survey.appearance.widgetSelector)\n if (selectorOnPage) {\n if (document.querySelectorAll(`.PostHogWidget${survey.id}`).length === 0) {\n handleWidget(posthog, survey)\n } else if (document.querySelectorAll(`.PostHogWidget${survey.id}`).length === 1) {\n // we have to check if user selector already has a survey listener attached to it because we always have to check if it's on the page or not\n if (!selectorOnPage.getAttribute('PHWidgetSurveyClickListener')) {\n const surveyPopup = document\n .querySelector(`.PostHogWidget${survey.id}`)\n ?.shadowRoot?.querySelector(`.survey-form`) as HTMLFormElement\n selectorOnPage.addEventListener('click', () => {\n if (surveyPopup) {\n surveyPopup.style.display =\n surveyPopup.style.display === 'none' ? 'block' : 'none'\n surveyPopup.addEventListener(\n 'PHSurveyClosed',\n () => (surveyPopup.style.display = 'none')\n )\n }\n })\n selectorOnPage.setAttribute('PHWidgetSurveyClickListener', 'true')\n }\n }\n }\n }\n }\n if (\n survey.type === SurveyType.Popover &&\n document.querySelectorAll(\"div[class^='PostHogSurvey']\").length === 0\n ) {\n const surveyWaitPeriodInDays = survey.conditions?.seenSurveyWaitPeriodInDays\n const lastSeenSurveyDate = localStorage.getItem(`lastSeenSurveyDate`)\n if (surveyWaitPeriodInDays && lastSeenSurveyDate) {\n const today = new Date()\n const diff = Math.abs(today.getTime() - new Date(lastSeenSurveyDate).getTime())\n const diffDaysFromToday = Math.ceil(diff / (1000 * 3600 * 24))\n if (diffDaysFromToday < surveyWaitPeriodInDays) {\n return\n }\n }\n\n if (!localStorage.getItem(`seenSurvey_${survey.id}`)) {\n const shadow = createShadow(style(survey?.appearance), survey.id)\n Preact.render(<Surveys key={'popover-survey'} posthog={posthog} survey={survey} />, shadow)\n }\n }\n })\n }, forceReload)\n}\n\nexport const renderSurveysPreview = (\n survey: Survey,\n root: HTMLElement,\n displayState: 'survey' | 'confirmation',\n previewQuestionIndex: number\n) => {\n const surveyStyleSheet = style(survey.appearance)\n const styleElement = Object.assign(document.createElement('style'), { innerText: surveyStyleSheet })\n root.appendChild(styleElement)\n const textColor = getContrastingTextColor(\n survey.appearance?.backgroundColor || defaultSurveyAppearance.backgroundColor || 'white'\n )\n\n Preact.render(\n <Surveys\n key={'surveys-render-preview'}\n survey={survey}\n readOnly={true}\n initialDisplayState={displayState}\n previewQuestionIndex={previewQuestionIndex}\n style={{\n position: 'relative',\n right: 0,\n borderBottom: `1px solid ${survey.appearance?.borderColor}`,\n borderRadius: 10,\n color: textColor,\n }}\n />,\n root\n )\n}\n\nexport const renderFeedbackWidgetPreview = (survey: Survey, root: HTMLElement) => {\n const widgetStyleSheet = createWidgetStyle(survey.appearance?.widgetColor)\n const styleElement = Object.assign(document.createElement('style'), { innerText: widgetStyleSheet })\n root.appendChild(styleElement)\n Preact.render(<FeedbackWidget key={'feedback-render-preview'} survey={survey} readOnly={true} />, root)\n}\n\n// This is the main exported function\nexport function generateSurveys(posthog: PostHog) {\n // NOTE: Important to ensure we never try and run surveys without a window environment\n if (!document || !window) {\n return\n }\n callSurveys(posthog, true)\n\n // recalculate surveys every 3 seconds to check if URL or selectors have changed\n setInterval(() => {\n callSurveys(posthog, false)\n }, 3000)\n}\n\nexport function Surveys({\n survey,\n posthog,\n readOnly,\n style,\n initialDisplayState,\n previewQuestionIndex,\n}: {\n survey: Survey\n posthog?: PostHog\n readOnly?: boolean\n style?: React.CSSProperties\n initialDisplayState?: 'survey' | 'confirmation' | 'closed'\n previewQuestionIndex?: number\n}) {\n const [displayState, setDisplayState] = useState<'survey' | 'confirmation' | 'closed'>(\n initialDisplayState || 'survey'\n )\n\n useEffect(() => {\n if (readOnly || !posthog) {\n return\n }\n\n window.dispatchEvent(new Event('PHSurveyShown'))\n\n posthog.capture('survey shown', {\n $survey_name: survey.name,\n $survey_id: survey.id,\n sessionRecordingUrl: posthog.get_session_replay_url?.(),\n })\n localStorage.setItem(`lastSeenSurveyDate`, new Date().toISOString())\n\n window.addEventListener('PHSurveyClosed', () => {\n setDisplayState('closed')\n })\n\n window.addEventListener('PHSurveySent', () => {\n if (!survey.appearance?.displayThankYouMessage) {\n return setDisplayState('closed')\n }\n setDisplayState('confirmation')\n if (survey.appearance?.autoDisappear) {\n setTimeout(() => {\n setDisplayState('closed')\n }, 5000)\n }\n })\n }, [])\n const confirmationBoxLeftStyle = style?.left && isNumber(style?.left) ? { left: style.left - 40 } : {}\n\n return (\n <>\n <SurveyContext.Provider\n value={{\n readOnly: !!readOnly,\n previewQuestionIndex: previewQuestionIndex ?? 0,\n textColor: getContrastingTextColor(\n survey.appearance?.backgroundColor || defaultSurveyAppearance.backgroundColor\n ),\n }}\n >\n {displayState === 'survey' && <Questions survey={survey} posthog={posthog} styleOverrides={style} />}\n {displayState === 'confirmation' && (\n <ConfirmationMessage\n confirmationHeader={survey.appearance?.thankYouMessageHeader || 'Thank you!'}\n confirmationDescription={survey.appearance?.thankYouMessageDescription || ''}\n appearance={survey.appearance || defaultSurveyAppearance}\n styleOverrides={{ ...style, ...confirmationBoxLeftStyle }}\n onClose={() => setDisplayState('closed')}\n />\n )}\n </SurveyContext.Provider>\n </>\n )\n}\n\nconst questionTypeMap = (\n question: SurveyQuestion,\n questionIndex: number,\n appearance: SurveyAppearance,\n onSubmit: (res: string | string[] | number | null) => void,\n closeSurveyPopup: () => void\n): JSX.Element => {\n const mapping = {\n [SurveyQuestionType.Open]: (\n <OpenTextQuestion\n question={question as BasicSurveyQuestion}\n appearance={appearance}\n onSubmit={onSubmit}\n closeSurveyPopup={closeSurveyPopup}\n />\n ),\n [SurveyQuestionType.Link]: (\n <LinkQuestion\n question={question as LinkSurveyQuestion}\n appearance={appearance}\n onSubmit={onSubmit}\n closeSurveyPopup={closeSurveyPopup}\n />\n ),\n [SurveyQuestionType.Rating]: (\n <RatingQuestion\n question={question as RatingSurveyQuestion}\n appearance={appearance}\n questionIndex={questionIndex}\n onSubmit={onSubmit}\n closeSurveyPopup={closeSurveyPopup}\n />\n ),\n [SurveyQuestionType.SingleChoice]: (\n <MultipleChoiceQuestion\n question={question as MultipleSurveyQuestion}\n appearance={appearance}\n questionIndex={questionIndex}\n onSubmit={onSubmit}\n closeSurveyPopup={closeSurveyPopup}\n />\n ),\n [SurveyQuestionType.MultipleChoice]: (\n <MultipleChoiceQuestion\n question={question as MultipleSurveyQuestion}\n appearance={appearance}\n questionIndex={questionIndex}\n onSubmit={onSubmit}\n closeSurveyPopup={closeSurveyPopup}\n />\n ),\n }\n return mapping[question.type]\n}\n\nexport function Questions({\n survey,\n posthog,\n styleOverrides,\n}: {\n survey: Survey\n posthog?: PostHog\n styleOverrides?: React.CSSProperties\n}) {\n const textColor = getContrastingTextColor(\n survey.appearance?.backgroundColor || defaultSurveyAppearance.backgroundColor\n )\n const [questionsResponses, setQuestionsResponses] = useState({})\n const { readOnly, previewQuestionIndex } = useContext(SurveyContext)\n const [currentQuestion, setCurrentQuestion] = useState(readOnly ? previewQuestionIndex : 0)\n const surveyQuestions = useMemo(() => getDisplayOrderQuestions(survey), [survey])\n\n const onNextClick = (res: string | string[] | number | null, idx: number) => {\n const responseKey = idx === 0 ? `$survey_response` : `$survey_response_${idx}`\n if (idx === survey.questions.length - 1) {\n return sendSurveyEvent({ ...questionsResponses, [responseKey]: res }, survey, posthog)\n } else {\n setQuestionsResponses({ ...questionsResponses, [responseKey]: res })\n setCurrentQuestion(idx + 1)\n }\n }\n\n const questionToDisplay = readOnly ? previewQuestionIndex : currentQuestion\n const hasMultipleQuestions = survey.questions.length > 1\n const isPreviewThankYouMessage = readOnly && questionToDisplay === survey.questions.length\n\n return (\n <form\n // TODO: BEMify classes\n className=\"survey-form\"\n style={{\n color: textColor,\n borderColor: survey.appearance?.borderColor,\n ...styleOverrides,\n ...(isPreviewThankYouMessage ? { border: 'none', borderBottom: 'solid 1px rgb(201, 198, 198)' } : {}),\n }}\n >\n {isPreviewThankYouMessage ? (\n <ConfirmationMessage\n confirmationHeader={survey.appearance?.thankYouMessageHeader || 'Thank you!'}\n confirmationDescription={survey.appearance?.thankYouMessageDescription || ''}\n appearance={survey.appearance || defaultSurveyAppearance}\n styleOverrides={{\n ...style,\n position: 'relative',\n right: '0px',\n borderRadius: '10px',\n border: 'solid 1px rgb(201, 198, 198)',\n }}\n onClose={() => {}}\n />\n ) : (\n <>\n {surveyQuestions.map((question, idx) => {\n if (hasMultipleQuestions) {\n return (\n <>\n {questionToDisplay === idx && (\n <div className={`tab question-${idx} ${question.type}`}>\n {questionTypeMap(\n question,\n idx,\n survey.appearance || defaultSurveyAppearance,\n (res) => onNextClick(res, question.questionIndex || idx),\n () => closeSurveyPopup(survey, posthog, readOnly)\n )}\n </div>\n )}\n </>\n )\n }\n return questionTypeMap(\n surveyQuestions[idx],\n idx,\n survey.appearance || defaultSurveyAppearance,\n (res) => onNextClick(res, idx),\n () => closeSurveyPopup(survey, posthog, readOnly)\n )\n })}\n </>\n )}\n </form>\n )\n}\n\nconst closeSurveyPopup = (survey: Survey, posthog?: PostHog, readOnly?: boolean) => {\n // TODO: state management and unit tests for this would be nice\n if (readOnly || !posthog) {\n return\n }\n posthog.capture('survey dismissed', {\n $survey_name: survey.name,\n $survey_id: survey.id,\n sessionRecordingUrl: posthog.get_session_replay_url?.(),\n $set: {\n [`$survey_dismissed/${survey.id}`]: true,\n },\n })\n localStorage.setItem(`seenSurvey_${survey.id}`, 'true')\n window.dispatchEvent(new Event('PHSurveyClosed'))\n}\n\nexport function FeedbackWidget({\n survey,\n posthog,\n readOnly,\n}: {\n survey: Survey\n posthog?: PostHog\n readOnly?: boolean\n}): JSX.Element {\n const [showSurvey, setShowSurvey] = useState(false)\n const [styleOverrides, setStyle] = useState({})\n const widgetRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (readOnly || !posthog) {\n return\n }\n\n if (survey.appearance?.widgetType === 'tab') {\n if (widgetRef.current) {\n const widgetPos = widgetRef.current.getBoundingClientRect()\n const style = {\n top: '50%',\n left: parseInt(`${widgetPos.right - 360}`),\n bottom: 'auto',\n borderRadius: 10,\n borderBottom: `1.5px solid ${survey.appearance?.borderColor || '#c9c6c6'}`,\n }\n setStyle(style)\n }\n }\n if (survey.appearance?.widgetType === 'selector') {\n const widget = document.querySelector(survey.appearance.widgetSelector || '')\n widget?.addEventListener('click', () => {\n setShowSurvey(!showSurvey)\n })\n widget?.setAttribute('PHWidgetSurveyClickListener', 'true')\n }\n }, [])\n\n return (\n <>\n {survey.appearance?.widgetType === 'tab' && (\n <div\n className=\"ph-survey-widget-tab\"\n ref={widgetRef}\n onClick={() => !readOnly && setShowSurvey(!showSurvey)}\n style={{ color: getContrastingTextColor(survey.appearance.widgetColor) }}\n >\n <div className=\"ph-survey-widget-tab-icon\"></div>\n {survey.appearance?.widgetLabel || ''}\n </div>\n )}\n {showSurvey && (\n <Surveys key={'feedback-widget-survey'} posthog={posthog} survey={survey} style={styleOverrides} />\n )}\n </>\n )\n}\n"]}
1
+ {"version":3,"file":"surveys.jsx","sourceRoot":"","sources":["../../../src/extensions/surveys.tsx"],"names":[],"mappings":"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","sourcesContent":["import { PostHog } from '../posthog-core'\nimport { Survey, SurveyAppearance, SurveyQuestion, SurveyQuestionType, SurveyType } from '../posthog-surveys-types'\n\nimport { window as _window, document as _document } from '../utils/globals'\nimport {\n style,\n defaultSurveyAppearance,\n sendSurveyEvent,\n createShadow,\n getContrastingTextColor,\n SurveyContext,\n getDisplayOrderQuestions,\n} from './surveys/surveys-utils'\nimport * as Preact from 'preact'\nimport { createWidgetShadow, createWidgetStyle } from './surveys-widget'\nimport { useState, useEffect, useRef, useContext, useMemo } from 'preact/hooks'\nimport { isNumber } from '../utils/type-utils'\nimport { ConfirmationMessage } from './surveys/components/ConfirmationMessage'\nimport {\n OpenTextQuestion,\n LinkQuestion,\n RatingQuestion,\n MultipleChoiceQuestion,\n} from './surveys/components/QuestionTypes'\n\n// We cast the types here which is dangerous but protected by the top level generateSurveys call\nconst window = _window as Window & typeof globalThis\nconst document = _document as Document\n\nconst handleWidget = (posthog: PostHog, survey: Survey) => {\n const shadow = createWidgetShadow(survey)\n const surveyStyleSheet = style(survey.appearance)\n shadow.appendChild(Object.assign(document.createElement('style'), { innerText: surveyStyleSheet }))\n Preact.render(<FeedbackWidget key={'feedback-survey'} posthog={posthog} survey={survey} />, shadow)\n}\n\nexport const callSurveys = (posthog: PostHog, forceReload: boolean = false) => {\n posthog?.getActiveMatchingSurveys((surveys) => {\n const nonAPISurveys = surveys.filter((survey) => survey.type !== 'api')\n nonAPISurveys.forEach((survey) => {\n if (survey.type === SurveyType.Widget) {\n if (\n survey.appearance?.widgetType === 'tab' &&\n document.querySelectorAll(`.PostHogWidget${survey.id}`).length === 0\n ) {\n handleWidget(posthog, survey)\n }\n if (survey.appearance?.widgetType === 'selector' && survey.appearance?.widgetSelector) {\n const selectorOnPage = document.querySelector(survey.appearance.widgetSelector)\n if (selectorOnPage) {\n if (document.querySelectorAll(`.PostHogWidget${survey.id}`).length === 0) {\n handleWidget(posthog, survey)\n } else if (document.querySelectorAll(`.PostHogWidget${survey.id}`).length === 1) {\n // we have to check if user selector already has a survey listener attached to it because we always have to check if it's on the page or not\n if (!selectorOnPage.getAttribute('PHWidgetSurveyClickListener')) {\n const surveyPopup = document\n .querySelector(`.PostHogWidget${survey.id}`)\n ?.shadowRoot?.querySelector(`.survey-form`) as HTMLFormElement\n selectorOnPage.addEventListener('click', () => {\n if (surveyPopup) {\n surveyPopup.style.display =\n surveyPopup.style.display === 'none' ? 'block' : 'none'\n surveyPopup.addEventListener(\n 'PHSurveyClosed',\n () => (surveyPopup.style.display = 'none')\n )\n }\n })\n selectorOnPage.setAttribute('PHWidgetSurveyClickListener', 'true')\n }\n }\n }\n }\n }\n if (\n survey.type === SurveyType.Popover &&\n document.querySelectorAll(\"div[class^='PostHogSurvey']\").length === 0\n ) {\n const surveyWaitPeriodInDays = survey.conditions?.seenSurveyWaitPeriodInDays\n const lastSeenSurveyDate = localStorage.getItem(`lastSeenSurveyDate`)\n if (surveyWaitPeriodInDays && lastSeenSurveyDate) {\n const today = new Date()\n const diff = Math.abs(today.getTime() - new Date(lastSeenSurveyDate).getTime())\n const diffDaysFromToday = Math.ceil(diff / (1000 * 3600 * 24))\n if (diffDaysFromToday < surveyWaitPeriodInDays) {\n return\n }\n }\n\n if (!localStorage.getItem(`seenSurvey_${survey.id}`)) {\n const shadow = createShadow(style(survey?.appearance), survey.id)\n Preact.render(<SurveyPopup key={'popover-survey'} posthog={posthog} survey={survey} />, shadow)\n }\n }\n })\n }, forceReload)\n}\n\nexport const renderSurveysPreview = (survey: Survey, parentElement: HTMLElement, previewPageIndex: number) => {\n const surveyStyleSheet = style(survey.appearance)\n const styleElement = Object.assign(document.createElement('style'), { innerText: surveyStyleSheet })\n\n // Remove previously attached <style>\n Array.from(parentElement.children).forEach((child) => {\n if (child instanceof HTMLStyleElement) {\n parentElement.removeChild(child)\n }\n })\n\n parentElement.appendChild(styleElement)\n const textColor = getContrastingTextColor(\n survey.appearance?.backgroundColor || defaultSurveyAppearance.backgroundColor || 'white'\n )\n\n Preact.render(\n <SurveyPopup\n key=\"surveys-render-preview\"\n survey={survey}\n style={{\n position: 'relative',\n right: 0,\n borderBottom: `1px solid ${survey.appearance?.borderColor}`,\n borderRadius: 10,\n color: textColor,\n }}\n previewPageIndex={previewPageIndex}\n />,\n parentElement\n )\n}\n\nexport const renderFeedbackWidgetPreview = (survey: Survey, root: HTMLElement) => {\n const widgetStyleSheet = createWidgetStyle(survey.appearance?.widgetColor)\n const styleElement = Object.assign(document.createElement('style'), { innerText: widgetStyleSheet })\n root.appendChild(styleElement)\n Preact.render(<FeedbackWidget key={'feedback-render-preview'} survey={survey} readOnly={true} />, root)\n}\n\n// This is the main exported function\nexport function generateSurveys(posthog: PostHog) {\n // NOTE: Important to ensure we never try and run surveys without a window environment\n if (!document || !window) {\n return\n }\n callSurveys(posthog, true)\n\n // recalculate surveys every 3 seconds to check if URL or selectors have changed\n setInterval(() => {\n callSurveys(posthog, false)\n }, 3000)\n}\n\nexport function SurveyPopup({\n survey,\n posthog,\n style,\n previewPageIndex,\n}: {\n survey: Survey\n posthog?: PostHog\n style?: React.CSSProperties\n previewPageIndex?: number | undefined\n}) {\n const [isPopupVisible, setIsPopupVisible] = useState(true)\n const [isSurveySent, setIsSurveySent] = useState(false)\n const shouldShowConfirmation = isSurveySent || previewPageIndex === survey.questions.length\n const isPreviewMode = Number.isInteger(previewPageIndex)\n const confirmationBoxLeftStyle = style?.left && isNumber(style?.left) ? { left: style.left - 40 } : {}\n\n // Ensure the popup stays in the same position for the preview\n if (isPreviewMode) {\n style = style || {}\n style.left = 'unset'\n style.right = 'unset'\n style.transform = 'unset'\n }\n\n useEffect(() => {\n if (isPreviewMode || !posthog) {\n return\n }\n\n window.dispatchEvent(new Event('PHSurveyShown'))\n posthog.capture('survey shown', {\n $survey_name: survey.name,\n $survey_id: survey.id,\n sessionRecordingUrl: posthog.get_session_replay_url?.(),\n })\n localStorage.setItem(`lastSeenSurveyDate`, new Date().toISOString())\n\n window.addEventListener('PHSurveyClosed', () => {\n setIsPopupVisible(false)\n })\n window.addEventListener('PHSurveySent', () => {\n if (!survey.appearance?.displayThankYouMessage) {\n return setIsPopupVisible(false)\n }\n\n setIsSurveySent(true)\n\n if (survey.appearance?.autoDisappear) {\n setTimeout(() => {\n setIsPopupVisible(false)\n }, 5000)\n }\n })\n }, [])\n\n return isPopupVisible ? (\n <SurveyContext.Provider\n value={{\n isPreviewMode,\n previewPageIndex: previewPageIndex,\n handleCloseSurveyPopup: () => closeSurveyPopup(survey, posthog, isPreviewMode),\n }}\n >\n {!shouldShowConfirmation ? (\n <Questions survey={survey} posthog={posthog} styleOverrides={style} />\n ) : (\n <ConfirmationMessage\n header={survey.appearance?.thankYouMessageHeader || 'Thank you!'}\n description={survey.appearance?.thankYouMessageDescription || ''}\n appearance={survey.appearance || defaultSurveyAppearance}\n styleOverrides={{ ...style, ...confirmationBoxLeftStyle }}\n onClose={() => setIsPopupVisible(false)}\n />\n )}\n </SurveyContext.Provider>\n ) : (\n <></>\n )\n}\n\ninterface GetQuestionComponentProps {\n question: SurveyQuestion\n displayQuestionIndex: number\n appearance: SurveyAppearance\n onSubmit: (res: string | string[] | number | null) => void\n}\n\nconst getQuestionComponent = ({\n question,\n displayQuestionIndex,\n appearance,\n onSubmit,\n}: GetQuestionComponentProps): JSX.Element => {\n const questionComponents = {\n [SurveyQuestionType.Open]: OpenTextQuestion,\n [SurveyQuestionType.Link]: LinkQuestion,\n [SurveyQuestionType.Rating]: RatingQuestion,\n [SurveyQuestionType.SingleChoice]: MultipleChoiceQuestion,\n [SurveyQuestionType.MultipleChoice]: MultipleChoiceQuestion,\n }\n\n const commonProps = {\n question,\n appearance,\n onSubmit,\n }\n\n const additionalProps: Record<SurveyQuestionType, any> = {\n [SurveyQuestionType.Open]: {},\n [SurveyQuestionType.Link]: {},\n [SurveyQuestionType.Rating]: { displayQuestionIndex },\n [SurveyQuestionType.SingleChoice]: { displayQuestionIndex },\n [SurveyQuestionType.MultipleChoice]: { displayQuestionIndex },\n }\n\n const Component = questionComponents[question.type]\n const componentProps = { ...commonProps, ...additionalProps[question.type] }\n\n return <Component {...componentProps} />\n}\n\nexport function Questions({\n survey,\n posthog,\n styleOverrides,\n}: {\n survey: Survey\n posthog?: PostHog\n styleOverrides?: React.CSSProperties\n}) {\n const textColor = getContrastingTextColor(\n survey.appearance?.backgroundColor || defaultSurveyAppearance.backgroundColor\n )\n const [questionsResponses, setQuestionsResponses] = useState({})\n const { isPreviewMode, previewPageIndex } = useContext(SurveyContext)\n const [currentQuestionIndex, setCurrentQuestionIndex] = useState(previewPageIndex || 0)\n const surveyQuestions = useMemo(() => getDisplayOrderQuestions(survey), [survey])\n\n // Sync preview state\n useEffect(() => {\n setCurrentQuestionIndex(previewPageIndex ?? 0)\n }, [previewPageIndex])\n\n const onNextButtonClick = ({\n res,\n originalQuestionIndex,\n displayQuestionIndex,\n }: {\n res: string | string[] | number | null\n originalQuestionIndex: number\n displayQuestionIndex: number\n }) => {\n const isLastDisplayedQuestion = displayQuestionIndex === survey.questions.length - 1\n\n const responseKey =\n originalQuestionIndex === 0 ? `$survey_response` : `$survey_response_${originalQuestionIndex}`\n\n if (isLastDisplayedQuestion) {\n return sendSurveyEvent({ ...questionsResponses, [responseKey]: res }, survey, posthog)\n } else {\n setQuestionsResponses({ ...questionsResponses, [responseKey]: res })\n setCurrentQuestionIndex(displayQuestionIndex + 1)\n }\n }\n\n return (\n <form\n className=\"survey-form\"\n style={{\n color: textColor,\n borderColor: survey.appearance?.borderColor,\n ...styleOverrides,\n }}\n >\n {surveyQuestions.map((question, displayQuestionIndex) => {\n const { originalQuestionIndex } = question\n\n const isVisible = isPreviewMode\n ? currentQuestionIndex === originalQuestionIndex\n : currentQuestionIndex === displayQuestionIndex\n return (\n isVisible && (\n <div>\n {getQuestionComponent({\n question,\n displayQuestionIndex,\n appearance: survey.appearance || defaultSurveyAppearance,\n onSubmit: (res) =>\n onNextButtonClick({\n res,\n originalQuestionIndex,\n displayQuestionIndex,\n }),\n })}\n </div>\n )\n )\n })}\n </form>\n )\n}\n\nconst closeSurveyPopup = (survey: Survey, posthog?: PostHog, isPreviewMode?: boolean) => {\n if (isPreviewMode || !posthog) {\n return\n }\n posthog.capture('survey dismissed', {\n $survey_name: survey.name,\n $survey_id: survey.id,\n sessionRecordingUrl: posthog.get_session_replay_url?.(),\n $set: {\n [`$survey_dismissed/${survey.id}`]: true,\n },\n })\n localStorage.setItem(`seenSurvey_${survey.id}`, 'true')\n window.dispatchEvent(new Event('PHSurveyClosed'))\n}\n\nexport function FeedbackWidget({\n survey,\n posthog,\n readOnly,\n}: {\n survey: Survey\n posthog?: PostHog\n readOnly?: boolean\n}): JSX.Element {\n const [showSurvey, setShowSurvey] = useState(false)\n const [styleOverrides, setStyle] = useState({})\n const widgetRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (readOnly || !posthog) {\n return\n }\n\n if (survey.appearance?.widgetType === 'tab') {\n if (widgetRef.current) {\n const widgetPos = widgetRef.current.getBoundingClientRect()\n const style = {\n top: '50%',\n left: parseInt(`${widgetPos.right - 360}`),\n bottom: 'auto',\n borderRadius: 10,\n borderBottom: `1.5px solid ${survey.appearance?.borderColor || '#c9c6c6'}`,\n }\n setStyle(style)\n }\n }\n if (survey.appearance?.widgetType === 'selector') {\n const widget = document.querySelector(survey.appearance.widgetSelector || '')\n widget?.addEventListener('click', () => {\n setShowSurvey(!showSurvey)\n })\n widget?.setAttribute('PHWidgetSurveyClickListener', 'true')\n }\n }, [])\n\n return (\n <>\n {survey.appearance?.widgetType === 'tab' && (\n <div\n className=\"ph-survey-widget-tab\"\n ref={widgetRef}\n onClick={() => !readOnly && setShowSurvey(!showSurvey)}\n style={{ color: getContrastingTextColor(survey.appearance.widgetColor) }}\n >\n <div className=\"ph-survey-widget-tab-icon\"></div>\n {survey.appearance?.widgetLabel || ''}\n </div>\n )}\n {showSurvey && (\n <SurveyPopup key={'feedback-widget-survey'} posthog={posthog} survey={survey} style={styleOverrides} />\n )}\n </>\n )\n}\n"]}
@@ -39,7 +39,7 @@ interface SurveyQuestionBase {
39
39
  description?: string | null;
40
40
  optional?: boolean;
41
41
  buttonText?: string;
42
- questionIndex?: number;
42
+ originalQuestionIndex: number;
43
43
  }
44
44
  export interface BasicSurveyQuestion extends SurveyQuestionBase {
45
45
  type: SurveyQuestionType.Open;
@@ -1 +1 @@
1
- {"version":3,"file":"posthog-surveys-types.js","sourceRoot":"","sources":["../../src/posthog-surveys-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiCH,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,iCAAmB,CAAA;IACnB,yBAAW,CAAA;IACX,+BAAiB,CAAA;AACrB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAoCD,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC1B,mCAAa,CAAA;IACb,wDAAkC,CAAA;IAClC,oDAA8B,CAAA;IAC9B,uCAAiB,CAAA;IACjB,mCAAa,CAAA;AACjB,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B","sourcesContent":["/**\n * Having Survey types in types.ts was confusing tsc\n * and generating an invalid module.d.ts\n * See https://github.com/PostHog/posthog-js/issues/698\n */\n\nexport interface SurveyAppearance {\n // keep in sync with frontend/src/types.ts -> SurveyAppearance\n backgroundColor?: string\n submitButtonColor?: string\n // text color is deprecated, use auto contrast text color instead\n textColor?: string\n // deprecate submit button text eventually\n submitButtonText?: string\n descriptionTextColor?: string\n ratingButtonColor?: string\n ratingButtonActiveColor?: string\n ratingButtonHoverColor?: string\n whiteLabel?: boolean\n autoDisappear?: boolean\n displayThankYouMessage?: boolean\n thankYouMessageHeader?: string\n thankYouMessageDescription?: string\n borderColor?: string\n position?: 'left' | 'right' | 'center'\n placeholder?: string\n // widget options\n widgetType?: 'button' | 'tab' | 'selector'\n widgetSelector?: string\n widgetLabel?: string\n widgetColor?: string\n // questionable: Not in frontend/src/types.ts -> SurveyAppearance, but used in site app\n maxWidth?: string\n zIndex?: string\n shuffleQuestions?: boolean\n}\n\nexport enum SurveyType {\n Popover = 'popover',\n API = 'api',\n Widget = 'widget',\n}\n\nexport type SurveyQuestion = BasicSurveyQuestion | LinkSurveyQuestion | RatingSurveyQuestion | MultipleSurveyQuestion\n\ninterface SurveyQuestionBase {\n question: string\n description?: string | null\n optional?: boolean\n buttonText?: string\n questionIndex?: number\n}\n\nexport interface BasicSurveyQuestion extends SurveyQuestionBase {\n type: SurveyQuestionType.Open\n}\n\nexport interface LinkSurveyQuestion extends SurveyQuestionBase {\n type: SurveyQuestionType.Link\n link?: string | null\n}\n\nexport interface RatingSurveyQuestion extends SurveyQuestionBase {\n type: SurveyQuestionType.Rating\n display: 'number' | 'emoji'\n scale: number\n lowerBoundLabel: string\n upperBoundLabel: string\n}\n\nexport interface MultipleSurveyQuestion extends SurveyQuestionBase {\n type: SurveyQuestionType.SingleChoice | SurveyQuestionType.MultipleChoice\n choices: string[]\n hasOpenChoice?: boolean\n shuffleOptions?: boolean\n}\n\nexport enum SurveyQuestionType {\n Open = 'open',\n MultipleChoice = 'multiple_choice',\n SingleChoice = 'single_choice',\n Rating = 'rating',\n Link = 'link',\n}\n\nexport interface SurveyResponse {\n surveys: Survey[]\n}\n\nexport type SurveyCallback = (surveys: Survey[]) => void\n\nexport type SurveyUrlMatchType = 'regex' | 'exact' | 'icontains'\n\nexport interface Survey {\n // Sync this with the backend's SurveyAPISerializer!\n id: string\n name: string\n description: string\n type: SurveyType\n linked_flag_key: string | null\n targeting_flag_key: string | null\n internal_targeting_flag_key: string | null\n questions: SurveyQuestion[]\n appearance: SurveyAppearance | null\n conditions: {\n url?: string\n selector?: string\n seenSurveyWaitPeriodInDays?: number\n urlMatchType?: SurveyUrlMatchType\n } | null\n start_date: string | null\n end_date: string | null\n}\n"]}
1
+ {"version":3,"file":"posthog-surveys-types.js","sourceRoot":"","sources":["../../src/posthog-surveys-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiCH,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,iCAAmB,CAAA;IACnB,yBAAW,CAAA;IACX,+BAAiB,CAAA;AACrB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAoCD,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC1B,mCAAa,CAAA;IACb,wDAAkC,CAAA;IAClC,oDAA8B,CAAA;IAC9B,uCAAiB,CAAA;IACjB,mCAAa,CAAA;AACjB,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B","sourcesContent":["/**\n * Having Survey types in types.ts was confusing tsc\n * and generating an invalid module.d.ts\n * See https://github.com/PostHog/posthog-js/issues/698\n */\n\nexport interface SurveyAppearance {\n // keep in sync with frontend/src/types.ts -> SurveyAppearance\n backgroundColor?: string\n submitButtonColor?: string\n // text color is deprecated, use auto contrast text color instead\n textColor?: string\n // deprecate submit button text eventually\n submitButtonText?: string\n descriptionTextColor?: string\n ratingButtonColor?: string\n ratingButtonActiveColor?: string\n ratingButtonHoverColor?: string\n whiteLabel?: boolean\n autoDisappear?: boolean\n displayThankYouMessage?: boolean\n thankYouMessageHeader?: string\n thankYouMessageDescription?: string\n borderColor?: string\n position?: 'left' | 'right' | 'center'\n placeholder?: string\n // widget options\n widgetType?: 'button' | 'tab' | 'selector'\n widgetSelector?: string\n widgetLabel?: string\n widgetColor?: string\n // questionable: Not in frontend/src/types.ts -> SurveyAppearance, but used in site app\n maxWidth?: string\n zIndex?: string\n shuffleQuestions?: boolean\n}\n\nexport enum SurveyType {\n Popover = 'popover',\n API = 'api',\n Widget = 'widget',\n}\n\nexport type SurveyQuestion = BasicSurveyQuestion | LinkSurveyQuestion | RatingSurveyQuestion | MultipleSurveyQuestion\n\ninterface SurveyQuestionBase {\n question: string\n description?: string | null\n optional?: boolean\n buttonText?: string\n originalQuestionIndex: number\n}\n\nexport interface BasicSurveyQuestion extends SurveyQuestionBase {\n type: SurveyQuestionType.Open\n}\n\nexport interface LinkSurveyQuestion extends SurveyQuestionBase {\n type: SurveyQuestionType.Link\n link?: string | null\n}\n\nexport interface RatingSurveyQuestion extends SurveyQuestionBase {\n type: SurveyQuestionType.Rating\n display: 'number' | 'emoji'\n scale: number\n lowerBoundLabel: string\n upperBoundLabel: string\n}\n\nexport interface MultipleSurveyQuestion extends SurveyQuestionBase {\n type: SurveyQuestionType.SingleChoice | SurveyQuestionType.MultipleChoice\n choices: string[]\n hasOpenChoice?: boolean\n shuffleOptions?: boolean\n}\n\nexport enum SurveyQuestionType {\n Open = 'open',\n MultipleChoice = 'multiple_choice',\n SingleChoice = 'single_choice',\n Rating = 'rating',\n Link = 'link',\n}\n\nexport interface SurveyResponse {\n surveys: Survey[]\n}\n\nexport type SurveyCallback = (surveys: Survey[]) => void\n\nexport type SurveyUrlMatchType = 'regex' | 'exact' | 'icontains'\n\nexport interface Survey {\n // Sync this with the backend's SurveyAPISerializer!\n id: string\n name: string\n description: string\n type: SurveyType\n linked_flag_key: string | null\n targeting_flag_key: string | null\n internal_targeting_flag_key: string | null\n questions: SurveyQuestion[]\n appearance: SurveyAppearance | null\n conditions: {\n url?: string\n selector?: string\n seenSurveyWaitPeriodInDays?: number\n urlMatchType?: SurveyUrlMatchType\n } | null\n start_date: string | null\n end_date: string | null\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "posthog-js",
3
- "version": "1.136.5",
3
+ "version": "1.136.7",
4
4
  "description": "Posthog-js allows you to automatically capture usage and send events to PostHog.",
5
5
  "repository": "https://github.com/PostHog/posthog-js",
6
6
  "author": "hey@posthog.com",