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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/README.md +1 -1
  2. package/dist/legacy/configManager/config.default.cjs +14 -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 +14 -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 +5 -5
  15. package/dist/legacy/index.cjs.map +1 -1
  16. package/dist/legacy/index.d.cts +1 -0
  17. package/dist/legacy/index.d.ts +1 -0
  18. package/dist/legacy/index.js +2 -2
  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 +16 -0
  33. package/dist/legacy/types/types.d.ts +16 -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 +530 -0
  37. package/dist/legacy/visualBuilder/collab.style.cjs.map +1 -0
  38. package/dist/legacy/visualBuilder/collab.style.d.cts +67 -0
  39. package/dist/legacy/visualBuilder/collab.style.d.ts +67 -0
  40. package/dist/legacy/visualBuilder/collab.style.js +505 -0
  41. package/dist/legacy/visualBuilder/collab.style.js.map +1 -0
  42. package/dist/legacy/visualBuilder/components/Collab/Avatar/Avatar.cjs +116 -0
  43. package/dist/legacy/visualBuilder/components/Collab/Avatar/Avatar.cjs.map +1 -0
  44. package/dist/legacy/visualBuilder/components/Collab/Avatar/Avatar.d.cts +18 -0
  45. package/dist/legacy/visualBuilder/components/Collab/Avatar/Avatar.d.ts +18 -0
  46. package/dist/legacy/visualBuilder/components/Collab/Avatar/Avatar.js +87 -0
  47. package/dist/legacy/visualBuilder/components/Collab/Avatar/Avatar.js.map +1 -0
  48. package/dist/legacy/visualBuilder/components/Collab/Button/Button.cjs +121 -0
  49. package/dist/legacy/visualBuilder/components/Collab/Button/Button.cjs.map +1 -0
  50. package/dist/legacy/visualBuilder/components/Collab/Button/Button.d.cts +27 -0
  51. package/dist/legacy/visualBuilder/components/Collab/Button/Button.d.ts +27 -0
  52. package/dist/legacy/visualBuilder/components/Collab/Button/Button.js +96 -0
  53. package/dist/legacy/visualBuilder/components/Collab/Button/Button.js.map +1 -0
  54. package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.cjs +61 -0
  55. package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.cjs.map +1 -0
  56. package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.d.cts +28 -0
  57. package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.d.ts +28 -0
  58. package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.js +32 -0
  59. package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.js.map +1 -0
  60. package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.cjs +126 -0
  61. package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.cjs.map +1 -0
  62. package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.d.cts +10 -0
  63. package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.d.ts +10 -0
  64. package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.js +97 -0
  65. package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.js.map +1 -0
  66. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.cjs +82 -0
  67. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.cjs.map +1 -0
  68. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.d.cts +18 -0
  69. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.d.ts +18 -0
  70. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.js +53 -0
  71. package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.js.map +1 -0
  72. package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.cjs +81 -0
  73. package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.cjs.map +1 -0
  74. package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.d.cts +17 -0
  75. package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.d.ts +17 -0
  76. package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.js +52 -0
  77. package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.js.map +1 -0
  78. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.cjs +145 -0
  79. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.cjs.map +1 -0
  80. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.d.cts +8 -0
  81. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.d.ts +8 -0
  82. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.js +116 -0
  83. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.js.map +1 -0
  84. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.cjs +160 -0
  85. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.cjs.map +1 -0
  86. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.d.cts +8 -0
  87. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.d.ts +8 -0
  88. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.js +131 -0
  89. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.js.map +1 -0
  90. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.cjs +61 -0
  91. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.cjs.map +1 -0
  92. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.d.cts +6 -0
  93. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.d.ts +6 -0
  94. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.js +35 -0
  95. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.js.map +1 -0
  96. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs +188 -0
  97. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs.map +1 -0
  98. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.d.cts +8 -0
  99. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.d.ts +8 -0
  100. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js +159 -0
  101. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js.map +1 -0
  102. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.cjs +42 -0
  103. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.cjs.map +1 -0
  104. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.d.cts +8 -0
  105. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.d.ts +8 -0
  106. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.js +9 -0
  107. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.js.map +1 -0
  108. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.cjs +25 -0
  109. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.cjs.map +1 -0
  110. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.d.cts +3 -0
  111. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.d.ts +3 -0
  112. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.js +3 -0
  113. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.js.map +1 -0
  114. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.cjs +155 -0
  115. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.cjs.map +1 -0
  116. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.d.cts +8 -0
  117. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.d.ts +8 -0
  118. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.js +126 -0
  119. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.js.map +1 -0
  120. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.cjs +92 -0
  121. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.cjs.map +1 -0
  122. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.d.cts +8 -0
  123. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.d.ts +8 -0
  124. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.js +63 -0
  125. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.js.map +1 -0
  126. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.cjs +124 -0
  127. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.cjs.map +1 -0
  128. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.d.cts +8 -0
  129. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.d.ts +8 -0
  130. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.js +95 -0
  131. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.js.map +1 -0
  132. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.cjs +231 -0
  133. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.cjs.map +1 -0
  134. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.d.cts +8 -0
  135. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.d.ts +8 -0
  136. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.js +202 -0
  137. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.js.map +1 -0
  138. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.cjs +101 -0
  139. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.cjs.map +1 -0
  140. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.d.cts +5 -0
  141. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.d.ts +5 -0
  142. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.js +72 -0
  143. package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.js.map +1 -0
  144. package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.cjs +126 -0
  145. package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.cjs.map +1 -0
  146. package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.d.cts +17 -0
  147. package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.d.ts +17 -0
  148. package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.js +97 -0
  149. package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.js.map +1 -0
  150. package/dist/legacy/visualBuilder/components/HighlightedCommentIcon.cjs +6 -1
  151. package/dist/legacy/visualBuilder/components/HighlightedCommentIcon.cjs.map +1 -1
  152. package/dist/legacy/visualBuilder/components/HighlightedCommentIcon.js +6 -1
  153. package/dist/legacy/visualBuilder/components/HighlightedCommentIcon.js.map +1 -1
  154. package/dist/legacy/visualBuilder/components/emptyBlock.cjs +1 -0
  155. package/dist/legacy/visualBuilder/components/emptyBlock.cjs.map +1 -1
  156. package/dist/legacy/visualBuilder/components/emptyBlock.js +1 -0
  157. package/dist/legacy/visualBuilder/components/emptyBlock.js.map +1 -1
  158. package/dist/legacy/visualBuilder/components/icons/CollabIcons.cjs +220 -0
  159. package/dist/legacy/visualBuilder/components/icons/CollabIcons.cjs.map +1 -0
  160. package/dist/legacy/visualBuilder/components/icons/CollabIcons.d.cts +16 -0
  161. package/dist/legacy/visualBuilder/components/icons/CollabIcons.d.ts +16 -0
  162. package/dist/legacy/visualBuilder/components/icons/CollabIcons.js +197 -0
  163. package/dist/legacy/visualBuilder/components/icons/CollabIcons.js.map +1 -0
  164. package/dist/legacy/visualBuilder/components/icons/index.cjs +16 -16
  165. package/dist/legacy/visualBuilder/components/icons/index.cjs.map +1 -1
  166. package/dist/legacy/visualBuilder/components/icons/index.js +16 -16
  167. package/dist/legacy/visualBuilder/components/icons/index.js.map +1 -1
  168. package/dist/legacy/visualBuilder/eventManager/useCollab.cjs +142 -0
  169. package/dist/legacy/visualBuilder/eventManager/useCollab.cjs.map +1 -0
  170. package/dist/legacy/visualBuilder/eventManager/useCollab.d.cts +3 -0
  171. package/dist/legacy/visualBuilder/eventManager/useCollab.d.ts +3 -0
  172. package/dist/legacy/visualBuilder/eventManager/useCollab.js +118 -0
  173. package/dist/legacy/visualBuilder/eventManager/useCollab.js.map +1 -0
  174. package/dist/legacy/visualBuilder/generators/generateCustomCursor.cjs +2 -1
  175. package/dist/legacy/visualBuilder/generators/generateCustomCursor.cjs.map +1 -1
  176. package/dist/legacy/visualBuilder/generators/generateCustomCursor.d.cts +2 -2
  177. package/dist/legacy/visualBuilder/generators/generateCustomCursor.d.ts +2 -2
  178. package/dist/legacy/visualBuilder/generators/generateCustomCursor.js +2 -1
  179. package/dist/legacy/visualBuilder/generators/generateCustomCursor.js.map +1 -1
  180. package/dist/legacy/visualBuilder/generators/generateHighlightedComment.cjs +2 -2
  181. package/dist/legacy/visualBuilder/generators/generateHighlightedComment.cjs.map +1 -1
  182. package/dist/legacy/visualBuilder/generators/generateHighlightedComment.js +2 -2
  183. package/dist/legacy/visualBuilder/generators/generateHighlightedComment.js.map +1 -1
  184. package/dist/legacy/visualBuilder/generators/generateThread.cjs +411 -0
  185. package/dist/legacy/visualBuilder/generators/generateThread.cjs.map +1 -0
  186. package/dist/legacy/visualBuilder/generators/generateThread.d.cts +25 -0
  187. package/dist/legacy/visualBuilder/generators/generateThread.d.ts +25 -0
  188. package/dist/legacy/visualBuilder/generators/generateThread.js +361 -0
  189. package/dist/legacy/visualBuilder/generators/generateThread.js.map +1 -0
  190. package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.cjs +63 -0
  191. package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.cjs.map +1 -0
  192. package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.d.cts +11 -0
  193. package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.d.ts +11 -0
  194. package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.js +44 -0
  195. package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.js.map +1 -0
  196. package/dist/legacy/visualBuilder/hooks/useCollabIndicator.cjs +130 -0
  197. package/dist/legacy/visualBuilder/hooks/useCollabIndicator.cjs.map +1 -0
  198. package/dist/legacy/visualBuilder/hooks/useCollabIndicator.d.cts +20 -0
  199. package/dist/legacy/visualBuilder/hooks/useCollabIndicator.d.ts +20 -0
  200. package/dist/legacy/visualBuilder/hooks/useCollabIndicator.js +97 -0
  201. package/dist/legacy/visualBuilder/hooks/useCollabIndicator.js.map +1 -0
  202. package/dist/legacy/visualBuilder/hooks/useCollabOperations.cjs +146 -0
  203. package/dist/legacy/visualBuilder/hooks/useCollabOperations.cjs.map +1 -0
  204. package/dist/legacy/visualBuilder/hooks/useCollabOperations.d.cts +16 -0
  205. package/dist/legacy/visualBuilder/hooks/useCollabOperations.d.ts +16 -0
  206. package/dist/legacy/visualBuilder/hooks/useCollabOperations.js +113 -0
  207. package/dist/legacy/visualBuilder/hooks/useCollabOperations.js.map +1 -0
  208. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.cjs +410 -0
  209. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.cjs.map +1 -0
  210. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.d.cts +26 -0
  211. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.d.ts +26 -0
  212. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.js +389 -0
  213. package/dist/legacy/visualBuilder/hooks/useCommentTextArea.js.map +1 -0
  214. package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.cjs +42 -0
  215. package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.cjs.map +1 -0
  216. package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.d.cts +3 -0
  217. package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.d.ts +3 -0
  218. package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.js +23 -0
  219. package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.js.map +1 -0
  220. package/dist/legacy/visualBuilder/index.cjs +81 -31
  221. package/dist/legacy/visualBuilder/index.cjs.map +1 -1
  222. package/dist/legacy/visualBuilder/index.d.cts +1 -0
  223. package/dist/legacy/visualBuilder/index.d.ts +1 -0
  224. package/dist/legacy/visualBuilder/index.js +86 -31
  225. package/dist/legacy/visualBuilder/index.js.map +1 -1
  226. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs +36 -4
  227. package/dist/legacy/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  228. package/dist/legacy/visualBuilder/listeners/mouseClick.js +36 -4
  229. package/dist/legacy/visualBuilder/listeners/mouseClick.js.map +1 -1
  230. package/dist/legacy/visualBuilder/listeners/mouseHover.cjs +48 -6
  231. package/dist/legacy/visualBuilder/listeners/mouseHover.cjs.map +1 -1
  232. package/dist/legacy/visualBuilder/listeners/mouseHover.js +38 -6
  233. package/dist/legacy/visualBuilder/listeners/mouseHover.js.map +1 -1
  234. package/dist/legacy/visualBuilder/types/collab.types.cjs +19 -0
  235. package/dist/legacy/visualBuilder/types/collab.types.cjs.map +1 -0
  236. package/dist/legacy/visualBuilder/types/collab.types.d.cts +232 -0
  237. package/dist/legacy/visualBuilder/types/collab.types.d.ts +232 -0
  238. package/dist/legacy/visualBuilder/types/collab.types.js +1 -0
  239. package/dist/legacy/visualBuilder/types/collab.types.js.map +1 -0
  240. package/dist/legacy/visualBuilder/utils/collabUtils.cjs +118 -0
  241. package/dist/legacy/visualBuilder/utils/collabUtils.cjs.map +1 -0
  242. package/dist/legacy/visualBuilder/utils/collabUtils.d.cts +52 -0
  243. package/dist/legacy/visualBuilder/utils/collabUtils.d.ts +52 -0
  244. package/dist/legacy/visualBuilder/utils/collabUtils.js +79 -0
  245. package/dist/legacy/visualBuilder/utils/collabUtils.js.map +1 -0
  246. package/dist/legacy/visualBuilder/utils/constants.cjs +6 -0
  247. package/dist/legacy/visualBuilder/utils/constants.cjs.map +1 -1
  248. package/dist/legacy/visualBuilder/utils/constants.d.cts +3 -1
  249. package/dist/legacy/visualBuilder/utils/constants.d.ts +3 -1
  250. package/dist/legacy/visualBuilder/utils/constants.js +4 -0
  251. package/dist/legacy/visualBuilder/utils/constants.js.map +1 -1
  252. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs +13 -0
  253. package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  254. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.cts +14 -1
  255. package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.ts +14 -1
  256. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js +13 -0
  257. package/dist/legacy/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  258. package/dist/modern/configManager/config.default.cjs +14 -0
  259. package/dist/modern/configManager/config.default.cjs.map +1 -1
  260. package/dist/modern/configManager/config.default.d.cts +1 -0
  261. package/dist/modern/configManager/config.default.d.ts +1 -0
  262. package/dist/modern/configManager/config.default.js +14 -0
  263. package/dist/modern/configManager/config.default.js.map +1 -1
  264. package/dist/modern/configManager/configManager.d.cts +1 -0
  265. package/dist/modern/configManager/configManager.d.ts +1 -0
  266. package/dist/modern/configManager/handleUserConfig.d.cts +1 -0
  267. package/dist/modern/configManager/handleUserConfig.d.ts +1 -0
  268. package/dist/modern/configManager/index.d.cts +1 -0
  269. package/dist/modern/configManager/index.d.ts +1 -0
  270. package/dist/modern/index.cjs +5 -5
  271. package/dist/modern/index.cjs.map +1 -1
  272. package/dist/modern/index.d.cts +1 -0
  273. package/dist/modern/index.d.ts +1 -0
  274. package/dist/modern/index.js +2 -2
  275. package/dist/modern/index.js.map +1 -1
  276. package/dist/modern/livePreview/editButton/editButton.d.cts +1 -0
  277. package/dist/modern/livePreview/editButton/editButton.d.ts +1 -0
  278. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
  279. package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
  280. package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.cts +1 -0
  281. package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.ts +1 -0
  282. package/dist/modern/preview/contentstack-live-preview-HOC.cjs +1 -1
  283. package/dist/modern/preview/contentstack-live-preview-HOC.d.cts +1 -0
  284. package/dist/modern/preview/contentstack-live-preview-HOC.d.ts +1 -0
  285. package/dist/modern/preview/contentstack-live-preview-HOC.js +1 -1
  286. package/dist/modern/types/types.cjs +1 -0
  287. package/dist/modern/types/types.cjs.map +1 -1
  288. package/dist/modern/types/types.d.cts +16 -0
  289. package/dist/modern/types/types.d.ts +16 -0
  290. package/dist/modern/types/types.js +1 -0
  291. package/dist/modern/types/types.js.map +1 -1
  292. package/dist/modern/visualBuilder/collab.style.cjs +530 -0
  293. package/dist/modern/visualBuilder/collab.style.cjs.map +1 -0
  294. package/dist/modern/visualBuilder/collab.style.d.cts +67 -0
  295. package/dist/modern/visualBuilder/collab.style.d.ts +67 -0
  296. package/dist/modern/visualBuilder/collab.style.js +505 -0
  297. package/dist/modern/visualBuilder/collab.style.js.map +1 -0
  298. package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.cjs +116 -0
  299. package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.cjs.map +1 -0
  300. package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.d.cts +18 -0
  301. package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.d.ts +18 -0
  302. package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.js +87 -0
  303. package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.js.map +1 -0
  304. package/dist/modern/visualBuilder/components/Collab/Button/Button.cjs +121 -0
  305. package/dist/modern/visualBuilder/components/Collab/Button/Button.cjs.map +1 -0
  306. package/dist/modern/visualBuilder/components/Collab/Button/Button.d.cts +27 -0
  307. package/dist/modern/visualBuilder/components/Collab/Button/Button.d.ts +27 -0
  308. package/dist/modern/visualBuilder/components/Collab/Button/Button.js +96 -0
  309. package/dist/modern/visualBuilder/components/Collab/Button/Button.js.map +1 -0
  310. package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.cjs +61 -0
  311. package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.cjs.map +1 -0
  312. package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.d.cts +28 -0
  313. package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.d.ts +28 -0
  314. package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.js +32 -0
  315. package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.js.map +1 -0
  316. package/dist/modern/visualBuilder/components/Collab/CollabIndicator.cjs +124 -0
  317. package/dist/modern/visualBuilder/components/Collab/CollabIndicator.cjs.map +1 -0
  318. package/dist/modern/visualBuilder/components/Collab/CollabIndicator.d.cts +10 -0
  319. package/dist/modern/visualBuilder/components/Collab/CollabIndicator.d.ts +10 -0
  320. package/dist/modern/visualBuilder/components/Collab/CollabIndicator.js +95 -0
  321. package/dist/modern/visualBuilder/components/Collab/CollabIndicator.js.map +1 -0
  322. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.cjs +82 -0
  323. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.cjs.map +1 -0
  324. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.d.cts +18 -0
  325. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.d.ts +18 -0
  326. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.js +53 -0
  327. package/dist/modern/visualBuilder/components/Collab/Icon/Icon.js.map +1 -0
  328. package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.cjs +81 -0
  329. package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.cjs.map +1 -0
  330. package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.d.cts +17 -0
  331. package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.d.ts +17 -0
  332. package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.js +52 -0
  333. package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.js.map +1 -0
  334. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.cjs +145 -0
  335. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.cjs.map +1 -0
  336. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.d.cts +8 -0
  337. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.d.ts +8 -0
  338. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.js +116 -0
  339. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.js.map +1 -0
  340. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.cjs +160 -0
  341. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.cjs.map +1 -0
  342. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.d.cts +8 -0
  343. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.d.ts +8 -0
  344. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.js +131 -0
  345. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.js.map +1 -0
  346. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.cjs +61 -0
  347. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.cjs.map +1 -0
  348. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.d.cts +6 -0
  349. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.d.ts +6 -0
  350. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.js +35 -0
  351. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.js.map +1 -0
  352. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs +188 -0
  353. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs.map +1 -0
  354. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.d.cts +8 -0
  355. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.d.ts +8 -0
  356. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js +159 -0
  357. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js.map +1 -0
  358. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.cjs +42 -0
  359. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.cjs.map +1 -0
  360. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.d.cts +8 -0
  361. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.d.ts +8 -0
  362. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.js +9 -0
  363. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.js.map +1 -0
  364. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.cjs +25 -0
  365. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.cjs.map +1 -0
  366. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.d.cts +3 -0
  367. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.d.ts +3 -0
  368. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.js +3 -0
  369. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.js.map +1 -0
  370. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.cjs +155 -0
  371. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.cjs.map +1 -0
  372. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.d.cts +8 -0
  373. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.d.ts +8 -0
  374. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.js +126 -0
  375. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.js.map +1 -0
  376. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.cjs +91 -0
  377. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.cjs.map +1 -0
  378. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.d.cts +8 -0
  379. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.d.ts +8 -0
  380. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.js +62 -0
  381. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.js.map +1 -0
  382. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.cjs +124 -0
  383. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.cjs.map +1 -0
  384. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.d.cts +8 -0
  385. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.d.ts +8 -0
  386. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.js +95 -0
  387. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.js.map +1 -0
  388. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.cjs +230 -0
  389. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.cjs.map +1 -0
  390. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.d.cts +8 -0
  391. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.d.ts +8 -0
  392. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.js +201 -0
  393. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.js.map +1 -0
  394. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.cjs +101 -0
  395. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.cjs.map +1 -0
  396. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.d.cts +5 -0
  397. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.d.ts +5 -0
  398. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.js +72 -0
  399. package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.js.map +1 -0
  400. package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.cjs +126 -0
  401. package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.cjs.map +1 -0
  402. package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.d.cts +17 -0
  403. package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.d.ts +17 -0
  404. package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.js +97 -0
  405. package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.js.map +1 -0
  406. package/dist/modern/visualBuilder/components/HighlightedCommentIcon.cjs +6 -1
  407. package/dist/modern/visualBuilder/components/HighlightedCommentIcon.cjs.map +1 -1
  408. package/dist/modern/visualBuilder/components/HighlightedCommentIcon.js +6 -1
  409. package/dist/modern/visualBuilder/components/HighlightedCommentIcon.js.map +1 -1
  410. package/dist/modern/visualBuilder/components/emptyBlock.cjs +1 -0
  411. package/dist/modern/visualBuilder/components/emptyBlock.cjs.map +1 -1
  412. package/dist/modern/visualBuilder/components/emptyBlock.js +1 -0
  413. package/dist/modern/visualBuilder/components/emptyBlock.js.map +1 -1
  414. package/dist/modern/visualBuilder/components/icons/CollabIcons.cjs +220 -0
  415. package/dist/modern/visualBuilder/components/icons/CollabIcons.cjs.map +1 -0
  416. package/dist/modern/visualBuilder/components/icons/CollabIcons.d.cts +16 -0
  417. package/dist/modern/visualBuilder/components/icons/CollabIcons.d.ts +16 -0
  418. package/dist/modern/visualBuilder/components/icons/CollabIcons.js +197 -0
  419. package/dist/modern/visualBuilder/components/icons/CollabIcons.js.map +1 -0
  420. package/dist/modern/visualBuilder/components/icons/index.cjs +16 -16
  421. package/dist/modern/visualBuilder/components/icons/index.cjs.map +1 -1
  422. package/dist/modern/visualBuilder/components/icons/index.js +16 -16
  423. package/dist/modern/visualBuilder/components/icons/index.js.map +1 -1
  424. package/dist/modern/visualBuilder/eventManager/useCollab.cjs +139 -0
  425. package/dist/modern/visualBuilder/eventManager/useCollab.cjs.map +1 -0
  426. package/dist/modern/visualBuilder/eventManager/useCollab.d.cts +3 -0
  427. package/dist/modern/visualBuilder/eventManager/useCollab.d.ts +3 -0
  428. package/dist/modern/visualBuilder/eventManager/useCollab.js +115 -0
  429. package/dist/modern/visualBuilder/eventManager/useCollab.js.map +1 -0
  430. package/dist/modern/visualBuilder/generators/generateCustomCursor.cjs +2 -1
  431. package/dist/modern/visualBuilder/generators/generateCustomCursor.cjs.map +1 -1
  432. package/dist/modern/visualBuilder/generators/generateCustomCursor.d.cts +2 -2
  433. package/dist/modern/visualBuilder/generators/generateCustomCursor.d.ts +2 -2
  434. package/dist/modern/visualBuilder/generators/generateCustomCursor.js +2 -1
  435. package/dist/modern/visualBuilder/generators/generateCustomCursor.js.map +1 -1
  436. package/dist/modern/visualBuilder/generators/generateHighlightedComment.cjs +2 -2
  437. package/dist/modern/visualBuilder/generators/generateHighlightedComment.cjs.map +1 -1
  438. package/dist/modern/visualBuilder/generators/generateHighlightedComment.js +2 -2
  439. package/dist/modern/visualBuilder/generators/generateHighlightedComment.js.map +1 -1
  440. package/dist/modern/visualBuilder/generators/generateThread.cjs +406 -0
  441. package/dist/modern/visualBuilder/generators/generateThread.cjs.map +1 -0
  442. package/dist/modern/visualBuilder/generators/generateThread.d.cts +25 -0
  443. package/dist/modern/visualBuilder/generators/generateThread.d.ts +25 -0
  444. package/dist/modern/visualBuilder/generators/generateThread.js +356 -0
  445. package/dist/modern/visualBuilder/generators/generateThread.js.map +1 -0
  446. package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.cjs +63 -0
  447. package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.cjs.map +1 -0
  448. package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.d.cts +11 -0
  449. package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.d.ts +11 -0
  450. package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.js +44 -0
  451. package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.js.map +1 -0
  452. package/dist/modern/visualBuilder/hooks/useCollabIndicator.cjs +128 -0
  453. package/dist/modern/visualBuilder/hooks/useCollabIndicator.cjs.map +1 -0
  454. package/dist/modern/visualBuilder/hooks/useCollabIndicator.d.cts +20 -0
  455. package/dist/modern/visualBuilder/hooks/useCollabIndicator.d.ts +20 -0
  456. package/dist/modern/visualBuilder/hooks/useCollabIndicator.js +95 -0
  457. package/dist/modern/visualBuilder/hooks/useCollabIndicator.js.map +1 -0
  458. package/dist/modern/visualBuilder/hooks/useCollabOperations.cjs +139 -0
  459. package/dist/modern/visualBuilder/hooks/useCollabOperations.cjs.map +1 -0
  460. package/dist/modern/visualBuilder/hooks/useCollabOperations.d.cts +16 -0
  461. package/dist/modern/visualBuilder/hooks/useCollabOperations.d.ts +16 -0
  462. package/dist/modern/visualBuilder/hooks/useCollabOperations.js +106 -0
  463. package/dist/modern/visualBuilder/hooks/useCollabOperations.js.map +1 -0
  464. package/dist/modern/visualBuilder/hooks/useCommentTextArea.cjs +406 -0
  465. package/dist/modern/visualBuilder/hooks/useCommentTextArea.cjs.map +1 -0
  466. package/dist/modern/visualBuilder/hooks/useCommentTextArea.d.cts +26 -0
  467. package/dist/modern/visualBuilder/hooks/useCommentTextArea.d.ts +26 -0
  468. package/dist/modern/visualBuilder/hooks/useCommentTextArea.js +385 -0
  469. package/dist/modern/visualBuilder/hooks/useCommentTextArea.js.map +1 -0
  470. package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.cjs +42 -0
  471. package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.cjs.map +1 -0
  472. package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.d.cts +3 -0
  473. package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.d.ts +3 -0
  474. package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.js +23 -0
  475. package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.js.map +1 -0
  476. package/dist/modern/visualBuilder/index.cjs +81 -31
  477. package/dist/modern/visualBuilder/index.cjs.map +1 -1
  478. package/dist/modern/visualBuilder/index.d.cts +1 -0
  479. package/dist/modern/visualBuilder/index.d.ts +1 -0
  480. package/dist/modern/visualBuilder/index.js +86 -31
  481. package/dist/modern/visualBuilder/index.js.map +1 -1
  482. package/dist/modern/visualBuilder/listeners/mouseClick.cjs +36 -4
  483. package/dist/modern/visualBuilder/listeners/mouseClick.cjs.map +1 -1
  484. package/dist/modern/visualBuilder/listeners/mouseClick.js +36 -4
  485. package/dist/modern/visualBuilder/listeners/mouseClick.js.map +1 -1
  486. package/dist/modern/visualBuilder/listeners/mouseHover.cjs +48 -6
  487. package/dist/modern/visualBuilder/listeners/mouseHover.cjs.map +1 -1
  488. package/dist/modern/visualBuilder/listeners/mouseHover.js +38 -6
  489. package/dist/modern/visualBuilder/listeners/mouseHover.js.map +1 -1
  490. package/dist/modern/visualBuilder/types/collab.types.cjs +19 -0
  491. package/dist/modern/visualBuilder/types/collab.types.cjs.map +1 -0
  492. package/dist/modern/visualBuilder/types/collab.types.d.cts +232 -0
  493. package/dist/modern/visualBuilder/types/collab.types.d.ts +232 -0
  494. package/dist/modern/visualBuilder/types/collab.types.js +1 -0
  495. package/dist/modern/visualBuilder/types/collab.types.js.map +1 -0
  496. package/dist/modern/visualBuilder/utils/collabUtils.cjs +116 -0
  497. package/dist/modern/visualBuilder/utils/collabUtils.cjs.map +1 -0
  498. package/dist/modern/visualBuilder/utils/collabUtils.d.cts +52 -0
  499. package/dist/modern/visualBuilder/utils/collabUtils.d.ts +52 -0
  500. package/dist/modern/visualBuilder/utils/collabUtils.js +77 -0
  501. package/dist/modern/visualBuilder/utils/collabUtils.js.map +1 -0
  502. package/dist/modern/visualBuilder/utils/constants.cjs +6 -0
  503. package/dist/modern/visualBuilder/utils/constants.cjs.map +1 -1
  504. package/dist/modern/visualBuilder/utils/constants.d.cts +3 -1
  505. package/dist/modern/visualBuilder/utils/constants.d.ts +3 -1
  506. package/dist/modern/visualBuilder/utils/constants.js +4 -0
  507. package/dist/modern/visualBuilder/utils/constants.js.map +1 -1
  508. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs +13 -0
  509. package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
  510. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.cts +14 -1
  511. package/dist/modern/visualBuilder/utils/types/postMessage.types.d.ts +14 -1
  512. package/dist/modern/visualBuilder/utils/types/postMessage.types.js +13 -0
  513. package/dist/modern/visualBuilder/utils/types/postMessage.types.js.map +1 -1
  514. package/package.json +8 -5
