@contentstack/live-preview-utils 4.4.3 → 4.4.4
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.
- package/README.md +3 -2
- package/dist/legacy/common/inIframe.cjs +9 -0
- package/dist/legacy/common/inIframe.cjs.map +1 -1
- package/dist/legacy/common/inIframe.d.cts +2 -1
- package/dist/legacy/common/inIframe.d.ts +2 -1
- package/dist/legacy/common/inIframe.js +8 -0
- package/dist/legacy/common/inIframe.js.map +1 -1
- package/dist/legacy/configManager/config.default.cjs +2 -1
- package/dist/legacy/configManager/config.default.cjs.map +1 -1
- package/dist/legacy/configManager/config.default.js +2 -1
- package/dist/legacy/configManager/config.default.js.map +1 -1
- package/dist/legacy/configManager/configManager.cjs +24 -5
- package/dist/legacy/configManager/configManager.cjs.map +1 -1
- package/dist/legacy/configManager/configManager.d.cts +11 -1
- package/dist/legacy/configManager/configManager.d.ts +11 -1
- package/dist/legacy/configManager/configManager.js +23 -5
- package/dist/legacy/configManager/configManager.js.map +1 -1
- package/dist/legacy/configManager/index.d.cts +1 -1
- package/dist/legacy/configManager/index.d.ts +1 -1
- package/dist/legacy/light-sdk.cjs +1 -1
- package/dist/legacy/light-sdk.js +1 -1
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs +11 -8
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs.map +1 -1
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js +13 -10
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js.map +1 -1
- package/dist/legacy/livePreview/onPageTraversal.cjs +1 -1
- package/dist/legacy/livePreview/onPageTraversal.cjs.map +1 -1
- package/dist/legacy/livePreview/onPageTraversal.js +1 -1
- package/dist/legacy/livePreview/onPageTraversal.js.map +1 -1
- package/dist/legacy/preview/contentstack-live-preview-HOC.cjs +37 -1
- package/dist/legacy/preview/contentstack-live-preview-HOC.cjs.map +1 -1
- package/dist/legacy/preview/contentstack-live-preview-HOC.d.cts +19 -0
- package/dist/legacy/preview/contentstack-live-preview-HOC.d.ts +19 -0
- package/dist/legacy/preview/contentstack-live-preview-HOC.js +39 -1
- package/dist/legacy/preview/contentstack-live-preview-HOC.js.map +1 -1
- package/dist/legacy/types/global.d.cjs +19 -0
- package/dist/legacy/types/global.d.cjs.map +1 -0
- package/dist/legacy/types/global.d.d.cts +8 -0
- package/dist/legacy/types/global.d.d.ts +8 -0
- package/dist/legacy/types/global.d.js +1 -0
- package/dist/legacy/types/global.d.js.map +1 -0
- package/dist/legacy/types/types.cjs.map +1 -1
- package/dist/legacy/types/types.d.cts +6 -1
- package/dist/legacy/types/types.d.ts +6 -1
- package/dist/legacy/types/types.js.map +1 -1
- package/dist/legacy/visualBuilder/index.cjs +8 -3
- package/dist/legacy/visualBuilder/index.cjs.map +1 -1
- package/dist/legacy/visualBuilder/index.js +8 -3
- package/dist/legacy/visualBuilder/index.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs +8 -0
- package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.js +8 -0
- package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/resolvePageContext.cjs +49 -0
- package/dist/legacy/visualBuilder/utils/resolvePageContext.cjs.map +1 -0
- package/dist/legacy/visualBuilder/utils/resolvePageContext.d.cts +6 -0
- package/dist/legacy/visualBuilder/utils/resolvePageContext.d.ts +6 -0
- package/dist/legacy/visualBuilder/utils/resolvePageContext.js +16 -0
- package/dist/legacy/visualBuilder/utils/resolvePageContext.js.map +1 -0
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs +1 -0
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.cts +6 -1
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.ts +6 -1
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.js +1 -0
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.js.map +1 -1
- package/dist/modern/common/inIframe.cjs +9 -0
- package/dist/modern/common/inIframe.cjs.map +1 -1
- package/dist/modern/common/inIframe.d.cts +2 -1
- package/dist/modern/common/inIframe.d.ts +2 -1
- package/dist/modern/common/inIframe.js +8 -0
- package/dist/modern/common/inIframe.js.map +1 -1
- package/dist/modern/configManager/config.default.cjs +2 -1
- package/dist/modern/configManager/config.default.cjs.map +1 -1
- package/dist/modern/configManager/config.default.js +2 -1
- package/dist/modern/configManager/config.default.js.map +1 -1
- package/dist/modern/configManager/configManager.cjs +24 -5
- package/dist/modern/configManager/configManager.cjs.map +1 -1
- package/dist/modern/configManager/configManager.d.cts +11 -1
- package/dist/modern/configManager/configManager.d.ts +11 -1
- package/dist/modern/configManager/configManager.js +23 -5
- package/dist/modern/configManager/configManager.js.map +1 -1
- package/dist/modern/configManager/index.d.cts +1 -1
- package/dist/modern/configManager/index.d.ts +1 -1
- package/dist/modern/light-sdk.cjs +1 -1
- package/dist/modern/light-sdk.js +1 -1
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +11 -8
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs.map +1 -1
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +13 -10
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js.map +1 -1
- package/dist/modern/livePreview/onPageTraversal.cjs +1 -1
- package/dist/modern/livePreview/onPageTraversal.cjs.map +1 -1
- package/dist/modern/livePreview/onPageTraversal.js +1 -1
- package/dist/modern/livePreview/onPageTraversal.js.map +1 -1
- package/dist/modern/preview/contentstack-live-preview-HOC.cjs +36 -1
- package/dist/modern/preview/contentstack-live-preview-HOC.cjs.map +1 -1
- package/dist/modern/preview/contentstack-live-preview-HOC.d.cts +19 -0
- package/dist/modern/preview/contentstack-live-preview-HOC.d.ts +19 -0
- package/dist/modern/preview/contentstack-live-preview-HOC.js +38 -1
- package/dist/modern/preview/contentstack-live-preview-HOC.js.map +1 -1
- package/dist/modern/types/global.d.cjs +19 -0
- package/dist/modern/types/global.d.cjs.map +1 -0
- package/dist/modern/types/global.d.d.cts +8 -0
- package/dist/modern/types/global.d.d.ts +8 -0
- package/dist/modern/types/global.d.js +1 -0
- package/dist/modern/types/global.d.js.map +1 -0
- package/dist/modern/types/types.cjs.map +1 -1
- package/dist/modern/types/types.d.cts +6 -1
- package/dist/modern/types/types.d.ts +6 -1
- package/dist/modern/types/types.js.map +1 -1
- package/dist/modern/visualBuilder/index.cjs +8 -3
- package/dist/modern/visualBuilder/index.cjs.map +1 -1
- package/dist/modern/visualBuilder/index.js +8 -3
- package/dist/modern/visualBuilder/index.js.map +1 -1
- package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs +8 -0
- package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.js +8 -0
- package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.js.map +1 -1
- package/dist/modern/visualBuilder/utils/resolvePageContext.cjs +48 -0
- package/dist/modern/visualBuilder/utils/resolvePageContext.cjs.map +1 -0
- package/dist/modern/visualBuilder/utils/resolvePageContext.d.cts +6 -0
- package/dist/modern/visualBuilder/utils/resolvePageContext.d.ts +6 -0
- package/dist/modern/visualBuilder/utils/resolvePageContext.js +15 -0
- package/dist/modern/visualBuilder/utils/resolvePageContext.js.map +1 -0
- package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs +1 -0
- package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/types/postMessage.types.d.cts +6 -1
- package/dist/modern/visualBuilder/utils/types/postMessage.types.d.ts +6 -1
- package/dist/modern/visualBuilder/utils/types/postMessage.types.js +1 -0
- package/dist/modern/visualBuilder/utils/types/postMessage.types.js.map +1 -1
- package/package.json +1 -1
- package/dist/legacy/utils/handlePageTraversal.cjs +0 -47
- package/dist/legacy/utils/handlePageTraversal.cjs.map +0 -1
- package/dist/legacy/utils/handlePageTraversal.d.cts +0 -3
- package/dist/legacy/utils/handlePageTraversal.d.ts +0 -3
- package/dist/legacy/utils/handlePageTraversal.js +0 -24
- package/dist/legacy/utils/handlePageTraversal.js.map +0 -1
- package/dist/modern/utils/handlePageTraversal.cjs +0 -47
- package/dist/modern/utils/handlePageTraversal.cjs.map +0 -1
- package/dist/modern/utils/handlePageTraversal.d.cts +0 -3
- package/dist/modern/utils/handlePageTraversal.d.ts +0 -3
- package/dist/modern/utils/handlePageTraversal.js +0 -24
- package/dist/modern/utils/handlePageTraversal.js.map +0 -1
|
@@ -21,6 +21,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
var inIframe_exports = {};
|
|
22
22
|
__export(inIframe_exports, {
|
|
23
23
|
inIframe: () => inIframe,
|
|
24
|
+
inVisualEditor: () => inVisualEditor,
|
|
24
25
|
isOpeningInNewTab: () => isOpeningInNewTab
|
|
25
26
|
});
|
|
26
27
|
module.exports = __toCommonJS(inIframe_exports);
|
|
@@ -32,6 +33,13 @@ function inIframe() {
|
|
|
32
33
|
return true;
|
|
33
34
|
}
|
|
34
35
|
}
|
|
36
|
+
function inVisualEditor() {
|
|
37
|
+
try {
|
|
38
|
+
return inIframe() && window?.name == "visual-editor";
|
|
39
|
+
} catch (e) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
35
43
|
function isOpeningInNewTab() {
|
|
36
44
|
try {
|
|
37
45
|
if ((0, import_utils.hasWindow)()) {
|
|
@@ -45,6 +53,7 @@ function isOpeningInNewTab() {
|
|
|
45
53
|
// Annotate the CommonJS export names for ESM import in node:
|
|
46
54
|
0 && (module.exports = {
|
|
47
55
|
inIframe,
|
|
56
|
+
inVisualEditor,
|
|
48
57
|
isOpeningInNewTab
|
|
49
58
|
});
|
|
50
59
|
//# sourceMappingURL=inIframe.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/common/inIframe.ts"],"sourcesContent":["import { hasWindow } from \"../utils\";\n\nexport function inIframe(): boolean {\n try {\n return window.self !== window.top;\n } catch (e) {\n return true;\n }\n}\n\nexport function isOpeningInNewTab(): boolean {\n try {\n if(hasWindow()) {\n return !!window.opener;\n }\n return false;\n } catch (e) {\n return false;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAEnB,SAAS,WAAoB;AAChC,MAAI;AACA,WAAO,OAAO,SAAS,OAAO;AAAA,EAClC,SAAS,GAAG;AACR,WAAO;AAAA,EACX;AACJ;AAEO,SAAS,oBAA6B;AACzC,MAAI;AACA,YAAG,wBAAU,GAAG;AACZ,aAAO,CAAC,CAAC,OAAO;AAAA,IACpB;AACA,WAAO;AAAA,EACX,SAAS,GAAG;AACR,WAAO;AAAA,EACX;AACJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/common/inIframe.ts"],"sourcesContent":["import { hasWindow } from \"../utils\";\n\nexport function inIframe(): boolean {\n try {\n return window.self !== window.top;\n } catch (e) {\n return true;\n }\n}\n\nexport function inVisualEditor(): boolean{\n try {\n return inIframe() && window?.name == 'visual-editor'\n } catch (e) {\n return false;\n }\n}\n\nexport function isOpeningInNewTab(): boolean {\n try {\n if(hasWindow()) {\n return !!window.opener;\n }\n return false;\n } catch (e) {\n return false;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAEnB,SAAS,WAAoB;AAChC,MAAI;AACA,WAAO,OAAO,SAAS,OAAO;AAAA,EAClC,SAAS,GAAG;AACR,WAAO;AAAA,EACX;AACJ;AAEO,SAAS,iBAAyB;AACrC,MAAI;AACA,WAAO,SAAS,KAAK,QAAQ,QAAQ;AAAA,EACzC,SAAS,GAAG;AACR,WAAO;AAAA,EACX;AACJ;AAEO,SAAS,oBAA6B;AACzC,MAAI;AACA,YAAG,wBAAU,GAAG;AACZ,aAAO,CAAC,CAAC,OAAO;AAAA,IACpB;AACA,WAAO;AAAA,EACX,SAAS,GAAG;AACR,WAAO;AAAA,EACX;AACJ;","names":[]}
|
|
@@ -9,6 +9,13 @@ function inIframe() {
|
|
|
9
9
|
return true;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
+
function inVisualEditor() {
|
|
13
|
+
try {
|
|
14
|
+
return inIframe() && window?.name == "visual-editor";
|
|
15
|
+
} catch (e) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
12
19
|
function isOpeningInNewTab() {
|
|
13
20
|
try {
|
|
14
21
|
if (hasWindow()) {
|
|
@@ -21,6 +28,7 @@ function isOpeningInNewTab() {
|
|
|
21
28
|
}
|
|
22
29
|
export {
|
|
23
30
|
inIframe,
|
|
31
|
+
inVisualEditor,
|
|
24
32
|
isOpeningInNewTab
|
|
25
33
|
};
|
|
26
34
|
//# sourceMappingURL=inIframe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/common/inIframe.ts"],"sourcesContent":["import { hasWindow } from \"../utils\";\n\nexport function inIframe(): boolean {\n try {\n return window.self !== window.top;\n } catch (e) {\n return true;\n }\n}\n\nexport function isOpeningInNewTab(): boolean {\n try {\n if(hasWindow()) {\n return !!window.opener;\n }\n return false;\n } catch (e) {\n return false;\n }\n}\n"],"mappings":";;;AAAA,SAAS,iBAAiB;AAEnB,SAAS,WAAoB;AAChC,MAAI;AACA,WAAO,OAAO,SAAS,OAAO;AAAA,EAClC,SAAS,GAAG;AACR,WAAO;AAAA,EACX;AACJ;AAEO,SAAS,oBAA6B;AACzC,MAAI;AACA,QAAG,UAAU,GAAG;AACZ,aAAO,CAAC,CAAC,OAAO;AAAA,IACpB;AACA,WAAO;AAAA,EACX,SAAS,GAAG;AACR,WAAO;AAAA,EACX;AACJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/common/inIframe.ts"],"sourcesContent":["import { hasWindow } from \"../utils\";\n\nexport function inIframe(): boolean {\n try {\n return window.self !== window.top;\n } catch (e) {\n return true;\n }\n}\n\nexport function inVisualEditor(): boolean{\n try {\n return inIframe() && window?.name == 'visual-editor'\n } catch (e) {\n return false;\n }\n}\n\nexport function isOpeningInNewTab(): boolean {\n try {\n if(hasWindow()) {\n return !!window.opener;\n }\n return false;\n } catch (e) {\n return false;\n }\n}\n"],"mappings":";;;AAAA,SAAS,iBAAiB;AAEnB,SAAS,WAAoB;AAChC,MAAI;AACA,WAAO,OAAO,SAAS,OAAO;AAAA,EAClC,SAAS,GAAG;AACR,WAAO;AAAA,EACX;AACJ;AAEO,SAAS,iBAAyB;AACrC,MAAI;AACA,WAAO,SAAS,KAAK,QAAQ,QAAQ;AAAA,EACzC,SAAS,GAAG;AACR,WAAO;AAAA,EACX;AACJ;AAEO,SAAS,oBAA6B;AACzC,MAAI;AACA,QAAG,UAAU,GAAG;AACZ,aAAO,CAAC,CAAC,OAAO;AAAA,IACpB;AACA,WAAO;AAAA,EACX,SAAS,GAAG;AACR,WAAO;AAAA,EACX;AACJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/configManager/config.default.ts"],"sourcesContent":["import {\n ILivePreviewWindowType,\n type IConfig,\n type IInitData,\n} from \"../types/types\";\n\nexport function getUserInitData(): IInitData {\n return {\n ssr: true,\n enable: true,\n debug: false,\n cleanCslpOnProduction: true,\n editButton: {\n enable: true,\n exclude: [],\n position: \"top\",\n includeByQueryParameter: true,\n },\n editInVisualBuilderButton: {\n enable: true,\n position: \"bottom-right\"\n },\n overlayPropagation: {\n enable: false,\n },\n\n mode: \"preview\",\n\n stackDetails: {\n apiKey: \"\",\n environment: \"\",\n branch: \"\",\n },\n\n clientUrlParams: {\n protocol: \"https\",\n host: \"app.contentstack.com\",\n port: 443,\n },\n stackSdk: {\n live_preview: {},\n environment: \"\",\n },\n runScriptsOnUpdate: false,\n enableLivePreviewOutsideIframe: undefined,\n };\n}\n\nexport function getDefaultConfig(): IConfig {\n return {\n ssr: true,\n enable: true,\n debug: false,\n cleanCslpOnProduction: true,\n editButton: {\n enable: true,\n exclude: [],\n position: \"top\",\n includeByQueryParameter: true,\n },\n editInVisualBuilderButton: {\n enable: true,\n position: \"bottom-right\"\n },\n overlayPropagation: {\n enable: false,\n },\n\n hash: \"\",\n mode: 1,\n windowType: ILivePreviewWindowType.INDEPENDENT,\n\n stackDetails: {\n apiKey: \"\",\n environment: \"\",\n contentTypeUid: \"\",\n entryUid: \"\",\n locale: \"en-us\",\n branch: \"main\",\n masterLocale: \"en-us\",\n },\n\n clientUrlParams: {\n protocol: \"https\",\n host: \"app.contentstack.com\",\n port: 443,\n url: \"https://app.contentstack.com:443\",\n },\n stackSdk: {\n live_preview: {},\n headers: {\n api_key: \"\",\n },\n environment: \"\",\n },\n runScriptsOnUpdate: false,\n\n onChange() {\n return;\n },\n\n elements: {\n highlightedElement: null,\n },\n collab: {\n enable: false,\n fromShare: false,\n pauseFeedback: false,\n isFeedbackMode: false,\n inviteMetadata: {\n currentUser: {\n email: \"\",\n uid: \"\",\n },\n users: [],\n inviteUid: \"\",\n },\n payload: [],\n },\n enableLivePreviewOutsideIframe: undefined,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAIO;AAEA,SAAS,kBAA6B;AACzC,SAAO;AAAA,IACH,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,uBAAuB;AAAA,IACvB,YAAY;AAAA,MACR,QAAQ;AAAA,MACR,SAAS,CAAC;AAAA,MACV,UAAU;AAAA,MACV,yBAAyB;AAAA,IAC7B;AAAA,IACA,2BAA2B;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,IACd;AAAA,IACA,oBAAoB;AAAA,MAChB,QAAQ;AAAA,IACZ;AAAA,IAEA,MAAM;AAAA,IAEN,cAAc;AAAA,MACV,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,QAAQ;AAAA,IACZ;AAAA,IAEA,iBAAiB;AAAA,MACb,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,IACV;AAAA,IACA,UAAU;AAAA,MACN,cAAc,CAAC;AAAA,MACf,aAAa;AAAA,IACjB;AAAA,IACA,oBAAoB;AAAA,IACpB,gCAAgC;AAAA,EACpC;AACJ;AAEO,SAAS,mBAA4B;AACxC,SAAO;AAAA,IACH,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,uBAAuB;AAAA,IACvB,YAAY;AAAA,MACR,QAAQ;AAAA,MACR,SAAS,CAAC;AAAA,MACV,UAAU;AAAA,MACV,yBAAyB;AAAA,IAC7B;AAAA,IACA,2BAA2B;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,IACd;AAAA,IACA,oBAAoB;AAAA,MAChB,QAAQ;AAAA,IACZ;AAAA,IAEA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,YAAY,oCAAuB;AAAA,IAEnC,cAAc;AAAA,MACV,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,cAAc;AAAA,IAClB;AAAA,IAEA,iBAAiB;AAAA,MACb,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,MACN,KAAK;AAAA,IACT;AAAA,IACA,UAAU;AAAA,MACN,cAAc,CAAC;AAAA,MACf,SAAS;AAAA,QACL,SAAS;AAAA,MACb;AAAA,MACA,aAAa;AAAA,IACjB;AAAA,IACA,oBAAoB;AAAA,IAEpB,WAAW;AACP;AAAA,IACJ;AAAA,IAEA,UAAU;AAAA,MACN,oBAAoB;AAAA,IACxB;AAAA,IACA,QAAQ;AAAA,MACJ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,QACZ,aAAa;AAAA,UACT,OAAO;AAAA,UACP,KAAK;AAAA,QACT;AAAA,QACA,OAAO,CAAC;AAAA,QACR,WAAW;AAAA,MACf;AAAA,MACA,SAAS,CAAC;AAAA,IACd;AAAA,IACA,gCAAgC;AAAA,
|
|
1
|
+
{"version":3,"sources":["../../../src/configManager/config.default.ts"],"sourcesContent":["import {\n ILivePreviewWindowType,\n type IConfig,\n type IInitData,\n} from \"../types/types\";\n\nexport function getUserInitData(): IInitData {\n return {\n ssr: true,\n enable: true,\n debug: false,\n cleanCslpOnProduction: true,\n editButton: {\n enable: true,\n exclude: [],\n position: \"top\",\n includeByQueryParameter: true,\n },\n editInVisualBuilderButton: {\n enable: true,\n position: \"bottom-right\"\n },\n overlayPropagation: {\n enable: false,\n },\n\n mode: \"preview\",\n\n stackDetails: {\n apiKey: \"\",\n environment: \"\",\n branch: \"\",\n },\n\n clientUrlParams: {\n protocol: \"https\",\n host: \"app.contentstack.com\",\n port: 443,\n },\n stackSdk: {\n live_preview: {},\n environment: \"\",\n },\n runScriptsOnUpdate: false,\n enableLivePreviewOutsideIframe: undefined,\n };\n}\n\nexport function getDefaultConfig(): IConfig {\n return {\n ssr: true,\n enable: true,\n debug: false,\n cleanCslpOnProduction: true,\n editButton: {\n enable: true,\n exclude: [],\n position: \"top\",\n includeByQueryParameter: true,\n },\n editInVisualBuilderButton: {\n enable: true,\n position: \"bottom-right\"\n },\n overlayPropagation: {\n enable: false,\n },\n\n hash: \"\",\n mode: 1,\n windowType: ILivePreviewWindowType.INDEPENDENT,\n\n stackDetails: {\n apiKey: \"\",\n environment: \"\",\n contentTypeUid: \"\",\n entryUid: \"\",\n locale: \"en-us\",\n branch: \"main\",\n masterLocale: \"en-us\",\n },\n\n clientUrlParams: {\n protocol: \"https\",\n host: \"app.contentstack.com\",\n port: 443,\n url: \"https://app.contentstack.com:443\",\n },\n stackSdk: {\n live_preview: {},\n headers: {\n api_key: \"\",\n },\n environment: \"\",\n },\n runScriptsOnUpdate: false,\n\n onChange() {\n return;\n },\n\n elements: {\n highlightedElement: null,\n },\n collab: {\n enable: false,\n fromShare: false,\n pauseFeedback: false,\n isFeedbackMode: false,\n inviteMetadata: {\n currentUser: {\n email: \"\",\n uid: \"\",\n },\n users: [],\n inviteUid: \"\",\n },\n payload: [],\n },\n enableLivePreviewOutsideIframe: undefined,\n pageContext: null,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAIO;AAEA,SAAS,kBAA6B;AACzC,SAAO;AAAA,IACH,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,uBAAuB;AAAA,IACvB,YAAY;AAAA,MACR,QAAQ;AAAA,MACR,SAAS,CAAC;AAAA,MACV,UAAU;AAAA,MACV,yBAAyB;AAAA,IAC7B;AAAA,IACA,2BAA2B;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,IACd;AAAA,IACA,oBAAoB;AAAA,MAChB,QAAQ;AAAA,IACZ;AAAA,IAEA,MAAM;AAAA,IAEN,cAAc;AAAA,MACV,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,QAAQ;AAAA,IACZ;AAAA,IAEA,iBAAiB;AAAA,MACb,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,IACV;AAAA,IACA,UAAU;AAAA,MACN,cAAc,CAAC;AAAA,MACf,aAAa;AAAA,IACjB;AAAA,IACA,oBAAoB;AAAA,IACpB,gCAAgC;AAAA,EACpC;AACJ;AAEO,SAAS,mBAA4B;AACxC,SAAO;AAAA,IACH,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,uBAAuB;AAAA,IACvB,YAAY;AAAA,MACR,QAAQ;AAAA,MACR,SAAS,CAAC;AAAA,MACV,UAAU;AAAA,MACV,yBAAyB;AAAA,IAC7B;AAAA,IACA,2BAA2B;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,IACd;AAAA,IACA,oBAAoB;AAAA,MAChB,QAAQ;AAAA,IACZ;AAAA,IAEA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,YAAY,oCAAuB;AAAA,IAEnC,cAAc;AAAA,MACV,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,cAAc;AAAA,IAClB;AAAA,IAEA,iBAAiB;AAAA,MACb,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,MACN,KAAK;AAAA,IACT;AAAA,IACA,UAAU;AAAA,MACN,cAAc,CAAC;AAAA,MACf,SAAS;AAAA,QACL,SAAS;AAAA,MACb;AAAA,MACA,aAAa;AAAA,IACjB;AAAA,IACA,oBAAoB;AAAA,IAEpB,WAAW;AACP;AAAA,IACJ;AAAA,IAEA,UAAU;AAAA,MACN,oBAAoB;AAAA,IACxB;AAAA,IACA,QAAQ;AAAA,MACJ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,QACZ,aAAa;AAAA,UACT,OAAO;AAAA,UACP,KAAK;AAAA,QACT;AAAA,QACA,OAAO,CAAC;AAAA,QACR,WAAW;AAAA,MACf;AAAA,MACA,SAAS,CAAC;AAAA,IACd;AAAA,IACA,gCAAgC;AAAA,IAChC,aAAa;AAAA,EACjB;AACJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/configManager/config.default.ts"],"sourcesContent":["import {\n ILivePreviewWindowType,\n type IConfig,\n type IInitData,\n} from \"../types/types\";\n\nexport function getUserInitData(): IInitData {\n return {\n ssr: true,\n enable: true,\n debug: false,\n cleanCslpOnProduction: true,\n editButton: {\n enable: true,\n exclude: [],\n position: \"top\",\n includeByQueryParameter: true,\n },\n editInVisualBuilderButton: {\n enable: true,\n position: \"bottom-right\"\n },\n overlayPropagation: {\n enable: false,\n },\n\n mode: \"preview\",\n\n stackDetails: {\n apiKey: \"\",\n environment: \"\",\n branch: \"\",\n },\n\n clientUrlParams: {\n protocol: \"https\",\n host: \"app.contentstack.com\",\n port: 443,\n },\n stackSdk: {\n live_preview: {},\n environment: \"\",\n },\n runScriptsOnUpdate: false,\n enableLivePreviewOutsideIframe: undefined,\n };\n}\n\nexport function getDefaultConfig(): IConfig {\n return {\n ssr: true,\n enable: true,\n debug: false,\n cleanCslpOnProduction: true,\n editButton: {\n enable: true,\n exclude: [],\n position: \"top\",\n includeByQueryParameter: true,\n },\n editInVisualBuilderButton: {\n enable: true,\n position: \"bottom-right\"\n },\n overlayPropagation: {\n enable: false,\n },\n\n hash: \"\",\n mode: 1,\n windowType: ILivePreviewWindowType.INDEPENDENT,\n\n stackDetails: {\n apiKey: \"\",\n environment: \"\",\n contentTypeUid: \"\",\n entryUid: \"\",\n locale: \"en-us\",\n branch: \"main\",\n masterLocale: \"en-us\",\n },\n\n clientUrlParams: {\n protocol: \"https\",\n host: \"app.contentstack.com\",\n port: 443,\n url: \"https://app.contentstack.com:443\",\n },\n stackSdk: {\n live_preview: {},\n headers: {\n api_key: \"\",\n },\n environment: \"\",\n },\n runScriptsOnUpdate: false,\n\n onChange() {\n return;\n },\n\n elements: {\n highlightedElement: null,\n },\n collab: {\n enable: false,\n fromShare: false,\n pauseFeedback: false,\n isFeedbackMode: false,\n inviteMetadata: {\n currentUser: {\n email: \"\",\n uid: \"\",\n },\n users: [],\n inviteUid: \"\",\n },\n payload: [],\n },\n enableLivePreviewOutsideIframe: undefined,\n };\n}\n"],"mappings":";;;AAAA;AAAA,EACI;AAAA,OAGG;AAEA,SAAS,kBAA6B;AACzC,SAAO;AAAA,IACH,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,uBAAuB;AAAA,IACvB,YAAY;AAAA,MACR,QAAQ;AAAA,MACR,SAAS,CAAC;AAAA,MACV,UAAU;AAAA,MACV,yBAAyB;AAAA,IAC7B;AAAA,IACA,2BAA2B;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,IACd;AAAA,IACA,oBAAoB;AAAA,MAChB,QAAQ;AAAA,IACZ;AAAA,IAEA,MAAM;AAAA,IAEN,cAAc;AAAA,MACV,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,QAAQ;AAAA,IACZ;AAAA,IAEA,iBAAiB;AAAA,MACb,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,IACV;AAAA,IACA,UAAU;AAAA,MACN,cAAc,CAAC;AAAA,MACf,aAAa;AAAA,IACjB;AAAA,IACA,oBAAoB;AAAA,IACpB,gCAAgC;AAAA,EACpC;AACJ;AAEO,SAAS,mBAA4B;AACxC,SAAO;AAAA,IACH,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,uBAAuB;AAAA,IACvB,YAAY;AAAA,MACR,QAAQ;AAAA,MACR,SAAS,CAAC;AAAA,MACV,UAAU;AAAA,MACV,yBAAyB;AAAA,IAC7B;AAAA,IACA,2BAA2B;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,IACd;AAAA,IACA,oBAAoB;AAAA,MAChB,QAAQ;AAAA,IACZ;AAAA,IAEA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,YAAY,uBAAuB;AAAA,IAEnC,cAAc;AAAA,MACV,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,cAAc;AAAA,IAClB;AAAA,IAEA,iBAAiB;AAAA,MACb,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,MACN,KAAK;AAAA,IACT;AAAA,IACA,UAAU;AAAA,MACN,cAAc,CAAC;AAAA,MACf,SAAS;AAAA,QACL,SAAS;AAAA,MACb;AAAA,MACA,aAAa;AAAA,IACjB;AAAA,IACA,oBAAoB;AAAA,IAEpB,WAAW;AACP;AAAA,IACJ;AAAA,IAEA,UAAU;AAAA,MACN,oBAAoB;AAAA,IACxB;AAAA,IACA,QAAQ;AAAA,MACJ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,QACZ,aAAa;AAAA,UACT,OAAO;AAAA,UACP,KAAK;AAAA,QACT;AAAA,QACA,OAAO,CAAC;AAAA,QACR,WAAW;AAAA,MACf;AAAA,MACA,SAAS,CAAC;AAAA,IACd;AAAA,IACA,gCAAgC;AAAA,
|
|
1
|
+
{"version":3,"sources":["../../../src/configManager/config.default.ts"],"sourcesContent":["import {\n ILivePreviewWindowType,\n type IConfig,\n type IInitData,\n} from \"../types/types\";\n\nexport function getUserInitData(): IInitData {\n return {\n ssr: true,\n enable: true,\n debug: false,\n cleanCslpOnProduction: true,\n editButton: {\n enable: true,\n exclude: [],\n position: \"top\",\n includeByQueryParameter: true,\n },\n editInVisualBuilderButton: {\n enable: true,\n position: \"bottom-right\"\n },\n overlayPropagation: {\n enable: false,\n },\n\n mode: \"preview\",\n\n stackDetails: {\n apiKey: \"\",\n environment: \"\",\n branch: \"\",\n },\n\n clientUrlParams: {\n protocol: \"https\",\n host: \"app.contentstack.com\",\n port: 443,\n },\n stackSdk: {\n live_preview: {},\n environment: \"\",\n },\n runScriptsOnUpdate: false,\n enableLivePreviewOutsideIframe: undefined,\n };\n}\n\nexport function getDefaultConfig(): IConfig {\n return {\n ssr: true,\n enable: true,\n debug: false,\n cleanCslpOnProduction: true,\n editButton: {\n enable: true,\n exclude: [],\n position: \"top\",\n includeByQueryParameter: true,\n },\n editInVisualBuilderButton: {\n enable: true,\n position: \"bottom-right\"\n },\n overlayPropagation: {\n enable: false,\n },\n\n hash: \"\",\n mode: 1,\n windowType: ILivePreviewWindowType.INDEPENDENT,\n\n stackDetails: {\n apiKey: \"\",\n environment: \"\",\n contentTypeUid: \"\",\n entryUid: \"\",\n locale: \"en-us\",\n branch: \"main\",\n masterLocale: \"en-us\",\n },\n\n clientUrlParams: {\n protocol: \"https\",\n host: \"app.contentstack.com\",\n port: 443,\n url: \"https://app.contentstack.com:443\",\n },\n stackSdk: {\n live_preview: {},\n headers: {\n api_key: \"\",\n },\n environment: \"\",\n },\n runScriptsOnUpdate: false,\n\n onChange() {\n return;\n },\n\n elements: {\n highlightedElement: null,\n },\n collab: {\n enable: false,\n fromShare: false,\n pauseFeedback: false,\n isFeedbackMode: false,\n inviteMetadata: {\n currentUser: {\n email: \"\",\n uid: \"\",\n },\n users: [],\n inviteUid: \"\",\n },\n payload: [],\n },\n enableLivePreviewOutsideIframe: undefined,\n pageContext: null,\n };\n}\n"],"mappings":";;;AAAA;AAAA,EACI;AAAA,OAGG;AAEA,SAAS,kBAA6B;AACzC,SAAO;AAAA,IACH,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,uBAAuB;AAAA,IACvB,YAAY;AAAA,MACR,QAAQ;AAAA,MACR,SAAS,CAAC;AAAA,MACV,UAAU;AAAA,MACV,yBAAyB;AAAA,IAC7B;AAAA,IACA,2BAA2B;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,IACd;AAAA,IACA,oBAAoB;AAAA,MAChB,QAAQ;AAAA,IACZ;AAAA,IAEA,MAAM;AAAA,IAEN,cAAc;AAAA,MACV,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,QAAQ;AAAA,IACZ;AAAA,IAEA,iBAAiB;AAAA,MACb,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,IACV;AAAA,IACA,UAAU;AAAA,MACN,cAAc,CAAC;AAAA,MACf,aAAa;AAAA,IACjB;AAAA,IACA,oBAAoB;AAAA,IACpB,gCAAgC;AAAA,EACpC;AACJ;AAEO,SAAS,mBAA4B;AACxC,SAAO;AAAA,IACH,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,uBAAuB;AAAA,IACvB,YAAY;AAAA,MACR,QAAQ;AAAA,MACR,SAAS,CAAC;AAAA,MACV,UAAU;AAAA,MACV,yBAAyB;AAAA,IAC7B;AAAA,IACA,2BAA2B;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU;AAAA,IACd;AAAA,IACA,oBAAoB;AAAA,MAChB,QAAQ;AAAA,IACZ;AAAA,IAEA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,YAAY,uBAAuB;AAAA,IAEnC,cAAc;AAAA,MACV,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,cAAc;AAAA,IAClB;AAAA,IAEA,iBAAiB;AAAA,MACb,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,MACN,KAAK;AAAA,IACT;AAAA,IACA,UAAU;AAAA,MACN,cAAc,CAAC;AAAA,MACf,SAAS;AAAA,QACL,SAAS;AAAA,MACb;AAAA,MACA,aAAa;AAAA,IACjB;AAAA,IACA,oBAAoB;AAAA,IAEpB,WAAW;AACP;AAAA,IACJ;AAAA,IAEA,UAAU;AAAA,MACN,oBAAoB;AAAA,IACxB;AAAA,IACA,QAAQ;AAAA,MACJ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,QACZ,aAAa;AAAA,UACT,OAAO;AAAA,UACP,KAAK;AAAA,QACT;AAAA,QACA,OAAO,CAAC;AAAA,QACR,WAAW;AAAA,MACf;AAAA,MACA,SAAS,CAAC;AAAA,IACd;AAAA,IACA,gCAAgC;AAAA,IAChC,aAAa;AAAA,EACjB;AACJ;","names":[]}
|
|
@@ -22,6 +22,7 @@ var configManager_exports = {};
|
|
|
22
22
|
__export(configManager_exports, {
|
|
23
23
|
default: () => configManager_default,
|
|
24
24
|
setConfigFromParams: () => setConfigFromParams,
|
|
25
|
+
syncToStackSdk: () => syncToStackSdk,
|
|
25
26
|
updateConfigFromUrl: () => updateConfigFromUrl
|
|
26
27
|
});
|
|
27
28
|
module.exports = __toCommonJS(configManager_exports);
|
|
@@ -59,25 +60,43 @@ function setConfigFromParams(params = {}) {
|
|
|
59
60
|
const live_preview = urlParams.get("live_preview");
|
|
60
61
|
const content_type_uid = urlParams.get("content_type_uid");
|
|
61
62
|
const entry_uid = urlParams.get("entry_uid");
|
|
62
|
-
const stackSdkLivePreview = Config.get().stackSdk.live_preview;
|
|
63
63
|
if (live_preview) {
|
|
64
64
|
Config.set("hash", live_preview);
|
|
65
|
-
stackSdkLivePreview.hash = live_preview;
|
|
66
|
-
stackSdkLivePreview.live_preview = live_preview;
|
|
67
65
|
}
|
|
68
66
|
if (content_type_uid) {
|
|
69
67
|
Config.set("stackDetails.contentTypeUid", content_type_uid);
|
|
70
|
-
stackSdkLivePreview.content_type_uid = content_type_uid;
|
|
71
68
|
}
|
|
72
69
|
if (entry_uid) {
|
|
73
70
|
Config.set("stackDetails.entryUid", entry_uid);
|
|
74
|
-
|
|
71
|
+
}
|
|
72
|
+
syncToStackSdk({
|
|
73
|
+
hash: live_preview,
|
|
74
|
+
contentTypeUid: content_type_uid,
|
|
75
|
+
entryUid: entry_uid
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function syncToStackSdk({
|
|
79
|
+
hash,
|
|
80
|
+
contentTypeUid,
|
|
81
|
+
entryUid
|
|
82
|
+
}) {
|
|
83
|
+
const stackSdkLivePreview = Config.get().stackSdk.live_preview;
|
|
84
|
+
if (hash) {
|
|
85
|
+
stackSdkLivePreview.hash = hash;
|
|
86
|
+
stackSdkLivePreview.live_preview = hash;
|
|
87
|
+
}
|
|
88
|
+
if (contentTypeUid) {
|
|
89
|
+
stackSdkLivePreview.content_type_uid = contentTypeUid;
|
|
90
|
+
}
|
|
91
|
+
if (entryUid) {
|
|
92
|
+
stackSdkLivePreview.entry_uid = entryUid;
|
|
75
93
|
}
|
|
76
94
|
Config.set("stackSdk.live_preview", stackSdkLivePreview);
|
|
77
95
|
}
|
|
78
96
|
// Annotate the CommonJS export names for ESM import in node:
|
|
79
97
|
0 && (module.exports = {
|
|
80
98
|
setConfigFromParams,
|
|
99
|
+
syncToStackSdk,
|
|
81
100
|
updateConfigFromUrl
|
|
82
101
|
});
|
|
83
102
|
//# sourceMappingURL=configManager.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/configManager/configManager.ts"],"sourcesContent":["import { DeepSignal, deepSignal } from \"deepsignal\";\nimport type { IConfig, IInitData } from \"../types/types\";\nimport { getDefaultConfig, getUserInitData } from \"./config.default\";\nimport { handleInitData } from \"./handleUserConfig\";\nimport { has as lodashHas, set as lodashSet } from \"lodash-es\";\n\nclass Config {\n static config: {\n state: DeepSignal<IConfig>;\n } = {\n state: deepSignal(getDefaultConfig()),\n };\n\n static replace(userInput: Partial<IInitData> = getUserInitData()): void {\n handleInitData(userInput);\n }\n\n static set(key: string, value: any): void {\n if (!lodashHas(this.config.state, key)) {\n throw new Error(`Invalid key: ${key}`);\n }\n lodashSet(this.config.state, key, value);\n }\n\n static get(): DeepSignal<IConfig> {\n return this.config.state;\n }\n\n static reset(): void {\n lodashSet(this.config, \"state\", getDefaultConfig());\n }\n}\n\nexport default Config;\n\n/**\n * Updates the configuration from the URL parameters.\n * It will receive live_preview containing the hash, content_type_uid and entry_uid.\n */\n\nexport function updateConfigFromUrl(): void {\n const searchParams = new URLSearchParams(window.location.search);\n setConfigFromParams(searchParams.toString());\n}\n\n/**\n * Sets the live preview hash, content_type_uid and entry_uid\n * from the query param to config.\n *\n * @param params query param in an object form, query string.\n *\n * @example\n * ```js\n * setConfigFromParams({\n * live_preview: \"hash\",\n * content_type_uid: \"content_type_uid\",\n * entry_uid: \"entry_uid\",\n * });\n * ```\n *\n * @example\n * ```js\n * setConfigFromParams(\"?live_preview=hash&content_type_uid=content_type_uid&entry_uid=entry_uid\");\n * ```\n * Basically anything that can be passed to `URLSearchParams` constructor.\n */\n\nexport function setConfigFromParams(\n params: ConstructorParameters<typeof URLSearchParams>[0] = {}\n): void {\n const urlParams = new URLSearchParams(params);\n const live_preview = urlParams.get(\"live_preview\");\n const content_type_uid = urlParams.get(\"content_type_uid\");\n const entry_uid = urlParams.get(\"entry_uid\");\n\n
|
|
1
|
+
{"version":3,"sources":["../../../src/configManager/configManager.ts"],"sourcesContent":["import { DeepSignal, deepSignal } from \"deepsignal\";\nimport type { IConfig, IInitData } from \"../types/types\";\nimport { getDefaultConfig, getUserInitData } from \"./config.default\";\nimport { handleInitData } from \"./handleUserConfig\";\nimport { has as lodashHas, set as lodashSet } from \"lodash-es\";\n\nclass Config {\n static config: {\n state: DeepSignal<IConfig>;\n } = {\n state: deepSignal(getDefaultConfig()),\n };\n\n static replace(userInput: Partial<IInitData> = getUserInitData()): void {\n handleInitData(userInput);\n }\n\n static set(key: string, value: any): void {\n if (!lodashHas(this.config.state, key)) {\n throw new Error(`Invalid key: ${key}`);\n }\n lodashSet(this.config.state, key, value);\n }\n\n static get(): DeepSignal<IConfig> {\n return this.config.state;\n }\n\n static reset(): void {\n lodashSet(this.config, \"state\", getDefaultConfig());\n }\n}\n\nexport default Config;\n\n/**\n * Updates the configuration from the URL parameters.\n * It will receive live_preview containing the hash, content_type_uid and entry_uid.\n */\n\nexport function updateConfigFromUrl(): void {\n const searchParams = new URLSearchParams(window.location.search);\n setConfigFromParams(searchParams.toString());\n}\n\n/**\n * Sets the live preview hash, content_type_uid and entry_uid\n * from the query param to config.\n *\n * @param params query param in an object form, query string.\n *\n * @example\n * ```js\n * setConfigFromParams({\n * live_preview: \"hash\",\n * content_type_uid: \"content_type_uid\",\n * entry_uid: \"entry_uid\",\n * });\n * ```\n *\n * @example\n * ```js\n * setConfigFromParams(\"?live_preview=hash&content_type_uid=content_type_uid&entry_uid=entry_uid\");\n * ```\n * Basically anything that can be passed to `URLSearchParams` constructor.\n */\n\nexport function setConfigFromParams(\n params: ConstructorParameters<typeof URLSearchParams>[0] = {}\n): void {\n const urlParams = new URLSearchParams(params);\n const live_preview = urlParams.get(\"live_preview\");\n const content_type_uid = urlParams.get(\"content_type_uid\");\n const entry_uid = urlParams.get(\"entry_uid\");\n\n if (live_preview) {\n Config.set(\"hash\", live_preview);\n }\n\n if (content_type_uid) {\n Config.set(\"stackDetails.contentTypeUid\", content_type_uid);\n }\n\n if (entry_uid) {\n Config.set(\"stackDetails.entryUid\", entry_uid);\n }\n\n syncToStackSdk({\n hash: live_preview,\n contentTypeUid: content_type_uid,\n entryUid: entry_uid,\n });\n}\n\n/**\n * Syncs hash, contentTypeUid, and entryUid into the user's stackSdk.live_preview object.\n * Auto-effects via deepsignal were ruled out because Config.reset() replaces the deepSignal\n * instance, which would blind any bound effect. Explicit sync is the safe alternative.\n */\nexport function syncToStackSdk({\n hash,\n contentTypeUid,\n entryUid,\n}: {\n hash?: string | null;\n contentTypeUid?: string | null;\n entryUid?: string | null;\n}): void {\n const stackSdkLivePreview = Config.get().stackSdk.live_preview;\n\n if (hash) {\n stackSdkLivePreview.hash = hash;\n stackSdkLivePreview.live_preview = hash;\n }\n if (contentTypeUid) {\n stackSdkLivePreview.content_type_uid = contentTypeUid;\n }\n if (entryUid) {\n stackSdkLivePreview.entry_uid = entryUid;\n }\n\n Config.set(\"stackSdk.live_preview\", stackSdkLivePreview);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAuC;AAEvC,oBAAkD;AAClD,8BAA+B;AAC/B,uBAAmD;AAEnD,IAAM,SAAN,MAAa;AAAA,EAOT,OAAO,QAAQ,gBAAgC,+BAAgB,GAAS;AACpE,gDAAe,SAAS;AAAA,EAC5B;AAAA,EAEA,OAAO,IAAI,KAAa,OAAkB;AACtC,QAAI,KAAC,iBAAAA,KAAU,KAAK,OAAO,OAAO,GAAG,GAAG;AACpC,YAAM,IAAI,MAAM,gBAAgB,GAAG,EAAE;AAAA,IACzC;AACA,yBAAAC,KAAU,KAAK,OAAO,OAAO,KAAK,KAAK;AAAA,EAC3C;AAAA,EAEA,OAAO,MAA2B;AAC9B,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA,EAEA,OAAO,QAAc;AACjB,yBAAAA,KAAU,KAAK,QAAQ,aAAS,gCAAiB,CAAC;AAAA,EACtD;AACJ;AAzBM,OACK,SAEH;AAAA,EACA,WAAO,kCAAW,gCAAiB,CAAC;AACxC;AAsBJ,IAAO,wBAAQ;AAOR,SAAS,sBAA4B;AACxC,QAAM,eAAe,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAC/D,sBAAoB,aAAa,SAAS,CAAC;AAC/C;AAwBO,SAAS,oBACZ,SAA2D,CAAC,GACxD;AACJ,QAAM,YAAY,IAAI,gBAAgB,MAAM;AAC5C,QAAM,eAAe,UAAU,IAAI,cAAc;AACjD,QAAM,mBAAmB,UAAU,IAAI,kBAAkB;AACzD,QAAM,YAAY,UAAU,IAAI,WAAW;AAE3C,MAAI,cAAc;AACd,WAAO,IAAI,QAAQ,YAAY;AAAA,EACnC;AAEA,MAAI,kBAAkB;AAClB,WAAO,IAAI,+BAA+B,gBAAgB;AAAA,EAC9D;AAEA,MAAI,WAAW;AACX,WAAO,IAAI,yBAAyB,SAAS;AAAA,EACjD;AAEA,iBAAe;AAAA,IACX,MAAM;AAAA,IACN,gBAAgB;AAAA,IAChB,UAAU;AAAA,EACd,CAAC;AACL;AAOO,SAAS,eAAe;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACJ,GAIS;AACL,QAAM,sBAAsB,OAAO,IAAI,EAAE,SAAS;AAElD,MAAI,MAAM;AACN,wBAAoB,OAAO;AAC3B,wBAAoB,eAAe;AAAA,EACvC;AACA,MAAI,gBAAgB;AAChB,wBAAoB,mBAAmB;AAAA,EAC3C;AACA,MAAI,UAAU;AACV,wBAAoB,YAAY;AAAA,EACpC;AAEA,SAAO,IAAI,yBAAyB,mBAAmB;AAC3D;","names":["lodashHas","lodashSet"]}
|
|
@@ -39,5 +39,15 @@ declare function updateConfigFromUrl(): void;
|
|
|
39
39
|
* Basically anything that can be passed to `URLSearchParams` constructor.
|
|
40
40
|
*/
|
|
41
41
|
declare function setConfigFromParams(params?: ConstructorParameters<typeof URLSearchParams>[0]): void;
|
|
42
|
+
/**
|
|
43
|
+
* Syncs hash, contentTypeUid, and entryUid into the user's stackSdk.live_preview object.
|
|
44
|
+
* Auto-effects via deepsignal were ruled out because Config.reset() replaces the deepSignal
|
|
45
|
+
* instance, which would blind any bound effect. Explicit sync is the safe alternative.
|
|
46
|
+
*/
|
|
47
|
+
declare function syncToStackSdk({ hash, contentTypeUid, entryUid, }: {
|
|
48
|
+
hash?: string | null;
|
|
49
|
+
contentTypeUid?: string | null;
|
|
50
|
+
entryUid?: string | null;
|
|
51
|
+
}): void;
|
|
42
52
|
|
|
43
|
-
export { Config as default, setConfigFromParams, updateConfigFromUrl };
|
|
53
|
+
export { Config as default, setConfigFromParams, syncToStackSdk, updateConfigFromUrl };
|
|
@@ -39,5 +39,15 @@ declare function updateConfigFromUrl(): void;
|
|
|
39
39
|
* Basically anything that can be passed to `URLSearchParams` constructor.
|
|
40
40
|
*/
|
|
41
41
|
declare function setConfigFromParams(params?: ConstructorParameters<typeof URLSearchParams>[0]): void;
|
|
42
|
+
/**
|
|
43
|
+
* Syncs hash, contentTypeUid, and entryUid into the user's stackSdk.live_preview object.
|
|
44
|
+
* Auto-effects via deepsignal were ruled out because Config.reset() replaces the deepSignal
|
|
45
|
+
* instance, which would blind any bound effect. Explicit sync is the safe alternative.
|
|
46
|
+
*/
|
|
47
|
+
declare function syncToStackSdk({ hash, contentTypeUid, entryUid, }: {
|
|
48
|
+
hash?: string | null;
|
|
49
|
+
contentTypeUid?: string | null;
|
|
50
|
+
entryUid?: string | null;
|
|
51
|
+
}): void;
|
|
42
52
|
|
|
43
|
-
export { Config as default, setConfigFromParams, updateConfigFromUrl };
|
|
53
|
+
export { Config as default, setConfigFromParams, syncToStackSdk, updateConfigFromUrl };
|
|
@@ -35,25 +35,43 @@ function setConfigFromParams(params = {}) {
|
|
|
35
35
|
const live_preview = urlParams.get("live_preview");
|
|
36
36
|
const content_type_uid = urlParams.get("content_type_uid");
|
|
37
37
|
const entry_uid = urlParams.get("entry_uid");
|
|
38
|
-
const stackSdkLivePreview = Config.get().stackSdk.live_preview;
|
|
39
38
|
if (live_preview) {
|
|
40
39
|
Config.set("hash", live_preview);
|
|
41
|
-
stackSdkLivePreview.hash = live_preview;
|
|
42
|
-
stackSdkLivePreview.live_preview = live_preview;
|
|
43
40
|
}
|
|
44
41
|
if (content_type_uid) {
|
|
45
42
|
Config.set("stackDetails.contentTypeUid", content_type_uid);
|
|
46
|
-
stackSdkLivePreview.content_type_uid = content_type_uid;
|
|
47
43
|
}
|
|
48
44
|
if (entry_uid) {
|
|
49
45
|
Config.set("stackDetails.entryUid", entry_uid);
|
|
50
|
-
|
|
46
|
+
}
|
|
47
|
+
syncToStackSdk({
|
|
48
|
+
hash: live_preview,
|
|
49
|
+
contentTypeUid: content_type_uid,
|
|
50
|
+
entryUid: entry_uid
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function syncToStackSdk({
|
|
54
|
+
hash,
|
|
55
|
+
contentTypeUid,
|
|
56
|
+
entryUid
|
|
57
|
+
}) {
|
|
58
|
+
const stackSdkLivePreview = Config.get().stackSdk.live_preview;
|
|
59
|
+
if (hash) {
|
|
60
|
+
stackSdkLivePreview.hash = hash;
|
|
61
|
+
stackSdkLivePreview.live_preview = hash;
|
|
62
|
+
}
|
|
63
|
+
if (contentTypeUid) {
|
|
64
|
+
stackSdkLivePreview.content_type_uid = contentTypeUid;
|
|
65
|
+
}
|
|
66
|
+
if (entryUid) {
|
|
67
|
+
stackSdkLivePreview.entry_uid = entryUid;
|
|
51
68
|
}
|
|
52
69
|
Config.set("stackSdk.live_preview", stackSdkLivePreview);
|
|
53
70
|
}
|
|
54
71
|
export {
|
|
55
72
|
configManager_default as default,
|
|
56
73
|
setConfigFromParams,
|
|
74
|
+
syncToStackSdk,
|
|
57
75
|
updateConfigFromUrl
|
|
58
76
|
};
|
|
59
77
|
//# sourceMappingURL=configManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/configManager/configManager.ts"],"sourcesContent":["import { DeepSignal, deepSignal } from \"deepsignal\";\nimport type { IConfig, IInitData } from \"../types/types\";\nimport { getDefaultConfig, getUserInitData } from \"./config.default\";\nimport { handleInitData } from \"./handleUserConfig\";\nimport { has as lodashHas, set as lodashSet } from \"lodash-es\";\n\nclass Config {\n static config: {\n state: DeepSignal<IConfig>;\n } = {\n state: deepSignal(getDefaultConfig()),\n };\n\n static replace(userInput: Partial<IInitData> = getUserInitData()): void {\n handleInitData(userInput);\n }\n\n static set(key: string, value: any): void {\n if (!lodashHas(this.config.state, key)) {\n throw new Error(`Invalid key: ${key}`);\n }\n lodashSet(this.config.state, key, value);\n }\n\n static get(): DeepSignal<IConfig> {\n return this.config.state;\n }\n\n static reset(): void {\n lodashSet(this.config, \"state\", getDefaultConfig());\n }\n}\n\nexport default Config;\n\n/**\n * Updates the configuration from the URL parameters.\n * It will receive live_preview containing the hash, content_type_uid and entry_uid.\n */\n\nexport function updateConfigFromUrl(): void {\n const searchParams = new URLSearchParams(window.location.search);\n setConfigFromParams(searchParams.toString());\n}\n\n/**\n * Sets the live preview hash, content_type_uid and entry_uid\n * from the query param to config.\n *\n * @param params query param in an object form, query string.\n *\n * @example\n * ```js\n * setConfigFromParams({\n * live_preview: \"hash\",\n * content_type_uid: \"content_type_uid\",\n * entry_uid: \"entry_uid\",\n * });\n * ```\n *\n * @example\n * ```js\n * setConfigFromParams(\"?live_preview=hash&content_type_uid=content_type_uid&entry_uid=entry_uid\");\n * ```\n * Basically anything that can be passed to `URLSearchParams` constructor.\n */\n\nexport function setConfigFromParams(\n params: ConstructorParameters<typeof URLSearchParams>[0] = {}\n): void {\n const urlParams = new URLSearchParams(params);\n const live_preview = urlParams.get(\"live_preview\");\n const content_type_uid = urlParams.get(\"content_type_uid\");\n const entry_uid = urlParams.get(\"entry_uid\");\n\n
|
|
1
|
+
{"version":3,"sources":["../../../src/configManager/configManager.ts"],"sourcesContent":["import { DeepSignal, deepSignal } from \"deepsignal\";\nimport type { IConfig, IInitData } from \"../types/types\";\nimport { getDefaultConfig, getUserInitData } from \"./config.default\";\nimport { handleInitData } from \"./handleUserConfig\";\nimport { has as lodashHas, set as lodashSet } from \"lodash-es\";\n\nclass Config {\n static config: {\n state: DeepSignal<IConfig>;\n } = {\n state: deepSignal(getDefaultConfig()),\n };\n\n static replace(userInput: Partial<IInitData> = getUserInitData()): void {\n handleInitData(userInput);\n }\n\n static set(key: string, value: any): void {\n if (!lodashHas(this.config.state, key)) {\n throw new Error(`Invalid key: ${key}`);\n }\n lodashSet(this.config.state, key, value);\n }\n\n static get(): DeepSignal<IConfig> {\n return this.config.state;\n }\n\n static reset(): void {\n lodashSet(this.config, \"state\", getDefaultConfig());\n }\n}\n\nexport default Config;\n\n/**\n * Updates the configuration from the URL parameters.\n * It will receive live_preview containing the hash, content_type_uid and entry_uid.\n */\n\nexport function updateConfigFromUrl(): void {\n const searchParams = new URLSearchParams(window.location.search);\n setConfigFromParams(searchParams.toString());\n}\n\n/**\n * Sets the live preview hash, content_type_uid and entry_uid\n * from the query param to config.\n *\n * @param params query param in an object form, query string.\n *\n * @example\n * ```js\n * setConfigFromParams({\n * live_preview: \"hash\",\n * content_type_uid: \"content_type_uid\",\n * entry_uid: \"entry_uid\",\n * });\n * ```\n *\n * @example\n * ```js\n * setConfigFromParams(\"?live_preview=hash&content_type_uid=content_type_uid&entry_uid=entry_uid\");\n * ```\n * Basically anything that can be passed to `URLSearchParams` constructor.\n */\n\nexport function setConfigFromParams(\n params: ConstructorParameters<typeof URLSearchParams>[0] = {}\n): void {\n const urlParams = new URLSearchParams(params);\n const live_preview = urlParams.get(\"live_preview\");\n const content_type_uid = urlParams.get(\"content_type_uid\");\n const entry_uid = urlParams.get(\"entry_uid\");\n\n if (live_preview) {\n Config.set(\"hash\", live_preview);\n }\n\n if (content_type_uid) {\n Config.set(\"stackDetails.contentTypeUid\", content_type_uid);\n }\n\n if (entry_uid) {\n Config.set(\"stackDetails.entryUid\", entry_uid);\n }\n\n syncToStackSdk({\n hash: live_preview,\n contentTypeUid: content_type_uid,\n entryUid: entry_uid,\n });\n}\n\n/**\n * Syncs hash, contentTypeUid, and entryUid into the user's stackSdk.live_preview object.\n * Auto-effects via deepsignal were ruled out because Config.reset() replaces the deepSignal\n * instance, which would blind any bound effect. Explicit sync is the safe alternative.\n */\nexport function syncToStackSdk({\n hash,\n contentTypeUid,\n entryUid,\n}: {\n hash?: string | null;\n contentTypeUid?: string | null;\n entryUid?: string | null;\n}): void {\n const stackSdkLivePreview = Config.get().stackSdk.live_preview;\n\n if (hash) {\n stackSdkLivePreview.hash = hash;\n stackSdkLivePreview.live_preview = hash;\n }\n if (contentTypeUid) {\n stackSdkLivePreview.content_type_uid = contentTypeUid;\n }\n if (entryUid) {\n stackSdkLivePreview.entry_uid = entryUid;\n }\n\n Config.set(\"stackSdk.live_preview\", stackSdkLivePreview);\n}\n"],"mappings":";;;AAAA,SAAqB,kBAAkB;AAEvC,SAAS,kBAAkB,uBAAuB;AAClD,SAAS,sBAAsB;AAC/B,SAAS,OAAO,WAAW,OAAO,iBAAiB;AAEnD,IAAM,SAAN,MAAa;AAAA,EAOT,OAAO,QAAQ,YAAgC,gBAAgB,GAAS;AACpE,mBAAe,SAAS;AAAA,EAC5B;AAAA,EAEA,OAAO,IAAI,KAAa,OAAkB;AACtC,QAAI,CAAC,UAAU,KAAK,OAAO,OAAO,GAAG,GAAG;AACpC,YAAM,IAAI,MAAM,gBAAgB,GAAG,EAAE;AAAA,IACzC;AACA,cAAU,KAAK,OAAO,OAAO,KAAK,KAAK;AAAA,EAC3C;AAAA,EAEA,OAAO,MAA2B;AAC9B,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA,EAEA,OAAO,QAAc;AACjB,cAAU,KAAK,QAAQ,SAAS,iBAAiB,CAAC;AAAA,EACtD;AACJ;AAzBM,OACK,SAEH;AAAA,EACA,OAAO,WAAW,iBAAiB,CAAC;AACxC;AAsBJ,IAAO,wBAAQ;AAOR,SAAS,sBAA4B;AACxC,QAAM,eAAe,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAC/D,sBAAoB,aAAa,SAAS,CAAC;AAC/C;AAwBO,SAAS,oBACZ,SAA2D,CAAC,GACxD;AACJ,QAAM,YAAY,IAAI,gBAAgB,MAAM;AAC5C,QAAM,eAAe,UAAU,IAAI,cAAc;AACjD,QAAM,mBAAmB,UAAU,IAAI,kBAAkB;AACzD,QAAM,YAAY,UAAU,IAAI,WAAW;AAE3C,MAAI,cAAc;AACd,WAAO,IAAI,QAAQ,YAAY;AAAA,EACnC;AAEA,MAAI,kBAAkB;AAClB,WAAO,IAAI,+BAA+B,gBAAgB;AAAA,EAC9D;AAEA,MAAI,WAAW;AACX,WAAO,IAAI,yBAAyB,SAAS;AAAA,EACjD;AAEA,iBAAe;AAAA,IACX,MAAM;AAAA,IACN,gBAAgB;AAAA,IAChB,UAAU;AAAA,EACd,CAAC;AACL;AAOO,SAAS,eAAe;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACJ,GAIS;AACL,QAAM,sBAAsB,OAAO,IAAI,EAAE,SAAS;AAElD,MAAI,MAAM;AACN,wBAAoB,OAAO;AAC3B,wBAAoB,eAAe;AAAA,EACvC;AACA,MAAI,gBAAgB;AAChB,wBAAoB,mBAAmB;AAAA,EAC3C;AACA,MAAI,UAAU;AACV,wBAAoB,YAAY;AAAA,EACpC;AAEA,SAAO,IAAI,yBAAyB,mBAAmB;AAC3D;","names":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { setConfigFromParams, updateConfigFromUrl } from './configManager.cjs';
|
|
1
|
+
export { setConfigFromParams, syncToStackSdk, updateConfigFromUrl } from './configManager.cjs';
|
|
2
2
|
import 'deepsignal';
|
|
3
3
|
import '../types/types.cjs';
|
|
4
4
|
import '../visualBuilder/types/collab.types.cjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { setConfigFromParams, updateConfigFromUrl } from './configManager.js';
|
|
1
|
+
export { setConfigFromParams, syncToStackSdk, updateConfigFromUrl } from './configManager.js';
|
|
2
2
|
import 'deepsignal';
|
|
3
3
|
import '../types/types.js';
|
|
4
4
|
import '../visualBuilder/types/collab.types.js';
|
|
@@ -60,7 +60,7 @@ var _LightLivePreviewHoC = class _LightLivePreviewHoC {
|
|
|
60
60
|
static unsubscribeOnEntryChange() {
|
|
61
61
|
}
|
|
62
62
|
static getSdkVersion() {
|
|
63
|
-
return (typeof process !== "undefined" ? "4.4.
|
|
63
|
+
return (typeof process !== "undefined" ? "4.4.4" : void 0) ?? "";
|
|
64
64
|
}
|
|
65
65
|
};
|
|
66
66
|
_LightLivePreviewHoC.previewConstructors = {};
|
package/dist/modern/light-sdk.js
CHANGED
|
@@ -38,7 +38,7 @@ var _LightLivePreviewHoC = class _LightLivePreviewHoC {
|
|
|
38
38
|
static unsubscribeOnEntryChange() {
|
|
39
39
|
}
|
|
40
40
|
static getSdkVersion() {
|
|
41
|
-
return (typeof process !== "undefined" ? "4.4.
|
|
41
|
+
return (typeof process !== "undefined" ? "4.4.4" : void 0) ?? "";
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
44
|
_LightLivePreviewHoC.previewConstructors = {};
|
|
@@ -75,9 +75,10 @@ function useOnEntryUpdatePostMessageEvent() {
|
|
|
75
75
|
try {
|
|
76
76
|
const { ssr, onChange, stackDetails } = import_configManager.default.get();
|
|
77
77
|
const event_type = event.data._metadata?.event_type;
|
|
78
|
-
(
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
if (event.data.hash) {
|
|
79
|
+
import_configManager.default.set("hash", event.data.hash);
|
|
80
|
+
(0, import_configManager.syncToStackSdk)({ hash: event.data.hash });
|
|
81
|
+
}
|
|
81
82
|
if (!ssr && !event_type) {
|
|
82
83
|
onChange();
|
|
83
84
|
}
|
|
@@ -135,7 +136,7 @@ function sendInitializeLivePreviewPostMessageEvent() {
|
|
|
135
136
|
const initConfig = {
|
|
136
137
|
shouldReload: config.ssr,
|
|
137
138
|
href: window.location.href,
|
|
138
|
-
sdkVersion: "4.4.
|
|
139
|
+
sdkVersion: "4.4.4",
|
|
139
140
|
mode: config.mode
|
|
140
141
|
};
|
|
141
142
|
if (config.enableLivePreviewOutsideIframe !== void 0) {
|
|
@@ -152,14 +153,16 @@ function sendInitializeLivePreviewPostMessageEvent() {
|
|
|
152
153
|
entryUid,
|
|
153
154
|
windowType = import_types.ILivePreviewWindowType.PREVIEW
|
|
154
155
|
} = data || {};
|
|
156
|
+
if ((0, import_inIframe.inVisualEditor)()) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
155
159
|
if (import_configManager.default?.get()?.windowType && import_configManager.default.get().windowType === import_types.ILivePreviewWindowType.BUILDER) {
|
|
156
160
|
return;
|
|
157
161
|
}
|
|
158
162
|
if (contentTypeUid && entryUid) {
|
|
159
|
-
(
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
});
|
|
163
|
+
import_configManager.default.set("stackDetails.contentTypeUid", contentTypeUid);
|
|
164
|
+
import_configManager.default.set("stackDetails.entryUid", entryUid);
|
|
165
|
+
(0, import_configManager.syncToStackSdk)({ contentTypeUid, entryUid });
|
|
163
166
|
} else {
|
|
164
167
|
}
|
|
165
168
|
if (import_configManager.default.get().ssr || (0, import_utils.isOpeningInTimeline)() || (0, import_inIframe.isOpeningInNewTab)()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/livePreview/eventManager/postMessageEvent.hooks.ts"],"sourcesContent":["import { isOpeningInNewTab } from \"../../common/inIframe\";\nimport Config, { setConfigFromParams } from \"../../configManager/configManager\";\nimport { PublicLogger } from \"../../logger/logger\";\nimport { ILivePreviewWindowType } from \"../../types/types\";\nimport { addParamsToUrl, isOpeningInTimeline } from \"../../utils\";\nimport livePreviewPostMessage from \"./livePreviewEventManager\";\nimport { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from \"./livePreviewEventManager.constant\";\nimport {\n HistoryLivePreviewPostMessageEventData,\n LivePreviewInitEventResponse,\n OnChangeLivePreviewPostMessageEventData,\n OnChangeLivePreviewPostMessageEventTypes,\n} from \"./types/livePreviewPostMessageEvent.type\";\n\n/**\n * Registers a post message event listener for history-related events.\n * The listener handles events for forward, backward, and reload actions on the browser history.\n */\nexport function useHistoryPostMessageEvent(): void {\n livePreviewPostMessage?.on<HistoryLivePreviewPostMessageEventData>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.HISTORY,\n (event) => {\n switch (event.data.type) {\n case \"forward\": {\n window.history.forward();\n break;\n }\n case \"backward\": {\n window.history.back();\n break;\n }\n case \"reload\": {\n window.history.go();\n break;\n }\n default: {\n const exhaustiveCheck: never = event.data.type;\n throw new Error(`Unhandled event: ${exhaustiveCheck}`);\n }\n }\n }\n );\n}\n\n/**\n * Registers a post message event listener for updating the entry in the live preview.\n */\nexport function useOnEntryUpdatePostMessageEvent(): void {\n livePreviewPostMessage?.on<OnChangeLivePreviewPostMessageEventData>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.ON_CHANGE,\n (event) => {\n try {\n const { ssr, onChange, stackDetails } = Config.get();\n const event_type = event.data._metadata?.event_type;\n setConfigFromParams({\n live_preview: event.data.hash,\n });\n\n // This section will run when there is a change in the entry and the website is CSR\n if (!ssr && !event_type) {\n onChange();\n }\n\n if (isOpeningInNewTab()) {\n if (!window) {\n PublicLogger.error(\"window is not defined\");\n return;\n };\n\n if (ssr && !event_type) {\n const url = new URL(window.location.href);\n let live_preview = url.searchParams.get(\"live_preview\");\n let content_type_uid = url.searchParams.get(\"content_type_uid\");\n let entry_uid = url.searchParams.get(\"entry_uid\");\n\n if (live_preview && content_type_uid && entry_uid) {\n // All required params are present, just reload\n window.location.reload();\n } else {\n live_preview = event.data.hash;\n content_type_uid = event.data.content_type_uid || stackDetails.contentTypeUid?.toString() || \"\";\n entry_uid = event.data.entry_uid || stackDetails.entryUid?.toString() || \"\";\n // Set missing params and redirect\n url.searchParams.set(\"live_preview\", live_preview);\n if (content_type_uid) {\n url.searchParams.set(\n \"content_type_uid\",\n content_type_uid\n );\n }\n if (entry_uid) {\n url.searchParams.set(\n \"entry_uid\",\n entry_uid\n );\n }\n window.location.href = url.toString();\n }\n }\n\n // This section will run when the hash changes and the website is SSR or CSR\n if (event_type === OnChangeLivePreviewPostMessageEventTypes.HASH_CHANGE) {\n const newUrl = new URL(window.location.href);\n newUrl.searchParams.set(\"live_preview\", event.data.hash);\n window.history.pushState({}, \"\", newUrl.toString());\n }\n\n // This section will run when the URL of the page changes\n if (event_type === OnChangeLivePreviewPostMessageEventTypes.URL_CHANGE && event.data.url) {\n window.location.href = event.data.url;\n }\n }\n } catch (error) {\n PublicLogger.error(\"Error handling live preview update:\", error);\n return;\n }\n }\n );\n}\n\nexport function sendInitializeLivePreviewPostMessageEvent(): void {\n const config = Config.get();\n const initConfig: {\n shouldReload: boolean;\n href: string;\n sdkVersion: string | undefined;\n mode: number;\n enableLivePreviewOutsideIframe?: boolean;\n } = {\n shouldReload: config.ssr,\n href: window.location.href,\n sdkVersion: process?.env?.PACKAGE_VERSION,\n mode: config.mode,\n };\n\n if (config.enableLivePreviewOutsideIframe !== undefined) {\n initConfig.enableLivePreviewOutsideIframe = config.enableLivePreviewOutsideIframe;\n }\n\n livePreviewPostMessage\n ?.send<LivePreviewInitEventResponse>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.INIT,\n {\n config: initConfig,\n }\n )\n .then((data) => {\n const {\n contentTypeUid,\n entryUid,\n windowType = ILivePreviewWindowType.PREVIEW,\n } = data || {};\n\n // TODO: This is a fix for the issue where we were calling sending init in the builder\n // Let's remove this condition when we fix it.\n if (Config?.get()?.windowType && Config.get().windowType === ILivePreviewWindowType.BUILDER) {\n return;\n }\n\n if (contentTypeUid && entryUid) {\n // TODO: we should not use this function. Instead we should have sideEffect run automatically when we set the config.\n setConfigFromParams({\n content_type_uid: contentTypeUid,\n entry_uid: entryUid,\n });\n } else {\n // TODO: add debug logs that runs conditionally\n // PublicLogger.debug(\n // \"init message did not contain contentTypeUid or entryUid.\"\n // );\n }\n if (\n Config.get().ssr ||\n isOpeningInTimeline() ||\n isOpeningInNewTab()\n ) {\n addParamsToUrl();\n }\n Config.set(\"windowType\", windowType);\n\n // set timeout for client side (use to show warning: You are not editing this page)\n if (!Config.get().ssr) {\n setInterval(() => {\n sendCurrentPageUrlPostMessageEvent();\n }, 1500);\n }\n\n useHistoryPostMessageEvent();\n useOnEntryUpdatePostMessageEvent();\n })\n .catch((e) => {\n // TODO: add debug logs that runs conditionally\n // PublicLogger.debug(\"Error while sending init message\", e);\n });\n}\n\nfunction sendCurrentPageUrlPostMessageEvent(): void {\n livePreviewPostMessage\n ?.send(LIVE_PREVIEW_POST_MESSAGE_EVENTS.CHECK_ENTRY_PAGE, {\n href: window.location.href,\n })\n .catch(() => {\n // TODO: add debug logs that runs conditionally\n });\n}\n"],"mappings":"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","names":["import_livePreviewEventManager","livePreviewPostMessage","Config"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/livePreview/eventManager/postMessageEvent.hooks.ts"],"sourcesContent":["import { inVisualEditor, isOpeningInNewTab } from \"../../common/inIframe\";\nimport Config, { syncToStackSdk } from \"../../configManager/configManager\";\nimport { PublicLogger } from \"../../logger/logger\";\nimport { ILivePreviewWindowType } from \"../../types/types\";\nimport { addParamsToUrl, isOpeningInTimeline } from \"../../utils\";\nimport livePreviewPostMessage from \"./livePreviewEventManager\";\nimport { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from \"./livePreviewEventManager.constant\";\nimport {\n HistoryLivePreviewPostMessageEventData,\n LivePreviewInitEventResponse,\n OnChangeLivePreviewPostMessageEventData,\n OnChangeLivePreviewPostMessageEventTypes,\n} from \"./types/livePreviewPostMessageEvent.type\";\n\n/**\n * Registers a post message event listener for history-related events.\n * The listener handles events for forward, backward, and reload actions on the browser history.\n */\nexport function useHistoryPostMessageEvent(): void {\n livePreviewPostMessage?.on<HistoryLivePreviewPostMessageEventData>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.HISTORY,\n (event) => {\n switch (event.data.type) {\n case \"forward\": {\n window.history.forward();\n break;\n }\n case \"backward\": {\n window.history.back();\n break;\n }\n case \"reload\": {\n window.history.go();\n break;\n }\n default: {\n const exhaustiveCheck: never = event.data.type;\n throw new Error(`Unhandled event: ${exhaustiveCheck}`);\n }\n }\n }\n );\n}\n\n/**\n * Registers a post message event listener for updating the entry in the live preview.\n */\nexport function useOnEntryUpdatePostMessageEvent(): void {\n livePreviewPostMessage?.on<OnChangeLivePreviewPostMessageEventData>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.ON_CHANGE,\n (event) => {\n try {\n const { ssr, onChange, stackDetails } = Config.get();\n const event_type = event.data._metadata?.event_type;\n // hash is typed as required string, guard is a safety net\n if (event.data.hash) {\n Config.set(\"hash\", event.data.hash);\n syncToStackSdk({ hash: event.data.hash });\n }\n\n // This section will run when there is a change in the entry and the website is CSR\n if (!ssr && !event_type) {\n onChange();\n }\n\n if (isOpeningInNewTab()) {\n if (!window) {\n PublicLogger.error(\"window is not defined\");\n return;\n };\n\n if (ssr && !event_type) {\n const url = new URL(window.location.href);\n let live_preview = url.searchParams.get(\"live_preview\");\n let content_type_uid = url.searchParams.get(\"content_type_uid\");\n let entry_uid = url.searchParams.get(\"entry_uid\");\n\n if (live_preview && content_type_uid && entry_uid) {\n // All required params are present, just reload\n window.location.reload();\n } else {\n live_preview = event.data.hash;\n content_type_uid = event.data.content_type_uid || stackDetails.contentTypeUid?.toString() || \"\";\n entry_uid = event.data.entry_uid || stackDetails.entryUid?.toString() || \"\";\n // Set missing params and redirect\n url.searchParams.set(\"live_preview\", live_preview);\n if (content_type_uid) {\n url.searchParams.set(\n \"content_type_uid\",\n content_type_uid\n );\n }\n if (entry_uid) {\n url.searchParams.set(\n \"entry_uid\",\n entry_uid\n );\n }\n window.location.href = url.toString();\n }\n }\n\n // This section will run when the hash changes and the website is SSR or CSR\n if (event_type === OnChangeLivePreviewPostMessageEventTypes.HASH_CHANGE) {\n const newUrl = new URL(window.location.href);\n newUrl.searchParams.set(\"live_preview\", event.data.hash);\n window.history.pushState({}, \"\", newUrl.toString());\n }\n\n // This section will run when the URL of the page changes\n if (event_type === OnChangeLivePreviewPostMessageEventTypes.URL_CHANGE && event.data.url) {\n window.location.href = event.data.url;\n }\n }\n } catch (error) {\n PublicLogger.error(\"Error handling live preview update:\", error);\n return;\n }\n }\n );\n}\n\nexport function sendInitializeLivePreviewPostMessageEvent(): void {\n const config = Config.get();\n const initConfig: {\n shouldReload: boolean;\n href: string;\n sdkVersion: string | undefined;\n mode: number;\n enableLivePreviewOutsideIframe?: boolean;\n } = {\n shouldReload: config.ssr,\n href: window.location.href,\n sdkVersion: process?.env?.PACKAGE_VERSION,\n mode: config.mode,\n };\n\n if (config.enableLivePreviewOutsideIframe !== undefined) {\n initConfig.enableLivePreviewOutsideIframe = config.enableLivePreviewOutsideIframe;\n }\n\n livePreviewPostMessage\n ?.send<LivePreviewInitEventResponse>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.INIT,\n {\n config: initConfig,\n }\n )\n .then((data) => {\n const {\n contentTypeUid,\n entryUid,\n windowType = ILivePreviewWindowType.PREVIEW,\n } = data || {};\n\n if(inVisualEditor()){\n return;\n }\n\n // TODO: the upper condition will the handle the visual editor init double firing issue so later we can remove this once verified\n if (Config?.get()?.windowType && Config.get().windowType === ILivePreviewWindowType.BUILDER) {\n return;\n }\n\n if (contentTypeUid && entryUid) {\n // Sync is explicit here intentionally: auto-effects via deepsignal would go blind when Config.reset() is called.\n Config.set(\"stackDetails.contentTypeUid\", contentTypeUid);\n Config.set(\"stackDetails.entryUid\", entryUid);\n syncToStackSdk({ contentTypeUid, entryUid });\n } else {\n // TODO: add debug logs that runs conditionally\n // PublicLogger.debug(\n // \"init message did not contain contentTypeUid or entryUid.\"\n // );\n }\n if (\n Config.get().ssr ||\n isOpeningInTimeline() ||\n isOpeningInNewTab()\n ) {\n addParamsToUrl();\n }\n Config.set(\"windowType\", windowType);\n\n // set timeout for client side (use to show warning: You are not editing this page)\n if (!Config.get().ssr) {\n setInterval(() => {\n sendCurrentPageUrlPostMessageEvent();\n }, 1500);\n }\n\n useHistoryPostMessageEvent();\n useOnEntryUpdatePostMessageEvent();\n })\n .catch((e) => {\n // TODO: add debug logs that runs conditionally\n // PublicLogger.debug(\"Error while sending init message\", e);\n });\n}\n\nfunction sendCurrentPageUrlPostMessageEvent(): void {\n livePreviewPostMessage\n ?.send(LIVE_PREVIEW_POST_MESSAGE_EVENTS.CHECK_ENTRY_PAGE, {\n href: window.location.href,\n })\n .catch(() => {\n // TODO: add debug logs that runs conditionally\n });\n}\n"],"mappings":"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","names":["import_livePreviewEventManager","livePreviewPostMessage","Config"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import "../../chunk-5WRI5ZAA.js";
|
|
2
2
|
|
|
3
3
|
// src/livePreview/eventManager/postMessageEvent.hooks.ts
|
|
4
|
-
import { isOpeningInNewTab } from "../../common/inIframe.js";
|
|
5
|
-
import Config, {
|
|
4
|
+
import { inVisualEditor, isOpeningInNewTab } from "../../common/inIframe.js";
|
|
5
|
+
import Config, { syncToStackSdk } from "../../configManager/configManager.js";
|
|
6
6
|
import { PublicLogger } from "../../logger/logger.js";
|
|
7
7
|
import { ILivePreviewWindowType } from "../../types/types.js";
|
|
8
8
|
import { addParamsToUrl, isOpeningInTimeline } from "../../utils/index.js";
|
|
@@ -43,9 +43,10 @@ function useOnEntryUpdatePostMessageEvent() {
|
|
|
43
43
|
try {
|
|
44
44
|
const { ssr, onChange, stackDetails } = Config.get();
|
|
45
45
|
const event_type = event.data._metadata?.event_type;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
if (event.data.hash) {
|
|
47
|
+
Config.set("hash", event.data.hash);
|
|
48
|
+
syncToStackSdk({ hash: event.data.hash });
|
|
49
|
+
}
|
|
49
50
|
if (!ssr && !event_type) {
|
|
50
51
|
onChange();
|
|
51
52
|
}
|
|
@@ -103,7 +104,7 @@ function sendInitializeLivePreviewPostMessageEvent() {
|
|
|
103
104
|
const initConfig = {
|
|
104
105
|
shouldReload: config.ssr,
|
|
105
106
|
href: window.location.href,
|
|
106
|
-
sdkVersion: "4.4.
|
|
107
|
+
sdkVersion: "4.4.4",
|
|
107
108
|
mode: config.mode
|
|
108
109
|
};
|
|
109
110
|
if (config.enableLivePreviewOutsideIframe !== void 0) {
|
|
@@ -120,14 +121,16 @@ function sendInitializeLivePreviewPostMessageEvent() {
|
|
|
120
121
|
entryUid,
|
|
121
122
|
windowType = ILivePreviewWindowType.PREVIEW
|
|
122
123
|
} = data || {};
|
|
124
|
+
if (inVisualEditor()) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
123
127
|
if (Config?.get()?.windowType && Config.get().windowType === ILivePreviewWindowType.BUILDER) {
|
|
124
128
|
return;
|
|
125
129
|
}
|
|
126
130
|
if (contentTypeUid && entryUid) {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
});
|
|
131
|
+
Config.set("stackDetails.contentTypeUid", contentTypeUid);
|
|
132
|
+
Config.set("stackDetails.entryUid", entryUid);
|
|
133
|
+
syncToStackSdk({ contentTypeUid, entryUid });
|
|
131
134
|
} else {
|
|
132
135
|
}
|
|
133
136
|
if (Config.get().ssr || isOpeningInTimeline() || isOpeningInNewTab()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/livePreview/eventManager/postMessageEvent.hooks.ts"],"sourcesContent":["import { isOpeningInNewTab } from \"../../common/inIframe\";\nimport Config, { setConfigFromParams } from \"../../configManager/configManager\";\nimport { PublicLogger } from \"../../logger/logger\";\nimport { ILivePreviewWindowType } from \"../../types/types\";\nimport { addParamsToUrl, isOpeningInTimeline } from \"../../utils\";\nimport livePreviewPostMessage from \"./livePreviewEventManager\";\nimport { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from \"./livePreviewEventManager.constant\";\nimport {\n HistoryLivePreviewPostMessageEventData,\n LivePreviewInitEventResponse,\n OnChangeLivePreviewPostMessageEventData,\n OnChangeLivePreviewPostMessageEventTypes,\n} from \"./types/livePreviewPostMessageEvent.type\";\n\n/**\n * Registers a post message event listener for history-related events.\n * The listener handles events for forward, backward, and reload actions on the browser history.\n */\nexport function useHistoryPostMessageEvent(): void {\n livePreviewPostMessage?.on<HistoryLivePreviewPostMessageEventData>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.HISTORY,\n (event) => {\n switch (event.data.type) {\n case \"forward\": {\n window.history.forward();\n break;\n }\n case \"backward\": {\n window.history.back();\n break;\n }\n case \"reload\": {\n window.history.go();\n break;\n }\n default: {\n const exhaustiveCheck: never = event.data.type;\n throw new Error(`Unhandled event: ${exhaustiveCheck}`);\n }\n }\n }\n );\n}\n\n/**\n * Registers a post message event listener for updating the entry in the live preview.\n */\nexport function useOnEntryUpdatePostMessageEvent(): void {\n livePreviewPostMessage?.on<OnChangeLivePreviewPostMessageEventData>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.ON_CHANGE,\n (event) => {\n try {\n const { ssr, onChange, stackDetails } = Config.get();\n const event_type = event.data._metadata?.event_type;\n setConfigFromParams({\n live_preview: event.data.hash,\n });\n\n // This section will run when there is a change in the entry and the website is CSR\n if (!ssr && !event_type) {\n onChange();\n }\n\n if (isOpeningInNewTab()) {\n if (!window) {\n PublicLogger.error(\"window is not defined\");\n return;\n };\n\n if (ssr && !event_type) {\n const url = new URL(window.location.href);\n let live_preview = url.searchParams.get(\"live_preview\");\n let content_type_uid = url.searchParams.get(\"content_type_uid\");\n let entry_uid = url.searchParams.get(\"entry_uid\");\n\n if (live_preview && content_type_uid && entry_uid) {\n // All required params are present, just reload\n window.location.reload();\n } else {\n live_preview = event.data.hash;\n content_type_uid = event.data.content_type_uid || stackDetails.contentTypeUid?.toString() || \"\";\n entry_uid = event.data.entry_uid || stackDetails.entryUid?.toString() || \"\";\n // Set missing params and redirect\n url.searchParams.set(\"live_preview\", live_preview);\n if (content_type_uid) {\n url.searchParams.set(\n \"content_type_uid\",\n content_type_uid\n );\n }\n if (entry_uid) {\n url.searchParams.set(\n \"entry_uid\",\n entry_uid\n );\n }\n window.location.href = url.toString();\n }\n }\n\n // This section will run when the hash changes and the website is SSR or CSR\n if (event_type === OnChangeLivePreviewPostMessageEventTypes.HASH_CHANGE) {\n const newUrl = new URL(window.location.href);\n newUrl.searchParams.set(\"live_preview\", event.data.hash);\n window.history.pushState({}, \"\", newUrl.toString());\n }\n\n // This section will run when the URL of the page changes\n if (event_type === OnChangeLivePreviewPostMessageEventTypes.URL_CHANGE && event.data.url) {\n window.location.href = event.data.url;\n }\n }\n } catch (error) {\n PublicLogger.error(\"Error handling live preview update:\", error);\n return;\n }\n }\n );\n}\n\nexport function sendInitializeLivePreviewPostMessageEvent(): void {\n const config = Config.get();\n const initConfig: {\n shouldReload: boolean;\n href: string;\n sdkVersion: string | undefined;\n mode: number;\n enableLivePreviewOutsideIframe?: boolean;\n } = {\n shouldReload: config.ssr,\n href: window.location.href,\n sdkVersion: process?.env?.PACKAGE_VERSION,\n mode: config.mode,\n };\n\n if (config.enableLivePreviewOutsideIframe !== undefined) {\n initConfig.enableLivePreviewOutsideIframe = config.enableLivePreviewOutsideIframe;\n }\n\n livePreviewPostMessage\n ?.send<LivePreviewInitEventResponse>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.INIT,\n {\n config: initConfig,\n }\n )\n .then((data) => {\n const {\n contentTypeUid,\n entryUid,\n windowType = ILivePreviewWindowType.PREVIEW,\n } = data || {};\n\n // TODO: This is a fix for the issue where we were calling sending init in the builder\n // Let's remove this condition when we fix it.\n if (Config?.get()?.windowType && Config.get().windowType === ILivePreviewWindowType.BUILDER) {\n return;\n }\n\n if (contentTypeUid && entryUid) {\n // TODO: we should not use this function. Instead we should have sideEffect run automatically when we set the config.\n setConfigFromParams({\n content_type_uid: contentTypeUid,\n entry_uid: entryUid,\n });\n } else {\n // TODO: add debug logs that runs conditionally\n // PublicLogger.debug(\n // \"init message did not contain contentTypeUid or entryUid.\"\n // );\n }\n if (\n Config.get().ssr ||\n isOpeningInTimeline() ||\n isOpeningInNewTab()\n ) {\n addParamsToUrl();\n }\n Config.set(\"windowType\", windowType);\n\n // set timeout for client side (use to show warning: You are not editing this page)\n if (!Config.get().ssr) {\n setInterval(() => {\n sendCurrentPageUrlPostMessageEvent();\n }, 1500);\n }\n\n useHistoryPostMessageEvent();\n useOnEntryUpdatePostMessageEvent();\n })\n .catch((e) => {\n // TODO: add debug logs that runs conditionally\n // PublicLogger.debug(\"Error while sending init message\", e);\n });\n}\n\nfunction sendCurrentPageUrlPostMessageEvent(): void {\n livePreviewPostMessage\n ?.send(LIVE_PREVIEW_POST_MESSAGE_EVENTS.CHECK_ENTRY_PAGE, {\n href: window.location.href,\n })\n .catch(() => {\n // TODO: add debug logs that runs conditionally\n });\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/livePreview/eventManager/postMessageEvent.hooks.ts"],"sourcesContent":["import { inVisualEditor, isOpeningInNewTab } from \"../../common/inIframe\";\nimport Config, { syncToStackSdk } from \"../../configManager/configManager\";\nimport { PublicLogger } from \"../../logger/logger\";\nimport { ILivePreviewWindowType } from \"../../types/types\";\nimport { addParamsToUrl, isOpeningInTimeline } from \"../../utils\";\nimport livePreviewPostMessage from \"./livePreviewEventManager\";\nimport { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from \"./livePreviewEventManager.constant\";\nimport {\n HistoryLivePreviewPostMessageEventData,\n LivePreviewInitEventResponse,\n OnChangeLivePreviewPostMessageEventData,\n OnChangeLivePreviewPostMessageEventTypes,\n} from \"./types/livePreviewPostMessageEvent.type\";\n\n/**\n * Registers a post message event listener for history-related events.\n * The listener handles events for forward, backward, and reload actions on the browser history.\n */\nexport function useHistoryPostMessageEvent(): void {\n livePreviewPostMessage?.on<HistoryLivePreviewPostMessageEventData>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.HISTORY,\n (event) => {\n switch (event.data.type) {\n case \"forward\": {\n window.history.forward();\n break;\n }\n case \"backward\": {\n window.history.back();\n break;\n }\n case \"reload\": {\n window.history.go();\n break;\n }\n default: {\n const exhaustiveCheck: never = event.data.type;\n throw new Error(`Unhandled event: ${exhaustiveCheck}`);\n }\n }\n }\n );\n}\n\n/**\n * Registers a post message event listener for updating the entry in the live preview.\n */\nexport function useOnEntryUpdatePostMessageEvent(): void {\n livePreviewPostMessage?.on<OnChangeLivePreviewPostMessageEventData>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.ON_CHANGE,\n (event) => {\n try {\n const { ssr, onChange, stackDetails } = Config.get();\n const event_type = event.data._metadata?.event_type;\n // hash is typed as required string, guard is a safety net\n if (event.data.hash) {\n Config.set(\"hash\", event.data.hash);\n syncToStackSdk({ hash: event.data.hash });\n }\n\n // This section will run when there is a change in the entry and the website is CSR\n if (!ssr && !event_type) {\n onChange();\n }\n\n if (isOpeningInNewTab()) {\n if (!window) {\n PublicLogger.error(\"window is not defined\");\n return;\n };\n\n if (ssr && !event_type) {\n const url = new URL(window.location.href);\n let live_preview = url.searchParams.get(\"live_preview\");\n let content_type_uid = url.searchParams.get(\"content_type_uid\");\n let entry_uid = url.searchParams.get(\"entry_uid\");\n\n if (live_preview && content_type_uid && entry_uid) {\n // All required params are present, just reload\n window.location.reload();\n } else {\n live_preview = event.data.hash;\n content_type_uid = event.data.content_type_uid || stackDetails.contentTypeUid?.toString() || \"\";\n entry_uid = event.data.entry_uid || stackDetails.entryUid?.toString() || \"\";\n // Set missing params and redirect\n url.searchParams.set(\"live_preview\", live_preview);\n if (content_type_uid) {\n url.searchParams.set(\n \"content_type_uid\",\n content_type_uid\n );\n }\n if (entry_uid) {\n url.searchParams.set(\n \"entry_uid\",\n entry_uid\n );\n }\n window.location.href = url.toString();\n }\n }\n\n // This section will run when the hash changes and the website is SSR or CSR\n if (event_type === OnChangeLivePreviewPostMessageEventTypes.HASH_CHANGE) {\n const newUrl = new URL(window.location.href);\n newUrl.searchParams.set(\"live_preview\", event.data.hash);\n window.history.pushState({}, \"\", newUrl.toString());\n }\n\n // This section will run when the URL of the page changes\n if (event_type === OnChangeLivePreviewPostMessageEventTypes.URL_CHANGE && event.data.url) {\n window.location.href = event.data.url;\n }\n }\n } catch (error) {\n PublicLogger.error(\"Error handling live preview update:\", error);\n return;\n }\n }\n );\n}\n\nexport function sendInitializeLivePreviewPostMessageEvent(): void {\n const config = Config.get();\n const initConfig: {\n shouldReload: boolean;\n href: string;\n sdkVersion: string | undefined;\n mode: number;\n enableLivePreviewOutsideIframe?: boolean;\n } = {\n shouldReload: config.ssr,\n href: window.location.href,\n sdkVersion: process?.env?.PACKAGE_VERSION,\n mode: config.mode,\n };\n\n if (config.enableLivePreviewOutsideIframe !== undefined) {\n initConfig.enableLivePreviewOutsideIframe = config.enableLivePreviewOutsideIframe;\n }\n\n livePreviewPostMessage\n ?.send<LivePreviewInitEventResponse>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.INIT,\n {\n config: initConfig,\n }\n )\n .then((data) => {\n const {\n contentTypeUid,\n entryUid,\n windowType = ILivePreviewWindowType.PREVIEW,\n } = data || {};\n\n if(inVisualEditor()){\n return;\n }\n\n // TODO: the upper condition will the handle the visual editor init double firing issue so later we can remove this once verified\n if (Config?.get()?.windowType && Config.get().windowType === ILivePreviewWindowType.BUILDER) {\n return;\n }\n\n if (contentTypeUid && entryUid) {\n // Sync is explicit here intentionally: auto-effects via deepsignal would go blind when Config.reset() is called.\n Config.set(\"stackDetails.contentTypeUid\", contentTypeUid);\n Config.set(\"stackDetails.entryUid\", entryUid);\n syncToStackSdk({ contentTypeUid, entryUid });\n } else {\n // TODO: add debug logs that runs conditionally\n // PublicLogger.debug(\n // \"init message did not contain contentTypeUid or entryUid.\"\n // );\n }\n if (\n Config.get().ssr ||\n isOpeningInTimeline() ||\n isOpeningInNewTab()\n ) {\n addParamsToUrl();\n }\n Config.set(\"windowType\", windowType);\n\n // set timeout for client side (use to show warning: You are not editing this page)\n if (!Config.get().ssr) {\n setInterval(() => {\n sendCurrentPageUrlPostMessageEvent();\n }, 1500);\n }\n\n useHistoryPostMessageEvent();\n useOnEntryUpdatePostMessageEvent();\n })\n .catch((e) => {\n // TODO: add debug logs that runs conditionally\n // PublicLogger.debug(\"Error while sending init message\", e);\n });\n}\n\nfunction sendCurrentPageUrlPostMessageEvent(): void {\n livePreviewPostMessage\n ?.send(LIVE_PREVIEW_POST_MESSAGE_EVENTS.CHECK_ENTRY_PAGE, {\n href: window.location.href,\n })\n .catch(() => {\n // TODO: add debug logs that runs conditionally\n });\n}\n"],"mappings":"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","names":[]}
|
|
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(onPageTraversal_exports);
|
|
|
36
36
|
var import_livePreviewEventManager = __toESM(require("./eventManager/livePreviewEventManager.cjs"), 1);
|
|
37
37
|
var import_livePreviewEventManager2 = require("./eventManager/livePreviewEventManager.constant.cjs");
|
|
38
38
|
function handlePageTraversal() {
|
|
39
|
-
window.addEventListener("
|
|
39
|
+
window.addEventListener("pagehide", () => {
|
|
40
40
|
const targetURL = document.activeElement.href;
|
|
41
41
|
if (targetURL) {
|
|
42
42
|
import_livePreviewEventManager.default?.send(
|