@contentstack/live-preview-utils 3.1.3 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/legacy/configManager/config.default.cjs +15 -0
- package/dist/legacy/configManager/config.default.cjs.map +1 -1
- package/dist/legacy/configManager/config.default.d.cts +1 -0
- package/dist/legacy/configManager/config.default.d.ts +1 -0
- package/dist/legacy/configManager/config.default.js +15 -0
- package/dist/legacy/configManager/config.default.js.map +1 -1
- package/dist/legacy/configManager/configManager.d.cts +1 -0
- package/dist/legacy/configManager/configManager.d.ts +1 -0
- package/dist/legacy/configManager/handleUserConfig.d.cts +1 -0
- package/dist/legacy/configManager/handleUserConfig.d.ts +1 -0
- package/dist/legacy/configManager/index.d.cts +1 -0
- package/dist/legacy/configManager/index.d.ts +1 -0
- package/dist/legacy/index.cjs +45 -1
- package/dist/legacy/index.cjs.map +1 -1
- package/dist/legacy/index.d.cts +17 -2
- package/dist/legacy/index.d.ts +17 -2
- package/dist/legacy/index.js +45 -1
- package/dist/legacy/index.js.map +1 -1
- package/dist/legacy/livePreview/editButton/editButton.d.cts +1 -0
- package/dist/legacy/livePreview/editButton/editButton.d.ts +1 -0
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
- package/dist/legacy/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
- package/dist/legacy/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.cts +1 -0
- package/dist/legacy/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.ts +1 -0
- package/dist/legacy/preview/contentstack-live-preview-HOC.cjs +1 -1
- package/dist/legacy/preview/contentstack-live-preview-HOC.d.cts +1 -0
- package/dist/legacy/preview/contentstack-live-preview-HOC.d.ts +1 -0
- package/dist/legacy/preview/contentstack-live-preview-HOC.js +1 -1
- package/dist/legacy/types/types.cjs +1 -0
- package/dist/legacy/types/types.cjs.map +1 -1
- package/dist/legacy/types/types.d.cts +5 -0
- package/dist/legacy/types/types.d.ts +5 -0
- package/dist/legacy/types/types.js +1 -0
- package/dist/legacy/types/types.js.map +1 -1
- package/dist/legacy/visualBuilder/collab.style.cjs +660 -0
- package/dist/legacy/visualBuilder/collab.style.cjs.map +1 -0
- package/dist/legacy/visualBuilder/collab.style.d.cts +84 -0
- package/dist/legacy/visualBuilder/collab.style.d.ts +84 -0
- package/dist/legacy/visualBuilder/collab.style.js +635 -0
- package/dist/legacy/visualBuilder/collab.style.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.cjs +70 -0
- package/dist/legacy/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.d.cts +12 -0
- package/dist/legacy/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.d.ts +12 -0
- package/dist/legacy/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.js +41 -0
- package/dist/legacy/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/Avatar/Avatar.cjs +116 -0
- package/dist/legacy/visualBuilder/components/Collab/Avatar/Avatar.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/Avatar/Avatar.d.cts +18 -0
- package/dist/legacy/visualBuilder/components/Collab/Avatar/Avatar.d.ts +18 -0
- package/dist/legacy/visualBuilder/components/Collab/Avatar/Avatar.js +87 -0
- package/dist/legacy/visualBuilder/components/Collab/Avatar/Avatar.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/Button/Button.cjs +143 -0
- package/dist/legacy/visualBuilder/components/Collab/Button/Button.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/Button/Button.d.cts +29 -0
- package/dist/legacy/visualBuilder/components/Collab/Button/Button.d.ts +29 -0
- package/dist/legacy/visualBuilder/components/Collab/Button/Button.js +118 -0
- package/dist/legacy/visualBuilder/components/Collab/Button/Button.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.cjs +61 -0
- package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.d.cts +28 -0
- package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.d.ts +28 -0
- package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.js +32 -0
- package/dist/legacy/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.cjs +133 -0
- package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.d.cts +10 -0
- package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.d.ts +10 -0
- package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.js +104 -0
- package/dist/legacy/visualBuilder/components/Collab/CollabIndicator.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.cjs +87 -0
- package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.d.cts +19 -0
- package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.d.ts +19 -0
- package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.js +58 -0
- package/dist/legacy/visualBuilder/components/Collab/Icon/Icon.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.cjs +81 -0
- package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.d.cts +17 -0
- package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.d.ts +17 -0
- package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.js +52 -0
- package/dist/legacy/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.cjs +150 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.d.cts +8 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.d.ts +8 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.js +121 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.cjs +159 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.d.cts +8 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.d.ts +8 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.js +130 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentCard.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.cjs +58 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.d.cts +6 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.d.ts +6 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.js +29 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs +229 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.d.cts +8 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.d.ts +8 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js +200 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.cjs +42 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.d.cts +8 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.d.ts +8 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.js +9 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.cjs +25 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.d.cts +3 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.d.ts +3 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.js +3 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.cjs +92 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.d.cts +13 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.d.ts +13 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.js +63 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.cjs +155 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.d.cts +8 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.d.ts +8 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.js +126 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadBody.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.cjs +93 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.d.cts +8 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.d.ts +8 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.js +64 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.cjs +93 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.d.cts +8 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.d.ts +8 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.js +64 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.cjs +242 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.d.cts +8 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.d.ts +8 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.js +213 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/index.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.cjs +101 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.d.cts +5 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.d.ts +5 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.js +72 -0
- package/dist/legacy/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.js.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.cjs +110 -0
- package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.d.cts +17 -0
- package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.d.ts +17 -0
- package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.js +81 -0
- package/dist/legacy/visualBuilder/components/Collab/Tooltip/Tooltip.js.map +1 -0
- package/dist/legacy/visualBuilder/components/HighlightedCommentIcon.cjs +6 -1
- package/dist/legacy/visualBuilder/components/HighlightedCommentIcon.cjs.map +1 -1
- package/dist/legacy/visualBuilder/components/HighlightedCommentIcon.js +6 -1
- package/dist/legacy/visualBuilder/components/HighlightedCommentIcon.js.map +1 -1
- package/dist/legacy/visualBuilder/components/icons/CollabIcons.cjs +220 -0
- package/dist/legacy/visualBuilder/components/icons/CollabIcons.cjs.map +1 -0
- package/dist/legacy/visualBuilder/components/icons/CollabIcons.d.cts +16 -0
- package/dist/legacy/visualBuilder/components/icons/CollabIcons.d.ts +16 -0
- package/dist/legacy/visualBuilder/components/icons/CollabIcons.js +197 -0
- package/dist/legacy/visualBuilder/components/icons/CollabIcons.js.map +1 -0
- package/dist/legacy/visualBuilder/components/icons/index.cjs +16 -16
- package/dist/legacy/visualBuilder/components/icons/index.cjs.map +1 -1
- package/dist/legacy/visualBuilder/components/icons/index.js +16 -16
- package/dist/legacy/visualBuilder/components/icons/index.js.map +1 -1
- package/dist/legacy/visualBuilder/components/startEditingButton.d.cts +1 -0
- package/dist/legacy/visualBuilder/components/startEditingButton.d.ts +1 -0
- package/dist/legacy/visualBuilder/eventManager/useCollab.cjs +180 -0
- package/dist/legacy/visualBuilder/eventManager/useCollab.cjs.map +1 -0
- package/dist/legacy/visualBuilder/eventManager/useCollab.d.cts +3 -0
- package/dist/legacy/visualBuilder/eventManager/useCollab.d.ts +3 -0
- package/dist/legacy/visualBuilder/eventManager/useCollab.js +156 -0
- package/dist/legacy/visualBuilder/eventManager/useCollab.js.map +1 -0
- package/dist/legacy/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.cjs +7 -2
- package/dist/legacy/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.cjs.map +1 -1
- package/dist/legacy/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.js +7 -2
- package/dist/legacy/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.js.map +1 -1
- package/dist/legacy/visualBuilder/generators/generateCustomCursor.cjs +2 -1
- package/dist/legacy/visualBuilder/generators/generateCustomCursor.cjs.map +1 -1
- package/dist/legacy/visualBuilder/generators/generateCustomCursor.d.cts +2 -2
- package/dist/legacy/visualBuilder/generators/generateCustomCursor.d.ts +2 -2
- package/dist/legacy/visualBuilder/generators/generateCustomCursor.js +2 -1
- package/dist/legacy/visualBuilder/generators/generateCustomCursor.js.map +1 -1
- package/dist/legacy/visualBuilder/generators/generateHighlightedComment.cjs +2 -2
- package/dist/legacy/visualBuilder/generators/generateHighlightedComment.cjs.map +1 -1
- package/dist/legacy/visualBuilder/generators/generateHighlightedComment.js +2 -2
- package/dist/legacy/visualBuilder/generators/generateHighlightedComment.js.map +1 -1
- package/dist/legacy/visualBuilder/generators/generateThread.cjs +496 -0
- package/dist/legacy/visualBuilder/generators/generateThread.cjs.map +1 -0
- package/dist/legacy/visualBuilder/generators/generateThread.d.cts +27 -0
- package/dist/legacy/visualBuilder/generators/generateThread.d.ts +27 -0
- package/dist/legacy/visualBuilder/generators/generateThread.js +445 -0
- package/dist/legacy/visualBuilder/generators/generateThread.js.map +1 -0
- package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.cjs +63 -0
- package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.cjs.map +1 -0
- package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.d.cts +11 -0
- package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.d.ts +11 -0
- package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.js +44 -0
- package/dist/legacy/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.js.map +1 -0
- package/dist/legacy/visualBuilder/hooks/useCollabIndicator.cjs +130 -0
- package/dist/legacy/visualBuilder/hooks/useCollabIndicator.cjs.map +1 -0
- package/dist/legacy/visualBuilder/hooks/useCollabIndicator.d.cts +20 -0
- package/dist/legacy/visualBuilder/hooks/useCollabIndicator.d.ts +20 -0
- package/dist/legacy/visualBuilder/hooks/useCollabIndicator.js +97 -0
- package/dist/legacy/visualBuilder/hooks/useCollabIndicator.js.map +1 -0
- package/dist/legacy/visualBuilder/hooks/useCollabOperations.cjs +147 -0
- package/dist/legacy/visualBuilder/hooks/useCollabOperations.cjs.map +1 -0
- package/dist/legacy/visualBuilder/hooks/useCollabOperations.d.cts +16 -0
- package/dist/legacy/visualBuilder/hooks/useCollabOperations.d.ts +16 -0
- package/dist/legacy/visualBuilder/hooks/useCollabOperations.js +114 -0
- package/dist/legacy/visualBuilder/hooks/useCollabOperations.js.map +1 -0
- package/dist/legacy/visualBuilder/hooks/useCommentTextArea.cjs +428 -0
- package/dist/legacy/visualBuilder/hooks/useCommentTextArea.cjs.map +1 -0
- package/dist/legacy/visualBuilder/hooks/useCommentTextArea.d.cts +27 -0
- package/dist/legacy/visualBuilder/hooks/useCommentTextArea.d.ts +27 -0
- package/dist/legacy/visualBuilder/hooks/useCommentTextArea.js +407 -0
- package/dist/legacy/visualBuilder/hooks/useCommentTextArea.js.map +1 -0
- package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.cjs +42 -0
- package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.cjs.map +1 -0
- package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.d.cts +3 -0
- package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.d.ts +3 -0
- package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.js +23 -0
- package/dist/legacy/visualBuilder/hooks/useDynamicTextareaRows.js.map +1 -0
- package/dist/legacy/visualBuilder/index.cjs +80 -28
- package/dist/legacy/visualBuilder/index.cjs.map +1 -1
- package/dist/legacy/visualBuilder/index.d.cts +1 -0
- package/dist/legacy/visualBuilder/index.d.ts +1 -0
- package/dist/legacy/visualBuilder/index.js +89 -28
- package/dist/legacy/visualBuilder/index.js.map +1 -1
- package/dist/legacy/visualBuilder/listeners/mouseClick.cjs +34 -0
- package/dist/legacy/visualBuilder/listeners/mouseClick.cjs.map +1 -1
- package/dist/legacy/visualBuilder/listeners/mouseClick.js +34 -0
- package/dist/legacy/visualBuilder/listeners/mouseClick.js.map +1 -1
- package/dist/legacy/visualBuilder/listeners/mouseHover.cjs +49 -6
- package/dist/legacy/visualBuilder/listeners/mouseHover.cjs.map +1 -1
- package/dist/legacy/visualBuilder/listeners/mouseHover.js +39 -6
- package/dist/legacy/visualBuilder/listeners/mouseHover.js.map +1 -1
- package/dist/legacy/visualBuilder/types/collab.types.cjs +19 -0
- package/dist/legacy/visualBuilder/types/collab.types.cjs.map +1 -0
- package/dist/legacy/visualBuilder/types/collab.types.d.cts +253 -0
- package/dist/legacy/visualBuilder/types/collab.types.d.ts +253 -0
- package/dist/legacy/visualBuilder/types/collab.types.js +1 -0
- package/dist/legacy/visualBuilder/types/collab.types.js.map +1 -0
- package/dist/legacy/visualBuilder/utils/collabUtils.cjs +221 -0
- package/dist/legacy/visualBuilder/utils/collabUtils.cjs.map +1 -0
- package/dist/legacy/visualBuilder/utils/collabUtils.d.cts +76 -0
- package/dist/legacy/visualBuilder/utils/collabUtils.d.ts +76 -0
- package/dist/legacy/visualBuilder/utils/collabUtils.js +177 -0
- package/dist/legacy/visualBuilder/utils/collabUtils.js.map +1 -0
- package/dist/legacy/visualBuilder/utils/constants.cjs +6 -0
- package/dist/legacy/visualBuilder/utils/constants.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/constants.d.cts +3 -1
- package/dist/legacy/visualBuilder/utils/constants.d.ts +3 -1
- package/dist/legacy/visualBuilder/utils/constants.js +4 -0
- package/dist/legacy/visualBuilder/utils/constants.js.map +1 -1
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs +14 -0
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.cts +15 -1
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.d.ts +15 -1
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.js +14 -0
- package/dist/legacy/visualBuilder/utils/types/postMessage.types.js.map +1 -1
- package/dist/modern/configManager/config.default.cjs +15 -0
- package/dist/modern/configManager/config.default.cjs.map +1 -1
- package/dist/modern/configManager/config.default.d.cts +1 -0
- package/dist/modern/configManager/config.default.d.ts +1 -0
- package/dist/modern/configManager/config.default.js +15 -0
- package/dist/modern/configManager/config.default.js.map +1 -1
- package/dist/modern/configManager/configManager.d.cts +1 -0
- package/dist/modern/configManager/configManager.d.ts +1 -0
- package/dist/modern/configManager/handleUserConfig.d.cts +1 -0
- package/dist/modern/configManager/handleUserConfig.d.ts +1 -0
- package/dist/modern/configManager/index.d.cts +1 -0
- package/dist/modern/configManager/index.d.ts +1 -0
- package/dist/modern/index.cjs +45 -1
- package/dist/modern/index.cjs.map +1 -1
- package/dist/modern/index.d.cts +17 -2
- package/dist/modern/index.d.ts +17 -2
- package/dist/modern/index.js +45 -1
- package/dist/modern/index.js.map +1 -1
- package/dist/modern/livePreview/editButton/editButton.d.cts +1 -0
- package/dist/modern/livePreview/editButton/editButton.d.ts +1 -0
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.cjs +1 -1
- package/dist/modern/livePreview/eventManager/postMessageEvent.hooks.js +1 -1
- package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.cts +1 -0
- package/dist/modern/livePreview/eventManager/types/livePreviewPostMessageEvent.type.d.ts +1 -0
- package/dist/modern/preview/contentstack-live-preview-HOC.cjs +1 -1
- package/dist/modern/preview/contentstack-live-preview-HOC.d.cts +1 -0
- package/dist/modern/preview/contentstack-live-preview-HOC.d.ts +1 -0
- package/dist/modern/preview/contentstack-live-preview-HOC.js +1 -1
- package/dist/modern/types/types.cjs +1 -0
- package/dist/modern/types/types.cjs.map +1 -1
- package/dist/modern/types/types.d.cts +5 -0
- package/dist/modern/types/types.d.ts +5 -0
- package/dist/modern/types/types.js +1 -0
- package/dist/modern/types/types.js.map +1 -1
- package/dist/modern/visualBuilder/collab.style.cjs +660 -0
- package/dist/modern/visualBuilder/collab.style.cjs.map +1 -0
- package/dist/modern/visualBuilder/collab.style.d.cts +84 -0
- package/dist/modern/visualBuilder/collab.style.d.ts +84 -0
- package/dist/modern/visualBuilder/collab.style.js +635 -0
- package/dist/modern/visualBuilder/collab.style.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.cjs +70 -0
- package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.d.cts +12 -0
- package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.d.ts +12 -0
- package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.js +41 -0
- package/dist/modern/visualBuilder/components/Collab/AsyncLoader/AsyncLoader.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.cjs +116 -0
- package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.d.cts +18 -0
- package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.d.ts +18 -0
- package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.js +87 -0
- package/dist/modern/visualBuilder/components/Collab/Avatar/Avatar.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/Button/Button.cjs +143 -0
- package/dist/modern/visualBuilder/components/Collab/Button/Button.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/Button/Button.d.cts +29 -0
- package/dist/modern/visualBuilder/components/Collab/Button/Button.d.ts +29 -0
- package/dist/modern/visualBuilder/components/Collab/Button/Button.js +118 -0
- package/dist/modern/visualBuilder/components/Collab/Button/Button.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.cjs +61 -0
- package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.d.cts +28 -0
- package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.d.ts +28 -0
- package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.js +32 -0
- package/dist/modern/visualBuilder/components/Collab/ButtonGroup/ButtonGroup.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/CollabIndicator.cjs +130 -0
- package/dist/modern/visualBuilder/components/Collab/CollabIndicator.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/CollabIndicator.d.cts +10 -0
- package/dist/modern/visualBuilder/components/Collab/CollabIndicator.d.ts +10 -0
- package/dist/modern/visualBuilder/components/Collab/CollabIndicator.js +101 -0
- package/dist/modern/visualBuilder/components/Collab/CollabIndicator.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/Icon/Icon.cjs +87 -0
- package/dist/modern/visualBuilder/components/Collab/Icon/Icon.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/Icon/Icon.d.cts +19 -0
- package/dist/modern/visualBuilder/components/Collab/Icon/Icon.d.ts +19 -0
- package/dist/modern/visualBuilder/components/Collab/Icon/Icon.js +58 -0
- package/dist/modern/visualBuilder/components/Collab/Icon/Icon.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.cjs +81 -0
- package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.d.cts +17 -0
- package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.d.ts +17 -0
- package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.js +52 -0
- package/dist/modern/visualBuilder/components/Collab/SkeletonTile/SkeletonTile.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.cjs +150 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.d.cts +8 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.d.ts +8 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.js +121 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.cjs +159 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.d.cts +8 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.d.ts +8 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.js +130 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentCard.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.cjs +58 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.d.cts +6 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.d.ts +6 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.js +29 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentResolvedText.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs +225 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.d.cts +8 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.d.ts +8 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js +196 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/CommentTextArea.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.cjs +42 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.d.cts +8 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.d.ts +8 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.js +9 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/ThreadProvider.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.cjs +25 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.d.cts +3 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.d.ts +3 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.js +3 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ContextProvider/index.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.cjs +92 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.d.cts +13 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.d.ts +13 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.js +63 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadActionBar.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.cjs +155 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.d.cts +8 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.d.ts +8 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.js +126 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadBody.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.cjs +92 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.d.cts +8 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.d.ts +8 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.js +63 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadFooter.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.cjs +93 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.d.cts +8 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.d.ts +8 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.js +64 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/ThreadHeader.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.cjs +241 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.d.cts +8 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.d.ts +8 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.js +212 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/index.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.cjs +101 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.d.cts +5 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.d.ts +5 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.js +72 -0
- package/dist/modern/visualBuilder/components/Collab/ThreadPopup/loader/ThreadBody.js.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.cjs +110 -0
- package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.d.cts +17 -0
- package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.d.ts +17 -0
- package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.js +81 -0
- package/dist/modern/visualBuilder/components/Collab/Tooltip/Tooltip.js.map +1 -0
- package/dist/modern/visualBuilder/components/HighlightedCommentIcon.cjs +6 -1
- package/dist/modern/visualBuilder/components/HighlightedCommentIcon.cjs.map +1 -1
- package/dist/modern/visualBuilder/components/HighlightedCommentIcon.js +6 -1
- package/dist/modern/visualBuilder/components/HighlightedCommentIcon.js.map +1 -1
- package/dist/modern/visualBuilder/components/icons/CollabIcons.cjs +220 -0
- package/dist/modern/visualBuilder/components/icons/CollabIcons.cjs.map +1 -0
- package/dist/modern/visualBuilder/components/icons/CollabIcons.d.cts +16 -0
- package/dist/modern/visualBuilder/components/icons/CollabIcons.d.ts +16 -0
- package/dist/modern/visualBuilder/components/icons/CollabIcons.js +197 -0
- package/dist/modern/visualBuilder/components/icons/CollabIcons.js.map +1 -0
- package/dist/modern/visualBuilder/components/icons/index.cjs +16 -16
- package/dist/modern/visualBuilder/components/icons/index.cjs.map +1 -1
- package/dist/modern/visualBuilder/components/icons/index.js +16 -16
- package/dist/modern/visualBuilder/components/icons/index.js.map +1 -1
- package/dist/modern/visualBuilder/components/startEditingButton.d.cts +1 -0
- package/dist/modern/visualBuilder/components/startEditingButton.d.ts +1 -0
- package/dist/modern/visualBuilder/eventManager/useCollab.cjs +173 -0
- package/dist/modern/visualBuilder/eventManager/useCollab.cjs.map +1 -0
- package/dist/modern/visualBuilder/eventManager/useCollab.d.cts +3 -0
- package/dist/modern/visualBuilder/eventManager/useCollab.d.ts +3 -0
- package/dist/modern/visualBuilder/eventManager/useCollab.js +149 -0
- package/dist/modern/visualBuilder/eventManager/useCollab.js.map +1 -0
- package/dist/modern/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.cjs +5 -0
- package/dist/modern/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.cjs.map +1 -1
- package/dist/modern/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.js +5 -0
- package/dist/modern/visualBuilder/eventManager/useHideFocusOverlayPostMessageEvent.js.map +1 -1
- package/dist/modern/visualBuilder/generators/generateCustomCursor.cjs +2 -1
- package/dist/modern/visualBuilder/generators/generateCustomCursor.cjs.map +1 -1
- package/dist/modern/visualBuilder/generators/generateCustomCursor.d.cts +2 -2
- package/dist/modern/visualBuilder/generators/generateCustomCursor.d.ts +2 -2
- package/dist/modern/visualBuilder/generators/generateCustomCursor.js +2 -1
- package/dist/modern/visualBuilder/generators/generateCustomCursor.js.map +1 -1
- package/dist/modern/visualBuilder/generators/generateHighlightedComment.cjs +2 -2
- package/dist/modern/visualBuilder/generators/generateHighlightedComment.cjs.map +1 -1
- package/dist/modern/visualBuilder/generators/generateHighlightedComment.js +2 -2
- package/dist/modern/visualBuilder/generators/generateHighlightedComment.js.map +1 -1
- package/dist/modern/visualBuilder/generators/generateThread.cjs +492 -0
- package/dist/modern/visualBuilder/generators/generateThread.cjs.map +1 -0
- package/dist/modern/visualBuilder/generators/generateThread.d.cts +27 -0
- package/dist/modern/visualBuilder/generators/generateThread.d.ts +27 -0
- package/dist/modern/visualBuilder/generators/generateThread.js +441 -0
- package/dist/modern/visualBuilder/generators/generateThread.js.map +1 -0
- package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.cjs +63 -0
- package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.cjs.map +1 -0
- package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.d.cts +11 -0
- package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.d.ts +11 -0
- package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.js +44 -0
- package/dist/modern/visualBuilder/hooks/use-infinite-scroll/useInfiniteScroll.js.map +1 -0
- package/dist/modern/visualBuilder/hooks/useCollabIndicator.cjs +128 -0
- package/dist/modern/visualBuilder/hooks/useCollabIndicator.cjs.map +1 -0
- package/dist/modern/visualBuilder/hooks/useCollabIndicator.d.cts +20 -0
- package/dist/modern/visualBuilder/hooks/useCollabIndicator.d.ts +20 -0
- package/dist/modern/visualBuilder/hooks/useCollabIndicator.js +95 -0
- package/dist/modern/visualBuilder/hooks/useCollabIndicator.js.map +1 -0
- package/dist/modern/visualBuilder/hooks/useCollabOperations.cjs +140 -0
- package/dist/modern/visualBuilder/hooks/useCollabOperations.cjs.map +1 -0
- package/dist/modern/visualBuilder/hooks/useCollabOperations.d.cts +16 -0
- package/dist/modern/visualBuilder/hooks/useCollabOperations.d.ts +16 -0
- package/dist/modern/visualBuilder/hooks/useCollabOperations.js +107 -0
- package/dist/modern/visualBuilder/hooks/useCollabOperations.js.map +1 -0
- package/dist/modern/visualBuilder/hooks/useCommentTextArea.cjs +423 -0
- package/dist/modern/visualBuilder/hooks/useCommentTextArea.cjs.map +1 -0
- package/dist/modern/visualBuilder/hooks/useCommentTextArea.d.cts +27 -0
- package/dist/modern/visualBuilder/hooks/useCommentTextArea.d.ts +27 -0
- package/dist/modern/visualBuilder/hooks/useCommentTextArea.js +402 -0
- package/dist/modern/visualBuilder/hooks/useCommentTextArea.js.map +1 -0
- package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.cjs +42 -0
- package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.cjs.map +1 -0
- package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.d.cts +3 -0
- package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.d.ts +3 -0
- package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.js +23 -0
- package/dist/modern/visualBuilder/hooks/useDynamicTextareaRows.js.map +1 -0
- package/dist/modern/visualBuilder/index.cjs +80 -28
- package/dist/modern/visualBuilder/index.cjs.map +1 -1
- package/dist/modern/visualBuilder/index.d.cts +1 -0
- package/dist/modern/visualBuilder/index.d.ts +1 -0
- package/dist/modern/visualBuilder/index.js +89 -28
- package/dist/modern/visualBuilder/index.js.map +1 -1
- package/dist/modern/visualBuilder/listeners/mouseClick.cjs +34 -0
- package/dist/modern/visualBuilder/listeners/mouseClick.cjs.map +1 -1
- package/dist/modern/visualBuilder/listeners/mouseClick.js +34 -0
- package/dist/modern/visualBuilder/listeners/mouseClick.js.map +1 -1
- package/dist/modern/visualBuilder/listeners/mouseHover.cjs +49 -6
- package/dist/modern/visualBuilder/listeners/mouseHover.cjs.map +1 -1
- package/dist/modern/visualBuilder/listeners/mouseHover.js +39 -6
- package/dist/modern/visualBuilder/listeners/mouseHover.js.map +1 -1
- package/dist/modern/visualBuilder/types/collab.types.cjs +19 -0
- package/dist/modern/visualBuilder/types/collab.types.cjs.map +1 -0
- package/dist/modern/visualBuilder/types/collab.types.d.cts +253 -0
- package/dist/modern/visualBuilder/types/collab.types.d.ts +253 -0
- package/dist/modern/visualBuilder/types/collab.types.js +1 -0
- package/dist/modern/visualBuilder/types/collab.types.js.map +1 -0
- package/dist/modern/visualBuilder/utils/collabUtils.cjs +219 -0
- package/dist/modern/visualBuilder/utils/collabUtils.cjs.map +1 -0
- package/dist/modern/visualBuilder/utils/collabUtils.d.cts +76 -0
- package/dist/modern/visualBuilder/utils/collabUtils.d.ts +76 -0
- package/dist/modern/visualBuilder/utils/collabUtils.js +175 -0
- package/dist/modern/visualBuilder/utils/collabUtils.js.map +1 -0
- package/dist/modern/visualBuilder/utils/constants.cjs +6 -0
- package/dist/modern/visualBuilder/utils/constants.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/constants.d.cts +3 -1
- package/dist/modern/visualBuilder/utils/constants.d.ts +3 -1
- package/dist/modern/visualBuilder/utils/constants.js +4 -0
- package/dist/modern/visualBuilder/utils/constants.js.map +1 -1
- package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs +14 -0
- package/dist/modern/visualBuilder/utils/types/postMessage.types.cjs.map +1 -1
- package/dist/modern/visualBuilder/utils/types/postMessage.types.d.cts +15 -1
- package/dist/modern/visualBuilder/utils/types/postMessage.types.d.ts +15 -1
- package/dist/modern/visualBuilder/utils/types/postMessage.types.js +14 -0
- package/dist/modern/visualBuilder/utils/types/postMessage.types.js.map +1 -1
- package/package.json +5 -2
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
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
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/visualBuilder/utils/collabUtils.ts
|
|
31
|
+
var collabUtils_exports = {};
|
|
32
|
+
__export(collabUtils_exports, {
|
|
33
|
+
adjustPositionToViewport: () => adjustPositionToViewport,
|
|
34
|
+
filterOutInvalidMentions: () => filterOutInvalidMentions,
|
|
35
|
+
fixSvgXPath: () => fixSvgXPath,
|
|
36
|
+
formatDate: () => formatDate,
|
|
37
|
+
getCommentBody: () => getCommentBody,
|
|
38
|
+
getMessageWithDisplayName: () => getMessageWithDisplayName,
|
|
39
|
+
getThreadTitle: () => getThreadTitle,
|
|
40
|
+
getUserName: () => getUserName,
|
|
41
|
+
normalizePath: () => normalizePath,
|
|
42
|
+
positionTooltip: () => positionTooltip,
|
|
43
|
+
sanitizeData: () => sanitizeData,
|
|
44
|
+
validateCommentAndMentions: () => validateCommentAndMentions
|
|
45
|
+
});
|
|
46
|
+
module.exports = __toCommonJS(collabUtils_exports);
|
|
47
|
+
var import_constants = require("./constants.cjs");
|
|
48
|
+
var import_lodash_es = require("lodash-es");
|
|
49
|
+
var import_dompurify = __toESM(require("dompurify"), 1);
|
|
50
|
+
var import_dayjs = __toESM(require("dayjs"), 1);
|
|
51
|
+
var escapeRegExp = (string) => {
|
|
52
|
+
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
53
|
+
};
|
|
54
|
+
var getThreadTitle = (commentCount) => {
|
|
55
|
+
if (commentCount === 0) return "Add New Comment";
|
|
56
|
+
return commentCount === 1 ? "1 Comment" : `${commentCount} Comments`;
|
|
57
|
+
};
|
|
58
|
+
var getUserName = (user) => {
|
|
59
|
+
return user.firstName && user.lastName ? `${user.firstName} ${user.lastName}` : user.firstName || user.lastName || user.email;
|
|
60
|
+
};
|
|
61
|
+
var validateCommentAndMentions = (comment, toUsers) => {
|
|
62
|
+
if (comment.length > import_constants.maxMessageLength) {
|
|
63
|
+
return `Limit exceeded. You can have a maximum length of ${import_constants.maxMessageLength} characters.`;
|
|
64
|
+
}
|
|
65
|
+
if (toUsers.length > import_constants.mentionLimit) {
|
|
66
|
+
return `Limit exceeded. You can tag a maximum of ${import_constants.mentionLimit} users.`;
|
|
67
|
+
}
|
|
68
|
+
return "";
|
|
69
|
+
};
|
|
70
|
+
var filterOutInvalidMentions = (message, toUsers) => {
|
|
71
|
+
const to_users_temp = toUsers.filter(
|
|
72
|
+
(user) => message.includes(user.display)
|
|
73
|
+
);
|
|
74
|
+
return {
|
|
75
|
+
toUsers: (0, import_lodash_es.uniqBy)(to_users_temp, "id")
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
var getMessageWithDisplayName = (comment, userState, profile) => {
|
|
79
|
+
var _a;
|
|
80
|
+
if (!comment) return void 0;
|
|
81
|
+
let tempText = sanitizeData(comment.message).replace(/<[^>]*>/g, "");
|
|
82
|
+
(_a = comment == null ? void 0 : comment.toUsers) == null ? void 0 : _a.forEach((user) => {
|
|
83
|
+
const userPattern = new RegExp(`{{${user}}}`, "g");
|
|
84
|
+
const userData = userState.userMap[user];
|
|
85
|
+
const replacement = profile === "html" ? `<b class="collab-thread-comment--message">@${userData.display || getUserName(userData)}</b>` : `@${userData.display || getUserName(userData)}`;
|
|
86
|
+
tempText = tempText.replace(userPattern, replacement);
|
|
87
|
+
});
|
|
88
|
+
return tempText;
|
|
89
|
+
};
|
|
90
|
+
var sanitizeData = (dirty) => {
|
|
91
|
+
return import_dompurify.default.sanitize(dirty, { USE_PROFILES: { html: true } });
|
|
92
|
+
};
|
|
93
|
+
var getCommentBody = (state) => {
|
|
94
|
+
var _a;
|
|
95
|
+
let finalMessage = sanitizeData(state.message).replace(/[^\S\r\n]+/g, " ").replace(/ *\n */g, "\n").replace(/<[^>]*>/g, "").trim();
|
|
96
|
+
const comment = {
|
|
97
|
+
message: finalMessage,
|
|
98
|
+
toUsers: [],
|
|
99
|
+
images: [],
|
|
100
|
+
createdBy: state.createdBy,
|
|
101
|
+
author: state.author
|
|
102
|
+
};
|
|
103
|
+
const updateMentionToUID = (entity, result) => {
|
|
104
|
+
const displayName = entity.display;
|
|
105
|
+
const escapedDisplayName = escapeRegExp(`@${displayName}`);
|
|
106
|
+
const regexUser = new RegExp(escapedDisplayName, "g");
|
|
107
|
+
finalMessage = finalMessage.replace(regexUser, `{{${entity.id}}}`);
|
|
108
|
+
result.push(entity.id);
|
|
109
|
+
};
|
|
110
|
+
(_a = state.toUsers) == null ? void 0 : _a.forEach((user) => updateMentionToUID(user, comment.toUsers));
|
|
111
|
+
comment.message = finalMessage;
|
|
112
|
+
return comment;
|
|
113
|
+
};
|
|
114
|
+
function normalizePath(path) {
|
|
115
|
+
if (path === "/") return path;
|
|
116
|
+
return path.endsWith("/") ? path.slice(0, -1) : path;
|
|
117
|
+
}
|
|
118
|
+
function fixSvgXPath(xpath) {
|
|
119
|
+
if (!xpath) return "";
|
|
120
|
+
return xpath.replace(/\/svg/g, "/*[name()='svg']");
|
|
121
|
+
}
|
|
122
|
+
function adjustPositionToViewport(position, options = {}) {
|
|
123
|
+
const { top, left } = position;
|
|
124
|
+
const viewportWidth = window.innerWidth;
|
|
125
|
+
const safeMargin = options.safeMargin ?? 16;
|
|
126
|
+
const topSafeMargin = options.topSafeMargin ?? 42;
|
|
127
|
+
const threadWidth = options.threadWidth ?? 16;
|
|
128
|
+
let adjustedLeft = left;
|
|
129
|
+
let adjustedTop = top;
|
|
130
|
+
if (adjustedLeft + threadWidth > viewportWidth - safeMargin) {
|
|
131
|
+
adjustedLeft = viewportWidth - safeMargin - threadWidth;
|
|
132
|
+
}
|
|
133
|
+
if (adjustedTop - window.scrollY < topSafeMargin) {
|
|
134
|
+
adjustedTop = window.scrollY + topSafeMargin;
|
|
135
|
+
}
|
|
136
|
+
return { top: adjustedTop, left: adjustedLeft };
|
|
137
|
+
}
|
|
138
|
+
function formatDate(dateString) {
|
|
139
|
+
if (!dateString) return "";
|
|
140
|
+
return (0, import_dayjs.default)(dateString).format("MMM DD, YYYY, hh:mm A");
|
|
141
|
+
}
|
|
142
|
+
var positionTooltip = (tooltipRef, targetRef, position, setActualPosition) => {
|
|
143
|
+
if (!tooltipRef.current || !targetRef.current) return;
|
|
144
|
+
const targetRect = targetRef.current.getBoundingClientRect();
|
|
145
|
+
const tooltipRect = tooltipRef.current.getBoundingClientRect();
|
|
146
|
+
const margin = 8;
|
|
147
|
+
const positions = {
|
|
148
|
+
bottom: {
|
|
149
|
+
top: targetRect.bottom + margin,
|
|
150
|
+
left: targetRect.left + (targetRect.width - tooltipRect.width) / 2
|
|
151
|
+
},
|
|
152
|
+
top: {
|
|
153
|
+
top: targetRect.top - tooltipRect.height - margin,
|
|
154
|
+
left: targetRect.left + (targetRect.width - tooltipRect.width) / 2
|
|
155
|
+
},
|
|
156
|
+
left: {
|
|
157
|
+
top: targetRect.top + (targetRect.height - tooltipRect.height) / 2,
|
|
158
|
+
left: targetRect.left - tooltipRect.width - margin
|
|
159
|
+
},
|
|
160
|
+
right: {
|
|
161
|
+
top: targetRect.top + (targetRect.height - tooltipRect.height) / 2,
|
|
162
|
+
left: targetRect.right + margin
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
let bestPosition = position;
|
|
166
|
+
let coords = positions[position];
|
|
167
|
+
const viewportWidth = window.innerWidth;
|
|
168
|
+
const viewportHeight = window.innerHeight;
|
|
169
|
+
const wouldBeOutsideViewport = {
|
|
170
|
+
bottom: coords.top + tooltipRect.height > viewportHeight,
|
|
171
|
+
top: coords.top < 0,
|
|
172
|
+
left: coords.left < 0,
|
|
173
|
+
right: coords.left + tooltipRect.width > viewportWidth
|
|
174
|
+
};
|
|
175
|
+
const horizontalOutOfBounds = coords.left < 0 || coords.left + tooltipRect.width > viewportWidth;
|
|
176
|
+
if (wouldBeOutsideViewport[position] || horizontalOutOfBounds) {
|
|
177
|
+
const positionPriority = ["bottom", "top", "right", "left"];
|
|
178
|
+
positionPriority.splice(positionPriority.indexOf(position), 1);
|
|
179
|
+
positionPriority.push(position);
|
|
180
|
+
for (const pos of positionPriority) {
|
|
181
|
+
const testCoords = positions[pos];
|
|
182
|
+
const isVisible = testCoords.top >= 0 && testCoords.top + tooltipRect.height <= viewportHeight && testCoords.left >= 0 && testCoords.left + tooltipRect.width <= viewportWidth;
|
|
183
|
+
if (isVisible) {
|
|
184
|
+
bestPosition = pos;
|
|
185
|
+
coords = testCoords;
|
|
186
|
+
break;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
if (coords.left < 0) {
|
|
191
|
+
coords.left = margin;
|
|
192
|
+
} else if (coords.left + tooltipRect.width > viewportWidth) {
|
|
193
|
+
coords.left = viewportWidth - tooltipRect.width - margin;
|
|
194
|
+
}
|
|
195
|
+
if (coords.top < 0) {
|
|
196
|
+
coords.top = margin;
|
|
197
|
+
} else if (coords.top + tooltipRect.height > viewportHeight) {
|
|
198
|
+
coords.top = viewportHeight - tooltipRect.height - margin;
|
|
199
|
+
}
|
|
200
|
+
setActualPosition(bestPosition);
|
|
201
|
+
Object.assign(tooltipRef.current.style, {
|
|
202
|
+
top: `${coords.top}px`,
|
|
203
|
+
left: `${coords.left}px`
|
|
204
|
+
});
|
|
205
|
+
};
|
|
206
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
207
|
+
0 && (module.exports = {
|
|
208
|
+
adjustPositionToViewport,
|
|
209
|
+
filterOutInvalidMentions,
|
|
210
|
+
fixSvgXPath,
|
|
211
|
+
formatDate,
|
|
212
|
+
getCommentBody,
|
|
213
|
+
getMessageWithDisplayName,
|
|
214
|
+
getThreadTitle,
|
|
215
|
+
getUserName,
|
|
216
|
+
normalizePath,
|
|
217
|
+
positionTooltip,
|
|
218
|
+
sanitizeData,
|
|
219
|
+
validateCommentAndMentions
|
|
220
|
+
});
|
|
221
|
+
//# sourceMappingURL=collabUtils.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/utils/collabUtils.ts"],"sourcesContent":["import {\n ICommentState,\n IMentionedList,\n IMentionItem,\n IMessageDTO,\n IUserDTO,\n IUserState,\n} from \"../types/collab.types\";\nimport { maxMessageLength, mentionLimit } from \"./constants\";\nimport { uniqBy } from \"lodash-es\";\nimport DOMPurify from \"dompurify\";\nimport dayjs from \"dayjs\";\n\nconst escapeRegExp = (string: string): string => {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n};\n\n/**\n * Generates the title for the thread based on the number of comments.\n * @param {number} commentCount - The number of comments.\n * @returns {string} The title for the thread.\n */\nexport const getThreadTitle = (commentCount: number): string => {\n if (commentCount === 0) return \"Add New Comment\";\n return commentCount === 1 ? \"1 Comment\" : `${commentCount} Comments`;\n};\n\n/**\n * returns the available email.\n * @param {IUserDTO} user - The user object.\n * @returns {string} The user's email.\n */\nexport const getUserName = (user: IUserDTO): string => {\n return user.firstName && user.lastName\n ? `${user.firstName} ${user.lastName}`\n : user.firstName || user.lastName || user.email;\n};\n\n/**\n * Validates the comment length and the number of mentions.\n * @param {string} comment - The comment message.\n * @param {IMentionedList} toUsers - The list of mentioned users.\n * @returns {string} The error message if validation fails, otherwise an empty string.\n */\nexport const validateCommentAndMentions = (\n comment: string,\n toUsers: IMentionedList\n): string => {\n if (comment.length > maxMessageLength) {\n return `Limit exceeded. You can have a maximum length of ${maxMessageLength} characters.`;\n }\n if (toUsers.length > mentionLimit) {\n return `Limit exceeded. You can tag a maximum of ${mentionLimit} users.`;\n }\n return \"\";\n};\n\n/**\n * Removes mentions that no longer exist in the message.\n * @param {string} message - The comment message.\n * @param {IMentionedList} toUsers - The list of mentioned users.\n * @returns {Object} The updated lists of mentioned users.\n */\nexport const filterOutInvalidMentions = (\n message: string,\n toUsers: IMentionedList\n) => {\n const to_users_temp = toUsers.filter((user) =>\n message.includes(user.display)\n );\n\n return {\n toUsers: uniqBy(to_users_temp, \"id\"),\n };\n};\n\n/**\n * Replaces mention placeholders with display names in the comment message.\n * @param {IMessageDTO | undefined} comment - The comment object.\n * @param {IUserState} userState - The user state containing user and role maps.\n * @param {\"text\" | \"html\"} profile - The format for the output message, either plain text or HTML.\n * @returns {string | undefined} The formatted message or undefined if the comment is not provided.\n */\nexport const getMessageWithDisplayName = (\n comment: IMessageDTO | undefined | null,\n userState: IUserState,\n profile: \"text\" | \"html\"\n): string | undefined => {\n if (!comment) return undefined;\n\n let tempText = sanitizeData(comment.message).replace(/<[^>]*>/g, \"\");\n\n comment?.toUsers?.forEach((user) => {\n const userPattern = new RegExp(`{{${user}}}`, \"g\");\n const userData = userState.userMap[user];\n const replacement =\n profile === \"html\"\n ? `<b class=\"collab-thread-comment--message\">@${userData.display || getUserName(userData)}</b>`\n : `@${userData.display || getUserName(userData)}`;\n tempText = tempText.replace(userPattern, replacement);\n });\n\n return tempText;\n};\n\n/**\n * Sanitizes HTML content to prevent XSS attacks.\n * @param {any} dirty - The unsanitized HTML content.\n * @returns {string} The sanitized HTML content.\n */\nexport const sanitizeData = (dirty: any): string => {\n return DOMPurify.sanitize(dirty, { USE_PROFILES: { html: true } });\n};\n\n/**\n * Constructs the comment body with mentions replaced by their unique identifiers.\n * @param {ICommentState} state - The state containing the comment and mentions.\n * @returns {Object} The comment body containing the sanitized message and mentioned users.\n */\nexport const getCommentBody = (state: ICommentState): ICommentState => {\n let finalMessage = sanitizeData(state.message)\n .replace(/[^\\S\\r\\n]+/g, \" \")\n .replace(/ *\\n */g, \"\\n\")\n .replace(/<[^>]*>/g, \"\")\n .trim();\n\n const comment = {\n message: finalMessage,\n toUsers: [],\n images: [],\n createdBy: state.createdBy,\n author: state.author,\n };\n\n const updateMentionToUID = (\n entity: IMentionItem,\n result: Array<string>\n ) => {\n const displayName = entity.display;\n\n const escapedDisplayName = escapeRegExp(`@${displayName}`);\n const regexUser = new RegExp(escapedDisplayName, \"g\");\n finalMessage = finalMessage.replace(regexUser, `{{${entity.id}}}`);\n result.push(entity.id);\n };\n\n state.toUsers?.forEach((user) => updateMentionToUID(user, comment.toUsers));\n\n comment.message = finalMessage;\n return comment;\n};\n\nexport function normalizePath(path: string): string {\n if (path === \"/\") return path;\n return path.endsWith(\"/\") ? path.slice(0, -1) : path;\n}\n\nexport function fixSvgXPath(xpath: string | null): string {\n if (!xpath) return \"\";\n return xpath.replace(/\\/svg/g, \"/*[name()='svg']\");\n}\n\n/**\n * populate the position of the thread based on edges of the screen.\n * @param position\n * @param options\n * @returns\n */\nexport function adjustPositionToViewport(\n position: { top: number; left: number },\n options: {\n threadWidth?: number;\n safeMargin?: number;\n topSafeMargin?: number;\n } = {}\n): { top: number; left: number } {\n const { top, left } = position;\n const viewportWidth = window.innerWidth;\n const safeMargin = options.safeMargin ?? 16;\n const topSafeMargin = options.topSafeMargin ?? 42;\n const threadWidth = options.threadWidth ?? 16;\n\n let adjustedLeft = left;\n let adjustedTop = top;\n\n // Adjust position if too close to right edge\n if (adjustedLeft + threadWidth > viewportWidth - safeMargin) {\n adjustedLeft = viewportWidth - safeMargin - threadWidth;\n }\n\n // Adjust position if too close to top edge\n if (adjustedTop - window.scrollY < topSafeMargin) {\n adjustedTop = window.scrollY + topSafeMargin;\n }\n\n return { top: adjustedTop, left: adjustedLeft };\n}\n\nexport function formatDate(dateString: string): string {\n if (!dateString) return \"\";\n return dayjs(dateString).format(\"MMM DD, YYYY, hh:mm A\");\n}\n\ninterface PositionCoords {\n top: number;\n left: number;\n}\n\ninterface Positions {\n bottom: PositionCoords;\n top: PositionCoords;\n left: PositionCoords;\n right: PositionCoords;\n}\n\n/**\n * Calculates and updates tooltip position based on available viewport space.\n */\nexport const positionTooltip = (\n tooltipRef: React.RefObject<HTMLDivElement>,\n targetRef: React.RefObject<HTMLDivElement>,\n position: \"top\" | \"bottom\" | \"left\" | \"right\",\n setActualPosition: (position: \"top\" | \"bottom\" | \"left\" | \"right\") => void\n) => {\n if (!tooltipRef.current || !targetRef.current) return;\n\n const targetRect = targetRef.current.getBoundingClientRect();\n const tooltipRect = tooltipRef.current.getBoundingClientRect();\n const margin = 8;\n\n const positions: Positions = {\n bottom: {\n top: targetRect.bottom + margin,\n left: targetRect.left + (targetRect.width - tooltipRect.width) / 2,\n },\n top: {\n top: targetRect.top - tooltipRect.height - margin,\n left: targetRect.left + (targetRect.width - tooltipRect.width) / 2,\n },\n left: {\n top: targetRect.top + (targetRect.height - tooltipRect.height) / 2,\n left: targetRect.left - tooltipRect.width - margin,\n },\n right: {\n top: targetRect.top + (targetRect.height - tooltipRect.height) / 2,\n left: targetRect.right + margin,\n },\n };\n\n let bestPosition = position;\n let coords = positions[position];\n\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n const wouldBeOutsideViewport = {\n bottom: coords.top + tooltipRect.height > viewportHeight,\n top: coords.top < 0,\n left: coords.left < 0,\n right: coords.left + tooltipRect.width > viewportWidth,\n };\n\n const horizontalOutOfBounds =\n coords.left < 0 || coords.left + tooltipRect.width > viewportWidth;\n\n if (wouldBeOutsideViewport[position] || horizontalOutOfBounds) {\n const positionPriority = [\"bottom\", \"top\", \"right\", \"left\"];\n\n positionPriority.splice(positionPriority.indexOf(position), 1);\n positionPriority.push(position);\n\n for (const pos of positionPriority) {\n const testCoords = positions[pos as keyof Positions];\n\n const isVisible =\n testCoords.top >= 0 &&\n testCoords.top + tooltipRect.height <= viewportHeight &&\n testCoords.left >= 0 &&\n testCoords.left + tooltipRect.width <= viewportWidth;\n\n if (isVisible) {\n bestPosition = pos as \"top\" | \"bottom\" | \"left\" | \"right\";\n coords = testCoords;\n break;\n }\n }\n }\n\n if (coords.left < 0) {\n coords.left = margin;\n } else if (coords.left + tooltipRect.width > viewportWidth) {\n coords.left = viewportWidth - tooltipRect.width - margin;\n }\n\n if (coords.top < 0) {\n coords.top = margin;\n } else if (coords.top + tooltipRect.height > viewportHeight) {\n coords.top = viewportHeight - tooltipRect.height - margin;\n }\n\n setActualPosition(bestPosition);\n\n Object.assign(tooltipRef.current.style, {\n top: `${coords.top}px`,\n left: `${coords.left}px`,\n });\n};\n"],"mappings":"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","names":["DOMPurify","dayjs"]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { IUserDTO, IMentionedList, IMentionItem, IMessageDTO, IUserState, ICommentState } from '../types/collab.types.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Generates the title for the thread based on the number of comments.
|
|
5
|
+
* @param {number} commentCount - The number of comments.
|
|
6
|
+
* @returns {string} The title for the thread.
|
|
7
|
+
*/
|
|
8
|
+
declare const getThreadTitle: (commentCount: number) => string;
|
|
9
|
+
/**
|
|
10
|
+
* returns the available email.
|
|
11
|
+
* @param {IUserDTO} user - The user object.
|
|
12
|
+
* @returns {string} The user's email.
|
|
13
|
+
*/
|
|
14
|
+
declare const getUserName: (user: IUserDTO) => string;
|
|
15
|
+
/**
|
|
16
|
+
* Validates the comment length and the number of mentions.
|
|
17
|
+
* @param {string} comment - The comment message.
|
|
18
|
+
* @param {IMentionedList} toUsers - The list of mentioned users.
|
|
19
|
+
* @returns {string} The error message if validation fails, otherwise an empty string.
|
|
20
|
+
*/
|
|
21
|
+
declare const validateCommentAndMentions: (comment: string, toUsers: IMentionedList) => string;
|
|
22
|
+
/**
|
|
23
|
+
* Removes mentions that no longer exist in the message.
|
|
24
|
+
* @param {string} message - The comment message.
|
|
25
|
+
* @param {IMentionedList} toUsers - The list of mentioned users.
|
|
26
|
+
* @returns {Object} The updated lists of mentioned users.
|
|
27
|
+
*/
|
|
28
|
+
declare const filterOutInvalidMentions: (message: string, toUsers: IMentionedList) => {
|
|
29
|
+
toUsers: IMentionItem[];
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Replaces mention placeholders with display names in the comment message.
|
|
33
|
+
* @param {IMessageDTO | undefined} comment - The comment object.
|
|
34
|
+
* @param {IUserState} userState - The user state containing user and role maps.
|
|
35
|
+
* @param {"text" | "html"} profile - The format for the output message, either plain text or HTML.
|
|
36
|
+
* @returns {string | undefined} The formatted message or undefined if the comment is not provided.
|
|
37
|
+
*/
|
|
38
|
+
declare const getMessageWithDisplayName: (comment: IMessageDTO | undefined | null, userState: IUserState, profile: "text" | "html") => string | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Sanitizes HTML content to prevent XSS attacks.
|
|
41
|
+
* @param {any} dirty - The unsanitized HTML content.
|
|
42
|
+
* @returns {string} The sanitized HTML content.
|
|
43
|
+
*/
|
|
44
|
+
declare const sanitizeData: (dirty: any) => string;
|
|
45
|
+
/**
|
|
46
|
+
* Constructs the comment body with mentions replaced by their unique identifiers.
|
|
47
|
+
* @param {ICommentState} state - The state containing the comment and mentions.
|
|
48
|
+
* @returns {Object} The comment body containing the sanitized message and mentioned users.
|
|
49
|
+
*/
|
|
50
|
+
declare const getCommentBody: (state: ICommentState) => ICommentState;
|
|
51
|
+
declare function normalizePath(path: string): string;
|
|
52
|
+
declare function fixSvgXPath(xpath: string | null): string;
|
|
53
|
+
/**
|
|
54
|
+
* populate the position of the thread based on edges of the screen.
|
|
55
|
+
* @param position
|
|
56
|
+
* @param options
|
|
57
|
+
* @returns
|
|
58
|
+
*/
|
|
59
|
+
declare function adjustPositionToViewport(position: {
|
|
60
|
+
top: number;
|
|
61
|
+
left: number;
|
|
62
|
+
}, options?: {
|
|
63
|
+
threadWidth?: number;
|
|
64
|
+
safeMargin?: number;
|
|
65
|
+
topSafeMargin?: number;
|
|
66
|
+
}): {
|
|
67
|
+
top: number;
|
|
68
|
+
left: number;
|
|
69
|
+
};
|
|
70
|
+
declare function formatDate(dateString: string): string;
|
|
71
|
+
/**
|
|
72
|
+
* Calculates and updates tooltip position based on available viewport space.
|
|
73
|
+
*/
|
|
74
|
+
declare const positionTooltip: (tooltipRef: React.RefObject<HTMLDivElement>, targetRef: React.RefObject<HTMLDivElement>, position: "top" | "bottom" | "left" | "right", setActualPosition: (position: "top" | "bottom" | "left" | "right") => void) => void;
|
|
75
|
+
|
|
76
|
+
export { adjustPositionToViewport, filterOutInvalidMentions, fixSvgXPath, formatDate, getCommentBody, getMessageWithDisplayName, getThreadTitle, getUserName, normalizePath, positionTooltip, sanitizeData, validateCommentAndMentions };
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { IUserDTO, IMentionedList, IMentionItem, IMessageDTO, IUserState, ICommentState } from '../types/collab.types.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Generates the title for the thread based on the number of comments.
|
|
5
|
+
* @param {number} commentCount - The number of comments.
|
|
6
|
+
* @returns {string} The title for the thread.
|
|
7
|
+
*/
|
|
8
|
+
declare const getThreadTitle: (commentCount: number) => string;
|
|
9
|
+
/**
|
|
10
|
+
* returns the available email.
|
|
11
|
+
* @param {IUserDTO} user - The user object.
|
|
12
|
+
* @returns {string} The user's email.
|
|
13
|
+
*/
|
|
14
|
+
declare const getUserName: (user: IUserDTO) => string;
|
|
15
|
+
/**
|
|
16
|
+
* Validates the comment length and the number of mentions.
|
|
17
|
+
* @param {string} comment - The comment message.
|
|
18
|
+
* @param {IMentionedList} toUsers - The list of mentioned users.
|
|
19
|
+
* @returns {string} The error message if validation fails, otherwise an empty string.
|
|
20
|
+
*/
|
|
21
|
+
declare const validateCommentAndMentions: (comment: string, toUsers: IMentionedList) => string;
|
|
22
|
+
/**
|
|
23
|
+
* Removes mentions that no longer exist in the message.
|
|
24
|
+
* @param {string} message - The comment message.
|
|
25
|
+
* @param {IMentionedList} toUsers - The list of mentioned users.
|
|
26
|
+
* @returns {Object} The updated lists of mentioned users.
|
|
27
|
+
*/
|
|
28
|
+
declare const filterOutInvalidMentions: (message: string, toUsers: IMentionedList) => {
|
|
29
|
+
toUsers: IMentionItem[];
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Replaces mention placeholders with display names in the comment message.
|
|
33
|
+
* @param {IMessageDTO | undefined} comment - The comment object.
|
|
34
|
+
* @param {IUserState} userState - The user state containing user and role maps.
|
|
35
|
+
* @param {"text" | "html"} profile - The format for the output message, either plain text or HTML.
|
|
36
|
+
* @returns {string | undefined} The formatted message or undefined if the comment is not provided.
|
|
37
|
+
*/
|
|
38
|
+
declare const getMessageWithDisplayName: (comment: IMessageDTO | undefined | null, userState: IUserState, profile: "text" | "html") => string | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Sanitizes HTML content to prevent XSS attacks.
|
|
41
|
+
* @param {any} dirty - The unsanitized HTML content.
|
|
42
|
+
* @returns {string} The sanitized HTML content.
|
|
43
|
+
*/
|
|
44
|
+
declare const sanitizeData: (dirty: any) => string;
|
|
45
|
+
/**
|
|
46
|
+
* Constructs the comment body with mentions replaced by their unique identifiers.
|
|
47
|
+
* @param {ICommentState} state - The state containing the comment and mentions.
|
|
48
|
+
* @returns {Object} The comment body containing the sanitized message and mentioned users.
|
|
49
|
+
*/
|
|
50
|
+
declare const getCommentBody: (state: ICommentState) => ICommentState;
|
|
51
|
+
declare function normalizePath(path: string): string;
|
|
52
|
+
declare function fixSvgXPath(xpath: string | null): string;
|
|
53
|
+
/**
|
|
54
|
+
* populate the position of the thread based on edges of the screen.
|
|
55
|
+
* @param position
|
|
56
|
+
* @param options
|
|
57
|
+
* @returns
|
|
58
|
+
*/
|
|
59
|
+
declare function adjustPositionToViewport(position: {
|
|
60
|
+
top: number;
|
|
61
|
+
left: number;
|
|
62
|
+
}, options?: {
|
|
63
|
+
threadWidth?: number;
|
|
64
|
+
safeMargin?: number;
|
|
65
|
+
topSafeMargin?: number;
|
|
66
|
+
}): {
|
|
67
|
+
top: number;
|
|
68
|
+
left: number;
|
|
69
|
+
};
|
|
70
|
+
declare function formatDate(dateString: string): string;
|
|
71
|
+
/**
|
|
72
|
+
* Calculates and updates tooltip position based on available viewport space.
|
|
73
|
+
*/
|
|
74
|
+
declare const positionTooltip: (tooltipRef: React.RefObject<HTMLDivElement>, targetRef: React.RefObject<HTMLDivElement>, position: "top" | "bottom" | "left" | "right", setActualPosition: (position: "top" | "bottom" | "left" | "right") => void) => void;
|
|
75
|
+
|
|
76
|
+
export { adjustPositionToViewport, filterOutInvalidMentions, fixSvgXPath, formatDate, getCommentBody, getMessageWithDisplayName, getThreadTitle, getUserName, normalizePath, positionTooltip, sanitizeData, validateCommentAndMentions };
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import "../../chunk-5WRI5ZAA.js";
|
|
2
|
+
|
|
3
|
+
// src/visualBuilder/utils/collabUtils.ts
|
|
4
|
+
import { maxMessageLength, mentionLimit } from "./constants.js";
|
|
5
|
+
import { uniqBy } from "lodash-es";
|
|
6
|
+
import DOMPurify from "dompurify";
|
|
7
|
+
import dayjs from "dayjs";
|
|
8
|
+
var escapeRegExp = (string) => {
|
|
9
|
+
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
10
|
+
};
|
|
11
|
+
var getThreadTitle = (commentCount) => {
|
|
12
|
+
if (commentCount === 0) return "Add New Comment";
|
|
13
|
+
return commentCount === 1 ? "1 Comment" : `${commentCount} Comments`;
|
|
14
|
+
};
|
|
15
|
+
var getUserName = (user) => {
|
|
16
|
+
return user.firstName && user.lastName ? `${user.firstName} ${user.lastName}` : user.firstName || user.lastName || user.email;
|
|
17
|
+
};
|
|
18
|
+
var validateCommentAndMentions = (comment, toUsers) => {
|
|
19
|
+
if (comment.length > maxMessageLength) {
|
|
20
|
+
return `Limit exceeded. You can have a maximum length of ${maxMessageLength} characters.`;
|
|
21
|
+
}
|
|
22
|
+
if (toUsers.length > mentionLimit) {
|
|
23
|
+
return `Limit exceeded. You can tag a maximum of ${mentionLimit} users.`;
|
|
24
|
+
}
|
|
25
|
+
return "";
|
|
26
|
+
};
|
|
27
|
+
var filterOutInvalidMentions = (message, toUsers) => {
|
|
28
|
+
const to_users_temp = toUsers.filter(
|
|
29
|
+
(user) => message.includes(user.display)
|
|
30
|
+
);
|
|
31
|
+
return {
|
|
32
|
+
toUsers: uniqBy(to_users_temp, "id")
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
var getMessageWithDisplayName = (comment, userState, profile) => {
|
|
36
|
+
var _a;
|
|
37
|
+
if (!comment) return void 0;
|
|
38
|
+
let tempText = sanitizeData(comment.message).replace(/<[^>]*>/g, "");
|
|
39
|
+
(_a = comment == null ? void 0 : comment.toUsers) == null ? void 0 : _a.forEach((user) => {
|
|
40
|
+
const userPattern = new RegExp(`{{${user}}}`, "g");
|
|
41
|
+
const userData = userState.userMap[user];
|
|
42
|
+
const replacement = profile === "html" ? `<b class="collab-thread-comment--message">@${userData.display || getUserName(userData)}</b>` : `@${userData.display || getUserName(userData)}`;
|
|
43
|
+
tempText = tempText.replace(userPattern, replacement);
|
|
44
|
+
});
|
|
45
|
+
return tempText;
|
|
46
|
+
};
|
|
47
|
+
var sanitizeData = (dirty) => {
|
|
48
|
+
return DOMPurify.sanitize(dirty, { USE_PROFILES: { html: true } });
|
|
49
|
+
};
|
|
50
|
+
var getCommentBody = (state) => {
|
|
51
|
+
var _a;
|
|
52
|
+
let finalMessage = sanitizeData(state.message).replace(/[^\S\r\n]+/g, " ").replace(/ *\n */g, "\n").replace(/<[^>]*>/g, "").trim();
|
|
53
|
+
const comment = {
|
|
54
|
+
message: finalMessage,
|
|
55
|
+
toUsers: [],
|
|
56
|
+
images: [],
|
|
57
|
+
createdBy: state.createdBy,
|
|
58
|
+
author: state.author
|
|
59
|
+
};
|
|
60
|
+
const updateMentionToUID = (entity, result) => {
|
|
61
|
+
const displayName = entity.display;
|
|
62
|
+
const escapedDisplayName = escapeRegExp(`@${displayName}`);
|
|
63
|
+
const regexUser = new RegExp(escapedDisplayName, "g");
|
|
64
|
+
finalMessage = finalMessage.replace(regexUser, `{{${entity.id}}}`);
|
|
65
|
+
result.push(entity.id);
|
|
66
|
+
};
|
|
67
|
+
(_a = state.toUsers) == null ? void 0 : _a.forEach((user) => updateMentionToUID(user, comment.toUsers));
|
|
68
|
+
comment.message = finalMessage;
|
|
69
|
+
return comment;
|
|
70
|
+
};
|
|
71
|
+
function normalizePath(path) {
|
|
72
|
+
if (path === "/") return path;
|
|
73
|
+
return path.endsWith("/") ? path.slice(0, -1) : path;
|
|
74
|
+
}
|
|
75
|
+
function fixSvgXPath(xpath) {
|
|
76
|
+
if (!xpath) return "";
|
|
77
|
+
return xpath.replace(/\/svg/g, "/*[name()='svg']");
|
|
78
|
+
}
|
|
79
|
+
function adjustPositionToViewport(position, options = {}) {
|
|
80
|
+
const { top, left } = position;
|
|
81
|
+
const viewportWidth = window.innerWidth;
|
|
82
|
+
const safeMargin = options.safeMargin ?? 16;
|
|
83
|
+
const topSafeMargin = options.topSafeMargin ?? 42;
|
|
84
|
+
const threadWidth = options.threadWidth ?? 16;
|
|
85
|
+
let adjustedLeft = left;
|
|
86
|
+
let adjustedTop = top;
|
|
87
|
+
if (adjustedLeft + threadWidth > viewportWidth - safeMargin) {
|
|
88
|
+
adjustedLeft = viewportWidth - safeMargin - threadWidth;
|
|
89
|
+
}
|
|
90
|
+
if (adjustedTop - window.scrollY < topSafeMargin) {
|
|
91
|
+
adjustedTop = window.scrollY + topSafeMargin;
|
|
92
|
+
}
|
|
93
|
+
return { top: adjustedTop, left: adjustedLeft };
|
|
94
|
+
}
|
|
95
|
+
function formatDate(dateString) {
|
|
96
|
+
if (!dateString) return "";
|
|
97
|
+
return dayjs(dateString).format("MMM DD, YYYY, hh:mm A");
|
|
98
|
+
}
|
|
99
|
+
var positionTooltip = (tooltipRef, targetRef, position, setActualPosition) => {
|
|
100
|
+
if (!tooltipRef.current || !targetRef.current) return;
|
|
101
|
+
const targetRect = targetRef.current.getBoundingClientRect();
|
|
102
|
+
const tooltipRect = tooltipRef.current.getBoundingClientRect();
|
|
103
|
+
const margin = 8;
|
|
104
|
+
const positions = {
|
|
105
|
+
bottom: {
|
|
106
|
+
top: targetRect.bottom + margin,
|
|
107
|
+
left: targetRect.left + (targetRect.width - tooltipRect.width) / 2
|
|
108
|
+
},
|
|
109
|
+
top: {
|
|
110
|
+
top: targetRect.top - tooltipRect.height - margin,
|
|
111
|
+
left: targetRect.left + (targetRect.width - tooltipRect.width) / 2
|
|
112
|
+
},
|
|
113
|
+
left: {
|
|
114
|
+
top: targetRect.top + (targetRect.height - tooltipRect.height) / 2,
|
|
115
|
+
left: targetRect.left - tooltipRect.width - margin
|
|
116
|
+
},
|
|
117
|
+
right: {
|
|
118
|
+
top: targetRect.top + (targetRect.height - tooltipRect.height) / 2,
|
|
119
|
+
left: targetRect.right + margin
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
let bestPosition = position;
|
|
123
|
+
let coords = positions[position];
|
|
124
|
+
const viewportWidth = window.innerWidth;
|
|
125
|
+
const viewportHeight = window.innerHeight;
|
|
126
|
+
const wouldBeOutsideViewport = {
|
|
127
|
+
bottom: coords.top + tooltipRect.height > viewportHeight,
|
|
128
|
+
top: coords.top < 0,
|
|
129
|
+
left: coords.left < 0,
|
|
130
|
+
right: coords.left + tooltipRect.width > viewportWidth
|
|
131
|
+
};
|
|
132
|
+
const horizontalOutOfBounds = coords.left < 0 || coords.left + tooltipRect.width > viewportWidth;
|
|
133
|
+
if (wouldBeOutsideViewport[position] || horizontalOutOfBounds) {
|
|
134
|
+
const positionPriority = ["bottom", "top", "right", "left"];
|
|
135
|
+
positionPriority.splice(positionPriority.indexOf(position), 1);
|
|
136
|
+
positionPriority.push(position);
|
|
137
|
+
for (const pos of positionPriority) {
|
|
138
|
+
const testCoords = positions[pos];
|
|
139
|
+
const isVisible = testCoords.top >= 0 && testCoords.top + tooltipRect.height <= viewportHeight && testCoords.left >= 0 && testCoords.left + tooltipRect.width <= viewportWidth;
|
|
140
|
+
if (isVisible) {
|
|
141
|
+
bestPosition = pos;
|
|
142
|
+
coords = testCoords;
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (coords.left < 0) {
|
|
148
|
+
coords.left = margin;
|
|
149
|
+
} else if (coords.left + tooltipRect.width > viewportWidth) {
|
|
150
|
+
coords.left = viewportWidth - tooltipRect.width - margin;
|
|
151
|
+
}
|
|
152
|
+
if (coords.top < 0) {
|
|
153
|
+
coords.top = margin;
|
|
154
|
+
} else if (coords.top + tooltipRect.height > viewportHeight) {
|
|
155
|
+
coords.top = viewportHeight - tooltipRect.height - margin;
|
|
156
|
+
}
|
|
157
|
+
setActualPosition(bestPosition);
|
|
158
|
+
Object.assign(tooltipRef.current.style, {
|
|
159
|
+
top: `${coords.top}px`,
|
|
160
|
+
left: `${coords.left}px`
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
export {
|
|
164
|
+
adjustPositionToViewport,
|
|
165
|
+
filterOutInvalidMentions,
|
|
166
|
+
fixSvgXPath,
|
|
167
|
+
formatDate,
|
|
168
|
+
getCommentBody,
|
|
169
|
+
getMessageWithDisplayName,
|
|
170
|
+
getThreadTitle,
|
|
171
|
+
getUserName,
|
|
172
|
+
normalizePath,
|
|
173
|
+
positionTooltip,
|
|
174
|
+
sanitizeData,
|
|
175
|
+
validateCommentAndMentions
|
|
176
|
+
};
|
|
177
|
+
//# sourceMappingURL=collabUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/utils/collabUtils.ts"],"sourcesContent":["import {\n ICommentState,\n IMentionedList,\n IMentionItem,\n IMessageDTO,\n IUserDTO,\n IUserState,\n} from \"../types/collab.types\";\nimport { maxMessageLength, mentionLimit } from \"./constants\";\nimport { uniqBy } from \"lodash-es\";\nimport DOMPurify from \"dompurify\";\nimport dayjs from \"dayjs\";\n\nconst escapeRegExp = (string: string): string => {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n};\n\n/**\n * Generates the title for the thread based on the number of comments.\n * @param {number} commentCount - The number of comments.\n * @returns {string} The title for the thread.\n */\nexport const getThreadTitle = (commentCount: number): string => {\n if (commentCount === 0) return \"Add New Comment\";\n return commentCount === 1 ? \"1 Comment\" : `${commentCount} Comments`;\n};\n\n/**\n * returns the available email.\n * @param {IUserDTO} user - The user object.\n * @returns {string} The user's email.\n */\nexport const getUserName = (user: IUserDTO): string => {\n return user.firstName && user.lastName\n ? `${user.firstName} ${user.lastName}`\n : user.firstName || user.lastName || user.email;\n};\n\n/**\n * Validates the comment length and the number of mentions.\n * @param {string} comment - The comment message.\n * @param {IMentionedList} toUsers - The list of mentioned users.\n * @returns {string} The error message if validation fails, otherwise an empty string.\n */\nexport const validateCommentAndMentions = (\n comment: string,\n toUsers: IMentionedList\n): string => {\n if (comment.length > maxMessageLength) {\n return `Limit exceeded. You can have a maximum length of ${maxMessageLength} characters.`;\n }\n if (toUsers.length > mentionLimit) {\n return `Limit exceeded. You can tag a maximum of ${mentionLimit} users.`;\n }\n return \"\";\n};\n\n/**\n * Removes mentions that no longer exist in the message.\n * @param {string} message - The comment message.\n * @param {IMentionedList} toUsers - The list of mentioned users.\n * @returns {Object} The updated lists of mentioned users.\n */\nexport const filterOutInvalidMentions = (\n message: string,\n toUsers: IMentionedList\n) => {\n const to_users_temp = toUsers.filter((user) =>\n message.includes(user.display)\n );\n\n return {\n toUsers: uniqBy(to_users_temp, \"id\"),\n };\n};\n\n/**\n * Replaces mention placeholders with display names in the comment message.\n * @param {IMessageDTO | undefined} comment - The comment object.\n * @param {IUserState} userState - The user state containing user and role maps.\n * @param {\"text\" | \"html\"} profile - The format for the output message, either plain text or HTML.\n * @returns {string | undefined} The formatted message or undefined if the comment is not provided.\n */\nexport const getMessageWithDisplayName = (\n comment: IMessageDTO | undefined | null,\n userState: IUserState,\n profile: \"text\" | \"html\"\n): string | undefined => {\n if (!comment) return undefined;\n\n let tempText = sanitizeData(comment.message).replace(/<[^>]*>/g, \"\");\n\n comment?.toUsers?.forEach((user) => {\n const userPattern = new RegExp(`{{${user}}}`, \"g\");\n const userData = userState.userMap[user];\n const replacement =\n profile === \"html\"\n ? `<b class=\"collab-thread-comment--message\">@${userData.display || getUserName(userData)}</b>`\n : `@${userData.display || getUserName(userData)}`;\n tempText = tempText.replace(userPattern, replacement);\n });\n\n return tempText;\n};\n\n/**\n * Sanitizes HTML content to prevent XSS attacks.\n * @param {any} dirty - The unsanitized HTML content.\n * @returns {string} The sanitized HTML content.\n */\nexport const sanitizeData = (dirty: any): string => {\n return DOMPurify.sanitize(dirty, { USE_PROFILES: { html: true } });\n};\n\n/**\n * Constructs the comment body with mentions replaced by their unique identifiers.\n * @param {ICommentState} state - The state containing the comment and mentions.\n * @returns {Object} The comment body containing the sanitized message and mentioned users.\n */\nexport const getCommentBody = (state: ICommentState): ICommentState => {\n let finalMessage = sanitizeData(state.message)\n .replace(/[^\\S\\r\\n]+/g, \" \")\n .replace(/ *\\n */g, \"\\n\")\n .replace(/<[^>]*>/g, \"\")\n .trim();\n\n const comment = {\n message: finalMessage,\n toUsers: [],\n images: [],\n createdBy: state.createdBy,\n author: state.author,\n };\n\n const updateMentionToUID = (\n entity: IMentionItem,\n result: Array<string>\n ) => {\n const displayName = entity.display;\n\n const escapedDisplayName = escapeRegExp(`@${displayName}`);\n const regexUser = new RegExp(escapedDisplayName, \"g\");\n finalMessage = finalMessage.replace(regexUser, `{{${entity.id}}}`);\n result.push(entity.id);\n };\n\n state.toUsers?.forEach((user) => updateMentionToUID(user, comment.toUsers));\n\n comment.message = finalMessage;\n return comment;\n};\n\nexport function normalizePath(path: string): string {\n if (path === \"/\") return path;\n return path.endsWith(\"/\") ? path.slice(0, -1) : path;\n}\n\nexport function fixSvgXPath(xpath: string | null): string {\n if (!xpath) return \"\";\n return xpath.replace(/\\/svg/g, \"/*[name()='svg']\");\n}\n\n/**\n * populate the position of the thread based on edges of the screen.\n * @param position\n * @param options\n * @returns\n */\nexport function adjustPositionToViewport(\n position: { top: number; left: number },\n options: {\n threadWidth?: number;\n safeMargin?: number;\n topSafeMargin?: number;\n } = {}\n): { top: number; left: number } {\n const { top, left } = position;\n const viewportWidth = window.innerWidth;\n const safeMargin = options.safeMargin ?? 16;\n const topSafeMargin = options.topSafeMargin ?? 42;\n const threadWidth = options.threadWidth ?? 16;\n\n let adjustedLeft = left;\n let adjustedTop = top;\n\n // Adjust position if too close to right edge\n if (adjustedLeft + threadWidth > viewportWidth - safeMargin) {\n adjustedLeft = viewportWidth - safeMargin - threadWidth;\n }\n\n // Adjust position if too close to top edge\n if (adjustedTop - window.scrollY < topSafeMargin) {\n adjustedTop = window.scrollY + topSafeMargin;\n }\n\n return { top: adjustedTop, left: adjustedLeft };\n}\n\nexport function formatDate(dateString: string): string {\n if (!dateString) return \"\";\n return dayjs(dateString).format(\"MMM DD, YYYY, hh:mm A\");\n}\n\ninterface PositionCoords {\n top: number;\n left: number;\n}\n\ninterface Positions {\n bottom: PositionCoords;\n top: PositionCoords;\n left: PositionCoords;\n right: PositionCoords;\n}\n\n/**\n * Calculates and updates tooltip position based on available viewport space.\n */\nexport const positionTooltip = (\n tooltipRef: React.RefObject<HTMLDivElement>,\n targetRef: React.RefObject<HTMLDivElement>,\n position: \"top\" | \"bottom\" | \"left\" | \"right\",\n setActualPosition: (position: \"top\" | \"bottom\" | \"left\" | \"right\") => void\n) => {\n if (!tooltipRef.current || !targetRef.current) return;\n\n const targetRect = targetRef.current.getBoundingClientRect();\n const tooltipRect = tooltipRef.current.getBoundingClientRect();\n const margin = 8;\n\n const positions: Positions = {\n bottom: {\n top: targetRect.bottom + margin,\n left: targetRect.left + (targetRect.width - tooltipRect.width) / 2,\n },\n top: {\n top: targetRect.top - tooltipRect.height - margin,\n left: targetRect.left + (targetRect.width - tooltipRect.width) / 2,\n },\n left: {\n top: targetRect.top + (targetRect.height - tooltipRect.height) / 2,\n left: targetRect.left - tooltipRect.width - margin,\n },\n right: {\n top: targetRect.top + (targetRect.height - tooltipRect.height) / 2,\n left: targetRect.right + margin,\n },\n };\n\n let bestPosition = position;\n let coords = positions[position];\n\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n const wouldBeOutsideViewport = {\n bottom: coords.top + tooltipRect.height > viewportHeight,\n top: coords.top < 0,\n left: coords.left < 0,\n right: coords.left + tooltipRect.width > viewportWidth,\n };\n\n const horizontalOutOfBounds =\n coords.left < 0 || coords.left + tooltipRect.width > viewportWidth;\n\n if (wouldBeOutsideViewport[position] || horizontalOutOfBounds) {\n const positionPriority = [\"bottom\", \"top\", \"right\", \"left\"];\n\n positionPriority.splice(positionPriority.indexOf(position), 1);\n positionPriority.push(position);\n\n for (const pos of positionPriority) {\n const testCoords = positions[pos as keyof Positions];\n\n const isVisible =\n testCoords.top >= 0 &&\n testCoords.top + tooltipRect.height <= viewportHeight &&\n testCoords.left >= 0 &&\n testCoords.left + tooltipRect.width <= viewportWidth;\n\n if (isVisible) {\n bestPosition = pos as \"top\" | \"bottom\" | \"left\" | \"right\";\n coords = testCoords;\n break;\n }\n }\n }\n\n if (coords.left < 0) {\n coords.left = margin;\n } else if (coords.left + tooltipRect.width > viewportWidth) {\n coords.left = viewportWidth - tooltipRect.width - margin;\n }\n\n if (coords.top < 0) {\n coords.top = margin;\n } else if (coords.top + tooltipRect.height > viewportHeight) {\n coords.top = viewportHeight - tooltipRect.height - margin;\n }\n\n setActualPosition(bestPosition);\n\n Object.assign(tooltipRef.current.style, {\n top: `${coords.top}px`,\n left: `${coords.left}px`,\n });\n};\n"],"mappings":";;;AAQA,SAAS,kBAAkB,oBAAoB;AAC/C,SAAS,cAAc;AACvB,OAAO,eAAe;AACtB,OAAO,WAAW;AAElB,IAAM,eAAe,CAAC,WAA2B;AAC7C,SAAO,OAAO,QAAQ,uBAAuB,MAAM;AACvD;AAOO,IAAM,iBAAiB,CAAC,iBAAiC;AAC5D,MAAI,iBAAiB,EAAG,QAAO;AAC/B,SAAO,iBAAiB,IAAI,cAAc,GAAG,YAAY;AAC7D;AAOO,IAAM,cAAc,CAAC,SAA2B;AACnD,SAAO,KAAK,aAAa,KAAK,WACxB,GAAG,KAAK,SAAS,IAAI,KAAK,QAAQ,KAClC,KAAK,aAAa,KAAK,YAAY,KAAK;AAClD;AAQO,IAAM,6BAA6B,CACtC,SACA,YACS;AACT,MAAI,QAAQ,SAAS,kBAAkB;AACnC,WAAO,oDAAoD,gBAAgB;AAAA,EAC/E;AACA,MAAI,QAAQ,SAAS,cAAc;AAC/B,WAAO,4CAA4C,YAAY;AAAA,EACnE;AACA,SAAO;AACX;AAQO,IAAM,2BAA2B,CACpC,SACA,YACC;AACD,QAAM,gBAAgB,QAAQ;AAAA,IAAO,CAAC,SAClC,QAAQ,SAAS,KAAK,OAAO;AAAA,EACjC;AAEA,SAAO;AAAA,IACH,SAAS,OAAO,eAAe,IAAI;AAAA,EACvC;AACJ;AASO,IAAM,4BAA4B,CACrC,SACA,WACA,YACqB;AAvFzB;AAwFI,MAAI,CAAC,QAAS,QAAO;AAErB,MAAI,WAAW,aAAa,QAAQ,OAAO,EAAE,QAAQ,YAAY,EAAE;AAEnE,2CAAS,YAAT,mBAAkB,QAAQ,CAAC,SAAS;AAChC,UAAM,cAAc,IAAI,OAAO,KAAK,IAAI,MAAM,GAAG;AACjD,UAAM,WAAW,UAAU,QAAQ,IAAI;AACvC,UAAM,cACF,YAAY,SACN,8CAA8C,SAAS,WAAW,YAAY,QAAQ,CAAC,SACvF,IAAI,SAAS,WAAW,YAAY,QAAQ,CAAC;AACvD,eAAW,SAAS,QAAQ,aAAa,WAAW;AAAA,EACxD;AAEA,SAAO;AACX;AAOO,IAAM,eAAe,CAAC,UAAuB;AAChD,SAAO,UAAU,SAAS,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,EAAE,CAAC;AACrE;AAOO,IAAM,iBAAiB,CAAC,UAAwC;AAvHvE;AAwHI,MAAI,eAAe,aAAa,MAAM,OAAO,EACxC,QAAQ,eAAe,GAAG,EAC1B,QAAQ,WAAW,IAAI,EACvB,QAAQ,YAAY,EAAE,EACtB,KAAK;AAEV,QAAM,UAAU;AAAA,IACZ,SAAS;AAAA,IACT,SAAS,CAAC;AAAA,IACV,QAAQ,CAAC;AAAA,IACT,WAAW,MAAM;AAAA,IACjB,QAAQ,MAAM;AAAA,EAClB;AAEA,QAAM,qBAAqB,CACvB,QACA,WACC;AACD,UAAM,cAAc,OAAO;AAE3B,UAAM,qBAAqB,aAAa,IAAI,WAAW,EAAE;AACzD,UAAM,YAAY,IAAI,OAAO,oBAAoB,GAAG;AACpD,mBAAe,aAAa,QAAQ,WAAW,KAAK,OAAO,EAAE,IAAI;AACjE,WAAO,KAAK,OAAO,EAAE;AAAA,EACzB;AAEA,cAAM,YAAN,mBAAe,QAAQ,CAAC,SAAS,mBAAmB,MAAM,QAAQ,OAAO;AAEzE,UAAQ,UAAU;AAClB,SAAO;AACX;AAEO,SAAS,cAAc,MAAsB;AAChD,MAAI,SAAS,IAAK,QAAO;AACzB,SAAO,KAAK,SAAS,GAAG,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI;AACpD;AAEO,SAAS,YAAY,OAA8B;AACtD,MAAI,CAAC,MAAO,QAAO;AACnB,SAAO,MAAM,QAAQ,UAAU,kBAAkB;AACrD;AAQO,SAAS,yBACZ,UACA,UAII,CAAC,GACwB;AAC7B,QAAM,EAAE,KAAK,KAAK,IAAI;AACtB,QAAM,gBAAgB,OAAO;AAC7B,QAAM,aAAa,QAAQ,cAAc;AACzC,QAAM,gBAAgB,QAAQ,iBAAiB;AAC/C,QAAM,cAAc,QAAQ,eAAe;AAE3C,MAAI,eAAe;AACnB,MAAI,cAAc;AAGlB,MAAI,eAAe,cAAc,gBAAgB,YAAY;AACzD,mBAAe,gBAAgB,aAAa;AAAA,EAChD;AAGA,MAAI,cAAc,OAAO,UAAU,eAAe;AAC9C,kBAAc,OAAO,UAAU;AAAA,EACnC;AAEA,SAAO,EAAE,KAAK,aAAa,MAAM,aAAa;AAClD;AAEO,SAAS,WAAW,YAA4B;AACnD,MAAI,CAAC,WAAY,QAAO;AACxB,SAAO,MAAM,UAAU,EAAE,OAAO,uBAAuB;AAC3D;AAiBO,IAAM,kBAAkB,CAC3B,YACA,WACA,UACA,sBACC;AACD,MAAI,CAAC,WAAW,WAAW,CAAC,UAAU,QAAS;AAE/C,QAAM,aAAa,UAAU,QAAQ,sBAAsB;AAC3D,QAAM,cAAc,WAAW,QAAQ,sBAAsB;AAC7D,QAAM,SAAS;AAEf,QAAM,YAAuB;AAAA,IACzB,QAAQ;AAAA,MACJ,KAAK,WAAW,SAAS;AAAA,MACzB,MAAM,WAAW,QAAQ,WAAW,QAAQ,YAAY,SAAS;AAAA,IACrE;AAAA,IACA,KAAK;AAAA,MACD,KAAK,WAAW,MAAM,YAAY,SAAS;AAAA,MAC3C,MAAM,WAAW,QAAQ,WAAW,QAAQ,YAAY,SAAS;AAAA,IACrE;AAAA,IACA,MAAM;AAAA,MACF,KAAK,WAAW,OAAO,WAAW,SAAS,YAAY,UAAU;AAAA,MACjE,MAAM,WAAW,OAAO,YAAY,QAAQ;AAAA,IAChD;AAAA,IACA,OAAO;AAAA,MACH,KAAK,WAAW,OAAO,WAAW,SAAS,YAAY,UAAU;AAAA,MACjE,MAAM,WAAW,QAAQ;AAAA,IAC7B;AAAA,EACJ;AAEA,MAAI,eAAe;AACnB,MAAI,SAAS,UAAU,QAAQ;AAE/B,QAAM,gBAAgB,OAAO;AAC7B,QAAM,iBAAiB,OAAO;AAE9B,QAAM,yBAAyB;AAAA,IAC3B,QAAQ,OAAO,MAAM,YAAY,SAAS;AAAA,IAC1C,KAAK,OAAO,MAAM;AAAA,IAClB,MAAM,OAAO,OAAO;AAAA,IACpB,OAAO,OAAO,OAAO,YAAY,QAAQ;AAAA,EAC7C;AAEA,QAAM,wBACF,OAAO,OAAO,KAAK,OAAO,OAAO,YAAY,QAAQ;AAEzD,MAAI,uBAAuB,QAAQ,KAAK,uBAAuB;AAC3D,UAAM,mBAAmB,CAAC,UAAU,OAAO,SAAS,MAAM;AAE1D,qBAAiB,OAAO,iBAAiB,QAAQ,QAAQ,GAAG,CAAC;AAC7D,qBAAiB,KAAK,QAAQ;AAE9B,eAAW,OAAO,kBAAkB;AAChC,YAAM,aAAa,UAAU,GAAsB;AAEnD,YAAM,YACF,WAAW,OAAO,KAClB,WAAW,MAAM,YAAY,UAAU,kBACvC,WAAW,QAAQ,KACnB,WAAW,OAAO,YAAY,SAAS;AAE3C,UAAI,WAAW;AACX,uBAAe;AACf,iBAAS;AACT;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,OAAO,OAAO,GAAG;AACjB,WAAO,OAAO;AAAA,EAClB,WAAW,OAAO,OAAO,YAAY,QAAQ,eAAe;AACxD,WAAO,OAAO,gBAAgB,YAAY,QAAQ;AAAA,EACtD;AAEA,MAAI,OAAO,MAAM,GAAG;AAChB,WAAO,MAAM;AAAA,EACjB,WAAW,OAAO,MAAM,YAAY,SAAS,gBAAgB;AACzD,WAAO,MAAM,iBAAiB,YAAY,SAAS;AAAA,EACvD;AAEA,oBAAkB,YAAY;AAE9B,SAAO,OAAO,WAAW,QAAQ,OAAO;AAAA,IACpC,KAAK,GAAG,OAAO,GAAG;AAAA,IAClB,MAAM,GAAG,OAAO,IAAI;AAAA,EACxB,CAAC;AACL;","names":[]}
|
|
@@ -31,6 +31,8 @@ __export(constants_exports, {
|
|
|
31
31
|
TOP_EDGE_BUFFER: () => TOP_EDGE_BUFFER,
|
|
32
32
|
VISUAL_BUILDER_CHANNEL_ID: () => VISUAL_BUILDER_CHANNEL_ID,
|
|
33
33
|
VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY: () => VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,
|
|
34
|
+
maxMessageLength: () => maxMessageLength,
|
|
35
|
+
mentionLimit: () => mentionLimit,
|
|
34
36
|
numericInputRegex: () => numericInputRegex,
|
|
35
37
|
unicodeNonBreakingSpace: () => unicodeNonBreakingSpace
|
|
36
38
|
});
|
|
@@ -68,6 +70,8 @@ var DEFAULT_MULTIPLE_FIELDS = [
|
|
|
68
70
|
import_types.FieldDataType.BLOCK
|
|
69
71
|
];
|
|
70
72
|
var unicodeNonBreakingSpace = "\xA0";
|
|
73
|
+
var mentionLimit = 20;
|
|
74
|
+
var maxMessageLength = 500;
|
|
71
75
|
// Annotate the CommonJS export names for ESM import in node:
|
|
72
76
|
0 && (module.exports = {
|
|
73
77
|
ALLOWED_INLINE_EDITABLE_FIELD,
|
|
@@ -81,6 +85,8 @@ var unicodeNonBreakingSpace = "\xA0";
|
|
|
81
85
|
TOP_EDGE_BUFFER,
|
|
82
86
|
VISUAL_BUILDER_CHANNEL_ID,
|
|
83
87
|
VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY,
|
|
88
|
+
maxMessageLength,
|
|
89
|
+
mentionLimit,
|
|
84
90
|
numericInputRegex,
|
|
85
91
|
unicodeNonBreakingSpace
|
|
86
92
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/visualBuilder/utils/constants.ts"],"sourcesContent":["import { FieldDataType } from \"./types/index.types\";\n\nexport const numericInputRegex = /^-?\\d*(\\.\\d*)?([eE][-+]?\\d*)?$/;\n\nexport const VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY = \"data-cslp-field-type\";\n\nexport const VISUAL_BUILDER_CHANNEL_ID = \"visual-builder\";\n\nexport const LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX = 2;\n\n// Minimum distance from top edge to prevent toolbar from being hidden\nexport const TOP_EDGE_BUFFER = 42;\nexport const RIGHT_EDGE_BUFFER = 180;\n\nexport const TOOLBAR_EDGE_BUFFER = 8;\n\nexport const DATA_CSLP_ATTR_SELECTOR = \"data-cslp\";\n\n/**\n * The field that can be directly modified using contenteditable=true.\n * This includes all text fields like title and numbers.\n */\nexport const ALLOWED_INLINE_EDITABLE_FIELD: FieldDataType[] = [\n FieldDataType.SINGLELINE,\n FieldDataType.MULTILINE,\n FieldDataType.NUMBER,\n];\n\nexport const ALLOWED_MODAL_EDITABLE_FIELD: FieldDataType[] = [\n FieldDataType.HTML_RTE,\n FieldDataType.MARKDOWN_RTE,\n FieldDataType.JSON_RTE,\n FieldDataType.CUSTOM_FIELD,\n FieldDataType.LINK,\n FieldDataType.ISODATE,\n FieldDataType.URL,\n];\n\nexport const ALLOWED_REPLACE_FIELDS: FieldDataType[] = [\n FieldDataType.REFERENCE,\n FieldDataType.FILE,\n];\n\nexport const DEFAULT_MULTIPLE_FIELDS: FieldDataType[] = [\n FieldDataType.GLOBAL_FIELD,\n FieldDataType.GROUP,\n FieldDataType.BLOCK,\n];\n\nexport const unicodeNonBreakingSpace = \"\\u00A0\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;AAEvB,IAAM,oBAAoB;AAE1B,IAAM,0CAA0C;AAEhD,IAAM,4BAA4B;AAElC,IAAM,mCAAmC;AAGzC,IAAM,kBAAkB;AACxB,IAAM,oBAAoB;AAE1B,IAAM,sBAAsB;AAE5B,IAAM,0BAA0B;AAMhC,IAAM,gCAAiD;AAAA,EAC1D,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,+BAAgD;AAAA,EACzD,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,yBAA0C;AAAA,EACnD,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,0BAA2C;AAAA,EACpD,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,0BAA0B;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/visualBuilder/utils/constants.ts"],"sourcesContent":["import { FieldDataType } from \"./types/index.types\";\n\nexport const numericInputRegex = /^-?\\d*(\\.\\d*)?([eE][-+]?\\d*)?$/;\n\nexport const VISUAL_BUILDER_FIELD_TYPE_ATTRIBUTE_KEY = \"data-cslp-field-type\";\n\nexport const VISUAL_BUILDER_CHANNEL_ID = \"visual-builder\";\n\nexport const LIVE_PREVIEW_OUTLINE_WIDTH_IN_PX = 2;\n\n// Minimum distance from top edge to prevent toolbar from being hidden\nexport const TOP_EDGE_BUFFER = 42;\nexport const RIGHT_EDGE_BUFFER = 180;\n\nexport const TOOLBAR_EDGE_BUFFER = 8;\n\nexport const DATA_CSLP_ATTR_SELECTOR = \"data-cslp\";\n\n/**\n * The field that can be directly modified using contenteditable=true.\n * This includes all text fields like title and numbers.\n */\nexport const ALLOWED_INLINE_EDITABLE_FIELD: FieldDataType[] = [\n FieldDataType.SINGLELINE,\n FieldDataType.MULTILINE,\n FieldDataType.NUMBER,\n];\n\nexport const ALLOWED_MODAL_EDITABLE_FIELD: FieldDataType[] = [\n FieldDataType.HTML_RTE,\n FieldDataType.MARKDOWN_RTE,\n FieldDataType.JSON_RTE,\n FieldDataType.CUSTOM_FIELD,\n FieldDataType.LINK,\n FieldDataType.ISODATE,\n FieldDataType.URL,\n];\n\nexport const ALLOWED_REPLACE_FIELDS: FieldDataType[] = [\n FieldDataType.REFERENCE,\n FieldDataType.FILE,\n];\n\nexport const DEFAULT_MULTIPLE_FIELDS: FieldDataType[] = [\n FieldDataType.GLOBAL_FIELD,\n FieldDataType.GROUP,\n FieldDataType.BLOCK,\n];\n\nexport const unicodeNonBreakingSpace = \"\\u00A0\";\n\nexport const mentionLimit = 20;\nexport const maxMessageLength = 500;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;AAEvB,IAAM,oBAAoB;AAE1B,IAAM,0CAA0C;AAEhD,IAAM,4BAA4B;AAElC,IAAM,mCAAmC;AAGzC,IAAM,kBAAkB;AACxB,IAAM,oBAAoB;AAE1B,IAAM,sBAAsB;AAE5B,IAAM,0BAA0B;AAMhC,IAAM,gCAAiD;AAAA,EAC1D,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,+BAAgD;AAAA,EACzD,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,yBAA0C;AAAA,EACnD,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,0BAA2C;AAAA,EACpD,2BAAc;AAAA,EACd,2BAAc;AAAA,EACd,2BAAc;AAClB;AAEO,IAAM,0BAA0B;AAEhC,IAAM,eAAe;AACrB,IAAM,mBAAmB;","names":[]}
|