posthog-js
Version:
Posthog-js allows you to automatically capture usage and send events to PostHog.
61 lines • 3.71 kB
JavaScript
;
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