@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.
Files changed (142) hide show
  1. package/README.md +3 -2
  2. package/dist/legacy/common/inIframe.cjs +9 -0
  3. package/dist/legacy/common/inIframe.cjs.map +1 -1
  4. package/dist/legacy/common/inIframe.d.cts +2 -1
  5. package/dist/legacy/common/inIframe.d.ts +2 -1
  6. package/dist/legacy/common/inIframe.js +8 -0
  7. package/dist/legacy/common/inIframe.js.map +1 -1
  8. package/dist/legacy/configManager/config.default.cjs +2 -1
  9. package/dist/legacy/configManager/config.default.cjs.map +1 -1
  10. package/dist/legacy/configManager/config.default.js +2 -1
  11. package/dist/legacy/configManager/config.default.js.map +1 -1
  12. package/dist/legacy/configManager/configManager.cjs +24 -5
  13. package/dist/legacy/configManager/configManager.cjs.map +1 -1
  14. package/dist/legacy/configManager/configManager.d.cts +11 -1
  15. package/dist/legacy/configManager/configManager.d.ts +11 -1
  16. package/dist/legacy/configManager/configManager.js +23 -5
  17. package/dist/legacy/configManager/configManager.js.map +1 -1
  18. package/dist/legacy/configManager/index.d.cts +1 -1
  19. package/dist/legacy/configManager/index.d.ts +1 -1
  20. package/dist/legacy/light-sdk.cjs +1 -1
  21. package/dist/legacy/light-sdk.js +1 -1
  22. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs +11 -8
  23. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs.map +1 -1
  24. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js +13 -10
  25. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js.map +1 -1
  26. package/dist/legacy/livePreview/onPageTraversal.cjs +1 -1
  27. package/dist/legacy/livePreview/onPageTraversal.cjs.map +1 -1
  28. package/dist/legacy/livePreview/onPageTraversal.js +1 -1
  29. package/dist/legacy/livePreview/onPageTraversal.js.map +1 -1
  30. package/dist/legacy/preview/contentstack-live-preview-HOC.cjs +37 -1
  31. package/dist/legacy/preview/contentstack-live-preview-HOC.cjs.map +1 -1
  32. package/dist/legacy/preview/contentstack-live-preview-HOC.d.cts +19 -0
  33. package/dist/legacy/preview/contentstack-live-preview-HOC.d.ts +19 -0
  34. package/dist/legacy/preview/contentstack-live-preview-HOC.js +39 -1
  35. package/dist/legacy/preview/contentstack-live-preview-HOC.js.map +1 -1
  36. package/dist/legacy/types/global.d.cjs +19 -0
  37. package/dist/legacy/types/global.d.cjs.map +1 -0
  38. package/dist/legacy/types/global.d.d.cts +8 -0
  39. package/dist/legacy/types/global.d.d.ts +8 -0
  40. package/dist/legacy/types/global.d.js +1 -0
  41. package/dist/legacy/types/global.d.js.map +1 -0
  42. package/dist/legacy/types/types.cjs.map +1 -1
  43. package/dist/legacy/types/types.d.cts +6 -1
  44. package/dist/legacy/types/types.d.ts +6 -1
  45. package/dist/legacy/types/types.js.map +1 -1
  46. package/dist/legacy/visualBuilder/index.cjs +8 -3
  47. package/dist/legacy/visualBuilder/index.cjs.map +1 -1
  48. package/dist/legacy/visualBuilder/index.js +8 -3
  49. package/dist/legacy/visualBuilder/index.js.map +1 -1
  50. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs +8 -0
  51. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs.map +1 -1
  52. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.js +8 -0
  53. package/dist/legacy/visualBuilder/utils/getVisualBuilderRedirectionUrl.js.map +1 -1
  54. package/dist/legacy/visualBuilder/utils/resolvePageContext.cjs +49 -0
  55. package/dist/legacy/visualBuilder/utils/resolvePageContext.cjs.map +1 -0
  56. package/dist/legacy/visualBuilder/utils/resolvePageContext.d.cts +6 -0
  57. package/dist/legacy/visualBuilder/utils/resolvePageContext.d.ts +6 -0
  58. package/dist/legacy/visualBuilder/utils/resolvePageContext.js +16 -0
  59. package/dist/legacy/visualBuilder/utils/resolvePageContext.js.map +1 -0
  60. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs +1 -0
  61. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  62. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.cts +6 -1
  63. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.ts +6 -1
  64. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js +1 -0
  65. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  66. package/dist/modern/common/inIframe.cjs +9 -0
  67. package/dist/modern/common/inIframe.cjs.map +1 -1
  68. package/dist/modern/common/inIframe.d.cts +2 -1
  69. package/dist/modern/common/inIframe.d.ts +2 -1
  70. package/dist/modern/common/inIframe.js +8 -0
  71. package/dist/modern/common/inIframe.js.map +1 -1
  72. package/dist/modern/configManager/config.default.cjs +2 -1
  73. package/dist/modern/configManager/config.default.cjs.map +1 -1
  74. package/dist/modern/configManager/config.default.js +2 -1
  75. package/dist/modern/configManager/config.default.js.map +1 -1
  76. package/dist/modern/configManager/configManager.cjs +24 -5
  77. package/dist/modern/configManager/configManager.cjs.map +1 -1
  78. package/dist/modern/configManager/configManager.d.cts +11 -1
  79. package/dist/modern/configManager/configManager.d.ts +11 -1
  80. package/dist/modern/configManager/configManager.js +23 -5
  81. package/dist/modern/configManager/configManager.js.map +1 -1
  82. package/dist/modern/configManager/index.d.cts +1 -1
  83. package/dist/modern/configManager/index.d.ts +1 -1
  84. package/dist/modern/light-sdk.cjs +1 -1
  85. package/dist/modern/light-sdk.js +1 -1
  86. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +11 -8
  87. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs.map +1 -1
  88. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +13 -10
  89. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js.map +1 -1
  90. package/dist/modern/livePreview/onPageTraversal.cjs +1 -1
  91. package/dist/modern/livePreview/onPageTraversal.cjs.map +1 -1
  92. package/dist/modern/livePreview/onPageTraversal.js +1 -1
  93. package/dist/modern/livePreview/onPageTraversal.js.map +1 -1
  94. package/dist/modern/preview/contentstack-live-preview-HOC.cjs +36 -1
  95. package/dist/modern/preview/contentstack-live-preview-HOC.cjs.map +1 -1
  96. package/dist/modern/preview/contentstack-live-preview-HOC.d.cts +19 -0
  97. package/dist/modern/preview/contentstack-live-preview-HOC.d.ts +19 -0
  98. package/dist/modern/preview/contentstack-live-preview-HOC.js +38 -1
  99. package/dist/modern/preview/contentstack-live-preview-HOC.js.map +1 -1
  100. package/dist/modern/types/global.d.cjs +19 -0
  101. package/dist/modern/types/global.d.cjs.map +1 -0
  102. package/dist/modern/types/global.d.d.cts +8 -0
  103. package/dist/modern/types/global.d.d.ts +8 -0
  104. package/dist/modern/types/global.d.js +1 -0
  105. package/dist/modern/types/global.d.js.map +1 -0
  106. package/dist/modern/types/types.cjs.map +1 -1
  107. package/dist/modern/types/types.d.cts +6 -1
  108. package/dist/modern/types/types.d.ts +6 -1
  109. package/dist/modern/types/types.js.map +1 -1
  110. package/dist/modern/visualBuilder/index.cjs +8 -3
  111. package/dist/modern/visualBuilder/index.cjs.map +1 -1
  112. package/dist/modern/visualBuilder/index.js +8 -3
  113. package/dist/modern/visualBuilder/index.js.map +1 -1
  114. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs +8 -0
  115. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.cjs.map +1 -1
  116. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.js +8 -0
  117. package/dist/modern/visualBuilder/utils/getVisualBuilderRedirectionUrl.js.map +1 -1
  118. package/dist/modern/visualBuilder/utils/resolvePageContext.cjs +48 -0
  119. package/dist/modern/visualBuilder/utils/resolvePageContext.cjs.map +1 -0
  120. package/dist/modern/visualBuilder/utils/resolvePageContext.d.cts +6 -0
  121. package/dist/modern/visualBuilder/utils/resolvePageContext.d.ts +6 -0
  122. package/dist/modern/visualBuilder/utils/resolvePageContext.js +15 -0
  123. package/dist/modern/visualBuilder/utils/resolvePageContext.js.map +1 -0
  124. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs +1 -0
  125. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  126. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.cts +6 -1
  127. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.ts +6 -1
  128. package/dist/modern/visualBuilder/utils/types/postMessage.types.js +1 -0
  129. package/dist/modern/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  130. package/package.json +1 -1
  131. package/dist/legacy/utils/handlePageTraversal.cjs +0 -47
  132. package/dist/legacy/utils/handlePageTraversal.cjs.map +0 -1
  133. package/dist/legacy/utils/handlePageTraversal.d.cts +0 -3
  134. package/dist/legacy/utils/handlePageTraversal.d.ts +0 -3
  135. package/dist/legacy/utils/handlePageTraversal.js +0 -24
  136. package/dist/legacy/utils/handlePageTraversal.js.map +0 -1
  137. package/dist/modern/utils/handlePageTraversal.cjs +0 -47
  138. package/dist/modern/utils/handlePageTraversal.cjs.map +0 -1
  139. package/dist/modern/utils/handlePageTraversal.d.cts +0 -3
  140. package/dist/modern/utils/handlePageTraversal.d.ts +0 -3
  141. package/dist/modern/utils/handlePageTraversal.js +0 -24
  142. package/dist/modern/utils/handlePageTraversal.js.map +0 -1
