@contentstack/live-preview-utils 3.1.3 → 3.2.0

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 (542) hide show
  1. package/README.md +2 -2
  2. package/dist/legacy/configManager/config.default.cjs +15 -0
  3. package/dist/legacy/configManager/config.default.cjs.map +1 -1
  4. package/dist/legacy/configManager/config.default.d.cts +1 -0
  5. package/dist/legacy/configManager/config.default.d.ts +1 -0
  6. package/dist/legacy/configManager/config.default.js +15 -0
  7. package/dist/legacy/configManager/config.default.js.map +1 -1
  8. package/dist/legacy/configManager/configManager.d.cts +1 -0
  9. package/dist/legacy/configManager/configManager.d.ts +1 -0
  10. package/dist/legacy/configManager/handleUserConfig.d.cts +1 -0
  11. package/dist/legacy/configManager/handleUserConfig.d.ts +1 -0
  12. package/dist/legacy/configManager/index.d.cts +1 -0
  13. package/dist/legacy/configManager/index.d.ts +1 -0
  14. package/dist/legacy/index.cjs +45 -1
  15. package/dist/legacy/index.cjs.map +1 -1
  16. package/dist/legacy/index.d.cts +17 -2
  17. package/dist/legacy/index.d.ts +17 -2
  18. package/dist/legacy/index.js +45 -1
  19. package/dist/legacy/index.js.map +1 -1
  20. package/dist/legacy/livePreview/editButton/editButton.d.cts +1 -0
  21. package/dist/legacy/livePreview/editButton/editButton.d.ts +1 -0
  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/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.cts +1 -0
  25. package/dist/legacy/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.ts +1 -0
  26. package/dist/legacy/preview/contentstack-live-preview-HOC.cjs +1 -1
  27. package/dist/legacy/preview/contentstack-live-preview-HOC.d.cts +1 -0
  28. package/dist/legacy/preview/contentstack-live-preview-HOC.d.ts +1 -0
  29. package/dist/legacy/preview/contentstack-live-preview-HOC.js +1 -1
  30. package/dist/legacy/types/types.cjs +1 -0
  31. package/dist/legacy/types/types.cjs.map +1 -1
  32. package/dist/legacy/types/types.d.cts +5 -0
  33. package/dist/legacy/types/types.d.ts +5 -0
  34. package/dist/legacy/types/types.js +1 -0
  35. package/dist/legacy/types/types.js.map +1 -1
  36. package/dist/legacy/visualBuilder/collab.style.cjs +660 -0
  37. package/dist/legacy/visualBuilder/collab.style.cjs.map +1 -0
  38. package/dist/legacy/visualBuilder/collab.style.d.cts +84 -0
  39. package/dist/legacy/visualBuilder/collab.style.d.ts +84 -0
  40. package/dist/legacy/visualBuilder/collab.style.js +635 -0
  41. package/dist/legacy/visualBuilder/collab.style.js.map +1 -0
  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/Avatar/Avatar.cjs +116 -0
  49. package/dist/legacy/visualBuilder/components/Collab/Avatar/Avatar.cjs.map +1 -0
  50. package/dist/legacy/visualBuilder/components/Collab/Avatar/Avatar.d.cts +18 -0
  51. package/dist/legacy/visualBuilder/components/Collab/Avatar/Avatar.d.ts +18 -0
  52. package/dist/legacy/visualBuilder/components/Collab/Avatar/Avatar.js +87 -0
  53. package/dist/legacy/visualBuilder/components/Collab/Avatar/Avatar.js.map +1 -0
  54. package/dist/legacy/visualBuilder/components/Collab/Button/Button.cjs +143 -0
  55. package/dist/legacy/visualBuilder/components/Collab/Button/Button.cjs.map +1 -0
  56. package/dist/legacy/visualBuilder/components/Collab/Button/Button.d.cts +29 -0
  57. package/dist/legacy/visualBuilder/components/Collab/Button/Button.d.ts +29 -0
  58. package/dist/legacy/visualBuilder/components/Collab/Button/Button.js +118 -0
  59. package/dist/legacy/visualBuilder/components/Collab/Button/Button.js.map +1 -0
  60. package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.cjs +61 -0
  61. package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.cjs.map +1 -0
  62. package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.d.cts +28 -0
  63. package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.d.ts +28 -0
  64. package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.js +32 -0
  65. package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.js.map +1 -0
  66. package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.cjs +133 -0
  67. package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.cjs.map +1 -0
  68. package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.d.cts +10 -0
  69. package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.d.ts +10 -0
  70. package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.js +104 -0
  71. package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.js.map +1 -0
  72. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.cjs +87 -0
  73. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.cjs.map +1 -0
  74. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.d.cts +19 -0
  75. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.d.ts +19 -0
  76. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.js +58 -0
  77. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.js.map +1 -0
  78. package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.cjs +81 -0
  79. package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.cjs.map +1 -0
  80. package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.d.cts +17 -0
  81. package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.d.ts +17 -0
  82. package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.js +52 -0
  83. package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.js.map +1 -0
  84. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.cjs +150 -0
  85. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.cjs.map +1 -0
  86. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.d.cts +8 -0
  87. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.d.ts +8 -0
  88. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.js +121 -0
  89. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.js.map +1 -0
  90. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.cjs +159 -0
  91. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.cjs.map +1 -0
  92. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.d.cts +8 -0
  93. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.d.ts +8 -0
  94. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.js +130 -0
  95. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.js.map +1 -0
  96. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.cjs +58 -0
  97. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.cjs.map +1 -0
  98. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.d.cts +6 -0
  99. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.d.ts +6 -0
  100. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.js +29 -0
  101. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.js.map +1 -0
  102. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs +229 -0
  103. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs.map +1 -0
  104. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.d.cts +8 -0
  105. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.d.ts +8 -0
  106. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js +200 -0
  107. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js.map +1 -0
  108. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.cjs +42 -0
  109. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.cjs.map +1 -0
  110. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.d.cts +8 -0
  111. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.d.ts +8 -0
  112. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.js +9 -0
  113. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.js.map +1 -0
  114. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.cjs +25 -0
  115. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.cjs.map +1 -0
  116. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.d.cts +3 -0
  117. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.d.ts +3 -0
  118. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.js +3 -0
  119. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.js.map +1 -0
  120. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.cjs +92 -0
  121. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.cjs.map +1 -0
  122. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.d.cts +13 -0
  123. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.d.ts +13 -0
  124. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.js +63 -0
  125. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.js.map +1 -0
  126. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.cjs +155 -0
  127. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.cjs.map +1 -0
  128. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.d.cts +8 -0
  129. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.d.ts +8 -0
  130. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.js +126 -0
  131. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.js.map +1 -0
  132. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.cjs +93 -0
  133. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.cjs.map +1 -0
  134. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.d.cts +8 -0
  135. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.d.ts +8 -0
  136. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.js +64 -0
  137. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.js.map +1 -0
  138. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.cjs +93 -0
  139. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.cjs.map +1 -0
  140. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.d.cts +8 -0
  141. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.d.ts +8 -0
  142. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.js +64 -0
  143. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.js.map +1 -0
  144. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.cjs +242 -0
  145. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.cjs.map +1 -0
  146. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.d.cts +8 -0
  147. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.d.ts +8 -0
  148. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.js +213 -0
  149. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.js.map +1 -0
  150. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.cjs +101 -0
  151. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.cjs.map +1 -0
  152. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.d.cts +5 -0
  153. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.d.ts +5 -0
  154. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.js +72 -0
  155. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.js.map +1 -0
  156. package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.cjs +110 -0
  157. package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.cjs.map +1 -0
  158. package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.d.cts +17 -0
  159. package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.d.ts +17 -0
  160. package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.js +81 -0
  161. package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.js.map +1 -0
  162. package/dist/legacy/visualBuilder/components/HighlightedCommentIcon.cjs +6 -1
  163. package/dist/legacy/visualBuilder/components/HighlightedCommentIcon.cjs.map +1 -1
  164. package/dist/legacy/visualBuilder/components/HighlightedCommentIcon.js +6 -1
  165. package/dist/legacy/visualBuilder/components/HighlightedCommentIcon.js.map +1 -1
  166. package/dist/legacy/visualBuilder/components/icons/CollabIcons.cjs +220 -0
  167. package/dist/legacy/visualBuilder/components/icons/CollabIcons.cjs.map +1 -0
  168. package/dist/legacy/visualBuilder/components/icons/CollabIcons.d.cts +16 -0
  169. package/dist/legacy/visualBuilder/components/icons/CollabIcons.d.ts +16 -0
  170. package/dist/legacy/visualBuilder/components/icons/CollabIcons.js +197 -0
  171. package/dist/legacy/visualBuilder/components/icons/CollabIcons.js.map +1 -0
  172. package/dist/legacy/visualBuilder/components/icons/index.cjs +16 -16
  173. package/dist/legacy/visualBuilder/components/icons/index.cjs.map +1 -1
  174. package/dist/legacy/visualBuilder/components/icons/index.js +16 -16
  175. package/dist/legacy/visualBuilder/components/icons/index.js.map +1 -1
  176. package/dist/legacy/visualBuilder/components/startEditingButton.d.cts +1 -0
  177. package/dist/legacy/visualBuilder/components/startEditingButton.d.ts +1 -0
  178. package/dist/legacy/visualBuilder/eventManager/useCollab.cjs +180 -0
  179. package/dist/legacy/visualBuilder/eventManager/useCollab.cjs.map +1 -0
  180. package/dist/legacy/visualBuilder/eventManager/useCollab.d.cts +3 -0
  181. package/dist/legacy/visualBuilder/eventManager/useCollab.d.ts +3 -0
  182. package/dist/legacy/visualBuilder/eventManager/useCollab.js +156 -0
  183. package/dist/legacy/visualBuilder/eventManager/useCollab.js.map +1 -0
  184. package/dist/legacy/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.cjs +7 -2
  185. package/dist/legacy/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.cjs.map +1 -1
  186. package/dist/legacy/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.js +7 -2
  187. package/dist/legacy/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.js.map +1 -1
  188. package/dist/legacy/visualBuilder/generators/generateCustomCursor.cjs +2 -1
  189. package/dist/legacy/visualBuilder/generators/generateCustomCursor.cjs.map +1 -1
  190. package/dist/legacy/visualBuilder/generators/generateCustomCursor.d.cts +2 -2
  191. package/dist/legacy/visualBuilder/generators/generateCustomCursor.d.ts +2 -2
  192. package/dist/legacy/visualBuilder/generators/generateCustomCursor.js +2 -1
  193. package/dist/legacy/visualBuilder/generators/generateCustomCursor.js.map +1 -1
  194. package/dist/legacy/visualBuilder/generators/generateHighlightedComment.cjs +2 -2
  195. package/dist/legacy/visualBuilder/generators/generateHighlightedComment.cjs.map +1 -1
  196. package/dist/legacy/visualBuilder/generators/generateHighlightedComment.js +2 -2
  197. package/dist/legacy/visualBuilder/generators/generateHighlightedComment.js.map +1 -1
  198. package/dist/legacy/visualBuilder/generators/generateThread.cjs +496 -0
  199. package/dist/legacy/visualBuilder/generators/generateThread.cjs.map +1 -0
  200. package/dist/legacy/visualBuilder/generators/generateThread.d.cts +27 -0
  201. package/dist/legacy/visualBuilder/generators/generateThread.d.ts +27 -0
  202. package/dist/legacy/visualBuilder/generators/generateThread.js +445 -0
  203. package/dist/legacy/visualBuilder/generators/generateThread.js.map +1 -0
  204. package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.cjs +63 -0
  205. package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.cjs.map +1 -0
  206. package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.d.cts +11 -0
  207. package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.d.ts +11 -0
  208. package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.js +44 -0
  209. package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.js.map +1 -0
  210. package/dist/legacy/visualBuilder/hooks/useCollabIndicator.cjs +130 -0
  211. package/dist/legacy/visualBuilder/hooks/useCollabIndicator.cjs.map +1 -0
  212. package/dist/legacy/visualBuilder/hooks/useCollabIndicator.d.cts +20 -0
  213. package/dist/legacy/visualBuilder/hooks/useCollabIndicator.d.ts +20 -0
  214. package/dist/legacy/visualBuilder/hooks/useCollabIndicator.js +97 -0
  215. package/dist/legacy/visualBuilder/hooks/useCollabIndicator.js.map +1 -0
  216. package/dist/legacy/visualBuilder/hooks/useCollabOperations.cjs +147 -0
  217. package/dist/legacy/visualBuilder/hooks/useCollabOperations.cjs.map +1 -0
  218. package/dist/legacy/visualBuilder/hooks/useCollabOperations.d.cts +16 -0
  219. package/dist/legacy/visualBuilder/hooks/useCollabOperations.d.ts +16 -0
  220. package/dist/legacy/visualBuilder/hooks/useCollabOperations.js +114 -0
  221. package/dist/legacy/visualBuilder/hooks/useCollabOperations.js.map +1 -0
  222. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.cjs +428 -0
  223. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.cjs.map +1 -0
  224. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.d.cts +27 -0
  225. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.d.ts +27 -0
  226. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.js +407 -0
  227. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.js.map +1 -0
  228. package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.cjs +42 -0
  229. package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.cjs.map +1 -0
  230. package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.d.cts +3 -0
  231. package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.d.ts +3 -0
  232. package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.js +23 -0
  233. package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.js.map +1 -0
  234. package/dist/legacy/visualBuilder/index.cjs +80 -28
  235. package/dist/legacy/visualBuilder/index.cjs.map +1 -1
  236. package/dist/legacy/visualBuilder/index.d.cts +1 -0
  237. package/dist/legacy/visualBuilder/index.d.ts +1 -0
  238. package/dist/legacy/visualBuilder/index.js +89 -28
  239. package/dist/legacy/visualBuilder/index.js.map +1 -1
  240. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs +34 -0
  241. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  242. package/dist/legacy/visualBuilder/listeners/mouseClick.js +34 -0
  243. package/dist/legacy/visualBuilder/listeners/mouseClick.js.map +1 -1
  244. package/dist/legacy/visualBuilder/listeners/mouseHover.cjs +49 -6
  245. package/dist/legacy/visualBuilder/listeners/mouseHover.cjs.map +1 -1
  246. package/dist/legacy/visualBuilder/listeners/mouseHover.js +39 -6
  247. package/dist/legacy/visualBuilder/listeners/mouseHover.js.map +1 -1
  248. package/dist/legacy/visualBuilder/types/collab.types.cjs +19 -0
  249. package/dist/legacy/visualBuilder/types/collab.types.cjs.map +1 -0
  250. package/dist/legacy/visualBuilder/types/collab.types.d.cts +253 -0
  251. package/dist/legacy/visualBuilder/types/collab.types.d.ts +253 -0
  252. package/dist/legacy/visualBuilder/types/collab.types.js +1 -0
  253. package/dist/legacy/visualBuilder/types/collab.types.js.map +1 -0
  254. package/dist/legacy/visualBuilder/utils/collabUtils.cjs +221 -0
  255. package/dist/legacy/visualBuilder/utils/collabUtils.cjs.map +1 -0
  256. package/dist/legacy/visualBuilder/utils/collabUtils.d.cts +76 -0
  257. package/dist/legacy/visualBuilder/utils/collabUtils.d.ts +76 -0
  258. package/dist/legacy/visualBuilder/utils/collabUtils.js +177 -0
  259. package/dist/legacy/visualBuilder/utils/collabUtils.js.map +1 -0
  260. package/dist/legacy/visualBuilder/utils/constants.cjs +6 -0
  261. package/dist/legacy/visualBuilder/utils/constants.cjs.map +1 -1
  262. package/dist/legacy/visualBuilder/utils/constants.d.cts +3 -1
  263. package/dist/legacy/visualBuilder/utils/constants.d.ts +3 -1
  264. package/dist/legacy/visualBuilder/utils/constants.js +4 -0
  265. package/dist/legacy/visualBuilder/utils/constants.js.map +1 -1
  266. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs +14 -0
  267. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  268. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.cts +15 -1
  269. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.ts +15 -1
  270. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js +14 -0
  271. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  272. package/dist/modern/configManager/config.default.cjs +15 -0
  273. package/dist/modern/configManager/config.default.cjs.map +1 -1
  274. package/dist/modern/configManager/config.default.d.cts +1 -0
  275. package/dist/modern/configManager/config.default.d.ts +1 -0
  276. package/dist/modern/configManager/config.default.js +15 -0
  277. package/dist/modern/configManager/config.default.js.map +1 -1
  278. package/dist/modern/configManager/configManager.d.cts +1 -0
  279. package/dist/modern/configManager/configManager.d.ts +1 -0
  280. package/dist/modern/configManager/handleUserConfig.d.cts +1 -0
  281. package/dist/modern/configManager/handleUserConfig.d.ts +1 -0
  282. package/dist/modern/configManager/index.d.cts +1 -0
  283. package/dist/modern/configManager/index.d.ts +1 -0
  284. package/dist/modern/index.cjs +45 -1
  285. package/dist/modern/index.cjs.map +1 -1
  286. package/dist/modern/index.d.cts +17 -2
  287. package/dist/modern/index.d.ts +17 -2
  288. package/dist/modern/index.js +45 -1
  289. package/dist/modern/index.js.map +1 -1
  290. package/dist/modern/livePreview/editButton/editButton.d.cts +1 -0
  291. package/dist/modern/livePreview/editButton/editButton.d.ts +1 -0
  292. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
  293. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
  294. package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.cts +1 -0
  295. package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.ts +1 -0
  296. package/dist/modern/preview/contentstack-live-preview-HOC.cjs +1 -1
  297. package/dist/modern/preview/contentstack-live-preview-HOC.d.cts +1 -0
  298. package/dist/modern/preview/contentstack-live-preview-HOC.d.ts +1 -0
  299. package/dist/modern/preview/contentstack-live-preview-HOC.js +1 -1
  300. package/dist/modern/types/types.cjs +1 -0
  301. package/dist/modern/types/types.cjs.map +1 -1
  302. package/dist/modern/types/types.d.cts +5 -0
  303. package/dist/modern/types/types.d.ts +5 -0
  304. package/dist/modern/types/types.js +1 -0
  305. package/dist/modern/types/types.js.map +1 -1
  306. package/dist/modern/visualBuilder/collab.style.cjs +660 -0
  307. package/dist/modern/visualBuilder/collab.style.cjs.map +1 -0
  308. package/dist/modern/visualBuilder/collab.style.d.cts +84 -0
  309. package/dist/modern/visualBuilder/collab.style.d.ts +84 -0
  310. package/dist/modern/visualBuilder/collab.style.js +635 -0
  311. package/dist/modern/visualBuilder/collab.style.js.map +1 -0
  312. package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.cjs +70 -0
  313. package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.cjs.map +1 -0
  314. package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.d.cts +12 -0
  315. package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.d.ts +12 -0
  316. package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.js +41 -0
  317. package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.js.map +1 -0
  318. package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.cjs +116 -0
  319. package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.cjs.map +1 -0
  320. package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.d.cts +18 -0
  321. package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.d.ts +18 -0
  322. package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.js +87 -0
  323. package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.js.map +1 -0
  324. package/dist/modern/visualBuilder/components/Collab/Button/Button.cjs +143 -0
  325. package/dist/modern/visualBuilder/components/Collab/Button/Button.cjs.map +1 -0
  326. package/dist/modern/visualBuilder/components/Collab/Button/Button.d.cts +29 -0
  327. package/dist/modern/visualBuilder/components/Collab/Button/Button.d.ts +29 -0
  328. package/dist/modern/visualBuilder/components/Collab/Button/Button.js +118 -0
  329. package/dist/modern/visualBuilder/components/Collab/Button/Button.js.map +1 -0
  330. package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.cjs +61 -0
  331. package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.cjs.map +1 -0
  332. package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.d.cts +28 -0
  333. package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.d.ts +28 -0
  334. package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.js +32 -0
  335. package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.js.map +1 -0
  336. package/dist/modern/visualBuilder/components/Collab/CollabIndicator.cjs +130 -0
  337. package/dist/modern/visualBuilder/components/Collab/CollabIndicator.cjs.map +1 -0
  338. package/dist/modern/visualBuilder/components/Collab/CollabIndicator.d.cts +10 -0
  339. package/dist/modern/visualBuilder/components/Collab/CollabIndicator.d.ts +10 -0
  340. package/dist/modern/visualBuilder/components/Collab/CollabIndicator.js +101 -0
  341. package/dist/modern/visualBuilder/components/Collab/CollabIndicator.js.map +1 -0
  342. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.cjs +87 -0
  343. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.cjs.map +1 -0
  344. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.d.cts +19 -0
  345. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.d.ts +19 -0
  346. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.js +58 -0
  347. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.js.map +1 -0
  348. package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.cjs +81 -0
  349. package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.cjs.map +1 -0
  350. package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.d.cts +17 -0
  351. package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.d.ts +17 -0
  352. package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.js +52 -0
  353. package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.js.map +1 -0
  354. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.cjs +150 -0
  355. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.cjs.map +1 -0
  356. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.d.cts +8 -0
  357. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.d.ts +8 -0
  358. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.js +121 -0
  359. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.js.map +1 -0
  360. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.cjs +159 -0
  361. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.cjs.map +1 -0
  362. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.d.cts +8 -0
  363. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.d.ts +8 -0
  364. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.js +130 -0
  365. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.js.map +1 -0
  366. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.cjs +58 -0
  367. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.cjs.map +1 -0
  368. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.d.cts +6 -0
  369. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.d.ts +6 -0
  370. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.js +29 -0
  371. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.js.map +1 -0
  372. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs +225 -0
  373. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs.map +1 -0
  374. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.d.cts +8 -0
  375. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.d.ts +8 -0
  376. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js +196 -0
  377. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js.map +1 -0
  378. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.cjs +42 -0
  379. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.cjs.map +1 -0
  380. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.d.cts +8 -0
  381. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.d.ts +8 -0
  382. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.js +9 -0
  383. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.js.map +1 -0
  384. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.cjs +25 -0
  385. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.cjs.map +1 -0
  386. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.d.cts +3 -0
  387. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.d.ts +3 -0
  388. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.js +3 -0
  389. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.js.map +1 -0
  390. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.cjs +92 -0
  391. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.cjs.map +1 -0
  392. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.d.cts +13 -0
  393. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.d.ts +13 -0
  394. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.js +63 -0
  395. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.js.map +1 -0
  396. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.cjs +155 -0
  397. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.cjs.map +1 -0
  398. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.d.cts +8 -0
  399. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.d.ts +8 -0
  400. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.js +126 -0
  401. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.js.map +1 -0
  402. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.cjs +92 -0
  403. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.cjs.map +1 -0
  404. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.d.cts +8 -0
  405. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.d.ts +8 -0
  406. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.js +63 -0
  407. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.js.map +1 -0
  408. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.cjs +93 -0
  409. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.cjs.map +1 -0
  410. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.d.cts +8 -0
  411. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.d.ts +8 -0
  412. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.js +64 -0
  413. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.js.map +1 -0
  414. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.cjs +241 -0
  415. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.cjs.map +1 -0
  416. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.d.cts +8 -0
  417. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.d.ts +8 -0
  418. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.js +212 -0
  419. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.js.map +1 -0
  420. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.cjs +101 -0
  421. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.cjs.map +1 -0
  422. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.d.cts +5 -0
  423. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.d.ts +5 -0
  424. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.js +72 -0
  425. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.js.map +1 -0
  426. package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.cjs +110 -0
  427. package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.cjs.map +1 -0
  428. package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.d.cts +17 -0
  429. package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.d.ts +17 -0
  430. package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.js +81 -0
  431. package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.js.map +1 -0
  432. package/dist/modern/visualBuilder/components/HighlightedCommentIcon.cjs +6 -1
  433. package/dist/modern/visualBuilder/components/HighlightedCommentIcon.cjs.map +1 -1
  434. package/dist/modern/visualBuilder/components/HighlightedCommentIcon.js +6 -1
  435. package/dist/modern/visualBuilder/components/HighlightedCommentIcon.js.map +1 -1
  436. package/dist/modern/visualBuilder/components/icons/CollabIcons.cjs +220 -0
  437. package/dist/modern/visualBuilder/components/icons/CollabIcons.cjs.map +1 -0
  438. package/dist/modern/visualBuilder/components/icons/CollabIcons.d.cts +16 -0
  439. package/dist/modern/visualBuilder/components/icons/CollabIcons.d.ts +16 -0
  440. package/dist/modern/visualBuilder/components/icons/CollabIcons.js +197 -0
  441. package/dist/modern/visualBuilder/components/icons/CollabIcons.js.map +1 -0
  442. package/dist/modern/visualBuilder/components/icons/index.cjs +16 -16
  443. package/dist/modern/visualBuilder/components/icons/index.cjs.map +1 -1
  444. package/dist/modern/visualBuilder/components/icons/index.js +16 -16
  445. package/dist/modern/visualBuilder/components/icons/index.js.map +1 -1
  446. package/dist/modern/visualBuilder/components/startEditingButton.d.cts +1 -0
  447. package/dist/modern/visualBuilder/components/startEditingButton.d.ts +1 -0
  448. package/dist/modern/visualBuilder/eventManager/useCollab.cjs +173 -0
  449. package/dist/modern/visualBuilder/eventManager/useCollab.cjs.map +1 -0
  450. package/dist/modern/visualBuilder/eventManager/useCollab.d.cts +3 -0
  451. package/dist/modern/visualBuilder/eventManager/useCollab.d.ts +3 -0
  452. package/dist/modern/visualBuilder/eventManager/useCollab.js +149 -0
  453. package/dist/modern/visualBuilder/eventManager/useCollab.js.map +1 -0
  454. package/dist/modern/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.cjs +5 -0
  455. package/dist/modern/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.cjs.map +1 -1
  456. package/dist/modern/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.js +5 -0
  457. package/dist/modern/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.js.map +1 -1
  458. package/dist/modern/visualBuilder/generators/generateCustomCursor.cjs +2 -1
  459. package/dist/modern/visualBuilder/generators/generateCustomCursor.cjs.map +1 -1
  460. package/dist/modern/visualBuilder/generators/generateCustomCursor.d.cts +2 -2
  461. package/dist/modern/visualBuilder/generators/generateCustomCursor.d.ts +2 -2
  462. package/dist/modern/visualBuilder/generators/generateCustomCursor.js +2 -1
  463. package/dist/modern/visualBuilder/generators/generateCustomCursor.js.map +1 -1
  464. package/dist/modern/visualBuilder/generators/generateHighlightedComment.cjs +2 -2
  465. package/dist/modern/visualBuilder/generators/generateHighlightedComment.cjs.map +1 -1
  466. package/dist/modern/visualBuilder/generators/generateHighlightedComment.js +2 -2
  467. package/dist/modern/visualBuilder/generators/generateHighlightedComment.js.map +1 -1
  468. package/dist/modern/visualBuilder/generators/generateThread.cjs +492 -0
  469. package/dist/modern/visualBuilder/generators/generateThread.cjs.map +1 -0
  470. package/dist/modern/visualBuilder/generators/generateThread.d.cts +27 -0
  471. package/dist/modern/visualBuilder/generators/generateThread.d.ts +27 -0
  472. package/dist/modern/visualBuilder/generators/generateThread.js +441 -0
  473. package/dist/modern/visualBuilder/generators/generateThread.js.map +1 -0
  474. package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.cjs +63 -0
  475. package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.cjs.map +1 -0
  476. package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.d.cts +11 -0
  477. package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.d.ts +11 -0
  478. package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.js +44 -0
  479. package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.js.map +1 -0
  480. package/dist/modern/visualBuilder/hooks/useCollabIndicator.cjs +128 -0
  481. package/dist/modern/visualBuilder/hooks/useCollabIndicator.cjs.map +1 -0
  482. package/dist/modern/visualBuilder/hooks/useCollabIndicator.d.cts +20 -0
  483. package/dist/modern/visualBuilder/hooks/useCollabIndicator.d.ts +20 -0
  484. package/dist/modern/visualBuilder/hooks/useCollabIndicator.js +95 -0
  485. package/dist/modern/visualBuilder/hooks/useCollabIndicator.js.map +1 -0
  486. package/dist/modern/visualBuilder/hooks/useCollabOperations.cjs +140 -0
  487. package/dist/modern/visualBuilder/hooks/useCollabOperations.cjs.map +1 -0
  488. package/dist/modern/visualBuilder/hooks/useCollabOperations.d.cts +16 -0
  489. package/dist/modern/visualBuilder/hooks/useCollabOperations.d.ts +16 -0
  490. package/dist/modern/visualBuilder/hooks/useCollabOperations.js +107 -0
  491. package/dist/modern/visualBuilder/hooks/useCollabOperations.js.map +1 -0
  492. package/dist/modern/visualBuilder/hooks/useCommentTextArea.cjs +423 -0
  493. package/dist/modern/visualBuilder/hooks/useCommentTextArea.cjs.map +1 -0
  494. package/dist/modern/visualBuilder/hooks/useCommentTextArea.d.cts +27 -0
  495. package/dist/modern/visualBuilder/hooks/useCommentTextArea.d.ts +27 -0
  496. package/dist/modern/visualBuilder/hooks/useCommentTextArea.js +402 -0
  497. package/dist/modern/visualBuilder/hooks/useCommentTextArea.js.map +1 -0
  498. package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.cjs +42 -0
  499. package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.cjs.map +1 -0
  500. package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.d.cts +3 -0
  501. package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.d.ts +3 -0
  502. package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.js +23 -0
  503. package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.js.map +1 -0
  504. package/dist/modern/visualBuilder/index.cjs +80 -28
  505. package/dist/modern/visualBuilder/index.cjs.map +1 -1
  506. package/dist/modern/visualBuilder/index.d.cts +1 -0
  507. package/dist/modern/visualBuilder/index.d.ts +1 -0
  508. package/dist/modern/visualBuilder/index.js +89 -28
  509. package/dist/modern/visualBuilder/index.js.map +1 -1
  510. package/dist/modern/visualBuilder/listeners/mouseClick.cjs +34 -0
  511. package/dist/modern/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  512. package/dist/modern/visualBuilder/listeners/mouseClick.js +34 -0
  513. package/dist/modern/visualBuilder/listeners/mouseClick.js.map +1 -1
  514. package/dist/modern/visualBuilder/listeners/mouseHover.cjs +49 -6
  515. package/dist/modern/visualBuilder/listeners/mouseHover.cjs.map +1 -1
  516. package/dist/modern/visualBuilder/listeners/mouseHover.js +39 -6
  517. package/dist/modern/visualBuilder/listeners/mouseHover.js.map +1 -1
  518. package/dist/modern/visualBuilder/types/collab.types.cjs +19 -0
  519. package/dist/modern/visualBuilder/types/collab.types.cjs.map +1 -0
  520. package/dist/modern/visualBuilder/types/collab.types.d.cts +253 -0
  521. package/dist/modern/visualBuilder/types/collab.types.d.ts +253 -0
  522. package/dist/modern/visualBuilder/types/collab.types.js +1 -0
  523. package/dist/modern/visualBuilder/types/collab.types.js.map +1 -0
  524. package/dist/modern/visualBuilder/utils/collabUtils.cjs +219 -0
  525. package/dist/modern/visualBuilder/utils/collabUtils.cjs.map +1 -0
  526. package/dist/modern/visualBuilder/utils/collabUtils.d.cts +76 -0
  527. package/dist/modern/visualBuilder/utils/collabUtils.d.ts +76 -0
  528. package/dist/modern/visualBuilder/utils/collabUtils.js +175 -0
  529. package/dist/modern/visualBuilder/utils/collabUtils.js.map +1 -0
  530. package/dist/modern/visualBuilder/utils/constants.cjs +6 -0
  531. package/dist/modern/visualBuilder/utils/constants.cjs.map +1 -1
  532. package/dist/modern/visualBuilder/utils/constants.d.cts +3 -1
  533. package/dist/modern/visualBuilder/utils/constants.d.ts +3 -1
  534. package/dist/modern/visualBuilder/utils/constants.js +4 -0
  535. package/dist/modern/visualBuilder/utils/constants.js.map +1 -1
  536. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs +14 -0
  537. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  538. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.cts +15 -1
  539. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.ts +15 -1
  540. package/dist/modern/visualBuilder/utils/types/postMessage.types.js +14 -0
  541. package/dist/modern/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  542. package/package.json +5 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/listeners/mouseClick.ts"],"sourcesContent":["import {\n cleanIndividualFieldResidual,\n handleIndividualFields,\n} from \"../utils/handleIndividualFields\";\n\nimport {\n getCsDataOfElement,\n getDOMEditStack,\n} from \"../utils/getCsDataOfElement\";\n\nimport { appendFocusedToolbar } from \"../generators/generateToolbar\";\n\nimport { addFocusOverlay, hideOverlay } from \"../generators/generateOverlay\";\n\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\n\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\n\nimport { VisualBuilder } from \"..\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport EventListenerHandlerParams from \"./types\";\nimport { toggleHighlightedCommentIconDisplay } from \"../generators/generateHighlightedComment\";\nimport { VB_EmptyBlockParentClass } from \"../..\";\nimport { getFieldVariantStatus } from \"../components/FieldRevert/FieldRevertComponent\";\n\ntype HandleBuilderInteractionParams = Omit<\n EventListenerHandlerParams,\n \"eventDetails\" | \"customCursor\"\n> & { reEvaluate?: boolean };\n\ntype AddFocusOverlayParams = Pick<\n EventListenerHandlerParams,\n \"overlayWrapper\" | \"resizeObserver\"\n> & { editableElement: Element; isFieldDisabled?: boolean };\n\ntype AddFocusedToolbarParams = Pick<\n EventListenerHandlerParams,\n \"eventDetails\" | \"focusedToolbar\"\n> & { hideOverlay: () => void; isVariant: boolean };\n\nfunction addOverlay(params: AddFocusOverlayParams) {\n if (!params.overlayWrapper || !params.editableElement) return;\n\n addFocusOverlay(\n params.editableElement,\n params.overlayWrapper,\n params.isFieldDisabled\n );\n params.resizeObserver.observe(params.editableElement);\n}\n\nexport function addFocusedToolbar(params: AddFocusedToolbarParams): void {\n const { editableElement } = params.eventDetails;\n\n if (!editableElement || !params.focusedToolbar) return;\n\n appendFocusedToolbar(\n params.eventDetails,\n params.focusedToolbar,\n params.hideOverlay,\n params.isVariant\n );\n}\n\nasync function handleBuilderInteraction(\n params: HandleBuilderInteractionParams\n): Promise<void> {\n const eventTarget = params.event.target as HTMLElement | null;\n const isAnchorElement = eventTarget instanceof HTMLAnchorElement;\n const elementHasCslp =\n eventTarget &&\n (eventTarget.hasAttribute(\"data-cslp\") ||\n eventTarget.closest(\"[data-cslp]\"));\n\n // if the target element is a studio-ui element, return\n // this is currently used for the \"Edit in Studio\" button\n if (eventTarget?.getAttribute(\"data-studio-ui\") === \"true\") {\n return;\n }\n\n if (params.event.altKey) {\n if (isAnchorElement) {\n params.event.preventDefault();\n params.event.stopPropagation();\n }\n return;\n }\n // prevent default behavior for anchor elements and elements with cslp attribute\n if (\n isAnchorElement ||\n (elementHasCslp && !eventTarget.closest(\".visual-builder__empty-block\"))\n ) {\n params.event.preventDefault();\n params.event.stopPropagation();\n }\n\n const eventDetails = getCsDataOfElement(params.event);\n\n // Send mouse click post message\n sendMouseClickPostMessage(eventDetails);\n\n if (\n !eventDetails ||\n !params.overlayWrapper ||\n !params.visualBuilderContainer\n ) {\n return;\n }\n\n const { editableElement, fieldMetadata } = eventDetails;\n const variantStatus = await getFieldVariantStatus(fieldMetadata);\n const isVariant = variantStatus\n ? Object.values(variantStatus).some((value) => value === true)\n : false;\n\n // Clean residuals if necessary\n cleanResidualsIfNeeded(params, editableElement);\n\n // Return if the selected element is an empty block\n if (isEmptyBlockElement(editableElement)) {\n return;\n }\n\n // when previous and current selected element is same, return.\n // this also avoids inserting psuedo-editable field (field data is\n // not equal to text content in DOM) when performing mouse\n // selections in the content editable\n const previousSelectedElement =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n if (\n isSameSelectedElement(previousSelectedElement, editableElement, params)\n ) {\n return;\n }\n\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM =\n editableElement;\n\n // Add overlay and focused toolbar\n addOverlayAndToolbar(params, eventDetails, editableElement, isVariant);\n\n const { cslpValue } = fieldMetadata;\n\n toggleHighlightedCommentIconDisplay(cslpValue, false);\n\n // Handle field schema and individual fields\n await handleFieldSchemaAndIndividualFields(\n params,\n eventDetails,\n fieldMetadata,\n editableElement,\n previousSelectedElement\n );\n\n // Observe changes to the editable element\n observeEditableElementChanges(params, editableElement);\n}\n\nfunction sendMouseClickPostMessage(eventDetails: any) {\n visualBuilderPostMessage\n ?.send(VisualBuilderPostMessageEvents.MOUSE_CLICK, {\n cslpData: eventDetails?.cslpData,\n fieldMetadata: eventDetails?.fieldMetadata,\n })\n .catch((err) => {\n console.warn(\"Error while sending post message\", err);\n });\n}\nfunction cleanResidualsIfNeeded(\n params: HandleBuilderInteractionParams,\n editableElement: Element\n) {\n const previousSelectedElement =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n if (\n (previousSelectedElement &&\n previousSelectedElement !== editableElement) ||\n params.reEvaluate\n ) {\n cleanIndividualFieldResidual({\n overlayWrapper: params.overlayWrapper!,\n visualBuilderContainer: params.visualBuilderContainer,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n }\n}\nfunction isEmptyBlockElement(editableElement: Element): boolean {\n return (\n editableElement.classList.contains(VB_EmptyBlockParentClass) ||\n editableElement.classList.contains(\"visual-builder__empty-block\")\n );\n}\n\nfunction isSameSelectedElement(\n previousSelectedElement: Element | null,\n editableElement: Element,\n params: HandleBuilderInteractionParams\n): boolean {\n return !!(\n previousSelectedElement &&\n previousSelectedElement === editableElement &&\n !params.reEvaluate\n );\n}\n\nfunction addOverlayAndToolbar(\n params: HandleBuilderInteractionParams,\n eventDetails: any,\n editableElement: Element,\n isVariant: boolean\n) {\n addOverlay({\n overlayWrapper: params.overlayWrapper,\n resizeObserver: params.resizeObserver,\n editableElement: editableElement,\n });\n\n addFocusedToolbar({\n eventDetails: eventDetails,\n focusedToolbar: params.focusedToolbar,\n hideOverlay: () => {\n hideOverlay({\n visualBuilderContainer: params.visualBuilderContainer,\n visualBuilderOverlayWrapper: params.overlayWrapper,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n },\n isVariant,\n });\n}\nasync function handleFieldSchemaAndIndividualFields(\n params: HandleBuilderInteractionParams,\n eventDetails: any,\n fieldMetadata: any,\n editableElement: Element,\n previousSelectedElement: Element | null\n) {\n const { content_type_uid, fieldPath } = fieldMetadata;\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n content_type_uid,\n fieldPath\n );\n\n if (fieldSchema) {\n const { isDisabled } = isFieldDisabled(fieldSchema, eventDetails);\n if (isDisabled) {\n addOverlay({\n overlayWrapper: params.overlayWrapper,\n resizeObserver: params.resizeObserver,\n editableElement: editableElement,\n isFieldDisabled: true,\n });\n }\n }\n\n visualBuilderPostMessage?.send(VisualBuilderPostMessageEvents.FOCUS_FIELD, {\n DOMEditStack: getDOMEditStack(editableElement),\n });\n\n await handleIndividualFields(eventDetails, {\n visualBuilderContainer: params.visualBuilderContainer!,\n resizeObserver: params.resizeObserver,\n lastEditedField: previousSelectedElement,\n });\n}\nfunction observeEditableElementChanges(\n params: HandleBuilderInteractionParams,\n editableElement: Element\n) {\n const focusElementObserver = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (\n mutation.type === \"attributes\" &&\n mutation.attributeName === \"data-cslp\"\n ) {\n focusElementObserver?.disconnect();\n VisualBuilder.VisualBuilderGlobalState.value.focusElementObserver =\n null;\n handleBuilderInteraction({ ...params, reEvaluate: true });\n }\n });\n });\n\n VisualBuilder.VisualBuilderGlobalState.value.focusElementObserver =\n focusElementObserver;\n focusElementObserver.observe(editableElement, { attributes: true });\n}\n\nexport default handleBuilderInteraction;\n"],"mappings":"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","names":["import__","visualBuilderPostMessage"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/listeners/mouseClick.ts"],"sourcesContent":["import {\n cleanIndividualFieldResidual,\n handleIndividualFields,\n} from \"../utils/handleIndividualFields\";\n\nimport {\n getCsDataOfElement,\n getDOMEditStack,\n} from \"../utils/getCsDataOfElement\";\n\nimport { appendFocusedToolbar } from \"../generators/generateToolbar\";\n\nimport { addFocusOverlay, hideOverlay } from \"../generators/generateOverlay\";\n\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\n\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\n\nimport { VisualBuilder } from \"..\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport EventListenerHandlerParams from \"./types\";\nimport { toggleHighlightedCommentIconDisplay } from \"../generators/generateHighlightedComment\";\nimport { VB_EmptyBlockParentClass } from \"../..\";\nimport { getFieldVariantStatus } from \"../components/FieldRevert/FieldRevertComponent\";\nimport getXPath from \"get-xpath\";\nimport Config from \"../../configManager/configManager\";\nimport { generateThread } from \"../generators/generateThread\";\nimport { isCollabThread } from \"../generators/generateThread\";\nimport { toggleCollabPopup } from \"../generators/generateThread\";\nimport { fixSvgXPath } from \"../utils/collabUtils\";\n\ntype HandleBuilderInteractionParams = Omit<\n EventListenerHandlerParams,\n \"eventDetails\" | \"customCursor\"\n> & { reEvaluate?: boolean };\n\ntype AddFocusOverlayParams = Pick<\n EventListenerHandlerParams,\n \"overlayWrapper\" | \"resizeObserver\"\n> & { editableElement: Element; isFieldDisabled?: boolean };\n\ntype AddFocusedToolbarParams = Pick<\n EventListenerHandlerParams,\n \"eventDetails\" | \"focusedToolbar\"\n> & { hideOverlay: () => void; isVariant: boolean };\n\nfunction addOverlay(params: AddFocusOverlayParams) {\n if (!params.overlayWrapper || !params.editableElement) return;\n\n addFocusOverlay(\n params.editableElement,\n params.overlayWrapper,\n params.isFieldDisabled\n );\n params.resizeObserver.observe(params.editableElement);\n}\n\nexport function addFocusedToolbar(params: AddFocusedToolbarParams): void {\n const { editableElement } = params.eventDetails;\n\n if (!editableElement || !params.focusedToolbar) return;\n\n appendFocusedToolbar(\n params.eventDetails,\n params.focusedToolbar,\n params.hideOverlay,\n params.isVariant\n );\n}\n\nasync function handleBuilderInteraction(\n params: HandleBuilderInteractionParams\n): Promise<void> {\n const eventTarget = params.event.target as HTMLElement | null;\n const isAnchorElement = eventTarget instanceof HTMLAnchorElement;\n const elementHasCslp =\n eventTarget &&\n (eventTarget.hasAttribute(\"data-cslp\") ||\n eventTarget.closest(\"[data-cslp]\"));\n\n // if the target element is a studio-ui element, return\n // this is currently used for the \"Edit in Studio\" button\n if (eventTarget?.getAttribute(\"data-studio-ui\") === \"true\") {\n return;\n }\n\n if (params.event.altKey) {\n if (isAnchorElement) {\n params.event.preventDefault();\n params.event.stopPropagation();\n }\n return;\n }\n // prevent default behavior for anchor elements and elements with cslp attribute\n if (\n isAnchorElement ||\n (elementHasCslp && !eventTarget.closest(\".visual-builder__empty-block\"))\n ) {\n params.event.preventDefault();\n params.event.stopPropagation();\n }\n\n const config = Config.get();\n\n if (config?.collab.enable === true) {\n if (config?.collab.pauseFeedback) return;\n const xpath = fixSvgXPath(getXPath(eventTarget));\n if (!eventTarget) return;\n\n const rect = eventTarget.getBoundingClientRect();\n const relativeX = (params.event.clientX - rect.left) / rect.width;\n const relativeY = (params.event.clientY - rect.top) / rect.height;\n\n if (!isCollabThread(eventTarget)) {\n params.event.preventDefault();\n params.event.stopPropagation();\n }\n\n if (isCollabThread(eventTarget)) {\n Config.set(\"collab.isFeedbackMode\", false);\n } else if (config?.collab.isFeedbackMode) {\n generateThread(\n { xpath, relativeX, relativeY },\n {\n isNewThread: true,\n updateConfig: true,\n }\n );\n } else {\n toggleCollabPopup({ threadUid: \"\", action: \"close\" });\n Config.set(\"collab.isFeedbackMode\", true);\n }\n return;\n }\n\n const eventDetails = getCsDataOfElement(params.event);\n\n // Send mouse click post message\n sendMouseClickPostMessage(eventDetails);\n\n if (\n !eventDetails ||\n !params.overlayWrapper ||\n !params.visualBuilderContainer\n ) {\n return;\n }\n\n const { editableElement, fieldMetadata } = eventDetails;\n const variantStatus = await getFieldVariantStatus(fieldMetadata);\n const isVariant = variantStatus\n ? Object.values(variantStatus).some((value) => value === true)\n : false;\n\n // Clean residuals if necessary\n cleanResidualsIfNeeded(params, editableElement);\n\n // Return if the selected element is an empty block\n if (isEmptyBlockElement(editableElement)) {\n return;\n }\n\n // when previous and current selected element is same, return.\n // this also avoids inserting psuedo-editable field (field data is\n // not equal to text content in DOM) when performing mouse\n // selections in the content editable\n const previousSelectedElement =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n if (\n isSameSelectedElement(previousSelectedElement, editableElement, params)\n ) {\n return;\n }\n\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM =\n editableElement;\n\n // Add overlay and focused toolbar\n addOverlayAndToolbar(params, eventDetails, editableElement, isVariant);\n\n const { cslpValue } = fieldMetadata;\n\n toggleHighlightedCommentIconDisplay(cslpValue, false);\n\n // Handle field schema and individual fields\n await handleFieldSchemaAndIndividualFields(\n params,\n eventDetails,\n fieldMetadata,\n editableElement,\n previousSelectedElement\n );\n\n // Observe changes to the editable element\n observeEditableElementChanges(params, editableElement);\n}\n\nfunction sendMouseClickPostMessage(eventDetails: any) {\n visualBuilderPostMessage\n ?.send(VisualBuilderPostMessageEvents.MOUSE_CLICK, {\n cslpData: eventDetails?.cslpData,\n fieldMetadata: eventDetails?.fieldMetadata,\n })\n .catch((err) => {\n console.warn(\"Error while sending post message\", err);\n });\n}\nfunction cleanResidualsIfNeeded(\n params: HandleBuilderInteractionParams,\n editableElement: Element\n) {\n const previousSelectedElement =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n if (\n (previousSelectedElement &&\n previousSelectedElement !== editableElement) ||\n params.reEvaluate\n ) {\n cleanIndividualFieldResidual({\n overlayWrapper: params.overlayWrapper!,\n visualBuilderContainer: params.visualBuilderContainer,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n }\n}\nfunction isEmptyBlockElement(editableElement: Element): boolean {\n return (\n editableElement.classList.contains(VB_EmptyBlockParentClass) ||\n editableElement.classList.contains(\"visual-builder__empty-block\")\n );\n}\n\nfunction isSameSelectedElement(\n previousSelectedElement: Element | null,\n editableElement: Element,\n params: HandleBuilderInteractionParams\n): boolean {\n return !!(\n previousSelectedElement &&\n previousSelectedElement === editableElement &&\n !params.reEvaluate\n );\n}\n\nfunction addOverlayAndToolbar(\n params: HandleBuilderInteractionParams,\n eventDetails: any,\n editableElement: Element,\n isVariant: boolean\n) {\n addOverlay({\n overlayWrapper: params.overlayWrapper,\n resizeObserver: params.resizeObserver,\n editableElement: editableElement,\n });\n\n addFocusedToolbar({\n eventDetails: eventDetails,\n focusedToolbar: params.focusedToolbar,\n hideOverlay: () => {\n hideOverlay({\n visualBuilderContainer: params.visualBuilderContainer,\n visualBuilderOverlayWrapper: params.overlayWrapper,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n },\n isVariant,\n });\n}\nasync function handleFieldSchemaAndIndividualFields(\n params: HandleBuilderInteractionParams,\n eventDetails: any,\n fieldMetadata: any,\n editableElement: Element,\n previousSelectedElement: Element | null\n) {\n const { content_type_uid, fieldPath } = fieldMetadata;\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n content_type_uid,\n fieldPath\n );\n\n if (fieldSchema) {\n const { isDisabled } = isFieldDisabled(fieldSchema, eventDetails);\n if (isDisabled) {\n addOverlay({\n overlayWrapper: params.overlayWrapper,\n resizeObserver: params.resizeObserver,\n editableElement: editableElement,\n isFieldDisabled: true,\n });\n }\n }\n\n visualBuilderPostMessage?.send(VisualBuilderPostMessageEvents.FOCUS_FIELD, {\n DOMEditStack: getDOMEditStack(editableElement),\n });\n\n await handleIndividualFields(eventDetails, {\n visualBuilderContainer: params.visualBuilderContainer!,\n resizeObserver: params.resizeObserver,\n lastEditedField: previousSelectedElement,\n });\n}\nfunction observeEditableElementChanges(\n params: HandleBuilderInteractionParams,\n editableElement: Element\n) {\n const focusElementObserver = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (\n mutation.type === \"attributes\" &&\n mutation.attributeName === \"data-cslp\"\n ) {\n focusElementObserver?.disconnect();\n VisualBuilder.VisualBuilderGlobalState.value.focusElementObserver =\n null;\n handleBuilderInteraction({ ...params, reEvaluate: true });\n }\n });\n });\n\n VisualBuilder.VisualBuilderGlobalState.value.focusElementObserver =\n focusElementObserver;\n focusElementObserver.observe(editableElement, { attributes: true });\n}\n\nexport default handleBuilderInteraction;\n"],"mappings":"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","names":["import__","import_generateThread","Config","getXPath","visualBuilderPostMessage"]}
