@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
@@ -4,6 +4,7 @@ import "../../chunk-5WRI5ZAA.js";
4
4
  import { hideOverlay } from "../generators/generateOverlay.js";
5
5
  import visualBuilderPostMessage from "../utils/visualBuilderPostMessage.js";
6
6
  import { VisualBuilderPostMessageEvents } from "../utils/types/postMessage.types.js";
7
+ import Config from "../../configManager/configManager.js";
7
8
  function useHideFocusOverlayPostMessageEvent({
8
9
  visualBuilderContainer,
9
10
  overlayWrapper,
@@ -13,6 +14,10 @@ function useHideFocusOverlayPostMessageEvent({
13
14
  visualBuilderPostMessage?.on(
14
15
  VisualBuilderPostMessageEvents.HIDE_FOCUS_OVERLAY,
15
16
  (args) => {
17
+ if (Boolean(args?.data?.fromCollab)) {
18
+ Config.set("collab.enable", true);
19
+ Config.set("collab.pauseFeedback", true);
20
+ }
16
21
  hideOverlay({
17
22
  visualBuilderOverlayWrapper: overlayWrapper,
18
23
  visualBuilderContainer,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.ts"],"sourcesContent":["import { hideOverlay } from \"../generators/generateOverlay\";\nimport EventListenerHandlerParams from \"../listeners/types\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\n\ntype HideFocusOverlayEventHandlerParams = Omit<\n EventListenerHandlerParams,\n \"event\" | \"eventDetails\" | \"customCursor\" | \"previousSelectedEditableDOM\"\n>;\n\nexport function useHideFocusOverlayPostMessageEvent({\n visualBuilderContainer,\n overlayWrapper,\n focusedToolbar,\n resizeObserver,\n}: HideFocusOverlayEventHandlerParams): void {\n visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.HIDE_FOCUS_OVERLAY,\n (args: { data: { noTrigger: boolean } }) => {\n hideOverlay({\n visualBuilderOverlayWrapper: overlayWrapper,\n visualBuilderContainer,\n focusedToolbar,\n resizeObserver,\n noTrigger: Boolean(args?.data?.noTrigger)\n });\n }\n );\n}\n"],"mappings":";;;AAAA,SAAS,mBAAmB;AAE5B,OAAO,8BAA8B;AACrC,SAAS,sCAAsC;AAOxC,SAAS,oCAAoC;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAA6C;AACzC,4BAA0B;AAAA,IACtB,+BAA+B;AAAA,IAC/B,CAAC,SAA2C;AACxC,kBAAY;AAAA,QACR,6BAA6B;AAAA,QAC7B;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW,QAAQ,MAAM,MAAM,SAAS;AAAA,MAC5C,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.ts"],"sourcesContent":["import { hideOverlay } from \"../generators/generateOverlay\";\nimport EventListenerHandlerParams from \"../listeners/types\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\nimport Config from \"../../configManager/configManager\";\n\ntype HideFocusOverlayEventHandlerParams = Omit<\n EventListenerHandlerParams,\n \"event\" | \"eventDetails\" | \"customCursor\" | \"previousSelectedEditableDOM\"\n>;\n\nexport function useHideFocusOverlayPostMessageEvent({\n visualBuilderContainer,\n overlayWrapper,\n focusedToolbar,\n resizeObserver,\n}: HideFocusOverlayEventHandlerParams): void {\n visualBuilderPostMessage?.on(\n VisualBuilderPostMessageEvents.HIDE_FOCUS_OVERLAY,\n (args: { data: { noTrigger: boolean; fromCollab: boolean } }) => {\n if (Boolean(args?.data?.fromCollab)) {\n Config.set(\"collab.enable\", true);\n Config.set(\"collab.pauseFeedback\", true);\n }\n\n hideOverlay({\n visualBuilderOverlayWrapper: overlayWrapper,\n visualBuilderContainer,\n focusedToolbar,\n resizeObserver,\n noTrigger: Boolean(args?.data?.noTrigger),\n });\n }\n );\n}\n"],"mappings":";;;AAAA,SAAS,mBAAmB;AAE5B,OAAO,8BAA8B;AACrC,SAAS,sCAAsC;AAC/C,OAAO,YAAY;AAOZ,SAAS,oCAAoC;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAA6C;AACzC,4BAA0B;AAAA,IACtB,+BAA+B;AAAA,IAC/B,CAAC,SAAgE;AAC7D,UAAI,QAAQ,MAAM,MAAM,UAAU,GAAG;AACjC,eAAO,IAAI,iBAAiB,IAAI;AAChC,eAAO,IAAI,wBAAwB,IAAI;AAAA,MAC3C;AAEA,kBAAY;AAAA,QACR,6BAA6B;AAAA,QAC7B;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW,QAAQ,MAAM,MAAM,SAAS;AAAA,MAC5C,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;","names":[]}
@@ -57,8 +57,10 @@ function updateVariantClasses({
57
57
  const observers = [];
58
58
  const updateElementClasses = (element, dataCslp, observer) => {
59
59
  if (!dataCslp) return;
60
- if (dataCslp.startsWith("v2:") && element.classList.contains("visual-builder__base-field")) {
61
- element.classList.remove("visual-builder__base-field");
60
+ if (dataCslp.startsWith("v2:") && !element.classList.contains("visual-builder__variant-field")) {
61
+ if (element.classList.contains("visual-builder__base-field")) {
62
+ element.classList.remove("visual-builder__base-field");
63
+ }
62
64
  if (highlightVariantFields) {
63
65
  element.classList.add(
64
66
  (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field"],
@@ -80,12 +82,53 @@ function updateVariantClasses({
80
82
  );
81
83
  element.classList.add("visual-builder__disabled-variant-field");
82
84
  }
85
+ if (!observer) return;
83
86
  observer.disconnect();
84
87
  const index = observers.indexOf(observer);
85
88
  if (index > -1) {
86
89
  observers.splice(index, 1);
87
90
  }
88
91
  };
92
+ const addElementClasses = (element) => {
93
+ const dataCslp = element.getAttribute(import_constants.DATA_CSLP_ATTR_SELECTOR);
94
+ if (!dataCslp) {
95
+ element.childNodes.forEach((child) => {
96
+ if (child instanceof HTMLElement) {
97
+ addElementClasses(child);
98
+ }
99
+ });
100
+ return;
101
+ }
102
+ if (dataCslp.startsWith("v2:") && element.classList.contains("visual-builder__variant-field")) {
103
+ return;
104
+ }
105
+ if (dataCslp.startsWith("v2:") && !element.classList.contains("visual-builder__variant-field")) {
106
+ if (element.classList.contains("visual-builder__base-field")) {
107
+ element.classList.remove("visual-builder__base-field");
108
+ }
109
+ if (highlightVariantFields) {
110
+ element.classList.add(
111
+ (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field"],
112
+ "visual-builder__variant-field"
113
+ );
114
+ } else {
115
+ element.classList.add("visual-builder__variant-field");
116
+ }
117
+ } else if (!dataCslp.startsWith("v2:")) {
118
+ if (element.classList.contains("visual-builder__variant-field")) {
119
+ element.classList.remove(
120
+ (0, import_visualBuilder.visualBuilderStyles)()["visual-builder__variant-field"],
121
+ "visual-builder__variant-field"
122
+ );
123
+ }
124
+ element.classList.add("visual-builder__base-field");
125
+ }
126
+ element.childNodes.forEach((child) => {
127
+ if (child instanceof HTMLElement) {
128
+ addElementClasses(child);
129
+ }
130
+ });
131
+ };
89
132
  const elementsWithCslp = document.querySelectorAll(
90
133
  `[${import_constants.DATA_CSLP_ATTR_SELECTOR}]`
91
134
  );
@@ -93,7 +136,14 @@ function updateVariantClasses({
93
136
  const element = elementNode;
94
137
  const observer = new MutationObserver((mutations) => {
95
138
  mutations.forEach((mutation) => {
96
- if (mutation.type === "attributes" && mutation.attributeName === import_constants.DATA_CSLP_ATTR_SELECTOR) {
139
+ if (mutation.type === "attributes" && mutation.attributeName === import_constants.DATA_CSLP_ATTR_SELECTOR || mutation.type === "childList") {
140
+ if (mutation.addedNodes.length > 0) {
141
+ mutation.addedNodes.forEach((node) => {
142
+ if (node instanceof HTMLElement) {
143
+ addElementClasses(node);
144
+ }
145
+ });
146
+ }
97
147
  const dataCslp = element.getAttribute(
98
148
  import_constants.DATA_CSLP_ATTR_SELECTOR
99
149
  );
@@ -102,7 +152,12 @@ function updateVariantClasses({
102
152
  });
103
153
  });
104
154
  observers.push(observer);
105
- observer.observe(element, { attributes: true });
155
+ observer.observe(element, {
156
+ attributes: true,
157
+ childList: true,
158
+ // Observe direct children
159
+ subtree: true
160
+ });
106
161
  });
107
162
  setTimeout(() => {
108
163
  if (observers.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport livePreviewPostMessage from \"../../livePreview/eventManager/livePreviewEventManager\";\nimport { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from \"../../livePreview/eventManager/livePreviewEventManager.constant\";\nimport { DATA_CSLP_ATTR_SELECTOR } from \"../utils/constants\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\n\nconst VARIANT_UPDATE_DELAY_MS: Readonly<number> = 8000;\n\ntype OnAudienceModeVariantPatchUpdate = {\n highlightVariantFields: boolean;\n expectedCSLPValues: Record<\"variant\" | \"base\", string>;\n};\n\n/**\n * Registers a post message event listener for updating the variant / base classes in the live preview for audience mode.\n */\nexport function useRecalculateVariantDataCSLPValues(): void {\n livePreviewPostMessage?.on<OnAudienceModeVariantPatchUpdate>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.VARIANT_PATCH,\n (event) => {\n if (VisualBuilder.VisualBuilderGlobalState.value.audienceMode) {\n updateVariantClasses(event.data);\n }\n }\n );\n}\nfunction updateVariantClasses({\n highlightVariantFields,\n expectedCSLPValues,\n}: OnAudienceModeVariantPatchUpdate): void {\n const variant = VisualBuilder.VisualBuilderGlobalState.value.variant;\n const observers: MutationObserver[] = [];\n\n // Helper function to update element classes\n const updateElementClasses = (\n element: HTMLElement,\n dataCslp: string,\n observer: MutationObserver\n ) => {\n if (!dataCslp) return;\n\n if (\n dataCslp.startsWith(\"v2:\") &&\n element.classList.contains(\"visual-builder__base-field\")\n ) {\n element.classList.remove(\"visual-builder__base-field\");\n if (highlightVariantFields) {\n element.classList.add(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n } else {\n element.classList.add(\"visual-builder__variant-field\");\n }\n } else if (\n !dataCslp.startsWith(\"v2:\") &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n element.classList.add(\"visual-builder__base-field\");\n } else if (\n dataCslp.startsWith(\"v2:\") &&\n variant &&\n !dataCslp.includes(variant) &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n element.classList.add(\"visual-builder__disabled-variant-field\");\n }\n\n // Disconnect this observer after processing\n observer.disconnect();\n const index = observers.indexOf(observer);\n if (index > -1) {\n observers.splice(index, 1);\n }\n };\n\n // Create a separate observer for each element\n const elementsWithCslp = document.querySelectorAll(\n `[${DATA_CSLP_ATTR_SELECTOR}]`\n );\n\n elementsWithCslp.forEach((elementNode) => {\n const element = elementNode as HTMLElement;\n\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (\n mutation.type === \"attributes\" &&\n mutation.attributeName === DATA_CSLP_ATTR_SELECTOR\n ) {\n const dataCslp = element.getAttribute(\n DATA_CSLP_ATTR_SELECTOR\n );\n updateElementClasses(element, dataCslp || \"\", observer);\n }\n });\n });\n\n observers.push(observer);\n observer.observe(element, { attributes: true });\n });\n\n setTimeout(() => {\n if (observers.length > 0) {\n observers.forEach((observer) => observer.disconnect());\n observers.length = 0;\n }\n }, VARIANT_UPDATE_DELAY_MS);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAA8B;AAC9B,qCAAmC;AACnC,IAAAA,kCAAiD;AACjD,uBAAwC;AACxC,2BAAoC;AAEpC,IAAM,0BAA4C;AAU3C,SAAS,sCAA4C;AACxD,iCAAAC,SAAwB;AAAA,IACpB,iEAAiC;AAAA,IACjC,CAAC,UAAU;AACP,UAAI,uBAAc,yBAAyB,MAAM,cAAc;AAC3D,6BAAqB,MAAM,IAAI;AAAA,MACnC;AAAA,IACJ;AAAA,EACJ;AACJ;AACA,SAAS,qBAAqB;AAAA,EAC1B;AAAA,EACA;AACJ,GAA2C;AACvC,QAAM,UAAU,uBAAc,yBAAyB,MAAM;AAC7D,QAAM,YAAgC,CAAC;AAGvC,QAAM,uBAAuB,CACzB,SACA,UACA,aACC;AACD,QAAI,CAAC,SAAU;AAEf,QACI,SAAS,WAAW,KAAK,KACzB,QAAQ,UAAU,SAAS,4BAA4B,GACzD;AACE,cAAQ,UAAU,OAAO,4BAA4B;AACrD,UAAI,wBAAwB;AACxB,gBAAQ,UAAU;AAAA,cACd,0CAAoB,EAAE,+BAA+B;AAAA,UACrD;AAAA,QACJ;AAAA,MACJ,OAAO;AACH,gBAAQ,UAAU,IAAI,+BAA+B;AAAA,MACzD;AAAA,IACJ,WACI,CAAC,SAAS,WAAW,KAAK,KAC1B,QAAQ,UAAU,SAAS,+BAA+B,GAC5D;AACE,cAAQ,UAAU;AAAA,YACd,0CAAoB,EAAE,+BAA+B;AAAA,QACrD;AAAA,MACJ;AACA,cAAQ,UAAU,IAAI,4BAA4B;AAAA,IACtD,WACI,SAAS,WAAW,KAAK,KACzB,WACA,CAAC,SAAS,SAAS,OAAO,KAC1B,QAAQ,UAAU,SAAS,+BAA+B,GAC5D;AACE,cAAQ,UAAU;AAAA,YACd,0CAAoB,EAAE,+BAA+B;AAAA,QACrD;AAAA,MACJ;AACA,cAAQ,UAAU,IAAI,wCAAwC;AAAA,IAClE;AAGA,aAAS,WAAW;AACpB,UAAM,QAAQ,UAAU,QAAQ,QAAQ;AACxC,QAAI,QAAQ,IAAI;AACZ,gBAAU,OAAO,OAAO,CAAC;AAAA,IAC7B;AAAA,EACJ;AAGA,QAAM,mBAAmB,SAAS;AAAA,IAC9B,IAAI,wCAAuB;AAAA,EAC/B;AAEA,mBAAiB,QAAQ,CAAC,gBAAgB;AACtC,UAAM,UAAU;AAEhB,UAAM,WAAW,IAAI,iBAAiB,CAAC,cAAc;AACjD,gBAAU,QAAQ,CAAC,aAAa;AAC5B,YACI,SAAS,SAAS,gBAClB,SAAS,kBAAkB,0CAC7B;AACE,gBAAM,WAAW,QAAQ;AAAA,YACrB;AAAA,UACJ;AACA,+BAAqB,SAAS,YAAY,IAAI,QAAQ;AAAA,QAC1D;AAAA,MACJ,CAAC;AAAA,IACL,CAAC;AAED,cAAU,KAAK,QAAQ;AACvB,aAAS,QAAQ,SAAS,EAAE,YAAY,KAAK,CAAC;AAAA,EAClD,CAAC;AAED,aAAW,MAAM;AACb,QAAI,UAAU,SAAS,GAAG;AACtB,gBAAU,QAAQ,CAAC,aAAa,SAAS,WAAW,CAAC;AACrD,gBAAU,SAAS;AAAA,IACvB;AAAA,EACJ,GAAG,uBAAuB;AAC9B;","names":["import_livePreviewEventManager","livePreviewPostMessage"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport livePreviewPostMessage from \"../../livePreview/eventManager/livePreviewEventManager\";\nimport { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from \"../../livePreview/eventManager/livePreviewEventManager.constant\";\nimport { DATA_CSLP_ATTR_SELECTOR } from \"../utils/constants\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\n\nconst VARIANT_UPDATE_DELAY_MS: Readonly<number> = 8000;\n\ntype OnAudienceModeVariantPatchUpdate = {\n highlightVariantFields: boolean;\n expectedCSLPValues: Record<\"variant\" | \"base\", string>;\n};\n\n/**\n * Registers a post message event listener for updating the variant / base classes in the live preview for audience mode.\n */\nexport function useRecalculateVariantDataCSLPValues(): void {\n livePreviewPostMessage?.on<OnAudienceModeVariantPatchUpdate>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.VARIANT_PATCH,\n (event) => {\n if (VisualBuilder.VisualBuilderGlobalState.value.audienceMode) {\n updateVariantClasses(event.data);\n }\n }\n );\n}\nfunction updateVariantClasses({\n highlightVariantFields,\n expectedCSLPValues,\n}: OnAudienceModeVariantPatchUpdate): void {\n const variant = VisualBuilder.VisualBuilderGlobalState.value.variant;\n const observers: MutationObserver[] = [];\n\n // Helper function to update element classes\n const updateElementClasses = (\n element: HTMLElement,\n dataCslp: string,\n observer?: MutationObserver\n ) => {\n if (!dataCslp) return;\n\n if (\n dataCslp.startsWith(\"v2:\") &&\n !element.classList.contains(\"visual-builder__variant-field\")\n ) {\n if (element.classList.contains(\"visual-builder__base-field\")) {\n element.classList.remove(\"visual-builder__base-field\");\n }\n if (highlightVariantFields) {\n element.classList.add(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n } else {\n element.classList.add(\"visual-builder__variant-field\");\n }\n } else if (\n !dataCslp.startsWith(\"v2:\") &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n element.classList.add(\"visual-builder__base-field\");\n } else if (\n dataCslp.startsWith(\"v2:\") &&\n variant &&\n !dataCslp.includes(variant) &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n element.classList.add(\"visual-builder__disabled-variant-field\");\n }\n if (!observer) return;\n // Disconnect this observer after processing\n observer.disconnect();\n const index = observers.indexOf(observer);\n if (index > -1) {\n observers.splice(index, 1);\n }\n };\n\n const addElementClasses = (element: HTMLElement) => {\n const dataCslp = element.getAttribute(DATA_CSLP_ATTR_SELECTOR);\n\n if (!dataCslp) {\n //recursive call for child nodes\n element.childNodes.forEach((child) => {\n if (child instanceof HTMLElement) {\n addElementClasses(child);\n }\n });\n return;\n }\n //if element might have been updated by another observer\n if (\n dataCslp.startsWith(\"v2:\") &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n return;\n }\n // if element has not given variant/base class\n if (\n dataCslp.startsWith(\"v2:\") &&\n !element.classList.contains(\"visual-builder__variant-field\")\n ) {\n if (element.classList.contains(\"visual-builder__base-field\")) {\n element.classList.remove(\"visual-builder__base-field\");\n }\n if (highlightVariantFields) {\n element.classList.add(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n } else {\n element.classList.add(\"visual-builder__variant-field\");\n }\n } else if (!dataCslp.startsWith(\"v2:\")) {\n if (element.classList.contains(\"visual-builder__variant-field\")) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n }\n element.classList.add(\"visual-builder__base-field\");\n }\n\n //recursive call for child nodes\n element.childNodes.forEach((child) => {\n if (child instanceof HTMLElement) {\n addElementClasses(child);\n }\n });\n };\n\n // Create a separate observer for each element\n const elementsWithCslp = document.querySelectorAll(\n `[${DATA_CSLP_ATTR_SELECTOR}]`\n );\n elementsWithCslp.forEach((elementNode) => {\n const element = elementNode as HTMLElement;\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (\n (mutation.type === \"attributes\" &&\n mutation.attributeName === DATA_CSLP_ATTR_SELECTOR) ||\n mutation.type === \"childList\"\n ) {\n if (mutation.addedNodes.length > 0) {\n mutation.addedNodes.forEach((node) => {\n if (node instanceof HTMLElement) {\n addElementClasses(node);\n }\n });\n }\n const dataCslp = element.getAttribute(\n DATA_CSLP_ATTR_SELECTOR\n );\n updateElementClasses(element, dataCslp || \"\", observer);\n }\n });\n });\n\n observers.push(observer);\n observer.observe(element, {\n attributes: true,\n childList: true, // Observe direct children\n subtree: true,\n });\n });\n\n setTimeout(() => {\n if (observers.length > 0) {\n observers.forEach((observer) => observer.disconnect());\n observers.length = 0;\n }\n }, VARIANT_UPDATE_DELAY_MS);\n}\n"],"mappings":"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","names":["import_livePreviewEventManager","livePreviewPostMessage"]}
@@ -25,8 +25,10 @@ function updateVariantClasses({
25
25
  const observers = [];
26
26
  const updateElementClasses = (element, dataCslp, observer) => {
27
27
  if (!dataCslp) return;
28
- if (dataCslp.startsWith("v2:") && element.classList.contains("visual-builder__base-field")) {
29
- element.classList.remove("visual-builder__base-field");
28
+ if (dataCslp.startsWith("v2:") && !element.classList.contains("visual-builder__variant-field")) {
29
+ if (element.classList.contains("visual-builder__base-field")) {
30
+ element.classList.remove("visual-builder__base-field");
31
+ }
30
32
  if (highlightVariantFields) {
31
33
  element.classList.add(
32
34
  visualBuilderStyles()["visual-builder__variant-field"],
@@ -48,12 +50,53 @@ function updateVariantClasses({
48
50
  );
49
51
  element.classList.add("visual-builder__disabled-variant-field");
50
52
  }
53
+ if (!observer) return;
51
54
  observer.disconnect();
52
55
  const index = observers.indexOf(observer);
53
56
  if (index > -1) {
54
57
  observers.splice(index, 1);
55
58
  }
56
59
  };
60
+ const addElementClasses = (element) => {
61
+ const dataCslp = element.getAttribute(DATA_CSLP_ATTR_SELECTOR);
62
+ if (!dataCslp) {
63
+ element.childNodes.forEach((child) => {
64
+ if (child instanceof HTMLElement) {
65
+ addElementClasses(child);
66
+ }
67
+ });
68
+ return;
69
+ }
70
+ if (dataCslp.startsWith("v2:") && element.classList.contains("visual-builder__variant-field")) {
71
+ return;
72
+ }
73
+ if (dataCslp.startsWith("v2:") && !element.classList.contains("visual-builder__variant-field")) {
74
+ if (element.classList.contains("visual-builder__base-field")) {
75
+ element.classList.remove("visual-builder__base-field");
76
+ }
77
+ if (highlightVariantFields) {
78
+ element.classList.add(
79
+ visualBuilderStyles()["visual-builder__variant-field"],
80
+ "visual-builder__variant-field"
81
+ );
82
+ } else {
83
+ element.classList.add("visual-builder__variant-field");
84
+ }
85
+ } else if (!dataCslp.startsWith("v2:")) {
86
+ if (element.classList.contains("visual-builder__variant-field")) {
87
+ element.classList.remove(
88
+ visualBuilderStyles()["visual-builder__variant-field"],
89
+ "visual-builder__variant-field"
90
+ );
91
+ }
92
+ element.classList.add("visual-builder__base-field");
93
+ }
94
+ element.childNodes.forEach((child) => {
95
+ if (child instanceof HTMLElement) {
96
+ addElementClasses(child);
97
+ }
98
+ });
99
+ };
57
100
  const elementsWithCslp = document.querySelectorAll(
58
101
  `[${DATA_CSLP_ATTR_SELECTOR}]`
59
102
  );
@@ -61,7 +104,14 @@ function updateVariantClasses({
61
104
  const element = elementNode;
62
105
  const observer = new MutationObserver((mutations) => {
63
106
  mutations.forEach((mutation) => {
64
- if (mutation.type === "attributes" && mutation.attributeName === DATA_CSLP_ATTR_SELECTOR) {
107
+ if (mutation.type === "attributes" && mutation.attributeName === DATA_CSLP_ATTR_SELECTOR || mutation.type === "childList") {
108
+ if (mutation.addedNodes.length > 0) {
109
+ mutation.addedNodes.forEach((node) => {
110
+ if (node instanceof HTMLElement) {
111
+ addElementClasses(node);
112
+ }
113
+ });
114
+ }
65
115
  const dataCslp = element.getAttribute(
66
116
  DATA_CSLP_ATTR_SELECTOR
67
117
  );
@@ -70,7 +120,12 @@ function updateVariantClasses({
70
120
  });
71
121
  });
72
122
  observers.push(observer);
73
- observer.observe(element, { attributes: true });
123
+ observer.observe(element, {
124
+ attributes: true,
125
+ childList: true,
126
+ // Observe direct children
127
+ subtree: true
128
+ });
74
129
  });
75
130
  setTimeout(() => {
76
131
  if (observers.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport livePreviewPostMessage from \"../../livePreview/eventManager/livePreviewEventManager\";\nimport { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from \"../../livePreview/eventManager/livePreviewEventManager.constant\";\nimport { DATA_CSLP_ATTR_SELECTOR } from \"../utils/constants\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\n\nconst VARIANT_UPDATE_DELAY_MS: Readonly<number> = 8000;\n\ntype OnAudienceModeVariantPatchUpdate = {\n highlightVariantFields: boolean;\n expectedCSLPValues: Record<\"variant\" | \"base\", string>;\n};\n\n/**\n * Registers a post message event listener for updating the variant / base classes in the live preview for audience mode.\n */\nexport function useRecalculateVariantDataCSLPValues(): void {\n livePreviewPostMessage?.on<OnAudienceModeVariantPatchUpdate>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.VARIANT_PATCH,\n (event) => {\n if (VisualBuilder.VisualBuilderGlobalState.value.audienceMode) {\n updateVariantClasses(event.data);\n }\n }\n );\n}\nfunction updateVariantClasses({\n highlightVariantFields,\n expectedCSLPValues,\n}: OnAudienceModeVariantPatchUpdate): void {\n const variant = VisualBuilder.VisualBuilderGlobalState.value.variant;\n const observers: MutationObserver[] = [];\n\n // Helper function to update element classes\n const updateElementClasses = (\n element: HTMLElement,\n dataCslp: string,\n observer: MutationObserver\n ) => {\n if (!dataCslp) return;\n\n if (\n dataCslp.startsWith(\"v2:\") &&\n element.classList.contains(\"visual-builder__base-field\")\n ) {\n element.classList.remove(\"visual-builder__base-field\");\n if (highlightVariantFields) {\n element.classList.add(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n } else {\n element.classList.add(\"visual-builder__variant-field\");\n }\n } else if (\n !dataCslp.startsWith(\"v2:\") &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n element.classList.add(\"visual-builder__base-field\");\n } else if (\n dataCslp.startsWith(\"v2:\") &&\n variant &&\n !dataCslp.includes(variant) &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n element.classList.add(\"visual-builder__disabled-variant-field\");\n }\n\n // Disconnect this observer after processing\n observer.disconnect();\n const index = observers.indexOf(observer);\n if (index > -1) {\n observers.splice(index, 1);\n }\n };\n\n // Create a separate observer for each element\n const elementsWithCslp = document.querySelectorAll(\n `[${DATA_CSLP_ATTR_SELECTOR}]`\n );\n\n elementsWithCslp.forEach((elementNode) => {\n const element = elementNode as HTMLElement;\n\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (\n mutation.type === \"attributes\" &&\n mutation.attributeName === DATA_CSLP_ATTR_SELECTOR\n ) {\n const dataCslp = element.getAttribute(\n DATA_CSLP_ATTR_SELECTOR\n );\n updateElementClasses(element, dataCslp || \"\", observer);\n }\n });\n });\n\n observers.push(observer);\n observer.observe(element, { attributes: true });\n });\n\n setTimeout(() => {\n if (observers.length > 0) {\n observers.forEach((observer) => observer.disconnect());\n observers.length = 0;\n }\n }, VARIANT_UPDATE_DELAY_MS);\n}\n"],"mappings":";;;AAAA,SAAS,qBAAqB;AAC9B,OAAO,4BAA4B;AACnC,SAAS,wCAAwC;AACjD,SAAS,+BAA+B;AACxC,SAAS,2BAA2B;AAEpC,IAAM,0BAA4C;AAU3C,SAAS,sCAA4C;AACxD,0BAAwB;AAAA,IACpB,iCAAiC;AAAA,IACjC,CAAC,UAAU;AACP,UAAI,cAAc,yBAAyB,MAAM,cAAc;AAC3D,6BAAqB,MAAM,IAAI;AAAA,MACnC;AAAA,IACJ;AAAA,EACJ;AACJ;AACA,SAAS,qBAAqB;AAAA,EAC1B;AAAA,EACA;AACJ,GAA2C;AACvC,QAAM,UAAU,cAAc,yBAAyB,MAAM;AAC7D,QAAM,YAAgC,CAAC;AAGvC,QAAM,uBAAuB,CACzB,SACA,UACA,aACC;AACD,QAAI,CAAC,SAAU;AAEf,QACI,SAAS,WAAW,KAAK,KACzB,QAAQ,UAAU,SAAS,4BAA4B,GACzD;AACE,cAAQ,UAAU,OAAO,4BAA4B;AACrD,UAAI,wBAAwB;AACxB,gBAAQ,UAAU;AAAA,UACd,oBAAoB,EAAE,+BAA+B;AAAA,UACrD;AAAA,QACJ;AAAA,MACJ,OAAO;AACH,gBAAQ,UAAU,IAAI,+BAA+B;AAAA,MACzD;AAAA,IACJ,WACI,CAAC,SAAS,WAAW,KAAK,KAC1B,QAAQ,UAAU,SAAS,+BAA+B,GAC5D;AACE,cAAQ,UAAU;AAAA,QACd,oBAAoB,EAAE,+BAA+B;AAAA,QACrD;AAAA,MACJ;AACA,cAAQ,UAAU,IAAI,4BAA4B;AAAA,IACtD,WACI,SAAS,WAAW,KAAK,KACzB,WACA,CAAC,SAAS,SAAS,OAAO,KAC1B,QAAQ,UAAU,SAAS,+BAA+B,GAC5D;AACE,cAAQ,UAAU;AAAA,QACd,oBAAoB,EAAE,+BAA+B;AAAA,QACrD;AAAA,MACJ;AACA,cAAQ,UAAU,IAAI,wCAAwC;AAAA,IAClE;AAGA,aAAS,WAAW;AACpB,UAAM,QAAQ,UAAU,QAAQ,QAAQ;AACxC,QAAI,QAAQ,IAAI;AACZ,gBAAU,OAAO,OAAO,CAAC;AAAA,IAC7B;AAAA,EACJ;AAGA,QAAM,mBAAmB,SAAS;AAAA,IAC9B,IAAI,uBAAuB;AAAA,EAC/B;AAEA,mBAAiB,QAAQ,CAAC,gBAAgB;AACtC,UAAM,UAAU;AAEhB,UAAM,WAAW,IAAI,iBAAiB,CAAC,cAAc;AACjD,gBAAU,QAAQ,CAAC,aAAa;AAC5B,YACI,SAAS,SAAS,gBAClB,SAAS,kBAAkB,yBAC7B;AACE,gBAAM,WAAW,QAAQ;AAAA,YACrB;AAAA,UACJ;AACA,+BAAqB,SAAS,YAAY,IAAI,QAAQ;AAAA,QAC1D;AAAA,MACJ,CAAC;AAAA,IACL,CAAC;AAED,cAAU,KAAK,QAAQ;AACvB,aAAS,QAAQ,SAAS,EAAE,YAAY,KAAK,CAAC;AAAA,EAClD,CAAC;AAED,aAAW,MAAM;AACb,QAAI,UAAU,SAAS,GAAG;AACtB,gBAAU,QAAQ,CAAC,aAAa,SAAS,WAAW,CAAC;AACrD,gBAAU,SAAS;AAAA,IACvB;AAAA,EACJ,GAAG,uBAAuB;AAC9B;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/eventManager/useRecalculateVariantDataCSLPValues.ts"],"sourcesContent":["import { VisualBuilder } from \"..\";\nimport livePreviewPostMessage from \"../../livePreview/eventManager/livePreviewEventManager\";\nimport { LIVE_PREVIEW_POST_MESSAGE_EVENTS } from \"../../livePreview/eventManager/livePreviewEventManager.constant\";\nimport { DATA_CSLP_ATTR_SELECTOR } from \"../utils/constants\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\n\nconst VARIANT_UPDATE_DELAY_MS: Readonly<number> = 8000;\n\ntype OnAudienceModeVariantPatchUpdate = {\n highlightVariantFields: boolean;\n expectedCSLPValues: Record<\"variant\" | \"base\", string>;\n};\n\n/**\n * Registers a post message event listener for updating the variant / base classes in the live preview for audience mode.\n */\nexport function useRecalculateVariantDataCSLPValues(): void {\n livePreviewPostMessage?.on<OnAudienceModeVariantPatchUpdate>(\n LIVE_PREVIEW_POST_MESSAGE_EVENTS.VARIANT_PATCH,\n (event) => {\n if (VisualBuilder.VisualBuilderGlobalState.value.audienceMode) {\n updateVariantClasses(event.data);\n }\n }\n );\n}\nfunction updateVariantClasses({\n highlightVariantFields,\n expectedCSLPValues,\n}: OnAudienceModeVariantPatchUpdate): void {\n const variant = VisualBuilder.VisualBuilderGlobalState.value.variant;\n const observers: MutationObserver[] = [];\n\n // Helper function to update element classes\n const updateElementClasses = (\n element: HTMLElement,\n dataCslp: string,\n observer?: MutationObserver\n ) => {\n if (!dataCslp) return;\n\n if (\n dataCslp.startsWith(\"v2:\") &&\n !element.classList.contains(\"visual-builder__variant-field\")\n ) {\n if (element.classList.contains(\"visual-builder__base-field\")) {\n element.classList.remove(\"visual-builder__base-field\");\n }\n if (highlightVariantFields) {\n element.classList.add(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n } else {\n element.classList.add(\"visual-builder__variant-field\");\n }\n } else if (\n !dataCslp.startsWith(\"v2:\") &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n element.classList.add(\"visual-builder__base-field\");\n } else if (\n dataCslp.startsWith(\"v2:\") &&\n variant &&\n !dataCslp.includes(variant) &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n element.classList.add(\"visual-builder__disabled-variant-field\");\n }\n if (!observer) return;\n // Disconnect this observer after processing\n observer.disconnect();\n const index = observers.indexOf(observer);\n if (index > -1) {\n observers.splice(index, 1);\n }\n };\n\n const addElementClasses = (element: HTMLElement) => {\n const dataCslp = element.getAttribute(DATA_CSLP_ATTR_SELECTOR);\n\n if (!dataCslp) {\n //recursive call for child nodes\n element.childNodes.forEach((child) => {\n if (child instanceof HTMLElement) {\n addElementClasses(child);\n }\n });\n return;\n }\n //if element might have been updated by another observer\n if (\n dataCslp.startsWith(\"v2:\") &&\n element.classList.contains(\"visual-builder__variant-field\")\n ) {\n return;\n }\n // if element has not given variant/base class\n if (\n dataCslp.startsWith(\"v2:\") &&\n !element.classList.contains(\"visual-builder__variant-field\")\n ) {\n if (element.classList.contains(\"visual-builder__base-field\")) {\n element.classList.remove(\"visual-builder__base-field\");\n }\n if (highlightVariantFields) {\n element.classList.add(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n } else {\n element.classList.add(\"visual-builder__variant-field\");\n }\n } else if (!dataCslp.startsWith(\"v2:\")) {\n if (element.classList.contains(\"visual-builder__variant-field\")) {\n element.classList.remove(\n visualBuilderStyles()[\"visual-builder__variant-field\"],\n \"visual-builder__variant-field\"\n );\n }\n element.classList.add(\"visual-builder__base-field\");\n }\n\n //recursive call for child nodes\n element.childNodes.forEach((child) => {\n if (child instanceof HTMLElement) {\n addElementClasses(child);\n }\n });\n };\n\n // Create a separate observer for each element\n const elementsWithCslp = document.querySelectorAll(\n `[${DATA_CSLP_ATTR_SELECTOR}]`\n );\n elementsWithCslp.forEach((elementNode) => {\n const element = elementNode as HTMLElement;\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (\n (mutation.type === \"attributes\" &&\n mutation.attributeName === DATA_CSLP_ATTR_SELECTOR) ||\n mutation.type === \"childList\"\n ) {\n if (mutation.addedNodes.length > 0) {\n mutation.addedNodes.forEach((node) => {\n if (node instanceof HTMLElement) {\n addElementClasses(node);\n }\n });\n }\n const dataCslp = element.getAttribute(\n DATA_CSLP_ATTR_SELECTOR\n );\n updateElementClasses(element, dataCslp || \"\", observer);\n }\n });\n });\n\n observers.push(observer);\n observer.observe(element, {\n attributes: true,\n childList: true, // Observe direct children\n subtree: true,\n });\n });\n\n setTimeout(() => {\n if (observers.length > 0) {\n observers.forEach((observer) => observer.disconnect());\n observers.length = 0;\n }\n }, VARIANT_UPDATE_DELAY_MS);\n}\n"],"mappings":"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","names":[]}
@@ -38,8 +38,11 @@ var import_preact = require("preact");
38
38
  var import_addInstanceButton = __toESM(require("../components/addInstanceButton.cjs"), 1);
39
39
  var import_jsx_runtime = require("preact/jsx-runtime");
40
40
  function generateAddInstanceButton({
41
- fieldSchema,
42
41
  value,
42
+ fieldSchema,
43
+ fieldMetadata,
44
+ index,
45
+ loading,
43
46
  onClick,
44
47
  label
45
48
  }) {
@@ -48,10 +51,13 @@ function generateAddInstanceButton({
48
51
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
49
52
  import_addInstanceButton.default,
50
53
  {
54
+ loading,
55
+ index,
51
56
  value,
52
57
  label,
53
58
  onClick,
54
- fieldSchema
59
+ fieldSchema,
60
+ fieldMetadata
55
61
  }
56
62
  ),
57
63
  wrapper
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/generators/generateAddInstanceButtons.tsx"],"sourcesContent":["import { render } from \"preact\";\nimport AddInstanceButtonComponent from \"../components/addInstanceButton\";\nimport { ISchemaFieldMap } from \"../utils/types/index.types\";\n\n/**\n * Generates a button element, when clicked, triggers the provided callback function.\n * @param onClickCallback - The function to be called when the button is clicked.\n * @returns The generated button element.\n */\nexport function generateAddInstanceButton({\n fieldSchema,\n value,\n onClick,\n label,\n}: {\n value: any;\n onClick: (event: MouseEvent) => void;\n label?: string | undefined;\n fieldSchema: ISchemaFieldMap | undefined;\n}): HTMLButtonElement {\n const wrapper = document.createDocumentFragment();\n\n render(\n <AddInstanceButtonComponent\n value={value}\n label={label}\n onClick={onClick}\n fieldSchema={fieldSchema}\n />,\n wrapper\n );\n\n const button = wrapper.children[0] as HTMLButtonElement;\n return button;\n}\n\n/**\n * Returns an array of HTMLButtonElement instances that can be used to add new instances to the visual builder.\n * @param visualBuilderContainer - The HTMLDivElement that contains the visual builder.\n * @param getAllButtons - If true, returns all add instance buttons. If false, returns only the previous and next buttons.\n * @returns An array of HTMLButtonElement instances or null if there are less than 2 buttons.\n */\nexport function getAddInstanceButtons(\n visualBuilderContainer: HTMLDivElement,\n getAllButtons = false\n): HTMLButtonElement[] | [HTMLButtonElement, HTMLButtonElement] | null {\n const buttons = visualBuilderContainer.getElementsByClassName(\n \"visual-builder__add-button\"\n );\n\n if (getAllButtons) {\n return Array.from(buttons) as HTMLButtonElement[];\n }\n\n if (buttons.length < 2) {\n return null;\n }\n\n const previousButton = buttons[0] as HTMLButtonElement;\n const nextButton = buttons[1] as HTMLButtonElement;\n\n return [previousButton, nextButton];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB;AACvB,+BAAuC;AAsB/B;AAdD,SAAS,0BAA0B;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAKsB;AAClB,QAAM,UAAU,SAAS,uBAAuB;AAEhD;AAAA,IACI;AAAA,MAAC,yBAAAA;AAAA,MAAA;AAAA,QACG;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,SAAS,QAAQ,SAAS,CAAC;AACjC,SAAO;AACX;AAQO,SAAS,sBACZ,wBACA,gBAAgB,OACmD;AACnE,QAAM,UAAU,uBAAuB;AAAA,IACnC;AAAA,EACJ;AAEA,MAAI,eAAe;AACf,WAAO,MAAM,KAAK,OAAO;AAAA,EAC7B;AAEA,MAAI,QAAQ,SAAS,GAAG;AACpB,WAAO;AAAA,EACX;AAEA,QAAM,iBAAiB,QAAQ,CAAC;AAChC,QAAM,aAAa,QAAQ,CAAC;AAE5B,SAAO,CAAC,gBAAgB,UAAU;AACtC;","names":["AddInstanceButtonComponent"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/generators/generateAddInstanceButtons.tsx"],"sourcesContent":["import React from \"preact/compat\";\nimport { render } from \"preact\";\nimport AddInstanceButtonComponent from \"../components/addInstanceButton\";\nimport { ISchemaFieldMap } from \"../utils/types/index.types\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { Signal } from \"@preact/signals\";\n\n/**\n * Generates a button element, when clicked, sends the add instance message and\n * then calls the provided callback function.\n * @param onClickCallback - The function to be called when the button is clicked.\n * @returns The generated button element.\n */\nexport function generateAddInstanceButton({\n value,\n fieldSchema,\n fieldMetadata,\n index,\n loading,\n onClick,\n label,\n}: {\n fieldSchema: ISchemaFieldMap | undefined;\n value: any;\n fieldMetadata: CslpData;\n index: number;\n loading: Signal<boolean>;\n onClick: (event: MouseEvent) => void;\n label?: string | undefined;\n}): HTMLButtonElement {\n const wrapper = document.createDocumentFragment();\n\n render(\n <AddInstanceButtonComponent\n loading={loading}\n index={index}\n value={value}\n label={label}\n onClick={onClick}\n fieldSchema={fieldSchema}\n fieldMetadata={fieldMetadata}\n />,\n wrapper\n );\n\n const button = wrapper.children[0] as HTMLButtonElement;\n return button;\n}\n\n/**\n * Returns an array of HTMLButtonElement instances that can be used to add new instances to the visual builder.\n * @param visualBuilderContainer - The HTMLDivElement that contains the visual builder.\n * @param getAllButtons - If true, returns all add instance buttons. If false, returns only the previous and next buttons.\n * @returns An array of HTMLButtonElement instances or null if there are less than 2 buttons.\n */\nexport function getAddInstanceButtons(\n visualBuilderContainer: HTMLDivElement,\n getAllButtons = false\n): HTMLButtonElement[] | [HTMLButtonElement, HTMLButtonElement] | null {\n const buttons = visualBuilderContainer.getElementsByClassName(\n \"visual-builder__add-button\"\n );\n\n if (getAllButtons) {\n return Array.from(buttons) as HTMLButtonElement[];\n }\n\n if (buttons.length < 2) {\n return null;\n }\n\n const previousButton = buttons[0] as HTMLButtonElement;\n const nextButton = buttons[1] as HTMLButtonElement;\n\n return [previousButton, nextButton];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAAuB;AACvB,+BAAuC;AA+B/B;AApBD,SAAS,0BAA0B;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAQsB;AAClB,QAAM,UAAU,SAAS,uBAAuB;AAEhD;AAAA,IACI;AAAA,MAAC,yBAAAA;AAAA,MAAA;AAAA,QACG;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,SAAS,QAAQ,SAAS,CAAC;AACjC,SAAO;AACX;AAQO,SAAS,sBACZ,wBACA,gBAAgB,OACmD;AACnE,QAAM,UAAU,uBAAuB;AAAA,IACnC;AAAA,EACJ;AAEA,MAAI,eAAe;AACf,WAAO,MAAM,KAAK,OAAO;AAAA,EAC7B;AAEA,MAAI,QAAQ,SAAS,GAAG;AACpB,WAAO;AAAA,EACX;AAEA,QAAM,iBAAiB,QAAQ,CAAC;AAChC,QAAM,aAAa,QAAQ,CAAC;AAE5B,SAAO,CAAC,gBAAgB,UAAU;AACtC;","names":["AddInstanceButtonComponent"]}
@@ -1,16 +1,22 @@
1
1
  import { ISchemaFieldMap } from '../utils/types/index.types.cjs';
2
+ import { CslpData } from '../../cslp/types/cslp.types.cjs';
3
+ import { Signal } from '@preact/signals';
2
4
  import '../../cms/types/contentTypeSchema.types.cjs';
3
5
 
4
6
  /**
5
- * Generates a button element, when clicked, triggers the provided callback function.
7
+ * Generates a button element, when clicked, sends the add instance message and
8
+ * then calls the provided callback function.
6
9
  * @param onClickCallback - The function to be called when the button is clicked.
7
10
  * @returns The generated button element.
8
11
  */
9
- declare function generateAddInstanceButton({ fieldSchema, value, onClick, label, }: {
12
+ declare function generateAddInstanceButton({ value, fieldSchema, fieldMetadata, index, loading, onClick, label, }: {
13
+ fieldSchema: ISchemaFieldMap | undefined;
10
14
  value: any;
15
+ fieldMetadata: CslpData;
16
+ index: number;
17
+ loading: Signal<boolean>;
11
18
  onClick: (event: MouseEvent) => void;
12
19
  label?: string | undefined;
13
- fieldSchema: ISchemaFieldMap | undefined;
14
20
  }): HTMLButtonElement;
15
21
  /**
16
22
  * Returns an array of HTMLButtonElement instances that can be used to add new instances to the visual builder.
@@ -1,16 +1,22 @@
1
1
  import { ISchemaFieldMap } from '../utils/types/index.types.js';
2
+ import { CslpData } from '../../cslp/types/cslp.types.js';
3
+ import { Signal } from '@preact/signals';
2
4
  import '../../cms/types/contentTypeSchema.types.js';
3
5
 
4
6
  /**
5
- * Generates a button element, when clicked, triggers the provided callback function.
7
+ * Generates a button element, when clicked, sends the add instance message and
8
+ * then calls the provided callback function.
6
9
  * @param onClickCallback - The function to be called when the button is clicked.
7
10
  * @returns The generated button element.
8
11
  */
9
- declare function generateAddInstanceButton({ fieldSchema, value, onClick, label, }: {
12
+ declare function generateAddInstanceButton({ value, fieldSchema, fieldMetadata, index, loading, onClick, label, }: {
13
+ fieldSchema: ISchemaFieldMap | undefined;
10
14
  value: any;
15
+ fieldMetadata: CslpData;
16
+ index: number;
17
+ loading: Signal<boolean>;
11
18
  onClick: (event: MouseEvent) => void;
12
19
  label?: string | undefined;
13
- fieldSchema: ISchemaFieldMap | undefined;
14
20
  }): HTMLButtonElement;
15
21
  /**
16
22
  * Returns an array of HTMLButtonElement instances that can be used to add new instances to the visual builder.
@@ -5,8 +5,11 @@ import { render } from "preact";
5
5
  import AddInstanceButtonComponent from "../components/addInstanceButton.js";
6
6
  import { jsx } from "preact/jsx-runtime";
7
7
  function generateAddInstanceButton({
8
- fieldSchema,
9
8
  value,
9
+ fieldSchema,
10
+ fieldMetadata,
11
+ index,
12
+ loading,
10
13
  onClick,
11
14
  label
12
15
  }) {
@@ -15,10 +18,13 @@ function generateAddInstanceButton({
15
18
  /* @__PURE__ */ jsx(
16
19
  AddInstanceButtonComponent,
17
20
  {
21
+ loading,
22
+ index,
18
23
  value,
19
24
  label,
20
25
  onClick,
21
- fieldSchema
26
+ fieldSchema,
27
+ fieldMetadata
22
28
  }
23
29
  ),
24
30
  wrapper
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/generators/generateAddInstanceButtons.tsx"],"sourcesContent":["import { render } from \"preact\";\nimport AddInstanceButtonComponent from \"../components/addInstanceButton\";\nimport { ISchemaFieldMap } from \"../utils/types/index.types\";\n\n/**\n * Generates a button element, when clicked, triggers the provided callback function.\n * @param onClickCallback - The function to be called when the button is clicked.\n * @returns The generated button element.\n */\nexport function generateAddInstanceButton({\n fieldSchema,\n value,\n onClick,\n label,\n}: {\n value: any;\n onClick: (event: MouseEvent) => void;\n label?: string | undefined;\n fieldSchema: ISchemaFieldMap | undefined;\n}): HTMLButtonElement {\n const wrapper = document.createDocumentFragment();\n\n render(\n <AddInstanceButtonComponent\n value={value}\n label={label}\n onClick={onClick}\n fieldSchema={fieldSchema}\n />,\n wrapper\n );\n\n const button = wrapper.children[0] as HTMLButtonElement;\n return button;\n}\n\n/**\n * Returns an array of HTMLButtonElement instances that can be used to add new instances to the visual builder.\n * @param visualBuilderContainer - The HTMLDivElement that contains the visual builder.\n * @param getAllButtons - If true, returns all add instance buttons. If false, returns only the previous and next buttons.\n * @returns An array of HTMLButtonElement instances or null if there are less than 2 buttons.\n */\nexport function getAddInstanceButtons(\n visualBuilderContainer: HTMLDivElement,\n getAllButtons = false\n): HTMLButtonElement[] | [HTMLButtonElement, HTMLButtonElement] | null {\n const buttons = visualBuilderContainer.getElementsByClassName(\n \"visual-builder__add-button\"\n );\n\n if (getAllButtons) {\n return Array.from(buttons) as HTMLButtonElement[];\n }\n\n if (buttons.length < 2) {\n return null;\n }\n\n const previousButton = buttons[0] as HTMLButtonElement;\n const nextButton = buttons[1] as HTMLButtonElement;\n\n return [previousButton, nextButton];\n}\n"],"mappings":";;;AAAA,SAAS,cAAc;AACvB,OAAO,gCAAgC;AAsB/B;AAdD,SAAS,0BAA0B;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAKsB;AAClB,QAAM,UAAU,SAAS,uBAAuB;AAEhD;AAAA,IACI;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,SAAS,QAAQ,SAAS,CAAC;AACjC,SAAO;AACX;AAQO,SAAS,sBACZ,wBACA,gBAAgB,OACmD;AACnE,QAAM,UAAU,uBAAuB;AAAA,IACnC;AAAA,EACJ;AAEA,MAAI,eAAe;AACf,WAAO,MAAM,KAAK,OAAO;AAAA,EAC7B;AAEA,MAAI,QAAQ,SAAS,GAAG;AACpB,WAAO;AAAA,EACX;AAEA,QAAM,iBAAiB,QAAQ,CAAC;AAChC,QAAM,aAAa,QAAQ,CAAC;AAE5B,SAAO,CAAC,gBAAgB,UAAU;AACtC;","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/generators/generateAddInstanceButtons.tsx"],"sourcesContent":["import React from \"preact/compat\";\nimport { render } from \"preact\";\nimport AddInstanceButtonComponent from \"../components/addInstanceButton\";\nimport { ISchemaFieldMap } from \"../utils/types/index.types\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { Signal } from \"@preact/signals\";\n\n/**\n * Generates a button element, when clicked, sends the add instance message and\n * then calls the provided callback function.\n * @param onClickCallback - The function to be called when the button is clicked.\n * @returns The generated button element.\n */\nexport function generateAddInstanceButton({\n value,\n fieldSchema,\n fieldMetadata,\n index,\n loading,\n onClick,\n label,\n}: {\n fieldSchema: ISchemaFieldMap | undefined;\n value: any;\n fieldMetadata: CslpData;\n index: number;\n loading: Signal<boolean>;\n onClick: (event: MouseEvent) => void;\n label?: string | undefined;\n}): HTMLButtonElement {\n const wrapper = document.createDocumentFragment();\n\n render(\n <AddInstanceButtonComponent\n loading={loading}\n index={index}\n value={value}\n label={label}\n onClick={onClick}\n fieldSchema={fieldSchema}\n fieldMetadata={fieldMetadata}\n />,\n wrapper\n );\n\n const button = wrapper.children[0] as HTMLButtonElement;\n return button;\n}\n\n/**\n * Returns an array of HTMLButtonElement instances that can be used to add new instances to the visual builder.\n * @param visualBuilderContainer - The HTMLDivElement that contains the visual builder.\n * @param getAllButtons - If true, returns all add instance buttons. If false, returns only the previous and next buttons.\n * @returns An array of HTMLButtonElement instances or null if there are less than 2 buttons.\n */\nexport function getAddInstanceButtons(\n visualBuilderContainer: HTMLDivElement,\n getAllButtons = false\n): HTMLButtonElement[] | [HTMLButtonElement, HTMLButtonElement] | null {\n const buttons = visualBuilderContainer.getElementsByClassName(\n \"visual-builder__add-button\"\n );\n\n if (getAllButtons) {\n return Array.from(buttons) as HTMLButtonElement[];\n }\n\n if (buttons.length < 2) {\n return null;\n }\n\n const previousButton = buttons[0] as HTMLButtonElement;\n const nextButton = buttons[1] as HTMLButtonElement;\n\n return [previousButton, nextButton];\n}\n"],"mappings":";;;AACA,SAAS,cAAc;AACvB,OAAO,gCAAgC;AA+B/B;AApBD,SAAS,0BAA0B;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAQsB;AAClB,QAAM,UAAU,SAAS,uBAAuB;AAEhD;AAAA,IACI;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACJ;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,SAAS,QAAQ,SAAS,CAAC;AACjC,SAAO;AACX;AAQO,SAAS,sBACZ,wBACA,gBAAgB,OACmD;AACnE,QAAM,UAAU,uBAAuB;AAAA,IACnC;AAAA,EACJ;AAEA,MAAI,eAAe;AACf,WAAO,MAAM,KAAK,OAAO;AAAA,EAC7B;AAEA,MAAI,QAAQ,SAAS,GAAG;AACpB,WAAO;AAAA,EACX;AAEA,QAAM,iBAAiB,QAAQ,CAAC;AAChC,QAAM,aAAa,QAAQ,CAAC;AAE5B,SAAO,CAAC,gBAAgB,UAAU;AACtC;","names":[]}
@@ -166,6 +166,11 @@ function sendFieldEvent(options) {
166
166
  }
167
167
  }
168
168
  function hideOverlay(params) {
169
+ const focusElementObserver = import__.VisualBuilder.VisualBuilderGlobalState.value.focusElementObserver;
170
+ if (focusElementObserver) {
171
+ focusElementObserver.disconnect();
172
+ import__.VisualBuilder.VisualBuilderGlobalState.value.focusElementObserver = null;
173
+ }
169
174
  hideFocusOverlay({
170
175
  visualBuilderContainer: params.visualBuilderContainer,
171
176
  visualBuilderOverlayWrapper: params.visualBuilderOverlayWrapper,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/generators/generateOverlay.tsx"],"sourcesContent":["import { extractDetailsFromCslp } from \"../../cslp/cslpdata\";\nimport { cleanIndividualFieldResidual } from \"../utils/handleIndividualFields\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\n\nimport { VisualBuilder } from \"..\";\nimport EventListenerHandlerParams from \"../listeners/types\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { FieldDataType } from \"../utils/types/index.types\";\nimport { getFieldType } from \"../utils/getFieldType\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { getMultilinePlaintext } from \"../utils/getMultilinePlaintext\";\nimport { showAllHiddenHighlightedCommentIcons } from \"./generateHighlightedComment\";\n\n/**\n * Adds a focus overlay to the target element.\n * @param targetElement - The element to add the focus overlay to.\n * @param focusOverlayWrapper - The HTMLDivElement that contains the focus overlay.\n * @returns void\n */\nexport function addFocusOverlay(\n targetElement: Element,\n focusOverlayWrapper: HTMLDivElement,\n disabled?: boolean\n): void {\n const targetElementDimension = targetElement.getBoundingClientRect();\n if (\n targetElementDimension.width === 0 ||\n targetElementDimension.height === 0\n )\n return;\n focusOverlayWrapper.classList.add(\"visible\");\n\n const distanceFromTop = targetElementDimension.top + window.scrollY;\n const topOverlayDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--top\"\n );\n\n if (topOverlayDOM) {\n topOverlayDOM.style.top = \"0\";\n topOverlayDOM.style.left = \"0\";\n topOverlayDOM.style.width = \"100%\";\n topOverlayDOM.style.height = `calc(${distanceFromTop}px)`;\n }\n\n const bottomOverlayDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--bottom\"\n );\n if (bottomOverlayDOM) {\n bottomOverlayDOM.style.top = `${\n targetElementDimension.bottom + window.scrollY\n }px`;\n bottomOverlayDOM.style.height = `${\n window.document.body.scrollHeight -\n targetElementDimension.bottom -\n window.scrollY\n }px`;\n bottomOverlayDOM.style.left = \"0\";\n bottomOverlayDOM.style.width = \"100%\";\n }\n\n const leftOverlayDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--left\"\n );\n if (leftOverlayDOM) {\n leftOverlayDOM.style.left = \"0\";\n leftOverlayDOM.style.top = `${distanceFromTop}px`;\n leftOverlayDOM.style.height = `${targetElementDimension.height}px`;\n leftOverlayDOM.style.width = `${targetElementDimension.left}px`;\n }\n\n const rightOverlayDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--right\"\n );\n if (rightOverlayDOM) {\n rightOverlayDOM.style.left = `${targetElementDimension.right}px`;\n rightOverlayDOM.style.top = `${distanceFromTop}px`;\n rightOverlayDOM.style.height = `${targetElementDimension.height}px`;\n rightOverlayDOM.style.width = `${\n document.documentElement.clientWidth - targetElementDimension.right\n }px`;\n }\n\n const outlineDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--outline\"\n );\n if (outlineDOM) {\n outlineDOM.style.top = `${\n targetElementDimension.top + window.scrollY\n }px`;\n outlineDOM.style.height = `${targetElementDimension.height}px`;\n outlineDOM.style.width = `${targetElementDimension.width}px`;\n outlineDOM.style.left = `${targetElementDimension.left}px`;\n outlineDOM.style.outlineColor = disabled ? \"#909090\" : \"#715cdd\";\n }\n}\n\n/**\n * Hides the focus overlay and performs necessary cleanup actions when the user clicks outside of the focused element.\n * @param event - The mouse event that triggered the function.\n * @param elements - An object containing references to the focus overlay wrapper, the previously selected editable DOM element, and the visual builder wrapper.\n */\nexport function hideFocusOverlay(elements: HideOverlayParams): void {\n const {\n visualBuilderContainer,\n visualBuilderOverlayWrapper,\n focusedToolbar,\n resizeObserver,\n noTrigger,\n } = elements;\n\n if (visualBuilderOverlayWrapper) {\n visualBuilderOverlayWrapper.classList.remove(\"visible\");\n\n // Cleanup overlay styles: Top, Right, Bottom, Left & Outline\n visualBuilderOverlayWrapper.childNodes.forEach((childNode) => {\n if (childNode instanceof Element) {\n childNode.removeAttribute(\"style\");\n }\n });\n\n if (!noTrigger) {\n sendFieldEvent({\n visualBuilderContainer,\n eventType: VisualBuilderPostMessageEvents.UPDATE_FIELD,\n });\n } else {\n const { previousSelectedEditableDOM, focusFieldValue } =\n VisualBuilder.VisualBuilderGlobalState.value || {};\n if (\n previousSelectedEditableDOM &&\n \"innerText\" in previousSelectedEditableDOM &&\n focusFieldValue != null\n ) {\n previousSelectedEditableDOM.innerText = focusFieldValue;\n }\n }\n VisualBuilder.VisualBuilderGlobalState.value.focusFieldValue = null;\n cleanIndividualFieldResidual({\n overlayWrapper: visualBuilderOverlayWrapper,\n visualBuilderContainer: visualBuilderContainer,\n focusedToolbar: focusedToolbar,\n resizeObserver: resizeObserver,\n });\n }\n}\ninterface ISendFieldEventParams {\n visualBuilderContainer: HTMLElement | null;\n eventType:\n | VisualBuilderPostMessageEvents.UPDATE_FIELD\n | VisualBuilderPostMessageEvents.SYNC_FIELD;\n}\nexport function sendFieldEvent(options: ISendFieldEventParams): void {\n const { visualBuilderContainer, eventType } = options;\n const previousSelectedEditableDOM =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n const pseudoEditableElement = visualBuilderContainer?.querySelector(\n \"div.visual-builder__pseudo-editable-element\"\n );\n if (\n previousSelectedEditableDOM &&\n (previousSelectedEditableDOM.hasAttribute(\"contenteditable\") ||\n pseudoEditableElement)\n ) {\n const actualEditedElement =\n pseudoEditableElement ||\n (previousSelectedEditableDOM as HTMLElement);\n\n let data =\n \"innerText\" in actualEditedElement\n ? actualEditedElement.innerText\n : actualEditedElement.textContent;\n\n const fieldMetadata = extractDetailsFromCslp(\n previousSelectedEditableDOM.getAttribute(\"data-cslp\") as string\n );\n\n FieldSchemaMap.getFieldSchema(\n fieldMetadata.content_type_uid,\n fieldMetadata.fieldPath\n )\n .then((fieldSchema) => {\n if (\n fieldSchema &&\n eventType === VisualBuilderPostMessageEvents.UPDATE_FIELD\n ) {\n const fieldType = getFieldType(fieldSchema);\n if (fieldType && fieldType === FieldDataType.MULTILINE) {\n data = getMultilinePlaintext(actualEditedElement);\n (actualEditedElement as HTMLElement).innerText =\n data as string;\n }\n }\n })\n .finally(() => {\n visualBuilderPostMessage?.send(eventType, {\n data,\n fieldMetadata,\n });\n });\n }\n}\ninterface HideOverlayParams\n extends Pick<\n EventListenerHandlerParams,\n \"visualBuilderContainer\" | \"focusedToolbar\" | \"resizeObserver\"\n > {\n visualBuilderOverlayWrapper: HTMLDivElement | null;\n noTrigger?: boolean;\n}\n\nexport function hideOverlay(params: HideOverlayParams): void {\n hideFocusOverlay({\n visualBuilderContainer: params.visualBuilderContainer,\n visualBuilderOverlayWrapper: params.visualBuilderOverlayWrapper,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n noTrigger: Boolean(params.noTrigger),\n });\n showAllHiddenHighlightedCommentIcons();\n if (\n !VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM\n )\n return;\n params.resizeObserver.unobserve(\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM\n );\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM =\n null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAuC;AACvC,oCAA6C;AAC7C,sCAAqC;AACrC,yBAA+C;AAE/C,eAA8B;AAE9B,4BAA+B;AAC/B,mBAA8B;AAC9B,0BAA6B;AAE7B,mCAAsC;AACtC,wCAAqD;AAQ9C,SAAS,gBACZ,eACA,qBACA,UACI;AACJ,QAAM,yBAAyB,cAAc,sBAAsB;AACnE,MACI,uBAAuB,UAAU,KACjC,uBAAuB,WAAW;AAElC;AACJ,sBAAoB,UAAU,IAAI,SAAS;AAE3C,QAAM,kBAAkB,uBAAuB,MAAM,OAAO;AAC5D,QAAM,gBAAgB,oBAAoB;AAAA,IACtC;AAAA,EACJ;AAEA,MAAI,eAAe;AACf,kBAAc,MAAM,MAAM;AAC1B,kBAAc,MAAM,OAAO;AAC3B,kBAAc,MAAM,QAAQ;AAC5B,kBAAc,MAAM,SAAS,QAAQ,eAAe;AAAA,EACxD;AAEA,QAAM,mBAAmB,oBAAoB;AAAA,IACzC;AAAA,EACJ;AACA,MAAI,kBAAkB;AAClB,qBAAiB,MAAM,MAAM,GACzB,uBAAuB,SAAS,OAAO,OAC3C;AACA,qBAAiB,MAAM,SAAS,GAC5B,OAAO,SAAS,KAAK,eACrB,uBAAuB,SACvB,OAAO,OACX;AACA,qBAAiB,MAAM,OAAO;AAC9B,qBAAiB,MAAM,QAAQ;AAAA,EACnC;AAEA,QAAM,iBAAiB,oBAAoB;AAAA,IACvC;AAAA,EACJ;AACA,MAAI,gBAAgB;AAChB,mBAAe,MAAM,OAAO;AAC5B,mBAAe,MAAM,MAAM,GAAG,eAAe;AAC7C,mBAAe,MAAM,SAAS,GAAG,uBAAuB,MAAM;AAC9D,mBAAe,MAAM,QAAQ,GAAG,uBAAuB,IAAI;AAAA,EAC/D;AAEA,QAAM,kBAAkB,oBAAoB;AAAA,IACxC;AAAA,EACJ;AACA,MAAI,iBAAiB;AACjB,oBAAgB,MAAM,OAAO,GAAG,uBAAuB,KAAK;AAC5D,oBAAgB,MAAM,MAAM,GAAG,eAAe;AAC9C,oBAAgB,MAAM,SAAS,GAAG,uBAAuB,MAAM;AAC/D,oBAAgB,MAAM,QAAQ,GAC1B,SAAS,gBAAgB,cAAc,uBAAuB,KAClE;AAAA,EACJ;AAEA,QAAM,aAAa,oBAAoB;AAAA,IACnC;AAAA,EACJ;AACA,MAAI,YAAY;AACZ,eAAW,MAAM,MAAM,GACnB,uBAAuB,MAAM,OAAO,OACxC;AACA,eAAW,MAAM,SAAS,GAAG,uBAAuB,MAAM;AAC1D,eAAW,MAAM,QAAQ,GAAG,uBAAuB,KAAK;AACxD,eAAW,MAAM,OAAO,GAAG,uBAAuB,IAAI;AACtD,eAAW,MAAM,eAAe,WAAW,YAAY;AAAA,EAC3D;AACJ;AAOO,SAAS,iBAAiB,UAAmC;AAChE,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI;AAEJ,MAAI,6BAA6B;AAC7B,gCAA4B,UAAU,OAAO,SAAS;AAGtD,gCAA4B,WAAW,QAAQ,CAAC,cAAc;AAC1D,UAAI,qBAAqB,SAAS;AAC9B,kBAAU,gBAAgB,OAAO;AAAA,MACrC;AAAA,IACJ,CAAC;AAED,QAAI,CAAC,WAAW;AACZ,qBAAe;AAAA,QACX;AAAA,QACA,WAAW,kDAA+B;AAAA,MAC9C,CAAC;AAAA,IACL,OAAO;AACH,YAAM,EAAE,6BAA6B,gBAAgB,IACjD,uBAAc,yBAAyB,SAAS,CAAC;AACrD,UACI,+BACA,eAAe,+BACf,mBAAmB,MACrB;AACE,oCAA4B,YAAY;AAAA,MAC5C;AAAA,IACJ;AACA,2BAAc,yBAAyB,MAAM,kBAAkB;AAC/D,oEAA6B;AAAA,MACzB,gBAAgB;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AAOO,SAAS,eAAe,SAAsC;AACjE,QAAM,EAAE,wBAAwB,UAAU,IAAI;AAC9C,QAAM,8BACF,uBAAc,yBAAyB,MAClC;AACT,QAAM,wBAAwB,wBAAwB;AAAA,IAClD;AAAA,EACJ;AACA,MACI,gCACC,4BAA4B,aAAa,iBAAiB,KACvD,wBACN;AACE,UAAM,sBACF,yBACC;AAEL,QAAI,OACA,eAAe,sBACT,oBAAoB,YACpB,oBAAoB;AAE9B,UAAM,oBAAgB;AAAA,MAClB,4BAA4B,aAAa,WAAW;AAAA,IACxD;AAEA,yCAAe;AAAA,MACX,cAAc;AAAA,MACd,cAAc;AAAA,IAClB,EACK,KAAK,CAAC,gBAAgB;AACnB,UACI,eACA,cAAc,kDAA+B,cAC/C;AACE,cAAM,gBAAY,kCAAa,WAAW;AAC1C,YAAI,aAAa,cAAc,2BAAc,WAAW;AACpD,qBAAO,oDAAsB,mBAAmB;AAChD,UAAC,oBAAoC,YACjC;AAAA,QACR;AAAA,MACJ;AAAA,IACJ,CAAC,EACA,QAAQ,MAAM;AACX,sCAAAA,SAA0B,KAAK,WAAW;AAAA,QACtC;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,IACL,CAAC;AAAA,EACT;AACJ;AAUO,SAAS,YAAY,QAAiC;AACzD,mBAAiB;AAAA,IACb,wBAAwB,OAAO;AAAA,IAC/B,6BAA6B,OAAO;AAAA,IACpC,gBAAgB,OAAO;AAAA,IACvB,gBAAgB,OAAO;AAAA,IACvB,WAAW,QAAQ,OAAO,SAAS;AAAA,EACvC,CAAC;AACD,8EAAqC;AACrC,MACI,CAAC,uBAAc,yBAAyB,MACnC;AAEL;AACJ,SAAO,eAAe;AAAA,IAClB,uBAAc,yBAAyB,MAAM;AAAA,EACjD;AACA,yBAAc,yBAAyB,MAAM,8BACzC;AACR;","names":["visualBuilderPostMessage"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/generators/generateOverlay.tsx"],"sourcesContent":["import { extractDetailsFromCslp } from \"../../cslp/cslpdata\";\nimport { cleanIndividualFieldResidual } from \"../utils/handleIndividualFields\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\n\nimport { VisualBuilder } from \"..\";\nimport EventListenerHandlerParams from \"../listeners/types\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { FieldDataType } from \"../utils/types/index.types\";\nimport { getFieldType } from \"../utils/getFieldType\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { getMultilinePlaintext } from \"../utils/getMultilinePlaintext\";\nimport { showAllHiddenHighlightedCommentIcons } from \"./generateHighlightedComment\";\n\n/**\n * Adds a focus overlay to the target element.\n * @param targetElement - The element to add the focus overlay to.\n * @param focusOverlayWrapper - The HTMLDivElement that contains the focus overlay.\n * @returns void\n */\nexport function addFocusOverlay(\n targetElement: Element,\n focusOverlayWrapper: HTMLDivElement,\n disabled?: boolean\n): void {\n const targetElementDimension = targetElement.getBoundingClientRect();\n if (\n targetElementDimension.width === 0 ||\n targetElementDimension.height === 0\n )\n return;\n focusOverlayWrapper.classList.add(\"visible\");\n\n const distanceFromTop = targetElementDimension.top + window.scrollY;\n const topOverlayDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--top\"\n );\n\n if (topOverlayDOM) {\n topOverlayDOM.style.top = \"0\";\n topOverlayDOM.style.left = \"0\";\n topOverlayDOM.style.width = \"100%\";\n topOverlayDOM.style.height = `calc(${distanceFromTop}px)`;\n }\n\n const bottomOverlayDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--bottom\"\n );\n if (bottomOverlayDOM) {\n bottomOverlayDOM.style.top = `${\n targetElementDimension.bottom + window.scrollY\n }px`;\n bottomOverlayDOM.style.height = `${\n window.document.body.scrollHeight -\n targetElementDimension.bottom -\n window.scrollY\n }px`;\n bottomOverlayDOM.style.left = \"0\";\n bottomOverlayDOM.style.width = \"100%\";\n }\n\n const leftOverlayDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--left\"\n );\n if (leftOverlayDOM) {\n leftOverlayDOM.style.left = \"0\";\n leftOverlayDOM.style.top = `${distanceFromTop}px`;\n leftOverlayDOM.style.height = `${targetElementDimension.height}px`;\n leftOverlayDOM.style.width = `${targetElementDimension.left}px`;\n }\n\n const rightOverlayDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--right\"\n );\n if (rightOverlayDOM) {\n rightOverlayDOM.style.left = `${targetElementDimension.right}px`;\n rightOverlayDOM.style.top = `${distanceFromTop}px`;\n rightOverlayDOM.style.height = `${targetElementDimension.height}px`;\n rightOverlayDOM.style.width = `${\n document.documentElement.clientWidth - targetElementDimension.right\n }px`;\n }\n\n const outlineDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--outline\"\n );\n if (outlineDOM) {\n outlineDOM.style.top = `${\n targetElementDimension.top + window.scrollY\n }px`;\n outlineDOM.style.height = `${targetElementDimension.height}px`;\n outlineDOM.style.width = `${targetElementDimension.width}px`;\n outlineDOM.style.left = `${targetElementDimension.left}px`;\n outlineDOM.style.outlineColor = disabled ? \"#909090\" : \"#715cdd\";\n }\n}\n\n/**\n * Hides the focus overlay and performs necessary cleanup actions when the user clicks outside of the focused element.\n * @param event - The mouse event that triggered the function.\n * @param elements - An object containing references to the focus overlay wrapper, the previously selected editable DOM element, and the visual builder wrapper.\n */\nexport function hideFocusOverlay(elements: HideOverlayParams): void {\n const {\n visualBuilderContainer,\n visualBuilderOverlayWrapper,\n focusedToolbar,\n resizeObserver,\n noTrigger,\n } = elements;\n\n if (visualBuilderOverlayWrapper) {\n visualBuilderOverlayWrapper.classList.remove(\"visible\");\n\n // Cleanup overlay styles: Top, Right, Bottom, Left & Outline\n visualBuilderOverlayWrapper.childNodes.forEach((childNode) => {\n if (childNode instanceof Element) {\n childNode.removeAttribute(\"style\");\n }\n });\n\n if (!noTrigger) {\n sendFieldEvent({\n visualBuilderContainer,\n eventType: VisualBuilderPostMessageEvents.UPDATE_FIELD,\n });\n } else {\n const { previousSelectedEditableDOM, focusFieldValue } =\n VisualBuilder.VisualBuilderGlobalState.value || {};\n if (\n previousSelectedEditableDOM &&\n \"innerText\" in previousSelectedEditableDOM &&\n focusFieldValue != null\n ) {\n previousSelectedEditableDOM.innerText = focusFieldValue;\n }\n }\n VisualBuilder.VisualBuilderGlobalState.value.focusFieldValue = null;\n cleanIndividualFieldResidual({\n overlayWrapper: visualBuilderOverlayWrapper,\n visualBuilderContainer: visualBuilderContainer,\n focusedToolbar: focusedToolbar,\n resizeObserver: resizeObserver,\n });\n }\n}\ninterface ISendFieldEventParams {\n visualBuilderContainer: HTMLElement | null;\n eventType:\n | VisualBuilderPostMessageEvents.UPDATE_FIELD\n | VisualBuilderPostMessageEvents.SYNC_FIELD;\n}\nexport function sendFieldEvent(options: ISendFieldEventParams): void {\n const { visualBuilderContainer, eventType } = options;\n const previousSelectedEditableDOM =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n const pseudoEditableElement = visualBuilderContainer?.querySelector(\n \"div.visual-builder__pseudo-editable-element\"\n );\n if (\n previousSelectedEditableDOM &&\n (previousSelectedEditableDOM.hasAttribute(\"contenteditable\") ||\n pseudoEditableElement)\n ) {\n const actualEditedElement =\n pseudoEditableElement ||\n (previousSelectedEditableDOM as HTMLElement);\n\n let data =\n \"innerText\" in actualEditedElement\n ? actualEditedElement.innerText\n : actualEditedElement.textContent;\n\n const fieldMetadata = extractDetailsFromCslp(\n previousSelectedEditableDOM.getAttribute(\"data-cslp\") as string\n );\n\n FieldSchemaMap.getFieldSchema(\n fieldMetadata.content_type_uid,\n fieldMetadata.fieldPath\n )\n .then((fieldSchema) => {\n if (\n fieldSchema &&\n eventType === VisualBuilderPostMessageEvents.UPDATE_FIELD\n ) {\n const fieldType = getFieldType(fieldSchema);\n if (fieldType && fieldType === FieldDataType.MULTILINE) {\n data = getMultilinePlaintext(actualEditedElement);\n (actualEditedElement as HTMLElement).innerText =\n data as string;\n }\n }\n })\n .finally(() => {\n visualBuilderPostMessage?.send(eventType, {\n data,\n fieldMetadata,\n });\n });\n }\n}\ninterface HideOverlayParams\n extends Pick<\n EventListenerHandlerParams,\n \"visualBuilderContainer\" | \"focusedToolbar\" | \"resizeObserver\"\n > {\n visualBuilderOverlayWrapper: HTMLDivElement | null;\n noTrigger?: boolean;\n}\n\nexport function hideOverlay(params: HideOverlayParams): void {\n const focusElementObserver =\n VisualBuilder.VisualBuilderGlobalState.value.focusElementObserver;\n if (focusElementObserver) {\n focusElementObserver.disconnect();\n VisualBuilder.VisualBuilderGlobalState.value.focusElementObserver =\n null;\n }\n hideFocusOverlay({\n visualBuilderContainer: params.visualBuilderContainer,\n visualBuilderOverlayWrapper: params.visualBuilderOverlayWrapper,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n noTrigger: Boolean(params.noTrigger),\n });\n showAllHiddenHighlightedCommentIcons();\n if (\n !VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM\n )\n return;\n params.resizeObserver.unobserve(\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM\n );\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM =\n null;\n}\n"],"mappings":"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","names":["visualBuilderPostMessage"]}
@@ -131,6 +131,11 @@ function sendFieldEvent(options) {
131
131
  }
132
132
  }
133
133
  function hideOverlay(params) {
134
+ const focusElementObserver = VisualBuilder.VisualBuilderGlobalState.value.focusElementObserver;
135
+ if (focusElementObserver) {
136
+ focusElementObserver.disconnect();
137
+ VisualBuilder.VisualBuilderGlobalState.value.focusElementObserver = null;
138
+ }
134
139
  hideFocusOverlay({
135
140
  visualBuilderContainer: params.visualBuilderContainer,
136
141
  visualBuilderOverlayWrapper: params.visualBuilderOverlayWrapper,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/generators/generateOverlay.tsx"],"sourcesContent":["import { extractDetailsFromCslp } from \"../../cslp/cslpdata\";\nimport { cleanIndividualFieldResidual } from \"../utils/handleIndividualFields\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\n\nimport { VisualBuilder } from \"..\";\nimport EventListenerHandlerParams from \"../listeners/types\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { FieldDataType } from \"../utils/types/index.types\";\nimport { getFieldType } from \"../utils/getFieldType\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { getMultilinePlaintext } from \"../utils/getMultilinePlaintext\";\nimport { showAllHiddenHighlightedCommentIcons } from \"./generateHighlightedComment\";\n\n/**\n * Adds a focus overlay to the target element.\n * @param targetElement - The element to add the focus overlay to.\n * @param focusOverlayWrapper - The HTMLDivElement that contains the focus overlay.\n * @returns void\n */\nexport function addFocusOverlay(\n targetElement: Element,\n focusOverlayWrapper: HTMLDivElement,\n disabled?: boolean\n): void {\n const targetElementDimension = targetElement.getBoundingClientRect();\n if (\n targetElementDimension.width === 0 ||\n targetElementDimension.height === 0\n )\n return;\n focusOverlayWrapper.classList.add(\"visible\");\n\n const distanceFromTop = targetElementDimension.top + window.scrollY;\n const topOverlayDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--top\"\n );\n\n if (topOverlayDOM) {\n topOverlayDOM.style.top = \"0\";\n topOverlayDOM.style.left = \"0\";\n topOverlayDOM.style.width = \"100%\";\n topOverlayDOM.style.height = `calc(${distanceFromTop}px)`;\n }\n\n const bottomOverlayDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--bottom\"\n );\n if (bottomOverlayDOM) {\n bottomOverlayDOM.style.top = `${\n targetElementDimension.bottom + window.scrollY\n }px`;\n bottomOverlayDOM.style.height = `${\n window.document.body.scrollHeight -\n targetElementDimension.bottom -\n window.scrollY\n }px`;\n bottomOverlayDOM.style.left = \"0\";\n bottomOverlayDOM.style.width = \"100%\";\n }\n\n const leftOverlayDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--left\"\n );\n if (leftOverlayDOM) {\n leftOverlayDOM.style.left = \"0\";\n leftOverlayDOM.style.top = `${distanceFromTop}px`;\n leftOverlayDOM.style.height = `${targetElementDimension.height}px`;\n leftOverlayDOM.style.width = `${targetElementDimension.left}px`;\n }\n\n const rightOverlayDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--right\"\n );\n if (rightOverlayDOM) {\n rightOverlayDOM.style.left = `${targetElementDimension.right}px`;\n rightOverlayDOM.style.top = `${distanceFromTop}px`;\n rightOverlayDOM.style.height = `${targetElementDimension.height}px`;\n rightOverlayDOM.style.width = `${\n document.documentElement.clientWidth - targetElementDimension.right\n }px`;\n }\n\n const outlineDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--outline\"\n );\n if (outlineDOM) {\n outlineDOM.style.top = `${\n targetElementDimension.top + window.scrollY\n }px`;\n outlineDOM.style.height = `${targetElementDimension.height}px`;\n outlineDOM.style.width = `${targetElementDimension.width}px`;\n outlineDOM.style.left = `${targetElementDimension.left}px`;\n outlineDOM.style.outlineColor = disabled ? \"#909090\" : \"#715cdd\";\n }\n}\n\n/**\n * Hides the focus overlay and performs necessary cleanup actions when the user clicks outside of the focused element.\n * @param event - The mouse event that triggered the function.\n * @param elements - An object containing references to the focus overlay wrapper, the previously selected editable DOM element, and the visual builder wrapper.\n */\nexport function hideFocusOverlay(elements: HideOverlayParams): void {\n const {\n visualBuilderContainer,\n visualBuilderOverlayWrapper,\n focusedToolbar,\n resizeObserver,\n noTrigger,\n } = elements;\n\n if (visualBuilderOverlayWrapper) {\n visualBuilderOverlayWrapper.classList.remove(\"visible\");\n\n // Cleanup overlay styles: Top, Right, Bottom, Left & Outline\n visualBuilderOverlayWrapper.childNodes.forEach((childNode) => {\n if (childNode instanceof Element) {\n childNode.removeAttribute(\"style\");\n }\n });\n\n if (!noTrigger) {\n sendFieldEvent({\n visualBuilderContainer,\n eventType: VisualBuilderPostMessageEvents.UPDATE_FIELD,\n });\n } else {\n const { previousSelectedEditableDOM, focusFieldValue } =\n VisualBuilder.VisualBuilderGlobalState.value || {};\n if (\n previousSelectedEditableDOM &&\n \"innerText\" in previousSelectedEditableDOM &&\n focusFieldValue != null\n ) {\n previousSelectedEditableDOM.innerText = focusFieldValue;\n }\n }\n VisualBuilder.VisualBuilderGlobalState.value.focusFieldValue = null;\n cleanIndividualFieldResidual({\n overlayWrapper: visualBuilderOverlayWrapper,\n visualBuilderContainer: visualBuilderContainer,\n focusedToolbar: focusedToolbar,\n resizeObserver: resizeObserver,\n });\n }\n}\ninterface ISendFieldEventParams {\n visualBuilderContainer: HTMLElement | null;\n eventType:\n | VisualBuilderPostMessageEvents.UPDATE_FIELD\n | VisualBuilderPostMessageEvents.SYNC_FIELD;\n}\nexport function sendFieldEvent(options: ISendFieldEventParams): void {\n const { visualBuilderContainer, eventType } = options;\n const previousSelectedEditableDOM =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n const pseudoEditableElement = visualBuilderContainer?.querySelector(\n \"div.visual-builder__pseudo-editable-element\"\n );\n if (\n previousSelectedEditableDOM &&\n (previousSelectedEditableDOM.hasAttribute(\"contenteditable\") ||\n pseudoEditableElement)\n ) {\n const actualEditedElement =\n pseudoEditableElement ||\n (previousSelectedEditableDOM as HTMLElement);\n\n let data =\n \"innerText\" in actualEditedElement\n ? actualEditedElement.innerText\n : actualEditedElement.textContent;\n\n const fieldMetadata = extractDetailsFromCslp(\n previousSelectedEditableDOM.getAttribute(\"data-cslp\") as string\n );\n\n FieldSchemaMap.getFieldSchema(\n fieldMetadata.content_type_uid,\n fieldMetadata.fieldPath\n )\n .then((fieldSchema) => {\n if (\n fieldSchema &&\n eventType === VisualBuilderPostMessageEvents.UPDATE_FIELD\n ) {\n const fieldType = getFieldType(fieldSchema);\n if (fieldType && fieldType === FieldDataType.MULTILINE) {\n data = getMultilinePlaintext(actualEditedElement);\n (actualEditedElement as HTMLElement).innerText =\n data as string;\n }\n }\n })\n .finally(() => {\n visualBuilderPostMessage?.send(eventType, {\n data,\n fieldMetadata,\n });\n });\n }\n}\ninterface HideOverlayParams\n extends Pick<\n EventListenerHandlerParams,\n \"visualBuilderContainer\" | \"focusedToolbar\" | \"resizeObserver\"\n > {\n visualBuilderOverlayWrapper: HTMLDivElement | null;\n noTrigger?: boolean;\n}\n\nexport function hideOverlay(params: HideOverlayParams): void {\n hideFocusOverlay({\n visualBuilderContainer: params.visualBuilderContainer,\n visualBuilderOverlayWrapper: params.visualBuilderOverlayWrapper,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n noTrigger: Boolean(params.noTrigger),\n });\n showAllHiddenHighlightedCommentIcons();\n if (\n !VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM\n )\n return;\n params.resizeObserver.unobserve(\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM\n );\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM =\n null;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/generators/generateOverlay.tsx"],"sourcesContent":["import { extractDetailsFromCslp } from \"../../cslp/cslpdata\";\nimport { cleanIndividualFieldResidual } from \"../utils/handleIndividualFields\";\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\n\nimport { VisualBuilder } from \"..\";\nimport EventListenerHandlerParams from \"../listeners/types\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { FieldDataType } from \"../utils/types/index.types\";\nimport { getFieldType } from \"../utils/getFieldType\";\nimport { CslpData } from \"../../cslp/types/cslp.types\";\nimport { getMultilinePlaintext } from \"../utils/getMultilinePlaintext\";\nimport { showAllHiddenHighlightedCommentIcons } from \"./generateHighlightedComment\";\n\n/**\n * Adds a focus overlay to the target element.\n * @param targetElement - The element to add the focus overlay to.\n * @param focusOverlayWrapper - The HTMLDivElement that contains the focus overlay.\n * @returns void\n */\nexport function addFocusOverlay(\n targetElement: Element,\n focusOverlayWrapper: HTMLDivElement,\n disabled?: boolean\n): void {\n const targetElementDimension = targetElement.getBoundingClientRect();\n if (\n targetElementDimension.width === 0 ||\n targetElementDimension.height === 0\n )\n return;\n focusOverlayWrapper.classList.add(\"visible\");\n\n const distanceFromTop = targetElementDimension.top + window.scrollY;\n const topOverlayDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--top\"\n );\n\n if (topOverlayDOM) {\n topOverlayDOM.style.top = \"0\";\n topOverlayDOM.style.left = \"0\";\n topOverlayDOM.style.width = \"100%\";\n topOverlayDOM.style.height = `calc(${distanceFromTop}px)`;\n }\n\n const bottomOverlayDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--bottom\"\n );\n if (bottomOverlayDOM) {\n bottomOverlayDOM.style.top = `${\n targetElementDimension.bottom + window.scrollY\n }px`;\n bottomOverlayDOM.style.height = `${\n window.document.body.scrollHeight -\n targetElementDimension.bottom -\n window.scrollY\n }px`;\n bottomOverlayDOM.style.left = \"0\";\n bottomOverlayDOM.style.width = \"100%\";\n }\n\n const leftOverlayDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--left\"\n );\n if (leftOverlayDOM) {\n leftOverlayDOM.style.left = \"0\";\n leftOverlayDOM.style.top = `${distanceFromTop}px`;\n leftOverlayDOM.style.height = `${targetElementDimension.height}px`;\n leftOverlayDOM.style.width = `${targetElementDimension.left}px`;\n }\n\n const rightOverlayDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--right\"\n );\n if (rightOverlayDOM) {\n rightOverlayDOM.style.left = `${targetElementDimension.right}px`;\n rightOverlayDOM.style.top = `${distanceFromTop}px`;\n rightOverlayDOM.style.height = `${targetElementDimension.height}px`;\n rightOverlayDOM.style.width = `${\n document.documentElement.clientWidth - targetElementDimension.right\n }px`;\n }\n\n const outlineDOM = focusOverlayWrapper.querySelector<HTMLDivElement>(\n \".visual-builder__overlay--outline\"\n );\n if (outlineDOM) {\n outlineDOM.style.top = `${\n targetElementDimension.top + window.scrollY\n }px`;\n outlineDOM.style.height = `${targetElementDimension.height}px`;\n outlineDOM.style.width = `${targetElementDimension.width}px`;\n outlineDOM.style.left = `${targetElementDimension.left}px`;\n outlineDOM.style.outlineColor = disabled ? \"#909090\" : \"#715cdd\";\n }\n}\n\n/**\n * Hides the focus overlay and performs necessary cleanup actions when the user clicks outside of the focused element.\n * @param event - The mouse event that triggered the function.\n * @param elements - An object containing references to the focus overlay wrapper, the previously selected editable DOM element, and the visual builder wrapper.\n */\nexport function hideFocusOverlay(elements: HideOverlayParams): void {\n const {\n visualBuilderContainer,\n visualBuilderOverlayWrapper,\n focusedToolbar,\n resizeObserver,\n noTrigger,\n } = elements;\n\n if (visualBuilderOverlayWrapper) {\n visualBuilderOverlayWrapper.classList.remove(\"visible\");\n\n // Cleanup overlay styles: Top, Right, Bottom, Left & Outline\n visualBuilderOverlayWrapper.childNodes.forEach((childNode) => {\n if (childNode instanceof Element) {\n childNode.removeAttribute(\"style\");\n }\n });\n\n if (!noTrigger) {\n sendFieldEvent({\n visualBuilderContainer,\n eventType: VisualBuilderPostMessageEvents.UPDATE_FIELD,\n });\n } else {\n const { previousSelectedEditableDOM, focusFieldValue } =\n VisualBuilder.VisualBuilderGlobalState.value || {};\n if (\n previousSelectedEditableDOM &&\n \"innerText\" in previousSelectedEditableDOM &&\n focusFieldValue != null\n ) {\n previousSelectedEditableDOM.innerText = focusFieldValue;\n }\n }\n VisualBuilder.VisualBuilderGlobalState.value.focusFieldValue = null;\n cleanIndividualFieldResidual({\n overlayWrapper: visualBuilderOverlayWrapper,\n visualBuilderContainer: visualBuilderContainer,\n focusedToolbar: focusedToolbar,\n resizeObserver: resizeObserver,\n });\n }\n}\ninterface ISendFieldEventParams {\n visualBuilderContainer: HTMLElement | null;\n eventType:\n | VisualBuilderPostMessageEvents.UPDATE_FIELD\n | VisualBuilderPostMessageEvents.SYNC_FIELD;\n}\nexport function sendFieldEvent(options: ISendFieldEventParams): void {\n const { visualBuilderContainer, eventType } = options;\n const previousSelectedEditableDOM =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n const pseudoEditableElement = visualBuilderContainer?.querySelector(\n \"div.visual-builder__pseudo-editable-element\"\n );\n if (\n previousSelectedEditableDOM &&\n (previousSelectedEditableDOM.hasAttribute(\"contenteditable\") ||\n pseudoEditableElement)\n ) {\n const actualEditedElement =\n pseudoEditableElement ||\n (previousSelectedEditableDOM as HTMLElement);\n\n let data =\n \"innerText\" in actualEditedElement\n ? actualEditedElement.innerText\n : actualEditedElement.textContent;\n\n const fieldMetadata = extractDetailsFromCslp(\n previousSelectedEditableDOM.getAttribute(\"data-cslp\") as string\n );\n\n FieldSchemaMap.getFieldSchema(\n fieldMetadata.content_type_uid,\n fieldMetadata.fieldPath\n )\n .then((fieldSchema) => {\n if (\n fieldSchema &&\n eventType === VisualBuilderPostMessageEvents.UPDATE_FIELD\n ) {\n const fieldType = getFieldType(fieldSchema);\n if (fieldType && fieldType === FieldDataType.MULTILINE) {\n data = getMultilinePlaintext(actualEditedElement);\n (actualEditedElement as HTMLElement).innerText =\n data as string;\n }\n }\n })\n .finally(() => {\n visualBuilderPostMessage?.send(eventType, {\n data,\n fieldMetadata,\n });\n });\n }\n}\ninterface HideOverlayParams\n extends Pick<\n EventListenerHandlerParams,\n \"visualBuilderContainer\" | \"focusedToolbar\" | \"resizeObserver\"\n > {\n visualBuilderOverlayWrapper: HTMLDivElement | null;\n noTrigger?: boolean;\n}\n\nexport function hideOverlay(params: HideOverlayParams): void {\n const focusElementObserver =\n VisualBuilder.VisualBuilderGlobalState.value.focusElementObserver;\n if (focusElementObserver) {\n focusElementObserver.disconnect();\n VisualBuilder.VisualBuilderGlobalState.value.focusElementObserver =\n null;\n }\n hideFocusOverlay({\n visualBuilderContainer: params.visualBuilderContainer,\n visualBuilderOverlayWrapper: params.visualBuilderOverlayWrapper,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n noTrigger: Boolean(params.noTrigger),\n });\n showAllHiddenHighlightedCommentIcons();\n if (\n !VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM\n )\n return;\n params.resizeObserver.unobserve(\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM\n );\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM =\n null;\n}\n"],"mappings":"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","names":[]}