package/README.md CHANGED
@@ -29,11 +29,11 @@ npm install @contentstack/live-preview-utils
29
29
 
30
30
  ### Load from a CDN (advanced)
31
31
 
32
- Pin the version to match your app (update `4.4.3` when you upgrade):
32
+ Pin the version to match your app (update `4.4.4` when you upgrade):
33
33
 
34
34
  ```html
35
35
  <script type="module" crossorigin="anonymous">
36
- import ContentstackLivePreview from "https://esm.sh/@contentstack/live-preview-utils@4.4.3";
36
+ import ContentstackLivePreview from "https://esm.sh/@contentstack/live-preview-utils@4.4.4";
37
37
 
38
38
  ContentstackLivePreview.init({
39
39
  stackDetails: {
@@ -84,6 +84,7 @@ Full tables and examples: **[docs/live-preview-configs.md](docs/live-preview-con
84
84
  - [`onLiveEdit`](docs/live-preview-configs.md#onliveeditcallback---void): Trigger actions on live edits
85
85
  - [`onEntryChange`](docs/live-preview-configs.md#onentrychangecallback---void): Listen for entry updates
86
86
  - [`hash`](docs/live-preview-configs.md#hash): Access preview state identifier
87
+ - [`setPageContext`](docs/live-preview-configs.md#setpagecontextcontext): Tell Visual Builder which entry the current page renders so “Start Editing” targets the right entry (needed for custom-URL pages)
87
88
  - [`config`](docs/live-preview-configs.md#config): Includes runtime context (for example Live Preview / Timeline preview, Visual Editor, or independent)
88
89
 
89
90
  The [configs table of contents](docs/live-preview-configs.md#contentstack-live-preview-utils-sdk-configs) also lists `setConfigFromParams` and `getGatsbyDataFormat` for deeper workflows.
@@ -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 == null ? void 0 : 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,MAAK,iCAAQ,SAAQ;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":[]}
@@ -1,4 +1,5 @@
1
1
  declare function inIframe(): boolean;
2
+ declare function inVisualEditor(): boolean;
2
3
  declare function isOpeningInNewTab(): boolean;
3
4
 
4
- export { inIframe, isOpeningInNewTab };
5
+ export { inIframe, inVisualEditor, isOpeningInNewTab };
@@ -1,4 +1,5 @@
1
1
  declare function inIframe(): boolean;
2
+ declare function inVisualEditor(): boolean;
2
3
  declare function isOpeningInNewTab(): boolean;
3
4
 
4
- export { inIframe, isOpeningInNewTab };
5
+ export { inIframe, inVisualEditor, isOpeningInNewTab };
@@ -9,6 +9,13 @@ function inIframe() {
9
9
  return true;
10
10
  }
11
11
  }
12
+ function inVisualEditor() {
13
+ try {
14
+ return inIframe() && (window == null ? void 0 : 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,MAAK,iCAAQ,SAAQ;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":[]}
@@ -129,7 +129,8 @@ function getDefaultConfig() {
129
129
  },
130
130
  payload: []
131
131
  },
132
- enableLivePreviewOutsideIframe: void 0
132
+ enableLivePreviewOutsideIframe: void 0,
133
+ pageContext: null
133
134
  };
134
135
  }
135
136
  // Annotate the CommonJS export names for ESM import in node:
@@ -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,EACpC;AACJ;","names":[]}
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":[]}
@@ -108,7 +108,8 @@ function getDefaultConfig() {
108
108
  },
109
109
  payload: []
110
110
  },
111
- enableLivePreviewOutsideIframe: void 0
111
+ enableLivePreviewOutsideIframe: void 0,
112
+ pageContext: null
112
113
  };
113
114
  }
114
115
  export {
@@ -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,EACpC;AACJ;","names":[]}
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
- stackSdkLivePreview.entry_uid = entry_uid;
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 const stackSdkLivePreview = Config.get().stackSdk.live_preview;\n\n if (live_preview) {\n Config.set(\"hash\", live_preview);\n stackSdkLivePreview.hash = live_preview;\n stackSdkLivePreview.live_preview = live_preview;\n }\n\n if (content_type_uid) {\n Config.set(\"stackDetails.contentTypeUid\", content_type_uid);\n stackSdkLivePreview.content_type_uid = content_type_uid;\n }\n\n if (entry_uid) {\n Config.set(\"stackDetails.entryUid\", entry_uid);\n stackSdkLivePreview.entry_uid = entry_uid;\n }\n\n Config.set(\"stackSdk.live_preview\", stackSdkLivePreview);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;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,QAAM,sBAAsB,OAAO,IAAI,EAAE,SAAS;AAElD,MAAI,cAAc;AACd,WAAO,IAAI,QAAQ,YAAY;AAC/B,wBAAoB,OAAO;AAC3B,wBAAoB,eAAe;AAAA,EACvC;AAEA,MAAI,kBAAkB;AAClB,WAAO,IAAI,+BAA+B,gBAAgB;AAC1D,wBAAoB,mBAAmB;AAAA,EAC3C;AAEA,MAAI,WAAW;AACX,WAAO,IAAI,yBAAyB,SAAS;AAC7C,wBAAoB,YAAY;AAAA,EACpC;AAEA,SAAO,IAAI,yBAAyB,mBAAmB;AAC3D;","names":["lodashHas","lodashSet"]}
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
- stackSdkLivePreview.entry_uid = entry_uid;
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 const stackSdkLivePreview = Config.get().stackSdk.live_preview;\n\n if (live_preview) {\n Config.set(\"hash\", live_preview);\n stackSdkLivePreview.hash = live_preview;\n stackSdkLivePreview.live_preview = live_preview;\n }\n\n if (content_type_uid) {\n Config.set(\"stackDetails.contentTypeUid\", content_type_uid);\n stackSdkLivePreview.content_type_uid = content_type_uid;\n }\n\n if (entry_uid) {\n Config.set(\"stackDetails.entryUid\", entry_uid);\n stackSdkLivePreview.entry_uid = entry_uid;\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,QAAM,sBAAsB,OAAO,IAAI,EAAE,SAAS;AAElD,MAAI,cAAc;AACd,WAAO,IAAI,QAAQ,YAAY;AAC/B,wBAAoB,OAAO;AAC3B,wBAAoB,eAAe;AAAA,EACvC;AAEA,MAAI,kBAAkB;AAClB,WAAO,IAAI,+BAA+B,gBAAgB;AAC1D,wBAAoB,mBAAmB;AAAA,EAC3C;AAEA,MAAI,WAAW;AACX,WAAO,IAAI,yBAAyB,SAAS;AAC7C,wBAAoB,YAAY;AAAA,EACpC;AAEA,SAAO,IAAI,yBAAyB,mBAAmB;AAC3D;","names":[]}
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.3" : void 0) ?? "";
63
+ return (typeof process !== "undefined" ? "4.4.4" : void 0) ?? "";
64
64
  }
65
65
  };
66
66
  _LightLivePreviewHoC.previewConstructors = {};
@@ -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.3" : void 0) ?? "";
41
+ return (typeof process !== "undefined" ? "4.4.4" : void 0) ?? "";
42
42
  }
43
43
  };
44
44
  _LightLivePreviewHoC.previewConstructors = {};
@@ -78,9 +78,10 @@ function useOnEntryUpdatePostMessageEvent() {
78
78
  try {
79
79
  const { ssr, onChange, stackDetails } = import_configManager.default.get();
80
80
  const event_type = (_a2 = event.data._metadata) == null ? void 0 : _a2.event_type;
81
- (0, import_configManager.setConfigFromParams)({
82
- live_preview: event.data.hash
83
- });
81
+ if (event.data.hash) {
82
+ import_configManager.default.set("hash", event.data.hash);
83
+ (0, import_configManager.syncToStackSdk)({ hash: event.data.hash });
84
+ }
84
85
  if (!ssr && !event_type) {
85
86
  onChange();
86
87
  }
@@ -139,7 +140,7 @@ function sendInitializeLivePreviewPostMessageEvent() {
139
140
  const initConfig = {
140
141
  shouldReload: config.ssr,
141
142
  href: window.location.href,
142
- sdkVersion: "4.4.3",
143
+ sdkVersion: "4.4.4",
143
144
  mode: config.mode
144
145
  };
145
146
  if (config.enableLivePreviewOutsideIframe !== void 0) {
@@ -157,14 +158,16 @@ function sendInitializeLivePreviewPostMessageEvent() {
157
158
  entryUid,
158
159
  windowType = import_types.ILivePreviewWindowType.PREVIEW
159
160
  } = data || {};
161
+ if ((0, import_inIframe.inVisualEditor)()) {
162
+ return;
163
+ }
160
164
  if (((_b = (_a2 = import_configManager.default) == null ? void 0 : _a2.get()) == null ? void 0 : _b.windowType) && import_configManager.default.get().windowType === import_types.ILivePreviewWindowType.BUILDER) {
161
165
  return;
162
166
  }
163
167
  if (contentTypeUid && entryUid) {
164
- (0, import_configManager.setConfigFromParams)({
165
- content_type_uid: contentTypeUid,
166
- entry_uid: entryUid
167
- });
168
+ import_configManager.default.set("stackDetails.contentTypeUid", contentTypeUid);
169
+ import_configManager.default.set("stackDetails.entryUid", entryUid);
170
+ (0, import_configManager.syncToStackSdk)({ contentTypeUid, entryUid });
168
171
  } else {
169
172
  }
170
173
  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","_a","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","_a","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, { setConfigFromParams } from "../../configManager/configManager.js";
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";
@@ -46,9 +46,10 @@ function useOnEntryUpdatePostMessageEvent() {
46
46
  try {
47
47
  const { ssr, onChange, stackDetails } = Config.get();
48
48
  const event_type = (_a2 = event.data._metadata) == null ? void 0 : _a2.event_type;
49
- setConfigFromParams({
50
- live_preview: event.data.hash
51
- });
49
+ if (event.data.hash) {
50
+ Config.set("hash", event.data.hash);
51
+ syncToStackSdk({ hash: event.data.hash });
52
+ }
52
53
  if (!ssr && !event_type) {
53
54
  onChange();
54
55
  }
@@ -107,7 +108,7 @@ function sendInitializeLivePreviewPostMessageEvent() {
107
108
  const initConfig = {
108
109
  shouldReload: config.ssr,
109
110
  href: window.location.href,
110
- sdkVersion: "4.4.3",
111
+ sdkVersion: "4.4.4",
111
112
  mode: config.mode
112
113
  };
113
114
  if (config.enableLivePreviewOutsideIframe !== void 0) {
@@ -125,14 +126,16 @@ function sendInitializeLivePreviewPostMessageEvent() {
125
126
  entryUid,
126
127
  windowType = ILivePreviewWindowType.PREVIEW
127
128
  } = data || {};
129
+ if (inVisualEditor()) {
130
+ return;
131
+ }
128
132
  if (((_b = (_a2 = Config) == null ? void 0 : _a2.get()) == null ? void 0 : _b.windowType) && Config.get().windowType === ILivePreviewWindowType.BUILDER) {
129
133
  return;
130
134
  }
131
135
  if (contentTypeUid && entryUid) {
132
- setConfigFromParams({
133
- content_type_uid: contentTypeUid,
134
- entry_uid: entryUid
135
- });
136
+ Config.set("stackDetails.contentTypeUid", contentTypeUid);
137
+ Config.set("stackDetails.entryUid", entryUid);
138
+ syncToStackSdk({ contentTypeUid, entryUid });
136
139
  } else {
137
140
  }
138
141
  if (Config.get().ssr || isOpeningInTimeline() || isOpeningInNewTab()) {