@@ -19,6 +19,12 @@ import { isFieldDisabled } from "../utils/isFieldDisabled.js";
19
19
  import { toggleHighlightedCommentIconDisplay } from "../generators/generateHighlightedComment.js";
20
20
  import { VB_EmptyBlockParentClass } from "../../index.js";
21
21
  import { getFieldVariantStatus } from "../components/FieldRevert/FieldRevertComponent.js";
22
+ import getXPath from "get-xpath";
23
+ import Config from "../../configManager/configManager.js";
24
+ import { generateThread } from "../generators/generateThread.js";
25
+ import { isCollabThread } from "../generators/generateThread.js";
26
+ import { toggleCollabPopup } from "../generators/generateThread.js";
27
+ import { fixSvgXPath } from "../utils/collabUtils.js";
22
28
  function addOverlay(params) {
23
29
  if (!params.overlayWrapper || !params.editableElement) return;
24
30
  addFocusOverlay(
@@ -56,6 +62,34 @@ async function handleBuilderInteraction(params) {
56
62
  params.event.preventDefault();
57
63
  params.event.stopPropagation();
58
64
  }
65
+ const config = Config.get();
66
+ if ((config == null ? void 0 : config.collab.enable) === true) {
67
+ if (config == null ? void 0 : config.collab.pauseFeedback) return;
68
+ const xpath = fixSvgXPath(getXPath(eventTarget));
69
+ if (!eventTarget) return;
70
+ const rect = eventTarget.getBoundingClientRect();
71
+ const relativeX = (params.event.clientX - rect.left) / rect.width;
72
+ const relativeY = (params.event.clientY - rect.top) / rect.height;
73
+ if (!isCollabThread(eventTarget)) {
74
+ params.event.preventDefault();
75
+ params.event.stopPropagation();
76
+ }
77
+ if (isCollabThread(eventTarget)) {
78
+ Config.set("collab.isFeedbackMode", false);
79
+ } else if (config == null ? void 0 : config.collab.isFeedbackMode) {
80
+ generateThread(
81
+ { xpath, relativeX, relativeY },
82
+ {
83
+ isNewThread: true,
84
+ updateConfig: true
85
+ }
86
+ );
87
+ } else {
88
+ toggleCollabPopup({ threadUid: "", action: "close" });
89
+ Config.set("collab.isFeedbackMode", true);
90
+ }
91
+ return;
92
+ }
59
93
  const eventDetails = getCsDataOfElement(params.event);
60
94
  sendMouseClickPostMessage(eventDetails);
61
95
  if (!eventDetails || !params.overlayWrapper || !params.visualBuilderContainer) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/listeners/mouseClick.ts"],"sourcesContent":["import {\n cleanIndividualFieldResidual,\n handleIndividualFields,\n} from \"../utils/handleIndividualFields\";\n\nimport {\n getCsDataOfElement,\n getDOMEditStack,\n} from \"../utils/getCsDataOfElement\";\n\nimport { appendFocusedToolbar } from \"../generators/generateToolbar\";\n\nimport { addFocusOverlay, hideOverlay } from \"../generators/generateOverlay\";\n\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\n\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\n\nimport { VisualBuilder } from \"..\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport EventListenerHandlerParams from \"./types\";\nimport { toggleHighlightedCommentIconDisplay } from \"../generators/generateHighlightedComment\";\nimport { VB_EmptyBlockParentClass } from \"../..\";\nimport { getFieldVariantStatus } from \"../components/FieldRevert/FieldRevertComponent\";\n\ntype HandleBuilderInteractionParams = Omit<\n EventListenerHandlerParams,\n \"eventDetails\" | \"customCursor\"\n> & { reEvaluate?: boolean };\n\ntype AddFocusOverlayParams = Pick<\n EventListenerHandlerParams,\n \"overlayWrapper\" | \"resizeObserver\"\n> & { editableElement: Element; isFieldDisabled?: boolean };\n\ntype AddFocusedToolbarParams = Pick<\n EventListenerHandlerParams,\n \"eventDetails\" | \"focusedToolbar\"\n> & { hideOverlay: () => void; isVariant: boolean };\n\nfunction addOverlay(params: AddFocusOverlayParams) {\n if (!params.overlayWrapper || !params.editableElement) return;\n\n addFocusOverlay(\n params.editableElement,\n params.overlayWrapper,\n params.isFieldDisabled\n );\n params.resizeObserver.observe(params.editableElement);\n}\n\nexport function addFocusedToolbar(params: AddFocusedToolbarParams): void {\n const { editableElement } = params.eventDetails;\n\n if (!editableElement || !params.focusedToolbar) return;\n\n appendFocusedToolbar(\n params.eventDetails,\n params.focusedToolbar,\n params.hideOverlay,\n params.isVariant\n );\n}\n\nasync function handleBuilderInteraction(\n params: HandleBuilderInteractionParams\n): Promise<void> {\n const eventTarget = params.event.target as HTMLElement | null;\n const isAnchorElement = eventTarget instanceof HTMLAnchorElement;\n const elementHasCslp =\n eventTarget &&\n (eventTarget.hasAttribute(\"data-cslp\") ||\n eventTarget.closest(\"[data-cslp]\"));\n\n // if the target element is a studio-ui element, return\n // this is currently used for the \"Edit in Studio\" button\n if (eventTarget?.getAttribute(\"data-studio-ui\") === \"true\") {\n return;\n }\n\n if (params.event.altKey) {\n if (isAnchorElement) {\n params.event.preventDefault();\n params.event.stopPropagation();\n }\n return;\n }\n // prevent default behavior for anchor elements and elements with cslp attribute\n if (\n isAnchorElement ||\n (elementHasCslp && !eventTarget.closest(\".visual-builder__empty-block\"))\n ) {\n params.event.preventDefault();\n params.event.stopPropagation();\n }\n\n const eventDetails = getCsDataOfElement(params.event);\n\n // Send mouse click post message\n sendMouseClickPostMessage(eventDetails);\n\n if (\n !eventDetails ||\n !params.overlayWrapper ||\n !params.visualBuilderContainer\n ) {\n return;\n }\n\n const { editableElement, fieldMetadata } = eventDetails;\n const variantStatus = await getFieldVariantStatus(fieldMetadata);\n const isVariant = variantStatus\n ? Object.values(variantStatus).some((value) => value === true)\n : false;\n\n // Clean residuals if necessary\n cleanResidualsIfNeeded(params, editableElement);\n\n // Return if the selected element is an empty block\n if (isEmptyBlockElement(editableElement)) {\n return;\n }\n\n // when previous and current selected element is same, return.\n // this also avoids inserting psuedo-editable field (field data is\n // not equal to text content in DOM) when performing mouse\n // selections in the content editable\n const previousSelectedElement =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n if (\n isSameSelectedElement(previousSelectedElement, editableElement, params)\n ) {\n return;\n }\n\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM =\n editableElement;\n\n // Add overlay and focused toolbar\n addOverlayAndToolbar(params, eventDetails, editableElement, isVariant);\n\n const { cslpValue } = fieldMetadata;\n\n toggleHighlightedCommentIconDisplay(cslpValue, false);\n\n // Handle field schema and individual fields\n await handleFieldSchemaAndIndividualFields(\n params,\n eventDetails,\n fieldMetadata,\n editableElement,\n previousSelectedElement\n );\n\n // Observe changes to the editable element\n observeEditableElementChanges(params, editableElement);\n}\n\nfunction sendMouseClickPostMessage(eventDetails: any) {\n visualBuilderPostMessage\n ?.send(VisualBuilderPostMessageEvents.MOUSE_CLICK, {\n cslpData: eventDetails?.cslpData,\n fieldMetadata: eventDetails?.fieldMetadata,\n })\n .catch((err) => {\n console.warn(\"Error while sending post message\", err);\n });\n}\nfunction cleanResidualsIfNeeded(\n params: HandleBuilderInteractionParams,\n editableElement: Element\n) {\n const previousSelectedElement =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n if (\n (previousSelectedElement &&\n previousSelectedElement !== editableElement) ||\n params.reEvaluate\n ) {\n cleanIndividualFieldResidual({\n overlayWrapper: params.overlayWrapper!,\n visualBuilderContainer: params.visualBuilderContainer,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n }\n}\nfunction isEmptyBlockElement(editableElement: Element): boolean {\n return (\n editableElement.classList.contains(VB_EmptyBlockParentClass) ||\n editableElement.classList.contains(\"visual-builder__empty-block\")\n );\n}\n\nfunction isSameSelectedElement(\n previousSelectedElement: Element | null,\n editableElement: Element,\n params: HandleBuilderInteractionParams\n): boolean {\n return !!(\n previousSelectedElement &&\n previousSelectedElement === editableElement &&\n !params.reEvaluate\n );\n}\n\nfunction addOverlayAndToolbar(\n params: HandleBuilderInteractionParams,\n eventDetails: any,\n editableElement: Element,\n isVariant: boolean\n) {\n addOverlay({\n overlayWrapper: params.overlayWrapper,\n resizeObserver: params.resizeObserver,\n editableElement: editableElement,\n });\n\n addFocusedToolbar({\n eventDetails: eventDetails,\n focusedToolbar: params.focusedToolbar,\n hideOverlay: () => {\n hideOverlay({\n visualBuilderContainer: params.visualBuilderContainer,\n visualBuilderOverlayWrapper: params.overlayWrapper,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n },\n isVariant,\n });\n}\nasync function handleFieldSchemaAndIndividualFields(\n params: HandleBuilderInteractionParams,\n eventDetails: any,\n fieldMetadata: any,\n editableElement: Element,\n previousSelectedElement: Element | null\n) {\n const { content_type_uid, fieldPath } = fieldMetadata;\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n content_type_uid,\n fieldPath\n );\n\n if (fieldSchema) {\n const { isDisabled } = isFieldDisabled(fieldSchema, eventDetails);\n if (isDisabled) {\n addOverlay({\n overlayWrapper: params.overlayWrapper,\n resizeObserver: params.resizeObserver,\n editableElement: editableElement,\n isFieldDisabled: true,\n });\n }\n }\n\n visualBuilderPostMessage?.send(VisualBuilderPostMessageEvents.FOCUS_FIELD, {\n DOMEditStack: getDOMEditStack(editableElement),\n });\n\n await handleIndividualFields(eventDetails, {\n visualBuilderContainer: params.visualBuilderContainer!,\n resizeObserver: params.resizeObserver,\n lastEditedField: previousSelectedElement,\n });\n}\nfunction observeEditableElementChanges(\n params: HandleBuilderInteractionParams,\n editableElement: Element\n) {\n const focusElementObserver = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (\n mutation.type === \"attributes\" &&\n mutation.attributeName === \"data-cslp\"\n ) {\n focusElementObserver?.disconnect();\n VisualBuilder.VisualBuilderGlobalState.value.focusElementObserver =\n null;\n handleBuilderInteraction({ ...params, reEvaluate: true });\n }\n });\n });\n\n VisualBuilder.VisualBuilderGlobalState.value.focusElementObserver =\n focusElementObserver;\n focusElementObserver.observe(editableElement, { attributes: true });\n}\n\nexport default handleBuilderInteraction;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/listeners/mouseClick.ts"],"sourcesContent":["import {\n cleanIndividualFieldResidual,\n handleIndividualFields,\n} from \"../utils/handleIndividualFields\";\n\nimport {\n getCsDataOfElement,\n getDOMEditStack,\n} from \"../utils/getCsDataOfElement\";\n\nimport { appendFocusedToolbar } from \"../generators/generateToolbar\";\n\nimport { addFocusOverlay, hideOverlay } from \"../generators/generateOverlay\";\n\nimport visualBuilderPostMessage from \"../utils/visualBuilderPostMessage\";\n\nimport { VisualBuilderPostMessageEvents } from \"../utils/types/postMessage.types\";\n\nimport { VisualBuilder } from \"..\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport EventListenerHandlerParams from \"./types\";\nimport { toggleHighlightedCommentIconDisplay } from \"../generators/generateHighlightedComment\";\nimport { VB_EmptyBlockParentClass } from \"../..\";\nimport { getFieldVariantStatus } from \"../components/FieldRevert/FieldRevertComponent\";\nimport getXPath from \"get-xpath\";\nimport Config from \"../../configManager/configManager\";\nimport { generateThread } from \"../generators/generateThread\";\nimport { isCollabThread } from \"../generators/generateThread\";\nimport { toggleCollabPopup } from \"../generators/generateThread\";\nimport { fixSvgXPath } from \"../utils/collabUtils\";\n\ntype HandleBuilderInteractionParams = Omit<\n EventListenerHandlerParams,\n \"eventDetails\" | \"customCursor\"\n> & { reEvaluate?: boolean };\n\ntype AddFocusOverlayParams = Pick<\n EventListenerHandlerParams,\n \"overlayWrapper\" | \"resizeObserver\"\n> & { editableElement: Element; isFieldDisabled?: boolean };\n\ntype AddFocusedToolbarParams = Pick<\n EventListenerHandlerParams,\n \"eventDetails\" | \"focusedToolbar\"\n> & { hideOverlay: () => void; isVariant: boolean };\n\nfunction addOverlay(params: AddFocusOverlayParams) {\n if (!params.overlayWrapper || !params.editableElement) return;\n\n addFocusOverlay(\n params.editableElement,\n params.overlayWrapper,\n params.isFieldDisabled\n );\n params.resizeObserver.observe(params.editableElement);\n}\n\nexport function addFocusedToolbar(params: AddFocusedToolbarParams): void {\n const { editableElement } = params.eventDetails;\n\n if (!editableElement || !params.focusedToolbar) return;\n\n appendFocusedToolbar(\n params.eventDetails,\n params.focusedToolbar,\n params.hideOverlay,\n params.isVariant\n );\n}\n\nasync function handleBuilderInteraction(\n params: HandleBuilderInteractionParams\n): Promise<void> {\n const eventTarget = params.event.target as HTMLElement | null;\n const isAnchorElement = eventTarget instanceof HTMLAnchorElement;\n const elementHasCslp =\n eventTarget &&\n (eventTarget.hasAttribute(\"data-cslp\") ||\n eventTarget.closest(\"[data-cslp]\"));\n\n // if the target element is a studio-ui element, return\n // this is currently used for the \"Edit in Studio\" button\n if (eventTarget?.getAttribute(\"data-studio-ui\") === \"true\") {\n return;\n }\n\n if (params.event.altKey) {\n if (isAnchorElement) {\n params.event.preventDefault();\n params.event.stopPropagation();\n }\n return;\n }\n // prevent default behavior for anchor elements and elements with cslp attribute\n if (\n isAnchorElement ||\n (elementHasCslp && !eventTarget.closest(\".visual-builder__empty-block\"))\n ) {\n params.event.preventDefault();\n params.event.stopPropagation();\n }\n\n const config = Config.get();\n\n if (config?.collab.enable === true) {\n if (config?.collab.pauseFeedback) return;\n const xpath = fixSvgXPath(getXPath(eventTarget));\n if (!eventTarget) return;\n\n const rect = eventTarget.getBoundingClientRect();\n const relativeX = (params.event.clientX - rect.left) / rect.width;\n const relativeY = (params.event.clientY - rect.top) / rect.height;\n\n if (!isCollabThread(eventTarget)) {\n params.event.preventDefault();\n params.event.stopPropagation();\n }\n\n if (isCollabThread(eventTarget)) {\n Config.set(\"collab.isFeedbackMode\", false);\n } else if (config?.collab.isFeedbackMode) {\n generateThread(\n { xpath, relativeX, relativeY },\n {\n isNewThread: true,\n updateConfig: true,\n }\n );\n } else {\n toggleCollabPopup({ threadUid: \"\", action: \"close\" });\n Config.set(\"collab.isFeedbackMode\", true);\n }\n return;\n }\n\n const eventDetails = getCsDataOfElement(params.event);\n\n // Send mouse click post message\n sendMouseClickPostMessage(eventDetails);\n\n if (\n !eventDetails ||\n !params.overlayWrapper ||\n !params.visualBuilderContainer\n ) {\n return;\n }\n\n const { editableElement, fieldMetadata } = eventDetails;\n const variantStatus = await getFieldVariantStatus(fieldMetadata);\n const isVariant = variantStatus\n ? Object.values(variantStatus).some((value) => value === true)\n : false;\n\n // Clean residuals if necessary\n cleanResidualsIfNeeded(params, editableElement);\n\n // Return if the selected element is an empty block\n if (isEmptyBlockElement(editableElement)) {\n return;\n }\n\n // when previous and current selected element is same, return.\n // this also avoids inserting psuedo-editable field (field data is\n // not equal to text content in DOM) when performing mouse\n // selections in the content editable\n const previousSelectedElement =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n if (\n isSameSelectedElement(previousSelectedElement, editableElement, params)\n ) {\n return;\n }\n\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM =\n editableElement;\n\n // Add overlay and focused toolbar\n addOverlayAndToolbar(params, eventDetails, editableElement, isVariant);\n\n const { cslpValue } = fieldMetadata;\n\n toggleHighlightedCommentIconDisplay(cslpValue, false);\n\n // Handle field schema and individual fields\n await handleFieldSchemaAndIndividualFields(\n params,\n eventDetails,\n fieldMetadata,\n editableElement,\n previousSelectedElement\n );\n\n // Observe changes to the editable element\n observeEditableElementChanges(params, editableElement);\n}\n\nfunction sendMouseClickPostMessage(eventDetails: any) {\n visualBuilderPostMessage\n ?.send(VisualBuilderPostMessageEvents.MOUSE_CLICK, {\n cslpData: eventDetails?.cslpData,\n fieldMetadata: eventDetails?.fieldMetadata,\n })\n .catch((err) => {\n console.warn(\"Error while sending post message\", err);\n });\n}\nfunction cleanResidualsIfNeeded(\n params: HandleBuilderInteractionParams,\n editableElement: Element\n) {\n const previousSelectedElement =\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM;\n if (\n (previousSelectedElement &&\n previousSelectedElement !== editableElement) ||\n params.reEvaluate\n ) {\n cleanIndividualFieldResidual({\n overlayWrapper: params.overlayWrapper!,\n visualBuilderContainer: params.visualBuilderContainer,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n }\n}\nfunction isEmptyBlockElement(editableElement: Element): boolean {\n return (\n editableElement.classList.contains(VB_EmptyBlockParentClass) ||\n editableElement.classList.contains(\"visual-builder__empty-block\")\n );\n}\n\nfunction isSameSelectedElement(\n previousSelectedElement: Element | null,\n editableElement: Element,\n params: HandleBuilderInteractionParams\n): boolean {\n return !!(\n previousSelectedElement &&\n previousSelectedElement === editableElement &&\n !params.reEvaluate\n );\n}\n\nfunction addOverlayAndToolbar(\n params: HandleBuilderInteractionParams,\n eventDetails: any,\n editableElement: Element,\n isVariant: boolean\n) {\n addOverlay({\n overlayWrapper: params.overlayWrapper,\n resizeObserver: params.resizeObserver,\n editableElement: editableElement,\n });\n\n addFocusedToolbar({\n eventDetails: eventDetails,\n focusedToolbar: params.focusedToolbar,\n hideOverlay: () => {\n hideOverlay({\n visualBuilderContainer: params.visualBuilderContainer,\n visualBuilderOverlayWrapper: params.overlayWrapper,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n },\n isVariant,\n });\n}\nasync function handleFieldSchemaAndIndividualFields(\n params: HandleBuilderInteractionParams,\n eventDetails: any,\n fieldMetadata: any,\n editableElement: Element,\n previousSelectedElement: Element | null\n) {\n const { content_type_uid, fieldPath } = fieldMetadata;\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n content_type_uid,\n fieldPath\n );\n\n if (fieldSchema) {\n const { isDisabled } = isFieldDisabled(fieldSchema, eventDetails);\n if (isDisabled) {\n addOverlay({\n overlayWrapper: params.overlayWrapper,\n resizeObserver: params.resizeObserver,\n editableElement: editableElement,\n isFieldDisabled: true,\n });\n }\n }\n\n visualBuilderPostMessage?.send(VisualBuilderPostMessageEvents.FOCUS_FIELD, {\n DOMEditStack: getDOMEditStack(editableElement),\n });\n\n await handleIndividualFields(eventDetails, {\n visualBuilderContainer: params.visualBuilderContainer!,\n resizeObserver: params.resizeObserver,\n lastEditedField: previousSelectedElement,\n });\n}\nfunction observeEditableElementChanges(\n params: HandleBuilderInteractionParams,\n editableElement: Element\n) {\n const focusElementObserver = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (\n mutation.type === \"attributes\" &&\n mutation.attributeName === \"data-cslp\"\n ) {\n focusElementObserver?.disconnect();\n VisualBuilder.VisualBuilderGlobalState.value.focusElementObserver =\n null;\n handleBuilderInteraction({ ...params, reEvaluate: true });\n }\n });\n });\n\n VisualBuilder.VisualBuilderGlobalState.value.focusElementObserver =\n focusElementObserver;\n focusElementObserver.observe(editableElement, { attributes: true });\n}\n\nexport default handleBuilderInteraction;\n"],"mappings":";;;AAAA;AAAA,EACI;AAAA,EACA;AAAA,OACG;AAEP;AAAA,EACI;AAAA,EACA;AAAA,OACG;AAEP,SAAS,4BAA4B;AAErC,SAAS,iBAAiB,mBAAmB;AAE7C,OAAO,8BAA8B;AAErC,SAAS,sCAAsC;AAE/C,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAEhC,SAAS,2CAA2C;AACpD,SAAS,gCAAgC;AACzC,SAAS,6BAA6B;AACtC,OAAO,cAAc;AACrB,OAAO,YAAY;AACnB,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAC/B,SAAS,yBAAyB;AAClC,SAAS,mBAAmB;AAiB5B,SAAS,WAAW,QAA+B;AAC/C,MAAI,CAAC,OAAO,kBAAkB,CAAC,OAAO,gBAAiB;AAEvD;AAAA,IACI,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACX;AACA,SAAO,eAAe,QAAQ,OAAO,eAAe;AACxD;AAEO,SAAS,kBAAkB,QAAuC;AACrE,QAAM,EAAE,gBAAgB,IAAI,OAAO;AAEnC,MAAI,CAAC,mBAAmB,CAAC,OAAO,eAAgB;AAEhD;AAAA,IACI,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACX;AACJ;AAEA,eAAe,yBACX,QACa;AACb,QAAM,cAAc,OAAO,MAAM;AACjC,QAAM,kBAAkB,uBAAuB;AAC/C,QAAM,iBACF,gBACC,YAAY,aAAa,WAAW,KACjC,YAAY,QAAQ,aAAa;AAIzC,OAAI,2CAAa,aAAa,uBAAsB,QAAQ;AACxD;AAAA,EACJ;AAEA,MAAI,OAAO,MAAM,QAAQ;AACrB,QAAI,iBAAiB;AACjB,aAAO,MAAM,eAAe;AAC5B,aAAO,MAAM,gBAAgB;AAAA,IACjC;AACA;AAAA,EACJ;AAEA,MACI,mBACC,kBAAkB,CAAC,YAAY,QAAQ,8BAA8B,GACxE;AACE,WAAO,MAAM,eAAe;AAC5B,WAAO,MAAM,gBAAgB;AAAA,EACjC;AAEA,QAAM,SAAS,OAAO,IAAI;AAE1B,OAAI,iCAAQ,OAAO,YAAW,MAAM;AAChC,QAAI,iCAAQ,OAAO,cAAe;AAClC,UAAM,QAAQ,YAAY,SAAS,WAAW,CAAC;AAC/C,QAAI,CAAC,YAAa;AAElB,UAAM,OAAO,YAAY,sBAAsB;AAC/C,UAAM,aAAa,OAAO,MAAM,UAAU,KAAK,QAAQ,KAAK;AAC5D,UAAM,aAAa,OAAO,MAAM,UAAU,KAAK,OAAO,KAAK;AAE3D,QAAI,CAAC,eAAe,WAAW,GAAG;AAC9B,aAAO,MAAM,eAAe;AAC5B,aAAO,MAAM,gBAAgB;AAAA,IACjC;AAEA,QAAI,eAAe,WAAW,GAAG;AAC7B,aAAO,IAAI,yBAAyB,KAAK;AAAA,IAC7C,WAAW,iCAAQ,OAAO,gBAAgB;AACtC;AAAA,QACI,EAAE,OAAO,WAAW,UAAU;AAAA,QAC9B;AAAA,UACI,aAAa;AAAA,UACb,cAAc;AAAA,QAClB;AAAA,MACJ;AAAA,IACJ,OAAO;AACH,wBAAkB,EAAE,WAAW,IAAI,QAAQ,QAAQ,CAAC;AACpD,aAAO,IAAI,yBAAyB,IAAI;AAAA,IAC5C;AACA;AAAA,EACJ;AAEA,QAAM,eAAe,mBAAmB,OAAO,KAAK;AAGpD,4BAA0B,YAAY;AAEtC,MACI,CAAC,gBACD,CAAC,OAAO,kBACR,CAAC,OAAO,wBACV;AACE;AAAA,EACJ;AAEA,QAAM,EAAE,iBAAiB,cAAc,IAAI;AAC3C,QAAM,gBAAgB,MAAM,sBAAsB,aAAa;AAC/D,QAAM,YAAY,gBACZ,OAAO,OAAO,aAAa,EAAE,KAAK,CAAC,UAAU,UAAU,IAAI,IAC3D;AAGN,yBAAuB,QAAQ,eAAe;AAG9C,MAAI,oBAAoB,eAAe,GAAG;AACtC;AAAA,EACJ;AAMA,QAAM,0BACF,cAAc,yBAAyB,MAClC;AACT,MACI,sBAAsB,yBAAyB,iBAAiB,MAAM,GACxE;AACE;AAAA,EACJ;AAEA,gBAAc,yBAAyB,MAAM,8BACzC;AAGJ,uBAAqB,QAAQ,cAAc,iBAAiB,SAAS;AAErE,QAAM,EAAE,UAAU,IAAI;AAEtB,sCAAoC,WAAW,KAAK;AAGpD,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAGA,gCAA8B,QAAQ,eAAe;AACzD;AAEA,SAAS,0BAA0B,cAAmB;AAvMtD;AAwMI,wDACM,KAAK,+BAA+B,aAAa;AAAA,IAC/C,UAAU,6CAAc;AAAA,IACxB,eAAe,6CAAc;AAAA,EACjC,GACC,MAAM,CAAC,QAAQ;AACZ,YAAQ,KAAK,oCAAoC,GAAG;AAAA,EACxD;AACR;AACA,SAAS,uBACL,QACA,iBACF;AACE,QAAM,0BACF,cAAc,yBAAyB,MAClC;AACT,MACK,2BACG,4BAA4B,mBAChC,OAAO,YACT;AACE,iCAA6B;AAAA,MACzB,gBAAgB,OAAO;AAAA,MACvB,wBAAwB,OAAO;AAAA,MAC/B,gBAAgB,OAAO;AAAA,MACvB,gBAAgB,OAAO;AAAA,IAC3B,CAAC;AAAA,EACL;AACJ;AACA,SAAS,oBAAoB,iBAAmC;AAC5D,SACI,gBAAgB,UAAU,SAAS,wBAAwB,KAC3D,gBAAgB,UAAU,SAAS,6BAA6B;AAExE;AAEA,SAAS,sBACL,yBACA,iBACA,QACO;AACP,SAAO,CAAC,EACJ,2BACA,4BAA4B,mBAC5B,CAAC,OAAO;AAEhB;AAEA,SAAS,qBACL,QACA,cACA,iBACA,WACF;AACE,aAAW;AAAA,IACP,gBAAgB,OAAO;AAAA,IACvB,gBAAgB,OAAO;AAAA,IACvB;AAAA,EACJ,CAAC;AAED,oBAAkB;AAAA,IACd;AAAA,IACA,gBAAgB,OAAO;AAAA,IACvB,aAAa,MAAM;AACf,kBAAY;AAAA,QACR,wBAAwB,OAAO;AAAA,QAC/B,6BAA6B,OAAO;AAAA,QACpC,gBAAgB,OAAO;AAAA,QACvB,gBAAgB,OAAO;AAAA,MAC3B,CAAC;AAAA,IACL;AAAA,IACA;AAAA,EACJ,CAAC;AACL;AACA,eAAe,qCACX,QACA,cACA,eACA,iBACA,yBACF;AAxRF;AAyRI,QAAM,EAAE,kBAAkB,UAAU,IAAI;AACxC,QAAM,cAAc,MAAM,eAAe;AAAA,IACrC;AAAA,IACA;AAAA,EACJ;AAEA,MAAI,aAAa;AACb,UAAM,EAAE,WAAW,IAAI,gBAAgB,aAAa,YAAY;AAChE,QAAI,YAAY;AACZ,iBAAW;AAAA,QACP,gBAAgB,OAAO;AAAA,QACvB,gBAAgB,OAAO;AAAA,QACvB;AAAA,QACA,iBAAiB;AAAA,MACrB,CAAC;AAAA,IACL;AAAA,EACJ;AAEA,wDAA0B,KAAK,+BAA+B,aAAa;AAAA,IACvE,cAAc,gBAAgB,eAAe;AAAA,EACjD;AAEA,QAAM,uBAAuB,cAAc;AAAA,IACvC,wBAAwB,OAAO;AAAA,IAC/B,gBAAgB,OAAO;AAAA,IACvB,iBAAiB;AAAA,EACrB,CAAC;AACL;AACA,SAAS,8BACL,QACA,iBACF;AACE,QAAM,uBAAuB,IAAI,iBAAiB,CAAC,cAAc;AAC7D,cAAU,QAAQ,CAAC,aAAa;AAC5B,UACI,SAAS,SAAS,gBAClB,SAAS,kBAAkB,aAC7B;AACE,qEAAsB;AACtB,sBAAc,yBAAyB,MAAM,uBACzC;AACJ,iCAAyB,EAAE,GAAG,QAAQ,YAAY,KAAK,CAAC;AAAA,MAC5D;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AAED,gBAAc,yBAAyB,MAAM,uBACzC;AACJ,uBAAqB,QAAQ,iBAAiB,EAAE,YAAY,KAAK,CAAC;AACtE;AAEA,IAAO,qBAAQ;","names":[]}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
 
