UNPKG

posthog-js

Version:

Posthog-js allows you to automatically capture usage and send events to PostHog.

61 lines • 3.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DEFAULT_DISPLAY_SURVEY_OPTIONS = exports.IN_APP_SURVEY_TYPES = exports.setSurveySeenOnLocalStorage = exports.getSurveyAbandonedKey = exports.getSurveySeenKey = exports.getSurveyStorageKey = exports.SURVEY_ABANDONED_PREFIX = exports.SURVEY_IN_PROGRESS_PREFIX = exports.SURVEY_SEEN_PREFIX = exports.SURVEY_LOGGER = exports.isSurveyIterationBased = exports.getSurveyInteractionProperty = exports.doesSurveyActivateByEvent = void 0; exports.isSurveyRunning = isSurveyRunning; exports.doesSurveyActivateByAction = doesSurveyActivateByAction; var surveys_1 = require("@posthog/core/surveys"); var posthog_surveys_types_1 = require("../posthog-surveys-types"); var logger_1 = require("@posthog/browser-common/utils/logger"); var surveys_2 = require("@posthog/core/surveys"); Object.defineProperty(exports, "doesSurveyActivateByEvent", { enumerable: true, get: function () { return surveys_2.doesSurveyActivateByEvent; } }); Object.defineProperty(exports, "getSurveyInteractionProperty", { enumerable: true, get: function () { return surveys_2.getSurveyInteractionProperty; } }); Object.defineProperty(exports, "isSurveyIterationBased", { enumerable: true, get: function () { return surveys_2.isSurveyIterationBased; } }); exports.SURVEY_LOGGER = (0, logger_1.createLogger)('[Surveys]'); function isSurveyRunning(survey) { return !!(survey.start_date && !survey.end_date); } function doesSurveyActivateByAction(survey) { var _a, _b, _c; return !!((_c = (_b = (_a = survey.conditions) === null || _a === void 0 ? void 0 : _a.actions) === null || _b === void 0 ? void 0 : _b.values) === null || _c === void 0 ? void 0 : _c.length); } exports.SURVEY_SEEN_PREFIX = 'seenSurvey_'; exports.SURVEY_IN_PROGRESS_PREFIX = 'inProgressSurvey_'; exports.SURVEY_ABANDONED_PREFIX = 'abandonedSurvey_'; // Prefix namespacing is a localStorage concern, so it stays in the browser package; // the iteration-qualified key itself is shared with the other SDKs via @posthog/core. var getSurveyStorageKey = function (prefix, survey) { return "".concat(prefix).concat((0, surveys_1.getSurveyIterationKey)(survey)); }; exports.getSurveyStorageKey = getSurveyStorageKey; var getSurveySeenKey = function (survey) { return (0, exports.getSurveyStorageKey)(exports.SURVEY_SEEN_PREFIX, survey); }; exports.getSurveySeenKey = getSurveySeenKey; var getSurveyAbandonedKey = function (survey) { return (0, exports.getSurveyStorageKey)(exports.SURVEY_ABANDONED_PREFIX, survey); }; exports.getSurveyAbandonedKey = getSurveyAbandonedKey; var setSurveySeenOnLocalStorage = function (survey) { try { var surveySeenKey = (0, exports.getSurveySeenKey)(survey); var isSurveySeen = localStorage.getItem(surveySeenKey); // if survey is already seen, no need to set it again if (isSurveySeen) { return; } localStorage.setItem(surveySeenKey, 'true'); } catch (error) { exports.SURVEY_LOGGER.error('Failed to persist survey seen state', error); } }; exports.setSurveySeenOnLocalStorage = setSurveySeenOnLocalStorage; // These surveys are relevant for the getActiveMatchingSurveys method. They are used to // display surveys in our customer's application. Any new in-app survey type should be added here. exports.IN_APP_SURVEY_TYPES = [posthog_surveys_types_1.SurveyType.Popover, posthog_surveys_types_1.SurveyType.Widget, posthog_surveys_types_1.SurveyType.API]; exports.DEFAULT_DISPLAY_SURVEY_OPTIONS = { ignoreConditions: false, ignoreDelay: false, displayType: posthog_surveys_types_1.DisplaySurveyType.Popover, }; //# sourceMappingURL=survey-utils.js.map