diff --git a/dist/development/strigo.sdk.js b/dist/development/strigo.sdk.js
index 360315c..7a53807 100644
--- a/dist/development/strigo.sdk.js
+++ b/dist/development/strigo.sdk.js
@@ -10798,184 +10798,8 @@
}
});
- // src/strigo/consts.ts
- var INIT_SCRIPT_ID = "strigo-sdk";
- var BASE_STRIGO_URL = "strigo.io";
- var LOCAL_STRIGO_URL = "localhost:3000";
- var STRIGO_IFRAME_CLASSES = ["strigo-exercises"];
- var ORIGINAL_WEBSITE_IFRAME_CLASSES = ["orig-iframe"];
- var ACADEMY_HAT = `
-
-`;
- var CDN_BASE_PATH = "https://cdn.jsdelivr.net/gh/strigo/strigo-sdk";
- var ASSESSMENT_RECORDER_URL = "https://assessment-recorder.web.app";
-
- // src/modules/url/url.ts
- var STRIGO_CHILD_IFRAME_PARAM = "strigoChildIframe";
- function paramsToObject(entries) {
- const result = {};
- for (const [key, value] of entries) {
- result[key] = value;
- }
- return result;
- }
- function extractUrlParams(search) {
- const urlParams = new URLSearchParams(search);
- const entries = urlParams.entries();
- return paramsToObject(entries);
- }
- function getUrlData() {
- const { host, pathname, href, origin, search } = window.location;
- return {
- host,
- pathName: pathname,
- href,
- origin,
- search,
- params: extractUrlParams(search)
- };
- }
- function generateStrigoIframeURL(config) {
- const { subDomain, user, webApiKey, development } = config;
- return development ? `http://${LOCAL_STRIGO_URL}/academy/courses?token=${user.token.token}&webApiKey=${webApiKey}` : `https://${subDomain}.${BASE_STRIGO_URL}/academy/courses?token=${user.token.token}&webApiKey=${webApiKey}`;
- }
- function generateStrigoChildIframeURL(url) {
- const currentUrl = new URL(url);
- currentUrl.searchParams.set(STRIGO_CHILD_IFRAME_PARAM, "true");
- return currentUrl.toString();
- }
- function isStrigoChildIframe() {
- return window.location.search.includes(STRIGO_CHILD_IFRAME_PARAM);
- }
- function removeStrigoChildIframeParam() {
- const url = new URL(window.location.href);
- const searchParams = new URLSearchParams(url.search);
- searchParams.delete(STRIGO_CHILD_IFRAME_PARAM);
- url.search = searchParams.toString();
- window.history.replaceState(window.history.state, "", url);
- }
- function extractInitScriptParams() {
- const initScript = document.getElementById(INIT_SCRIPT_ID);
- return {
- webApiKey: initScript?.getAttribute("data-web-api-key") || "",
- subDomain: initScript?.getAttribute("data-subdomain") || "",
- selectedWidgetFlavor: initScript?.getAttribute("data-layout-flavor") || "dynamic" /* DYNAMIC */
- };
- }
- function generateCssURL(development, version) {
- if (development) {
- return `http://localhost:${SDK_HOSTING_PORT}/styles/strigo.css`;
- }
- if (version) {
- return `${CDN_BASE_PATH}@${version}/dist/production/styles/strigo.min.css`;
- }
- return `${CDN_BASE_PATH}@master/dist/production/styles/strigo.min.css`;
- }
- function generateWidgetCssURL(development, version) {
- if (development) {
- return `http://localhost:${SDK_HOSTING_PORT}/styles/strigo-widget.css`;
- }
- if (version) {
- return `${CDN_BASE_PATH}@${version}/dist/production/styles/strigo-widget.min.css`;
- }
- return `${CDN_BASE_PATH}@master/dist/production/styles/strigo-widget.min.css`;
- }
- function generateRecorderCssURL(development, version) {
- if (development) {
- return `http://localhost:${SDK_HOSTING_PORT}/styles/strigo-assessment-recorder.css`;
- }
- if (version) {
- return `${CDN_BASE_PATH}@${version}/dist/production/styles/strigo-assessment-recorder.min.css`;
- }
- return `${CDN_BASE_PATH}@master/dist/production/styles/strigo-assessment-recorder.min.css`;
- }
- function generateAssessmentRecorderURL(development) {
- return development ? `http://localhost:${RECORDER_HOSTING_PORT}` : ASSESSMENT_RECORDER_URL;
- }
- function isInRecordingMode() {
- const { search } = window.location;
- const urlParams = extractUrlParams(search);
- return "strigoAssessmentRecorder" in urlParams;
- }
- function isDevelopment() {
- const { search } = window.location;
- const urlParams = extractUrlParams(search);
- return "development" in urlParams;
- }
-
- // src/services/logger.ts
- var Logger = class {
- constructor(config) {
- this.url = config?.url;
- }
- setup(config) {
- this.url = config.url;
- }
- logToRemote(level, message, context) {
- return fetch(this.url, {
- method: "PUT",
- headers: {
- "Content-Type": "application/json"
- },
- body: JSON.stringify({
- level,
- message,
- context
- })
- }).then((result) => {
- if (!result.ok) {
- console.warn("Logging to Strigo failed", { result });
- }
- }).catch((error) => {
- console.warn("Logging to Strigo failed", { err: error });
- });
- }
- logToConsole(level, message, context) {
- const enrichedMessage = `${new Date().toISOString()} - ${message}`;
- const parsedContext = context.err instanceof Error ? { ...context, err: { message: context.err.message, name: context.err.name, stack: context.err.stack } } : context;
- console[level](enrichedMessage, context ? `
-${JSON.stringify(parsedContext)}` : "");
- }
- getDefaultContext() {
- const config = getConfig();
- if (!config) {
- return {};
- }
- const { user, subDomain, initSite, development, version, selectedWidgetFlavor } = config;
- return {
- token: user?.token.token,
- initSite: initSite?.href,
- subDomain,
- development,
- version,
- selectedWidgetFlavor
- };
- }
- log(level, message, context) {
- const enrichedContext = { ...this.getDefaultContext(), ...context };
- try {
- if (this.url && !getConfig()?.development) {
- this.logToRemote(level, message, enrichedContext);
- }
- this.logToConsole(level, `Academy - ${message}`, enrichedContext);
- } catch (err) {
- console.log("Logging error:", { err });
- }
- }
- debug(message, context = {}) {
- this.log("debug", message, context);
- }
- info(message, context = {}) {
- this.log("info", message, context);
- }
- warn(message, context = {}) {
- this.log("warn", message, context);
- }
- error(message, context = {}) {
- this.log("error", message, context);
- }
- };
- var LoggerInstance = new Logger();
+ // src/modules/assessment-recorder/assessment-recorder.ts
+ var import_html2canvas = __toESM(require_html2canvas(), 1);
// src/modules/storage-utils/storage-utils.ts
function getStorageData(storageType, storageName) {
@@ -11070,161 +10894,91 @@ ${JSON.stringify(parsedContext)}` : "");
}
}
- // src/modules/session/session.ts
- function setup2(initialSession) {
- const session = setupStorage("sessionStorage" /* SESSION_STORAGE */, "strigoSession" /* STRIGO_SESSION */, initialSession);
- return session;
- }
- function getSession() {
- const session = getStorageData("sessionStorage" /* SESSION_STORAGE */, "strigoSession" /* STRIGO_SESSION */);
- return session;
- }
- function isPanelOpen() {
- return getSession()?.isPanelOpen;
- }
- function getWidgetFlavor() {
- return getSession()?.widgetFlavor;
- }
- function setSessionValue(key, value) {
- const session = setStorageValue("sessionStorage" /* SESSION_STORAGE */, "strigoSession" /* STRIGO_SESSION */, key, value);
- return session;
- }
- function getSessionValue(key) {
- const session = getSession();
- return session?.[key];
- }
- function clearSession() {
- clearStorage("sessionStorage" /* SESSION_STORAGE */, "strigoSession" /* STRIGO_SESSION */);
- }
-
- // src/modules/events-storage/events-storage.ts
- function getEventsStorageData() {
- try {
- return JSON.parse(window["localStorage" /* LOCAL_STORAGE */].getItem("strigoEvents" /* STRIGO_EVENTS */));
- } catch (error) {
- LoggerInstance.error("Get events storage error", { error });
- return null;
+ // src/services/logger.ts
+ var Logger = class {
+ constructor(config) {
+ this.url = config?.url;
}
- }
- function init2() {
- try {
- const currentEventsStorage = getEventsStorageData();
- if (currentEventsStorage) {
- LoggerInstance.debug("Events storage already exists");
- return currentEventsStorage;
- }
- const storageEvents = { events: [] };
- window["localStorage" /* LOCAL_STORAGE */].setItem("strigoEvents" /* STRIGO_EVENTS */, JSON.stringify(storageEvents));
- return storageEvents;
- } catch (error) {
- LoggerInstance.error("Init events storage error", { error });
- return null;
+ setup(config) {
+ this.url = config.url;
}
- }
- function pushEventValue(event) {
- try {
- const initialState = getEventsStorageData();
- if (!initialState) {
- throw new Error("Can't find initial state");
- }
- const prev = JSON.stringify(initialState);
- initialState.events.push(event);
- window["localStorage" /* LOCAL_STORAGE */].setItem("strigoEvents" /* STRIGO_EVENTS */, JSON.stringify(initialState));
- if (getWidgetFlavor() === "overlay" /* OVERLAY */) {
- const customEvent = new CustomEvent("overlay-widget-event" /* OVERLAY_WIDGET_EVENT */, {
- bubbles: true,
- detail: {
- key: "strigoEvents",
- oldValue: prev,
- newValue: JSON.stringify(initialState)
- }
- });
- window.dispatchEvent(customEvent);
- }
- return initialState;
- } catch (error) {
- LoggerInstance.error("Push event to storage error", { error });
- return null;
+ logToRemote(level, message, context) {
+ return fetch(this.url, {
+ method: "PUT",
+ headers: {
+ "Content-Type": "application/json"
+ },
+ body: JSON.stringify({
+ level,
+ message,
+ context
+ })
+ }).then((result) => {
+ if (!result.ok) {
+ console.warn("Logging to Strigo failed", { result });
+ }
+ }).catch((error) => {
+ console.warn("Logging to Strigo failed", { err: error });
+ });
}
- }
- function popEventValue() {
- try {
- const initialState = getEventsStorageData();
- if (!initialState) {
- throw new Error("Can't find events storage");
- }
- const event = initialState.events.pop();
- window["localStorage" /* LOCAL_STORAGE */].setItem("strigoEvents" /* STRIGO_EVENTS */, JSON.stringify(initialState));
- return event;
- } catch (error) {
- LoggerInstance.error("Pop event from storage error", { error });
- return null;
+ logToConsole(level, message, context) {
+ const enrichedMessage = `${new Date().toISOString()} - ${message}`;
+ const parsedContext = context.err instanceof Error ? { ...context, err: { message: context.err.message, name: context.err.name, stack: context.err.stack } } : context;
+ console[level](enrichedMessage, context ? `
+${JSON.stringify(parsedContext)}` : "");
}
- }
- function getEventValue() {
- try {
- const initialState = getEventsStorageData();
- if (!initialState) {
- throw new Error("Can't find events storage");
+ getDefaultContext() {
+ const config = getConfig();
+ if (!config) {
+ return {};
}
- return initialState.events.pop();
- } catch (error) {
- LoggerInstance.error("Get event from storage error", { error });
- return null;
+ const { user, subDomain, initSite, development, version, selectedWidgetFlavor } = config;
+ return {
+ token: user?.token.token,
+ initSite: initSite?.href,
+ subDomain,
+ development,
+ version,
+ selectedWidgetFlavor
+ };
}
- }
- function clearEventsStorage() {
- try {
- window["localStorage" /* LOCAL_STORAGE */].removeItem("strigoEvents" /* STRIGO_EVENTS */);
- } catch (error) {
- LoggerInstance.error("Clear events storage error", { error });
+ log(level, message, context) {
+ const enrichedContext = { ...this.getDefaultContext(), ...context };
+ try {
+ if (this.url && !getConfig()?.development) {
+ this.logToRemote(level, message, enrichedContext);
+ }
+ this.logToConsole(level, `Academy - ${message}`, enrichedContext);
+ } catch (err) {
+ console.log("Logging error:", { err });
+ }
}
- }
-
- // src/modules/assessments-storage/assessments-storage.ts
- function getAssessmentsStorageData() {
- try {
- return JSON.parse(window["localStorage" /* LOCAL_STORAGE */].getItem("strigoAssessments" /* STRIGO_ASSESSMENTS */));
- } catch (error) {
- LoggerInstance.error("Get assessments storage error", { error });
- return null;
+ debug(message, context = {}) {
+ this.log("debug", message, context);
}
- }
- function init3() {
- try {
- const currentAssessmentsStorage = getAssessmentsStorageData();
- if (currentAssessmentsStorage) {
- LoggerInstance.debug("Assessments storage already exists");
- return currentAssessmentsStorage;
- }
- const strigoAssessments = { assessments: [] };
- window["localStorage" /* LOCAL_STORAGE */].setItem("strigoAssessments" /* STRIGO_ASSESSMENTS */, JSON.stringify(strigoAssessments));
- return strigoAssessments;
- } catch (error) {
- LoggerInstance.error("Init assessments storage error", { error });
- return null;
+ info(message, context = {}) {
+ this.log("info", message, context);
}
- }
- function setup3(initialStorage) {
- try {
- const strigoAssessments = initialStorage ? { assessments: [...initialStorage] } : { assessments: [] };
- window["localStorage" /* LOCAL_STORAGE */].setItem("strigoAssessments" /* STRIGO_ASSESSMENTS */, JSON.stringify(strigoAssessments));
- return strigoAssessments;
- } catch (error) {
- LoggerInstance.error("Assessments storage setup error", { error });
- return null;
+ warn(message, context = {}) {
+ this.log("warn", message, context);
}
- }
- function clearAssessmentStorage() {
- try {
- window["localStorage" /* LOCAL_STORAGE */].removeItem("strigoAssessments" /* STRIGO_ASSESSMENTS */);
- } catch (error) {
- LoggerInstance.error("Clear assessments storage error", { error });
+ error(message, context = {}) {
+ this.log("error", message, context);
}
- }
+ };
+ var LoggerInstance = new Logger();
- // src/modules/assessment-recorder/assessment-recorder.ts
- var import_html2canvas = __toESM(require_html2canvas(), 1);
+ // src/strigo/consts.ts
+ var INIT_SCRIPT_ID = "strigo-sdk";
+ var BASE_STRIGO_URL = "strigo.io";
+ var LOCAL_STRIGO_URL = "localhost:3000";
+ var STRIGO_IFRAME_CLASSES = ["strigo-exercises"];
+ var ORIGINAL_WEBSITE_IFRAME_CLASSES = ["orig-iframe"];
+ var ACADEMY_HAT = `
+
+`;
+ var CDN_BASE_PATH = "https://cdn.jsdelivr.net/gh/strigo/strigo-sdk";
+ var ASSESSMENT_RECORDER_URL = "https://assessment-recorder.web.app";
// src/modules/document/document.ts
function getHeadElement() {
@@ -11824,8 +11578,111 @@ ${JSON.stringify(parsedContext)}` : "");
rootDocument.addEventListener("mouseout", this.removeClickListenerFromHoveredElement);
}
+ // src/modules/url/url.ts
+ var STRIGO_CHILD_IFRAME_PARAM = "strigoChildIframe";
+ function paramsToObject(entries) {
+ const result = {};
+ for (const [key, value] of entries) {
+ result[key] = value;
+ }
+ return result;
+ }
+ function extractUrlParams(search) {
+ const urlParams = new URLSearchParams(search);
+ const entries = urlParams.entries();
+ return paramsToObject(entries);
+ }
+ function getUrlData() {
+ const { host, pathname, href, origin, search } = window.location;
+ return {
+ host,
+ pathName: pathname,
+ href,
+ origin,
+ search,
+ params: extractUrlParams(search)
+ };
+ }
+ function generateStrigoIframeURL(config) {
+ const { subDomain, user, webApiKey, development } = config;
+ return development ? `http://${LOCAL_STRIGO_URL}/academy/courses?token=${user.token.token}&webApiKey=${webApiKey}` : `https://${subDomain}.${BASE_STRIGO_URL}/academy/courses?token=${user.token.token}&webApiKey=${webApiKey}`;
+ }
+ function generateStrigoChildIframeURL(url) {
+ const currentUrl = new URL(url);
+ currentUrl.searchParams.set(STRIGO_CHILD_IFRAME_PARAM, "true");
+ return currentUrl.toString();
+ }
+ function isStrigoChildIframe() {
+ return window.location.search.includes(STRIGO_CHILD_IFRAME_PARAM);
+ }
+ function removeStrigoChildIframeParam() {
+ const url = new URL(window.location.href);
+ const searchParams = new URLSearchParams(url.search);
+ searchParams.delete(STRIGO_CHILD_IFRAME_PARAM);
+ url.search = searchParams.toString();
+ window.history.replaceState(window.history.state, "", url);
+ }
+ function extractInitScriptParams() {
+ const initScript = document.getElementById(INIT_SCRIPT_ID);
+ return {
+ webApiKey: initScript?.getAttribute("data-web-api-key") || "",
+ subDomain: initScript?.getAttribute("data-subdomain") || "",
+ selectedWidgetFlavor: initScript?.getAttribute("data-layout-flavor") || "dynamic" /* DYNAMIC */
+ };
+ }
+ function generateCssURL(development, version) {
+ if (development) {
+ return `http://localhost:${"7005"}/styles/strigo.css`;
+ }
+ if (version) {
+ return `${CDN_BASE_PATH}@${version}/dist/production/styles/strigo.min.css`;
+ }
+ return `${CDN_BASE_PATH}@master/dist/production/styles/strigo.min.css`;
+ }
+ function generateWidgetCssURL(development, version) {
+ if (development) {
+ return `http://localhost:${"7005"}/styles/strigo-widget.css`;
+ }
+ if (version) {
+ return `${CDN_BASE_PATH}@${version}/dist/production/styles/strigo-widget.min.css`;
+ }
+ return `${CDN_BASE_PATH}@master/dist/production/styles/strigo-widget.min.css`;
+ }
+ function generateRecorderCssURL(development, version) {
+ if (development) {
+ return `http://localhost:${"7005"}/styles/strigo-assessment-recorder.css`;
+ }
+ if (version) {
+ return `${CDN_BASE_PATH}@${version}/dist/production/styles/strigo-assessment-recorder.min.css`;
+ }
+ return `${CDN_BASE_PATH}@master/dist/production/styles/strigo-assessment-recorder.min.css`;
+ }
+ function generateAssessmentRecorderURL(development) {
+ return development ? `http://localhost:${"7015"}` : ASSESSMENT_RECORDER_URL;
+ }
+ function isRecordingUrlParamExists() {
+ const { search } = window.location;
+ const urlParams = extractUrlParams(search);
+ return "strigoAssessmentRecorder" in urlParams;
+ }
+ function isDevelopment() {
+ const { search } = window.location;
+ const urlParams = extractUrlParams(search);
+ return "development" in urlParams;
+ }
+
// src/modules/assessment-recorder/assessment-recorder.ts
+ function isRecordingMode() {
+ if (isRecordingUrlParamExists() || window.sessionStorage.getItem("isStrigoRecordingMode")) {
+ return true;
+ }
+ return false;
+ }
function addAssessmentRecorderIframe(development) {
+ window.sessionStorage.setItem("isStrigoRecordingMode", "true");
+ if (document.getElementById("strigo-assessment-recorder-iframe")) {
+ return;
+ }
const assessmentRecorderUrl = generateAssessmentRecorderURL(development);
appendCssFile({ parentElement: getHeadElement(), url: generateRecorderCssURL(development) });
const assessmentRecorderIframe = appendIFrame({
@@ -11876,6 +11733,7 @@ ${JSON.stringify(parsedContext)}` : "");
break;
}
case "submit-assessment" /* SUBMIT_ASSESSMENT */: {
+ window.sessionStorage.removeItem("isStrigoRecordingMode");
window.opener.postMessage(JSON.stringify({
assessment: {
...payload.assessment,
@@ -11886,6 +11744,7 @@ ${JSON.stringify(parsedContext)}` : "");
break;
}
case "cancel-assessment" /* CANCEL_ASSESSMENT */: {
+ window.sessionStorage.removeItem("isStrigoRecordingMode");
window.close();
break;
}
@@ -11896,6 +11755,159 @@ ${JSON.stringify(parsedContext)}` : "");
}, false);
}
+ // src/modules/session/session.ts
+ function setup2(initialSession) {
+ const session = setupStorage("sessionStorage" /* SESSION_STORAGE */, "strigoSession" /* STRIGO_SESSION */, initialSession);
+ return session;
+ }
+ function getSession() {
+ const session = getStorageData("sessionStorage" /* SESSION_STORAGE */, "strigoSession" /* STRIGO_SESSION */);
+ return session;
+ }
+ function isPanelOpen() {
+ return getSession()?.isPanelOpen;
+ }
+ function getWidgetFlavor() {
+ return getSession()?.widgetFlavor;
+ }
+ function setSessionValue(key, value) {
+ const session = setStorageValue("sessionStorage" /* SESSION_STORAGE */, "strigoSession" /* STRIGO_SESSION */, key, value);
+ return session;
+ }
+ function getSessionValue(key) {
+ const session = getSession();
+ return session?.[key];
+ }
+ function clearSession() {
+ clearStorage("sessionStorage" /* SESSION_STORAGE */, "strigoSession" /* STRIGO_SESSION */);
+ }
+
+ // src/modules/events-storage/events-storage.ts
+ function getEventsStorageData() {
+ try {
+ return JSON.parse(window["localStorage" /* LOCAL_STORAGE */].getItem("strigoEvents" /* STRIGO_EVENTS */));
+ } catch (error) {
+ LoggerInstance.error("Get events storage error", { error });
+ return null;
+ }
+ }
+ function init2() {
+ try {
+ const currentEventsStorage = getEventsStorageData();
+ if (currentEventsStorage) {
+ LoggerInstance.debug("Events storage already exists");
+ return currentEventsStorage;
+ }
+ const storageEvents = { events: [] };
+ window["localStorage" /* LOCAL_STORAGE */].setItem("strigoEvents" /* STRIGO_EVENTS */, JSON.stringify(storageEvents));
+ return storageEvents;
+ } catch (error) {
+ LoggerInstance.error("Init events storage error", { error });
+ return null;
+ }
+ }
+ function pushEventValue(event) {
+ try {
+ const initialState = getEventsStorageData();
+ if (!initialState) {
+ throw new Error("Can't find initial state");
+ }
+ const prev = JSON.stringify(initialState);
+ initialState.events.push(event);
+ window["localStorage" /* LOCAL_STORAGE */].setItem("strigoEvents" /* STRIGO_EVENTS */, JSON.stringify(initialState));
+ if (getWidgetFlavor() === "overlay" /* OVERLAY */) {
+ const customEvent = new CustomEvent("overlay-widget-event" /* OVERLAY_WIDGET_EVENT */, {
+ bubbles: true,
+ detail: {
+ key: "strigoEvents",
+ oldValue: prev,
+ newValue: JSON.stringify(initialState)
+ }
+ });
+ window.dispatchEvent(customEvent);
+ }
+ return initialState;
+ } catch (error) {
+ LoggerInstance.error("Push event to storage error", { error });
+ return null;
+ }
+ }
+ function popEventValue() {
+ try {
+ const initialState = getEventsStorageData();
+ if (!initialState) {
+ throw new Error("Can't find events storage");
+ }
+ const event = initialState.events.pop();
+ window["localStorage" /* LOCAL_STORAGE */].setItem("strigoEvents" /* STRIGO_EVENTS */, JSON.stringify(initialState));
+ return event;
+ } catch (error) {
+ LoggerInstance.error("Pop event from storage error", { error });
+ return null;
+ }
+ }
+ function getEventValue() {
+ try {
+ const initialState = getEventsStorageData();
+ if (!initialState) {
+ throw new Error("Can't find events storage");
+ }
+ return initialState.events.pop();
+ } catch (error) {
+ LoggerInstance.error("Get event from storage error", { error });
+ return null;
+ }
+ }
+ function clearEventsStorage() {
+ try {
+ window["localStorage" /* LOCAL_STORAGE */].removeItem("strigoEvents" /* STRIGO_EVENTS */);
+ } catch (error) {
+ LoggerInstance.error("Clear events storage error", { error });
+ }
+ }
+
+ // src/modules/assessments-storage/assessments-storage.ts
+ function getAssessmentsStorageData() {
+ try {
+ return JSON.parse(window["localStorage" /* LOCAL_STORAGE */].getItem("strigoAssessments" /* STRIGO_ASSESSMENTS */));
+ } catch (error) {
+ LoggerInstance.error("Get assessments storage error", { error });
+ return null;
+ }
+ }
+ function init3() {
+ try {
+ const currentAssessmentsStorage = getAssessmentsStorageData();
+ if (currentAssessmentsStorage) {
+ LoggerInstance.debug("Assessments storage already exists");
+ return currentAssessmentsStorage;
+ }
+ const strigoAssessments = { assessments: [] };
+ window["localStorage" /* LOCAL_STORAGE */].setItem("strigoAssessments" /* STRIGO_ASSESSMENTS */, JSON.stringify(strigoAssessments));
+ return strigoAssessments;
+ } catch (error) {
+ LoggerInstance.error("Init assessments storage error", { error });
+ return null;
+ }
+ }
+ function setup3(initialStorage) {
+ try {
+ const strigoAssessments = initialStorage ? { assessments: [...initialStorage] } : { assessments: [] };
+ window["localStorage" /* LOCAL_STORAGE */].setItem("strigoAssessments" /* STRIGO_ASSESSMENTS */, JSON.stringify(strigoAssessments));
+ return strigoAssessments;
+ } catch (error) {
+ LoggerInstance.error("Assessments storage setup error", { error });
+ return null;
+ }
+ }
+ function clearAssessmentStorage() {
+ try {
+ window["localStorage" /* LOCAL_STORAGE */].removeItem("strigoAssessments" /* STRIGO_ASSESSMENTS */);
+ } catch (error) {
+ LoggerInstance.error("Clear assessments storage error", { error });
+ }
+ }
+
// node_modules/split.js/dist/split.es.js
var global2 = typeof window !== "undefined" ? window : null;
var ssr = global2 === null;
@@ -12806,10 +12818,9 @@ ${JSON.stringify(parsedContext)}` : "");
// src/strigo.sdk.ts
window.Strigo = Strigo;
- if (isInRecordingMode()) {
- console.log("In recording mode");
+ if (isRecordingMode()) {
+ LoggerInstance.info("Strigo recorder mode");
const development = isDevelopment();
- console.log({ development });
window.Strigo.assessmentRecorder(development);
} else {
window.Strigo.init();
diff --git a/src/modules/assessment-recorder/assessment-recorder.ts b/src/modules/assessment-recorder/assessment-recorder.ts
index ad06c43..ba69825 100644
--- a/src/modules/assessment-recorder/assessment-recorder.ts
+++ b/src/modules/assessment-recorder/assessment-recorder.ts
@@ -3,7 +3,7 @@ import html2canvas from 'html2canvas';
import { Logger } from '../../services/logger';
import { appendCssFile, appendIFrame, getHeadElement } from '../document/document';
import { getElementSelector } from '../element-selector/element-selector';
-import { generateAssessmentRecorderURL, generateRecorderCssURL } from '../url/url';
+import { generateAssessmentRecorderURL, generateRecorderCssURL, isRecordingUrlParamExists } from '../url/url';
import {
AssessmentRecorderMessage,
@@ -12,7 +12,22 @@ import {
SelectedElement,
} from './assessment-recorder.types';
+export function isRecordingMode(): boolean {
+
+ if (isRecordingUrlParamExists() || window.sessionStorage.getItem('isStrigoRecordingMode')) {
+ return true;
+ }
+
+ return false;
+}
+
export function addAssessmentRecorderIframe(development: boolean): void {
+ window.sessionStorage.setItem('isStrigoRecordingMode', 'true');
+
+ if (document.getElementById('strigo-assessment-recorder-iframe')) {
+ return;
+ }
+
const assessmentRecorderUrl = generateAssessmentRecorderURL(development);
appendCssFile({ parentElement: getHeadElement(), url: generateRecorderCssURL(development) });
const assessmentRecorderIframe = appendIFrame({
@@ -80,6 +95,7 @@ export function addAssessmentRecorderIframe(development: boolean): void {
}
case ASSESSMENT_RECORDER_MESSAGE_TYPES.SUBMIT_ASSESSMENT: {
+ window.sessionStorage.removeItem('isStrigoRecordingMode');
window.opener.postMessage(
JSON.stringify({
assessment: {
@@ -95,6 +111,7 @@ export function addAssessmentRecorderIframe(development: boolean): void {
}
case ASSESSMENT_RECORDER_MESSAGE_TYPES.CANCEL_ASSESSMENT: {
+ window.sessionStorage.removeItem('isStrigoRecordingMode');
window.close();
break;
@@ -107,6 +124,4 @@ export function addAssessmentRecorderIframe(development: boolean): void {
},
false
);
-
- // Listen to messages
}
diff --git a/src/modules/session/session.types.ts b/src/modules/session/session.types.ts
index 5c46f67..206aa61 100644
--- a/src/modules/session/session.types.ts
+++ b/src/modules/session/session.types.ts
@@ -4,4 +4,5 @@ export interface StrigoSession {
isPanelOpen: boolean;
isLoading?: boolean;
widgetFlavor: WIDGET_FLAVORS;
+ isRecordingMode?: boolean;
}
diff --git a/src/modules/url/url.ts b/src/modules/url/url.ts
index 167ef54..6683a6c 100644
--- a/src/modules/url/url.ts
+++ b/src/modules/url/url.ts
@@ -119,7 +119,7 @@ export function generateAssessmentRecorderURL(development:boolean): string {
: ASSESSMENT_RECORDER_URL
}
-export function isInRecordingMode(): boolean {
+export function isRecordingUrlParamExists(): boolean {
const { search } = window.location;
const urlParams = extractUrlParams(search);
diff --git a/src/strigo.sdk.ts b/src/strigo.sdk.ts
index 4bbde53..5792aba 100644
--- a/src/strigo.sdk.ts
+++ b/src/strigo.sdk.ts
@@ -1,12 +1,13 @@
+import { isRecordingMode } from './modules/assessment-recorder/assessment-recorder';
import * as urlTools from './modules/url/url';
+import { Logger } from './services/logger';
import { Strigo } from './strigo';
window.Strigo = Strigo;
-if (urlTools.isInRecordingMode()) {
- console.log('In recording mode');
+if (isRecordingMode()) {
+ Logger.info('Strigo recorder mode')
const development = urlTools.isDevelopment();
- console.log({ development });
window.Strigo.assessmentRecorder(development);
} else {
window.Strigo.init();