@@ -44,6 +44,12 @@ var import__ = require("../index.cjs");
44
44
  var import_fieldSchemaMap = require("../utils/fieldSchemaMap.cjs");
45
45
  var import_isFieldDisabled = require("../utils/isFieldDisabled.cjs");
46
46
  var import_generateHighlightedComment = require("../generators/generateHighlightedComment.cjs");
47
+ var import__2 = require("../../index.cjs");
48
+ var import_get_xpath = __toESM(require("get-xpath"), 1);
49
+ var import_configManager = __toESM(require("../../configManager/configManager.cjs"), 1);
50
+ var import_generateThread = require("../generators/generateThread.cjs");
51
+ var import_generateThread2 = require("../generators/generateThread.cjs");
52
+ var import_generateThread3 = require("../generators/generateThread.cjs");
47
53
  function addOverlay(params) {
48
54
  if (!params.overlayWrapper || !params.editableElement) return;
49
55
  (0, import_generateOverlay.addFocusOverlay)(
@@ -56,7 +62,11 @@ function addOverlay(params) {
56
62
  function addFocusedToolbar(params) {
57
63
  const { editableElement } = params.eventDetails;
58
64
  if (!editableElement || !params.focusedToolbar) return;
59
- (0, import_generateToolbar.appendFocusedToolbar)(params.eventDetails, params.focusedToolbar, params.hideOverlay);
65
+ (0, import_generateToolbar.appendFocusedToolbar)(
66
+ params.eventDetails,
67
+ params.focusedToolbar,
68
+ params.hideOverlay
69
+ );
60
70
  }
61
71
  async function handleBuilderInteraction(params) {
62
72
  var _a, _b;
@@ -67,6 +77,30 @@ async function handleBuilderInteraction(params) {
67
77
  params.event.preventDefault();
68
78
  params.event.stopPropagation();
69
79
  }
80
+ const config = import_configManager.default.get();
81
+ if ((config == null ? void 0 : config.collab.enable) === true) {
82
+ if (config == null ? void 0 : config.collab.pauseFeedback) return;
83
+ const xpath = (0, import_get_xpath.default)(eventTarget);
84
+ if (!eventTarget) return;
85
+ const rect = eventTarget.getBoundingClientRect();
86
+ const relativeX = (params.event.clientX - rect.left) / rect.width;
87
+ const relativeY = (params.event.clientY - rect.top) / rect.height;
88
+ if ((0, import_generateThread2.isCollabThread)(eventTarget)) {
89
+ import_configManager.default.set("collab.isFeedbackMode", false);
90
+ } else if (config == null ? void 0 : config.collab.isFeedbackMode) {
91
+ (0, import_generateThread.generateThread)(
92
+ { xpath, relativeX, relativeY },
93
+ {
94
+ isNewThread: true,
95
+ updateConfig: true
96
+ }
97
+ );
98
+ } else {
99
+ (0, import_generateThread3.toggleCollabPopup)({ threadUid: "", action: "close" });
100
+ import_configManager.default.set("collab.isFeedbackMode", true);
101
+ }
102
+ return;
103
+ }
70
104
  const eventDetails = (0, import_getCsDataOfElement.getCsDataOfElement)(params.event);
71
105
  (_a = import_visualBuilderPostMessage.default) == null ? void 0 : _a.send(import_postMessage.VisualBuilderPostMessageEvents.MOUSE_CLICK, {
72
106
  cslpData: eventDetails == null ? void 0 : eventDetails.cslpData,
@@ -86,9 +120,7 @@ async function handleBuilderInteraction(params) {
86
120
  resizeObserver: params.resizeObserver
87
121
  });
88
122
  }
89
- if (editableElement.classList.contains(
90
- "visual-builder__empty-block-parent"
91
- ) || editableElement.classList.contains("visual-builder__empty-block")) {
123
+ if (editableElement.classList.contains(import__2.VB_EmptyBlockParentClass) || editableElement.classList.contains("visual-builder__empty-block")) {
92
124
  return;
93
125
  }
94
126
  const previousSelectedElement = import__.VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM;
@@ -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\";\n\ntype HandleBuilderInteractionParams = Omit<\n EventListenerHandlerParams,\n \"eventDetails\" | \"customCursor\"\n>;\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 };\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(params.eventDetails, params.focusedToolbar, params.hideOverlay);\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 // 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 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 if (\n !eventDetails ||\n !params.overlayWrapper ||\n !params.visualBuilderContainer\n ) {\n return;\n }\n const { editableElement, fieldMetadata } = eventDetails;\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM &&\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM !== editableElement\n ) {\n cleanIndividualFieldResidual({\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n }\n\n // if the selected element is our empty block element, return\n if (\n editableElement.classList.contains(\n \"visual-builder__empty-block-parent\"\n ) ||\n editableElement.classList.contains(\"visual-builder__empty-block\")\n ) {\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 previousSelectedElement &&\n previousSelectedElement === editableElement\n ) {\n return;\n }\n\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM =\n editableElement;\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 });\n\n const { content_type_uid, fieldPath, cslpValue } = fieldMetadata;\n\n toggleHighlightedCommentIconDisplay(cslpValue, false);\n\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n content_type_uid,\n fieldPath\n );\n\n if (fieldSchema) {\n // after field schema is available re-add disabled overlay\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 // This is most probably redundant code, as the handleIndividualFields function\n // takes care of this\n // TODO: Remove this\n // if (\n // fieldSchema.data_type === \"block\" ||\n // fieldSchema.multiple ||\n // (fieldSchema.data_type === \"reference\" &&\n // // @ts-ignore\n // fieldSchema.field_metadata.ref_multiple)\n // ) {\n // handleAddButtonsForMultiple(eventDetails, {\n // editableElement: editableElement,\n // visualBuilderContainer: params.visualBuilderContainer,\n // resizeObserver: params.resizeObserver,\n // });\n // } else {\n // removeAddInstanceButtons({\n // eventTarget: params.event.target,\n // visualBuilderContainer: params.visualBuilderContainer,\n // overlayWrapper: params.overlayWrapper,\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}\n\nexport default handleBuilderInteraction;\n"],"mappings":"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","names":["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 getXPath from \"get-xpath\";\nimport Config from \"../../configManager/configManager\";\nimport { generateThread } from \"../generators/generateThread\";\nimport { isCollabThread } from \"../generators/generateThread\";\nimport { toggleCollabPopup } from \"../generators/generateThread\";\n\ntype HandleBuilderInteractionParams = Omit<\n EventListenerHandlerParams,\n \"eventDetails\" | \"customCursor\"\n>;\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 };\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 );\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 // 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 = getXPath(eventTarget);\n if (!eventTarget) return;\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 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 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 if (\n !eventDetails ||\n !params.overlayWrapper ||\n !params.visualBuilderContainer\n ) {\n return;\n }\n const { editableElement, fieldMetadata } = eventDetails;\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM &&\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM !== editableElement\n ) {\n cleanIndividualFieldResidual({\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n }\n\n // if the selected element is our empty block element, return\n if (\n editableElement.classList.contains(VB_EmptyBlockParentClass) ||\n editableElement.classList.contains(\"visual-builder__empty-block\")\n ) {\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 previousSelectedElement &&\n previousSelectedElement === editableElement\n ) {\n return;\n }\n\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM =\n editableElement;\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 });\n\n const { content_type_uid, fieldPath, cslpValue } = fieldMetadata;\n\n toggleHighlightedCommentIconDisplay(cslpValue, false);\n\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n content_type_uid,\n fieldPath\n );\n\n if (fieldSchema) {\n // after field schema is available re-add disabled overlay\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 // This is most probably redundant code, as the handleIndividualFields function\n // takes care of this\n // TODO: Remove this\n // if (\n // fieldSchema.data_type === \"block\" ||\n // fieldSchema.multiple ||\n // (fieldSchema.data_type === \"reference\" &&\n // // @ts-ignore\n // fieldSchema.field_metadata.ref_multiple)\n // ) {\n // handleAddButtonsForMultiple(eventDetails, {\n // editableElement: editableElement,\n // visualBuilderContainer: params.visualBuilderContainer,\n // resizeObserver: params.resizeObserver,\n // });\n // } else {\n // removeAddInstanceButtons({\n // eventTarget: params.event.target,\n // visualBuilderContainer: params.visualBuilderContainer,\n // overlayWrapper: params.overlayWrapper,\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}\n\nexport default handleBuilderInteraction;\n"],"mappings":"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","names":["import__","import_generateThread","Config","getXPath","visualBuilderPostMessage"]}
@@ -17,6 +17,12 @@ import { VisualBuilder } from "../index.js";
17
17
  import { FieldSchemaMap } from "../utils/fieldSchemaMap.js";
18
18
  import { isFieldDisabled } from "../utils/isFieldDisabled.js";
19
19
  import { toggleHighlightedCommentIconDisplay } from "../generators/generateHighlightedComment.js";
20
+ import { VB_EmptyBlockParentClass } from "../../index.js";
21
+ import getXPath from "get-xpath";
22
+ import Config from "../../configManager/configManager.js";
23
+ import { generateThread } from "../generators/generateThread.js";
24
+ import { isCollabThread } from "../generators/generateThread.js";
25
+ import { toggleCollabPopup } from "../generators/generateThread.js";
20
26
  function addOverlay(params) {
21
27
  if (!params.overlayWrapper || !params.editableElement) return;
22
28
  addFocusOverlay(
@@ -29,7 +35,11 @@ function addOverlay(params) {
29
35
  function addFocusedToolbar(params) {
30
36
  const { editableElement } = params.eventDetails;
31
37
  if (!editableElement || !params.focusedToolbar) return;
32
- appendFocusedToolbar(params.eventDetails, params.focusedToolbar, params.hideOverlay);
38
+ appendFocusedToolbar(
39
+ params.eventDetails,
40
+ params.focusedToolbar,
41
+ params.hideOverlay
42
+ );
33
43
  }
34
44
  async function handleBuilderInteraction(params) {
35
45
  var _a, _b;
@@ -40,6 +50,30 @@ async function handleBuilderInteraction(params) {
40
50
  params.event.preventDefault();
41
51
  params.event.stopPropagation();
42
52
  }
53
+ const config = Config.get();
54
+ if ((config == null ? void 0 : config.collab.enable) === true) {
55
+ if (config == null ? void 0 : config.collab.pauseFeedback) return;
56
+ const xpath = getXPath(eventTarget);
57
+ if (!eventTarget) return;
58
+ const rect = eventTarget.getBoundingClientRect();
59
+ const relativeX = (params.event.clientX - rect.left) / rect.width;
60
+ const relativeY = (params.event.clientY - rect.top) / rect.height;
61
+ if (isCollabThread(eventTarget)) {
62
+ Config.set("collab.isFeedbackMode", false);
63
+ } else if (config == null ? void 0 : config.collab.isFeedbackMode) {
64
+ generateThread(
65
+ { xpath, relativeX, relativeY },
66
+ {
67
+ isNewThread: true,
68
+ updateConfig: true
69
+ }
70
+ );
71
+ } else {
72
+ toggleCollabPopup({ threadUid: "", action: "close" });
73
+ Config.set("collab.isFeedbackMode", true);
74
+ }
75
+ return;
76
+ }
43
77
  const eventDetails = getCsDataOfElement(params.event);
44
78
  (_a = visualBuilderPostMessage) == null ? void 0 : _a.send(VisualBuilderPostMessageEvents.MOUSE_CLICK, {
45
79
  cslpData: eventDetails == null ? void 0 : eventDetails.cslpData,
@@ -59,9 +93,7 @@ async function handleBuilderInteraction(params) {
59
93
  resizeObserver: params.resizeObserver
60
94
  });
61
95
  }
62
- if (editableElement.classList.contains(
63
- "visual-builder__empty-block-parent"
64
- ) || editableElement.classList.contains("visual-builder__empty-block")) {
96
+ if (editableElement.classList.contains(VB_EmptyBlockParentClass) || editableElement.classList.contains("visual-builder__empty-block")) {
65
97
  return;
66
98
  }
67
99
  const previousSelectedElement = VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM;
@@ -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\";\n\ntype HandleBuilderInteractionParams = Omit<\n EventListenerHandlerParams,\n \"eventDetails\" | \"customCursor\"\n>;\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 };\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(params.eventDetails, params.focusedToolbar, params.hideOverlay);\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 // 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 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 if (\n !eventDetails ||\n !params.overlayWrapper ||\n !params.visualBuilderContainer\n ) {\n return;\n }\n const { editableElement, fieldMetadata } = eventDetails;\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM &&\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM !== editableElement\n ) {\n cleanIndividualFieldResidual({\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n }\n\n // if the selected element is our empty block element, return\n if (\n editableElement.classList.contains(\n \"visual-builder__empty-block-parent\"\n ) ||\n editableElement.classList.contains(\"visual-builder__empty-block\")\n ) {\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 previousSelectedElement &&\n previousSelectedElement === editableElement\n ) {\n return;\n }\n\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM =\n editableElement;\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 });\n\n const { content_type_uid, fieldPath, cslpValue } = fieldMetadata;\n\n toggleHighlightedCommentIconDisplay(cslpValue, false);\n\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n content_type_uid,\n fieldPath\n );\n\n if (fieldSchema) {\n // after field schema is available re-add disabled overlay\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 // This is most probably redundant code, as the handleIndividualFields function\n // takes care of this\n // TODO: Remove this\n // if (\n // fieldSchema.data_type === \"block\" ||\n // fieldSchema.multiple ||\n // (fieldSchema.data_type === \"reference\" &&\n // // @ts-ignore\n // fieldSchema.field_metadata.ref_multiple)\n // ) {\n // handleAddButtonsForMultiple(eventDetails, {\n // editableElement: editableElement,\n // visualBuilderContainer: params.visualBuilderContainer,\n // resizeObserver: params.resizeObserver,\n // });\n // } else {\n // removeAddInstanceButtons({\n // eventTarget: params.event.target,\n // visualBuilderContainer: params.visualBuilderContainer,\n // overlayWrapper: params.overlayWrapper,\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}\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 getXPath from \"get-xpath\";\nimport Config from \"../../configManager/configManager\";\nimport { generateThread } from \"../generators/generateThread\";\nimport { isCollabThread } from \"../generators/generateThread\";\nimport { toggleCollabPopup } from \"../generators/generateThread\";\n\ntype HandleBuilderInteractionParams = Omit<\n EventListenerHandlerParams,\n \"eventDetails\" | \"customCursor\"\n>;\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 };\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 );\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 // 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 = getXPath(eventTarget);\n if (!eventTarget) return;\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 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 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 if (\n !eventDetails ||\n !params.overlayWrapper ||\n !params.visualBuilderContainer\n ) {\n return;\n }\n const { editableElement, fieldMetadata } = eventDetails;\n\n if (\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM &&\n VisualBuilder.VisualBuilderGlobalState.value\n .previousSelectedEditableDOM !== editableElement\n ) {\n cleanIndividualFieldResidual({\n overlayWrapper: params.overlayWrapper,\n visualBuilderContainer: params.visualBuilderContainer,\n focusedToolbar: params.focusedToolbar,\n resizeObserver: params.resizeObserver,\n });\n }\n\n // if the selected element is our empty block element, return\n if (\n editableElement.classList.contains(VB_EmptyBlockParentClass) ||\n editableElement.classList.contains(\"visual-builder__empty-block\")\n ) {\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 previousSelectedElement &&\n previousSelectedElement === editableElement\n ) {\n return;\n }\n\n VisualBuilder.VisualBuilderGlobalState.value.previousSelectedEditableDOM =\n editableElement;\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 });\n\n const { content_type_uid, fieldPath, cslpValue } = fieldMetadata;\n\n toggleHighlightedCommentIconDisplay(cslpValue, false);\n\n const fieldSchema = await FieldSchemaMap.getFieldSchema(\n content_type_uid,\n fieldPath\n );\n\n if (fieldSchema) {\n // after field schema is available re-add disabled overlay\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 // This is most probably redundant code, as the handleIndividualFields function\n // takes care of this\n // TODO: Remove this\n // if (\n // fieldSchema.data_type === \"block\" ||\n // fieldSchema.multiple ||\n // (fieldSchema.data_type === \"reference\" &&\n // // @ts-ignore\n // fieldSchema.field_metadata.ref_multiple)\n // ) {\n // handleAddButtonsForMultiple(eventDetails, {\n // editableElement: editableElement,\n // visualBuilderContainer: params.visualBuilderContainer,\n // resizeObserver: params.resizeObserver,\n // });\n // } else {\n // removeAddInstanceButtons({\n // eventTarget: params.event.target,\n // visualBuilderContainer: params.visualBuilderContainer,\n // overlayWrapper: params.overlayWrapper,\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}\n\nexport default handleBuilderInteraction;\n"],"mappings":"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","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
@@ -36,6 +46,9 @@ var import_getFieldType = require("../utils/getFieldType.cjs");
36
46
  var import__ = require("../index.cjs");
37
47
  var import_generateHoverOutline = require("../generators/generateHoverOutline.cjs");
38
48
  var import_visualBuilder = require("../visualBuilder.style.cjs");
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");
39
52
  function resetCustomCursor(customCursor) {
40
53
  if (customCursor) {
41
54
  (0, import_generateCustomCursor.generateCustomCursor)({
@@ -44,6 +57,13 @@ function resetCustomCursor(customCursor) {
44
57
  });
45
58
  }
46
59
  }
60
+ function collabCustomCursor(customCursor) {
61
+ if (!customCursor) return;
62
+ (0, import_generateCustomCursor.generateCustomCursor)({
63
+ fieldType: "discussion",
64
+ customCursor
65
+ });
66
+ }
47
67
  function handleCursorPosition(event, customCursor) {
48
68
  if (customCursor) {
49
69
  const mouseY = event.clientY;
@@ -106,18 +126,30 @@ async function handleMouseHover(params) {
106
126
  (0, import_lodash_es.throttle)(async (params2) => {
107
127
  const eventDetails = (0, import_getCsDataOfElement.getCsDataOfElement)(params2.event);
108
128
  const eventTarget = params2.event.target;
129
+ const config = import_configManager.default.get();
130
+ if ((config == null ? void 0 : config.collab.enable) && (config == null ? void 0 : config.collab.pauseFeedback)) {
131
+ hideCustomCursor(params2.customCursor);
132
+ return;
133
+ }
109
134
  if (!eventDetails) {
110
- if (eventTarget && (isOverlay(eventTarget) || isContentEditable(eventTarget))) {
135
+ if (eventTarget && (isOverlay(eventTarget) || isContentEditable(eventTarget) || (0, import_generateThread.isCollabThread)(eventTarget))) {
136
+ handleCursorPosition(params2.event, params2.customCursor);
111
137
  hideCustomCursor(params2.customCursor);
112
138
  return;
113
139
  }
114
- resetCustomCursor(params2.customCursor);
140
+ if (!(config == null ? void 0 : config.collab.enable)) {
141
+ resetCustomCursor(params2.customCursor);
142
+ }
115
143
  (0, import_multipleElementAddButton.removeAddInstanceButtons)({
116
144
  eventTarget: params2.event.target,
117
145
  visualBuilderContainer: params2.visualBuilderContainer,
118
146
  overlayWrapper: params2.overlayWrapper
119
147
  });
120
148
  handleCursorPosition(params2.event, params2.customCursor);
149
+ if ((config == null ? void 0 : config.collab.enable) && (config == null ? void 0 : config.collab.isFeedbackMode)) {
150
+ showCustomCursor(params2.customCursor);
151
+ collabCustomCursor(params2.customCursor);
152
+ }
121
153
  return;
122
154
  }
123
155
  const { editableElement, fieldMetadata } = eventDetails;
@@ -129,7 +161,10 @@ async function handleMouseHover(params) {
129
161
  return;
130
162
  }
131
163
  if (params2.customCursor) {
132
- const elementUnderCursor = document.elementFromPoint(params2.event.clientX, params2.event.clientY);
164
+ const elementUnderCursor = document.elementFromPoint(
165
+ params2.event.clientX,
166
+ params2.event.clientY
167
+ );
133
168
  if (elementUnderCursor) {
134
169
  if (elementUnderCursor.nodeName === "A" || elementUnderCursor.nodeName === "BUTTON") {
135
170
  elementUnderCursor.classList.add(
@@ -137,6 +172,15 @@ async function handleMouseHover(params) {
137
172
  );
138
173
  }
139
174
  }
175
+ if ((config == null ? void 0 : config.collab.enable) && (config == null ? void 0 : config.collab.isFeedbackMode)) {
176
+ collabCustomCursor(params2.customCursor);
177
+ handleCursorPosition(params2.event, params2.customCursor);
178
+ showCustomCursor(params2.customCursor);
179
+ return;
180
+ } else if ((config == null ? void 0 : config.collab.enable) && !(config == null ? void 0 : config.collab.isFeedbackMode)) {
181
+ hideCustomCursor(params2.customCursor);
182
+ return;
183
+ }
140
184
  if (import__.VisualBuilder.VisualBuilderGlobalState.value.previousHoveredTargetDOM !== editableElement) {
141
185
  resetCustomCursor(params2.customCursor);
142
186
  (0, import_multipleElementAddButton.removeAddInstanceButtons)({
@@ -170,9 +214,7 @@ async function handleMouseHover(params) {
170
214
  handleCursorPosition(params2.event, params2.customCursor);
171
215
  showCustomCursor(params2.customCursor);
172
216
  }
173
- if (!editableElement.classList.contains(
174
- "visual-builder__empty-block-parent"
175
- ) && !editableElement.classList.contains("visual-builder__empty-block")) {
217
+ if (!editableElement.classList.contains(import__2.VB_EmptyBlockParentClass) && !editableElement.classList.contains("visual-builder__empty-block")) {
176
218
  addOutline(editableElement);
177
219
  import_fieldSchemaMap.FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath).then(
178
220
  (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\";\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 \"visual-builder__empty-block-parent\"\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":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAyB;AACzB,gCAAmC;AACnC,sCAAyC;AACzC,kCAAqC;AACrC,4BAA+B;AAC/B,6BAAgC;AAChC,0BAA6B;AAG7B,eAA8B;AAC9B,kCAAgC;AAChC,2BAAoC;AAUpC,SAAS,kBAAkB,cAA2C;AAClE,MAAI,cAAc;AACd,0DAAqB;AAAA,MACjB,WAAW;AAAA,MACX;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AAEA,SAAS,qBACL,OACA,cACI;AACJ,MAAI,cAAc;AACd,UAAM,SAAS,MAAM;AACrB,UAAM,SAAS,MAAM;AAErB,iBAAa,MAAM,OAAO,GAAG,MAAM;AACnC,iBAAa,MAAM,MAAM,GAAG,MAAM;AAAA,EACtC;AACJ;AAEA,SAAS,WAAW,iBAA0BA,kBAAiC;AAC3E,MAAI,CAAC,gBAAiB;AAEtB,mDAAgB,iBAAgCA,gBAAe;AACnE;AAEA,SAAS,oBAA0B;AAC/B,OACI,qCAAU,SACV,CAAC,SAAS,KAAK,UAAU;AAAA,QACrB,0CAAoB,EAAE,0CAA0C;AAAA,EACpE;AAEA,aAAS,KAAK,UAAU;AAAA,UACpB,0CAAoB,EAAE,0CAA0C;AAAA,IACpE;AACR;AAEA,SAAS,oBAA0B;AAC/B,OACI,qCAAU,SACV,SAAS,KAAK,UAAU;AAAA,QACpB,0CAAoB,EAAE,0CAA0C;AAAA,EACpE;AAEA,aAAS,KAAK,UAAU;AAAA,UACpB,0CAAoB,EAAE,0CAA0C;AAAA,IACpE;AACR;AAEO,SAAS,iBACZ,wBACI;AACJ,MAAI,CAAC,wBAAwB;AACzB;AAAA,EACJ;AACA,QAAM,eAAe,uBAAuB;AAAA,IACxC;AAAA,EACJ;AACA,MAAI,CAAC,cAAc;AACf;AAAA,EACJ;AACA,eAAa,UAAU;AAAA,QACnB,0CAAoB,EAAE,uCAAuC;AAAA,EACjE;AACJ;AAEO,SAAS,iBAAiB,cAA2C;AACxE,oBAAkB;AAClB,+CAAc,UAAU,OAAO;AACnC;AAEO,SAAS,iBAAiB,cAA2C;AACxE,oBAAkB;AAClB,+CAAc,UAAU,IAAI;AAChC;AAEA,SAAS,UAAU,QAA8B;AAC7C,SAAO,OAAO,UAAU,SAAS,yBAAyB;AAC9D;AAEA,SAAS,kBAAkB,QAA8B;AACrD,MAAI,OAAO,aAAa,iBAAiB;AACrC,WAAO,OAAO,aAAa,iBAAiB,MAAM;AACtD,SAAO;AACX;AAEA,eAAe,iBAAiB,QAA+C;AAC3E,iCAAS,OAAOC,YAAmC;AAC/C,UAAM,mBAAe,8CAAmBA,QAAO,KAAK;AACpD,UAAM,cAAcA,QAAO,MAAM;AACjC,QAAI,CAAC,cAAc;AACf,UACI,gBACC,UAAU,WAAW,KAAK,kBAAkB,WAAW,IAC1D;AACE,yBAAiBA,QAAO,YAAY;AACpC;AAAA,MACJ;AACA,wBAAkBA,QAAO,YAAY;AACrC,oEAAyB;AAAA,QACrB,aAAaA,QAAO,MAAM;AAAA,QAC1B,wBAAwBA,QAAO;AAAA,QAC/B,gBAAgBA,QAAO;AAAA,MAC3B,CAAC;AACD,2BAAqBA,QAAO,OAAOA,QAAO,YAAY;AACtD;AAAA,IACJ;AAEA,UAAM,EAAE,iBAAiB,cAAc,IAAI;AAC3C,UAAM,EAAE,kBAAkB,UAAU,IAAI;AAExC,QACI,uBAAc,yBAAyB,MAClC,+BACL,uBAAc,yBAAyB,MAAM,4BAA4B;AAAA,MACrE;AAAA,IACJ,GACF;AACE,uBAAiBA,QAAO,YAAY;AACpC;AAAA,IACJ;AAEA,QAAIA,QAAO,cAAc;AACvB,YAAM,qBAAqB,SAAS,iBAAiBA,QAAO,MAAM,SAASA,QAAO,MAAM,OAAO;AAC7F,UAAG,oBAAmB;AACpB,YAAG,mBAAmB,aAAa,OAAO,mBAAmB,aAAa,UAAS;AACjF,6BAAmB,UAAU;AAAA,gBAC3B,0CAAoB,EAAE,iCAAiC;AAAA,UACzD;AAAA,QACF;AAAA,MACF;AAEA,UACI,uBAAc,yBAAyB,MAClC,6BAA6B,iBACpC;AACE,0BAAkBA,QAAO,YAAY;AACrC,sEAAyB;AAAA,UACrB,aAAaA,QAAO,MAAM;AAAA,UAC1B,wBAAwBA,QAAO;AAAA,UAC/B,gBAAgBA,QAAO;AAAA,QAC3B,CAAC;AAAA,MACL;AAEA,UAAI,CAAC,qCAAe,eAAe,kBAAkB,SAAS,GAAG;AAC7D,8DAAqB;AAAA,UACjB,WAAW;AAAA,UACX,cAAcA,QAAO;AAAA,QACzB,CAAC;AAAA,MACL;AAQA,2CAAe,eAAe,kBAAkB,SAAS,EAAE;AAAA,QACvD,CAAC,gBAAgB;AACb,cAAG,CAAC,YAAa;AACjB,cAAI,CAACA,QAAO,aAAc;AAC1B,gBAAM,EAAE,YAAY,cAAc,QAAI;AAAA,YAClC;AAAA,YACA;AAAA,UACJ;AACA,gBAAM,gBAAY,kCAAa,WAAW;AAC1C,gEAAqB;AAAA,YACjB;AAAA,YACA,cAAcA,QAAO;AAAA,YACrB;AAAA,UACJ,CAAC;AAAA,QACL;AAAA,MACJ;AAEA,2BAAqBA,QAAO,OAAOA,QAAO,YAAY;AACtD,uBAAiBA,QAAO,YAAY;AAAA,IACxC;AAEA,QACI,CAAC,gBAAgB,UAAU;AAAA,MACvB;AAAA,IACJ,KACA,CAAC,gBAAgB,UAAU,SAAS,6BAA6B,GACnE;AACE,iBAAW,eAAe;AAC1B,2CAAe,eAAe,kBAAkB,SAAS,EAAE;AAAA,QACvD,CAAC,gBAAgB;AACb,cAAG,CAAC,YAAa;AACjB,gBAAM,EAAE,YAAY,eAAe,OAAO,QACtC,wCAAgB,aAAa,YAAY;AAC7C,qBAAW,iBAAiB,aAAa;AAAA,QAC7C;AAAA,MACJ;AAAA,IACJ;AAEA,QACI,uBAAc,yBAAyB,MAClC,6BAA6B,iBACpC;AACE;AAAA,IACJ;AAEA,2BAAc,yBAAyB,MAAM,2BACzC;AAAA,EACR,GAAG,EAAE,EAAE,MAAM;AACjB;AAEA,IAAO,qBAAQ;","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\";\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 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 const config = Config.get();\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__","isFieldDisabled","params","Config"]}
@@ -11,6 +11,9 @@ import { getFieldType } from "../utils/getFieldType.js";
11
11
  import { VisualBuilder } from "../index.js";
12
12
  import { addHoverOutline } from "../generators/generateHoverOutline.js";
13
13
  import { visualBuilderStyles } from "../visualBuilder.style.js";
14
+ import { VB_EmptyBlockParentClass } from "../../index.js";
15
+ import Config from "../../configManager/configManager.js";
16
+ import { isCollabThread } from "../generators/generateThread.js";
14
17
  function resetCustomCursor(customCursor) {
15
18
  if (customCursor) {
16
19
  generateCustomCursor({
@@ -19,6 +22,13 @@ function resetCustomCursor(customCursor) {
19
22
  });
20
23
  }
21
24
  }
25
+ function collabCustomCursor(customCursor) {
26
+ if (!customCursor) return;
27
+ generateCustomCursor({
28
+ fieldType: "discussion",
29
+ customCursor
30
+ });
31
+ }
22
32
  function handleCursorPosition(event, customCursor) {
23
33
  if (customCursor) {
24
34
  const mouseY = event.clientY;
@@ -81,18 +91,30 @@ async function handleMouseHover(params) {
81
91
  throttle(async (params2) => {
82
92
  const eventDetails = getCsDataOfElement(params2.event);
83
93
  const eventTarget = params2.event.target;
94
+ const config = Config.get();
95
+ if ((config == null ? void 0 : config.collab.enable) && (config == null ? void 0 : config.collab.pauseFeedback)) {
96
+ hideCustomCursor(params2.customCursor);
97
+ return;
98
+ }
84
99
  if (!eventDetails) {
85
- if (eventTarget && (isOverlay(eventTarget) || isContentEditable(eventTarget))) {
100
+ if (eventTarget && (isOverlay(eventTarget) || isContentEditable(eventTarget) || isCollabThread(eventTarget))) {
101
+ handleCursorPosition(params2.event, params2.customCursor);
86
102
  hideCustomCursor(params2.customCursor);
87
103
  return;
88
104
  }
89
- resetCustomCursor(params2.customCursor);
105
+ if (!(config == null ? void 0 : config.collab.enable)) {
106
+ resetCustomCursor(params2.customCursor);
107
+ }
90
108
  removeAddInstanceButtons({
91
109
  eventTarget: params2.event.target,
92
110
  visualBuilderContainer: params2.visualBuilderContainer,
93
111
  overlayWrapper: params2.overlayWrapper
94
112
  });
95
113
  handleCursorPosition(params2.event, params2.customCursor);
114
+ if ((config == null ? void 0 : config.collab.enable) && (config == null ? void 0 : config.collab.isFeedbackMode)) {
115
+ showCustomCursor(params2.customCursor);
116
+ collabCustomCursor(params2.customCursor);
117
+ }
96
118
  return;
97
119
  }
98
120
  const { editableElement, fieldMetadata } = eventDetails;
@@ -104,7 +126,10 @@ async function handleMouseHover(params) {
104
126
  return;
105
127
  }
106
128
  if (params2.customCursor) {
107
- const elementUnderCursor = document.elementFromPoint(params2.event.clientX, params2.event.clientY);
129
+ const elementUnderCursor = document.elementFromPoint(
130
+ params2.event.clientX,
131
+ params2.event.clientY
132
+ );
108
133
  if (elementUnderCursor) {
109
134
  if (elementUnderCursor.nodeName === "A" || elementUnderCursor.nodeName === "BUTTON") {
110
135
  elementUnderCursor.classList.add(
@@ -112,6 +137,15 @@ async function handleMouseHover(params) {
112
137
  );
113
138
  }
114
139
  }
140
+ if ((config == null ? void 0 : config.collab.enable) && (config == null ? void 0 : config.collab.isFeedbackMode)) {
141
+ collabCustomCursor(params2.customCursor);
142
+ handleCursorPosition(params2.event, params2.customCursor);
143
+ showCustomCursor(params2.customCursor);
144
+ return;
145
+ } else if ((config == null ? void 0 : config.collab.enable) && !(config == null ? void 0 : config.collab.isFeedbackMode)) {
146
+ hideCustomCursor(params2.customCursor);
147
+ return;
148
+ }
115
149
  if (VisualBuilder.VisualBuilderGlobalState.value.previousHoveredTargetDOM !== editableElement) {
116
150
  resetCustomCursor(params2.customCursor);
117
151
  removeAddInstanceButtons({
@@ -145,9 +179,7 @@ async function handleMouseHover(params) {
145
179
  handleCursorPosition(params2.event, params2.customCursor);
146
180
  showCustomCursor(params2.customCursor);
147
181
  }
148
- if (!editableElement.classList.contains(
149
- "visual-builder__empty-block-parent"
150
- ) && !editableElement.classList.contains("visual-builder__empty-block")) {
182
+ if (!editableElement.classList.contains(VB_EmptyBlockParentClass) && !editableElement.classList.contains("visual-builder__empty-block")) {
151
183
  addOutline(editableElement);
152
184
  FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath).then(
153
185
  (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\";\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 \"visual-builder__empty-block-parent\"\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\";\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 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 const config = Config.get();\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 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"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}