@contentstack/live-preview-utils 3.2.0-alpha.1 → 3.2.1

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 (508) hide show
  1. package/README.md +2 -2
  2. package/dist/legacy/configManager/config.default.cjs +10 -1
  3. package/dist/legacy/configManager/config.default.cjs.map +1 -1
  4. package/dist/legacy/configManager/config.default.js +10 -1
  5. package/dist/legacy/configManager/config.default.js.map +1 -1
  6. package/dist/legacy/configManager/handleUserConfig.cjs +7 -3
  7. package/dist/legacy/configManager/handleUserConfig.cjs.map +1 -1
  8. package/dist/legacy/configManager/handleUserConfig.js +7 -3
  9. package/dist/legacy/configManager/handleUserConfig.js.map +1 -1
  10. package/dist/legacy/index.cjs +45 -1
  11. package/dist/legacy/index.cjs.map +1 -1
  12. package/dist/legacy/index.d.cts +16 -2
  13. package/dist/legacy/index.d.ts +16 -2
  14. package/dist/legacy/index.js +45 -1
  15. package/dist/legacy/index.js.map +1 -1
  16. package/dist/legacy/livePreview/editButton/editButton.cjs +86 -1
  17. package/dist/legacy/livePreview/editButton/editButton.cjs.map +1 -1
  18. package/dist/legacy/livePreview/editButton/editButton.d.cts +14 -1
  19. package/dist/legacy/livePreview/editButton/editButton.d.ts +14 -1
  20. package/dist/legacy/livePreview/editButton/editButton.js +85 -1
  21. package/dist/legacy/livePreview/editButton/editButton.js.map +1 -1
  22. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
  23. package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
  24. package/dist/legacy/logger/logger.cjs +1 -1
  25. package/dist/legacy/logger/logger.cjs.map +1 -1
  26. package/dist/legacy/logger/logger.js +1 -1
  27. package/dist/legacy/logger/logger.js.map +1 -1
  28. package/dist/legacy/preview/contentstack-live-preview-HOC.cjs +6 -2
  29. package/dist/legacy/preview/contentstack-live-preview-HOC.cjs.map +1 -1
  30. package/dist/legacy/preview/contentstack-live-preview-HOC.js +6 -2
  31. package/dist/legacy/preview/contentstack-live-preview-HOC.js.map +1 -1
  32. package/dist/legacy/types/types.cjs.map +1 -1
  33. package/dist/legacy/types/types.d.cts +10 -15
  34. package/dist/legacy/types/types.d.ts +10 -15
  35. package/dist/legacy/types/types.js.map +1 -1
  36. package/dist/legacy/visualBuilder/collab.style.cjs +131 -1
  37. package/dist/legacy/visualBuilder/collab.style.cjs.map +1 -1
  38. package/dist/legacy/visualBuilder/collab.style.d.cts +17 -0
  39. package/dist/legacy/visualBuilder/collab.style.d.ts +17 -0
  40. package/dist/legacy/visualBuilder/collab.style.js +131 -1
  41. package/dist/legacy/visualBuilder/collab.style.js.map +1 -1
  42. package/dist/legacy/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.cjs +70 -0
  43. package/dist/legacy/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.cjs.map +1 -0
  44. package/dist/legacy/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.d.cts +12 -0
  45. package/dist/legacy/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.d.ts +12 -0
  46. package/dist/legacy/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.js +41 -0
  47. package/dist/legacy/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.js.map +1 -0
  48. package/dist/legacy/visualBuilder/components/Collab/Button/Button.cjs +32 -10
  49. package/dist/legacy/visualBuilder/components/Collab/Button/Button.cjs.map +1 -1
  50. package/dist/legacy/visualBuilder/components/Collab/Button/Button.d.cts +2 -0
  51. package/dist/legacy/visualBuilder/components/Collab/Button/Button.d.ts +2 -0
  52. package/dist/legacy/visualBuilder/components/Collab/Button/Button.js +33 -11
  53. package/dist/legacy/visualBuilder/components/Collab/Button/Button.js.map +1 -1
  54. package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.cjs +11 -4
  55. package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.cjs.map +1 -1
  56. package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.js +11 -4
  57. package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.js.map +1 -1
  58. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.cjs +6 -1
  59. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.cjs.map +1 -1
  60. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.d.cts +1 -0
  61. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.d.ts +1 -0
  62. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.js +6 -1
  63. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.js.map +1 -1
  64. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.cjs +8 -3
  65. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.cjs.map +1 -1
  66. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.js +9 -4
  67. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.js.map +1 -1
  68. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.cjs +1 -2
  69. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.cjs.map +1 -1
  70. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.js +2 -3
  71. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.js.map +1 -1
  72. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.cjs +2 -5
  73. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.cjs.map +1 -1
  74. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.js +3 -9
  75. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.js.map +1 -1
  76. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs +98 -57
  77. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs.map +1 -1
  78. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js +98 -57
  79. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js.map +1 -1
  80. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.cjs +92 -0
  81. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.cjs.map +1 -0
  82. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.d.cts +13 -0
  83. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.d.ts +13 -0
  84. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.js +63 -0
  85. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.js.map +1 -0
  86. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.cjs +1 -0
  87. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.cjs.map +1 -1
  88. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.js +1 -0
  89. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.js.map +1 -1
  90. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.cjs +19 -50
  91. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.cjs.map +1 -1
  92. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.js +21 -52
  93. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.js.map +1 -1
  94. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.cjs +29 -18
  95. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.cjs.map +1 -1
  96. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.js +29 -18
  97. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.js.map +1 -1
  98. package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.cjs +19 -35
  99. package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.cjs.map +1 -1
  100. package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.js +19 -35
  101. package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.js.map +1 -1
  102. package/dist/legacy/visualBuilder/components/FieldToolbar.cjs +28 -22
  103. package/dist/legacy/visualBuilder/components/FieldToolbar.cjs.map +1 -1
  104. package/dist/legacy/visualBuilder/components/FieldToolbar.d.cts +1 -0
  105. package/dist/legacy/visualBuilder/components/FieldToolbar.d.ts +1 -0
  106. package/dist/legacy/visualBuilder/components/FieldToolbar.js +29 -24
  107. package/dist/legacy/visualBuilder/components/FieldToolbar.js.map +1 -1
  108. package/dist/legacy/visualBuilder/components/addInstanceButton.cjs +39 -11
  109. package/dist/legacy/visualBuilder/components/addInstanceButton.cjs.map +1 -1
  110. package/dist/legacy/visualBuilder/components/addInstanceButton.d.cts +5 -0
  111. package/dist/legacy/visualBuilder/components/addInstanceButton.d.ts +5 -0
  112. package/dist/legacy/visualBuilder/components/addInstanceButton.js +39 -11
  113. package/dist/legacy/visualBuilder/components/addInstanceButton.js.map +1 -1
  114. package/dist/legacy/visualBuilder/components/startEditingButton.cjs +38 -11
  115. package/dist/legacy/visualBuilder/components/startEditingButton.cjs.map +1 -1
  116. package/dist/legacy/visualBuilder/components/startEditingButton.d.cts +7 -2
  117. package/dist/legacy/visualBuilder/components/startEditingButton.d.ts +7 -2
  118. package/dist/legacy/visualBuilder/components/startEditingButton.js +34 -11
  119. package/dist/legacy/visualBuilder/components/startEditingButton.js.map +1 -1
  120. package/dist/legacy/visualBuilder/eventManager/useCollab.cjs +57 -19
  121. package/dist/legacy/visualBuilder/eventManager/useCollab.cjs.map +1 -1
  122. package/dist/legacy/visualBuilder/eventManager/useCollab.js +57 -19
  123. package/dist/legacy/visualBuilder/eventManager/useCollab.js.map +1 -1
  124. package/dist/legacy/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.cjs +7 -2
  125. package/dist/legacy/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.cjs.map +1 -1
  126. package/dist/legacy/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.js +7 -2
  127. package/dist/legacy/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.js.map +1 -1
  128. package/dist/legacy/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.cjs +59 -4
  129. package/dist/legacy/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.cjs.map +1 -1
  130. package/dist/legacy/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.js +59 -4
  131. package/dist/legacy/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.js.map +1 -1
  132. package/dist/legacy/visualBuilder/generators/generateAddInstanceButtons.cjs +8 -2
  133. package/dist/legacy/visualBuilder/generators/generateAddInstanceButtons.cjs.map +1 -1
  134. package/dist/legacy/visualBuilder/generators/generateAddInstanceButtons.d.cts +9 -3
  135. package/dist/legacy/visualBuilder/generators/generateAddInstanceButtons.d.ts +9 -3
  136. package/dist/legacy/visualBuilder/generators/generateAddInstanceButtons.js +8 -2
  137. package/dist/legacy/visualBuilder/generators/generateAddInstanceButtons.js.map +1 -1
  138. package/dist/legacy/visualBuilder/generators/generateOverlay.cjs +5 -0
  139. package/dist/legacy/visualBuilder/generators/generateOverlay.cjs.map +1 -1
  140. package/dist/legacy/visualBuilder/generators/generateOverlay.js +5 -0
  141. package/dist/legacy/visualBuilder/generators/generateOverlay.js.map +1 -1
  142. package/dist/legacy/visualBuilder/generators/generateThread.cjs +103 -18
  143. package/dist/legacy/visualBuilder/generators/generateThread.cjs.map +1 -1
  144. package/dist/legacy/visualBuilder/generators/generateThread.d.cts +3 -1
  145. package/dist/legacy/visualBuilder/generators/generateThread.d.ts +3 -1
  146. package/dist/legacy/visualBuilder/generators/generateThread.js +101 -17
  147. package/dist/legacy/visualBuilder/generators/generateThread.js.map +1 -1
  148. package/dist/legacy/visualBuilder/generators/generateToolbar.cjs +13 -5
  149. package/dist/legacy/visualBuilder/generators/generateToolbar.cjs.map +1 -1
  150. package/dist/legacy/visualBuilder/generators/generateToolbar.d.cts +2 -2
  151. package/dist/legacy/visualBuilder/generators/generateToolbar.d.ts +2 -2
  152. package/dist/legacy/visualBuilder/generators/generateToolbar.js +13 -5
  153. package/dist/legacy/visualBuilder/generators/generateToolbar.js.map +1 -1
  154. package/dist/legacy/visualBuilder/hooks/useCollabOperations.cjs +9 -8
  155. package/dist/legacy/visualBuilder/hooks/useCollabOperations.cjs.map +1 -1
  156. package/dist/legacy/visualBuilder/hooks/useCollabOperations.js +9 -8
  157. package/dist/legacy/visualBuilder/hooks/useCollabOperations.js.map +1 -1
  158. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.cjs +23 -5
  159. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.cjs.map +1 -1
  160. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.d.cts +1 -0
  161. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.d.ts +1 -0
  162. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.js +23 -5
  163. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.js.map +1 -1
  164. package/dist/legacy/visualBuilder/index.cjs +16 -11
  165. package/dist/legacy/visualBuilder/index.cjs.map +1 -1
  166. package/dist/legacy/visualBuilder/index.d.cts +1 -0
  167. package/dist/legacy/visualBuilder/index.d.ts +1 -0
  168. package/dist/legacy/visualBuilder/index.js +14 -5
  169. package/dist/legacy/visualBuilder/index.js.map +1 -1
  170. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs +93 -20
  171. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  172. package/dist/legacy/visualBuilder/listeners/mouseClick.d.cts +4 -1
  173. package/dist/legacy/visualBuilder/listeners/mouseClick.d.ts +4 -1
  174. package/dist/legacy/visualBuilder/listeners/mouseClick.js +93 -20
  175. package/dist/legacy/visualBuilder/listeners/mouseClick.js.map +1 -1
  176. package/dist/legacy/visualBuilder/listeners/mouseHover.cjs +3 -1
  177. package/dist/legacy/visualBuilder/listeners/mouseHover.cjs.map +1 -1
  178. package/dist/legacy/visualBuilder/listeners/mouseHover.js +3 -1
  179. package/dist/legacy/visualBuilder/listeners/mouseHover.js.map +1 -1
  180. package/dist/legacy/visualBuilder/types/collab.types.cjs.map +1 -1
  181. package/dist/legacy/visualBuilder/types/collab.types.d.cts +22 -1
  182. package/dist/legacy/visualBuilder/types/collab.types.d.ts +22 -1
  183. package/dist/legacy/visualBuilder/utils/collabUtils.cjs +108 -4
  184. package/dist/legacy/visualBuilder/utils/collabUtils.cjs.map +1 -1
  185. package/dist/legacy/visualBuilder/utils/collabUtils.d.cts +25 -1
  186. package/dist/legacy/visualBuilder/utils/collabUtils.d.ts +25 -1
  187. package/dist/legacy/visualBuilder/utils/collabUtils.js +103 -4
  188. package/dist/legacy/visualBuilder/utils/collabUtils.js.map +1 -1
  189. package/dist/legacy/visualBuilder/utils/enableInlineEditing.cjs +94 -0
  190. package/dist/legacy/visualBuilder/utils/enableInlineEditing.cjs.map +1 -0
  191. package/dist/legacy/visualBuilder/utils/enableInlineEditing.d.cts +11 -0
  192. package/dist/legacy/visualBuilder/utils/enableInlineEditing.d.ts +11 -0
  193. package/dist/legacy/visualBuilder/utils/enableInlineEditing.js +74 -0
  194. package/dist/legacy/visualBuilder/utils/enableInlineEditing.js.map +1 -0
  195. package/dist/legacy/visualBuilder/utils/getChildrenDirection.cjs +8 -0
  196. package/dist/legacy/visualBuilder/utils/getChildrenDirection.cjs.map +1 -1
  197. package/dist/legacy/visualBuilder/utils/getChildrenDirection.d.cts +3 -1
  198. package/dist/legacy/visualBuilder/utils/getChildrenDirection.d.ts +3 -1
  199. package/dist/legacy/visualBuilder/utils/getChildrenDirection.js +8 -0
  200. package/dist/legacy/visualBuilder/utils/getChildrenDirection.js.map +1 -1
  201. package/dist/legacy/visualBuilder/utils/handleFieldMouseDown.cjs +4 -1
  202. package/dist/legacy/visualBuilder/utils/handleFieldMouseDown.cjs.map +1 -1
  203. package/dist/legacy/visualBuilder/utils/handleFieldMouseDown.js +4 -1
  204. package/dist/legacy/visualBuilder/utils/handleFieldMouseDown.js.map +1 -1
  205. package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs +24 -112
  206. package/dist/legacy/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
  207. package/dist/legacy/visualBuilder/utils/handleIndividualFields.d.cts +3 -5
  208. package/dist/legacy/visualBuilder/utils/handleIndividualFields.d.ts +3 -5
  209. package/dist/legacy/visualBuilder/utils/handleIndividualFields.js +22 -116
  210. package/dist/legacy/visualBuilder/utils/handleIndividualFields.js.map +1 -1
  211. package/dist/legacy/visualBuilder/utils/handleInlineEditableField.cjs +81 -0
  212. package/dist/legacy/visualBuilder/utils/handleInlineEditableField.cjs.map +1 -0
  213. package/dist/legacy/visualBuilder/utils/handleInlineEditableField.d.cts +16 -0
  214. package/dist/legacy/visualBuilder/utils/handleInlineEditableField.d.ts +16 -0
  215. package/dist/legacy/visualBuilder/utils/handleInlineEditableField.js +58 -0
  216. package/dist/legacy/visualBuilder/utils/handleInlineEditableField.js.map +1 -0
  217. package/dist/legacy/visualBuilder/utils/isFieldMultiple.cjs +35 -0
  218. package/dist/legacy/visualBuilder/utils/isFieldMultiple.cjs.map +1 -0
  219. package/dist/legacy/visualBuilder/utils/isFieldMultiple.d.cts +6 -0
  220. package/dist/legacy/visualBuilder/utils/isFieldMultiple.d.ts +6 -0
  221. package/dist/legacy/visualBuilder/utils/isFieldMultiple.js +12 -0
  222. package/dist/legacy/visualBuilder/utils/isFieldMultiple.js.map +1 -0
  223. package/dist/legacy/visualBuilder/utils/multipleElementAddButton.cjs +14 -20
  224. package/dist/legacy/visualBuilder/utils/multipleElementAddButton.cjs.map +1 -1
  225. package/dist/legacy/visualBuilder/utils/multipleElementAddButton.d.cts +1 -1
  226. package/dist/legacy/visualBuilder/utils/multipleElementAddButton.d.ts +1 -1
  227. package/dist/legacy/visualBuilder/utils/multipleElementAddButton.js +14 -20
  228. package/dist/legacy/visualBuilder/utils/multipleElementAddButton.js.map +1 -1
  229. package/dist/legacy/visualBuilder/utils/pasteAsPlainText.cjs +44 -0
  230. package/dist/legacy/visualBuilder/utils/pasteAsPlainText.cjs.map +1 -0
  231. package/dist/legacy/visualBuilder/utils/pasteAsPlainText.d.cts +5 -0
  232. package/dist/legacy/visualBuilder/utils/pasteAsPlainText.d.ts +5 -0
  233. package/dist/legacy/visualBuilder/utils/pasteAsPlainText.js +21 -0
  234. package/dist/legacy/visualBuilder/utils/pasteAsPlainText.js.map +1 -0
  235. package/dist/legacy/visualBuilder/utils/types/index.types.cjs.map +1 -1
  236. package/dist/legacy/visualBuilder/utils/types/index.types.d.cts +6 -1
  237. package/dist/legacy/visualBuilder/utils/types/index.types.d.ts +6 -1
  238. package/dist/legacy/visualBuilder/utils/types/index.types.js.map +1 -1
  239. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs +2 -1
  240. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  241. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.cts +2 -1
  242. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.ts +2 -1
  243. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js +2 -1
  244. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  245. package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs +10 -7
  246. package/dist/legacy/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
  247. package/dist/legacy/visualBuilder/utils/updateFocussedState.js +10 -7
  248. package/dist/legacy/visualBuilder/utils/updateFocussedState.js.map +1 -1
  249. package/dist/legacy/visualBuilder/visualBuilder.style.cjs +27 -5
  250. package/dist/legacy/visualBuilder/visualBuilder.style.cjs.map +1 -1
  251. package/dist/legacy/visualBuilder/visualBuilder.style.d.cts +6 -1
  252. package/dist/legacy/visualBuilder/visualBuilder.style.d.ts +6 -1
  253. package/dist/legacy/visualBuilder/visualBuilder.style.js +27 -5
  254. package/dist/legacy/visualBuilder/visualBuilder.style.js.map +1 -1
  255. package/dist/modern/configManager/config.default.cjs +10 -1
  256. package/dist/modern/configManager/config.default.cjs.map +1 -1
  257. package/dist/modern/configManager/config.default.js +10 -1
  258. package/dist/modern/configManager/config.default.js.map +1 -1
  259. package/dist/modern/configManager/handleUserConfig.cjs +4 -0
  260. package/dist/modern/configManager/handleUserConfig.cjs.map +1 -1
  261. package/dist/modern/configManager/handleUserConfig.js +4 -0
  262. package/dist/modern/configManager/handleUserConfig.js.map +1 -1
  263. package/dist/modern/index.cjs +45 -1
  264. package/dist/modern/index.cjs.map +1 -1
  265. package/dist/modern/index.d.cts +16 -2
  266. package/dist/modern/index.d.ts +16 -2
  267. package/dist/modern/index.js +45 -1
  268. package/dist/modern/index.js.map +1 -1
  269. package/dist/modern/livePreview/editButton/editButton.cjs +85 -1
  270. package/dist/modern/livePreview/editButton/editButton.cjs.map +1 -1
  271. package/dist/modern/livePreview/editButton/editButton.d.cts +14 -1
  272. package/dist/modern/livePreview/editButton/editButton.d.ts +14 -1
  273. package/dist/modern/livePreview/editButton/editButton.js +84 -1
  274. package/dist/modern/livePreview/editButton/editButton.js.map +1 -1
  275. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
  276. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
  277. package/dist/modern/logger/logger.cjs +1 -1
  278. package/dist/modern/logger/logger.cjs.map +1 -1
  279. package/dist/modern/logger/logger.js +1 -1
  280. package/dist/modern/logger/logger.js.map +1 -1
  281. package/dist/modern/preview/contentstack-live-preview-HOC.cjs +6 -2
  282. package/dist/modern/preview/contentstack-live-preview-HOC.cjs.map +1 -1
  283. package/dist/modern/preview/contentstack-live-preview-HOC.js +6 -2
  284. package/dist/modern/preview/contentstack-live-preview-HOC.js.map +1 -1
  285. package/dist/modern/types/types.cjs.map +1 -1
  286. package/dist/modern/types/types.d.cts +10 -15
  287. package/dist/modern/types/types.d.ts +10 -15
  288. package/dist/modern/types/types.js.map +1 -1
  289. package/dist/modern/visualBuilder/collab.style.cjs +131 -1
  290. package/dist/modern/visualBuilder/collab.style.cjs.map +1 -1
  291. package/dist/modern/visualBuilder/collab.style.d.cts +17 -0
  292. package/dist/modern/visualBuilder/collab.style.d.ts +17 -0
  293. package/dist/modern/visualBuilder/collab.style.js +131 -1
  294. package/dist/modern/visualBuilder/collab.style.js.map +1 -1
  295. package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.cjs +70 -0
  296. package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.cjs.map +1 -0
  297. package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.d.cts +12 -0
  298. package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.d.ts +12 -0
  299. package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.js +41 -0
  300. package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.js.map +1 -0
  301. package/dist/modern/visualBuilder/components/Collab/Button/Button.cjs +32 -10
  302. package/dist/modern/visualBuilder/components/Collab/Button/Button.cjs.map +1 -1
  303. package/dist/modern/visualBuilder/components/Collab/Button/Button.d.cts +2 -0
  304. package/dist/modern/visualBuilder/components/Collab/Button/Button.d.ts +2 -0
  305. package/dist/modern/visualBuilder/components/Collab/Button/Button.js +33 -11
  306. package/dist/modern/visualBuilder/components/Collab/Button/Button.js.map +1 -1
  307. package/dist/modern/visualBuilder/components/Collab/CollabIndicator.cjs +7 -1
  308. package/dist/modern/visualBuilder/components/Collab/CollabIndicator.cjs.map +1 -1
  309. package/dist/modern/visualBuilder/components/Collab/CollabIndicator.js +7 -1
  310. package/dist/modern/visualBuilder/components/Collab/CollabIndicator.js.map +1 -1
  311. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.cjs +6 -1
  312. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.cjs.map +1 -1
  313. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.d.cts +1 -0
  314. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.d.ts +1 -0
  315. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.js +6 -1
  316. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.js.map +1 -1
  317. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.cjs +8 -3
  318. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.cjs.map +1 -1
  319. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.js +9 -4
  320. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.js.map +1 -1
  321. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.cjs +1 -2
  322. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.cjs.map +1 -1
  323. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.js +2 -3
  324. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.js.map +1 -1
  325. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.cjs +2 -5
  326. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.cjs.map +1 -1
  327. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.js +3 -9
  328. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.js.map +1 -1
  329. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs +94 -57
  330. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs.map +1 -1
  331. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js +94 -57
  332. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js.map +1 -1
  333. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.cjs +92 -0
  334. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.cjs.map +1 -0
  335. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.d.cts +13 -0
  336. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.d.ts +13 -0
  337. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.js +63 -0
  338. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.js.map +1 -0
  339. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.cjs +1 -0
  340. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.cjs.map +1 -1
  341. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.js +1 -0
  342. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.js.map +1 -1
  343. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.cjs +19 -50
  344. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.cjs.map +1 -1
  345. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.js +21 -52
  346. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.js.map +1 -1
  347. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.cjs +29 -18
  348. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.cjs.map +1 -1
  349. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.js +29 -18
  350. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.js.map +1 -1
  351. package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.cjs +19 -35
  352. package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.cjs.map +1 -1
  353. package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.js +19 -35
  354. package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.js.map +1 -1
  355. package/dist/modern/visualBuilder/components/FieldToolbar.cjs +28 -21
  356. package/dist/modern/visualBuilder/components/FieldToolbar.cjs.map +1 -1
  357. package/dist/modern/visualBuilder/components/FieldToolbar.d.cts +1 -0
  358. package/dist/modern/visualBuilder/components/FieldToolbar.d.ts +1 -0
  359. package/dist/modern/visualBuilder/components/FieldToolbar.js +29 -23
  360. package/dist/modern/visualBuilder/components/FieldToolbar.js.map +1 -1
  361. package/dist/modern/visualBuilder/components/addInstanceButton.cjs +38 -11
  362. package/dist/modern/visualBuilder/components/addInstanceButton.cjs.map +1 -1
  363. package/dist/modern/visualBuilder/components/addInstanceButton.d.cts +5 -0
  364. package/dist/modern/visualBuilder/components/addInstanceButton.d.ts +5 -0
  365. package/dist/modern/visualBuilder/components/addInstanceButton.js +38 -11
  366. package/dist/modern/visualBuilder/components/addInstanceButton.js.map +1 -1
  367. package/dist/modern/visualBuilder/components/startEditingButton.cjs +38 -11
  368. package/dist/modern/visualBuilder/components/startEditingButton.cjs.map +1 -1
  369. package/dist/modern/visualBuilder/components/startEditingButton.d.cts +7 -2
  370. package/dist/modern/visualBuilder/components/startEditingButton.d.ts +7 -2
  371. package/dist/modern/visualBuilder/components/startEditingButton.js +34 -11
  372. package/dist/modern/visualBuilder/components/startEditingButton.js.map +1 -1
  373. package/dist/modern/visualBuilder/eventManager/useCollab.cjs +45 -11
  374. package/dist/modern/visualBuilder/eventManager/useCollab.cjs.map +1 -1
  375. package/dist/modern/visualBuilder/eventManager/useCollab.js +45 -11
  376. package/dist/modern/visualBuilder/eventManager/useCollab.js.map +1 -1
  377. package/dist/modern/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.cjs +5 -0
  378. package/dist/modern/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.cjs.map +1 -1
  379. package/dist/modern/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.js +5 -0
  380. package/dist/modern/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.js.map +1 -1
  381. package/dist/modern/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.cjs +59 -4
  382. package/dist/modern/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.cjs.map +1 -1
  383. package/dist/modern/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.js +59 -4
  384. package/dist/modern/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.js.map +1 -1
  385. package/dist/modern/visualBuilder/generators/generateAddInstanceButtons.cjs +8 -2
  386. package/dist/modern/visualBuilder/generators/generateAddInstanceButtons.cjs.map +1 -1
  387. package/dist/modern/visualBuilder/generators/generateAddInstanceButtons.d.cts +9 -3
  388. package/dist/modern/visualBuilder/generators/generateAddInstanceButtons.d.ts +9 -3
  389. package/dist/modern/visualBuilder/generators/generateAddInstanceButtons.js +8 -2
  390. package/dist/modern/visualBuilder/generators/generateAddInstanceButtons.js.map +1 -1
  391. package/dist/modern/visualBuilder/generators/generateOverlay.cjs +5 -0
  392. package/dist/modern/visualBuilder/generators/generateOverlay.cjs.map +1 -1
  393. package/dist/modern/visualBuilder/generators/generateOverlay.js +5 -0
  394. package/dist/modern/visualBuilder/generators/generateOverlay.js.map +1 -1
  395. package/dist/modern/visualBuilder/generators/generateThread.cjs +102 -16
  396. package/dist/modern/visualBuilder/generators/generateThread.cjs.map +1 -1
  397. package/dist/modern/visualBuilder/generators/generateThread.d.cts +3 -1
  398. package/dist/modern/visualBuilder/generators/generateThread.d.ts +3 -1
  399. package/dist/modern/visualBuilder/generators/generateThread.js +100 -15
  400. package/dist/modern/visualBuilder/generators/generateThread.js.map +1 -1
  401. package/dist/modern/visualBuilder/generators/generateToolbar.cjs +13 -5
  402. package/dist/modern/visualBuilder/generators/generateToolbar.cjs.map +1 -1
  403. package/dist/modern/visualBuilder/generators/generateToolbar.d.cts +2 -2
  404. package/dist/modern/visualBuilder/generators/generateToolbar.d.ts +2 -2
  405. package/dist/modern/visualBuilder/generators/generateToolbar.js +13 -5
  406. package/dist/modern/visualBuilder/generators/generateToolbar.js.map +1 -1
  407. package/dist/modern/visualBuilder/hooks/useCollabOperations.cjs +9 -8
  408. package/dist/modern/visualBuilder/hooks/useCollabOperations.cjs.map +1 -1
  409. package/dist/modern/visualBuilder/hooks/useCollabOperations.js +9 -8
  410. package/dist/modern/visualBuilder/hooks/useCollabOperations.js.map +1 -1
  411. package/dist/modern/visualBuilder/hooks/useCommentTextArea.cjs +22 -5
  412. package/dist/modern/visualBuilder/hooks/useCommentTextArea.cjs.map +1 -1
  413. package/dist/modern/visualBuilder/hooks/useCommentTextArea.d.cts +1 -0
  414. package/dist/modern/visualBuilder/hooks/useCommentTextArea.d.ts +1 -0
  415. package/dist/modern/visualBuilder/hooks/useCommentTextArea.js +22 -5
  416. package/dist/modern/visualBuilder/hooks/useCommentTextArea.js.map +1 -1
  417. package/dist/modern/visualBuilder/index.cjs +16 -11
  418. package/dist/modern/visualBuilder/index.cjs.map +1 -1
  419. package/dist/modern/visualBuilder/index.d.cts +1 -0
  420. package/dist/modern/visualBuilder/index.d.ts +1 -0
  421. package/dist/modern/visualBuilder/index.js +14 -5
  422. package/dist/modern/visualBuilder/index.js.map +1 -1
  423. package/dist/modern/visualBuilder/listeners/mouseClick.cjs +90 -18
  424. package/dist/modern/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  425. package/dist/modern/visualBuilder/listeners/mouseClick.d.cts +4 -1
  426. package/dist/modern/visualBuilder/listeners/mouseClick.d.ts +4 -1
  427. package/dist/modern/visualBuilder/listeners/mouseClick.js +90 -18
  428. package/dist/modern/visualBuilder/listeners/mouseClick.js.map +1 -1
  429. package/dist/modern/visualBuilder/listeners/mouseHover.cjs +3 -1
  430. package/dist/modern/visualBuilder/listeners/mouseHover.cjs.map +1 -1
  431. package/dist/modern/visualBuilder/listeners/mouseHover.js +3 -1
  432. package/dist/modern/visualBuilder/listeners/mouseHover.js.map +1 -1
  433. package/dist/modern/visualBuilder/types/collab.types.cjs.map +1 -1
  434. package/dist/modern/visualBuilder/types/collab.types.d.cts +22 -1
  435. package/dist/modern/visualBuilder/types/collab.types.d.ts +22 -1
  436. package/dist/modern/visualBuilder/utils/collabUtils.cjs +108 -4
  437. package/dist/modern/visualBuilder/utils/collabUtils.cjs.map +1 -1
  438. package/dist/modern/visualBuilder/utils/collabUtils.d.cts +25 -1
  439. package/dist/modern/visualBuilder/utils/collabUtils.d.ts +25 -1
  440. package/dist/modern/visualBuilder/utils/collabUtils.js +103 -4
  441. package/dist/modern/visualBuilder/utils/collabUtils.js.map +1 -1
  442. package/dist/modern/visualBuilder/utils/enableInlineEditing.cjs +94 -0
  443. package/dist/modern/visualBuilder/utils/enableInlineEditing.cjs.map +1 -0
  444. package/dist/modern/visualBuilder/utils/enableInlineEditing.d.cts +11 -0
  445. package/dist/modern/visualBuilder/utils/enableInlineEditing.d.ts +11 -0
  446. package/dist/modern/visualBuilder/utils/enableInlineEditing.js +74 -0
  447. package/dist/modern/visualBuilder/utils/enableInlineEditing.js.map +1 -0
  448. package/dist/modern/visualBuilder/utils/getChildrenDirection.cjs +8 -0
  449. package/dist/modern/visualBuilder/utils/getChildrenDirection.cjs.map +1 -1
  450. package/dist/modern/visualBuilder/utils/getChildrenDirection.d.cts +3 -1
  451. package/dist/modern/visualBuilder/utils/getChildrenDirection.d.ts +3 -1
  452. package/dist/modern/visualBuilder/utils/getChildrenDirection.js +8 -0
  453. package/dist/modern/visualBuilder/utils/getChildrenDirection.js.map +1 -1
  454. package/dist/modern/visualBuilder/utils/handleFieldMouseDown.cjs +4 -1
  455. package/dist/modern/visualBuilder/utils/handleFieldMouseDown.cjs.map +1 -1
  456. package/dist/modern/visualBuilder/utils/handleFieldMouseDown.js +4 -1
  457. package/dist/modern/visualBuilder/utils/handleFieldMouseDown.js.map +1 -1
  458. package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs +23 -111
  459. package/dist/modern/visualBuilder/utils/handleIndividualFields.cjs.map +1 -1
  460. package/dist/modern/visualBuilder/utils/handleIndividualFields.d.cts +3 -5
  461. package/dist/modern/visualBuilder/utils/handleIndividualFields.d.ts +3 -5
  462. package/dist/modern/visualBuilder/utils/handleIndividualFields.js +21 -115
  463. package/dist/modern/visualBuilder/utils/handleIndividualFields.js.map +1 -1
  464. package/dist/modern/visualBuilder/utils/handleInlineEditableField.cjs +81 -0
  465. package/dist/modern/visualBuilder/utils/handleInlineEditableField.cjs.map +1 -0
  466. package/dist/modern/visualBuilder/utils/handleInlineEditableField.d.cts +16 -0
  467. package/dist/modern/visualBuilder/utils/handleInlineEditableField.d.ts +16 -0
  468. package/dist/modern/visualBuilder/utils/handleInlineEditableField.js +58 -0
  469. package/dist/modern/visualBuilder/utils/handleInlineEditableField.js.map +1 -0
  470. package/dist/modern/visualBuilder/utils/isFieldMultiple.cjs +35 -0
  471. package/dist/modern/visualBuilder/utils/isFieldMultiple.cjs.map +1 -0
  472. package/dist/modern/visualBuilder/utils/isFieldMultiple.d.cts +6 -0
  473. package/dist/modern/visualBuilder/utils/isFieldMultiple.d.ts +6 -0
  474. package/dist/modern/visualBuilder/utils/isFieldMultiple.js +12 -0
  475. package/dist/modern/visualBuilder/utils/isFieldMultiple.js.map +1 -0
  476. package/dist/modern/visualBuilder/utils/multipleElementAddButton.cjs +14 -18
  477. package/dist/modern/visualBuilder/utils/multipleElementAddButton.cjs.map +1 -1
  478. package/dist/modern/visualBuilder/utils/multipleElementAddButton.d.cts +1 -1
  479. package/dist/modern/visualBuilder/utils/multipleElementAddButton.d.ts +1 -1
  480. package/dist/modern/visualBuilder/utils/multipleElementAddButton.js +14 -18
  481. package/dist/modern/visualBuilder/utils/multipleElementAddButton.js.map +1 -1
  482. package/dist/modern/visualBuilder/utils/pasteAsPlainText.cjs +44 -0
  483. package/dist/modern/visualBuilder/utils/pasteAsPlainText.cjs.map +1 -0
  484. package/dist/modern/visualBuilder/utils/pasteAsPlainText.d.cts +5 -0
  485. package/dist/modern/visualBuilder/utils/pasteAsPlainText.d.ts +5 -0
  486. package/dist/modern/visualBuilder/utils/pasteAsPlainText.js +21 -0
  487. package/dist/modern/visualBuilder/utils/pasteAsPlainText.js.map +1 -0
  488. package/dist/modern/visualBuilder/utils/types/index.types.cjs.map +1 -1
  489. package/dist/modern/visualBuilder/utils/types/index.types.d.cts +6 -1
  490. package/dist/modern/visualBuilder/utils/types/index.types.d.ts +6 -1
  491. package/dist/modern/visualBuilder/utils/types/index.types.js.map +1 -1
  492. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs +2 -1
  493. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  494. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.cts +2 -1
  495. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.ts +2 -1
  496. package/dist/modern/visualBuilder/utils/types/postMessage.types.js +2 -1
  497. package/dist/modern/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  498. package/dist/modern/visualBuilder/utils/updateFocussedState.cjs +10 -7
  499. package/dist/modern/visualBuilder/utils/updateFocussedState.cjs.map +1 -1
  500. package/dist/modern/visualBuilder/utils/updateFocussedState.js +10 -7
  501. package/dist/modern/visualBuilder/utils/updateFocussedState.js.map +1 -1
  502. package/dist/modern/visualBuilder/visualBuilder.style.cjs +27 -5
  503. package/dist/modern/visualBuilder/visualBuilder.style.cjs.map +1 -1
  504. package/dist/modern/visualBuilder/visualBuilder.style.d.cts +6 -1
  505. package/dist/modern/visualBuilder/visualBuilder.style.d.ts +6 -1
  506. package/dist/modern/visualBuilder/visualBuilder.style.js +27 -5
  507. package/dist/modern/visualBuilder/visualBuilder.style.js.map +1 -1
  508. package/package.json +4 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/livePreview/editButton/editButton.ts"],"sourcesContent":["import { effect } from \"@preact/signals\";\nimport { inIframe } from \"../../common/inIframe\";\nimport Config from \"../../configManager/configManager\";\nimport { addCslpOutline, extractDetailsFromCslp } from \"../../cslp\";\nimport { cslpTagStyles } from \"./editButton.style\";\nimport { PublicLogger } from \"../../logger/logger\";\nimport {\n type IEditButtonPosition,\n ILivePreviewWindowType,\n} from \"../../types/types\";\nimport livePreviewPostMessage from \"../eventManager/livePreviewEventManager\";\nimport { EDIT_BUTTON_TOOLTIP_ID } from \"./editButton.constant\";\nimport { isOpeningInTimeline } from \"../../utils\";\n\nfunction calculateEditButtonPosition(\n currentHoveredElement: HTMLElement,\n cslpButtonPosition: string\n): IEditButtonPosition {\n const editButtonPosition: IEditButtonPosition = {\n upperBoundOfTooltip: 0,\n leftBoundOfTooltip: 0,\n };\n const currentRectOfElement = currentHoveredElement.getBoundingClientRect();\n try {\n const buttonMeasurementValues = {\n width: 72,\n halfWidth: 36,\n height: 40,\n basicMargin: 5,\n widthWithMargin: 77,\n };\n\n switch (cslpButtonPosition) {\n case \"top-center\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.width / 2 -\n buttonMeasurementValues.halfWidth +\n currentRectOfElement.left;\n break;\n case \"top-right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right - buttonMeasurementValues.width;\n break;\n case \"right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top -\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right +\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom-left\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom-center\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.width / 2 -\n buttonMeasurementValues.halfWidth +\n currentRectOfElement.left;\n break;\n case \"bottom-right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right - buttonMeasurementValues.width;\n break;\n case \"left\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top -\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.widthWithMargin;\n break;\n // default position => top, top-left or any other string\n default:\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n }\n return editButtonPosition;\n } catch (error) {\n PublicLogger.error(error);\n return editButtonPosition;\n }\n}\n\nexport const createSingularEditButton = (\n editCallback: (e: MouseEvent) => void\n): HTMLDivElement => {\n const singularEditButton = document.createElement(\"div\");\n singularEditButton.classList.add(\"cslp-tooltip-child\", \"singular\");\n singularEditButton.setAttribute(\n \"data-test-id\",\n \"cslp-singular-edit-button\"\n );\n singularEditButton.innerHTML = `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z\" fill=\"#718096\"></path>\n <path d=\"M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z\" fill=\"#718096\"></path>\n </svg>Edit`;\n\n singularEditButton.addEventListener(\"click\", editCallback);\n\n return singularEditButton;\n};\n\nexport const createMultipleEditButton = (\n editCallback: (e: MouseEvent) => void,\n linkCallback: (e: MouseEvent) => void\n): HTMLDivElement => {\n const multipleEditButton = document.createElement(\"div\");\n multipleEditButton.classList.add(\"cslp-tooltip-child\");\n multipleEditButton.setAttribute(\"data-title\", \"Edit\");\n multipleEditButton.setAttribute(\n \"data-test-id\",\n \"cslp-multiple-edit-button\"\n );\n multipleEditButton.innerHTML = ` <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z\" fill=\"#718096\"></path>\n <path d=\"M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z\" fill=\"#718096\"></path>\n </svg>`;\n\n multipleEditButton.addEventListener(\"click\", editCallback);\n\n const multipleExternalLinkButton = document.createElement(\"div\");\n multipleExternalLinkButton.classList.add(\"cslp-tooltip-child\");\n multipleExternalLinkButton.setAttribute(\"data-title\", \"Go to link\");\n multipleExternalLinkButton.setAttribute(\n \"data-test-id\",\n \"cslp-multiple-external-link-button\"\n );\n multipleExternalLinkButton.innerHTML = ` <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2.66654 2.66758H13.3332V13.3342H6.66654V16.0009H13.3332C14.0405 16.0009 14.7187 15.72 15.2188 15.2199C15.7189 14.7198 15.9999 14.0415 15.9999 13.3342V2.66758C15.9999 1.96034 15.7189 1.28206 15.2188 0.781964C14.7187 0.281867 14.0405 0.000915527 13.3332 0.000915527H2.66654C1.9593 0.000915527 1.28102 0.281867 0.780927 0.781964C0.280829 1.28206 -0.00012207 1.96034 -0.00012207 2.66758V9.33425H2.66654V2.66758Z\" fill=\"#718096\" />\n <path d=\"M6.94263 7.05734L0.999958 13L2.88529 14.8853L8.82796 8.94267L10.8853 11V5.00001H4.88529L6.94263 7.05734Z\" fill=\"#718096\" />\n </svg>`;\n\n multipleExternalLinkButton.addEventListener(\"click\", linkCallback);\n\n const multipleEditFragment = document.createDocumentFragment();\n multipleEditFragment.appendChild(multipleEditButton);\n multipleEditFragment.appendChild(multipleExternalLinkButton);\n\n const multipleDiv = document.createElement(\"div\");\n multipleDiv.appendChild(multipleEditFragment);\n multipleDiv.classList.add(cslpTagStyles()[\"multiple\"]);\n\n return multipleDiv;\n};\n\nexport function getEditButtonPosition(\n currentHoveredElement: HTMLElement | null,\n defaultPosition: string | undefined\n): IEditButtonPosition {\n if (!currentHoveredElement)\n return { upperBoundOfTooltip: 0, leftBoundOfTooltip: 0 };\n\n const cslpButtonPosition = currentHoveredElement.getAttribute(\n \"data-cslp-button-position\"\n );\n if (cslpButtonPosition) {\n return calculateEditButtonPosition(\n currentHoveredElement,\n cslpButtonPosition\n );\n }\n\n // NOTE: position \"top\" and \"top-left\" will be the position of edit button if no default position passed in config\n return calculateEditButtonPosition(\n currentHoveredElement,\n defaultPosition || \"top\"\n );\n}\n\nexport function shouldRenderEditButton(): boolean {\n const config = Config.get();\n\n if (!config.editButton.enable) {\n if (config.editButton.enable === undefined)\n PublicLogger.error(\n \"enable key is required inside editButton object\"\n );\n return false;\n }\n\n // return boolean in case of cslp-buttons query added in url\n try {\n const currentLocation = new URL(window.location.href);\n const cslpButtonQueryValue =\n currentLocation.searchParams.get(\"cslp-buttons\");\n\n if (\n cslpButtonQueryValue !== null &&\n config.editButton.includeByQueryParameter !== false\n )\n return cslpButtonQueryValue === \"false\" ? false : true;\n } catch (error) {\n PublicLogger.error(error);\n }\n\n const iFrameCheck = inIframe();\n\n // case outside live preview\n if (\n !iFrameCheck &&\n config.editButton.exclude?.find(\n (exclude) => exclude === \"outsideLivePreviewPortal\"\n )\n ) {\n return false;\n }\n\n // case if inside live preview\n if (\n iFrameCheck &&\n config.editButton.exclude?.find(\n (exclude) => exclude === \"insideLivePreviewPortal\"\n )\n ) {\n return false;\n } else if (iFrameCheck) {\n // case if inside visual builder\n if (config.windowType === \"builder\") {\n return false;\n }\n\n // case if independent site\n return true;\n }\n\n // Priority list => 1. cslpEditButton query value 2. Inside live preview 3. renderCslpButtonByDefault value selected by user\n return true;\n}\n\nexport function toggleEditButtonElement() {\n const render = shouldRenderEditButton();\n const exists = doesEditButtonExist();\n\n if (render && !exists) {\n LivePreviewEditButton.livePreviewEditButton =\n new LivePreviewEditButton();\n } else if (!render && exists) {\n LivePreviewEditButton.livePreviewEditButton?.destroy();\n }\n}\n\nexport function doesEditButtonExist() {\n return document.getElementById(EDIT_BUTTON_TOOLTIP_ID) !== null;\n}\n\nexport class LivePreviewEditButton {\n private tooltip: HTMLButtonElement | null = null;\n private typeOfCurrentChild: \"singular\" | \"multiple\" = \"singular\";\n private tooltipChild: {\n singular: HTMLDivElement | null;\n multiple: HTMLDivElement | null;\n } = {\n singular: null,\n multiple: null,\n };\n static livePreviewEditButton: LivePreviewEditButton | null = null;\n\n constructor() {\n this.createCslpTooltip = this.createCslpTooltip.bind(this);\n this.updateTooltipPosition = this.updateTooltipPosition.bind(this);\n this.addEditStyleOnHover = this.addEditStyleOnHover.bind(this);\n this.scrollHandler = this.scrollHandler.bind(this);\n this.generateRedirectUrl = this.generateRedirectUrl.bind(this);\n this.linkClickHandler = this.linkClickHandler.bind(this);\n this.destroy = this.destroy.bind(this);\n\n if (this.createCslpTooltip()) {\n this.updateTooltipPosition();\n\n window.addEventListener(\"scroll\", this.updateTooltipPosition);\n window.addEventListener(\"mouseover\", this.addEditStyleOnHover);\n }\n }\n\n private createCslpTooltip(): boolean {\n const editButton = Config.get().editButton;\n\n if (\n !document.getElementById(EDIT_BUTTON_TOOLTIP_ID) &&\n editButton.enable &&\n shouldRenderEditButton()\n ) {\n const tooltip = document.createElement(\"button\");\n this.tooltip = tooltip;\n\n this.tooltip.classList.add(cslpTagStyles()[\"cslp-tooltip\"]);\n this.tooltip.setAttribute(\"data-test-id\", \"cs-cslp-tooltip\");\n this.tooltip.id = EDIT_BUTTON_TOOLTIP_ID;\n\n window.document.body.insertAdjacentElement(\n \"beforeend\",\n this.tooltip\n );\n\n this.tooltipChild.singular = createSingularEditButton(\n this.scrollHandler\n );\n this.tooltipChild.multiple = createMultipleEditButton(\n this.scrollHandler,\n this.linkClickHandler\n );\n\n this.tooltip.appendChild(this.tooltipChild.singular);\n return true;\n }\n return false;\n }\n\n private updateTooltipPosition() {\n if (!document.getElementById(\"cslp-tooltip\")) {\n this.createCslpTooltip();\n }\n const editButton = Config.get().editButton;\n const elements = Config.get().elements;\n\n if (!elements.highlightedElement || !this.tooltip) return false;\n\n const currentRectOfElement =\n elements.highlightedElement.getBoundingClientRect();\n const currentRectOfParentOfElement =\n this.tooltip.parentElement?.getBoundingClientRect();\n\n if (currentRectOfElement && currentRectOfParentOfElement) {\n const editButtonPosition = getEditButtonPosition(\n elements.highlightedElement as HTMLElement,\n editButton.position\n );\n\n let upperBoundOfTooltip = editButtonPosition.upperBoundOfTooltip;\n const leftBoundOfTooltip = editButtonPosition.leftBoundOfTooltip;\n\n // if scrolled and element is still visible, make sure tooltip is also visible\n if (upperBoundOfTooltip < 0) {\n if (currentRectOfElement.top < 0)\n upperBoundOfTooltip = currentRectOfElement.top;\n else upperBoundOfTooltip = 0;\n }\n\n this.tooltip.style.top = upperBoundOfTooltip + \"px\";\n this.tooltip.style.zIndex =\n elements.highlightedElement.style.zIndex || \"200\";\n this.tooltip.style.left = leftBoundOfTooltip + \"px\";\n\n if (this.tooltipChild.singular && this.tooltipChild.multiple) {\n if (\n elements.highlightedElement.hasAttribute(\"href\") &&\n this.typeOfCurrentChild !== \"multiple\"\n ) {\n this.tooltip.innerHTML = \"\";\n this.tooltip.appendChild(this.tooltipChild.multiple);\n this.typeOfCurrentChild = \"multiple\";\n } else if (this.typeOfCurrentChild !== \"singular\") {\n this.tooltip.innerHTML = \"\";\n this.tooltip.appendChild(this.tooltipChild.singular);\n this.typeOfCurrentChild = \"singular\";\n }\n }\n return true;\n }\n\n return false;\n }\n\n private addEditStyleOnHover(e: MouseEvent) {\n const updateTooltipPosition: Parameters<typeof addCslpOutline>[\"1\"] = ({\n cslpTag,\n highlightedElement,\n }) => {\n if (this.updateTooltipPosition()) {\n this.tooltip?.setAttribute(\"current-data-cslp\", cslpTag);\n this.tooltip?.setAttribute(\n \"current-href\",\n highlightedElement.getAttribute(\"href\") ?? \"\"\n );\n }\n };\n\n const editButton = Config.get().editButton;\n const windowType = Config.get().windowType;\n\n if (\n (windowType === ILivePreviewWindowType.PREVIEW ||\n windowType === ILivePreviewWindowType.INDEPENDENT) &&\n editButton.enable\n ) {\n addCslpOutline(e, updateTooltipPosition);\n }\n }\n\n private scrollHandler() {\n if (!this.tooltip) return;\n\n const cslpTag = this.tooltip.getAttribute(\"current-data-cslp\");\n\n if (cslpTag) {\n const { content_type_uid, entry_uid, locale, variant, fieldPathWithIndex } =\n extractDetailsFromCslp(cslpTag);\n\n if (inIframe()) {\n livePreviewPostMessage?.send(\"scroll\", {\n field: fieldPathWithIndex,\n content_type_uid,\n entry_uid,\n variant,\n locale,\n });\n } else {\n try {\n // Redirect to Contentstack edit page\n const redirectUrl = this.generateRedirectUrl(\n content_type_uid,\n locale,\n entry_uid,\n variant,\n fieldPathWithIndex\n );\n\n window.open(redirectUrl, \"_blank\");\n } catch (error) {\n PublicLogger.error(error);\n }\n }\n }\n }\n\n /**\n * Generates the redirect URL for editing a specific entry in the Live Preview SDK.\n * @param content_type_uid - The UID of the content type.\n * @param locale - The locale of the entry (default: \"en-us\").\n * @param entry_uid - The UID of the entry.\n * @param preview_field - The field to be previewed.\n * @returns The redirect URL for editing the entry.\n */\n private generateRedirectUrl(\n content_type_uid: string,\n locale = \"en-us\",\n entry_uid: string,\n variant: string | undefined,\n preview_field: string\n ): string {\n const config = Config.get();\n\n if (!config.stackDetails.apiKey) {\n throw `To use edit tags, you must provide the stack API key. Specify the API key while initializing the Live Preview SDK.\n\n ContentstackLivePreview.init({\n ...,\n stackDetails: {\n apiKey: 'your-api-key'\n },\n ...\n })`;\n }\n\n if (!config.stackDetails.environment) {\n throw `To use edit tags, you must provide the preview environment. Specify the preview environment while initializing the Live Preview SDK.\n\n ContentstackLivePreview.init({\n ...,\n stackDetails: {\n environment: 'Your-environment'\n },\n ...\n })`;\n }\n\n const protocol = String(config.clientUrlParams.protocol);\n const host = String(config.clientUrlParams.host);\n const port = String(config.clientUrlParams.port);\n const environment = String(config.stackDetails.environment);\n const branch = String(config.stackDetails.branch || \"main\");\n\n let urlHash = `!/stack/${\n config.stackDetails.apiKey\n }/content-type/${content_type_uid}/${\n locale ?? \"en-us\"\n }/entry/${entry_uid}`;\n\n if (variant) {\n urlHash += `/variant/${variant}/edit`;\n } else {\n urlHash += `/edit`;\n }\n\n const url = new URL(`${protocol}://${host}`);\n url.port = port;\n url.hash = urlHash;\n if (config.stackDetails.branch) {\n url.searchParams.append(\"branch\", branch);\n }\n url.searchParams.append(\"preview-field\", preview_field);\n url.searchParams.append(\"preview-locale\", locale ?? \"en-us\");\n url.searchParams.append(\"preview-environment\", environment);\n\n return `${url.origin}/${url.hash}${url.search}`;\n }\n\n private linkClickHandler() {\n if (!this.tooltip) return;\n const hrefAttribute = this.tooltip.getAttribute(\"current-href\");\n\n if (hrefAttribute) {\n window.location.assign(hrefAttribute);\n }\n }\n\n /**\n * Destroys the edit button by removing event listeners and removing the tooltip.\n */\n destroy(): void {\n window.removeEventListener(\"scroll\", this.updateTooltipPosition);\n window.removeEventListener(\"mouseover\", this.addEditStyleOnHover);\n this.tooltip?.remove();\n }\n}\n\neffect(function handleWindowTypeChange() {\n // we need to specify when to run this effect.\n // here, we run it when the value of windowType changes\n if (typeof window === \"undefined\") return;\n Config.get().windowType;\n if (LivePreviewEditButton && !isOpeningInTimeline()) {\n toggleEditButtonElement();\n }\n});\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/livePreview/editButton/editButton.ts"],"sourcesContent":["import { effect } from \"@preact/signals\";\nimport { inIframe } from \"../../common/inIframe\";\nimport Config from \"../../configManager/configManager\";\nimport { addCslpOutline, extractDetailsFromCslp } from \"../../cslp\";\nimport { cslpTagStyles } from \"./editButton.style\";\nimport { PublicLogger } from \"../../logger/logger\";\nimport {\n type IEditButtonPosition,\n ILivePreviewWindowType,\n} from \"../../types/types\";\nimport livePreviewPostMessage from \"../eventManager/livePreviewEventManager\";\nimport { EDIT_BUTTON_TOOLTIP_ID } from \"./editButton.constant\";\nimport { isOpeningInTimeline } from \"../../utils\";\n\nfunction calculateEditButtonPosition(\n currentHoveredElement: HTMLElement,\n cslpButtonPosition: string\n): IEditButtonPosition {\n const editButtonPosition: IEditButtonPosition = {\n upperBoundOfTooltip: 0,\n leftBoundOfTooltip: 0,\n };\n const currentRectOfElement = currentHoveredElement.getBoundingClientRect();\n try {\n const buttonMeasurementValues = {\n width: 72,\n halfWidth: 36,\n height: 40,\n basicMargin: 5,\n widthWithMargin: 77,\n };\n\n switch (cslpButtonPosition) {\n case \"top-center\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.width / 2 -\n buttonMeasurementValues.halfWidth +\n currentRectOfElement.left;\n break;\n case \"top-right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right - buttonMeasurementValues.width;\n break;\n case \"right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top -\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right +\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom-left\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n case \"bottom-center\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.width / 2 -\n buttonMeasurementValues.halfWidth +\n currentRectOfElement.left;\n break;\n case \"bottom-right\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.bottom +\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.right - buttonMeasurementValues.width;\n break;\n case \"left\":\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top -\n buttonMeasurementValues.basicMargin;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.widthWithMargin;\n break;\n // default position => top, top-left or any other string\n default:\n editButtonPosition.upperBoundOfTooltip =\n currentRectOfElement.top - buttonMeasurementValues.height;\n editButtonPosition.leftBoundOfTooltip =\n currentRectOfElement.left -\n buttonMeasurementValues.basicMargin;\n break;\n }\n return editButtonPosition;\n } catch (error) {\n PublicLogger.error(error);\n return editButtonPosition;\n }\n}\n\nexport const createSingularEditButton = (\n editCallback: (e: MouseEvent) => void\n): HTMLDivElement => {\n const singularEditButton = document.createElement(\"div\");\n singularEditButton.classList.add(\"cslp-tooltip-child\", \"singular\");\n singularEditButton.setAttribute(\n \"data-test-id\",\n \"cslp-singular-edit-button\"\n );\n singularEditButton.innerHTML = `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z\" fill=\"#718096\"></path>\n <path d=\"M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z\" fill=\"#718096\"></path>\n </svg>Edit`;\n\n singularEditButton.addEventListener(\"click\", editCallback);\n\n return singularEditButton;\n};\n\nexport const createMultipleEditButton = (\n editCallback: (e: MouseEvent) => void,\n linkCallback: (e: MouseEvent) => void\n): HTMLDivElement => {\n const multipleEditButton = document.createElement(\"div\");\n multipleEditButton.classList.add(\"cslp-tooltip-child\");\n multipleEditButton.setAttribute(\"data-title\", \"Edit\");\n multipleEditButton.setAttribute(\n \"data-test-id\",\n \"cslp-multiple-edit-button\"\n );\n multipleEditButton.innerHTML = ` <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8.1 3.5L0.3 11.3C0.1 11.5 0 11.7 0 12V15C0 15.6 0.4 16 1 16H4C4.3 16 4.5 15.9 4.7 15.7L12.5 7.9L8.1 3.5Z\" fill=\"#718096\"></path>\n <path d=\"M15.7 3.3L12.7 0.3C12.3 -0.1 11.7 -0.1 11.3 0.3L9.5 2.1L13.9 6.5L15.7 4.7C16.1 4.3 16.1 3.7 15.7 3.3Z\" fill=\"#718096\"></path>\n </svg>`;\n\n multipleEditButton.addEventListener(\"click\", editCallback);\n\n const multipleExternalLinkButton = document.createElement(\"div\");\n multipleExternalLinkButton.classList.add(\"cslp-tooltip-child\");\n multipleExternalLinkButton.setAttribute(\"data-title\", \"Go to link\");\n multipleExternalLinkButton.setAttribute(\n \"data-test-id\",\n \"cslp-multiple-external-link-button\"\n );\n multipleExternalLinkButton.innerHTML = ` <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2.66654 2.66758H13.3332V13.3342H6.66654V16.0009H13.3332C14.0405 16.0009 14.7187 15.72 15.2188 15.2199C15.7189 14.7198 15.9999 14.0415 15.9999 13.3342V2.66758C15.9999 1.96034 15.7189 1.28206 15.2188 0.781964C14.7187 0.281867 14.0405 0.000915527 13.3332 0.000915527H2.66654C1.9593 0.000915527 1.28102 0.281867 0.780927 0.781964C0.280829 1.28206 -0.00012207 1.96034 -0.00012207 2.66758V9.33425H2.66654V2.66758Z\" fill=\"#718096\" />\n <path d=\"M6.94263 7.05734L0.999958 13L2.88529 14.8853L8.82796 8.94267L10.8853 11V5.00001H4.88529L6.94263 7.05734Z\" fill=\"#718096\" />\n </svg>`;\n\n multipleExternalLinkButton.addEventListener(\"click\", linkCallback);\n\n const multipleEditFragment = document.createDocumentFragment();\n multipleEditFragment.appendChild(multipleEditButton);\n multipleEditFragment.appendChild(multipleExternalLinkButton);\n\n const multipleDiv = document.createElement(\"div\");\n multipleDiv.appendChild(multipleEditFragment);\n multipleDiv.classList.add(cslpTagStyles()[\"multiple\"]);\n\n return multipleDiv;\n};\n\nexport function getEditButtonPosition(\n currentHoveredElement: HTMLElement | null,\n defaultPosition: string | undefined\n): IEditButtonPosition {\n if (!currentHoveredElement)\n return { upperBoundOfTooltip: 0, leftBoundOfTooltip: 0 };\n\n const cslpButtonPosition = currentHoveredElement.getAttribute(\n \"data-cslp-button-position\"\n );\n if (cslpButtonPosition) {\n return calculateEditButtonPosition(\n currentHoveredElement,\n cslpButtonPosition\n );\n }\n\n // NOTE: position \"top\" and \"top-left\" will be the position of edit button if no default position passed in config\n return calculateEditButtonPosition(\n currentHoveredElement,\n defaultPosition || \"top\"\n );\n}\n\nexport function shouldRenderEditButton(): boolean {\n const config = Config.get();\n\n if (!config.editButton.enable) {\n if (config.editButton.enable === undefined)\n PublicLogger.error(\n \"enable key is required inside editButton object\"\n );\n return false;\n }\n\n // return boolean in case of cslp-buttons query added in url\n try {\n const currentLocation = new URL(window.location.href);\n const cslpButtonQueryValue =\n currentLocation.searchParams.get(\"cslp-buttons\");\n\n if (\n cslpButtonQueryValue !== null &&\n config.editButton.includeByQueryParameter !== false\n )\n return cslpButtonQueryValue === \"false\" ? false : true;\n } catch (error) {\n PublicLogger.error(error);\n }\n\n const iFrameCheck = inIframe();\n\n // case outside live preview\n if (\n !iFrameCheck &&\n config.editButton.exclude?.find(\n (exclude) => exclude === \"outsideLivePreviewPortal\"\n )\n ) {\n return false;\n }\n\n // case if inside live preview\n if (\n iFrameCheck &&\n config.editButton.exclude?.find(\n (exclude) => exclude === \"insideLivePreviewPortal\"\n )\n ) {\n return false;\n } else if (iFrameCheck) {\n // case if inside visual builder\n if (config.windowType === \"builder\") {\n return false;\n }\n\n // case if independent site\n return true;\n }\n\n // Priority list => 1. cslpEditButton query value 2. Inside live preview 3. renderCslpButtonByDefault value selected by user\n return true;\n}\n\nexport function toggleEditButtonElement() {\n const render = shouldRenderEditButton();\n const exists = doesEditButtonExist();\n\n if (render && !exists) {\n LivePreviewEditButton.livePreviewEditButton =\n new LivePreviewEditButton();\n } else if (!render && exists) {\n LivePreviewEditButton.livePreviewEditButton?.destroy();\n }\n}\n\nexport function doesEditButtonExist() {\n return document.getElementById(EDIT_BUTTON_TOOLTIP_ID) !== null;\n}\n\nexport class LivePreviewEditButton {\n private tooltip: HTMLButtonElement | null = null;\n private typeOfCurrentChild: \"singular\" | \"multiple\" = \"singular\";\n private tooltipChild: {\n singular: HTMLDivElement | null;\n multiple: HTMLDivElement | null;\n } = {\n singular: null,\n multiple: null,\n };\n static livePreviewEditButton: LivePreviewEditButton | null = null;\n\n constructor() {\n this.createCslpTooltip = this.createCslpTooltip.bind(this);\n this.updateTooltipPosition = this.updateTooltipPosition.bind(this);\n this.addEditStyleOnHover = this.addEditStyleOnHover.bind(this);\n this.scrollHandler = this.scrollHandler.bind(this);\n this.generateRedirectUrl = this.generateRedirectUrl.bind(this);\n this.linkClickHandler = this.linkClickHandler.bind(this);\n this.destroy = this.destroy.bind(this);\n\n if (this.createCslpTooltip()) {\n this.updateTooltipPosition();\n\n window.addEventListener(\"scroll\", this.updateTooltipPosition);\n window.addEventListener(\"mouseover\", this.addEditStyleOnHover);\n }\n }\n\n private createCslpTooltip(): boolean {\n const editButton = Config.get().editButton;\n\n if (\n !document.getElementById(EDIT_BUTTON_TOOLTIP_ID) &&\n editButton.enable &&\n shouldRenderEditButton()\n ) {\n const tooltip = document.createElement(\"button\");\n this.tooltip = tooltip;\n\n this.tooltip.classList.add(cslpTagStyles()[\"cslp-tooltip\"]);\n this.tooltip.setAttribute(\"data-test-id\", \"cs-cslp-tooltip\");\n this.tooltip.id = EDIT_BUTTON_TOOLTIP_ID;\n\n window.document.body.insertAdjacentElement(\n \"beforeend\",\n this.tooltip\n );\n\n this.tooltipChild.singular = createSingularEditButton(\n this.scrollHandler\n );\n this.tooltipChild.multiple = createMultipleEditButton(\n this.scrollHandler,\n this.linkClickHandler\n );\n\n this.tooltip.appendChild(this.tooltipChild.singular);\n return true;\n }\n return false;\n }\n\n private updateTooltipPosition() {\n if (!document.getElementById(\"cslp-tooltip\")) {\n this.createCslpTooltip();\n }\n const editButton = Config.get().editButton;\n const elements = Config.get().elements;\n\n if (!elements.highlightedElement || !this.tooltip) return false;\n\n const currentRectOfElement =\n elements.highlightedElement.getBoundingClientRect();\n const currentRectOfParentOfElement =\n this.tooltip.parentElement?.getBoundingClientRect();\n\n if (currentRectOfElement && currentRectOfParentOfElement) {\n const editButtonPosition = getEditButtonPosition(\n elements.highlightedElement as HTMLElement,\n editButton.position\n );\n\n let upperBoundOfTooltip = editButtonPosition.upperBoundOfTooltip;\n const leftBoundOfTooltip = editButtonPosition.leftBoundOfTooltip;\n\n // if scrolled and element is still visible, make sure tooltip is also visible\n if (upperBoundOfTooltip < 0) {\n if (currentRectOfElement.top < 0)\n upperBoundOfTooltip = currentRectOfElement.top;\n else upperBoundOfTooltip = 0;\n }\n\n this.tooltip.style.top = upperBoundOfTooltip + \"px\";\n this.tooltip.style.zIndex =\n elements.highlightedElement.style.zIndex || \"200\";\n this.tooltip.style.left = leftBoundOfTooltip + \"px\";\n\n if (this.tooltipChild.singular && this.tooltipChild.multiple) {\n if (\n elements.highlightedElement.hasAttribute(\"href\") &&\n this.typeOfCurrentChild !== \"multiple\"\n ) {\n this.tooltip.innerHTML = \"\";\n this.tooltip.appendChild(this.tooltipChild.multiple);\n this.typeOfCurrentChild = \"multiple\";\n } else if (this.typeOfCurrentChild !== \"singular\") {\n this.tooltip.innerHTML = \"\";\n this.tooltip.appendChild(this.tooltipChild.singular);\n this.typeOfCurrentChild = \"singular\";\n }\n }\n return true;\n }\n\n return false;\n }\n\n private addEditStyleOnHover(e: MouseEvent) {\n const updateStyles = this.shouldUpdateStyle(e);\n // Checks whether the mouse pointer is within the safe zone of the\n // element which was hovered on, since it also returns undefined when the\n // above can't be determined we can still add styles\n const shouldRedraw =\n typeof updateStyles === \"undefined\" ? true : updateStyles;\n if (!shouldRedraw) {\n return;\n }\n const updateTooltipPosition: Parameters<typeof addCslpOutline>[\"1\"] = ({\n cslpTag,\n highlightedElement,\n }) => {\n if (this.updateTooltipPosition()) {\n this.tooltip?.setAttribute(\"current-data-cslp\", cslpTag);\n this.tooltip?.setAttribute(\n \"current-href\",\n highlightedElement.getAttribute(\"href\") ?? \"\"\n );\n }\n };\n\n const editButton = Config.get().editButton;\n const windowType = Config.get().windowType;\n\n if (\n (windowType === ILivePreviewWindowType.PREVIEW ||\n windowType === ILivePreviewWindowType.INDEPENDENT) &&\n editButton.enable\n ) {\n addCslpOutline(e, updateTooltipPosition);\n }\n }\n\n private shouldUpdateStyle(event: MouseEvent) {\n const editButtonPos = Config.get().editButton.position;\n const editButtonDomRect = this.tooltip?.getBoundingClientRect();\n return isPointerWithinEditButtonSafeZone({\n event,\n editButtonPos,\n editButtonDomRect,\n });\n }\n\n private scrollHandler() {\n if (!this.tooltip) return;\n\n const cslpTag = this.tooltip.getAttribute(\"current-data-cslp\");\n\n if (cslpTag) {\n const {\n content_type_uid,\n entry_uid,\n locale,\n variant,\n fieldPathWithIndex,\n } = extractDetailsFromCslp(cslpTag);\n\n if (inIframe()) {\n livePreviewPostMessage?.send(\"scroll\", {\n field: fieldPathWithIndex,\n content_type_uid,\n entry_uid,\n variant,\n locale,\n });\n } else {\n try {\n // Redirect to Contentstack edit page\n const redirectUrl = this.generateRedirectUrl(\n content_type_uid,\n locale,\n entry_uid,\n variant,\n fieldPathWithIndex\n );\n\n window.open(redirectUrl, \"_blank\");\n } catch (error) {\n PublicLogger.error(error);\n }\n }\n }\n }\n\n /**\n * Generates the redirect URL for editing a specific entry in the Live Preview SDK.\n * @param content_type_uid - The UID of the content type.\n * @param locale - The locale of the entry (default: \"en-us\").\n * @param entry_uid - The UID of the entry.\n * @param preview_field - The field to be previewed.\n * @returns The redirect URL for editing the entry.\n */\n private generateRedirectUrl(\n content_type_uid: string,\n locale = \"en-us\",\n entry_uid: string,\n variant: string | undefined,\n preview_field: string\n ): string {\n const config = Config.get();\n\n if (!config.stackDetails.apiKey) {\n throw `To use edit tags, you must provide the stack API key. Specify the API key while initializing the Live Preview SDK.\n\n ContentstackLivePreview.init({\n ...,\n stackDetails: {\n apiKey: 'your-api-key'\n },\n ...\n })`;\n }\n\n if (!config.stackDetails.environment) {\n throw `To use edit tags, you must provide the preview environment. Specify the preview environment while initializing the Live Preview SDK.\n\n ContentstackLivePreview.init({\n ...,\n stackDetails: {\n environment: 'Your-environment'\n },\n ...\n })`;\n }\n\n const protocol = String(config.clientUrlParams.protocol);\n const host = String(config.clientUrlParams.host);\n const port = String(config.clientUrlParams.port);\n const environment = String(config.stackDetails.environment);\n const branch = String(config.stackDetails.branch || \"main\");\n\n let urlHash = `!/stack/${\n config.stackDetails.apiKey\n }/content-type/${content_type_uid}/${\n locale ?? \"en-us\"\n }/entry/${entry_uid}`;\n\n if (variant) {\n urlHash += `/variant/${variant}/edit`;\n } else {\n urlHash += `/edit`;\n }\n\n const url = new URL(`${protocol}://${host}`);\n url.port = port;\n url.hash = urlHash;\n if (config.stackDetails.branch) {\n url.searchParams.append(\"branch\", branch);\n }\n url.searchParams.append(\"preview-field\", preview_field);\n url.searchParams.append(\"preview-locale\", locale ?? \"en-us\");\n url.searchParams.append(\"preview-environment\", environment);\n\n return `${url.origin}/${url.hash}${url.search}`;\n }\n\n private linkClickHandler() {\n if (!this.tooltip) return;\n const hrefAttribute = this.tooltip.getAttribute(\"current-href\");\n\n if (hrefAttribute) {\n window.location.assign(hrefAttribute);\n }\n }\n\n /**\n * Destroys the edit button by removing event listeners and removing the tooltip.\n */\n destroy(): void {\n window.removeEventListener(\"scroll\", this.updateTooltipPosition);\n window.removeEventListener(\"mouseover\", this.addEditStyleOnHover);\n this.tooltip?.remove();\n }\n}\n\neffect(function handleWindowTypeChange() {\n // we need to specify when to run this effect.\n // here, we run it when the value of windowType changes\n if (typeof window === \"undefined\") return;\n Config.get().windowType;\n if (LivePreviewEditButton && !isOpeningInTimeline()) {\n toggleEditButtonElement();\n }\n});\n\n/**\n * Find first element with cslp on the event composed path,\n * do safe zone calculation for the element based on its\n * width and height, and return true if mouse pointer is\n * within the safe zone. Returns undefined when this cannot\n * be determined.\n */\nexport function isPointerWithinEditButtonSafeZone({\n event,\n editButtonDomRect,\n editButtonPos,\n}: {\n event: MouseEvent;\n editButtonDomRect: DOMRect | undefined;\n editButtonPos: string | undefined;\n}) {\n const SAFE_ZONE_RATIO = 0.1;\n const MAX_SAFE_ZONE_DISTANCE = 30;\n if (!editButtonDomRect || !editButtonPos) {\n return undefined;\n }\n if (!(editButtonDomRect.x > 0) || !(editButtonDomRect.y > 0)) {\n return undefined;\n }\n const isTop = editButtonPos.includes(\"top\");\n const isLeft = editButtonPos.includes(\"left\");\n const isBottom = editButtonPos.includes(\"bottom\");\n const isVertical = isTop || isBottom;\n const cslpElement = event.composedPath().find((target) => {\n const element = target as HTMLElement;\n if (element.nodeName === \"BODY\") {\n return false;\n }\n if (typeof element?.hasAttribute !== \"function\") {\n return false;\n }\n return element.hasAttribute(\"data-cslp\");\n });\n if (!cslpElement) {\n return undefined;\n }\n const element = cslpElement as HTMLElement;\n const elementRect = element.getBoundingClientRect();\n let safeZoneDistance = isVertical\n ? // if vertical positioning (\"top\"/\"bottom\")\n // button is rendered along the width\n elementRect.width * SAFE_ZONE_RATIO\n : // button is rendered along the height\n elementRect.height * SAFE_ZONE_RATIO;\n safeZoneDistance =\n safeZoneDistance > MAX_SAFE_ZONE_DISTANCE\n ? MAX_SAFE_ZONE_DISTANCE\n : safeZoneDistance;\n\n const tooltipX2 = editButtonDomRect.x + editButtonDomRect.width;\n const tooltipY2 = editButtonDomRect.y + editButtonDomRect.height;\n const safeX1 = editButtonDomRect.x - safeZoneDistance;\n const safeX2 = tooltipX2 + safeZoneDistance;\n const safeY1 = editButtonDomRect.y - safeZoneDistance;\n const safeY2 = tooltipY2 + safeZoneDistance;\n\n if (isTop || isBottom) {\n const verticalSafeDistance = isTop\n ? Math.abs(tooltipY2 - event.clientY)\n : Math.abs(editButtonDomRect.y - event.clientY);\n const isInSafeZone =\n event.clientX > safeX1 &&\n event.clientX < safeX2 &&\n verticalSafeDistance < safeZoneDistance;\n if (isInSafeZone) {\n return false;\n }\n } else {\n const horizontalSafeDistance = isLeft\n ? Math.abs(tooltipX2 - event.clientX)\n : Math.abs(editButtonDomRect.x - event.clientX);\n\n const isInSafeZone =\n event.clientY > safeY1 &&\n event.clientY < safeY2 &&\n horizontalSafeDistance < safeZoneDistance;\n if (isInSafeZone) {\n return false;\n }\n }\n return true;\n}\n"],"mappings":"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","names":["element"]}
