@focus-reactive/payload-plugin-comments 1.1.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 +562 -0
- package/dist/collection/access/isAuth.d.ts +3 -0
- package/dist/collection/access/isAuth.d.ts.map +1 -0
- package/dist/collection/access/isAuth.js +8 -0
- package/dist/collection/access/isAuth.js.map +1 -0
- package/dist/collection/hooks/setAuthorBeforeCreate.d.ts +3 -0
- package/dist/collection/hooks/setAuthorBeforeCreate.d.ts.map +1 -0
- package/dist/collection/hooks/setAuthorBeforeCreate.js +10 -0
- package/dist/collection/hooks/setAuthorBeforeCreate.js.map +1 -0
- package/dist/collection/hooks/setTenantBeforeCreate.d.ts +3 -0
- package/dist/collection/hooks/setTenantBeforeCreate.d.ts.map +1 -0
- package/dist/collection/hooks/setTenantBeforeCreate.js +24 -0
- package/dist/collection/hooks/setTenantBeforeCreate.js.map +1 -0
- package/dist/collection/index.d.ts +4 -0
- package/dist/collection/index.d.ts.map +1 -0
- package/dist/collection/index.js +139 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/components/Avatar/index.d.ts +11 -0
- package/dist/components/Avatar/index.d.ts.map +1 -0
- package/dist/components/Avatar/index.js +11 -0
- package/dist/components/Avatar/index.js.map +1 -0
- package/dist/components/CommentEditor/ActionPanel.d.ts +8 -0
- package/dist/components/CommentEditor/ActionPanel.d.ts.map +1 -0
- package/dist/components/CommentEditor/ActionPanel.js +17 -0
- package/dist/components/CommentEditor/ActionPanel.js.map +1 -0
- package/dist/components/CommentEditor/index.d.ts +23 -0
- package/dist/components/CommentEditor/index.d.ts.map +1 -0
- package/dist/components/CommentEditor/index.js +265 -0
- package/dist/components/CommentEditor/index.js.map +1 -0
- package/dist/components/CommentItem/ToolsPanel.d.ts +9 -0
- package/dist/components/CommentItem/ToolsPanel.d.ts.map +1 -0
- package/dist/components/CommentItem/ToolsPanel.js +22 -0
- package/dist/components/CommentItem/ToolsPanel.js.map +1 -0
- package/dist/components/CommentItem/index.d.ts +8 -0
- package/dist/components/CommentItem/index.d.ts.map +1 -0
- package/dist/components/CommentItem/index.js +65 -0
- package/dist/components/CommentItem/index.js.map +1 -0
- package/dist/components/CommentsDrawer/components/Header.d.ts +6 -0
- package/dist/components/CommentsDrawer/components/Header.d.ts.map +1 -0
- package/dist/components/CommentsDrawer/components/Header.js +46 -0
- package/dist/components/CommentsDrawer/components/Header.js.map +1 -0
- package/dist/components/CommentsDrawer/index.d.ts +6 -0
- package/dist/components/CommentsDrawer/index.d.ts.map +1 -0
- package/dist/components/CommentsDrawer/index.js +30 -0
- package/dist/components/CommentsDrawer/index.js.map +1 -0
- package/dist/components/CommentsHeaderButton/index.d.ts +2 -0
- package/dist/components/CommentsHeaderButton/index.d.ts.map +1 -0
- package/dist/components/CommentsHeaderButton/index.js +19 -0
- package/dist/components/CommentsHeaderButton/index.js.map +1 -0
- package/dist/components/CommentsPanel/components/CollapsibleGroup.d.ts +10 -0
- package/dist/components/CommentsPanel/components/CollapsibleGroup.d.ts.map +1 -0
- package/dist/components/CommentsPanel/components/CollapsibleGroup.js +68 -0
- package/dist/components/CommentsPanel/components/CollapsibleGroup.js.map +1 -0
- package/dist/components/CommentsPanel/components/DocumentView.d.ts +9 -0
- package/dist/components/CommentsPanel/components/DocumentView.d.ts.map +1 -0
- package/dist/components/CommentsPanel/components/DocumentView.js +20 -0
- package/dist/components/CommentsPanel/components/DocumentView.js.map +1 -0
- package/dist/components/CommentsPanel/components/FieldGroupSection.d.ts +11 -0
- package/dist/components/CommentsPanel/components/FieldGroupSection.d.ts.map +1 -0
- package/dist/components/CommentsPanel/components/FieldGroupSection.js +62 -0
- package/dist/components/CommentsPanel/components/FieldGroupSection.js.map +1 -0
- package/dist/components/CommentsPanel/components/GlobalDocumentView.d.ts +9 -0
- package/dist/components/CommentsPanel/components/GlobalDocumentView.d.ts.map +1 -0
- package/dist/components/CommentsPanel/components/GlobalDocumentView.js +20 -0
- package/dist/components/CommentsPanel/components/GlobalDocumentView.js.map +1 -0
- package/dist/components/CommentsPanel/components/GlobalView.d.ts +9 -0
- package/dist/components/CommentsPanel/components/GlobalView.d.ts.map +1 -0
- package/dist/components/CommentsPanel/components/GlobalView.js +62 -0
- package/dist/components/CommentsPanel/components/GlobalView.js.map +1 -0
- package/dist/components/CommentsPanel/constants.d.ts +3 -0
- package/dist/components/CommentsPanel/constants.d.ts.map +1 -0
- package/dist/components/CommentsPanel/constants.js +9 -0
- package/dist/components/CommentsPanel/constants.js.map +1 -0
- package/dist/components/CommentsPanel/hooks/useCollapseState.d.ts +2 -0
- package/dist/components/CommentsPanel/hooks/useCollapseState.d.ts.map +1 -0
- package/dist/components/CommentsPanel/hooks/useCollapseState.js +44 -0
- package/dist/components/CommentsPanel/hooks/useCollapseState.js.map +1 -0
- package/dist/components/CommentsPanel/hooks/useScrollToTargetFieldGroup.d.ts +2 -0
- package/dist/components/CommentsPanel/hooks/useScrollToTargetFieldGroup.d.ts.map +1 -0
- package/dist/components/CommentsPanel/hooks/useScrollToTargetFieldGroup.js +35 -0
- package/dist/components/CommentsPanel/hooks/useScrollToTargetFieldGroup.js.map +1 -0
- package/dist/components/CommentsPanel/index.d.ts +6 -0
- package/dist/components/CommentsPanel/index.d.ts.map +1 -0
- package/dist/components/CommentsPanel/index.js +32 -0
- package/dist/components/CommentsPanel/index.js.map +1 -0
- package/dist/components/CommentsPanel/types.d.ts +4 -0
- package/dist/components/CommentsPanel/types.d.ts.map +1 -0
- package/dist/components/CommentsPanel/types.js +1 -0
- package/dist/components/CommentsPanel/types.js.map +1 -0
- package/dist/components/CommentsPanel/utils/createCollapsibleGroupKey.d.ts +10 -0
- package/dist/components/CommentsPanel/utils/createCollapsibleGroupKey.d.ts.map +1 -0
- package/dist/components/CommentsPanel/utils/createCollapsibleGroupKey.js +15 -0
- package/dist/components/CommentsPanel/utils/createCollapsibleGroupKey.js.map +1 -0
- package/dist/components/CommentsPanel/utils/filterComments.d.ts +9 -0
- package/dist/components/CommentsPanel/utils/filterComments.d.ts.map +1 -0
- package/dist/components/CommentsPanel/utils/filterComments.js +17 -0
- package/dist/components/CommentsPanel/utils/filterComments.js.map +1 -0
- package/dist/components/CommentsPanel/utils/groupCommentsByFieldPath.d.ts +4 -0
- package/dist/components/CommentsPanel/utils/groupCommentsByFieldPath.d.ts.map +1 -0
- package/dist/components/CommentsPanel/utils/groupCommentsByFieldPath.js +14 -0
- package/dist/components/CommentsPanel/utils/groupCommentsByFieldPath.js.map +1 -0
- package/dist/components/CommentsPanel/utils/groupCommentsGlobally.d.ts +18 -0
- package/dist/components/CommentsPanel/utils/groupCommentsGlobally.d.ts.map +1 -0
- package/dist/components/CommentsPanel/utils/groupCommentsGlobally.js +58 -0
- package/dist/components/CommentsPanel/utils/groupCommentsGlobally.js.map +1 -0
- package/dist/components/CommentsPanel/utils/resolveEntityLabel.d.ts +3 -0
- package/dist/components/CommentsPanel/utils/resolveEntityLabel.d.ts.map +1 -0
- package/dist/components/CommentsPanel/utils/resolveEntityLabel.js +14 -0
- package/dist/components/CommentsPanel/utils/resolveEntityLabel.js.map +1 -0
- package/dist/components/CommentsPanel/utils/resolveFieldLabel.d.ts +11 -0
- package/dist/components/CommentsPanel/utils/resolveFieldLabel.d.ts.map +1 -0
- package/dist/components/CommentsPanel/utils/resolveFieldLabel.js +9 -0
- package/dist/components/CommentsPanel/utils/resolveFieldLabel.js.map +1 -0
- package/dist/components/CommentsPanel/utils/sortGroupsByCreatedAt.d.ts +4 -0
- package/dist/components/CommentsPanel/utils/sortGroupsByCreatedAt.d.ts.map +1 -0
- package/dist/components/CommentsPanel/utils/sortGroupsByCreatedAt.js +11 -0
- package/dist/components/CommentsPanel/utils/sortGroupsByCreatedAt.js.map +1 -0
- package/dist/components/FieldCommentLabel/AddCommentPopup.d.ts +8 -0
- package/dist/components/FieldCommentLabel/AddCommentPopup.d.ts.map +1 -0
- package/dist/components/FieldCommentLabel/AddCommentPopup.js +50 -0
- package/dist/components/FieldCommentLabel/AddCommentPopup.js.map +1 -0
- package/dist/components/FieldCommentLabel/hooks/useStablePath.d.ts +2 -0
- package/dist/components/FieldCommentLabel/hooks/useStablePath.d.ts.map +1 -0
- package/dist/components/FieldCommentLabel/hooks/useStablePath.js +12 -0
- package/dist/components/FieldCommentLabel/hooks/useStablePath.js.map +1 -0
- package/dist/components/FieldCommentLabel/index.d.ts +11 -0
- package/dist/components/FieldCommentLabel/index.d.ts.map +1 -0
- package/dist/components/FieldCommentLabel/index.js +64 -0
- package/dist/components/FieldCommentLabel/index.js.map +1 -0
- package/dist/components/FieldCommentLabel/types.d.ts +4 -0
- package/dist/components/FieldCommentLabel/types.d.ts.map +1 -0
- package/dist/components/FieldCommentLabel/types.js +1 -0
- package/dist/components/FieldCommentLabel/types.js.map +1 -0
- package/dist/components/FieldCommentLabel/utils/buildStablePath.d.ts +2 -0
- package/dist/components/FieldCommentLabel/utils/buildStablePath.d.ts.map +1 -0
- package/dist/components/FieldCommentLabel/utils/buildStablePath.js +19 -0
- package/dist/components/FieldCommentLabel/utils/buildStablePath.js.map +1 -0
- package/dist/components/FieldCommentLabel/utils/exludeComments.d.ts +3 -0
- package/dist/components/FieldCommentLabel/utils/exludeComments.d.ts.map +1 -0
- package/dist/components/FieldCommentLabel/utils/exludeComments.js +12 -0
- package/dist/components/FieldCommentLabel/utils/exludeComments.js.map +1 -0
- package/dist/components/FieldCommentLabel/utils/resolveLabel.d.ts +3 -0
- package/dist/components/FieldCommentLabel/utils/resolveLabel.d.ts.map +1 -0
- package/dist/components/FieldCommentLabel/utils/resolveLabel.js +9 -0
- package/dist/components/FieldCommentLabel/utils/resolveLabel.js.map +1 -0
- package/dist/components/IconButton/index.d.ts +12 -0
- package/dist/components/IconButton/index.d.ts.map +1 -0
- package/dist/components/IconButton/index.js +38 -0
- package/dist/components/IconButton/index.js.map +1 -0
- package/dist/components/MentionDropdown.d.ts +11 -0
- package/dist/components/MentionDropdown.d.ts.map +1 -0
- package/dist/components/MentionDropdown.js +53 -0
- package/dist/components/MentionDropdown.js.map +1 -0
- package/dist/components/MentionLabel/index.d.ts +7 -0
- package/dist/components/MentionLabel/index.d.ts.map +1 -0
- package/dist/components/MentionLabel/index.js +21 -0
- package/dist/components/MentionLabel/index.js.map +1 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +17 -0
- package/dist/config.js.map +1 -0
- package/dist/constants.d.ts +9 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +22 -0
- package/dist/constants.js.map +1 -0
- package/dist/hooks/useRelativeDate.d.ts +2 -0
- package/dist/hooks/useRelativeDate.d.ts.map +1 -0
- package/dist/hooks/useRelativeDate.js +11 -0
- package/dist/hooks/useRelativeDate.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin.d.ts +4 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +60 -0
- package/dist/plugin.js.map +1 -0
- package/dist/providers/CommentsDrawerProvider/index.d.ts +14 -0
- package/dist/providers/CommentsDrawerProvider/index.d.ts.map +1 -0
- package/dist/providers/CommentsDrawerProvider/index.js +28 -0
- package/dist/providers/CommentsDrawerProvider/index.js.map +1 -0
- package/dist/providers/CommentsProvider/index.d.ts +39 -0
- package/dist/providers/CommentsProvider/index.d.ts.map +1 -0
- package/dist/providers/CommentsProvider/index.js +237 -0
- package/dist/providers/CommentsProvider/index.js.map +1 -0
- package/dist/providers/CommentsProvider/mergeDocumentTitles.d.ts +3 -0
- package/dist/providers/CommentsProvider/mergeDocumentTitles.d.ts.map +1 -0
- package/dist/providers/CommentsProvider/mergeDocumentTitles.js +10 -0
- package/dist/providers/CommentsProvider/mergeDocumentTitles.js.map +1 -0
- package/dist/providers/CommentsProviderWrapper/index.d.ts +7 -0
- package/dist/providers/CommentsProviderWrapper/index.d.ts.map +1 -0
- package/dist/providers/CommentsProviderWrapper/index.js +16 -0
- package/dist/providers/CommentsProviderWrapper/index.js.map +1 -0
- package/dist/providers/GlobalCommentsLoader/GlobalCommentsHydrator.d.ts +13 -0
- package/dist/providers/GlobalCommentsLoader/GlobalCommentsHydrator.d.ts.map +1 -0
- package/dist/providers/GlobalCommentsLoader/GlobalCommentsHydrator.js +22 -0
- package/dist/providers/GlobalCommentsLoader/GlobalCommentsHydrator.js.map +1 -0
- package/dist/providers/GlobalCommentsLoader/index.d.ts +10 -0
- package/dist/providers/GlobalCommentsLoader/index.d.ts.map +1 -0
- package/dist/providers/GlobalCommentsLoader/index.js +31 -0
- package/dist/providers/GlobalCommentsLoader/index.js.map +1 -0
- package/dist/services/createComment.d.ts +12 -0
- package/dist/services/createComment.d.ts.map +1 -0
- package/dist/services/createComment.js +83 -0
- package/dist/services/createComment.js.map +1 -0
- package/dist/services/deleteComment.d.ts +3 -0
- package/dist/services/deleteComment.d.ts.map +1 -0
- package/dist/services/deleteComment.js +34 -0
- package/dist/services/deleteComment.js.map +1 -0
- package/dist/services/fetchMentionableUsers.d.ts +3 -0
- package/dist/services/fetchMentionableUsers.d.ts.map +1 -0
- package/dist/services/fetchMentionableUsers.js +46 -0
- package/dist/services/fetchMentionableUsers.js.map +1 -0
- package/dist/services/fieldLabels/fetchFieldLabels.d.ts +3 -0
- package/dist/services/fieldLabels/fetchFieldLabels.d.ts.map +1 -0
- package/dist/services/fieldLabels/fetchFieldLabels.js +74 -0
- package/dist/services/fieldLabels/fetchFieldLabels.js.map +1 -0
- package/dist/services/fieldLabels/utils/groupFieldPathsByDocument.d.ts +5 -0
- package/dist/services/fieldLabels/utils/groupFieldPathsByDocument.d.ts.map +1 -0
- package/dist/services/fieldLabels/utils/groupFieldPathsByDocument.js +21 -0
- package/dist/services/fieldLabels/utils/groupFieldPathsByDocument.js.map +1 -0
- package/dist/services/fieldLabels/utils/resolveFieldPath.d.ts +4 -0
- package/dist/services/fieldLabels/utils/resolveFieldPath.d.ts.map +1 -0
- package/dist/services/fieldLabels/utils/resolveFieldPath.js +66 -0
- package/dist/services/fieldLabels/utils/resolveFieldPath.js.map +1 -0
- package/dist/services/fieldLabels/utils/schemaUtils.d.ts +6 -0
- package/dist/services/fieldLabels/utils/schemaUtils.d.ts.map +1 -0
- package/dist/services/fieldLabels/utils/schemaUtils.js +60 -0
- package/dist/services/fieldLabels/utils/schemaUtils.js.map +1 -0
- package/dist/services/findAllComments.d.ts +11 -0
- package/dist/services/findAllComments.d.ts.map +1 -0
- package/dist/services/findAllComments.js +47 -0
- package/dist/services/findAllComments.js.map +1 -0
- package/dist/services/getCurrentTenantId.d.ts +3 -0
- package/dist/services/getCurrentTenantId.d.ts.map +1 -0
- package/dist/services/getCurrentTenantId.js +13 -0
- package/dist/services/getCurrentTenantId.js.map +1 -0
- package/dist/services/getDocumentTitles.d.ts +3 -0
- package/dist/services/getDocumentTitles.d.ts.map +1 -0
- package/dist/services/getDocumentTitles.js +61 -0
- package/dist/services/getDocumentTitles.js.map +1 -0
- package/dist/services/getEntitiesLabels.d.ts +3 -0
- package/dist/services/getEntitiesLabels.d.ts.map +1 -0
- package/dist/services/getEntitiesLabels.js +14 -0
- package/dist/services/getEntitiesLabels.js.map +1 -0
- package/dist/services/resolveComment.d.ts +3 -0
- package/dist/services/resolveComment.d.ts.map +1 -0
- package/dist/services/resolveComment.js +41 -0
- package/dist/services/resolveComment.js.map +1 -0
- package/dist/services/sendMentionEmails.d.ts +11 -0
- package/dist/services/sendMentionEmails.d.ts.map +1 -0
- package/dist/services/sendMentionEmails.js +73 -0
- package/dist/services/sendMentionEmails.js.map +1 -0
- package/dist/services/syncAllCommentsData.d.ts +12 -0
- package/dist/services/syncAllCommentsData.d.ts.map +1 -0
- package/dist/services/syncAllCommentsData.js +48 -0
- package/dist/services/syncAllCommentsData.js.map +1 -0
- package/dist/styles.css +2 -0
- package/dist/translations/en.d.ts +5 -0
- package/dist/translations/en.d.ts.map +1 -0
- package/dist/translations/en.js +36 -0
- package/dist/translations/en.js.map +1 -0
- package/dist/translations/types.d.ts +32 -0
- package/dist/translations/types.d.ts.map +1 -0
- package/dist/translations/types.js +1 -0
- package/dist/translations/types.js.map +1 -0
- package/dist/types/base.d.ts +10 -0
- package/dist/types/base.d.ts.map +1 -0
- package/dist/types/base.js +1 -0
- package/dist/types/base.js.map +1 -0
- package/dist/types/collection.d.ts +2 -0
- package/dist/types/collection.d.ts.map +1 -0
- package/dist/types/collection.js +1 -0
- package/dist/types/collection.js.map +1 -0
- package/dist/types/comment.d.ts +23 -0
- package/dist/types/comment.d.ts.map +1 -0
- package/dist/types/comment.js +1 -0
- package/dist/types/comment.js.map +1 -0
- package/dist/types/config.d.ts +112 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +1 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/entity.d.ts +15 -0
- package/dist/types/entity.d.ts.map +1 -0
- package/dist/types/entity.js +1 -0
- package/dist/types/entity.js.map +1 -0
- package/dist/types/general.d.ts +10 -0
- package/dist/types/general.d.ts.map +1 -0
- package/dist/types/general.js +1 -0
- package/dist/types/general.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/user.d.ts +6 -0
- package/dist/types/user.d.ts.map +1 -0
- package/dist/types/user.js +1 -0
- package/dist/types/user.js.map +1 -0
- package/dist/utils/comment/extractVisibleComments.d.ts +13 -0
- package/dist/utils/comment/extractVisibleComments.d.ts.map +1 -0
- package/dist/utils/comment/extractVisibleComments.js +17 -0
- package/dist/utils/comment/extractVisibleComments.js.map +1 -0
- package/dist/utils/comment/filterCommentsByLocale.d.ts +3 -0
- package/dist/utils/comment/filterCommentsByLocale.d.ts.map +1 -0
- package/dist/utils/comment/filterCommentsByLocale.js +12 -0
- package/dist/utils/comment/filterCommentsByLocale.js.map +1 -0
- package/dist/utils/comment/renderCommentText.d.ts +12 -0
- package/dist/utils/comment/renderCommentText.d.ts.map +1 -0
- package/dist/utils/comment/renderCommentText.js +38 -0
- package/dist/utils/comment/renderCommentText.js.map +1 -0
- package/dist/utils/comment/serializeEditor.d.ts +2 -0
- package/dist/utils/comment/serializeEditor.d.ts.map +1 -0
- package/dist/utils/comment/serializeEditor.js +30 -0
- package/dist/utils/comment/serializeEditor.js.map +1 -0
- package/dist/utils/config/injectFieldCommentComponents.d.ts +4 -0
- package/dist/utils/config/injectFieldCommentComponents.d.ts.map +1 -0
- package/dist/utils/config/injectFieldCommentComponents.js +80 -0
- package/dist/utils/config/injectFieldCommentComponents.js.map +1 -0
- package/dist/utils/config/mergeTranslations.d.ts +3 -0
- package/dist/utils/config/mergeTranslations.d.ts.map +1 -0
- package/dist/utils/config/mergeTranslations.js +29 -0
- package/dist/utils/config/mergeTranslations.js.map +1 -0
- package/dist/utils/config/normalizeCollections.d.ts +7 -0
- package/dist/utils/config/normalizeCollections.d.ts.map +1 -0
- package/dist/utils/config/normalizeCollections.js +15 -0
- package/dist/utils/config/normalizeCollections.js.map +1 -0
- package/dist/utils/config/overrideCollections.d.ts +3 -0
- package/dist/utils/config/overrideCollections.d.ts.map +1 -0
- package/dist/utils/config/overrideCollections.js +38 -0
- package/dist/utils/config/overrideCollections.js.map +1 -0
- package/dist/utils/config/overrideCommentsCollection.d.ts +4 -0
- package/dist/utils/config/overrideCommentsCollection.d.ts.map +1 -0
- package/dist/utils/config/overrideCommentsCollection.js +14 -0
- package/dist/utils/config/overrideCommentsCollection.js.map +1 -0
- package/dist/utils/config/overrideGlobals.d.ts +3 -0
- package/dist/utils/config/overrideGlobals.d.ts.map +1 -0
- package/dist/utils/config/overrideGlobals.js +8 -0
- package/dist/utils/config/overrideGlobals.js.map +1 -0
- package/dist/utils/error/getDefaultErrorMessage.d.ts +2 -0
- package/dist/utils/error/getDefaultErrorMessage.d.ts.map +1 -0
- package/dist/utils/error/getDefaultErrorMessage.js +9 -0
- package/dist/utils/error/getDefaultErrorMessage.js.map +1 -0
- package/dist/utils/general/cn.d.ts +3 -0
- package/dist/utils/general/cn.d.ts.map +1 -0
- package/dist/utils/general/cn.js +9 -0
- package/dist/utils/general/cn.js.map +1 -0
- package/dist/utils/general/formatRelativeDate.d.ts +2 -0
- package/dist/utils/general/formatRelativeDate.d.ts.map +1 -0
- package/dist/utils/general/formatRelativeDate.js +28 -0
- package/dist/utils/general/formatRelativeDate.js.map +1 -0
- package/dist/utils/general/getURL.d.ts +2 -0
- package/dist/utils/general/getURL.d.ts.map +1 -0
- package/dist/utils/general/getURL.js +13 -0
- package/dist/utils/general/getURL.js.map +1 -0
- package/dist/utils/general/getValueByPath.d.ts +4 -0
- package/dist/utils/general/getValueByPath.d.ts.map +1 -0
- package/dist/utils/general/getValueByPath.js +19 -0
- package/dist/utils/general/getValueByPath.js.map +1 -0
- package/dist/utils/mention/isSelfMention.d.ts +4 -0
- package/dist/utils/mention/isSelfMention.d.ts.map +1 -0
- package/dist/utils/mention/isSelfMention.js +7 -0
- package/dist/utils/mention/isSelfMention.js.map +1 -0
- package/dist/utils/mention/parseMentionIds.d.ts +2 -0
- package/dist/utils/mention/parseMentionIds.d.ts.map +1 -0
- package/dist/utils/mention/parseMentionIds.js +13 -0
- package/dist/utils/mention/parseMentionIds.js.map +1 -0
- package/dist/utils/mode/defineModeByPathname.d.ts +11 -0
- package/dist/utils/mode/defineModeByPathname.d.ts.map +1 -0
- package/dist/utils/mode/defineModeByPathname.js +39 -0
- package/dist/utils/mode/defineModeByPathname.js.map +1 -0
- package/dist/utils/path/detectPluginBasePath.d.ts +2 -0
- package/dist/utils/path/detectPluginBasePath.d.ts.map +1 -0
- package/dist/utils/path/detectPluginBasePath.js +8 -0
- package/dist/utils/path/detectPluginBasePath.js.map +1 -0
- package/dist/utils/path/getComponentPath.d.ts +15 -0
- package/dist/utils/path/getComponentPath.d.ts.map +1 -0
- package/dist/utils/path/getComponentPath.js +22 -0
- package/dist/utils/path/getComponentPath.js.map +1 -0
- package/dist/utils/payload/extractPayload.d.ts +3 -0
- package/dist/utils/payload/extractPayload.d.ts.map +1 -0
- package/dist/utils/payload/extractPayload.js +9 -0
- package/dist/utils/payload/extractPayload.js.map +1 -0
- package/dist/utils/user/resolveUsername.d.ts +4 -0
- package/dist/utils/user/resolveUsername.d.ts.map +1 -0
- package/dist/utils/user/resolveUsername.js +14 -0
- package/dist/utils/user/resolveUsername.js.map +1 -0
- package/package.json +113 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCollapseState.d.ts","sourceRoot":"","sources":["../../../../src/components/CommentsPanel/hooks/useCollapseState.ts"],"names":[],"mappings":"AAoBA,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,CA8B7F"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useState, useEffect } from "react";
|
|
3
|
+
const STORAGE_KEY = "payload-comments-collapsed";
|
|
4
|
+
function readStorage() {
|
|
5
|
+
try {
|
|
6
|
+
return JSON.parse(localStorage.getItem(STORAGE_KEY) ?? "{}");
|
|
7
|
+
} catch {
|
|
8
|
+
return {};
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function writeStorage(data) {
|
|
12
|
+
try {
|
|
13
|
+
localStorage.setItem(STORAGE_KEY, JSON.stringify(data));
|
|
14
|
+
} catch {
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function useCollapseState(groupKey) {
|
|
18
|
+
const [isCollapsed, setIsCollapsed] = useState(() => {
|
|
19
|
+
const stored = readStorage();
|
|
20
|
+
return stored[groupKey] === true;
|
|
21
|
+
});
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
const stored = readStorage();
|
|
24
|
+
setIsCollapsed(stored[groupKey] === true);
|
|
25
|
+
}, [groupKey]);
|
|
26
|
+
const toggle = () => {
|
|
27
|
+
setIsCollapsed((prev) => {
|
|
28
|
+
const next = !prev;
|
|
29
|
+
const stored = readStorage();
|
|
30
|
+
if (next) {
|
|
31
|
+
stored[groupKey] = true;
|
|
32
|
+
} else {
|
|
33
|
+
delete stored[groupKey];
|
|
34
|
+
}
|
|
35
|
+
writeStorage(stored);
|
|
36
|
+
return next;
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
return [isCollapsed, toggle];
|
|
40
|
+
}
|
|
41
|
+
export {
|
|
42
|
+
useCollapseState
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=useCollapseState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CommentsPanel/hooks/useCollapseState.ts"],"sourcesContent":["\"use client\";\n\nimport { useState, useEffect } from \"react\";\n\nconst STORAGE_KEY = \"payload-comments-collapsed\";\n\nfunction readStorage(): Record<string, boolean> {\n try {\n return JSON.parse(localStorage.getItem(STORAGE_KEY) ?? \"{}\");\n } catch {\n return {};\n }\n}\n\nfunction writeStorage(data: Record<string, boolean>) {\n try {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(data));\n } catch {}\n}\n\nexport function useCollapseState(groupKey: string): [isCollapsed: boolean, toggle: () => void] {\n const [isCollapsed, setIsCollapsed] = useState(() => {\n const stored = readStorage();\n\n return stored[groupKey] === true;\n });\n\n useEffect(() => {\n const stored = readStorage();\n\n setIsCollapsed(stored[groupKey] === true);\n }, [groupKey]);\n\n const toggle = () => {\n setIsCollapsed((prev) => {\n const next = !prev;\n const stored = readStorage();\n\n if (next) {\n stored[groupKey] = true;\n } else {\n delete stored[groupKey];\n }\n\n writeStorage(stored);\n return next;\n });\n };\n\n return [isCollapsed, toggle];\n}\n"],"mappings":";AAEA,SAAS,UAAU,iBAAiB;AAEpC,MAAM,cAAc;AAEpB,SAAS,cAAuC;AAC9C,MAAI;AACF,WAAO,KAAK,MAAM,aAAa,QAAQ,WAAW,KAAK,IAAI;AAAA,EAC7D,QAAQ;AACN,WAAO,CAAC;AAAA,EACV;AACF;AAEA,SAAS,aAAa,MAA+B;AACnD,MAAI;AACF,iBAAa,QAAQ,aAAa,KAAK,UAAU,IAAI,CAAC;AAAA,EACxD,QAAQ;AAAA,EAAC;AACX;AAEO,SAAS,iBAAiB,UAA8D;AAC7F,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,MAAM;AACnD,UAAM,SAAS,YAAY;AAE3B,WAAO,OAAO,QAAQ,MAAM;AAAA,EAC9B,CAAC;AAED,YAAU,MAAM;AACd,UAAM,SAAS,YAAY;AAE3B,mBAAe,OAAO,QAAQ,MAAM,IAAI;AAAA,EAC1C,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,SAAS,MAAM;AACnB,mBAAe,CAAC,SAAS;AACvB,YAAM,OAAO,CAAC;AACd,YAAM,SAAS,YAAY;AAE3B,UAAI,MAAM;AACR,eAAO,QAAQ,IAAI;AAAA,MACrB,OAAO;AACL,eAAO,OAAO,QAAQ;AAAA,MACxB;AAEA,mBAAa,MAAM;AACnB,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,SAAO,CAAC,aAAa,MAAM;AAC7B;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScrollToTargetFieldGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/CommentsPanel/hooks/useScrollToTargetFieldGroup.ts"],"names":[],"mappings":"AAGA,wBAAgB,2BAA2B,SAqC1C"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { useCommentsDrawer } from "../../../providers/CommentsDrawerProvider";
|
|
2
|
+
import { useLayoutEffect } from "react";
|
|
3
|
+
function useScrollToTargetFieldGroup() {
|
|
4
|
+
const { scrollTargetPath, setScrollTargetPath } = useCommentsDrawer();
|
|
5
|
+
useLayoutEffect(() => {
|
|
6
|
+
if (!scrollTargetPath) return;
|
|
7
|
+
const id = setTimeout(() => {
|
|
8
|
+
const section = document.querySelector(`[data-field-path="${CSS.escape(scrollTargetPath)}"]`);
|
|
9
|
+
if (!section) return;
|
|
10
|
+
let scrollContainer = section.parentElement;
|
|
11
|
+
while (scrollContainer && scrollContainer !== document.documentElement) {
|
|
12
|
+
const { overflow, overflowY } = getComputedStyle(scrollContainer);
|
|
13
|
+
if (/auto|scroll/.test(overflow + overflowY)) break;
|
|
14
|
+
scrollContainer = scrollContainer.parentElement;
|
|
15
|
+
}
|
|
16
|
+
if (!scrollContainer || scrollContainer === document.documentElement) {
|
|
17
|
+
section.scrollIntoView({ behavior: "smooth", block: "start" });
|
|
18
|
+
setScrollTargetPath(null);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const header = scrollContainer.querySelector("header");
|
|
22
|
+
const headerHeight = header?.getBoundingClientRect().height ?? 0;
|
|
23
|
+
const sectionTop = section.getBoundingClientRect().top;
|
|
24
|
+
const containerTop = scrollContainer.getBoundingClientRect().top;
|
|
25
|
+
const scrollOffset = sectionTop - containerTop - headerHeight + scrollContainer.scrollTop;
|
|
26
|
+
scrollContainer.scrollTo({ top: scrollOffset, behavior: "smooth" });
|
|
27
|
+
setScrollTargetPath(null);
|
|
28
|
+
}, 300);
|
|
29
|
+
return () => clearTimeout(id);
|
|
30
|
+
}, [scrollTargetPath, setScrollTargetPath]);
|
|
31
|
+
}
|
|
32
|
+
export {
|
|
33
|
+
useScrollToTargetFieldGroup
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=useScrollToTargetFieldGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CommentsPanel/hooks/useScrollToTargetFieldGroup.ts"],"sourcesContent":["import { useCommentsDrawer } from \"../../../providers/CommentsDrawerProvider\";\nimport { useLayoutEffect } from \"react\";\n\nexport function useScrollToTargetFieldGroup() {\n const { scrollTargetPath, setScrollTargetPath } = useCommentsDrawer();\n\n useLayoutEffect(() => {\n if (!scrollTargetPath) return;\n\n const id = setTimeout(() => {\n const section = document.querySelector(`[data-field-path=\"${CSS.escape(scrollTargetPath)}\"]`);\n if (!section) return;\n\n let scrollContainer: Element | null = section.parentElement;\n\n while (scrollContainer && scrollContainer !== document.documentElement) {\n const { overflow, overflowY } = getComputedStyle(scrollContainer);\n if (/auto|scroll/.test(overflow + overflowY)) break;\n scrollContainer = scrollContainer.parentElement;\n }\n\n if (!scrollContainer || scrollContainer === document.documentElement) {\n section.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n setScrollTargetPath(null);\n return;\n }\n\n const header = scrollContainer.querySelector(\"header\");\n const headerHeight = header?.getBoundingClientRect().height ?? 0;\n\n const sectionTop = section.getBoundingClientRect().top;\n const containerTop = scrollContainer.getBoundingClientRect().top;\n const scrollOffset = sectionTop - containerTop - headerHeight + scrollContainer.scrollTop;\n\n scrollContainer.scrollTo({ top: scrollOffset, behavior: \"smooth\" });\n setScrollTargetPath(null);\n }, 300);\n\n return () => clearTimeout(id);\n }, [scrollTargetPath, setScrollTargetPath]);\n}\n"],"mappings":"AAAA,SAAS,yBAAyB;AAClC,SAAS,uBAAuB;AAEzB,SAAS,8BAA8B;AAC5C,QAAM,EAAE,kBAAkB,oBAAoB,IAAI,kBAAkB;AAEpE,kBAAgB,MAAM;AACpB,QAAI,CAAC,iBAAkB;AAEvB,UAAM,KAAK,WAAW,MAAM;AAC1B,YAAM,UAAU,SAAS,cAAc,qBAAqB,IAAI,OAAO,gBAAgB,CAAC,IAAI;AAC5F,UAAI,CAAC,QAAS;AAEd,UAAI,kBAAkC,QAAQ;AAE9C,aAAO,mBAAmB,oBAAoB,SAAS,iBAAiB;AACtE,cAAM,EAAE,UAAU,UAAU,IAAI,iBAAiB,eAAe;AAChE,YAAI,cAAc,KAAK,WAAW,SAAS,EAAG;AAC9C,0BAAkB,gBAAgB;AAAA,MACpC;AAEA,UAAI,CAAC,mBAAmB,oBAAoB,SAAS,iBAAiB;AACpE,gBAAQ,eAAe,EAAE,UAAU,UAAU,OAAO,QAAQ,CAAC;AAC7D,4BAAoB,IAAI;AACxB;AAAA,MACF;AAEA,YAAM,SAAS,gBAAgB,cAAc,QAAQ;AACrD,YAAM,eAAe,QAAQ,sBAAsB,EAAE,UAAU;AAE/D,YAAM,aAAa,QAAQ,sBAAsB,EAAE;AACnD,YAAM,eAAe,gBAAgB,sBAAsB,EAAE;AAC7D,YAAM,eAAe,aAAa,eAAe,eAAe,gBAAgB;AAEhF,sBAAgB,SAAS,EAAE,KAAK,cAAc,UAAU,SAAS,CAAC;AAClE,0BAAoB,IAAI;AAAA,IAC1B,GAAG,GAAG;AAEN,WAAO,MAAM,aAAa,EAAE;AAAA,EAC9B,GAAG,CAAC,kBAAkB,mBAAmB,CAAC;AAC5C;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/CommentsPanel/index.tsx"],"names":[],"mappings":"AAWA,UAAU,KAAK;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,kBAAmB,KAAK,4CAsBjD,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useAuth } from "@payloadcms/ui";
|
|
4
|
+
import { cn } from "../../utils/general/cn";
|
|
5
|
+
import { useComments } from "../../providers/CommentsProvider";
|
|
6
|
+
import { filterComments } from "./utils/filterComments";
|
|
7
|
+
import { DocumentView } from "./components/DocumentView";
|
|
8
|
+
import { GlobalView } from "./components/GlobalView";
|
|
9
|
+
import { GlobalDocumentView } from "./components/GlobalDocumentView";
|
|
10
|
+
import { useScrollToTargetFieldGroup } from "./hooks/useScrollToTargetFieldGroup";
|
|
11
|
+
const CommentsPanel = ({ className }) => {
|
|
12
|
+
const { user } = useAuth();
|
|
13
|
+
const { visibleComments, filter, mode } = useComments();
|
|
14
|
+
const userId = user?.id ?? null;
|
|
15
|
+
const filteredComments = filterComments({
|
|
16
|
+
comments: visibleComments,
|
|
17
|
+
filter,
|
|
18
|
+
currentUserId: userId ?? void 0
|
|
19
|
+
});
|
|
20
|
+
useScrollToTargetFieldGroup();
|
|
21
|
+
if (mode === "document") {
|
|
22
|
+
return /* @__PURE__ */ jsx(DocumentView, { comments: filteredComments, userId, className: cn(className) });
|
|
23
|
+
}
|
|
24
|
+
if (mode === "global-document") {
|
|
25
|
+
return /* @__PURE__ */ jsx(GlobalDocumentView, { comments: filteredComments, userId, className: cn(className) });
|
|
26
|
+
}
|
|
27
|
+
return /* @__PURE__ */ jsx(GlobalView, { comments: filteredComments, userId, className: cn(className) });
|
|
28
|
+
};
|
|
29
|
+
export {
|
|
30
|
+
CommentsPanel
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/CommentsPanel/index.tsx"],"sourcesContent":["\"use client\";\n\nimport { useAuth } from \"@payloadcms/ui\";\nimport { cn } from \"../../utils/general/cn\";\nimport { useComments } from \"../../providers/CommentsProvider\";\nimport { filterComments } from \"./utils/filterComments\";\nimport { DocumentView } from \"./components/DocumentView\";\nimport { GlobalView } from \"./components/GlobalView\";\nimport { GlobalDocumentView } from \"./components/GlobalDocumentView\";\nimport { useScrollToTargetFieldGroup } from \"./hooks/useScrollToTargetFieldGroup\";\n\ninterface Props {\n className: string;\n}\n\nexport const CommentsPanel = ({ className }: Props) => {\n const { user } = useAuth();\n const { visibleComments, filter, mode } = useComments();\n\n const userId = (user?.id as number) ?? null;\n const filteredComments = filterComments({\n comments: visibleComments,\n filter,\n currentUserId: userId ?? undefined,\n });\n\n useScrollToTargetFieldGroup();\n\n if (mode === \"document\") {\n return <DocumentView comments={filteredComments} userId={userId} className={cn(className)} />;\n }\n\n if (mode === \"global-document\") {\n return <GlobalDocumentView comments={filteredComments} userId={userId} className={cn(className)} />;\n }\n\n return <GlobalView comments={filteredComments} userId={userId} className={cn(className)} />;\n};\n"],"mappings":";AA6BW;AA3BX,SAAS,eAAe;AACxB,SAAS,UAAU;AACnB,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAC3B,SAAS,0BAA0B;AACnC,SAAS,mCAAmC;AAMrC,MAAM,gBAAgB,CAAC,EAAE,UAAU,MAAa;AACrD,QAAM,EAAE,KAAK,IAAI,QAAQ;AACzB,QAAM,EAAE,iBAAiB,QAAQ,KAAK,IAAI,YAAY;AAEtD,QAAM,SAAU,MAAM,MAAiB;AACvC,QAAM,mBAAmB,eAAe;AAAA,IACtC,UAAU;AAAA,IACV;AAAA,IACA,eAAe,UAAU;AAAA,EAC3B,CAAC;AAED,8BAA4B;AAE5B,MAAI,SAAS,YAAY;AACvB,WAAO,oBAAC,gBAAa,UAAU,kBAAkB,QAAgB,WAAW,GAAG,SAAS,GAAG;AAAA,EAC7F;AAEA,MAAI,SAAS,mBAAmB;AAC9B,WAAO,oBAAC,sBAAmB,UAAU,kBAAkB,QAAgB,WAAW,GAAG,SAAS,GAAG;AAAA,EACnG;AAEA,SAAO,oBAAC,cAAW,UAAU,kBAAkB,QAAgB,WAAW,GAAG,SAAS,GAAG;AAC3F;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/CommentsPanel/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;AAEtC,MAAM,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FieldPath } from "../types";
|
|
2
|
+
interface Props {
|
|
3
|
+
collectionSlug?: string;
|
|
4
|
+
documentId?: number | null;
|
|
5
|
+
globalSlug?: string;
|
|
6
|
+
fieldPath?: FieldPath;
|
|
7
|
+
}
|
|
8
|
+
export declare function createCollapsibleGroupKey({ collectionSlug, documentId, globalSlug, fieldPath: fieldPathProp }: Props): string;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=createCollapsibleGroupKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createCollapsibleGroupKey.d.ts","sourceRoot":"","sources":["../../../../src/components/CommentsPanel/utils/createCollapsibleGroupKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,UAAU,KAAK;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAgB,yBAAyB,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,KAAK,UAcpH"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
function createCollapsibleGroupKey({ collectionSlug, documentId, globalSlug, fieldPath: fieldPathProp }) {
|
|
2
|
+
const fieldPath = fieldPathProp === null ? "__general__" : fieldPathProp;
|
|
3
|
+
const fieldPathSegment = fieldPath === void 0 ? "" : `-${fieldPath}`;
|
|
4
|
+
if (collectionSlug && documentId) {
|
|
5
|
+
return `${collectionSlug}-${documentId}${fieldPathSegment}`;
|
|
6
|
+
}
|
|
7
|
+
if (globalSlug) {
|
|
8
|
+
return `${globalSlug}${fieldPathSegment}`;
|
|
9
|
+
}
|
|
10
|
+
return "";
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
createCollapsibleGroupKey
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=createCollapsibleGroupKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CommentsPanel/utils/createCollapsibleGroupKey.ts"],"sourcesContent":["import type { FieldPath } from \"../types\";\n\ninterface Props {\n collectionSlug?: string;\n documentId?: number | null;\n globalSlug?: string;\n fieldPath?: FieldPath;\n}\n\nexport function createCollapsibleGroupKey({ collectionSlug, documentId, globalSlug, fieldPath: fieldPathProp }: Props) {\n const fieldPath = fieldPathProp === null ? \"__general__\" : fieldPathProp;\n\n const fieldPathSegment = fieldPath === undefined ? \"\" : `-${fieldPath}`;\n\n if (collectionSlug && documentId) {\n return `${collectionSlug}-${documentId}${fieldPathSegment}`;\n }\n\n if (globalSlug) {\n return `${globalSlug}${fieldPathSegment}`;\n }\n\n return \"\";\n}\n"],"mappings":"AASO,SAAS,0BAA0B,EAAE,gBAAgB,YAAY,YAAY,WAAW,cAAc,GAAU;AACrH,QAAM,YAAY,kBAAkB,OAAO,gBAAgB;AAE3D,QAAM,mBAAmB,cAAc,SAAY,KAAK,IAAI,SAAS;AAErE,MAAI,kBAAkB,YAAY;AAChC,WAAO,GAAG,cAAc,IAAI,UAAU,GAAG,gBAAgB;AAAA,EAC3D;AAEA,MAAI,YAAY;AACd,WAAO,GAAG,UAAU,GAAG,gBAAgB;AAAA,EACzC;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Comment, FilterMode } from "../../../types";
|
|
2
|
+
interface Props {
|
|
3
|
+
comments: Comment[];
|
|
4
|
+
filter: FilterMode;
|
|
5
|
+
currentUserId?: number | null;
|
|
6
|
+
}
|
|
7
|
+
export declare function filterComments({ comments, filter, currentUserId }: Props): Comment[];
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=filterComments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterComments.d.ts","sourceRoot":"","sources":["../../../../src/components/CommentsPanel/utils/filterComments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE1D,UAAU,KAAK;IACb,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,aAkBxE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
function filterComments({ comments, filter, currentUserId }) {
|
|
2
|
+
return comments.filter((comment) => {
|
|
3
|
+
if (filter === "open") return !comment.isResolved;
|
|
4
|
+
if (filter === "resolved") return comment.isResolved;
|
|
5
|
+
if (filter === "mentioned") {
|
|
6
|
+
return comment.mentions?.some(({ user: mentionUser }) => {
|
|
7
|
+
if (typeof mentionUser === "number") return mentionUser === currentUserId;
|
|
8
|
+
return mentionUser.id === currentUserId;
|
|
9
|
+
}) ?? false;
|
|
10
|
+
}
|
|
11
|
+
return false;
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
filterComments
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=filterComments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CommentsPanel/utils/filterComments.ts"],"sourcesContent":["import type { Comment, FilterMode } from \"../../../types\";\n\ninterface Props {\n comments: Comment[];\n filter: FilterMode;\n currentUserId?: number | null;\n}\n\nexport function filterComments({ comments, filter, currentUserId }: Props) {\n return comments.filter((comment) => {\n if (filter === \"open\") return !comment.isResolved;\n\n if (filter === \"resolved\") return comment.isResolved;\n\n if (filter === \"mentioned\") {\n return (\n comment.mentions?.some(({ user: mentionUser }) => {\n if (typeof mentionUser === \"number\") return mentionUser === currentUserId;\n\n return mentionUser.id === currentUserId;\n }) ?? false\n );\n }\n\n return false;\n });\n}\n"],"mappings":"AAQO,SAAS,eAAe,EAAE,UAAU,QAAQ,cAAc,GAAU;AACzE,SAAO,SAAS,OAAO,CAAC,YAAY;AAClC,QAAI,WAAW,OAAQ,QAAO,CAAC,QAAQ;AAEvC,QAAI,WAAW,WAAY,QAAO,QAAQ;AAE1C,QAAI,WAAW,aAAa;AAC1B,aACE,QAAQ,UAAU,KAAK,CAAC,EAAE,MAAM,YAAY,MAAM;AAChD,YAAI,OAAO,gBAAgB,SAAU,QAAO,gBAAgB;AAE5D,eAAO,YAAY,OAAO;AAAA,MAC5B,CAAC,KAAK;AAAA,IAEV;AAEA,WAAO;AAAA,EACT,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupCommentsByFieldPath.d.ts","sourceRoot":"","sources":["../../../../src/components/CommentsPanel/utils/groupCommentsByFieldPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAYvF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { sortGroupsByCreatedAt } from "./sortGroupsByCreatedAt";
|
|
2
|
+
function groupCommentsByFieldPath(comments) {
|
|
3
|
+
const groupMap = /* @__PURE__ */ new Map();
|
|
4
|
+
for (const comment of comments) {
|
|
5
|
+
const key = comment.fieldPath ?? null;
|
|
6
|
+
if (!groupMap.has(key)) groupMap.set(key, []);
|
|
7
|
+
groupMap.get(key).push(comment);
|
|
8
|
+
}
|
|
9
|
+
return sortGroupsByCreatedAt(groupMap);
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
groupCommentsByFieldPath
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=groupCommentsByFieldPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CommentsPanel/utils/groupCommentsByFieldPath.ts"],"sourcesContent":["import type { Comment } from \"../../../types\";\nimport type { FieldPath } from \"../types\";\nimport { sortGroupsByCreatedAt } from \"./sortGroupsByCreatedAt\";\n\nexport function groupCommentsByFieldPath(comments: Comment[]): Map<FieldPath, Comment[]> {\n const groupMap = new Map<FieldPath, Comment[]>();\n\n for (const comment of comments) {\n const key = comment.fieldPath ?? null;\n\n if (!groupMap.has(key)) groupMap.set(key, []);\n\n groupMap.get(key)!.push(comment);\n }\n\n return sortGroupsByCreatedAt(groupMap);\n}\n"],"mappings":"AAEA,SAAS,6BAA6B;AAE/B,SAAS,yBAAyB,UAAgD;AACvF,QAAM,WAAW,oBAAI,IAA0B;AAE/C,aAAW,WAAW,UAAU;AAC9B,UAAM,MAAM,QAAQ,aAAa;AAEjC,QAAI,CAAC,SAAS,IAAI,GAAG,EAAG,UAAS,IAAI,KAAK,CAAC,CAAC;AAE5C,aAAS,IAAI,GAAG,EAAG,KAAK,OAAO;AAAA,EACjC;AAEA,SAAO,sBAAsB,QAAQ;AACvC;","names":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Comment } from "../../../types";
|
|
2
|
+
import type { FieldPath } from "../types";
|
|
3
|
+
type CommentsMap = Map<FieldPath, Comment[]>;
|
|
4
|
+
type CollectionCommentsMapByDoc = Map<number, CommentsMap>;
|
|
5
|
+
export type CollectionCommentsEntry = {
|
|
6
|
+
type: "collection";
|
|
7
|
+
slug: string;
|
|
8
|
+
docs: CollectionCommentsMapByDoc;
|
|
9
|
+
};
|
|
10
|
+
export type GlobalCommentsEntry = {
|
|
11
|
+
type: "global";
|
|
12
|
+
slug: string;
|
|
13
|
+
fields: CommentsMap;
|
|
14
|
+
};
|
|
15
|
+
export type EntityCommentsEntry = CollectionCommentsEntry | GlobalCommentsEntry;
|
|
16
|
+
export declare function groupCommentsGlobally(comments: Comment[]): EntityCommentsEntry[];
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=groupCommentsGlobally.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupCommentsGlobally.d.ts","sourceRoot":"","sources":["../../../../src/components/CommentsPanel/utils/groupCommentsGlobally.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,KAAK,WAAW,GAAG,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AAE7C,KAAK,0BAA0B,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAE3D,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,0BAA0B,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,GAAG,mBAAmB,CAAC;AAIhF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,mBAAmB,EAAE,CAgFhF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { sortGroupsByCreatedAt } from "./sortGroupsByCreatedAt";
|
|
2
|
+
const extractCommentCreatedAtTime = (c) => new Date(c.createdAt).getTime();
|
|
3
|
+
function groupCommentsGlobally(comments) {
|
|
4
|
+
const collections = /* @__PURE__ */ new Map();
|
|
5
|
+
const globals = /* @__PURE__ */ new Map();
|
|
6
|
+
for (const comment of comments) {
|
|
7
|
+
if (comment.globalSlug) {
|
|
8
|
+
const slug2 = comment.globalSlug;
|
|
9
|
+
const field2 = comment.fieldPath ?? null;
|
|
10
|
+
if (!globals.has(slug2)) globals.set(slug2, /* @__PURE__ */ new Map());
|
|
11
|
+
const fields2 = globals.get(slug2);
|
|
12
|
+
if (!fields2.has(field2)) fields2.set(field2, []);
|
|
13
|
+
fields2.get(field2).push(comment);
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
const slug = comment.collectionSlug;
|
|
17
|
+
const docId = comment.documentId;
|
|
18
|
+
const field = comment.fieldPath ?? null;
|
|
19
|
+
if (!slug || !docId) continue;
|
|
20
|
+
if (!collections.has(slug)) collections.set(slug, /* @__PURE__ */ new Map());
|
|
21
|
+
const docs = collections.get(slug);
|
|
22
|
+
if (!docs.has(docId)) docs.set(docId, /* @__PURE__ */ new Map());
|
|
23
|
+
const fields = docs.get(docId);
|
|
24
|
+
if (!fields.has(field)) fields.set(field, []);
|
|
25
|
+
fields.get(field).push(comment);
|
|
26
|
+
}
|
|
27
|
+
for (const [slug, docs] of collections.entries()) {
|
|
28
|
+
for (const [docId, fields] of docs.entries()) {
|
|
29
|
+
docs.set(docId, sortGroupsByCreatedAt(fields));
|
|
30
|
+
}
|
|
31
|
+
const oldestInFields = (fields) => Math.min(...[...fields.values()].flat().map(extractCommentCreatedAtTime));
|
|
32
|
+
const sortedDocs = new Map([...docs.entries()].sort(([, a], [, b]) => oldestInFields(a) - oldestInFields(b)));
|
|
33
|
+
collections.set(slug, sortedDocs);
|
|
34
|
+
}
|
|
35
|
+
for (const [slug, fields] of globals.entries()) {
|
|
36
|
+
globals.set(slug, sortGroupsByCreatedAt(fields));
|
|
37
|
+
}
|
|
38
|
+
const oldestInCollectionDocs = (docs) => Math.min(...[...docs.values()].flatMap((fields) => [...fields.values()].flat()).map(extractCommentCreatedAtTime));
|
|
39
|
+
const oldestInGlobalFields = (fields) => Math.min(...[...fields.values()].flat().map(extractCommentCreatedAtTime));
|
|
40
|
+
const entries = [];
|
|
41
|
+
for (const [slug, docs] of collections.entries()) {
|
|
42
|
+
entries.push({
|
|
43
|
+
entry: { type: "collection", slug, docs },
|
|
44
|
+
time: oldestInCollectionDocs(docs)
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
for (const [slug, fields] of globals.entries()) {
|
|
48
|
+
entries.push({
|
|
49
|
+
entry: { type: "global", slug, fields },
|
|
50
|
+
time: oldestInGlobalFields(fields)
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return entries.sort((a, b) => a.time - b.time).map(({ entry }) => entry);
|
|
54
|
+
}
|
|
55
|
+
export {
|
|
56
|
+
groupCommentsGlobally
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=groupCommentsGlobally.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CommentsPanel/utils/groupCommentsGlobally.ts"],"sourcesContent":["import type { Comment } from \"../../../types\";\nimport { sortGroupsByCreatedAt } from \"./sortGroupsByCreatedAt\";\nimport type { FieldPath } from \"../types\";\n\ntype CommentsMap = Map<FieldPath, Comment[]>;\n\ntype CollectionCommentsMapByDoc = Map<number, CommentsMap>;\n\nexport type CollectionCommentsEntry = {\n type: \"collection\";\n slug: string;\n docs: CollectionCommentsMapByDoc;\n};\n\nexport type GlobalCommentsEntry = {\n type: \"global\";\n slug: string;\n fields: CommentsMap;\n};\n\nexport type EntityCommentsEntry = CollectionCommentsEntry | GlobalCommentsEntry;\n\nconst extractCommentCreatedAtTime = (c: Comment) => new Date(c.createdAt).getTime();\n\nexport function groupCommentsGlobally(comments: Comment[]): EntityCommentsEntry[] {\n const collections = new Map<string, CollectionCommentsMapByDoc>();\n const globals = new Map<string, CommentsMap>();\n\n for (const comment of comments) {\n if (comment.globalSlug) {\n const slug = comment.globalSlug;\n const field = comment.fieldPath ?? null;\n\n if (!globals.has(slug)) globals.set(slug, new Map());\n\n const fields = globals.get(slug)!;\n\n if (!fields.has(field)) fields.set(field, []);\n\n fields.get(field)!.push(comment);\n\n continue;\n }\n\n const slug = comment.collectionSlug;\n const docId = comment.documentId;\n const field = comment.fieldPath ?? null;\n if (!slug || !docId) continue;\n\n if (!collections.has(slug)) collections.set(slug, new Map());\n\n const docs = collections.get(slug)!;\n\n if (!docs.has(docId)) docs.set(docId, new Map());\n\n const fields = docs.get(docId)!;\n\n if (!fields.has(field)) fields.set(field, []);\n\n fields.get(field)!.push(comment);\n }\n\n // Sort collection inner maps\n for (const [slug, docs] of collections.entries()) {\n for (const [docId, fields] of docs.entries()) {\n docs.set(docId, sortGroupsByCreatedAt(fields));\n }\n\n const oldestInFields = (fields: Map<FieldPath, Comment[]>) =>\n Math.min(...[...fields.values()].flat().map(extractCommentCreatedAtTime));\n\n const sortedDocs = new Map([...docs.entries()].sort(([, a], [, b]) => oldestInFields(a) - oldestInFields(b)));\n\n collections.set(slug, sortedDocs);\n }\n\n // Sort globals inner maps\n for (const [slug, fields] of globals.entries()) {\n globals.set(slug, sortGroupsByCreatedAt(fields));\n }\n\n const oldestInCollectionDocs = (docs: CollectionCommentsMapByDoc) =>\n Math.min(...[...docs.values()].flatMap((fields) => [...fields.values()].flat()).map(extractCommentCreatedAtTime));\n\n const oldestInGlobalFields = (fields: Map<FieldPath, Comment[]>) =>\n Math.min(...[...fields.values()].flat().map(extractCommentCreatedAtTime));\n\n const entries: Array<{ entry: EntityCommentsEntry; time: number }> = [];\n\n for (const [slug, docs] of collections.entries()) {\n entries.push({\n entry: { type: \"collection\", slug, docs },\n time: oldestInCollectionDocs(docs),\n });\n }\n\n for (const [slug, fields] of globals.entries()) {\n entries.push({\n entry: { type: \"global\", slug, fields },\n time: oldestInGlobalFields(fields),\n });\n }\n\n return entries.sort((a, b) => a.time - b.time).map(({ entry }) => entry);\n}\n"],"mappings":"AACA,SAAS,6BAA6B;AAqBtC,MAAM,8BAA8B,CAAC,MAAe,IAAI,KAAK,EAAE,SAAS,EAAE,QAAQ;AAE3E,SAAS,sBAAsB,UAA4C;AAChF,QAAM,cAAc,oBAAI,IAAwC;AAChE,QAAM,UAAU,oBAAI,IAAyB;AAE7C,aAAW,WAAW,UAAU;AAC9B,QAAI,QAAQ,YAAY;AACtB,YAAMA,QAAO,QAAQ;AACrB,YAAMC,SAAQ,QAAQ,aAAa;AAEnC,UAAI,CAAC,QAAQ,IAAID,KAAI,EAAG,SAAQ,IAAIA,OAAM,oBAAI,IAAI,CAAC;AAEnD,YAAME,UAAS,QAAQ,IAAIF,KAAI;AAE/B,UAAI,CAACE,QAAO,IAAID,MAAK,EAAG,CAAAC,QAAO,IAAID,QAAO,CAAC,CAAC;AAE5C,MAAAC,QAAO,IAAID,MAAK,EAAG,KAAK,OAAO;AAE/B;AAAA,IACF;AAEA,UAAM,OAAO,QAAQ;AACrB,UAAM,QAAQ,QAAQ;AACtB,UAAM,QAAQ,QAAQ,aAAa;AACnC,QAAI,CAAC,QAAQ,CAAC,MAAO;AAErB,QAAI,CAAC,YAAY,IAAI,IAAI,EAAG,aAAY,IAAI,MAAM,oBAAI,IAAI,CAAC;AAE3D,UAAM,OAAO,YAAY,IAAI,IAAI;AAEjC,QAAI,CAAC,KAAK,IAAI,KAAK,EAAG,MAAK,IAAI,OAAO,oBAAI,IAAI,CAAC;AAE/C,UAAM,SAAS,KAAK,IAAI,KAAK;AAE7B,QAAI,CAAC,OAAO,IAAI,KAAK,EAAG,QAAO,IAAI,OAAO,CAAC,CAAC;AAE5C,WAAO,IAAI,KAAK,EAAG,KAAK,OAAO;AAAA,EACjC;AAGA,aAAW,CAAC,MAAM,IAAI,KAAK,YAAY,QAAQ,GAAG;AAChD,eAAW,CAAC,OAAO,MAAM,KAAK,KAAK,QAAQ,GAAG;AAC5C,WAAK,IAAI,OAAO,sBAAsB,MAAM,CAAC;AAAA,IAC/C;AAEA,UAAM,iBAAiB,CAAC,WACtB,KAAK,IAAI,GAAG,CAAC,GAAG,OAAO,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,2BAA2B,CAAC;AAE1E,UAAM,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,eAAe,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC;AAE5G,gBAAY,IAAI,MAAM,UAAU;AAAA,EAClC;AAGA,aAAW,CAAC,MAAM,MAAM,KAAK,QAAQ,QAAQ,GAAG;AAC9C,YAAQ,IAAI,MAAM,sBAAsB,MAAM,CAAC;AAAA,EACjD;AAEA,QAAM,yBAAyB,CAAC,SAC9B,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,OAAO,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,OAAO,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,2BAA2B,CAAC;AAElH,QAAM,uBAAuB,CAAC,WAC5B,KAAK,IAAI,GAAG,CAAC,GAAG,OAAO,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,2BAA2B,CAAC;AAE1E,QAAM,UAA+D,CAAC;AAEtE,aAAW,CAAC,MAAM,IAAI,KAAK,YAAY,QAAQ,GAAG;AAChD,YAAQ,KAAK;AAAA,MACX,OAAO,EAAE,MAAM,cAAc,MAAM,KAAK;AAAA,MACxC,MAAM,uBAAuB,IAAI;AAAA,IACnC,CAAC;AAAA,EACH;AAEA,aAAW,CAAC,MAAM,MAAM,KAAK,QAAQ,QAAQ,GAAG;AAC9C,YAAQ,KAAK;AAAA,MACX,OAAO,EAAE,MAAM,UAAU,MAAM,OAAO;AAAA,MACtC,MAAM,qBAAqB,MAAM;AAAA,IACnC,CAAC;AAAA,EACH;AAEA,SAAO,QAAQ,KAAK,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,MAAM,KAAK;AACzE;","names":["slug","field","fields"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveEntityLabel.d.ts","sourceRoot":"","sources":["../../../../src/components/CommentsPanel/utils/resolveEntityLabel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAalG"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
function resolveEntityLabel(label, locale, fallback) {
|
|
2
|
+
if (label === void 0) return fallback;
|
|
3
|
+
if (typeof label === "string") return label;
|
|
4
|
+
const byLocale = label[locale];
|
|
5
|
+
if (byLocale !== void 0) return byLocale;
|
|
6
|
+
const byEn = label["en"];
|
|
7
|
+
if (byEn !== void 0) return byEn;
|
|
8
|
+
const first = Object.values(label)[0];
|
|
9
|
+
return first ?? fallback;
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
resolveEntityLabel
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=resolveEntityLabel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CommentsPanel/utils/resolveEntityLabel.ts"],"sourcesContent":["import type { EntityLabel } from \"../../../types\";\n\nexport function resolveEntityLabel(label: EntityLabel | undefined, locale: string, fallback: string) {\n if (label === undefined) return fallback;\n if (typeof label === \"string\") return label;\n\n const byLocale = label[locale];\n if (byLocale !== undefined) return byLocale;\n\n const byEn = label[\"en\"];\n if (byEn !== undefined) return byEn;\n\n const first = Object.values(label)[0];\n\n return first ?? fallback;\n}\n"],"mappings":"AAEO,SAAS,mBAAmB,OAAgC,QAAgB,UAAkB;AACnG,MAAI,UAAU,OAAW,QAAO;AAChC,MAAI,OAAO,UAAU,SAAU,QAAO;AAEtC,QAAM,WAAW,MAAM,MAAM;AAC7B,MAAI,aAAa,OAAW,QAAO;AAEnC,QAAM,OAAO,MAAM,IAAI;AACvB,MAAI,SAAS,OAAW,QAAO;AAE/B,QAAM,QAAQ,OAAO,OAAO,KAAK,EAAE,CAAC;AAEpC,SAAO,SAAS;AAClB;","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { GlobalFieldLabelRegistry } from "../../../types";
|
|
2
|
+
interface Props {
|
|
3
|
+
registry: GlobalFieldLabelRegistry;
|
|
4
|
+
collectionSlug?: string;
|
|
5
|
+
documentId?: number;
|
|
6
|
+
globalSlug?: string;
|
|
7
|
+
fieldPath: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function resolveFieldLabel({ registry, collectionSlug, documentId, globalSlug, fieldPath }: Props): string;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=resolveFieldLabel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveFieldLabel.d.ts","sourceRoot":"","sources":["../../../../src/components/CommentsPanel/utils/resolveFieldLabel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,UAAU,KAAK;IACb,QAAQ,EAAE,wBAAwB,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,KAAK,UAMvG"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
function resolveFieldLabel({ registry, collectionSlug, documentId, globalSlug, fieldPath }) {
|
|
2
|
+
const segments = registry[collectionSlug ?? globalSlug ?? ""]?.[documentId ?? 0]?.[fieldPath];
|
|
3
|
+
if (!segments) return fieldPath;
|
|
4
|
+
return segments.map((s) => s.type === "field" ? s.label : `#${s.position + 1}`).join(" > ");
|
|
5
|
+
}
|
|
6
|
+
export {
|
|
7
|
+
resolveFieldLabel
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=resolveFieldLabel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CommentsPanel/utils/resolveFieldLabel.ts"],"sourcesContent":["import type { GlobalFieldLabelRegistry } from \"../../../types\";\n\ninterface Props {\n registry: GlobalFieldLabelRegistry;\n collectionSlug?: string;\n documentId?: number;\n globalSlug?: string;\n fieldPath: string;\n}\n\nexport function resolveFieldLabel({ registry, collectionSlug, documentId, globalSlug, fieldPath }: Props) {\n const segments = registry[collectionSlug ?? globalSlug ?? \"\"]?.[documentId ?? 0]?.[fieldPath];\n\n if (!segments) return fieldPath;\n\n return segments.map((s) => (s.type === \"field\" ? s.label : `#${s.position + 1}`)).join(\" > \");\n}\n"],"mappings":"AAUO,SAAS,kBAAkB,EAAE,UAAU,gBAAgB,YAAY,YAAY,UAAU,GAAU;AACxG,QAAM,WAAW,SAAS,kBAAkB,cAAc,EAAE,IAAI,cAAc,CAAC,IAAI,SAAS;AAE5F,MAAI,CAAC,SAAU,QAAO;AAEtB,SAAO,SAAS,IAAI,CAAC,MAAO,EAAE,SAAS,UAAU,EAAE,QAAQ,IAAI,EAAE,WAAW,CAAC,EAAG,EAAE,KAAK,KAAK;AAC9F;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sortGroupsByCreatedAt.d.ts","sourceRoot":"","sources":["../../../../src/components/CommentsPanel/utils/sortGroupsByCreatedAt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CASpG"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
function sortGroupsByCreatedAt(groupMap) {
|
|
2
|
+
const toTime = (c) => new Date(c.createdAt).getTime();
|
|
3
|
+
const oldest = (arr) => Math.min(...arr.map(toTime));
|
|
4
|
+
return new Map(
|
|
5
|
+
[...groupMap.entries()].sort(([, a], [, b]) => oldest(a) - oldest(b)).map(([key, arr]) => [key, [...arr].sort((a, b) => toTime(a) - toTime(b))])
|
|
6
|
+
);
|
|
7
|
+
}
|
|
8
|
+
export {
|
|
9
|
+
sortGroupsByCreatedAt
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=sortGroupsByCreatedAt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CommentsPanel/utils/sortGroupsByCreatedAt.ts"],"sourcesContent":["import type { Comment } from \"../../../types\";\nimport type { FieldPath } from \"../types\";\n\nexport function sortGroupsByCreatedAt(groupMap: Map<FieldPath, Comment[]>): Map<FieldPath, Comment[]> {\n const toTime = (c: Comment) => new Date(c.createdAt).getTime();\n const oldest = (arr: Comment[]) => Math.min(...arr.map(toTime));\n\n return new Map(\n [...groupMap.entries()]\n .sort(([, a], [, b]) => oldest(a) - oldest(b))\n .map(([key, arr]) => [key, [...arr].sort((a, b) => toTime(a) - toTime(b))]),\n );\n}\n"],"mappings":"AAGO,SAAS,sBAAsB,UAAgE;AACpG,QAAM,SAAS,CAAC,MAAe,IAAI,KAAK,EAAE,SAAS,EAAE,QAAQ;AAC7D,QAAM,SAAS,CAAC,QAAmB,KAAK,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC;AAE9D,SAAO,IAAI;AAAA,IACT,CAAC,GAAG,SAAS,QAAQ,CAAC,EACnB,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,EAC5C,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AAAA,EAC9E;AACF;","names":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
fieldPath: string;
|
|
3
|
+
showTrigger: boolean;
|
|
4
|
+
onToggle: (isOpen: boolean) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function AddCommentPopup({ fieldPath, showTrigger, onToggle }: Props): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=AddCommentPopup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddCommentPopup.d.ts","sourceRoot":"","sources":["../../../src/components/FieldCommentLabel/AddCommentPopup.tsx"],"names":[],"mappings":"AAUA,UAAU,KAAK;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,KAAK,2CAyC1E"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Popup, useTranslation } from "@payloadcms/ui";
|
|
4
|
+
import { IconButton } from "../IconButton";
|
|
5
|
+
import { cn } from "../../utils/general/cn";
|
|
6
|
+
import { MessageSquarePlus } from "lucide-react";
|
|
7
|
+
import { CommentEditor } from "../CommentEditor";
|
|
8
|
+
import { useComments } from "../../providers/CommentsProvider";
|
|
9
|
+
import { useRef } from "react";
|
|
10
|
+
function AddCommentPopup({ fieldPath, showTrigger, onToggle }) {
|
|
11
|
+
const { t } = useTranslation();
|
|
12
|
+
const { mode, globalSlug } = useComments();
|
|
13
|
+
const editorAPI = useRef(null);
|
|
14
|
+
const trigger = /* @__PURE__ */ jsx(IconButton, { className: cn(showTrigger ? "opacity-100" : "opacity-0"), size: "sm", title: t("comments:add"), children: /* @__PURE__ */ jsx(MessageSquarePlus, { size: 14 }) });
|
|
15
|
+
return /* @__PURE__ */ jsx(
|
|
16
|
+
Popup,
|
|
17
|
+
{
|
|
18
|
+
buttonType: "custom",
|
|
19
|
+
button: trigger,
|
|
20
|
+
horizontalAlign: "right",
|
|
21
|
+
size: "fit-content",
|
|
22
|
+
onToggleOpen: (active) => {
|
|
23
|
+
onToggle(active);
|
|
24
|
+
setTimeout(() => editorAPI.current?.focus());
|
|
25
|
+
},
|
|
26
|
+
onToggleClose: () => {
|
|
27
|
+
editorAPI.current?.clear();
|
|
28
|
+
},
|
|
29
|
+
render: ({ close }) => /* @__PURE__ */ jsxs("div", { className: "w-80", children: [
|
|
30
|
+
/* @__PURE__ */ jsx("p", { className: "m-0 mb-3 text-[14px] font-semibold text-(--theme-text)", children: t("comments:add") }),
|
|
31
|
+
/* @__PURE__ */ jsx(
|
|
32
|
+
CommentEditor,
|
|
33
|
+
{
|
|
34
|
+
ref: editorAPI,
|
|
35
|
+
fieldPath,
|
|
36
|
+
globalSlug: mode === "global-document" ? globalSlug ?? void 0 : void 0,
|
|
37
|
+
autoFocus: true,
|
|
38
|
+
onSuccessAddComment: close,
|
|
39
|
+
onEscapePress: close,
|
|
40
|
+
placeholder: `${t("comments:writeComment")}\u2026`
|
|
41
|
+
}
|
|
42
|
+
)
|
|
43
|
+
] })
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
AddCommentPopup
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=AddCommentPopup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/FieldCommentLabel/AddCommentPopup.tsx"],"sourcesContent":["\"use client\";\n\nimport { Popup, useTranslation } from \"@payloadcms/ui\";\nimport { IconButton } from \"../IconButton\";\nimport { cn } from \"../../utils/general/cn\";\nimport { MessageSquarePlus } from \"lucide-react\";\nimport { CommentEditor, type CommentEditorHandle } from \"../CommentEditor\";\nimport { useComments } from \"../../providers/CommentsProvider\";\nimport { useRef } from \"react\";\n\ninterface Props {\n fieldPath: string;\n showTrigger: boolean;\n onToggle: (isOpen: boolean) => void;\n}\n\nexport function AddCommentPopup({ fieldPath, showTrigger, onToggle }: Props) {\n const { t } = useTranslation();\n const { mode, globalSlug } = useComments();\n const editorAPI = useRef<CommentEditorHandle | null>(null);\n\n const trigger = (\n <IconButton className={cn(showTrigger ? \"opacity-100\" : \"opacity-0\")} size=\"sm\" title={t(\"comments:add\" as never)}>\n <MessageSquarePlus size={14} />\n </IconButton>\n );\n\n return (\n <Popup\n buttonType=\"custom\"\n button={trigger}\n horizontalAlign=\"right\"\n size=\"fit-content\"\n onToggleOpen={(active: boolean) => {\n onToggle(active);\n setTimeout(() => editorAPI.current?.focus());\n }}\n onToggleClose={() => {\n editorAPI.current?.clear();\n }}\n render={({ close }) => (\n <div className=\"w-80\">\n <p className=\"m-0 mb-3 text-[14px] font-semibold text-(--theme-text)\">{t(\"comments:add\" as never)}</p>\n\n <CommentEditor\n ref={editorAPI}\n fieldPath={fieldPath}\n globalSlug={mode === \"global-document\" ? (globalSlug ?? undefined) : undefined}\n autoFocus\n onSuccessAddComment={close}\n onEscapePress={close}\n placeholder={`${t(\"comments:writeComment\" as never)}…`}\n />\n </div>\n )}\n />\n );\n}\n"],"mappings":";AAuBM,cAkBE,YAlBF;AArBN,SAAS,OAAO,sBAAsB;AACtC,SAAS,kBAAkB;AAC3B,SAAS,UAAU;AACnB,SAAS,yBAAyB;AAClC,SAAS,qBAA+C;AACxD,SAAS,mBAAmB;AAC5B,SAAS,cAAc;AAQhB,SAAS,gBAAgB,EAAE,WAAW,aAAa,SAAS,GAAU;AAC3E,QAAM,EAAE,EAAE,IAAI,eAAe;AAC7B,QAAM,EAAE,MAAM,WAAW,IAAI,YAAY;AACzC,QAAM,YAAY,OAAmC,IAAI;AAEzD,QAAM,UACJ,oBAAC,cAAW,WAAW,GAAG,cAAc,gBAAgB,WAAW,GAAG,MAAK,MAAK,OAAO,EAAE,cAAuB,GAC9G,8BAAC,qBAAkB,MAAM,IAAI,GAC/B;AAGF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YAAW;AAAA,MACX,QAAQ;AAAA,MACR,iBAAgB;AAAA,MAChB,MAAK;AAAA,MACL,cAAc,CAAC,WAAoB;AACjC,iBAAS,MAAM;AACf,mBAAW,MAAM,UAAU,SAAS,MAAM,CAAC;AAAA,MAC7C;AAAA,MACA,eAAe,MAAM;AACnB,kBAAU,SAAS,MAAM;AAAA,MAC3B;AAAA,MACA,QAAQ,CAAC,EAAE,MAAM,MACf,qBAAC,SAAI,WAAU,QACb;AAAA,4BAAC,OAAE,WAAU,0DAA0D,YAAE,cAAuB,GAAE;AAAA,QAElG;AAAA,UAAC;AAAA;AAAA,YACC,KAAK;AAAA,YACL;AAAA,YACA,YAAY,SAAS,oBAAqB,cAAc,SAAa;AAAA,YACrE,WAAS;AAAA,YACT,qBAAqB;AAAA,YACrB,eAAe;AAAA,YACf,aAAa,GAAG,EAAE,uBAAgC,CAAC;AAAA;AAAA,QACrD;AAAA,SACF;AAAA;AAAA,EAEJ;AAEJ;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStablePath.d.ts","sourceRoot":"","sources":["../../../../src/components/FieldCommentLabel/hooks/useStablePath.ts"],"names":[],"mappings":"AAKA,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,UAIjD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useFormFields } from "@payloadcms/ui";
|
|
3
|
+
import { buildStablePath } from "../utils/buildStablePath";
|
|
4
|
+
function useStablePath(positionPath) {
|
|
5
|
+
return useFormFields(
|
|
6
|
+
([fields]) => buildStablePath(positionPath, (idPath) => fields[idPath]?.value)
|
|
7
|
+
);
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
useStablePath
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=useStablePath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/FieldCommentLabel/hooks/useStablePath.ts"],"sourcesContent":["\"use client\";\n\nimport { useFormFields } from \"@payloadcms/ui\";\nimport { buildStablePath } from \"../utils/buildStablePath\";\n\nexport function useStablePath(positionPath: string) {\n return useFormFields(([fields]) =>\n buildStablePath(positionPath, (idPath) => fields[idPath]?.value as string | undefined),\n );\n}\n"],"mappings":";AAEA,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAEzB,SAAS,cAAc,cAAsB;AAClD,SAAO;AAAA,IAAc,CAAC,CAAC,MAAM,MAC3B,gBAAgB,cAAc,CAAC,WAAW,OAAO,MAAM,GAAG,KAA2B;AAAA,EACvF;AACF;","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { FieldLabelClientProps } from "payload";
|
|
2
|
+
import type { Label } from "./types";
|
|
3
|
+
interface Props extends FieldLabelClientProps {
|
|
4
|
+
field: FieldLabelClientProps["field"] & {
|
|
5
|
+
label?: Label;
|
|
6
|
+
required?: boolean;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export declare function FieldCommentLabel({ field, htmlFor, path: fieldPath }: Props): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/FieldCommentLabel/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAQrC,UAAU,KAAM,SAAQ,qBAAqB;IAC3C,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG;QACtC,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAED,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,2CAwD3E"}
|