20
30
  // src/visualBuilder/listeners/mouseHover.ts
@@ -37,6 +47,9 @@ var import__ = require("../index.cjs");
37
47
  var import_generateHoverOutline = require("../generators/generateHoverOutline.cjs");
38
48
  var import_visualBuilder = require("../visualBuilder.style.cjs");
39
49
  var import__2 = require("../../index.cjs");
50
+ var import_configManager = __toESM(require("../../configManager/configManager.cjs"), 1);
51
+ var import_generateThread = require("../generators/generateThread.cjs");
52
+ var config = import_configManager.default.get();
40
53
  function resetCustomCursor(customCursor) {
41
54
  if (customCursor) {
42
55
  (0, import_generateCustomCursor.generateCustomCursor)({
@@ -45,6 +58,13 @@ function resetCustomCursor(customCursor) {
45
58
  });
46
59
  }
47
60
  }
61
+ function collabCustomCursor(customCursor) {
62
+ if (!customCursor) return;
63
+ (0, import_generateCustomCursor.generateCustomCursor)({
64
+ fieldType: "discussion",
65
+ customCursor
66
+ });
67
+ }
48
68
  function handleCursorPosition(event, customCursor) {
49
69
  if (customCursor) {
50
70
  const mouseY = event.clientY;
@@ -93,6 +113,8 @@ function hideCustomCursor(customCursor) {
93
113
  }
94
114
  function showCustomCursor(customCursor) {
95
115
  hideDefaultCursor();
116
+ if (config.collab.enable && (!config.collab.isFeedbackMode || config.collab.pauseFeedback))
117
+ return;
96
118
  customCursor == null ? void 0 : customCursor.classList.add("visible");
97
119
  }
98
120
  function isOverlay(target) {
@@ -107,18 +129,29 @@ async function handleMouseHover(params) {
107
129
  (0, import_lodash_es.throttle)(async (params2) => {
108
130
  const eventDetails = (0, import_getCsDataOfElement.getCsDataOfElement)(params2.event);
109
131
  const eventTarget = params2.event.target;
132
+ if ((config == null ? void 0 : config.collab.enable) && (config == null ? void 0 : config.collab.pauseFeedback)) {
133
+ hideCustomCursor(params2.customCursor);
134
+ return;
135
+ }
110
136
  if (!eventDetails) {
111
- if (eventTarget && (isOverlay(eventTarget) || isContentEditable(eventTarget))) {
137
+ if (eventTarget && (isOverlay(eventTarget) || isContentEditable(eventTarget) || (0, import_generateThread.isCollabThread)(eventTarget))) {
138
+ handleCursorPosition(params2.event, params2.customCursor);
112
139
  hideCustomCursor(params2.customCursor);
113
140
  return;
114
141
  }
115
- resetCustomCursor(params2.customCursor);
142
+ if (!(config == null ? void 0 : config.collab.enable)) {
143
+ resetCustomCursor(params2.customCursor);
144
+ }
116
145
  (0, import_multipleElementAddButton.removeAddInstanceButtons)({
117
146
  eventTarget: params2.event.target,
118
147
  visualBuilderContainer: params2.visualBuilderContainer,
119
148
  overlayWrapper: params2.overlayWrapper
120
149
  });
121
150
  handleCursorPosition(params2.event, params2.customCursor);
151
+ if ((config == null ? void 0 : config.collab.enable) && (config == null ? void 0 : config.collab.isFeedbackMode)) {
152
+ showCustomCursor(params2.customCursor);
153
+ collabCustomCursor(params2.customCursor);
154
+ }
122
155
  return;
123
156
  }
124
157
  const { editableElement, fieldMetadata } = eventDetails;
@@ -130,7 +163,10 @@ async function handleMouseHover(params) {
130
163
  return;
131
164
  }
132
165
  if (params2.customCursor) {
133
- const elementUnderCursor = document.elementFromPoint(params2.event.clientX, params2.event.clientY);
166
+ const elementUnderCursor = document.elementFromPoint(
167
+ params2.event.clientX,
168
+ params2.event.clientY
169
+ );
134
170
  if (elementUnderCursor) {
135
171
  if (elementUnderCursor.nodeName === "A" || elementUnderCursor.nodeName === "BUTTON") {
136
172
  elementUnderCursor.classList.add(
@@ -138,6 +174,15 @@ async function handleMouseHover(params) {
138
174
  );
139
175
  }
140
176
  }
177
+ if ((config == null ? void 0 : config.collab.enable) && (config == null ? void 0 : config.collab.isFeedbackMode)) {
178
+ collabCustomCursor(params2.customCursor);
179
+ handleCursorPosition(params2.event, params2.customCursor);
180
+ showCustomCursor(params2.customCursor);
181
+ return;
182
+ } else if ((config == null ? void 0 : config.collab.enable) && !(config == null ? void 0 : config.collab.isFeedbackMode)) {
183
+ hideCustomCursor(params2.customCursor);
184
+ return;
185
+ }
141
186
  if (import__.VisualBuilder.VisualBuilderGlobalState.value.previousHoveredTargetDOM !== editableElement) {
142
187
  resetCustomCursor(params2.customCursor);
143
188
  (0, import_multipleElementAddButton.removeAddInstanceButtons)({
@@ -171,9 +216,7 @@ async function handleMouseHover(params) {
171
216
  handleCursorPosition(params2.event, params2.customCursor);
172
217
  showCustomCursor(params2.customCursor);
173
218
  }
174
- if (!editableElement.classList.contains(
175
- import__2.VB_EmptyBlockParentClass
176
- ) && !editableElement.classList.contains("visual-builder__empty-block")) {
219
+ if (!editableElement.classList.contains(import__2.VB_EmptyBlockParentClass) && !editableElement.classList.contains("visual-builder__empty-block")) {
177
220
  addOutline(editableElement);
178
221
  import_fieldSchemaMap.FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath).then(
179
222
  (fieldSchema) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/listeners/mouseHover.ts"],"sourcesContent":["import { throttle } from \"lodash-es\";\nimport { getCsDataOfElement } from \"../utils/getCsDataOfElement\";\nimport { removeAddInstanceButtons } from \"../utils/multipleElementAddButton\";\nimport { generateCustomCursor } from \"../generators/generateCustomCursor\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport { getFieldType } from \"../utils/getFieldType\";\n\nimport EventListenerHandlerParams from \"./types\";\nimport { VisualBuilder } from \"..\";\nimport { addHoverOutline } from \"../generators/generateHoverOutline\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport { VB_EmptyBlockParentClass } from \"../..\";\n\nexport interface HandleMouseHoverParams\n extends Pick<\n EventListenerHandlerParams,\n \"event\" | \"overlayWrapper\" | \"visualBuilderContainer\"\n > {\n customCursor: HTMLDivElement | null;\n}\n\nfunction resetCustomCursor(customCursor: HTMLDivElement | null): void {\n if (customCursor) {\n generateCustomCursor({\n fieldType: \"empty\",\n customCursor: customCursor,\n });\n }\n}\n\nfunction handleCursorPosition(\n event: MouseEvent,\n customCursor: HTMLDivElement | null\n): void {\n if (customCursor) {\n const mouseY = event.clientY;\n const mouseX = event.clientX;\n\n customCursor.style.left = `${mouseX}px`;\n customCursor.style.top = `${mouseY}px`;\n }\n}\n\nfunction addOutline(editableElement: Element, isFieldDisabled?: boolean): void {\n if (!editableElement) return;\n\n addHoverOutline(editableElement as HTMLElement, isFieldDisabled);\n}\n\nfunction hideDefaultCursor(): void {\n if (\n document?.body &&\n !document.body.classList.contains(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n )\n )\n document.body.classList.add(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n );\n}\n\nfunction showDefaultCursor(): void {\n if (\n document?.body &&\n document.body.classList.contains(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n )\n )\n document.body.classList.remove(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n );\n}\n\nexport function hideHoverOutline(\n visualBuilderContainer: HTMLDivElement | null\n): void {\n if (!visualBuilderContainer) {\n return;\n }\n const hoverOutline = visualBuilderContainer.querySelector(\n \".visual-builder__hover-outline\"\n );\n if (!hoverOutline) {\n return;\n }\n hoverOutline.classList.add(\n visualBuilderStyles()[\"visual-builder__hover-outline--hidden\"]\n );\n}\n\nexport function hideCustomCursor(customCursor: HTMLDivElement | null): void {\n showDefaultCursor();\n customCursor?.classList.remove(\"visible\");\n}\n\nexport function showCustomCursor(customCursor: HTMLDivElement | null): void {\n hideDefaultCursor();\n customCursor?.classList.add(\"visible\");\n}\n\nfunction isOverlay(target: HTMLElement): boolean {\n return target.classList.contains(\"visual-builder__overlay\");\n}\n\nfunction isContentEditable(target: HTMLElement): boolean {\n if (target.hasAttribute(\"contenteditable\"))\n return target.getAttribute(\"contenteditable\") === \"true\";\n return false;\n}\n\nasync function handleMouseHover(params: HandleMouseHoverParams): Promise<void> {\n throttle(async (params: HandleMouseHoverParams) => {\n const eventDetails = getCsDataOfElement(params.event);\n const eventTarget = params.event.target as HTMLElement | null;\n if (!eventDetails) {\n if (\n eventTarget &&\n (isOverlay(eventTarget) || isContentEditable(eventTarget))\n ) {\n hideCustomCursor(params.customCursor);\n return;\n }\n resetCustomCursor(params.customCursor);\n removeAddInstanceButtons({\n eventTarget: params.event.target,\n visualBuilderContainer: params.visualBuilderContainer,\n overlayWrapper: params.overlayWrapper,\n });\n handleCursorPosition(params.event, params.customCursor);\n return;\n }\n\n const { editableElement, fieldMetadata } = eventDetails;\n const { content_type_uid, fieldPath } = fieldMetadata;\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM &&\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM.isSameNode(\n editableElement\n )\n ) {\n hideCustomCursor(params.customCursor);\n return;\n }\n\n if (params.customCursor) {\n const elementUnderCursor = document.elementFromPoint(params.event.clientX, params.event.clientY);\n if(elementUnderCursor){\n if(elementUnderCursor.nodeName === \"A\" || elementUnderCursor.nodeName === \"BUTTON\"){\n elementUnderCursor.classList.add(\n visualBuilderStyles()['visual-builder__no-cursor-style']\n )\n }\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousHoveredTargetDOM !== editableElement\n ) {\n resetCustomCursor(params.customCursor);\n removeAddInstanceButtons({\n eventTarget: params.event.target,\n visualBuilderContainer: params.visualBuilderContainer,\n overlayWrapper: params.overlayWrapper,\n });\n }\n\n if (!FieldSchemaMap.hasFieldSchema(content_type_uid, fieldPath)) {\n generateCustomCursor({\n fieldType: \"loading\",\n customCursor: params.customCursor,\n });\n }\n\n /**\n * We called it seperately inside the code block to ensure that\n * the code will not wait for the promise to resolve.\n * If we get a cache miss, we will send a message to the iframe\n * without blocking the code.\n */\n FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath).then(\n (fieldSchema) => {\n if(!fieldSchema) return;\n if (!params.customCursor) return;\n const { isDisabled: fieldDisabled } = isFieldDisabled(\n fieldSchema,\n eventDetails\n );\n const fieldType = getFieldType(fieldSchema);\n generateCustomCursor({\n fieldType,\n customCursor: params.customCursor,\n fieldDisabled,\n });\n }\n );\n\n handleCursorPosition(params.event, params.customCursor);\n showCustomCursor(params.customCursor);\n }\n\n if (\n !editableElement.classList.contains(\n VB_EmptyBlockParentClass\n ) &&\n !editableElement.classList.contains(\"visual-builder__empty-block\")\n ) {\n addOutline(editableElement);\n FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath).then(\n (fieldSchema) => {\n if(!fieldSchema) return;\n const { isDisabled: fieldDisabled, reason } =\n isFieldDisabled(fieldSchema, eventDetails);\n addOutline(editableElement, fieldDisabled);\n }\n );\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousHoveredTargetDOM === editableElement\n ) {\n return;\n }\n\n VisualBuilder.VisualBuilderGlobalState.value.previousHoveredTargetDOM =\n editableElement;\n }, 10)(params);\n}\n\nexport default handleMouseHover;\n"],"mappings":"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","names":["import__","isFieldDisabled","params"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/listeners/mouseHover.ts"],"sourcesContent":["import { throttle } from \"lodash-es\";\nimport { getCsDataOfElement } from \"../utils/getCsDataOfElement\";\nimport { removeAddInstanceButtons } from \"../utils/multipleElementAddButton\";\nimport { generateCustomCursor } from \"../generators/generateCustomCursor\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport { getFieldType } from \"../utils/getFieldType\";\n\nimport EventListenerHandlerParams from \"./types\";\nimport { VisualBuilder } from \"..\";\nimport { addHoverOutline } from \"../generators/generateHoverOutline\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport { VB_EmptyBlockParentClass } from \"../..\";\nimport Config from \"../../configManager/configManager\";\nimport { isCollabThread } from \"../generators/generateThread\";\n\nconst config = Config.get();\nexport interface HandleMouseHoverParams\n extends Pick<\n EventListenerHandlerParams,\n \"event\" | \"overlayWrapper\" | \"visualBuilderContainer\"\n > {\n customCursor: HTMLDivElement | null;\n}\n\nfunction resetCustomCursor(customCursor: HTMLDivElement | null): void {\n if (customCursor) {\n generateCustomCursor({\n fieldType: \"empty\",\n customCursor: customCursor,\n });\n }\n}\n\nfunction collabCustomCursor(customCursor: HTMLDivElement | null): void {\n if (!customCursor) return;\n\n generateCustomCursor({\n fieldType: \"discussion\",\n customCursor: customCursor,\n });\n}\n\nfunction handleCursorPosition(\n event: MouseEvent,\n customCursor: HTMLDivElement | null\n): void {\n if (customCursor) {\n const mouseY = event.clientY;\n const mouseX = event.clientX;\n\n customCursor.style.left = `${mouseX}px`;\n customCursor.style.top = `${mouseY}px`;\n }\n}\n\nfunction addOutline(editableElement: Element, isFieldDisabled?: boolean): void {\n if (!editableElement) return;\n\n addHoverOutline(editableElement as HTMLElement, isFieldDisabled);\n}\n\nfunction hideDefaultCursor(): void {\n if (\n document?.body &&\n !document.body.classList.contains(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n )\n )\n document.body.classList.add(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n );\n}\n\nfunction showDefaultCursor(): void {\n if (\n document?.body &&\n document.body.classList.contains(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n )\n )\n document.body.classList.remove(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n );\n}\n\nexport function hideHoverOutline(\n visualBuilderContainer: HTMLDivElement | null\n): void {\n if (!visualBuilderContainer) {\n return;\n }\n const hoverOutline = visualBuilderContainer.querySelector(\n \".visual-builder__hover-outline\"\n );\n if (!hoverOutline) {\n return;\n }\n hoverOutline.classList.add(\n visualBuilderStyles()[\"visual-builder__hover-outline--hidden\"]\n );\n}\n\nexport function hideCustomCursor(customCursor: HTMLDivElement | null): void {\n showDefaultCursor();\n customCursor?.classList.remove(\"visible\");\n}\n\nexport function showCustomCursor(customCursor: HTMLDivElement | null): void {\n hideDefaultCursor();\n if (\n config.collab.enable &&\n (!config.collab.isFeedbackMode || config.collab.pauseFeedback)\n )\n return;\n customCursor?.classList.add(\"visible\");\n}\n\nfunction isOverlay(target: HTMLElement): boolean {\n return target.classList.contains(\"visual-builder__overlay\");\n}\n\nfunction isContentEditable(target: HTMLElement): boolean {\n if (target.hasAttribute(\"contenteditable\"))\n return target.getAttribute(\"contenteditable\") === \"true\";\n return false;\n}\n\nasync function handleMouseHover(params: HandleMouseHoverParams): Promise<void> {\n throttle(async (params: HandleMouseHoverParams) => {\n const eventDetails = getCsDataOfElement(params.event);\n const eventTarget = params.event.target as HTMLElement | null;\n\n if (config?.collab.enable && config?.collab.pauseFeedback) {\n hideCustomCursor(params.customCursor);\n return;\n }\n if (!eventDetails) {\n if (\n eventTarget &&\n (isOverlay(eventTarget) ||\n isContentEditable(eventTarget) ||\n isCollabThread(eventTarget))\n ) {\n handleCursorPosition(params.event, params.customCursor);\n hideCustomCursor(params.customCursor);\n return;\n }\n if (!config?.collab.enable) {\n resetCustomCursor(params.customCursor);\n }\n removeAddInstanceButtons({\n eventTarget: params.event.target,\n visualBuilderContainer: params.visualBuilderContainer,\n overlayWrapper: params.overlayWrapper,\n });\n handleCursorPosition(params.event, params.customCursor);\n if (config?.collab.enable && config?.collab.isFeedbackMode) {\n showCustomCursor(params.customCursor);\n collabCustomCursor(params.customCursor);\n }\n return;\n }\n\n const { editableElement, fieldMetadata } = eventDetails;\n const { content_type_uid, fieldPath } = fieldMetadata;\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM &&\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM.isSameNode(\n editableElement\n )\n ) {\n hideCustomCursor(params.customCursor);\n return;\n }\n\n if (params.customCursor) {\n const elementUnderCursor = document.elementFromPoint(\n params.event.clientX,\n params.event.clientY\n );\n if (elementUnderCursor) {\n if (\n elementUnderCursor.nodeName === \"A\" ||\n elementUnderCursor.nodeName === \"BUTTON\"\n ) {\n elementUnderCursor.classList.add(\n visualBuilderStyles()[\"visual-builder__no-cursor-style\"]\n );\n }\n }\n\n if (config?.collab.enable && config?.collab.isFeedbackMode) {\n collabCustomCursor(params.customCursor);\n handleCursorPosition(params.event, params.customCursor);\n showCustomCursor(params.customCursor);\n return;\n } else if (\n config?.collab.enable &&\n !config?.collab.isFeedbackMode\n ) {\n hideCustomCursor(params.customCursor);\n return;\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousHoveredTargetDOM !== editableElement\n ) {\n resetCustomCursor(params.customCursor);\n removeAddInstanceButtons({\n eventTarget: params.event.target,\n visualBuilderContainer: params.visualBuilderContainer,\n overlayWrapper: params.overlayWrapper,\n });\n }\n\n if (!FieldSchemaMap.hasFieldSchema(content_type_uid, fieldPath)) {\n generateCustomCursor({\n fieldType: \"loading\",\n customCursor: params.customCursor,\n });\n }\n\n /**\n * We called it seperately inside the code block to ensure that\n * the code will not wait for the promise to resolve.\n * If we get a cache miss, we will send a message to the iframe\n * without blocking the code.\n */\n FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath).then(\n (fieldSchema) => {\n if (!fieldSchema) return;\n if (!params.customCursor) return;\n const { isDisabled: fieldDisabled } = isFieldDisabled(\n fieldSchema,\n eventDetails\n );\n const fieldType = getFieldType(fieldSchema);\n generateCustomCursor({\n fieldType,\n customCursor: params.customCursor,\n fieldDisabled,\n });\n }\n );\n\n handleCursorPosition(params.event, params.customCursor);\n showCustomCursor(params.customCursor);\n }\n\n if (\n !editableElement.classList.contains(VB_EmptyBlockParentClass) &&\n !editableElement.classList.contains(\"visual-builder__empty-block\")\n ) {\n addOutline(editableElement);\n FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath).then(\n (fieldSchema) => {\n if (!fieldSchema) return;\n const { isDisabled: fieldDisabled, reason } =\n isFieldDisabled(fieldSchema, eventDetails);\n addOutline(editableElement, fieldDisabled);\n }\n );\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousHoveredTargetDOM === editableElement\n ) {\n return;\n }\n\n VisualBuilder.VisualBuilderGlobalState.value.previousHoveredTargetDOM =\n editableElement;\n }, 10)(params);\n}\n\nexport default handleMouseHover;\n"],"mappings":"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","names":["import__","Config","isFieldDisabled","params"]}
@@ -12,6 +12,9 @@ import { VisualBuilder } from "../index.js";
12
12
  import { addHoverOutline } from "../generators/generateHoverOutline.js";
13
13
  import { visualBuilderStyles } from "../visualBuilder.style.js";
14
14
  import { VB_EmptyBlockParentClass } from "../../index.js";
15
+ import Config from "../../configManager/configManager.js";
16
+ import { isCollabThread } from "../generators/generateThread.js";
17
+ var config = Config.get();
15
18
  function resetCustomCursor(customCursor) {
16
19
  if (customCursor) {
17
20
  generateCustomCursor({
@@ -20,6 +23,13 @@ function resetCustomCursor(customCursor) {
20
23
  });
21
24
  }
22
25
  }
26
+ function collabCustomCursor(customCursor) {
27
+ if (!customCursor) return;
28
+ generateCustomCursor({
29
+ fieldType: "discussion",
30
+ customCursor
31
+ });
32
+ }
23
33
  function handleCursorPosition(event, customCursor) {
24
34
  if (customCursor) {
25
35
  const mouseY = event.clientY;
@@ -68,6 +78,8 @@ function hideCustomCursor(customCursor) {
68
78
  }
69
79
  function showCustomCursor(customCursor) {
70
80
  hideDefaultCursor();
81
+ if (config.collab.enable && (!config.collab.isFeedbackMode || config.collab.pauseFeedback))
82
+ return;
71
83
  customCursor == null ? void 0 : customCursor.classList.add("visible");
72
84
  }
73
85
  function isOverlay(target) {
@@ -82,18 +94,29 @@ async function handleMouseHover(params) {
82
94
  throttle(async (params2) => {
83
95
  const eventDetails = getCsDataOfElement(params2.event);
84
96
  const eventTarget = params2.event.target;
97
+ if ((config == null ? void 0 : config.collab.enable) && (config == null ? void 0 : config.collab.pauseFeedback)) {
98
+ hideCustomCursor(params2.customCursor);
99
+ return;
100
+ }
85
101
  if (!eventDetails) {
86
- if (eventTarget && (isOverlay(eventTarget) || isContentEditable(eventTarget))) {
102
+ if (eventTarget && (isOverlay(eventTarget) || isContentEditable(eventTarget) || isCollabThread(eventTarget))) {
103
+ handleCursorPosition(params2.event, params2.customCursor);
87
104
  hideCustomCursor(params2.customCursor);
88
105
  return;
89
106
  }
90
- resetCustomCursor(params2.customCursor);
107
+ if (!(config == null ? void 0 : config.collab.enable)) {
108
+ resetCustomCursor(params2.customCursor);
109
+ }
91
110
  removeAddInstanceButtons({
92
111
  eventTarget: params2.event.target,
93
112
  visualBuilderContainer: params2.visualBuilderContainer,
94
113
  overlayWrapper: params2.overlayWrapper
95
114
  });
96
115
  handleCursorPosition(params2.event, params2.customCursor);
116
+ if ((config == null ? void 0 : config.collab.enable) && (config == null ? void 0 : config.collab.isFeedbackMode)) {
117
+ showCustomCursor(params2.customCursor);
118
+ collabCustomCursor(params2.customCursor);
119
+ }
97
120
  return;
98
121
  }
99
122
  const { editableElement, fieldMetadata } = eventDetails;
@@ -105,7 +128,10 @@ async function handleMouseHover(params) {
105
128
  return;
106
129
  }
107
130
  if (params2.customCursor) {
108
- const elementUnderCursor = document.elementFromPoint(params2.event.clientX, params2.event.clientY);
131
+ const elementUnderCursor = document.elementFromPoint(
132
+ params2.event.clientX,
133
+ params2.event.clientY
134
+ );
109
135
  if (elementUnderCursor) {
110
136
  if (elementUnderCursor.nodeName === "A" || elementUnderCursor.nodeName === "BUTTON") {
111
137
  elementUnderCursor.classList.add(
@@ -113,6 +139,15 @@ async function handleMouseHover(params) {
113
139
  );
114
140
  }
115
141
  }
142
+ if ((config == null ? void 0 : config.collab.enable) && (config == null ? void 0 : config.collab.isFeedbackMode)) {
143
+ collabCustomCursor(params2.customCursor);
144
+ handleCursorPosition(params2.event, params2.customCursor);
145
+ showCustomCursor(params2.customCursor);
146
+ return;
147
+ } else if ((config == null ? void 0 : config.collab.enable) && !(config == null ? void 0 : config.collab.isFeedbackMode)) {
148
+ hideCustomCursor(params2.customCursor);
149
+ return;
150
+ }
116
151
  if (VisualBuilder.VisualBuilderGlobalState.value.previousHoveredTargetDOM !== editableElement) {
117
152
  resetCustomCursor(params2.customCursor);
118
153
  removeAddInstanceButtons({
@@ -146,9 +181,7 @@ async function handleMouseHover(params) {
146
181
  handleCursorPosition(params2.event, params2.customCursor);
147
182
  showCustomCursor(params2.customCursor);
148
183
  }
149
- if (!editableElement.classList.contains(
150
- VB_EmptyBlockParentClass
151
- ) && !editableElement.classList.contains("visual-builder__empty-block")) {
184
+ if (!editableElement.classList.contains(VB_EmptyBlockParentClass) && !editableElement.classList.contains("visual-builder__empty-block")) {
152
185
  addOutline(editableElement);
153
186
  FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath).then(
154
187
  (fieldSchema) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/visualBuilder/listeners/mouseHover.ts"],"sourcesContent":["import { throttle } from \"lodash-es\";\nimport { getCsDataOfElement } from \"../utils/getCsDataOfElement\";\nimport { removeAddInstanceButtons } from \"../utils/multipleElementAddButton\";\nimport { generateCustomCursor } from \"../generators/generateCustomCursor\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport { getFieldType } from \"../utils/getFieldType\";\n\nimport EventListenerHandlerParams from \"./types\";\nimport { VisualBuilder } from \"..\";\nimport { addHoverOutline } from \"../generators/generateHoverOutline\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport { VB_EmptyBlockParentClass } from \"../..\";\n\nexport interface HandleMouseHoverParams\n extends Pick<\n EventListenerHandlerParams,\n \"event\" | \"overlayWrapper\" | \"visualBuilderContainer\"\n > {\n customCursor: HTMLDivElement | null;\n}\n\nfunction resetCustomCursor(customCursor: HTMLDivElement | null): void {\n if (customCursor) {\n generateCustomCursor({\n fieldType: \"empty\",\n customCursor: customCursor,\n });\n }\n}\n\nfunction handleCursorPosition(\n event: MouseEvent,\n customCursor: HTMLDivElement | null\n): void {\n if (customCursor) {\n const mouseY = event.clientY;\n const mouseX = event.clientX;\n\n customCursor.style.left = `${mouseX}px`;\n customCursor.style.top = `${mouseY}px`;\n }\n}\n\nfunction addOutline(editableElement: Element, isFieldDisabled?: boolean): void {\n if (!editableElement) return;\n\n addHoverOutline(editableElement as HTMLElement, isFieldDisabled);\n}\n\nfunction hideDefaultCursor(): void {\n if (\n document?.body &&\n !document.body.classList.contains(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n )\n )\n document.body.classList.add(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n );\n}\n\nfunction showDefaultCursor(): void {\n if (\n document?.body &&\n document.body.classList.contains(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n )\n )\n document.body.classList.remove(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n );\n}\n\nexport function hideHoverOutline(\n visualBuilderContainer: HTMLDivElement | null\n): void {\n if (!visualBuilderContainer) {\n return;\n }\n const hoverOutline = visualBuilderContainer.querySelector(\n \".visual-builder__hover-outline\"\n );\n if (!hoverOutline) {\n return;\n }\n hoverOutline.classList.add(\n visualBuilderStyles()[\"visual-builder__hover-outline--hidden\"]\n );\n}\n\nexport function hideCustomCursor(customCursor: HTMLDivElement | null): void {\n showDefaultCursor();\n customCursor?.classList.remove(\"visible\");\n}\n\nexport function showCustomCursor(customCursor: HTMLDivElement | null): void {\n hideDefaultCursor();\n customCursor?.classList.add(\"visible\");\n}\n\nfunction isOverlay(target: HTMLElement): boolean {\n return target.classList.contains(\"visual-builder__overlay\");\n}\n\nfunction isContentEditable(target: HTMLElement): boolean {\n if (target.hasAttribute(\"contenteditable\"))\n return target.getAttribute(\"contenteditable\") === \"true\";\n return false;\n}\n\nasync function handleMouseHover(params: HandleMouseHoverParams): Promise<void> {\n throttle(async (params: HandleMouseHoverParams) => {\n const eventDetails = getCsDataOfElement(params.event);\n const eventTarget = params.event.target as HTMLElement | null;\n if (!eventDetails) {\n if (\n eventTarget &&\n (isOverlay(eventTarget) || isContentEditable(eventTarget))\n ) {\n hideCustomCursor(params.customCursor);\n return;\n }\n resetCustomCursor(params.customCursor);\n removeAddInstanceButtons({\n eventTarget: params.event.target,\n visualBuilderContainer: params.visualBuilderContainer,\n overlayWrapper: params.overlayWrapper,\n });\n handleCursorPosition(params.event, params.customCursor);\n return;\n }\n\n const { editableElement, fieldMetadata } = eventDetails;\n const { content_type_uid, fieldPath } = fieldMetadata;\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM &&\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM.isSameNode(\n editableElement\n )\n ) {\n hideCustomCursor(params.customCursor);\n return;\n }\n\n if (params.customCursor) {\n const elementUnderCursor = document.elementFromPoint(params.event.clientX, params.event.clientY);\n if(elementUnderCursor){\n if(elementUnderCursor.nodeName === \"A\" || elementUnderCursor.nodeName === \"BUTTON\"){\n elementUnderCursor.classList.add(\n visualBuilderStyles()['visual-builder__no-cursor-style']\n )\n }\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousHoveredTargetDOM !== editableElement\n ) {\n resetCustomCursor(params.customCursor);\n removeAddInstanceButtons({\n eventTarget: params.event.target,\n visualBuilderContainer: params.visualBuilderContainer,\n overlayWrapper: params.overlayWrapper,\n });\n }\n\n if (!FieldSchemaMap.hasFieldSchema(content_type_uid, fieldPath)) {\n generateCustomCursor({\n fieldType: \"loading\",\n customCursor: params.customCursor,\n });\n }\n\n /**\n * We called it seperately inside the code block to ensure that\n * the code will not wait for the promise to resolve.\n * If we get a cache miss, we will send a message to the iframe\n * without blocking the code.\n */\n FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath).then(\n (fieldSchema) => {\n if(!fieldSchema) return;\n if (!params.customCursor) return;\n const { isDisabled: fieldDisabled } = isFieldDisabled(\n fieldSchema,\n eventDetails\n );\n const fieldType = getFieldType(fieldSchema);\n generateCustomCursor({\n fieldType,\n customCursor: params.customCursor,\n fieldDisabled,\n });\n }\n );\n\n handleCursorPosition(params.event, params.customCursor);\n showCustomCursor(params.customCursor);\n }\n\n if (\n !editableElement.classList.contains(\n VB_EmptyBlockParentClass\n ) &&\n !editableElement.classList.contains(\"visual-builder__empty-block\")\n ) {\n addOutline(editableElement);\n FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath).then(\n (fieldSchema) => {\n if(!fieldSchema) return;\n const { isDisabled: fieldDisabled, reason } =\n isFieldDisabled(fieldSchema, eventDetails);\n addOutline(editableElement, fieldDisabled);\n }\n );\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousHoveredTargetDOM === editableElement\n ) {\n return;\n }\n\n VisualBuilder.VisualBuilderGlobalState.value.previousHoveredTargetDOM =\n editableElement;\n }, 10)(params);\n}\n\nexport default handleMouseHover;\n"],"mappings":"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","names":["isFieldDisabled","params"]}
1
+ {"version":3,"sources":["../../../../src/visualBuilder/listeners/mouseHover.ts"],"sourcesContent":["import { throttle } from \"lodash-es\";\nimport { getCsDataOfElement } from \"../utils/getCsDataOfElement\";\nimport { removeAddInstanceButtons } from \"../utils/multipleElementAddButton\";\nimport { generateCustomCursor } from \"../generators/generateCustomCursor\";\nimport { FieldSchemaMap } from \"../utils/fieldSchemaMap\";\nimport { isFieldDisabled } from \"../utils/isFieldDisabled\";\nimport { getFieldType } from \"../utils/getFieldType\";\n\nimport EventListenerHandlerParams from \"./types\";\nimport { VisualBuilder } from \"..\";\nimport { addHoverOutline } from \"../generators/generateHoverOutline\";\nimport { visualBuilderStyles } from \"../visualBuilder.style\";\nimport { VB_EmptyBlockParentClass } from \"../..\";\nimport Config from \"../../configManager/configManager\";\nimport { isCollabThread } from \"../generators/generateThread\";\n\nconst config = Config.get();\nexport interface HandleMouseHoverParams\n extends Pick<\n EventListenerHandlerParams,\n \"event\" | \"overlayWrapper\" | \"visualBuilderContainer\"\n > {\n customCursor: HTMLDivElement | null;\n}\n\nfunction resetCustomCursor(customCursor: HTMLDivElement | null): void {\n if (customCursor) {\n generateCustomCursor({\n fieldType: \"empty\",\n customCursor: customCursor,\n });\n }\n}\n\nfunction collabCustomCursor(customCursor: HTMLDivElement | null): void {\n if (!customCursor) return;\n\n generateCustomCursor({\n fieldType: \"discussion\",\n customCursor: customCursor,\n });\n}\n\nfunction handleCursorPosition(\n event: MouseEvent,\n customCursor: HTMLDivElement | null\n): void {\n if (customCursor) {\n const mouseY = event.clientY;\n const mouseX = event.clientX;\n\n customCursor.style.left = `${mouseX}px`;\n customCursor.style.top = `${mouseY}px`;\n }\n}\n\nfunction addOutline(editableElement: Element, isFieldDisabled?: boolean): void {\n if (!editableElement) return;\n\n addHoverOutline(editableElement as HTMLElement, isFieldDisabled);\n}\n\nfunction hideDefaultCursor(): void {\n if (\n document?.body &&\n !document.body.classList.contains(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n )\n )\n document.body.classList.add(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n );\n}\n\nfunction showDefaultCursor(): void {\n if (\n document?.body &&\n document.body.classList.contains(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n )\n )\n document.body.classList.remove(\n visualBuilderStyles()[\"visual-builder__default-cursor--disabled\"]\n );\n}\n\nexport function hideHoverOutline(\n visualBuilderContainer: HTMLDivElement | null\n): void {\n if (!visualBuilderContainer) {\n return;\n }\n const hoverOutline = visualBuilderContainer.querySelector(\n \".visual-builder__hover-outline\"\n );\n if (!hoverOutline) {\n return;\n }\n hoverOutline.classList.add(\n visualBuilderStyles()[\"visual-builder__hover-outline--hidden\"]\n );\n}\n\nexport function hideCustomCursor(customCursor: HTMLDivElement | null): void {\n showDefaultCursor();\n customCursor?.classList.remove(\"visible\");\n}\n\nexport function showCustomCursor(customCursor: HTMLDivElement | null): void {\n hideDefaultCursor();\n if (\n config.collab.enable &&\n (!config.collab.isFeedbackMode || config.collab.pauseFeedback)\n )\n return;\n customCursor?.classList.add(\"visible\");\n}\n\nfunction isOverlay(target: HTMLElement): boolean {\n return target.classList.contains(\"visual-builder__overlay\");\n}\n\nfunction isContentEditable(target: HTMLElement): boolean {\n if (target.hasAttribute(\"contenteditable\"))\n return target.getAttribute(\"contenteditable\") === \"true\";\n return false;\n}\n\nasync function handleMouseHover(params: HandleMouseHoverParams): Promise<void> {\n throttle(async (params: HandleMouseHoverParams) => {\n const eventDetails = getCsDataOfElement(params.event);\n const eventTarget = params.event.target as HTMLElement | null;\n\n if (config?.collab.enable && config?.collab.pauseFeedback) {\n hideCustomCursor(params.customCursor);\n return;\n }\n if (!eventDetails) {\n if (\n eventTarget &&\n (isOverlay(eventTarget) ||\n isContentEditable(eventTarget) ||\n isCollabThread(eventTarget))\n ) {\n handleCursorPosition(params.event, params.customCursor);\n hideCustomCursor(params.customCursor);\n return;\n }\n if (!config?.collab.enable) {\n resetCustomCursor(params.customCursor);\n }\n removeAddInstanceButtons({\n eventTarget: params.event.target,\n visualBuilderContainer: params.visualBuilderContainer,\n overlayWrapper: params.overlayWrapper,\n });\n handleCursorPosition(params.event, params.customCursor);\n if (config?.collab.enable && config?.collab.isFeedbackMode) {\n showCustomCursor(params.customCursor);\n collabCustomCursor(params.customCursor);\n }\n return;\n }\n\n const { editableElement, fieldMetadata } = eventDetails;\n const { content_type_uid, fieldPath } = fieldMetadata;\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM &&\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM.isSameNode(\n editableElement\n )\n ) {\n hideCustomCursor(params.customCursor);\n return;\n }\n\n if (params.customCursor) {\n const elementUnderCursor = document.elementFromPoint(\n params.event.clientX,\n params.event.clientY\n );\n if (elementUnderCursor) {\n if (\n elementUnderCursor.nodeName === \"A\" ||\n elementUnderCursor.nodeName === \"BUTTON\"\n ) {\n elementUnderCursor.classList.add(\n visualBuilderStyles()[\"visual-builder__no-cursor-style\"]\n );\n }\n }\n\n if (config?.collab.enable && config?.collab.isFeedbackMode) {\n collabCustomCursor(params.customCursor);\n handleCursorPosition(params.event, params.customCursor);\n showCustomCursor(params.customCursor);\n return;\n } else if (\n config?.collab.enable &&\n !config?.collab.isFeedbackMode\n ) {\n hideCustomCursor(params.customCursor);\n return;\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousHoveredTargetDOM !== editableElement\n ) {\n resetCustomCursor(params.customCursor);\n removeAddInstanceButtons({\n eventTarget: params.event.target,\n visualBuilderContainer: params.visualBuilderContainer,\n overlayWrapper: params.overlayWrapper,\n });\n }\n\n if (!FieldSchemaMap.hasFieldSchema(content_type_uid, fieldPath)) {\n generateCustomCursor({\n fieldType: \"loading\",\n customCursor: params.customCursor,\n });\n }\n\n /**\n * We called it seperately inside the code block to ensure that\n * the code will not wait for the promise to resolve.\n * If we get a cache miss, we will send a message to the iframe\n * without blocking the code.\n */\n FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath).then(\n (fieldSchema) => {\n if (!fieldSchema) return;\n if (!params.customCursor) return;\n const { isDisabled: fieldDisabled } = isFieldDisabled(\n fieldSchema,\n eventDetails\n );\n const fieldType = getFieldType(fieldSchema);\n generateCustomCursor({\n fieldType,\n customCursor: params.customCursor,\n fieldDisabled,\n });\n }\n );\n\n handleCursorPosition(params.event, params.customCursor);\n showCustomCursor(params.customCursor);\n }\n\n if (\n !editableElement.classList.contains(VB_EmptyBlockParentClass) &&\n !editableElement.classList.contains(\"visual-builder__empty-block\")\n ) {\n addOutline(editableElement);\n FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath).then(\n (fieldSchema) => {\n if (!fieldSchema) return;\n const { isDisabled: fieldDisabled, reason } =\n isFieldDisabled(fieldSchema, eventDetails);\n addOutline(editableElement, fieldDisabled);\n }\n );\n }\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousHoveredTargetDOM === editableElement\n ) {\n return;\n }\n\n VisualBuilder.VisualBuilderGlobalState.value.previousHoveredTargetDOM =\n editableElement;\n }, 10)(params);\n}\n\nexport default handleMouseHover;\n"],"mappings":"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","names":["isFieldDisabled","params"]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // src/visualBuilder/types/collab.types.ts
17
+ var collab_types_exports = {};
18
+ module.exports = __toCommonJS(collab_types_exports);
19
+ //# sourceMappingURL=collab.types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/visualBuilder/types/collab.types.ts"],"sourcesContent":["//User\nexport interface IUserDTO {\n display?: string;\n email: string;\n uid: string;\n firstName?: string | null;\n lastName?: string | null;\n}\n\nexport declare interface IUserState {\n mentionsList: Array<IMentionList>;\n userMap: IUserMap;\n currentUser: IUserDTO;\n}\n\nexport declare type IUserMap = { [key: string]: IUserDTO };\n\n// Invite Metadata and Context\nexport declare interface IInviteMetadata {\n users: Array<IUserDTO>;\n currentUser: IUserDTO;\n inviteUid: string;\n}\n\n// Mention Related Types\nexport declare type IMentionItem = { id: string; display: string };\n\nexport declare interface IMentionList {\n display: string;\n email?: string;\n uid?: string;\n}\n\nexport declare type IMentionedList = Array<IMentionItem>;\n\n// Comment State\nexport declare interface ICommentState {\n message: string;\n toUsers?: Array<IMentionItem>;\n images?: string[];\n createdBy: string;\n author: string;\n}\n\n// Message DTO\nexport declare interface IMessageDTO {\n _id: string;\n threadUid: string;\n message: string;\n author: string;\n toUsers?: string[];\n images?: string[];\n createdAt: string;\n updatedAt?: string;\n createdBy: string;\n}\n\n// Thread Context\nexport declare interface IThreadContext {\n inviteMetadata: IInviteMetadata;\n commentCount: number;\n error: IErrorState;\n userState: IUserState;\n onCreateComment: (data: ICommentPayload) => Promise<ICommentResponse>;\n onEditComment: (data: IEditCommentArgs) => Promise<ICommentResponse>;\n onDeleteComment: (data: IDeleteCommentArgs) => Promise<IDefaultAPIResponse>;\n onDeleteThread: (data: IDeleteThreadArgs) => void;\n setThreadState: (\n state:\n | IThreadPopupState\n | ((prevState: IThreadPopupState) => IThreadPopupState)\n ) => void;\n onClose: (isResolved?: boolean) => void;\n setError: Function;\n editComment: string;\n activeThread: IActiveThread;\n setActiveThread: (thread: IActiveThread) => void;\n createNewThread: () => Promise<any>;\n}\n\nexport interface IThreadPopupState {\n commentCount: number;\n userState: IUserState;\n isLoading: boolean;\n comments: Array<IMessageDTO>;\n editComment: string;\n}\n\nexport interface IThreadRenderStatus {\n threadId: string;\n attempts: number;\n isRendered: boolean;\n}\n\nexport interface ICommentDTO {\n _id: string;\n threadUid: string;\n message: string;\n author: string;\n toUsers: string[];\n images: string[];\n createdAt: string;\n createdBy: string;\n updatedAt?: string;\n}\n\nexport interface IDefaultAPIResponse {\n notice: string;\n}\n\nexport interface ICommentResponse extends IDefaultAPIResponse {\n comment: ICommentDTO;\n}\n\nexport interface IFetchCommentsResponse {\n comments: Array<ICommentDTO>;\n count: number;\n}\n\nexport interface ICommentPayload {\n threadUid: string;\n commentPayload: ICommentState;\n}\nexport interface IThreadPayload {\n elementXPath: string;\n position: {\n x: number;\n y: number;\n };\n author: string;\n pageRoute: string;\n inviteUid: string;\n createdBy: string;\n}\n\nexport interface IThreadDTO {\n _id: string;\n author: string;\n inviteUid: string;\n position: {\n x: number;\n y: number;\n };\n elementXPath: string;\n isElementPresent: boolean;\n pageRoute: string;\n createdBy: string;\n sequenceNumber: number;\n threadState: number;\n createdAt: string;\n updatedAt?: string;\n}\nexport interface IThreadResponseDTO extends IDefaultAPIResponse {\n thread: IThreadDTO;\n}\n\nexport interface IEditCommentArgs {\n threadUid: string;\n commentUid: string;\n payload: ICommentState;\n}\n\nexport interface IDeleteCommentArgs {\n threadUid: string;\n commentUid: string;\n}\n\nexport interface IDeleteThreadArgs {\n threadUid: string;\n}\n\nexport interface IThreadResolveArgs {\n threadUid: string;\n payload: {\n threadState: number;\n };\n}\n\nexport interface MissingThreadsInfo {\n payload: {\n isElementPresent: boolean;\n };\n threadUids: string[];\n}\n\nexport interface IErrorState {\n hasError: boolean;\n message: string;\n}\n\nexport interface IActiveThread extends Partial<IThreadDTO> {\n _id: string;\n}\n\nexport interface IFetchComments {\n threadUid: string;\n offset: number;\n limit: number;\n}\n\nexport interface toggleCollabPopupEvent {\n threadUid: string;\n action: string;\n}\n\nexport interface ICommentActionBar {\n mode: \"edit\" | \"view\";\n commentUser: IUserDTO;\n currentUser: IUserDTO;\n commentUID?: string | undefined;\n}\n\nexport interface ICommentCard {\n comment: IMessageDTO | null;\n onClose: (isResolved?: boolean) => void;\n userState: IUserState;\n mode: \"edit\" | \"view\";\n handleOnSaveRef: React.MutableRefObject<any>;\n}\n\nexport interface ICommentResolvedText {\n comment: IMessageDTO;\n userState: IUserState;\n}\n\nexport interface ICommentTextAreaProps {\n userState: IUserState;\n onClose: (isResolved?: boolean) => void;\n handleOnSaveRef: React.MutableRefObject<any>;\n comment?: IMessageDTO | null;\n}\n\nexport interface IThreadPopup {\n onCreateComment: (data: ICommentPayload) => Promise<ICommentResponse>;\n onEditComment: (data: IEditCommentArgs) => Promise<ICommentResponse>;\n onDeleteComment: (data: IDeleteCommentArgs) => Promise<IDefaultAPIResponse>;\n onDeleteThread: (data: IDeleteThreadArgs) => void;\n onClose: (isResolved?: boolean) => void;\n onResolve: (data: IThreadResolveArgs) => Promise<IThreadResponseDTO>;\n inviteMetadata: IInviteMetadata;\n loadMoreMessages: (data: IFetchComments) => Promise<IFetchCommentsResponse>;\n activeThread: IActiveThread;\n setActiveThread: (thread: IActiveThread) => void;\n createNewThread: () => Promise<IThreadResponseDTO>;\n}\n\nexport interface IThreadBody {\n handleOnSaveRef: React.MutableRefObject<any>;\n onClose: (isResolved?: boolean) => void;\n userState: IUserState;\n isLoading: boolean;\n comments: IMessageDTO[];\n fetchingMore: boolean;\n editComment: string;\n}\n\nexport interface IThreadFooter {\n onClose: (isResolved?: boolean) => void;\n handleOnSaveRef: React.MutableRefObject<any>;\n isDisabled: boolean;\n editComment: string;\n}\n\nexport interface IThreadHeader {\n onClose: (isResolved?: boolean) => void;\n displayResolve: boolean;\n onResolve: (data: IThreadResolveArgs) => Promise<IDefaultAPIResponse>;\n commentCount: number;\n activeThread: IActiveThread;\n}\n\nexport interface ICollabConfig {\n collab: {\n fromShare: boolean;\n pauseFeedback: boolean;\n enable: boolean;\n isFeedbackMode: boolean;\n inviteMetadata: IInviteMetadata;\n payload: IThreadDTO[];\n };\n}\n\nexport interface IThreadIdentifier {\n threadUid: string;\n}\n\nexport interface IThreadRemove {\n threadUids: string[];\n updateConfig?: boolean;\n}\n\nexport interface IThreadReopen {\n thread: IThreadDTO;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}