@@ -86,7 +86,7 @@ function sendInitializeLivePreviewPostMessageEvent() {
86
86
  config: {
87
87
  shouldReload: import_configManager.default.get().ssr,
88
88
  href: window.location.href,
89
- sdkVersion: "3.2.0-alpha.1",
89
+ sdkVersion: "3.2.1",
90
90
  mode: import_configManager.default.get().mode
91
91
  }
92
92
  }
@@ -52,7 +52,7 @@ function sendInitializeLivePreviewPostMessageEvent() {
52
52
  config: {
53
53
  shouldReload: Config.get().ssr,
54
54
  href: window.location.href,
55
- sdkVersion: "3.2.0-alpha.1",
55
+ sdkVersion: "3.2.1",
56
56
  mode: Config.get().mode
57
57
  }
58
58
  }
@@ -25,7 +25,7 @@ __export(logger_exports, {
25
25
  module.exports = __toCommonJS(logger_exports);
26
26
  var PublicLogger = class {
27
27
  static logEvent(logCallback, message) {
28
- if (process?.env?.NODE_ENV !== "test") {
28
+ if (typeof process !== "undefined" && process?.env?.NODE_ENV !== "test") {
29
29
  logCallback("Live_Preview_SDK:", ...message);
30
30
  }
31
31
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/logger/logger.ts"],"sourcesContent":["export class PublicLogger {\n private static logEvent(\n logCallback:\n | Console[\"log\"]\n | Console[\"warn\"]\n | Console[\"error\"]\n | Console[\"debug\"]\n | Console[\"info\"],\n message: any[]\n ): void {\n if (process?.env?.NODE_ENV !== \"test\") {\n logCallback(\"Live_Preview_SDK:\", ...message);\n }\n }\n\n public static error(...data: any[]): void {\n this.logEvent(console.error, data);\n }\n\n public static warn(...data: any[]): void {\n this.logEvent(console.warn, data);\n }\n\n public static debug(...data: any[]): void {\n this.logEvent(console.debug, data);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAM,eAAN,MAAmB;AAAA,EACtB,OAAe,SACX,aAMA,SACI;AACJ,QAAI,SAAS,KAAK,aAAa,QAAQ;AACnC,kBAAY,qBAAqB,GAAG,OAAO;AAAA,IAC/C;AAAA,EACJ;AAAA,EAEA,OAAc,SAAS,MAAmB;AACtC,SAAK,SAAS,QAAQ,OAAO,IAAI;AAAA,EACrC;AAAA,EAEA,OAAc,QAAQ,MAAmB;AACrC,SAAK,SAAS,QAAQ,MAAM,IAAI;AAAA,EACpC;AAAA,EAEA,OAAc,SAAS,MAAmB;AACtC,SAAK,SAAS,QAAQ,OAAO,IAAI;AAAA,EACrC;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/logger/logger.ts"],"sourcesContent":["export class PublicLogger {\n private static logEvent(\n logCallback:\n | Console[\"log\"]\n | Console[\"warn\"]\n | Console[\"error\"]\n | Console[\"debug\"]\n | Console[\"info\"],\n message: any[]\n ): void {\n if (\n typeof process !== \"undefined\" &&\n process?.env?.NODE_ENV !== \"test\"\n ) {\n logCallback(\"Live_Preview_SDK:\", ...message);\n }\n }\n\n public static error(...data: any[]): void {\n this.logEvent(console.error, data);\n }\n\n public static warn(...data: any[]): void {\n this.logEvent(console.warn, data);\n }\n\n public static debug(...data: any[]): void {\n this.logEvent(console.debug, data);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAM,eAAN,MAAmB;AAAA,EACtB,OAAe,SACX,aAMA,SACI;AACJ,QACI,OAAO,YAAY,eACnB,SAAS,KAAK,aAAa,QAC7B;AACE,kBAAY,qBAAqB,GAAG,OAAO;AAAA,IAC/C;AAAA,EACJ;AAAA,EAEA,OAAc,SAAS,MAAmB;AACtC,SAAK,SAAS,QAAQ,OAAO,IAAI;AAAA,EACrC;AAAA,EAEA,OAAc,QAAQ,MAAmB;AACrC,SAAK,SAAS,QAAQ,MAAM,IAAI;AAAA,EACpC;AAAA,EAEA,OAAc,SAAS,MAAmB;AACtC,SAAK,SAAS,QAAQ,OAAO,IAAI;AAAA,EACrC;AACJ;","names":[]}
@@ -3,7 +3,7 @@ import "../chunk-5WRI5ZAA.js";
3
3
  // src/logger/logger.ts
4
4
  var PublicLogger = class {
5
5
  static logEvent(logCallback, message) {
6
- if (process?.env?.NODE_ENV !== "test") {
6
+ if (typeof process !== "undefined" && process?.env?.NODE_ENV !== "test") {
7
7
  logCallback("Live_Preview_SDK:", ...message);
8
8
  }
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/logger/logger.ts"],"sourcesContent":["export class PublicLogger {\n private static logEvent(\n logCallback:\n | Console[\"log\"]\n | Console[\"warn\"]\n | Console[\"error\"]\n | Console[\"debug\"]\n | Console[\"info\"],\n message: any[]\n ): void {\n if (process?.env?.NODE_ENV !== \"test\") {\n logCallback(\"Live_Preview_SDK:\", ...message);\n }\n }\n\n public static error(...data: any[]): void {\n this.logEvent(console.error, data);\n }\n\n public static warn(...data: any[]): void {\n this.logEvent(console.warn, data);\n }\n\n public static debug(...data: any[]): void {\n this.logEvent(console.debug, data);\n }\n}\n"],"mappings":";;;AAAO,IAAM,eAAN,MAAmB;AAAA,EACtB,OAAe,SACX,aAMA,SACI;AACJ,QAAI,SAAS,KAAK,aAAa,QAAQ;AACnC,kBAAY,qBAAqB,GAAG,OAAO;AAAA,IAC/C;AAAA,EACJ;AAAA,EAEA,OAAc,SAAS,MAAmB;AACtC,SAAK,SAAS,QAAQ,OAAO,IAAI;AAAA,EACrC;AAAA,EAEA,OAAc,QAAQ,MAAmB;AACrC,SAAK,SAAS,QAAQ,MAAM,IAAI;AAAA,EACpC;AAAA,EAEA,OAAc,SAAS,MAAmB;AACtC,SAAK,SAAS,QAAQ,OAAO,IAAI;AAAA,EACrC;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/logger/logger.ts"],"sourcesContent":["export class PublicLogger {\n private static logEvent(\n logCallback:\n | Console[\"log\"]\n | Console[\"warn\"]\n | Console[\"error\"]\n | Console[\"debug\"]\n | Console[\"info\"],\n message: any[]\n ): void {\n if (\n typeof process !== \"undefined\" &&\n process?.env?.NODE_ENV !== \"test\"\n ) {\n logCallback(\"Live_Preview_SDK:\", ...message);\n }\n }\n\n public static error(...data: any[]): void {\n this.logEvent(console.error, data);\n }\n\n public static warn(...data: any[]): void {\n this.logEvent(console.warn, data);\n }\n\n public static debug(...data: any[]): void {\n this.logEvent(console.debug, data);\n }\n}\n"],"mappings":";;;AAAO,IAAM,eAAN,MAAmB;AAAA,EACtB,OAAe,SACX,aAMA,SACI;AACJ,QACI,OAAO,YAAY,eACnB,SAAS,KAAK,aAAa,QAC7B;AACE,kBAAY,qBAAqB,GAAG,OAAO;AAAA,IAC/C;AAAA,EACJ;AAAA,EAEA,OAAc,SAAS,MAAmB;AACtC,SAAK,SAAS,QAAQ,OAAO,IAAI;AAAA,EACrC;AAAA,EAEA,OAAc,QAAQ,MAAmB;AACrC,SAAK,SAAS,QAAQ,MAAM,IAAI;AAAA,EACpC;AAAA,EAEA,OAAc,SAAS,MAAmB;AACtC,SAAK,SAAS,QAAQ,OAAO,IAAI;AAAA,EACrC;AACJ;","names":[]}
@@ -142,7 +142,11 @@ var _ContentstackLivePreview = class _ContentstackLivePreview {
142
142
  } else {
143
143
  _ContentstackLivePreview.onEntryChangeCallbacks[callbackUid] = onChangeCallback;
144
144
  }
145
- if (!skipInitialRender) {
145
+ const searchParams = typeof window !== "undefined" ? new URLSearchParams(window.location.search) : null;
146
+ const hasLivePreviewHash = searchParams && searchParams.has("live_preview");
147
+ const isBuilder = searchParams && searchParams.has("builder");
148
+ const shouldCallCallback = hasLivePreviewHash && isBuilder;
149
+ if (!skipInitialRender || shouldCallCallback) {
146
150
  onChangeCallback();
147
151
  }
148
152
  return callbackUid;
@@ -223,7 +227,7 @@ var _ContentstackLivePreview = class _ContentstackLivePreview {
223
227
  * @returns The version of the SDK as a string.
224
228
  */
225
229
  static getSdkVersion() {
226
- return "3.2.0-alpha.1";
230
+ return "3.2.1";
227
231
  }
228
232
  };
229
233
  _ContentstackLivePreview.previewConstructors = {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/preview/contentstack-live-preview-HOC.ts"],"sourcesContent":["import { cloneDeep, isEmpty, pick } from \"lodash-es\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { getUserInitData } from \"../configManager/config.default\";\nimport Config, { updateConfigFromUrl } from \"../configManager/configManager\";\nimport LivePreview from \"../livePreview/live-preview\";\nimport { handlePageTraversal } from \"../livePreview/onPageTraversal\";\nimport { removeFromOnChangeSubscribers } from \"../livePreview/removeFromOnChangeSubscribers\";\nimport {\n OnEntryChangeCallback,\n OnEntryChangeCallbackSubscribers,\n OnEntryChangeCallbackUID,\n OnEntryChangeConfig,\n OnEntryChangeUnsubscribeParameters,\n} from \"../livePreview/types/onEntryChangeCallback.type\";\nimport { PublicLogger } from \"../logger/logger\";\nimport { handleWebCompare } from \"../timeline/compare/compare\";\nimport type { IExportedConfig, IInitData } from \"../types/types\";\nimport { VisualBuilder } from \"../visualBuilder\";\n\nclass ContentstackLivePreview {\n private static previewConstructors:\n | {\n livePreview: LivePreview;\n visualBuilder: VisualBuilder;\n }\n | Record<string, never> = {};\n\n /**\n * The subscribers for the onEntryChange event. We store them here when the SDK is not initialized.\n */\n private static onEntryChangeCallbacks: OnEntryChangeCallbackSubscribers =\n {};\n\n /**\n * Initializes the Live Preview SDK with the provided user configuration.\n * If the SDK is already initialized, subsequent calls to this method will return the existing SDK instance.\n * @param userConfig - The user configuration to initialize the SDK with. See {@link https://github.com/contentstack/live-preview-sdk/blob/main/docs/live-preview-configs.md#initconfig-iconfig|Live preview User config} for more details.\n * @returns A promise that resolves to the constructors of the Live Preview SDK.\n */\n static init(\n userConfig: Partial<IInitData> = getUserInitData()\n ): Promise<typeof ContentstackLivePreview.previewConstructors> {\n if (typeof window === \"undefined\") {\n PublicLogger.warn(\"The SDK is not initialized in the browser.\");\n return Promise.resolve(ContentstackLivePreview.previewConstructors);\n }\n\n // handle user config\n Config.replace(userConfig);\n updateConfigFromUrl();\n\n if (ContentstackLivePreview.isInitialized()) {\n PublicLogger.warn(\n \"You have already initialized the Live Preview SDK. So, any subsequent initialization returns the existing SDK instance.\"\n );\n return Promise.resolve(ContentstackLivePreview.previewConstructors);\n } else {\n return ContentstackLivePreview.initializePreview();\n }\n }\n\n /**\n * It is the live preview hash.\n * This hash could be used when data is fetched manually.\n */\n static get hash(): string {\n if (!ContentstackLivePreview.isInitialized()) {\n updateConfigFromUrl(); // check if we could extract from the URL\n }\n return Config.get().hash;\n }\n\n static get config(): IExportedConfig {\n if (!ContentstackLivePreview.isInitialized()) {\n updateConfigFromUrl(); // check if we could extract from the URL\n }\n const config = Config.get();\n const clonedConfig = cloneDeep(config);\n const configToShare = pick(clonedConfig, [\n 'ssr',\n 'enable',\n 'cleanCslpOnProduction',\n 'stackDetails',\n 'clientUrlParams',\n 'windowType',\n 'hash',\n 'editButton',\n 'mode',\n ]);\n return configToShare;\n }\n\n private static isInitialized(): boolean {\n return !isEmpty(ContentstackLivePreview.previewConstructors);\n }\n\n private static initializePreview() {\n ContentstackLivePreview.previewConstructors = {\n livePreview: new LivePreview(),\n visualBuilder: new VisualBuilder(),\n };\n\n // set up onEntryChange callbacks added when the SDK was not initialized\n const livePreview =\n ContentstackLivePreview.previewConstructors.livePreview;\n Object.entries(ContentstackLivePreview.onEntryChangeCallbacks).forEach(\n ([callbackUid, callback]) => {\n livePreview.subscribeToOnEntryChange(callback, callbackUid);\n }\n );\n\n ContentstackLivePreview.onEntryChangeCallbacks = {};\n\n handlePageTraversal();\n handleWebCompare();\n\n return Promise.resolve(ContentstackLivePreview.previewConstructors);\n }\n\n /**\n * Registers a callback function to be called when an entry changes.\n * @param onChangeCallback The callback function to be called when an entry changes.\n * @param config Optional configuration for the callback.\n * @param config.skipInitialRender If true, the callback will not be called when it is first registered.\n * @returns A unique identifier for the registered callback.\n *\n * @example\n * ```js\n * const callbackUid = ContentstackLivePreview.onEntryChange(() => {\n * console.log(\"Entry changed\");\n * });\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callbackUid);\n * ```\n */\n static onEntryChange(\n onChangeCallback: OnEntryChangeCallback,\n config: OnEntryChangeConfig = {}\n ): OnEntryChangeCallbackUID {\n const { skipInitialRender = false } = config;\n\n const callbackUid = uuidv4();\n\n if (ContentstackLivePreview.isInitialized()) {\n ContentstackLivePreview.previewConstructors.livePreview.subscribeToOnEntryChange(\n onChangeCallback,\n callbackUid\n );\n } else {\n ContentstackLivePreview.onEntryChangeCallbacks[callbackUid] =\n onChangeCallback;\n }\n\n if (!skipInitialRender) {\n onChangeCallback();\n }\n\n return callbackUid;\n }\n\n /**\n * Registers a callback function to be called when there is a change in the entry being edited in live preview mode. The difference between this and `onEntryChange` is that this callback will not be called when it is first registered.\n * @param onChangeCallback The callback function to be called when there is a change in the entry.\n * @returns A unique identifier for the registered callback.\n *\n * @example\n * ```js\n * const callbackUid = ContentstackLivePreview.onLiveEdit(() => {\n * console.log(\"Entry changed\");\n * });\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callbackUid);\n * ```\n *\n */\n static onLiveEdit(\n onChangeCallback: OnEntryChangeCallback\n ): OnEntryChangeCallbackUID {\n return ContentstackLivePreview.onEntryChange(onChangeCallback, {\n skipInitialRender: true,\n });\n }\n\n /**\n * Unsubscribes from the entry change event.\n * @param callback - The callback function to be unsubscribed.\n *\n * @example\n * ```js\n * // unsubscribing using the Callback UID\n * const callbackUid = ContentstackLivePreview.onEntryChange(() => {\n * console.log(\"Entry changed\");\n * });\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callbackUid);\n * ```\n *\n * @example\n * ```js\n * // unsubscribing using the callback function\n * const callback = () => {console.log(\"Entry changed\")};\n * ContentstackLivePreview.onEntryChange(callback);\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callback);\n * ```\n *\n * @example\n * ```js\n * // The same is applicable to onLiveEdit\n * const callbackUid = ContentstackLivePreview.onLiveEdit(() => {\n * console.log(\"Entry changed\");\n * });\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callbackUid);\n * ```\n *\n *\n */\n static unsubscribeOnEntryChange(\n callback: OnEntryChangeUnsubscribeParameters\n ): void {\n if (!ContentstackLivePreview.isInitialized()) {\n removeFromOnChangeSubscribers(\n ContentstackLivePreview.onEntryChangeCallbacks,\n callback\n );\n return;\n }\n ContentstackLivePreview.previewConstructors.livePreview.unsubscribeOnEntryChange(\n callback\n );\n }\n\n /**\n * Retrieves the version of the SDK.\n * @returns The version of the SDK as a string.\n */\n static getSdkVersion(): string {\n return process?.env?.PACKAGE_VERSION!;\n }\n}\n\nexport default ContentstackLivePreview;"],"mappings":"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","names":["Config","LivePreview","uuidv4"]}
1
+ {"version":3,"sources":["../../../src/preview/contentstack-live-preview-HOC.ts"],"sourcesContent":["import { cloneDeep, isEmpty, pick } from \"lodash-es\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { getUserInitData } from \"../configManager/config.default\";\nimport Config, { updateConfigFromUrl } from \"../configManager/configManager\";\nimport LivePreview from \"../livePreview/live-preview\";\nimport { handlePageTraversal } from \"../livePreview/onPageTraversal\";\nimport { removeFromOnChangeSubscribers } from \"../livePreview/removeFromOnChangeSubscribers\";\nimport {\n OnEntryChangeCallback,\n OnEntryChangeCallbackSubscribers,\n OnEntryChangeCallbackUID,\n OnEntryChangeConfig,\n OnEntryChangeUnsubscribeParameters,\n} from \"../livePreview/types/onEntryChangeCallback.type\";\nimport { PublicLogger } from \"../logger/logger\";\nimport { handleWebCompare } from \"../timeline/compare/compare\";\nimport type { IExportedConfig, IInitData } from \"../types/types\";\nimport { VisualBuilder } from \"../visualBuilder\";\n\nclass ContentstackLivePreview {\n private static previewConstructors:\n | {\n livePreview: LivePreview;\n visualBuilder: VisualBuilder;\n }\n | Record<string, never> = {};\n\n /**\n * The subscribers for the onEntryChange event. We store them here when the SDK is not initialized.\n */\n private static onEntryChangeCallbacks: OnEntryChangeCallbackSubscribers =\n {};\n\n /**\n * Initializes the Live Preview SDK with the provided user configuration.\n * If the SDK is already initialized, subsequent calls to this method will return the existing SDK instance.\n * @param userConfig - The user configuration to initialize the SDK with. See {@link https://github.com/contentstack/live-preview-sdk/blob/main/docs/live-preview-configs.md#initconfig-iconfig|Live preview User config} for more details.\n * @returns A promise that resolves to the constructors of the Live Preview SDK.\n */\n static init(\n userConfig: Partial<IInitData> = getUserInitData()\n ): Promise<typeof ContentstackLivePreview.previewConstructors> {\n if (typeof window === \"undefined\") {\n PublicLogger.warn(\"The SDK is not initialized in the browser.\");\n return Promise.resolve(ContentstackLivePreview.previewConstructors);\n }\n\n // handle user config\n Config.replace(userConfig);\n updateConfigFromUrl();\n\n if (ContentstackLivePreview.isInitialized()) {\n PublicLogger.warn(\n \"You have already initialized the Live Preview SDK. So, any subsequent initialization returns the existing SDK instance.\"\n );\n return Promise.resolve(ContentstackLivePreview.previewConstructors);\n } else {\n return ContentstackLivePreview.initializePreview();\n }\n }\n\n /**\n * It is the live preview hash.\n * This hash could be used when data is fetched manually.\n */\n static get hash(): string {\n if (!ContentstackLivePreview.isInitialized()) {\n updateConfigFromUrl(); // check if we could extract from the URL\n }\n return Config.get().hash;\n }\n\n static get config(): IExportedConfig {\n if (!ContentstackLivePreview.isInitialized()) {\n updateConfigFromUrl(); // check if we could extract from the URL\n }\n const config = Config.get();\n const clonedConfig = cloneDeep(config);\n const configToShare = pick(clonedConfig, [\n 'ssr',\n 'enable',\n 'cleanCslpOnProduction',\n 'stackDetails',\n 'clientUrlParams',\n 'windowType',\n 'hash',\n 'editButton',\n 'mode',\n ]);\n return configToShare;\n }\n\n private static isInitialized(): boolean {\n return !isEmpty(ContentstackLivePreview.previewConstructors);\n }\n\n private static initializePreview() {\n ContentstackLivePreview.previewConstructors = {\n livePreview: new LivePreview(),\n visualBuilder: new VisualBuilder(),\n };\n\n // set up onEntryChange callbacks added when the SDK was not initialized\n const livePreview =\n ContentstackLivePreview.previewConstructors.livePreview;\n Object.entries(ContentstackLivePreview.onEntryChangeCallbacks).forEach(\n ([callbackUid, callback]) => {\n livePreview.subscribeToOnEntryChange(callback, callbackUid);\n }\n );\n\n ContentstackLivePreview.onEntryChangeCallbacks = {};\n\n handlePageTraversal();\n handleWebCompare();\n\n return Promise.resolve(ContentstackLivePreview.previewConstructors);\n }\n\n /**\n * Registers a callback function to be called when an entry changes.\n * @param onChangeCallback The callback function to be called when an entry changes.\n * @param config Optional configuration for the callback.\n * @param config.skipInitialRender If true, the callback will not be called when it is first registered.\n * @returns A unique identifier for the registered callback.\n *\n * @example\n * ```js\n * const callbackUid = ContentstackLivePreview.onEntryChange(() => {\n * console.log(\"Entry changed\");\n * });\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callbackUid);\n * ```\n */\n static onEntryChange(\n onChangeCallback: OnEntryChangeCallback,\n config: OnEntryChangeConfig = {}\n ): OnEntryChangeCallbackUID {\n const { skipInitialRender = false } = config;\n\n const callbackUid = uuidv4();\n\n if (ContentstackLivePreview.isInitialized()) {\n ContentstackLivePreview.previewConstructors.livePreview.subscribeToOnEntryChange(\n onChangeCallback,\n callbackUid\n );\n } else {\n ContentstackLivePreview.onEntryChangeCallbacks[callbackUid] =\n onChangeCallback;\n }\n\n const searchParams =\n typeof window !== \"undefined\"\n ? new URLSearchParams(window.location.search)\n : null;\n const hasLivePreviewHash =\n searchParams && searchParams.has(\"live_preview\");\n const isBuilder = searchParams && searchParams.has(\"builder\");\n const shouldCallCallback = hasLivePreviewHash && isBuilder;\n // calling onChangeCallback when live_preview search parameter\n // is present because we don't send the initial client-data-send\n // message in visual builder\n if (!skipInitialRender || shouldCallCallback) {\n onChangeCallback();\n }\n\n return callbackUid;\n }\n\n /**\n * Registers a callback function to be called when there is a change in the entry being edited in live preview mode. The difference between this and `onEntryChange` is that this callback will not be called when it is first registered.\n * @param onChangeCallback The callback function to be called when there is a change in the entry.\n * @returns A unique identifier for the registered callback.\n *\n * @example\n * ```js\n * const callbackUid = ContentstackLivePreview.onLiveEdit(() => {\n * console.log(\"Entry changed\");\n * });\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callbackUid);\n * ```\n *\n */\n static onLiveEdit(\n onChangeCallback: OnEntryChangeCallback\n ): OnEntryChangeCallbackUID {\n return ContentstackLivePreview.onEntryChange(onChangeCallback, {\n skipInitialRender: true,\n });\n }\n\n /**\n * Unsubscribes from the entry change event.\n * @param callback - The callback function to be unsubscribed.\n *\n * @example\n * ```js\n * // unsubscribing using the Callback UID\n * const callbackUid = ContentstackLivePreview.onEntryChange(() => {\n * console.log(\"Entry changed\");\n * });\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callbackUid);\n * ```\n *\n * @example\n * ```js\n * // unsubscribing using the callback function\n * const callback = () => {console.log(\"Entry changed\")};\n * ContentstackLivePreview.onEntryChange(callback);\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callback);\n * ```\n *\n * @example\n * ```js\n * // The same is applicable to onLiveEdit\n * const callbackUid = ContentstackLivePreview.onLiveEdit(() => {\n * console.log(\"Entry changed\");\n * });\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callbackUid);\n * ```\n *\n *\n */\n static unsubscribeOnEntryChange(\n callback: OnEntryChangeUnsubscribeParameters\n ): void {\n if (!ContentstackLivePreview.isInitialized()) {\n removeFromOnChangeSubscribers(\n ContentstackLivePreview.onEntryChangeCallbacks,\n callback\n );\n return;\n }\n ContentstackLivePreview.previewConstructors.livePreview.unsubscribeOnEntryChange(\n callback\n );\n }\n\n /**\n * Retrieves the version of the SDK.\n * @returns The version of the SDK as a string.\n */\n static getSdkVersion(): string {\n return process?.env?.PACKAGE_VERSION!;\n }\n}\n\nexport default ContentstackLivePreview;"],"mappings":"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","names":["Config","LivePreview","uuidv4"]}
@@ -110,7 +110,11 @@ var _ContentstackLivePreview = class _ContentstackLivePreview {
110
110
  } else {
111
111
  _ContentstackLivePreview.onEntryChangeCallbacks[callbackUid] = onChangeCallback;
112
112
  }
113
- if (!skipInitialRender) {
113
+ const searchParams = typeof window !== "undefined" ? new URLSearchParams(window.location.search) : null;
114
+ const hasLivePreviewHash = searchParams && searchParams.has("live_preview");
115
+ const isBuilder = searchParams && searchParams.has("builder");
116
+ const shouldCallCallback = hasLivePreviewHash && isBuilder;
117
+ if (!skipInitialRender || shouldCallCallback) {
114
118
  onChangeCallback();
115
119
  }
116
120
  return callbackUid;
@@ -191,7 +195,7 @@ var _ContentstackLivePreview = class _ContentstackLivePreview {
191
195
  * @returns The version of the SDK as a string.
192
196
  */
193
197
  static getSdkVersion() {
194
- return "3.2.0-alpha.1";
198
+ return "3.2.1";
195
199
  }
196
200
  };
197
201
  _ContentstackLivePreview.previewConstructors = {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/preview/contentstack-live-preview-HOC.ts"],"sourcesContent":["import { cloneDeep, isEmpty, pick } from \"lodash-es\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { getUserInitData } from \"../configManager/config.default\";\nimport Config, { updateConfigFromUrl } from \"../configManager/configManager\";\nimport LivePreview from \"../livePreview/live-preview\";\nimport { handlePageTraversal } from \"../livePreview/onPageTraversal\";\nimport { removeFromOnChangeSubscribers } from \"../livePreview/removeFromOnChangeSubscribers\";\nimport {\n OnEntryChangeCallback,\n OnEntryChangeCallbackSubscribers,\n OnEntryChangeCallbackUID,\n OnEntryChangeConfig,\n OnEntryChangeUnsubscribeParameters,\n} from \"../livePreview/types/onEntryChangeCallback.type\";\nimport { PublicLogger } from \"../logger/logger\";\nimport { handleWebCompare } from \"../timeline/compare/compare\";\nimport type { IExportedConfig, IInitData } from \"../types/types\";\nimport { VisualBuilder } from \"../visualBuilder\";\n\nclass ContentstackLivePreview {\n private static previewConstructors:\n | {\n livePreview: LivePreview;\n visualBuilder: VisualBuilder;\n }\n | Record<string, never> = {};\n\n /**\n * The subscribers for the onEntryChange event. We store them here when the SDK is not initialized.\n */\n private static onEntryChangeCallbacks: OnEntryChangeCallbackSubscribers =\n {};\n\n /**\n * Initializes the Live Preview SDK with the provided user configuration.\n * If the SDK is already initialized, subsequent calls to this method will return the existing SDK instance.\n * @param userConfig - The user configuration to initialize the SDK with. See {@link https://github.com/contentstack/live-preview-sdk/blob/main/docs/live-preview-configs.md#initconfig-iconfig|Live preview User config} for more details.\n * @returns A promise that resolves to the constructors of the Live Preview SDK.\n */\n static init(\n userConfig: Partial<IInitData> = getUserInitData()\n ): Promise<typeof ContentstackLivePreview.previewConstructors> {\n if (typeof window === \"undefined\") {\n PublicLogger.warn(\"The SDK is not initialized in the browser.\");\n return Promise.resolve(ContentstackLivePreview.previewConstructors);\n }\n\n // handle user config\n Config.replace(userConfig);\n updateConfigFromUrl();\n\n if (ContentstackLivePreview.isInitialized()) {\n PublicLogger.warn(\n \"You have already initialized the Live Preview SDK. So, any subsequent initialization returns the existing SDK instance.\"\n );\n return Promise.resolve(ContentstackLivePreview.previewConstructors);\n } else {\n return ContentstackLivePreview.initializePreview();\n }\n }\n\n /**\n * It is the live preview hash.\n * This hash could be used when data is fetched manually.\n */\n static get hash(): string {\n if (!ContentstackLivePreview.isInitialized()) {\n updateConfigFromUrl(); // check if we could extract from the URL\n }\n return Config.get().hash;\n }\n\n static get config(): IExportedConfig {\n if (!ContentstackLivePreview.isInitialized()) {\n updateConfigFromUrl(); // check if we could extract from the URL\n }\n const config = Config.get();\n const clonedConfig = cloneDeep(config);\n const configToShare = pick(clonedConfig, [\n 'ssr',\n 'enable',\n 'cleanCslpOnProduction',\n 'stackDetails',\n 'clientUrlParams',\n 'windowType',\n 'hash',\n 'editButton',\n 'mode',\n ]);\n return configToShare;\n }\n\n private static isInitialized(): boolean {\n return !isEmpty(ContentstackLivePreview.previewConstructors);\n }\n\n private static initializePreview() {\n ContentstackLivePreview.previewConstructors = {\n livePreview: new LivePreview(),\n visualBuilder: new VisualBuilder(),\n };\n\n // set up onEntryChange callbacks added when the SDK was not initialized\n const livePreview =\n ContentstackLivePreview.previewConstructors.livePreview;\n Object.entries(ContentstackLivePreview.onEntryChangeCallbacks).forEach(\n ([callbackUid, callback]) => {\n livePreview.subscribeToOnEntryChange(callback, callbackUid);\n }\n );\n\n ContentstackLivePreview.onEntryChangeCallbacks = {};\n\n handlePageTraversal();\n handleWebCompare();\n\n return Promise.resolve(ContentstackLivePreview.previewConstructors);\n }\n\n /**\n * Registers a callback function to be called when an entry changes.\n * @param onChangeCallback The callback function to be called when an entry changes.\n * @param config Optional configuration for the callback.\n * @param config.skipInitialRender If true, the callback will not be called when it is first registered.\n * @returns A unique identifier for the registered callback.\n *\n * @example\n * ```js\n * const callbackUid = ContentstackLivePreview.onEntryChange(() => {\n * console.log(\"Entry changed\");\n * });\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callbackUid);\n * ```\n */\n static onEntryChange(\n onChangeCallback: OnEntryChangeCallback,\n config: OnEntryChangeConfig = {}\n ): OnEntryChangeCallbackUID {\n const { skipInitialRender = false } = config;\n\n const callbackUid = uuidv4();\n\n if (ContentstackLivePreview.isInitialized()) {\n ContentstackLivePreview.previewConstructors.livePreview.subscribeToOnEntryChange(\n onChangeCallback,\n callbackUid\n );\n } else {\n ContentstackLivePreview.onEntryChangeCallbacks[callbackUid] =\n onChangeCallback;\n }\n\n if (!skipInitialRender) {\n onChangeCallback();\n }\n\n return callbackUid;\n }\n\n /**\n * Registers a callback function to be called when there is a change in the entry being edited in live preview mode. The difference between this and `onEntryChange` is that this callback will not be called when it is first registered.\n * @param onChangeCallback The callback function to be called when there is a change in the entry.\n * @returns A unique identifier for the registered callback.\n *\n * @example\n * ```js\n * const callbackUid = ContentstackLivePreview.onLiveEdit(() => {\n * console.log(\"Entry changed\");\n * });\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callbackUid);\n * ```\n *\n */\n static onLiveEdit(\n onChangeCallback: OnEntryChangeCallback\n ): OnEntryChangeCallbackUID {\n return ContentstackLivePreview.onEntryChange(onChangeCallback, {\n skipInitialRender: true,\n });\n }\n\n /**\n * Unsubscribes from the entry change event.\n * @param callback - The callback function to be unsubscribed.\n *\n * @example\n * ```js\n * // unsubscribing using the Callback UID\n * const callbackUid = ContentstackLivePreview.onEntryChange(() => {\n * console.log(\"Entry changed\");\n * });\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callbackUid);\n * ```\n *\n * @example\n * ```js\n * // unsubscribing using the callback function\n * const callback = () => {console.log(\"Entry changed\")};\n * ContentstackLivePreview.onEntryChange(callback);\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callback);\n * ```\n *\n * @example\n * ```js\n * // The same is applicable to onLiveEdit\n * const callbackUid = ContentstackLivePreview.onLiveEdit(() => {\n * console.log(\"Entry changed\");\n * });\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callbackUid);\n * ```\n *\n *\n */\n static unsubscribeOnEntryChange(\n callback: OnEntryChangeUnsubscribeParameters\n ): void {\n if (!ContentstackLivePreview.isInitialized()) {\n removeFromOnChangeSubscribers(\n ContentstackLivePreview.onEntryChangeCallbacks,\n callback\n );\n return;\n }\n ContentstackLivePreview.previewConstructors.livePreview.unsubscribeOnEntryChange(\n callback\n );\n }\n\n /**\n * Retrieves the version of the SDK.\n * @returns The version of the SDK as a string.\n */\n static getSdkVersion(): string {\n return process?.env?.PACKAGE_VERSION!;\n }\n}\n\nexport default ContentstackLivePreview;"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/preview/contentstack-live-preview-HOC.ts"],"sourcesContent":["import { cloneDeep, isEmpty, pick } from \"lodash-es\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { getUserInitData } from \"../configManager/config.default\";\nimport Config, { updateConfigFromUrl } from \"../configManager/configManager\";\nimport LivePreview from \"../livePreview/live-preview\";\nimport { handlePageTraversal } from \"../livePreview/onPageTraversal\";\nimport { removeFromOnChangeSubscribers } from \"../livePreview/removeFromOnChangeSubscribers\";\nimport {\n OnEntryChangeCallback,\n OnEntryChangeCallbackSubscribers,\n OnEntryChangeCallbackUID,\n OnEntryChangeConfig,\n OnEntryChangeUnsubscribeParameters,\n} from \"../livePreview/types/onEntryChangeCallback.type\";\nimport { PublicLogger } from \"../logger/logger\";\nimport { handleWebCompare } from \"../timeline/compare/compare\";\nimport type { IExportedConfig, IInitData } from \"../types/types\";\nimport { VisualBuilder } from \"../visualBuilder\";\n\nclass ContentstackLivePreview {\n private static previewConstructors:\n | {\n livePreview: LivePreview;\n visualBuilder: VisualBuilder;\n }\n | Record<string, never> = {};\n\n /**\n * The subscribers for the onEntryChange event. We store them here when the SDK is not initialized.\n */\n private static onEntryChangeCallbacks: OnEntryChangeCallbackSubscribers =\n {};\n\n /**\n * Initializes the Live Preview SDK with the provided user configuration.\n * If the SDK is already initialized, subsequent calls to this method will return the existing SDK instance.\n * @param userConfig - The user configuration to initialize the SDK with. See {@link https://github.com/contentstack/live-preview-sdk/blob/main/docs/live-preview-configs.md#initconfig-iconfig|Live preview User config} for more details.\n * @returns A promise that resolves to the constructors of the Live Preview SDK.\n */\n static init(\n userConfig: Partial<IInitData> = getUserInitData()\n ): Promise<typeof ContentstackLivePreview.previewConstructors> {\n if (typeof window === \"undefined\") {\n PublicLogger.warn(\"The SDK is not initialized in the browser.\");\n return Promise.resolve(ContentstackLivePreview.previewConstructors);\n }\n\n // handle user config\n Config.replace(userConfig);\n updateConfigFromUrl();\n\n if (ContentstackLivePreview.isInitialized()) {\n PublicLogger.warn(\n \"You have already initialized the Live Preview SDK. So, any subsequent initialization returns the existing SDK instance.\"\n );\n return Promise.resolve(ContentstackLivePreview.previewConstructors);\n } else {\n return ContentstackLivePreview.initializePreview();\n }\n }\n\n /**\n * It is the live preview hash.\n * This hash could be used when data is fetched manually.\n */\n static get hash(): string {\n if (!ContentstackLivePreview.isInitialized()) {\n updateConfigFromUrl(); // check if we could extract from the URL\n }\n return Config.get().hash;\n }\n\n static get config(): IExportedConfig {\n if (!ContentstackLivePreview.isInitialized()) {\n updateConfigFromUrl(); // check if we could extract from the URL\n }\n const config = Config.get();\n const clonedConfig = cloneDeep(config);\n const configToShare = pick(clonedConfig, [\n 'ssr',\n 'enable',\n 'cleanCslpOnProduction',\n 'stackDetails',\n 'clientUrlParams',\n 'windowType',\n 'hash',\n 'editButton',\n 'mode',\n ]);\n return configToShare;\n }\n\n private static isInitialized(): boolean {\n return !isEmpty(ContentstackLivePreview.previewConstructors);\n }\n\n private static initializePreview() {\n ContentstackLivePreview.previewConstructors = {\n livePreview: new LivePreview(),\n visualBuilder: new VisualBuilder(),\n };\n\n // set up onEntryChange callbacks added when the SDK was not initialized\n const livePreview =\n ContentstackLivePreview.previewConstructors.livePreview;\n Object.entries(ContentstackLivePreview.onEntryChangeCallbacks).forEach(\n ([callbackUid, callback]) => {\n livePreview.subscribeToOnEntryChange(callback, callbackUid);\n }\n );\n\n ContentstackLivePreview.onEntryChangeCallbacks = {};\n\n handlePageTraversal();\n handleWebCompare();\n\n return Promise.resolve(ContentstackLivePreview.previewConstructors);\n }\n\n /**\n * Registers a callback function to be called when an entry changes.\n * @param onChangeCallback The callback function to be called when an entry changes.\n * @param config Optional configuration for the callback.\n * @param config.skipInitialRender If true, the callback will not be called when it is first registered.\n * @returns A unique identifier for the registered callback.\n *\n * @example\n * ```js\n * const callbackUid = ContentstackLivePreview.onEntryChange(() => {\n * console.log(\"Entry changed\");\n * });\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callbackUid);\n * ```\n */\n static onEntryChange(\n onChangeCallback: OnEntryChangeCallback,\n config: OnEntryChangeConfig = {}\n ): OnEntryChangeCallbackUID {\n const { skipInitialRender = false } = config;\n\n const callbackUid = uuidv4();\n\n if (ContentstackLivePreview.isInitialized()) {\n ContentstackLivePreview.previewConstructors.livePreview.subscribeToOnEntryChange(\n onChangeCallback,\n callbackUid\n );\n } else {\n ContentstackLivePreview.onEntryChangeCallbacks[callbackUid] =\n onChangeCallback;\n }\n\n const searchParams =\n typeof window !== \"undefined\"\n ? new URLSearchParams(window.location.search)\n : null;\n const hasLivePreviewHash =\n searchParams && searchParams.has(\"live_preview\");\n const isBuilder = searchParams && searchParams.has(\"builder\");\n const shouldCallCallback = hasLivePreviewHash && isBuilder;\n // calling onChangeCallback when live_preview search parameter\n // is present because we don't send the initial client-data-send\n // message in visual builder\n if (!skipInitialRender || shouldCallCallback) {\n onChangeCallback();\n }\n\n return callbackUid;\n }\n\n /**\n * Registers a callback function to be called when there is a change in the entry being edited in live preview mode. The difference between this and `onEntryChange` is that this callback will not be called when it is first registered.\n * @param onChangeCallback The callback function to be called when there is a change in the entry.\n * @returns A unique identifier for the registered callback.\n *\n * @example\n * ```js\n * const callbackUid = ContentstackLivePreview.onLiveEdit(() => {\n * console.log(\"Entry changed\");\n * });\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callbackUid);\n * ```\n *\n */\n static onLiveEdit(\n onChangeCallback: OnEntryChangeCallback\n ): OnEntryChangeCallbackUID {\n return ContentstackLivePreview.onEntryChange(onChangeCallback, {\n skipInitialRender: true,\n });\n }\n\n /**\n * Unsubscribes from the entry change event.\n * @param callback - The callback function to be unsubscribed.\n *\n * @example\n * ```js\n * // unsubscribing using the Callback UID\n * const callbackUid = ContentstackLivePreview.onEntryChange(() => {\n * console.log(\"Entry changed\");\n * });\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callbackUid);\n * ```\n *\n * @example\n * ```js\n * // unsubscribing using the callback function\n * const callback = () => {console.log(\"Entry changed\")};\n * ContentstackLivePreview.onEntryChange(callback);\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callback);\n * ```\n *\n * @example\n * ```js\n * // The same is applicable to onLiveEdit\n * const callbackUid = ContentstackLivePreview.onLiveEdit(() => {\n * console.log(\"Entry changed\");\n * });\n *\n * // Unsubscribe the callback\n * ContentstackLivePreview.unsubscribeOnEntryChange(callbackUid);\n * ```\n *\n *\n */\n static unsubscribeOnEntryChange(\n callback: OnEntryChangeUnsubscribeParameters\n ): void {\n if (!ContentstackLivePreview.isInitialized()) {\n removeFromOnChangeSubscribers(\n ContentstackLivePreview.onEntryChangeCallbacks,\n callback\n );\n return;\n }\n ContentstackLivePreview.previewConstructors.livePreview.unsubscribeOnEntryChange(\n callback\n );\n }\n\n /**\n * Retrieves the version of the SDK.\n * @returns The version of the SDK as a string.\n */\n static getSdkVersion(): string {\n return process?.env?.PACKAGE_VERSION!;\n }\n}\n\nexport default ContentstackLivePreview;"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/types/types.ts"],"sourcesContent":["import {\n IInviteMetadata,\n IThreadDTO,\n} from \"../visualBuilder/types/collab.types\";\nexport declare interface IEditEntrySearchParams {\n hash?: string;\n entry_uid?: string;\n content_type_uid?: string;\n /**\n * @deprecated pass this value as hash instead\n */\n live_preview?: string;\n}\n\nexport declare interface IClientUrlParams {\n protocol: \"http\" | \"https\";\n host: string;\n port: string | number;\n url: string;\n}\n\nexport declare interface IStackSdk {\n live_preview: { [key: string]: any } & Partial<IConfig>;\n [key: string]: any;\n environment: string;\n}\n\nexport declare interface IStackDetails {\n apiKey: string;\n environment: string;\n contentTypeUid: string;\n entryUid: string;\n branch: string;\n /**\n * This locale is currently used by the visual builder to\n * redirect to the correct locale if the no data-cslp tag\n * is present in the HTML to extract the locale.\n */\n locale: string;\n masterLocale: string;\n}\n\nexport declare interface IInitStackDetails {\n apiKey: string;\n environment: string;\n branch: string;\n /**\n * This locale is currently used by the visual builder to\n * redirect to the correct locale if the no data-cslp tag\n * is present in the HTML to extract the locale.\n */\n locale: string;\n}\n\nexport declare type ILivePreviewMode = \"builder\" | \"preview\";\n\n//? We kept it as number so that we could disable only the unrequired features,\n//? since the \"Builder\" mode will contain all the features of the \"Preview\" mode.\nexport enum ILivePreviewModeConfig {\n PREVIEW = 1,\n BUILDER = 2,\n}\n\nexport enum ILivePreviewWindowType {\n PREVIEW = \"preview\",\n PREVIEW_SHARE = \"preview-share\",\n BUILDER = \"builder\",\n INDEPENDENT = \"independent\",\n}\n\nexport declare interface IConfig {\n ssr: boolean;\n enable: boolean;\n /**\n * @default false\n */\n debug: boolean;\n cleanCslpOnProduction: boolean;\n stackDetails: IStackDetails;\n clientUrlParams: IClientUrlParams;\n stackSdk: IStackSdk;\n onChange: () => void;\n runScriptsOnUpdate: boolean;\n windowType: ILivePreviewWindowType;\n hash: string;\n editButton: IConfigEditButton;\n mode: ILivePreviewModeConfig;\n elements: {\n highlightedElement: HTMLElement | null;\n };\n collab: {\n enable: boolean;\n fromShare: boolean;\n pauseFeedback: boolean;\n isFeedbackMode: boolean;\n inviteMetadata: IInviteMetadata;\n };\n}\n\nexport declare interface IConfigEditButton {\n enable: boolean;\n exclude?: (\"insideLivePreviewPortal\" | \"outsideLivePreviewPortal\")[];\n includeByQueryParameter?: boolean;\n position?:\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\"\n | \"top-left\"\n | \"top-right\"\n | \"top-center\"\n | \"bottom-left\"\n | \"bottom-right\"\n | \"bottom-center\";\n}\n\nexport declare interface IInitData {\n ssr: boolean;\n runScriptsOnUpdate: boolean;\n enable: boolean;\n /**\n * @default false\n */\n debug: boolean;\n cleanCslpOnProduction: boolean;\n stackDetails: Partial<IInitStackDetails>;\n clientUrlParams: Partial<Omit<IClientUrlParams, \"url\">>;\n stackSdk: IStackSdk;\n editButton: IConfigEditButton;\n mode: ILivePreviewMode;\n}\n\n// type PickPartial<T, K extends keyof T> = Partial<Pick<T, K>> & Omit<T, K>;\n\n// export type IInitData =\n// | {\n// ssr?: true;\n// stackSdk?: IStackSdk;\n// runScriptsOnUpdate?: boolean;\n// enable?: boolean;\n// cleanCslpOnProduction?: boolean;\n// stackDetails?: Partial<IInitStackDetails>;\n// clientUrlParams?: Partial<Omit<IClientUrlParams, \"url\">>;\n// editButton?: IConfigEditButton;\n// mode?: \"preview\";\n// }\n// | {\n// ssr?: true;\n// stackSdk?: IStackSdk;\n// runScriptsOnUpdate?: boolean;\n// enable?: boolean;\n// cleanCslpOnProduction?: boolean;\n// stackDetails: PickPartial<IInitStackDetails, \"branch\">;\n// clientUrlParams: PickPartial<\n// Omit<IClientUrlParams, \"url\">,\n// \"port\" | \"protocol\"\n// >;\n// editButton?: IConfigEditButton;\n// mode: \"builder\";\n// }\n// | {\n// ssr: false;\n// runScriptsOnUpdate?: boolean;\n// enable?: boolean;\n// cleanCslpOnProduction?: boolean;\n// stackDetails?: Partial<IInitStackDetails>;\n// clientUrlParams?: Partial<Omit<IClientUrlParams, \"url\">>;\n// stackSdk: IStackSdk;\n// editButton?: IConfigEditButton;\n// mode?: \"preview\";\n// }\n// | {\n// ssr: false;\n// runScriptsOnUpdate?: boolean;\n// enable?: boolean;\n// cleanCslpOnProduction?: boolean;\n// stackDetails: PickPartial<IInitStackDetails, \"branch\">;\n// clientUrlParams: PickPartial<\n// Omit<IClientUrlParams, \"url\">,\n// \"port\" | \"protocol\"\n// >;\n// stackSdk: IStackSdk;\n// editButton?: IConfigEditButton;\n// mode: \"builder\";\n// };\n\n// Post message types\n\nexport declare interface ILivePreviewMessageCommon {\n from: \"live-preview\";\n}\n\nexport declare interface IEditButtonPosition {\n upperBoundOfTooltip: number;\n leftBoundOfTooltip: number;\n}\n\n// end of Post message types\n\nexport interface IVisualBuilderInitEvent {\n windowType: ILivePreviewWindowType;\n stackDetails: {\n masterLocale: string;\n };\n collab?: {\n enable: boolean;\n isFeedbackMode: boolean;\n inviteMetadata: IInviteMetadata;\n payload: IThreadDTO[];\n };\n}\n\nexport type IExportedConfig = Pick<\n IConfig,\n | \"ssr\"\n | \"enable\"\n | \"cleanCslpOnProduction\"\n | \"stackDetails\"\n | \"clientUrlParams\"\n | \"windowType\"\n | \"hash\"\n | \"editButton\"\n | \"mode\"\n>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0DO,IAAK,yBAAL,kBAAKA,4BAAL;AACH,EAAAA,gDAAA,aAAU,KAAV;AACA,EAAAA,gDAAA,aAAU,KAAV;AAFQ,SAAAA;AAAA,GAAA;AAKL,IAAK,yBAAL,kBAAKC,4BAAL;AACH,EAAAA,wBAAA,aAAU;AACV,EAAAA,wBAAA,mBAAgB;AAChB,EAAAA,wBAAA,aAAU;AACV,EAAAA,wBAAA,iBAAc;AAJN,SAAAA;AAAA,GAAA;","names":["ILivePreviewModeConfig","ILivePreviewWindowType"]}
1
+ {"version":3,"sources":["../../../src/types/types.ts"],"sourcesContent":["import { ICollabConfig } from \"../visualBuilder/types/collab.types\";\nexport declare interface IEditEntrySearchParams {\n hash?: string;\n entry_uid?: string;\n content_type_uid?: string;\n /**\n * @deprecated pass this value as hash instead\n */\n live_preview?: string;\n}\n\nexport declare interface IClientUrlParams {\n protocol: \"http\" | \"https\";\n host: string;\n port: string | number;\n url: string;\n}\n\nexport declare interface IStackSdk {\n live_preview: { [key: string]: any } & Partial<IConfig>;\n [key: string]: any;\n environment: string;\n}\n\nexport declare interface IStackDetails {\n apiKey: string;\n environment: string;\n contentTypeUid: string;\n entryUid: string;\n branch: string;\n /**\n * This locale is currently used by the visual builder to\n * redirect to the correct locale if the no data-cslp tag\n * is present in the HTML to extract the locale.\n */\n locale: string;\n masterLocale: string;\n}\n\nexport declare interface IInitStackDetails {\n apiKey: string;\n environment: string;\n branch: string;\n /**\n * This locale is currently used by the visual builder to\n * redirect to the correct locale if the no data-cslp tag\n * is present in the HTML to extract the locale.\n */\n locale: string;\n}\n\nexport declare type ILivePreviewMode = \"builder\" | \"preview\";\n\n//? We kept it as number so that we could disable only the unrequired features,\n//? since the \"Builder\" mode will contain all the features of the \"Preview\" mode.\nexport enum ILivePreviewModeConfig {\n PREVIEW = 1,\n BUILDER = 2,\n}\n\nexport enum ILivePreviewWindowType {\n PREVIEW = \"preview\",\n PREVIEW_SHARE = \"preview-share\",\n BUILDER = \"builder\",\n INDEPENDENT = \"independent\",\n}\n\nexport declare interface IConfig {\n ssr: boolean;\n enable: boolean;\n /**\n * @default false\n */\n debug: boolean;\n cleanCslpOnProduction: boolean;\n stackDetails: IStackDetails;\n clientUrlParams: IClientUrlParams;\n stackSdk: IStackSdk;\n onChange: () => void;\n runScriptsOnUpdate: boolean;\n windowType: ILivePreviewWindowType;\n hash: string;\n editButton: IConfigEditButton;\n editInVisualBuilderButton: IConfigEditInVisualBuilderButton;\n mode: ILivePreviewModeConfig;\n elements: {\n highlightedElement: HTMLElement | null;\n };\n collab: ICollabConfig[\"collab\"];\n}\n\n\nexport declare interface IConfigEditInVisualBuilderButton {\n enable: boolean;\n position?:\n | \"top-left\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-right\"\n}\n\n\nexport declare interface IConfigEditButton {\n enable: boolean;\n exclude?: (\"insideLivePreviewPortal\" | \"outsideLivePreviewPortal\")[];\n includeByQueryParameter?: boolean;\n position?:\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\"\n | \"top-left\"\n | \"top-right\"\n | \"top-center\"\n | \"bottom-left\"\n | \"bottom-right\"\n | \"bottom-center\";\n}\n\nexport declare interface IInitData {\n ssr: boolean;\n runScriptsOnUpdate: boolean;\n enable: boolean;\n /**\n * @default false\n */\n debug: boolean;\n cleanCslpOnProduction: boolean;\n stackDetails: Partial<IInitStackDetails>;\n clientUrlParams: Partial<Omit<IClientUrlParams, \"url\">>;\n stackSdk: IStackSdk;\n editButton: IConfigEditButton;\n editInVisualBuilderButton: IConfigEditInVisualBuilderButton;\n mode: ILivePreviewMode;\n}\n\n// type PickPartial<T, K extends keyof T> = Partial<Pick<T, K>> & Omit<T, K>;\n\n// export type IInitData =\n// | {\n// ssr?: true;\n// stackSdk?: IStackSdk;\n// runScriptsOnUpdate?: boolean;\n// enable?: boolean;\n// cleanCslpOnProduction?: boolean;\n// stackDetails?: Partial<IInitStackDetails>;\n// clientUrlParams?: Partial<Omit<IClientUrlParams, \"url\">>;\n// editButton?: IConfigEditButton;\n// mode?: \"preview\";\n// }\n// | {\n// ssr?: true;\n// stackSdk?: IStackSdk;\n// runScriptsOnUpdate?: boolean;\n// enable?: boolean;\n// cleanCslpOnProduction?: boolean;\n// stackDetails: PickPartial<IInitStackDetails, \"branch\">;\n// clientUrlParams: PickPartial<\n// Omit<IClientUrlParams, \"url\">,\n// \"port\" | \"protocol\"\n// >;\n// editButton?: IConfigEditButton;\n// mode: \"builder\";\n// }\n// | {\n// ssr: false;\n// runScriptsOnUpdate?: boolean;\n// enable?: boolean;\n// cleanCslpOnProduction?: boolean;\n// stackDetails?: Partial<IInitStackDetails>;\n// clientUrlParams?: Partial<Omit<IClientUrlParams, \"url\">>;\n// stackSdk: IStackSdk;\n// editButton?: IConfigEditButton;\n// mode?: \"preview\";\n// }\n// | {\n// ssr: false;\n// runScriptsOnUpdate?: boolean;\n// enable?: boolean;\n// cleanCslpOnProduction?: boolean;\n// stackDetails: PickPartial<IInitStackDetails, \"branch\">;\n// clientUrlParams: PickPartial<\n// Omit<IClientUrlParams, \"url\">,\n// \"port\" | \"protocol\"\n// >;\n// stackSdk: IStackSdk;\n// editButton?: IConfigEditButton;\n// mode: \"builder\";\n// };\n\n// Post message types\n\nexport declare interface ILivePreviewMessageCommon {\n from: \"live-preview\";\n}\n\nexport declare interface IEditButtonPosition {\n upperBoundOfTooltip: number;\n leftBoundOfTooltip: number;\n}\n\n// end of Post message types\n\nexport interface IVisualBuilderInitEvent {\n windowType: ILivePreviewWindowType;\n stackDetails: {\n masterLocale: string;\n };\n collab?: ICollabConfig[\"collab\"];\n}\n\nexport type IExportedConfig = Pick<\n IConfig,\n | \"ssr\"\n | \"enable\"\n | \"cleanCslpOnProduction\"\n | \"stackDetails\"\n | \"clientUrlParams\"\n | \"windowType\"\n | \"hash\"\n | \"editButton\"\n | \"mode\"\n>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAuDO,IAAK,yBAAL,kBAAKA,4BAAL;AACH,EAAAA,gDAAA,aAAU,KAAV;AACA,EAAAA,gDAAA,aAAU,KAAV;AAFQ,SAAAA;AAAA,GAAA;AAKL,IAAK,yBAAL,kBAAKC,4BAAL;AACH,EAAAA,wBAAA,aAAU;AACV,EAAAA,wBAAA,mBAAgB;AAChB,EAAAA,wBAAA,aAAU;AACV,EAAAA,wBAAA,iBAAc;AAJN,SAAAA;AAAA,GAAA;","names":["ILivePreviewModeConfig","ILivePreviewWindowType"]}
@@ -1,4 +1,4 @@
1
- import { IInviteMetadata, IThreadDTO } from '../visualBuilder/types/collab.types.cjs';
1
+ import { ICollabConfig } from '../visualBuilder/types/collab.types.cjs';
2
2
 
3
3
  declare interface IEditEntrySearchParams {
4
4
  hash?: string;
@@ -74,17 +74,16 @@ declare interface IConfig {
74
74
  windowType: ILivePreviewWindowType;
75
75
  hash: string;
76
76
  editButton: IConfigEditButton;
77
+ editInVisualBuilderButton: IConfigEditInVisualBuilderButton;
77
78
  mode: ILivePreviewModeConfig;
78
79
  elements: {
79
80
  highlightedElement: HTMLElement | null;
80
81
  };
81
- collab: {
82
- enable: boolean;
83
- fromShare: boolean;
84
- pauseFeedback: boolean;
85
- isFeedbackMode: boolean;
86
- inviteMetadata: IInviteMetadata;
87
- };
82
+ collab: ICollabConfig["collab"];
83
+ }
84
+ declare interface IConfigEditInVisualBuilderButton {
85
+ enable: boolean;
86
+ position?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
88
87
  }
89
88
  declare interface IConfigEditButton {
90
89
  enable: boolean;
@@ -105,6 +104,7 @@ declare interface IInitData {
105
104
  clientUrlParams: Partial<Omit<IClientUrlParams, "url">>;
106
105
  stackSdk: IStackSdk;
107
106
  editButton: IConfigEditButton;
107
+ editInVisualBuilderButton: IConfigEditInVisualBuilderButton;
108
108
  mode: ILivePreviewMode;
109
109
  }
110
110
  declare interface ILivePreviewMessageCommon {
@@ -119,13 +119,8 @@ interface IVisualBuilderInitEvent {
119
119
  stackDetails: {
120
120
  masterLocale: string;
121
121
  };
122
- collab?: {
123
- enable: boolean;
124
- isFeedbackMode: boolean;
125
- inviteMetadata: IInviteMetadata;
126
- payload: IThreadDTO[];
127
- };
122
+ collab?: ICollabConfig["collab"];
128
123
  }
129
124
  type IExportedConfig = Pick<IConfig, "ssr" | "enable" | "cleanCslpOnProduction" | "stackDetails" | "clientUrlParams" | "windowType" | "hash" | "editButton" | "mode">;
130
125
 
131
- export { type IClientUrlParams, type IConfig, type IConfigEditButton, type IEditButtonPosition, type IEditEntrySearchParams, type IExportedConfig, type IInitData, type IInitStackDetails, type ILivePreviewMessageCommon, type ILivePreviewMode, ILivePreviewModeConfig, ILivePreviewWindowType, type IStackDetails, type IStackSdk, type IVisualBuilderInitEvent };
126
+ export { type IClientUrlParams, type IConfig, type IConfigEditButton, type IConfigEditInVisualBuilderButton, type IEditButtonPosition, type IEditEntrySearchParams, type IExportedConfig, type IInitData, type IInitStackDetails, type ILivePreviewMessageCommon, type ILivePreviewMode, ILivePreviewModeConfig, ILivePreviewWindowType, type IStackDetails, type IStackSdk, type IVisualBuilderInitEvent };
@@ -1,4 +1,4 @@
1
- import { IInviteMetadata, IThreadDTO } from '../visualBuilder/types/collab.types.js';
1
+ import { ICollabConfig } from '../visualBuilder/types/collab.types.js';
2
2
 
3
3
  declare interface IEditEntrySearchParams {
4
4
  hash?: string;
@@ -74,17 +74,16 @@ declare interface IConfig {
74
74
  windowType: ILivePreviewWindowType;
75
75
  hash: string;
76
76
  editButton: IConfigEditButton;
77
+ editInVisualBuilderButton: IConfigEditInVisualBuilderButton;
77
78
  mode: ILivePreviewModeConfig;
78
79
  elements: {
79
80
  highlightedElement: HTMLElement | null;
80
81
  };
81
- collab: {
82
- enable: boolean;
83
- fromShare: boolean;
84
- pauseFeedback: boolean;
85
- isFeedbackMode: boolean;
86
- inviteMetadata: IInviteMetadata;
87
- };
82
+ collab: ICollabConfig["collab"];
83
+ }
84
+ declare interface IConfigEditInVisualBuilderButton {
85
+ enable: boolean;
86
+ position?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
88
87
  }
89
88
  declare interface IConfigEditButton {
90
89
  enable: boolean;
@@ -105,6 +104,7 @@ declare interface IInitData {
105
104
  clientUrlParams: Partial<Omit<IClientUrlParams, "url">>;
106
105
  stackSdk: IStackSdk;
107
106
  editButton: IConfigEditButton;
107
+ editInVisualBuilderButton: IConfigEditInVisualBuilderButton;
108
108
  mode: ILivePreviewMode;
109
109
  }
110
110
  declare interface ILivePreviewMessageCommon {
@@ -119,13 +119,8 @@ interface IVisualBuilderInitEvent {
119
119
  stackDetails: {
120
120
  masterLocale: string;
121
121
  };
122
- collab?: {
123
- enable: boolean;
124
- isFeedbackMode: boolean;
125
- inviteMetadata: IInviteMetadata;
126
- payload: IThreadDTO[];
127
- };
122
+ collab?: ICollabConfig["collab"];
128
123
  }
129
124
  type IExportedConfig = Pick<IConfig, "ssr" | "enable" | "cleanCslpOnProduction" | "stackDetails" | "clientUrlParams" | "windowType" | "hash" | "editButton" | "mode">;
130
125
 
131
- export { type IClientUrlParams, type IConfig, type IConfigEditButton, type IEditButtonPosition, type IEditEntrySearchParams, type IExportedConfig, type IInitData, type IInitStackDetails, type ILivePreviewMessageCommon, type ILivePreviewMode, ILivePreviewModeConfig, ILivePreviewWindowType, type IStackDetails, type IStackSdk, type IVisualBuilderInitEvent };
126
+ export { type IClientUrlParams, type IConfig, type IConfigEditButton, type IConfigEditInVisualBuilderButton, type IEditButtonPosition, type IEditEntrySearchParams, type IExportedConfig, type IInitData, type IInitStackDetails, type ILivePreviewMessageCommon, type ILivePreviewMode, ILivePreviewModeConfig, ILivePreviewWindowType, type IStackDetails, type IStackSdk, type IVisualBuilderInitEvent };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/types/types.ts"],"sourcesContent":["import {\n IInviteMetadata,\n IThreadDTO,\n} from \"../visualBuilder/types/collab.types\";\nexport declare interface IEditEntrySearchParams {\n hash?: string;\n entry_uid?: string;\n content_type_uid?: string;\n /**\n * @deprecated pass this value as hash instead\n */\n live_preview?: string;\n}\n\nexport declare interface IClientUrlParams {\n protocol: \"http\" | \"https\";\n host: string;\n port: string | number;\n url: string;\n}\n\nexport declare interface IStackSdk {\n live_preview: { [key: string]: any } & Partial<IConfig>;\n [key: string]: any;\n environment: string;\n}\n\nexport declare interface IStackDetails {\n apiKey: string;\n environment: string;\n contentTypeUid: string;\n entryUid: string;\n branch: string;\n /**\n * This locale is currently used by the visual builder to\n * redirect to the correct locale if the no data-cslp tag\n * is present in the HTML to extract the locale.\n */\n locale: string;\n masterLocale: string;\n}\n\nexport declare interface IInitStackDetails {\n apiKey: string;\n environment: string;\n branch: string;\n /**\n * This locale is currently used by the visual builder to\n * redirect to the correct locale if the no data-cslp tag\n * is present in the HTML to extract the locale.\n */\n locale: string;\n}\n\nexport declare type ILivePreviewMode = \"builder\" | \"preview\";\n\n//? We kept it as number so that we could disable only the unrequired features,\n//? since the \"Builder\" mode will contain all the features of the \"Preview\" mode.\nexport enum ILivePreviewModeConfig {\n PREVIEW = 1,\n BUILDER = 2,\n}\n\nexport enum ILivePreviewWindowType {\n PREVIEW = \"preview\",\n PREVIEW_SHARE = \"preview-share\",\n BUILDER = \"builder\",\n INDEPENDENT = \"independent\",\n}\n\nexport declare interface IConfig {\n ssr: boolean;\n enable: boolean;\n /**\n * @default false\n */\n debug: boolean;\n cleanCslpOnProduction: boolean;\n stackDetails: IStackDetails;\n clientUrlParams: IClientUrlParams;\n stackSdk: IStackSdk;\n onChange: () => void;\n runScriptsOnUpdate: boolean;\n windowType: ILivePreviewWindowType;\n hash: string;\n editButton: IConfigEditButton;\n mode: ILivePreviewModeConfig;\n elements: {\n highlightedElement: HTMLElement | null;\n };\n collab: {\n enable: boolean;\n fromShare: boolean;\n pauseFeedback: boolean;\n isFeedbackMode: boolean;\n inviteMetadata: IInviteMetadata;\n };\n}\n\nexport declare interface IConfigEditButton {\n enable: boolean;\n exclude?: (\"insideLivePreviewPortal\" | \"outsideLivePreviewPortal\")[];\n includeByQueryParameter?: boolean;\n position?:\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\"\n | \"top-left\"\n | \"top-right\"\n | \"top-center\"\n | \"bottom-left\"\n | \"bottom-right\"\n | \"bottom-center\";\n}\n\nexport declare interface IInitData {\n ssr: boolean;\n runScriptsOnUpdate: boolean;\n enable: boolean;\n /**\n * @default false\n */\n debug: boolean;\n cleanCslpOnProduction: boolean;\n stackDetails: Partial<IInitStackDetails>;\n clientUrlParams: Partial<Omit<IClientUrlParams, \"url\">>;\n stackSdk: IStackSdk;\n editButton: IConfigEditButton;\n mode: ILivePreviewMode;\n}\n\n// type PickPartial<T, K extends keyof T> = Partial<Pick<T, K>> & Omit<T, K>;\n\n// export type IInitData =\n// | {\n// ssr?: true;\n// stackSdk?: IStackSdk;\n// runScriptsOnUpdate?: boolean;\n// enable?: boolean;\n// cleanCslpOnProduction?: boolean;\n// stackDetails?: Partial<IInitStackDetails>;\n// clientUrlParams?: Partial<Omit<IClientUrlParams, \"url\">>;\n// editButton?: IConfigEditButton;\n// mode?: \"preview\";\n// }\n// | {\n// ssr?: true;\n// stackSdk?: IStackSdk;\n// runScriptsOnUpdate?: boolean;\n// enable?: boolean;\n// cleanCslpOnProduction?: boolean;\n// stackDetails: PickPartial<IInitStackDetails, \"branch\">;\n// clientUrlParams: PickPartial<\n// Omit<IClientUrlParams, \"url\">,\n// \"port\" | \"protocol\"\n// >;\n// editButton?: IConfigEditButton;\n// mode: \"builder\";\n// }\n// | {\n// ssr: false;\n// runScriptsOnUpdate?: boolean;\n// enable?: boolean;\n// cleanCslpOnProduction?: boolean;\n// stackDetails?: Partial<IInitStackDetails>;\n// clientUrlParams?: Partial<Omit<IClientUrlParams, \"url\">>;\n// stackSdk: IStackSdk;\n// editButton?: IConfigEditButton;\n// mode?: \"preview\";\n// }\n// | {\n// ssr: false;\n// runScriptsOnUpdate?: boolean;\n// enable?: boolean;\n// cleanCslpOnProduction?: boolean;\n// stackDetails: PickPartial<IInitStackDetails, \"branch\">;\n// clientUrlParams: PickPartial<\n// Omit<IClientUrlParams, \"url\">,\n// \"port\" | \"protocol\"\n// >;\n// stackSdk: IStackSdk;\n// editButton?: IConfigEditButton;\n// mode: \"builder\";\n// };\n\n// Post message types\n\nexport declare interface ILivePreviewMessageCommon {\n from: \"live-preview\";\n}\n\nexport declare interface IEditButtonPosition {\n upperBoundOfTooltip: number;\n leftBoundOfTooltip: number;\n}\n\n// end of Post message types\n\nexport interface IVisualBuilderInitEvent {\n windowType: ILivePreviewWindowType;\n stackDetails: {\n masterLocale: string;\n };\n collab?: {\n enable: boolean;\n isFeedbackMode: boolean;\n inviteMetadata: IInviteMetadata;\n payload: IThreadDTO[];\n };\n}\n\nexport type IExportedConfig = Pick<\n IConfig,\n | \"ssr\"\n | \"enable\"\n | \"cleanCslpOnProduction\"\n | \"stackDetails\"\n | \"clientUrlParams\"\n | \"windowType\"\n | \"hash\"\n | \"editButton\"\n | \"mode\"\n>;\n"],"mappings":";;;AA0DO,IAAK,yBAAL,kBAAKA,4BAAL;AACH,EAAAA,gDAAA,aAAU,KAAV;AACA,EAAAA,gDAAA,aAAU,KAAV;AAFQ,SAAAA;AAAA,GAAA;AAKL,IAAK,yBAAL,kBAAKC,4BAAL;AACH,EAAAA,wBAAA,aAAU;AACV,EAAAA,wBAAA,mBAAgB;AAChB,EAAAA,wBAAA,aAAU;AACV,EAAAA,wBAAA,iBAAc;AAJN,SAAAA;AAAA,GAAA;","names":["ILivePreviewModeConfig","ILivePreviewWindowType"]}
1
+ {"version":3,"sources":["../../../src/types/types.ts"],"sourcesContent":["import { ICollabConfig } from \"../visualBuilder/types/collab.types\";\nexport declare interface IEditEntrySearchParams {\n hash?: string;\n entry_uid?: string;\n content_type_uid?: string;\n /**\n * @deprecated pass this value as hash instead\n */\n live_preview?: string;\n}\n\nexport declare interface IClientUrlParams {\n protocol: \"http\" | \"https\";\n host: string;\n port: string | number;\n url: string;\n}\n\nexport declare interface IStackSdk {\n live_preview: { [key: string]: any } & Partial<IConfig>;\n [key: string]: any;\n environment: string;\n}\n\nexport declare interface IStackDetails {\n apiKey: string;\n environment: string;\n contentTypeUid: string;\n entryUid: string;\n branch: string;\n /**\n * This locale is currently used by the visual builder to\n * redirect to the correct locale if the no data-cslp tag\n * is present in the HTML to extract the locale.\n */\n locale: string;\n masterLocale: string;\n}\n\nexport declare interface IInitStackDetails {\n apiKey: string;\n environment: string;\n branch: string;\n /**\n * This locale is currently used by the visual builder to\n * redirect to the correct locale if the no data-cslp tag\n * is present in the HTML to extract the locale.\n */\n locale: string;\n}\n\nexport declare type ILivePreviewMode = \"builder\" | \"preview\";\n\n//? We kept it as number so that we could disable only the unrequired features,\n//? since the \"Builder\" mode will contain all the features of the \"Preview\" mode.\nexport enum ILivePreviewModeConfig {\n PREVIEW = 1,\n BUILDER = 2,\n}\n\nexport enum ILivePreviewWindowType {\n PREVIEW = \"preview\",\n PREVIEW_SHARE = \"preview-share\",\n BUILDER = \"builder\",\n INDEPENDENT = \"independent\",\n}\n\nexport declare interface IConfig {\n ssr: boolean;\n enable: boolean;\n /**\n * @default false\n */\n debug: boolean;\n cleanCslpOnProduction: boolean;\n stackDetails: IStackDetails;\n clientUrlParams: IClientUrlParams;\n stackSdk: IStackSdk;\n onChange: () => void;\n runScriptsOnUpdate: boolean;\n windowType: ILivePreviewWindowType;\n hash: string;\n editButton: IConfigEditButton;\n editInVisualBuilderButton: IConfigEditInVisualBuilderButton;\n mode: ILivePreviewModeConfig;\n elements: {\n highlightedElement: HTMLElement | null;\n };\n collab: ICollabConfig[\"collab\"];\n}\n\n\nexport declare interface IConfigEditInVisualBuilderButton {\n enable: boolean;\n position?:\n | \"top-left\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-right\"\n}\n\n\nexport declare interface IConfigEditButton {\n enable: boolean;\n exclude?: (\"insideLivePreviewPortal\" | \"outsideLivePreviewPortal\")[];\n includeByQueryParameter?: boolean;\n position?:\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\"\n | \"top-left\"\n | \"top-right\"\n | \"top-center\"\n | \"bottom-left\"\n | \"bottom-right\"\n | \"bottom-center\";\n}\n\nexport declare interface IInitData {\n ssr: boolean;\n runScriptsOnUpdate: boolean;\n enable: boolean;\n /**\n * @default false\n */\n debug: boolean;\n cleanCslpOnProduction: boolean;\n stackDetails: Partial<IInitStackDetails>;\n clientUrlParams: Partial<Omit<IClientUrlParams, \"url\">>;\n stackSdk: IStackSdk;\n editButton: IConfigEditButton;\n editInVisualBuilderButton: IConfigEditInVisualBuilderButton;\n mode: ILivePreviewMode;\n}\n\n// type PickPartial<T, K extends keyof T> = Partial<Pick<T, K>> & Omit<T, K>;\n\n// export type IInitData =\n// | {\n// ssr?: true;\n// stackSdk?: IStackSdk;\n// runScriptsOnUpdate?: boolean;\n// enable?: boolean;\n// cleanCslpOnProduction?: boolean;\n// stackDetails?: Partial<IInitStackDetails>;\n// clientUrlParams?: Partial<Omit<IClientUrlParams, \"url\">>;\n// editButton?: IConfigEditButton;\n// mode?: \"preview\";\n// }\n// | {\n// ssr?: true;\n// stackSdk?: IStackSdk;\n// runScriptsOnUpdate?: boolean;\n// enable?: boolean;\n// cleanCslpOnProduction?: boolean;\n// stackDetails: PickPartial<IInitStackDetails, \"branch\">;\n// clientUrlParams: PickPartial<\n// Omit<IClientUrlParams, \"url\">,\n// \"port\" | \"protocol\"\n// >;\n// editButton?: IConfigEditButton;\n// mode: \"builder\";\n// }\n// | {\n// ssr: false;\n// runScriptsOnUpdate?: boolean;\n// enable?: boolean;\n// cleanCslpOnProduction?: boolean;\n// stackDetails?: Partial<IInitStackDetails>;\n// clientUrlParams?: Partial<Omit<IClientUrlParams, \"url\">>;\n// stackSdk: IStackSdk;\n// editButton?: IConfigEditButton;\n// mode?: \"preview\";\n// }\n// | {\n// ssr: false;\n// runScriptsOnUpdate?: boolean;\n// enable?: boolean;\n// cleanCslpOnProduction?: boolean;\n// stackDetails: PickPartial<IInitStackDetails, \"branch\">;\n// clientUrlParams: PickPartial<\n// Omit<IClientUrlParams, \"url\">,\n// \"port\" | \"protocol\"\n// >;\n// stackSdk: IStackSdk;\n// editButton?: IConfigEditButton;\n// mode: \"builder\";\n// };\n\n// Post message types\n\nexport declare interface ILivePreviewMessageCommon {\n from: \"live-preview\";\n}\n\nexport declare interface IEditButtonPosition {\n upperBoundOfTooltip: number;\n leftBoundOfTooltip: number;\n}\n\n// end of Post message types\n\nexport interface IVisualBuilderInitEvent {\n windowType: ILivePreviewWindowType;\n stackDetails: {\n masterLocale: string;\n };\n collab?: ICollabConfig[\"collab\"];\n}\n\nexport type IExportedConfig = Pick<\n IConfig,\n | \"ssr\"\n | \"enable\"\n | \"cleanCslpOnProduction\"\n | \"stackDetails\"\n | \"clientUrlParams\"\n | \"windowType\"\n | \"hash\"\n | \"editButton\"\n | \"mode\"\n>;\n"],"mappings":";;;AAuDO,IAAK,yBAAL,kBAAKA,4BAAL;AACH,EAAAA,gDAAA,aAAU,KAAV;AACA,EAAAA,gDAAA,aAAU,KAAV;AAFQ,SAAAA;AAAA,GAAA;AAKL,IAAK,yBAAL,kBAAKC,4BAAL;AACH,EAAAA,wBAAA,aAAU;AACV,EAAAA,wBAAA,mBAAgB;AAChB,EAAAA,wBAAA,aAAU;AACV,EAAAA,wBAAA,iBAAc;AAJN,SAAAA;AAAA,GAAA;","names":["ILivePreviewModeConfig","ILivePreviewWindowType"]}