@ynput/ayon-frontend-shared 0.2.32 → 0.2.34
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/dist/DetailsPanel.cjs.js +1 -1
- package/dist/DetailsPanel.es.js +32 -22
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/Feed.cjs.js +1 -1
- package/dist/Feed.es.js +19 -13
- package/dist/Feed.es.js.map +1 -1
- package/dist/Views.cjs.js.map +1 -1
- package/dist/Views.es.js.map +1 -1
- package/dist/_virtual/index.cjs5.js +1 -1
- package/dist/_virtual/index.cjs6.js +1 -1
- package/dist/_virtual/index.es5.js +2 -5
- package/dist/_virtual/index.es5.js.map +1 -1
- package/dist/_virtual/index.es6.js +5 -2
- package/dist/_virtual/index.es6.js.map +1 -1
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +230 -223
- package/dist/api.es.js.map +1 -1
- package/dist/components.cjs.js +1 -1
- package/dist/components.es.js +84 -69
- package/dist/components.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +19 -9
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/shared/src/api/base/client.cjs.js +1 -1
- package/dist/shared/src/api/base/client.cjs.js.map +1 -1
- package/dist/shared/src/api/base/client.es.js +9 -8
- package/dist/shared/src/api/base/client.es.js.map +1 -1
- package/dist/shared/src/api/generated/activityFeed.cjs.js +1 -1
- package/dist/shared/src/api/generated/activityFeed.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/activityFeed.es.js +3 -0
- package/dist/shared/src/api/generated/activityFeed.es.js.map +1 -1
- package/dist/shared/src/api/generated/entityLists.cjs.js +1 -1
- package/dist/shared/src/api/generated/entityLists.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/entityLists.es.js +4 -1
- package/dist/shared/src/api/generated/entityLists.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +10 -7
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +15 -12
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/projects.es.js.map +1 -1
- package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/views.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.es.js +4 -8
- package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getCategories.cjs.js +2 -0
- package/dist/shared/src/api/queries/activities/getCategories.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/activities/getCategories.es.js +53 -0
- package/dist/shared/src/api/queries/activities/getCategories.es.js.map +1 -0
- package/dist/shared/src/api/queries/activities/updateActivities.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/updateActivities.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateActivities.es.js +53 -51
- package/dist/shared/src/api/queries/activities/updateActivities.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +5 -3
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.es.js +32 -30
- package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +68 -68
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js +47 -49
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js +62 -60
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/share/share.cjs.js +1 -1
- package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/share/share.es.js +38 -12
- package/dist/shared/src/api/queries/share/share.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +2 -2
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +39 -33
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/guests.cjs.js +2 -0
- package/dist/shared/src/api/queries/users/guests.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/users/guests.es.js +60 -0
- package/dist/shared/src/api/queries/users/guests.es.js.map +1 -0
- package/dist/shared/src/api/queries/views/updateViews.cjs.js +1 -1
- package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/views/updateViews.es.js +14 -15
- package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.cjs.js +2 -0
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.cjs.js.map +1 -0
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.es.js +135 -0
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.es.js.map +1 -0
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.styled.cjs.js +39 -0
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.styled.es.js +44 -0
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.styled.es.js.map +1 -0
- package/dist/shared/src/components/AccessUser/AccessUser.cjs.js +2 -0
- package/dist/shared/src/components/AccessUser/AccessUser.cjs.js.map +1 -0
- package/dist/shared/src/components/AccessUser/AccessUser.es.js +43 -0
- package/dist/shared/src/components/AccessUser/AccessUser.es.js.map +1 -0
- package/dist/shared/src/components/AccessUser/AccessUser.styled.cjs.js +46 -0
- package/dist/shared/src/components/AccessUser/AccessUser.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/AccessUser/AccessUser.styled.es.js +50 -0
- package/dist/shared/src/components/AccessUser/AccessUser.styled.es.js.map +1 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -2
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.cjs.js +47 -43
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.es.js +47 -43
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +2 -2
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +12 -2
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js +6 -4
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +12 -2
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +4 -2
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +12 -2
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +40 -38
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +12 -2
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.cjs.js +9 -0
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.cjs.js.map +1 -0
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.es.js +25 -0
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.es.js.map +1 -0
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +14 -4
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.es.js +12 -2
- package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +25 -21
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.es.js +12 -2
- package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -2
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +12 -2
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +13 -3
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +12 -2
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +4 -2
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +4 -2
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.cjs.js +12 -0
- package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.cjs.js.map +1 -0
- package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.es.js +46 -0
- package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.es.js.map +1 -0
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +12 -2
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +12 -2
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +6 -4
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.es.js +4 -2
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +12 -2
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.es.js +4 -2
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +12 -2
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +136 -117
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +12 -2
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +28 -18
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +13 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +5 -2
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +21 -17
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +12 -2
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +12 -2
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +12 -2
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +12 -2
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +4 -2
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.es.js +92 -95
- package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.styled.cjs.js +4 -4
- package/dist/shared/src/containers/Feed/Feed.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.styled.es.js +8 -7
- package/dist/shared/src/containers/Feed/Feed.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js +13 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js +89 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js +21 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js +62 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js +51 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryTag.es.js +76 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryTag.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +164 -130
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js +34 -14
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js +45 -24
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js +3 -3
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js +58 -48
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityHeader/ActivityHeader.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityHeader/ActivityHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityHeader/ActivityHeader.es.js +28 -28
- package/dist/shared/src/containers/Feed/components/ActivityHeader/ActivityHeader.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityItem.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +24 -20
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js +12 -12
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.es.js +13 -13
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +339 -257
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js +69 -41
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js +77 -48
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +19 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/CommentMentionSelect/CommentMentionSelect.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentMentionSelect/CommentMentionSelect.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentMentionSelect/CommentMentionSelect.es.js +34 -31
- package/dist/shared/src/containers/Feed/components/CommentMentionSelect/CommentMentionSelect.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/ExistingReactions.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/ExistingReactions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/ExistingReactions.es.js +15 -6
- package/dist/shared/src/containers/Feed/components/ReactionContainer/ExistingReactions.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reaction.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reaction.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reaction.es.js +24 -14
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reaction.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/ReactionPanelOpener.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/ReactionPanelOpener.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/ReactionPanelOpener.es.js +60 -38
- package/dist/shared/src/containers/Feed/components/ReactionContainer/ReactionPanelOpener.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.es.js +26 -8
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js +65 -20
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.styled.es.js +71 -26
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +5 -2
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +39 -33
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +57 -53
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +4 -2
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +51 -41
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +12 -10
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +50 -40
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +7 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +24 -21
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +23 -13
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +7 -7
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +5 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +14 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +12 -2
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +43 -33
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +4 -2
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js +6 -4
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +4 -2
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +6 -4
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +73 -66
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +42 -26
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +6 -4
- package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.es.js +4 -2
- package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -2
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.es.js +4 -2
- package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -4
- package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.es.js +4 -2
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/shared/src/util/colorUtils.cjs.js +2 -0
- package/dist/shared/src/util/colorUtils.cjs.js.map +1 -0
- package/dist/shared/src/util/colorUtils.es.js +40 -0
- package/dist/shared/src/util/colorUtils.es.js.map +1 -0
- package/dist/types/api/generated/activityFeed.d.ts +9 -0
- package/dist/types/api/generated/entityLists.d.ts +2 -0
- package/dist/types/api/generated/graphql.d.ts +11 -3
- package/dist/types/api/generated/projects.d.ts +4 -4
- package/dist/types/api/generated/views.d.ts +9 -3
- package/dist/types/api/index.d.ts +1 -0
- package/dist/types/api/queries/activities/getCategories.d.ts +142 -0
- package/dist/types/api/queries/activities/getMentions.d.ts +1 -0
- package/dist/types/api/queries/activities/index.d.ts +1 -0
- package/dist/types/api/queries/activities/updateReaction.d.ts +1 -0
- package/dist/types/api/queries/users/getUsers.d.ts +132 -0
- package/dist/types/api/queries/users/guests.d.ts +453 -0
- package/dist/types/api/queries/users/index.d.ts +1 -0
- package/dist/types/api/queries/watchers/getWatchers.d.ts +1 -0
- package/dist/types/components/AccessSearchInput/AccessSearchInput.d.ts +16 -0
- package/dist/types/components/AccessSearchInput/AccessSearchInput.styled.d.ts +2 -0
- package/dist/types/components/AccessSearchInput/index.d.ts +2 -0
- package/dist/types/components/AccessUser/AccessUser.d.ts +24 -0
- package/dist/types/components/AccessUser/AccessUser.styled.d.ts +1 -0
- package/dist/types/components/AccessUser/index.d.ts +1 -0
- package/dist/types/components/Powerpack/RequiredPowerpackVersion.d.ts +5 -0
- package/dist/types/components/Powerpack/index.d.ts +1 -0
- package/dist/types/components/ShareOptionIcon/ShareOptionIcon.d.ts +16 -0
- package/dist/types/components/ShareOptionIcon/index.d.ts +1 -0
- package/dist/types/components/index.d.ts +4 -0
- package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +3 -1
- package/dist/types/containers/DetailsPanel/FeedContextWrapper.d.ts +1 -1
- package/dist/types/containers/DetailsPanel/FeedWrapper.d.ts +2 -1
- package/dist/types/containers/Feed/Feed.d.ts +3 -2
- package/dist/types/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.d.ts +14 -0
- package/dist/types/containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.d.ts +10 -0
- package/dist/types/containers/Feed/components/ActivityCategorySelect/CategoryTag.d.ts +10 -0
- package/dist/types/containers/Feed/components/ActivityCategorySelect/index.d.ts +3 -0
- package/dist/types/containers/Feed/components/ActivityComment/ActivityComment.d.ts +1 -1
- package/dist/types/containers/Feed/components/ActivityComment/ActivityComment.styled.d.ts +2 -1
- package/dist/types/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.d.ts +3 -1
- package/dist/types/containers/Feed/components/ActivityItem.d.ts +1 -1
- package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.d.ts +2 -0
- package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.styled.d.ts +2 -0
- package/dist/types/containers/Feed/components/CommentInput/CommentInput.d.ts +1 -0
- package/dist/types/containers/Feed/components/CommentInput/CommentInput.styled.d.ts +7 -1
- package/dist/types/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.d.ts +11 -0
- package/dist/types/containers/Feed/components/CommentMentionSelect/CommentMentionSelect.d.ts +2 -1
- package/dist/types/containers/Feed/components/ReactionContainer/ExistingReactions.d.ts +4 -1
- package/dist/types/containers/Feed/components/ReactionContainer/Reaction.d.ts +4 -1
- package/dist/types/containers/Feed/components/ReactionContainer/ReactionPanelOpener.d.ts +4 -1
- package/dist/types/containers/Feed/components/ReactionContainer/Reactions.d.ts +5 -1
- package/dist/types/containers/Feed/components/ReactionContainer/Reactions.styled.d.ts +8 -3
- package/dist/types/containers/Feed/context/FeedContext.d.ts +3 -1
- package/dist/types/containers/Feed/hooks/useCommentMutations.d.ts +3 -2
- package/dist/types/containers/Feed/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/widgets/BooleanWidget.d.ts +1 -0
- package/dist/types/containers/Views/index.d.ts +5 -2
- package/dist/types/context/DetailsPanelContext.d.ts +9 -0
- package/dist/types/context/PowerpackContext.d.ts +1 -1
- package/dist/types/util/colorUtils.d.ts +42 -0
- package/dist/types/util/index.d.ts +1 -0
- package/dist/util.cjs.js +1 -1
- package/dist/util.es.js +30 -24
- package/dist/util.es.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectTreeTable.es.js","sources":["../../../../../src/containers/ProjectTreeTable/ProjectTreeTable.tsx"],"sourcesContent":["import { useMemo, useRef, useEffect, memo, CSSProperties, useCallback, UIEventHandler } from 'react' // Added useCallback\nimport { useVirtualizer, VirtualItem, Virtualizer } from '@tanstack/react-virtual'\n// TanStack Table imports\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n filterFns,\n flexRender,\n Row,\n getSortedRowModel,\n Cell,\n Column,\n Table,\n Header,\n HeaderGroup,\n RowData,\n ExpandedState,\n} from '@tanstack/react-table'\n\n// Utility imports\nimport clsx from 'clsx'\n\n// Type imports\nimport type { TableRow } from './types/table'\n\n// Component imports\nimport buildTreeTableColumns, {\n DefaultColumns,\n TreeTableExtraColumn,\n} from './buildTreeTableColumns'\nimport * as Styled from './ProjectTreeTable.styled'\nimport { RowDragHandleCellContent, ColumnHeaderMenu } from './components'\nimport EmptyPlaceholder from '../../components/EmptyPlaceholder'\nimport HeaderActionButton from './components/HeaderActionButton'\n\n// Context imports\nimport { useCellEditing } from './context/CellEditingContext'\nimport { ROW_SELECTION_COLUMN_ID, useSelectionCellsContext } from './context/SelectionCellsContext'\nimport { ClipboardProvider } from './context/ClipboardContext'\nimport { useSelectedRowsContext } from './context/SelectedRowsContext'\nimport { useColumnSettingsContext } from './context/ColumnSettingsContext'\nimport { useMenuContext } from '../../context/MenuContext'\n\n// Hook imports\nimport useCustomColumnWidthVars from './hooks/useCustomColumnWidthVars'\nimport usePrefetchFolderTasks from './hooks/usePrefetchFolderTasks'\nimport useCellContextMenu, { HeaderLabel } from './hooks/useCellContextMenu'\nimport useColumnVirtualization from './hooks/useColumnVirtualization'\nimport useKeyboardNavigation from './hooks/useKeyboardNavigation'\nimport useDynamicRowHeight from './hooks/useDynamicRowHeight'\n\n// EntityPickerDialog import\nimport { EntityPickerDialog } from '../EntityPickerDialog/EntityPickerDialog'\n// Move entity hook\nimport { useMoveEntities } from './hooks/useMoveEntities'\nimport { useProjectDataContext } from '@shared/containers'\n\n// Utility function imports\nimport { getCellId, parseCellId } from './utils/cellUtils'\nimport { generateLoadingRows, generateDummyAttributes } from './utils/loadingUtils'\nimport { createPortal } from 'react-dom'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { AttributeEnumItem, ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport { ToggleExpandAll, useProjectTableContext } from './context/ProjectTableContext'\nimport { getEntityViewierIds, getReadOnlyLists, getTableFieldOptions } from './utils'\nimport { EntityUpdate } from './hooks/useUpdateTableData'\n\n// dnd-kit imports\nimport {\n DragOverlay,\n type UniqueIdentifier,\n // Removed: DndContext, KeyboardSensor, MouseSensor, TouchSensor, closestCenter, DragEndEvent, DragStartEvent, Active, Over, useSensor, useSensors\n} from '@dnd-kit/core'\n// import { restrictToVerticalAxis } from '@dnd-kit/modifiers'\nimport { SortableContext, verticalListSortingStrategy, useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport { EDIT_TRIGGER_CLASS } from './widgets/CellWidget'\nimport { toast } from 'react-toastify'\nimport { EntityMoveData } from '@shared/context/MoveEntityContext'\nimport { useSelector } from 'react-redux'\n\ntype CellUpdate = (\n entity: Omit<EntityUpdate, 'id'>,\n config?: { selection?: string[] },\n) => Promise<void>\n\ndeclare module '@tanstack/react-table' {\n interface TableMeta<TData extends RowData> {\n options?: BuiltInFieldOptions\n readOnly?: ProjectTreeTableProps['readOnly']\n projectName?: string\n updateEntities?: CellUpdate\n toggleExpandAll?: ToggleExpandAll\n selection?: string[]\n }\n}\n\n//These are the important styles to make sticky column pinning work!\n//Apply styles like this using your CSS strategy of choice with this kind of logic to head cells, data cells, footer cells, etc.\n//View the index.css file for more needed styles such as border-collapse: separate\nconst getCommonPinningStyles = (column: Column<TableRow, unknown>): CSSProperties => {\n const isPinned = column.getIsPinned()\n const offset =\n column.id !== ROW_SELECTION_COLUMN_ID && column.id !== DRAG_HANDLE_COLUMN_ID ? -30 : 0\n\n return {\n left: isPinned === 'left' ? `${column.getStart('left') + offset}px` : undefined, // Removed offset\n right: isPinned === 'right' ? `${column.getAfter('right')}px` : undefined,\n position: isPinned ? 'sticky' : 'relative',\n width: column.getSize(),\n zIndex: isPinned ? 100 : 0,\n }\n}\n\nconst getColumnWidth = (rowId: string, columnId: string) => {\n return `calc(var(--col-${columnId}-size) * 1px)`\n}\n// test\n\nexport const DRAG_HANDLE_COLUMN_ID = 'drag-handle'\n\nexport interface ProjectTreeTableProps extends React.HTMLAttributes<HTMLDivElement> {\n scope: string\n sliceId: string\n onScrollBottom?: React.HTMLAttributes<HTMLDivElement>['onScroll']\n onOpenNew?: (type: 'folder' | 'task') => void\n readOnly?: (DefaultColumns | string)[]\n excludedColumns?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n isLoading?: boolean\n clientSorting?: boolean\n sortableRows?: boolean\n onRowReorder?: (active: UniqueIdentifier, over: UniqueIdentifier | null) => void // Adjusted type for active/over if needed, or keep as Active, Over\n dndActiveId?: UniqueIdentifier | null // Added prop\n pt?: {\n container?: React.HTMLAttributes<HTMLDivElement>\n head?: Partial<TableHeadProps>\n }\n}\n\nexport const ProjectTreeTable = ({\n scope,\n sliceId,\n onScroll,\n onScrollBottom, // when the user scrolls to the bottom of the table, this callback is called\n onOpenNew,\n readOnly,\n excludedColumns,\n extraColumns,\n isLoading: isLoadingProp,\n clientSorting = false,\n sortableRows = false,\n onRowReorder,\n dndActiveId, // Destructure new prop\n pt,\n ...props\n}: ProjectTreeTableProps) => {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n setAllColumns,\n sorting,\n sortingOnChange,\n columnPinningOnChange,\n columnSizingOnChange,\n columnVisibilityOnChange,\n columnOrderOnChange,\n groupBy,\n } = useColumnSettingsContext()\n const isGrouping = !!groupBy\n\n const {\n projectInfo,\n tableData,\n attribFields,\n entitiesMap,\n users,\n isLoading: isLoadingData,\n error,\n isInitialized,\n expanded,\n projectName,\n updateExpanded,\n toggleExpandAll,\n showHierarchy,\n fetchNextPage,\n scopes,\n getEntityById,\n } = useProjectTableContext()\n\n const { projectName: contextProjectName, writableFields } = useProjectDataContext()\n\n const isLoading = isLoadingProp || isLoadingData\n\n const {\n statuses = [],\n folderTypes = [],\n taskTypes = [],\n tags = [],\n linkTypes = [],\n } = projectInfo || {}\n const options: BuiltInFieldOptions = useMemo(\n () =>\n getTableFieldOptions({\n users,\n statuses,\n folderTypes,\n taskTypes,\n tags,\n scopes,\n }),\n [users, statuses, folderTypes, taskTypes, scopes, tags],\n )\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n // reference of how many rows are currently rendered in the table\n const tableRowsCountRef = useRef(0)\n\n // Selection context\n const { registerGrid } = useSelectionCellsContext()\n\n // generate loading attrib and rows\n const { loadingAttrib, loadingRows } = useMemo(() => {\n // count the number of children in tbody\n const tableRowsCount = tableContainerRef.current?.querySelectorAll('tbody tr').length || 0\n const loadingAttrib = generateDummyAttributes()\n const loadingRows = generateLoadingRows(\n attribFields,\n showHierarchy && tableData.length > 0\n ? Math.min(tableRowsCount, 50)\n : groupBy\n ? Math.max(tableRowsCountRef.current, 50)\n : 50,\n )\n\n return { loadingAttrib, loadingRows }\n }, [])\n\n const showLoadingRows = !isInitialized || isLoading\n\n // Format readonly columns and attributes\n const { readOnlyColumns, readOnlyAttribs } = useMemo(\n () => getReadOnlyLists(attribFields, writableFields, readOnly),\n [attribFields, writableFields, readOnly],\n )\n\n const { selectedCells } = useSelectionCellsContext()\n const { updateEntities } = useCellEditing()\n\n const handleCellUpdate: CellUpdate = useCallback(\n async (entity, config) => {\n const { selection = [] } = config || {}\n const entitiesToUpdate: EntityUpdate[] = []\n if (!selection?.length) {\n entitiesToUpdate.push({ ...entity, id: entity.rowId })\n } else {\n // if includeSelection is true, update all the selected cells with the same columnId\n const { field, value, isAttrib, type } = entity\n for (const cellId of selectedCells) {\n const { colId, rowId } = parseCellId(cellId) || {}\n\n const entity = getEntityById(rowId || '')\n if (!entity) {\n console.warn(`Entity with ID ${rowId} not found for cell update.`)\n continue\n }\n\n if ((!colId?.includes('attrib_') || colId?.replace('attrib_', '') === field) && rowId) {\n entitiesToUpdate.push({\n field: field,\n rowId: rowId,\n id: entity.entityId,\n value: value,\n isAttrib: isAttrib,\n type: entity.entityType,\n })\n }\n }\n }\n\n if (!entitiesToUpdate.length) {\n console.warn('No entities to update, skipping updateEntities call.')\n toast.warn('No entities to update.')\n return\n }\n\n await updateEntities(entitiesToUpdate, true)\n },\n [updateEntities, getEntityById, selectedCells],\n )\n\n const columnAttribs = useMemo(\n () => (isInitialized ? attribFields : loadingAttrib),\n [attribFields, loadingAttrib, isInitialized],\n )\n const columns = useMemo(() => {\n const baseColumns = buildTreeTableColumns({\n attribs: columnAttribs,\n links: linkTypes,\n showHierarchy,\n options,\n extraColumns,\n excluded: excludedColumns,\n groupBy,\n })\n\n if (sortableRows) {\n return [\n {\n id: DRAG_HANDLE_COLUMN_ID,\n header: () => null,\n cell: () => null, // Content rendered by TableBodyRow\n size: 24,\n minSize: 24,\n maxSize: 24,\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n enablePinning: false, // Programmatically pinned\n },\n ...baseColumns,\n ]\n }\n return baseColumns\n }, [columnAttribs, showHierarchy, options, extraColumns, excludedColumns, sortableRows])\n\n // Keep ColumnSettingsProvider's allColumns ref up to date\n useEffect(() => {\n const ids = columns.map((c) => c.id!).filter(Boolean)\n setAllColumns(ids)\n }, [columns, setAllColumns])\n\n const table = useReactTable({\n data: showLoadingRows ? loadingRows : tableData,\n columns,\n defaultColumn: {\n minSize: 50,\n size: 150,\n },\n enableRowSelection: true, //enable row selection for all rows\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n getSubRows: (row) => row.subRows,\n getRowCanExpand: () => true,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // EXPANDABLE\n onExpandedChange: updateExpanded,\n // SORTING\n enableSorting: true,\n getSortedRowModel: getSortedRowModel(),\n sortDescFirst: false,\n manualSorting: !clientSorting,\n onSortingChange: sortingOnChange,\n columnResizeMode: 'onChange',\n onColumnPinningChange: columnPinningOnChange,\n onColumnSizingChange: columnSizingOnChange,\n onColumnVisibilityChange: columnVisibilityOnChange,\n onColumnOrderChange: columnOrderOnChange,\n // @ts-ignore\n filterFns,\n state: {\n expanded,\n sorting,\n columnPinning: (() => {\n const leftPins: string[] = []\n if (sortableRows) {\n leftPins.push(DRAG_HANDLE_COLUMN_ID)\n }\n leftPins.push(ROW_SELECTION_COLUMN_ID)\n\n // Add other unique pins from context, ensuring they are not the programmatic ones\n const contextLeftPins = (columnPinning.left || []).filter(\n (id) => id !== DRAG_HANDLE_COLUMN_ID && id !== ROW_SELECTION_COLUMN_ID,\n )\n leftPins.push(...contextLeftPins)\n // Remove duplicates just in case, though filter should handle it\n const uniqueLeftPins = [...new Set(leftPins)]\n\n return {\n left: uniqueLeftPins,\n right: columnPinning.right,\n }\n })(),\n columnSizing,\n columnVisibility,\n columnOrder,\n },\n meta: {\n projectName,\n options,\n readOnly: readOnlyColumns,\n updateEntities: handleCellUpdate,\n toggleExpandAll,\n loadMoreTasks: fetchNextPage,\n selection: Array.from(selectedCells),\n },\n })\n\n // TODO: when there is data (like in error) then we have infinite rendering\n\n const { rows } = table.getRowModel()\n\n // update the tableRowsCountRef with the current number of rows\n useEffect(() => {\n tableRowsCountRef.current = rows.length\n }, [rows.length])\n\n // Register grid structure with selection context when rows or columns change\n useEffect(() => {\n if (!rows.length) return\n const rowIds = rows.map((row) => row.id)\n const colIds = table.getAllLeafColumns().map((col) => col.id)\n const colIdsSortedByPinning = [...colIds].sort((a, b) => {\n if (ROW_SELECTION_COLUMN_ID === b) return 1\n const colA = columnPinning.left?.includes(a) ? 0 : 1\n const colB = columnPinning.left?.includes(b) ? 0 : 1\n return colA - colB\n })\n\n registerGrid(rowIds, colIdsSortedByPinning)\n }, [rows, table.getAllLeafColumns(), columnPinning, ROW_SELECTION_COLUMN_ID, registerGrid])\n\n const visibleColumns = table.getVisibleLeafColumns()\n\n // Use the column virtualization hook\n const { columnVirtualizer, virtualPaddingLeft, virtualPaddingRight } = useColumnVirtualization({\n visibleColumns,\n tableContainerRef,\n columnPinning,\n columnSizing,\n columnOrder,\n })\n\n const columnSizeVars = useCustomColumnWidthVars(table, columnSizing)\n\n // Calculate dynamic row height based on user setting from Customize panel\n const { getRowHeight, defaultRowHeight } = useDynamicRowHeight()\n\n const attribByField = useMemo(() => {\n return attribFields.reduce((acc: Record<string, AttributeEnumItem[]>, attrib) => {\n if (attrib.data?.enum?.length) {\n acc[attrib.name] = attrib.data?.enum\n }\n return acc\n }, {})\n }, [attribFields])\n\n const rowOrderIds = useMemo(() => tableData.map((row) => row.id), [tableData])\n const draggedRowData = useMemo(() => {\n if (!dndActiveId || !sortableRows) return null // Use dndActiveId\n return tableData.find((r) => r.id === dndActiveId) // Use dndActiveId\n }, [dndActiveId, tableData, sortableRows])\n\n const combinedScrollHandler: UIEventHandler<HTMLDivElement> = useCallback(\n (e) => {\n // Call the original onScroll if provided\n onScroll?.(e)\n\n if (onScrollBottom) {\n const containerRefElement = e.currentTarget\n if (containerRefElement && !showHierarchy && !groupBy) {\n const { scrollHeight, scrollTop, clientHeight } = containerRefElement\n //once the user has scrolled within 500px of the bottom of the table, fetch more data if we can\n if (scrollHeight - scrollTop - clientHeight < 500 && !isLoading) {\n onScrollBottom(e)\n }\n }\n }\n },\n [onScroll, onScrollBottom, showHierarchy, groupBy, isLoading],\n )\n\n // Get move entity functions for the dialog\n const {\n isEntityPickerOpen,\n handleMoveSubmit,\n closeMoveDialog,\n movingEntities,\n handleMoveToRoot,\n getDisabledFolderIds,\n getDisabledMessage,\n } = useMoveEntities({\n projectName: contextProjectName || projectName || '',\n })\n\n const handleMoveSubmitWithExpand = (selection: string[]) => {\n handleMoveSubmit(selection)\n const folderIdToExpand = selection[0]\n\n updateExpanded((prevExpanded: ExpandedState) => {\n if (typeof prevExpanded === 'boolean') {\n if (prevExpanded) {\n return prevExpanded\n }\n return { [folderIdToExpand]: true }\n }\n\n if (prevExpanded[folderIdToExpand]) {\n return prevExpanded\n }\n\n return {\n ...prevExpanded,\n [folderIdToExpand]: true,\n }\n })\n }\n\n const tableUiContent = (\n <ClipboardProvider\n entitiesMap={entitiesMap}\n columnEnums={{ ...options, ...attribByField }}\n columnReadOnly={readOnlyAttribs}\n visibleColumns={visibleColumns}\n >\n <Styled.TableWrapper {...props}>\n <Styled.TableContainer\n ref={tableContainerRef}\n style={{ height: '100%', padding: 0 }}\n onScroll={combinedScrollHandler}\n {...pt?.container}\n className={clsx(\n 'table-container',\n {\n resizing: table.getState().columnSizingInfo.isResizingColumn,\n },\n pt?.container?.className,\n )}\n >\n <table\n style={{\n display: 'grid',\n borderCollapse: 'collapse',\n userSelect: 'none',\n ...columnSizeVars,\n width: table.getTotalSize(),\n cursor: table.getState().columnSizingInfo.isResizingColumn ? 'col-resize' : undefined,\n }}\n >\n <TableHead\n columnVirtualizer={columnVirtualizer}\n table={table}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n {...pt?.head}\n />\n <TableBody\n columnVirtualizer={columnVirtualizer}\n table={table}\n tableContainerRef={tableContainerRef}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n showHierarchy={showHierarchy}\n attribs={attribFields}\n onOpenNew={onOpenNew}\n rowOrderIds={rowOrderIds}\n sortableRows={sortableRows}\n error={error}\n isGrouping={isGrouping}\n getRowHeight={getRowHeight}\n defaultRowHeight={defaultRowHeight}\n />\n </table>\n </Styled.TableContainer>\n </Styled.TableWrapper>\n {/* Render EntityPickerDialog alongside table content */}\n {isEntityPickerOpen &&\n projectName &&\n movingEntities?.entities &&\n movingEntities.entities.length > 0 && (\n <EntityPickerDialog\n projectName={projectName}\n entityType=\"folder\"\n onSubmit={handleMoveSubmitWithExpand}\n onClose={closeMoveDialog}\n showMoveToRoot={movingEntities.entities.every(\n (entity: EntityMoveData) => entity.entityType === 'folder',\n )}\n onMoveToRoot={handleMoveToRoot}\n disabledIds={getDisabledFolderIds()}\n getDisabledMessage={getDisabledMessage}\n />\n )}\n </ClipboardProvider>\n )\n\n // Render DragOverlay if sortableRows and dndActiveId is present\n const dragOverlayPortal =\n sortableRows &&\n dndActiveId &&\n createPortal(\n <DragOverlay dropAnimation={null}>\n {draggedRowData\n ? (() => {\n const overlayRowInstance = table.getRowModel().rows.find((r) => r.id === dndActiveId)\n if (!overlayRowInstance) return null\n\n const tableWidth = table.getTotalSize()\n\n return (\n <table\n style={{\n width: tableWidth,\n borderCollapse: 'collapse',\n backgroundColor: 'var(--md-sys-color-surface-container-high)',\n boxShadow: '0 0 10px rgba(0,0,0,0.2)',\n ...columnSizeVars,\n }}\n >\n <tbody>\n <Styled.TR style={{ display: 'flex', userSelect: 'none' }}>\n {virtualPaddingLeft ? (\n <td style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {columnVirtualizer.getVirtualItems().map((vc) => {\n const cell = overlayRowInstance.getVisibleCells()[vc.index]\n if (!cell) return null\n\n const cellStyleBase: CSSProperties = {\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(overlayRowInstance.id, cell.column.id),\n display: 'flex',\n alignItems: 'center',\n height: defaultRowHeight,\n }\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TableCell\n key={`overlay-drag-${cell.id}`}\n style={{ ...cellStyleBase, justifyContent: 'center' }}\n className={clsx(cell.column.id)}\n >\n <Icon icon=\"drag_handle\" /> {/* Static icon */}\n </Styled.TableCell>\n )\n }\n return (\n <TableCellMemo\n cell={cell}\n cellId={`overlay-${getCellId(overlayRowInstance.id, cell.column.id)}`}\n rowId={overlayRowInstance.id}\n key={`overlay-cell-${cell.id}`}\n showHierarchy={showHierarchy}\n />\n )\n })}\n {virtualPaddingRight ? (\n <td style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.TR>\n </tbody>\n </table>\n )\n })()\n : null}\n </DragOverlay>,\n document.body,\n )\n\n if (sortableRows) {\n return (\n <>\n {tableUiContent}\n {dragOverlayPortal}\n </>\n )\n } else {\n return tableUiContent\n }\n}\n\ninterface TableHeadProps extends React.HTMLAttributes<HTMLTableSectionElement> {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n}\n\nconst TableHead = ({\n columnVirtualizer,\n table,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n ...props\n}: TableHeadProps) => {\n return (\n <Styled.TableHeader {...props}>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableHeadRow\n key={headerGroup.id}\n columnVirtualizer={columnVirtualizer}\n headerGroup={headerGroup}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n />\n ))}\n </Styled.TableHeader>\n )\n}\n\ninterface TableHeadRowProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n headerGroup: HeaderGroup<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n}\n\nconst TableHeadRow = ({\n columnVirtualizer,\n headerGroup,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n}: TableHeadRowProps) => {\n const virtualColumns = columnVirtualizer.getVirtualItems()\n return (\n <Styled.ColumnHeader key={headerGroup.id} style={{ display: 'flex' }}>\n {virtualPaddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {virtualColumns.map((virtualColumn) => {\n const header = headerGroup.headers[virtualColumn.index]\n\n return (\n <TableHeadCell\n key={header.id}\n header={header}\n isLoading={isLoading}\n isReadOnly={readOnlyColumns?.includes(header.id)}\n canSort={header.column.getCanSort()}\n canFilter={header.column.getCanFilter()}\n canHide={header.column.getCanHide()}\n canPin={header.column.getCanPin()}\n canResize={header.column.getCanResize()}\n sortableRows={sortableRows}\n />\n )\n })}\n {virtualPaddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.ColumnHeader>\n )\n}\n\ninterface TableHeadCellProps {\n header: Header<TableRow, unknown>\n isLoading: boolean\n canSort?: boolean\n canFilter?: boolean\n canHide?: boolean\n canPin?: boolean\n canResize?: boolean\n isReadOnly?: boolean\n sortableRows?: boolean\n}\n\nconst TableHeadCell = ({\n header,\n isLoading,\n canFilter,\n canHide,\n canSort,\n canPin,\n canResize,\n isReadOnly,\n sortableRows,\n}: TableHeadCellProps) => {\n const { column } = header\n const sorting = column.getIsSorted()\n const menuId = `column-header-menu-${column.id}`\n const { menuOpen } = useMenuContext()\n const isOpen = menuOpen === menuId\n\n return (\n <Styled.HeaderCell\n className={clsx(header.id, 'shimmer-dark', {\n loading: isLoading,\n 'last-pinned-left': column.getIsPinned() === 'left' && column.getIsLastColumn('left'),\n resizing: column.getIsResizing(),\n })}\n key={header.id}\n style={{\n ...getCommonPinningStyles(column),\n width: getColumnWidth('', column.id),\n }}\n >\n {header.isPlaceholder ? null : (\n <Styled.TableCellContent className={clsx('bold', 'header')}>\n {flexRender(column.columnDef.header, header.getContext())}\n {isReadOnly && (\n <Icon icon=\"lock\" data-tooltip={'You only have permission to read this column.'} />\n )}\n\n <Styled.HeaderButtons className=\"actions\" $isOpen={isOpen}>\n {(canHide || canPin || canSort) && (\n <ColumnHeaderMenu\n className=\"header-menu\"\n header={header}\n canHide={canHide}\n canPin={canPin}\n canSort={canSort}\n isResizing={column.getIsResizing()}\n menuId={menuId}\n isOpen={isOpen}\n />\n )}\n\n {/* COLUMN SORTING */}\n {canSort && (\n <HeaderActionButton\n icon=\"sort\"\n className={clsx('sort-button', { visible: sorting })}\n style={{\n transform: sorting === 'asc' ? 'rotate(180deg) scaleX(-1)' : 'none',\n }}\n onClick={column.getToggleSortingHandler()}\n selected={!!column.getIsSorted()}\n />\n )}\n </Styled.HeaderButtons>\n {canResize && (\n <Styled.ResizedHandler\n {...{\n onDoubleClick: () => column.resetSize(),\n onMouseDown: header.getResizeHandler(),\n onTouchStart: header.getResizeHandler(),\n className: clsx('resize-handle', {\n resizing: column.getIsResizing(),\n }),\n }}\n />\n )}\n </Styled.TableCellContent>\n )}\n </Styled.HeaderCell>\n )\n}\n\ninterface TableBodyProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n tableContainerRef: React.RefObject<HTMLDivElement>\n showHierarchy: boolean\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n attribs: ProjectTableAttribute[]\n onOpenNew?: (type: 'folder' | 'task') => void\n rowOrderIds: UniqueIdentifier[]\n sortableRows: boolean\n error?: string\n isGrouping: boolean\n getRowHeight: (row: TableRow) => number\n defaultRowHeight: number\n}\n\nconst TableBody = ({\n columnVirtualizer,\n table,\n tableContainerRef,\n showHierarchy,\n virtualPaddingLeft,\n virtualPaddingRight,\n attribs,\n onOpenNew,\n rowOrderIds,\n sortableRows,\n error,\n isGrouping,\n getRowHeight,\n defaultRowHeight,\n}: TableBodyProps) => {\n const headerLabels = useMemo(() => {\n const allColumns = table.getAllColumns()\n const headers = allColumns\n .map((col) => {\n const headerId = col.id\n const header = col.columnDef.header\n if (typeof header === 'string' || typeof header === 'number') {\n return { label: header, id: headerId }\n }\n return null\n })\n .filter(Boolean)\n\n return headers as HeaderLabel[]\n }, [table.getAllColumns()])\n\n const cellContextMenuHook = useCellContextMenu({ attribs, onOpenNew, headerLabels })\n\n const handleTableBodyContextMenu = cellContextMenuHook.handleTableBodyContextMenu\n\n const { handlePreFetchTasks } = usePrefetchFolderTasks()\n\n const { rows } = table.getRowModel()\n\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n estimateSize: (index) => {\n // Calculate dynamic row height based on specific row data\n const row = rows[index]\n return row ? getRowHeight(row.original) : defaultRowHeight\n },\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement:\n typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n const virtualRows = rowVirtualizer.getVirtualItems()\n\n // Force row virtualizer to recalculate when row height changes (debounced for performance)\n useEffect(() => {\n const timeout = setTimeout(() => {\n rowVirtualizer.measure()\n }, 100) // Small delay to batch multiple rapid changes\n\n return () => clearTimeout(timeout)\n }, [defaultRowHeight, rowVirtualizer])\n\n // Memoize the measureElement callback\n const measureRowElement = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n useKeyboardNavigation()\n\n const tbodyContent = (\n <tbody\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n position: 'relative',\n display: 'grid',\n }}\n onContextMenu={handleTableBodyContextMenu}\n onMouseOver={(e) => {\n handlePreFetchTasks(e)\n }}\n >\n {virtualRows.map((virtualRow, i) => {\n const row = rows[virtualRow.index] as Row<TableRow>\n // Add a check for row existence to prevent potential errors if data is out of sync\n if (!row) {\n console.warn('Virtualized row data not found for index:', virtualRow.index)\n return null\n }\n return (\n <TableBodyRow\n key={row.id + i.toString()} // dnd-kit needs this key to be stable and match the id in useSortable\n row={row}\n showHierarchy={showHierarchy}\n visibleCells={row.getVisibleCells()}\n virtualColumns={columnVirtualizer.getVirtualItems()}\n paddingLeft={virtualPaddingLeft}\n paddingRight={virtualPaddingRight}\n rowRef={measureRowElement}\n dataIndex={virtualRow.index}\n offsetTop={virtualRow.start}\n sortableRows={sortableRows}\n isGrouping={isGrouping}\n rowHeight={getRowHeight(row.original)}\n />\n )\n })}\n </tbody>\n )\n\n if (error) {\n return (\n tableContainerRef.current &&\n createPortal(\n <EmptyPlaceholder message=\"No items found\" error={error} />,\n tableContainerRef.current,\n )\n )\n }\n\n if (sortableRows) {\n return (\n <SortableContext items={rowOrderIds} strategy={verticalListSortingStrategy}>\n {tbodyContent}\n </SortableContext>\n )\n } else {\n return tbodyContent\n }\n}\n\ninterface TableBodyRowProps {\n row: Row<TableRow>\n showHierarchy: boolean\n visibleCells: Cell<TableRow, unknown>[]\n virtualColumns: VirtualItem[]\n paddingLeft: number | undefined\n paddingRight: number | undefined\n rowRef: (node: HTMLTableRowElement | null) => void\n dataIndex: number\n offsetTop: number\n sortableRows: boolean\n isGrouping: boolean\n rowHeight: number\n}\n\nconst TableBodyRow = ({\n row,\n showHierarchy,\n visibleCells,\n virtualColumns,\n paddingLeft,\n paddingRight,\n rowRef,\n dataIndex,\n offsetTop,\n sortableRows,\n isGrouping = false,\n rowHeight,\n}: TableBodyRowProps) => {\n const sortable = sortableRows ? useSortable({ id: row.id }) : null\n\n const combinedRef = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (sortable) {\n sortable.setNodeRef(node)\n }\n // rowRef for virtualizer measurement\n // only measure if not actively being transformed by dnd-kit\n if (!(sortable && sortable.isDragging)) {\n rowRef(node)\n }\n },\n [sortable, rowRef],\n )\n\n // Attempt to combine dnd-kit transform with virtualizer's offsetTop\n const style: CSSProperties = {\n position: 'absolute', // Use absolute positioning for virtualized items\n top: offsetTop, // Position based on virtualizer's calculation (virtualRow.start)\n left: 0, // Span full width of the relative parent (tbody)\n right: 0, // Span full width\n height: rowHeight, // Use dynamic row height\n zIndex: sortable && sortable.isDragging ? 0 : 1, // Ensure dragged item is above others\n display: 'flex', // Styled.TR is display:flex\n transform:\n sortable && sortable.transform ? CSS.Transform.toString(sortable.transform) : undefined, // Apply dnd-kit's transform for drag effect\n transition: sortable && sortable.transition ? sortable.transition : undefined,\n visibility: sortable && sortable.isDragging ? 'hidden' : 'visible', // Hide the row being dragged\n }\n\n return (\n <Styled.TR\n ref={combinedRef}\n data-index={dataIndex} //needed for dynamic row height measurement\n style={style}\n className={clsx({ 'group-row': row.original.group })}\n >\n {paddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingLeft }} />\n ) : null}\n {virtualColumns.map((vc, i) => {\n const cell = visibleCells[vc.index]\n if (!cell) return null // Should not happen in normal circumstances\n\n const cellId = getCellId(row.id, cell.column.id)\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TableCell\n key={cell.id + i.toString()}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(row.id, cell.column.id),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: rowHeight,\n pointerEvents: 'all',\n cursor: 'grab',\n }}\n className={clsx(cell.column.id, {\n 'last-pinned-left':\n cell.column.getIsPinned() === 'left' && cell.column.getIsLastColumn('left'),\n })}\n onMouseDown={(e) => e.stopPropagation()} // Prevent selection interference\n onMouseOver={(e) => e.stopPropagation()}\n // Removed onMouseUp stopPropagation to allow dnd-kit to handle it\n onDoubleClick={(e) => e.stopPropagation()}\n onContextMenu={(e) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n <RowDragHandleCellContent\n attributes={sortable?.attributes}\n listeners={sortable?.listeners}\n />\n </Styled.TableCell>\n )\n }\n return (\n <TableCellMemo\n cell={cell}\n cellId={cellId}\n rowId={row.id}\n key={cell.id + i.toString()}\n showHierarchy={showHierarchy}\n sortableRows={sortableRows}\n rowHeight={rowHeight}\n />\n )\n })}\n\n {paddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingRight }} />\n ) : null}\n </Styled.TR>\n )\n}\n\ninterface TableCellProps {\n cell: Cell<TableRow, unknown>\n cellId: string\n rowId: string\n className?: string\n showHierarchy: boolean\n sortableRows?: boolean\n rowHeight?: number\n}\n\nconst TableCell = ({\n cell,\n rowId,\n cellId,\n className,\n showHierarchy,\n sortableRows,\n rowHeight,\n ...props\n}: TableCellProps) => {\n const { getEntityById, onOpenPlayer } = useProjectTableContext()\n\n const {\n isCellSelected,\n isCellFocused,\n startSelection,\n extendSelection,\n endSelection,\n selectCell,\n focusCell,\n getCellBorderClasses,\n clearSelection,\n selectedCells,\n } = useSelectionCellsContext()\n\n const { isRowSelected } = useSelectedRowsContext()\n\n const { isEditing, setEditingCellId } = useCellEditing()\n\n const borderClasses = getCellBorderClasses(cellId)\n\n const isPinned = cell.column.getIsPinned()\n const isLastLeftPinnedColumn = isPinned === 'left' && cell.column.getIsLastColumn('left')\n const isRowSelectionColumn = cell.column.id === ROW_SELECTION_COLUMN_ID\n const isGroup = cell.row.original.entityType === 'group'\n const isMultipleSelected = selectedCells.size > 1\n\n return (\n <Styled.TableCell\n {...props}\n tabIndex={0}\n $isLastPinned={isLastLeftPinnedColumn} // is this column the last pinned column? Custom styling for borders.\n className={clsx(\n cell.column.id,\n {\n selected: isCellSelected(cellId),\n focused: isCellFocused(cellId),\n editing: isEditing(cellId),\n 'last-pinned-left': isLastLeftPinnedColumn,\n 'selected-row': isRowSelected(rowId),\n task: cell.row.original.entityType === 'task',\n 'multiple-selected': isMultipleSelected,\n },\n className,\n ...borderClasses,\n )}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(cell.row.id, cell.column.id),\n height: rowHeight,\n }}\n onMouseDown={(e) => {\n // Only process left clicks (button 0), ignore right clicks\n if (e.button !== 0) return\n\n const target = e.target as HTMLElement\n\n // check we are not clicking on expander\n if (target.closest('.expander')) return\n\n // if we are clicking on an edit trigger, we need to start editing\n if (target.closest('.' + EDIT_TRIGGER_CLASS)) {\n if (!isCellSelected(cellId)) {\n // if the cell is not selected, select it and deselect all others\n selectCell(cellId, false, false)\n focusCell(cellId)\n }\n // start editing the cell\n setEditingCellId(cellId)\n\n return\n }\n\n // check we are not clicking in a dropdown\n if (target.closest('.options')) return\n\n // only name column can be selected for group rows\n if (isGroup && cell.column.id !== 'name') return clearSelection()\n\n const additive = e.metaKey || e.ctrlKey || isRowSelectionColumn\n if (e.shiftKey) {\n // Shift+click extends selection from anchor cell\n selectCell(cellId, additive, true) // true for range selection\n } else {\n // Normal click starts a new selection\n startSelection(cellId, additive)\n }\n }}\n onMouseOver={(e) => {\n if (e.buttons === 1) {\n // Left button is pressed during mouse move - drag selection\n extendSelection(cellId, isRowSelectionColumn)\n }\n }}\n onMouseUp={() => {\n endSelection(cellId)\n }}\n onDoubleClick={(e) => {\n // row selection on name column double click\n if (\n cell.column.id === 'name' &&\n !(e.target as HTMLElement).closest('.expander') &&\n !isGroup\n ) {\n // select the row by selecting the row-selection cell\n const rowSelectionCellId = getCellId(cell.row.id, ROW_SELECTION_COLUMN_ID)\n if (!isCellSelected(rowSelectionCellId)) {\n const additive = e.metaKey || e.ctrlKey\n selectCell(rowSelectionCellId, additive, false)\n }\n }\n // open the viewer on thumbnail double click\n if (cell.column.id === 'thumbnail') {\n if (onOpenPlayer) {\n const entity = getEntityById(cell.row.original.entityId || cell.row.id)\n if (entity) {\n const targetIds = getEntityViewierIds(entity)\n onOpenPlayer(targetIds, { quickView: true })\n }\n }\n }\n }}\n onContextMenu={(e) => {\n e.preventDefault()\n // if the cell is not selected, select it and deselect all others\n if (!isCellSelected(cellId)) {\n selectCell(cellId, false, false)\n }\n }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Styled.TableCell>\n )\n}\n\nconst TableCellMemo = memo(TableCell)\n"],"names":["getCommonPinningStyles","column","isPinned","offset","ROW_SELECTION_COLUMN_ID","DRAG_HANDLE_COLUMN_ID","getColumnWidth","rowId","columnId","ProjectTreeTable","scope","sliceId","onScroll","onScrollBottom","onOpenNew","readOnly","excludedColumns","extraColumns","isLoadingProp","clientSorting","sortableRows","onRowReorder","dndActiveId","pt","props","columnVisibility","columnPinning","columnOrder","columnSizing","setAllColumns","sorting","sortingOnChange","columnPinningOnChange","columnSizingOnChange","columnVisibilityOnChange","columnOrderOnChange","groupBy","useColumnSettingsContext","isGrouping","projectInfo","tableData","attribFields","entitiesMap","users","isLoadingData","error","isInitialized","expanded","projectName","updateExpanded","toggleExpandAll","showHierarchy","fetchNextPage","scopes","getEntityById","useProjectTableContext","contextProjectName","writableFields","useProjectDataContext","isLoading","statuses","folderTypes","taskTypes","tags","linkTypes","options","useMemo","getTableFieldOptions","tableContainerRef","useRef","tableRowsCountRef","registerGrid","useSelectionCellsContext","loadingAttrib","loadingRows","tableRowsCount","_a","generateDummyAttributes","generateLoadingRows","showLoadingRows","readOnlyColumns","readOnlyAttribs","getReadOnlyLists","selectedCells","updateEntities","useCellEditing","handleCellUpdate","useCallback","entity","config","selection","entitiesToUpdate","field","value","isAttrib","type","cellId","colId","parseCellId","toast","columnAttribs","columns","baseColumns","buildTreeTableColumns","useEffect","ids","c","table","useReactTable","row","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","getSortedRowModel","filterFns","leftPins","contextLeftPins","id","rows","rowIds","colIdsSortedByPinning","col","a","b","colA","colB","_b","visibleColumns","columnVirtualizer","virtualPaddingLeft","virtualPaddingRight","useColumnVirtualization","columnSizeVars","useCustomColumnWidthVars","getRowHeight","defaultRowHeight","useDynamicRowHeight","attribByField","acc","attrib","_c","rowOrderIds","draggedRowData","r","combinedScrollHandler","containerRefElement","scrollHeight","scrollTop","clientHeight","isEntityPickerOpen","handleMoveSubmit","closeMoveDialog","movingEntities","handleMoveToRoot","getDisabledFolderIds","getDisabledMessage","useMoveEntities","handleMoveSubmitWithExpand","folderIdToExpand","prevExpanded","tableUiContent","jsxs","ClipboardProvider","jsx","Styled.TableWrapper","Styled.TableContainer","clsx","TableHead","TableBody","EntityPickerDialog","dragOverlayPortal","createPortal","DragOverlay","overlayRowInstance","tableWidth","Styled.TR","vc","cell","cellStyleBase","Styled.TableCell","Icon","TableCellMemo","getCellId","Fragment","Styled.TableHeader","headerGroup","TableHeadRow","virtualColumns","Styled.ColumnHeader","virtualColumn","header","TableHeadCell","canFilter","canHide","canSort","canPin","canResize","isReadOnly","menuId","menuOpen","useMenuContext","isOpen","Styled.HeaderCell","Styled.TableCellContent","flexRender","Styled.HeaderButtons","ColumnHeaderMenu","HeaderActionButton","Styled.ResizedHandler","attribs","headerLabels","headerId","handleTableBodyContextMenu","useCellContextMenu","handlePreFetchTasks","usePrefetchFolderTasks","rowVirtualizer","useVirtualizer","index","element","virtualRows","timeout","measureRowElement","node","useKeyboardNavigation","tbodyContent","e","virtualRow","i","TableBodyRow","EmptyPlaceholder","SortableContext","verticalListSortingStrategy","visibleCells","paddingLeft","paddingRight","rowRef","dataIndex","offsetTop","rowHeight","sortable","useSortable","combinedRef","style","CSS","RowDragHandleCellContent","TableCell","className","onOpenPlayer","isCellSelected","isCellFocused","startSelection","extendSelection","endSelection","selectCell","focusCell","getCellBorderClasses","clearSelection","isRowSelected","useSelectedRowsContext","isEditing","setEditingCellId","borderClasses","isLastLeftPinnedColumn","isRowSelectionColumn","isGroup","isMultipleSelected","target","EDIT_TRIGGER_CLASS","additive","rowSelectionCellId","targetIds","getEntityViewierIds","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProjectTreeTable.es.js","sources":["../../../../../src/containers/ProjectTreeTable/ProjectTreeTable.tsx"],"sourcesContent":["import { useMemo, useRef, useEffect, memo, CSSProperties, useCallback, UIEventHandler } from 'react' // Added useCallback\nimport { useVirtualizer, VirtualItem, Virtualizer } from '@tanstack/react-virtual'\n// TanStack Table imports\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n filterFns,\n flexRender,\n Row,\n getSortedRowModel,\n Cell,\n Column,\n Table,\n Header,\n HeaderGroup,\n RowData,\n ExpandedState,\n} from '@tanstack/react-table'\n\n// Utility imports\nimport clsx from 'clsx'\n\n// Type imports\nimport type { TableRow } from './types/table'\n\n// Component imports\nimport buildTreeTableColumns, {\n DefaultColumns,\n TreeTableExtraColumn,\n} from './buildTreeTableColumns'\nimport * as Styled from './ProjectTreeTable.styled'\nimport { RowDragHandleCellContent, ColumnHeaderMenu } from './components'\nimport EmptyPlaceholder from '../../components/EmptyPlaceholder'\nimport HeaderActionButton from './components/HeaderActionButton'\n\n// Context imports\nimport { useCellEditing } from './context/CellEditingContext'\nimport { ROW_SELECTION_COLUMN_ID, useSelectionCellsContext } from './context/SelectionCellsContext'\nimport { ClipboardProvider } from './context/ClipboardContext'\nimport { useSelectedRowsContext } from './context/SelectedRowsContext'\nimport { useColumnSettingsContext } from './context/ColumnSettingsContext'\nimport { useMenuContext } from '../../context/MenuContext'\n\n// Hook imports\nimport useCustomColumnWidthVars from './hooks/useCustomColumnWidthVars'\nimport usePrefetchFolderTasks from './hooks/usePrefetchFolderTasks'\nimport useCellContextMenu, { HeaderLabel } from './hooks/useCellContextMenu'\nimport useColumnVirtualization from './hooks/useColumnVirtualization'\nimport useKeyboardNavigation from './hooks/useKeyboardNavigation'\nimport useDynamicRowHeight from './hooks/useDynamicRowHeight'\n\n// EntityPickerDialog import\nimport { EntityPickerDialog } from '../EntityPickerDialog/EntityPickerDialog'\n// Move entity hook\nimport { useMoveEntities } from './hooks/useMoveEntities'\nimport { useProjectDataContext } from '@shared/containers'\n\n// Utility function imports\nimport { getCellId, parseCellId } from './utils/cellUtils'\nimport { generateLoadingRows, generateDummyAttributes } from './utils/loadingUtils'\nimport { createPortal } from 'react-dom'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { AttributeEnumItem, ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport { ToggleExpandAll, useProjectTableContext } from './context/ProjectTableContext'\nimport { getEntityViewierIds, getReadOnlyLists, getTableFieldOptions } from './utils'\nimport { EntityUpdate } from './hooks/useUpdateTableData'\n\n// dnd-kit imports\nimport {\n DragOverlay,\n type UniqueIdentifier,\n // Removed: DndContext, KeyboardSensor, MouseSensor, TouchSensor, closestCenter, DragEndEvent, DragStartEvent, Active, Over, useSensor, useSensors\n} from '@dnd-kit/core'\n// import { restrictToVerticalAxis } from '@dnd-kit/modifiers'\nimport { SortableContext, verticalListSortingStrategy, useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport { EDIT_TRIGGER_CLASS } from './widgets/CellWidget'\nimport { toast } from 'react-toastify'\nimport { EntityMoveData } from '@shared/context/MoveEntityContext'\nimport { useSelector } from 'react-redux'\n\ntype CellUpdate = (\n entity: Omit<EntityUpdate, 'id'>,\n config?: { selection?: string[] },\n) => Promise<void>\n\ndeclare module '@tanstack/react-table' {\n interface TableMeta<TData extends RowData> {\n options?: BuiltInFieldOptions\n readOnly?: ProjectTreeTableProps['readOnly']\n projectName?: string\n updateEntities?: CellUpdate\n toggleExpandAll?: ToggleExpandAll\n selection?: string[]\n }\n}\n\n//These are the important styles to make sticky column pinning work!\n//Apply styles like this using your CSS strategy of choice with this kind of logic to head cells, data cells, footer cells, etc.\n//View the index.css file for more needed styles such as border-collapse: separate\nconst getCommonPinningStyles = (column: Column<TableRow, unknown>): CSSProperties => {\n const isPinned = column.getIsPinned()\n const offset =\n column.id !== ROW_SELECTION_COLUMN_ID && column.id !== DRAG_HANDLE_COLUMN_ID ? -30 : 0\n\n return {\n left: isPinned === 'left' ? `${column.getStart('left') + offset}px` : undefined, // Removed offset\n right: isPinned === 'right' ? `${column.getAfter('right')}px` : undefined,\n position: isPinned ? 'sticky' : 'relative',\n width: column.getSize(),\n zIndex: isPinned ? 100 : 0,\n }\n}\n\nconst getColumnWidth = (rowId: string, columnId: string) => {\n return `calc(var(--col-${columnId}-size) * 1px)`\n}\n// test\n\nexport const DRAG_HANDLE_COLUMN_ID = 'drag-handle'\n\nexport interface ProjectTreeTableProps extends React.HTMLAttributes<HTMLDivElement> {\n scope: string\n sliceId: string\n onScrollBottom?: React.HTMLAttributes<HTMLDivElement>['onScroll']\n onOpenNew?: (type: 'folder' | 'task') => void\n readOnly?: (DefaultColumns | string)[]\n excludedColumns?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n isLoading?: boolean\n clientSorting?: boolean\n sortableRows?: boolean\n onRowReorder?: (active: UniqueIdentifier, over: UniqueIdentifier | null) => void // Adjusted type for active/over if needed, or keep as Active, Over\n dndActiveId?: UniqueIdentifier | null // Added prop\n pt?: {\n container?: React.HTMLAttributes<HTMLDivElement>\n head?: Partial<TableHeadProps>\n }\n}\n\nexport const ProjectTreeTable = ({\n scope,\n sliceId,\n onScroll,\n onScrollBottom, // when the user scrolls to the bottom of the table, this callback is called\n onOpenNew,\n readOnly,\n excludedColumns,\n extraColumns,\n isLoading: isLoadingProp,\n clientSorting = false,\n sortableRows = false,\n onRowReorder,\n dndActiveId, // Destructure new prop\n pt,\n ...props\n}: ProjectTreeTableProps) => {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n setAllColumns,\n sorting,\n sortingOnChange,\n columnPinningOnChange,\n columnSizingOnChange,\n columnVisibilityOnChange,\n columnOrderOnChange,\n groupBy,\n } = useColumnSettingsContext()\n const isGrouping = !!groupBy\n\n const {\n projectInfo,\n tableData,\n attribFields,\n entitiesMap,\n users,\n isLoading: isLoadingData,\n error,\n isInitialized,\n expanded,\n projectName,\n updateExpanded,\n toggleExpandAll,\n showHierarchy,\n fetchNextPage,\n scopes,\n getEntityById,\n } = useProjectTableContext()\n\n const { projectName: contextProjectName, writableFields } = useProjectDataContext()\n\n const isLoading = isLoadingProp || isLoadingData\n\n const {\n statuses = [],\n folderTypes = [],\n taskTypes = [],\n tags = [],\n linkTypes = [],\n } = projectInfo || {}\n const options: BuiltInFieldOptions = useMemo(\n () =>\n getTableFieldOptions({\n users,\n statuses,\n folderTypes,\n taskTypes,\n tags,\n scopes,\n }),\n [users, statuses, folderTypes, taskTypes, scopes, tags],\n )\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n // reference of how many rows are currently rendered in the table\n const tableRowsCountRef = useRef(0)\n\n // Selection context\n const { registerGrid } = useSelectionCellsContext()\n\n // generate loading attrib and rows\n const { loadingAttrib, loadingRows } = useMemo(() => {\n // count the number of children in tbody\n const tableRowsCount = tableContainerRef.current?.querySelectorAll('tbody tr').length || 0\n const loadingAttrib = generateDummyAttributes()\n const loadingRows = generateLoadingRows(\n attribFields,\n showHierarchy && tableData.length > 0\n ? Math.min(tableRowsCount, 50)\n : groupBy\n ? Math.max(tableRowsCountRef.current, 50)\n : 50,\n )\n\n return { loadingAttrib, loadingRows }\n }, [])\n\n const showLoadingRows = !isInitialized || isLoading\n\n // Format readonly columns and attributes\n const { readOnlyColumns, readOnlyAttribs } = useMemo(\n () => getReadOnlyLists(attribFields, writableFields, readOnly),\n [attribFields, writableFields, readOnly],\n )\n\n const { selectedCells } = useSelectionCellsContext()\n const { updateEntities } = useCellEditing()\n\n const handleCellUpdate: CellUpdate = useCallback(\n async (entity, config) => {\n const { selection = [] } = config || {}\n const entitiesToUpdate: EntityUpdate[] = []\n if (!selection?.length) {\n entitiesToUpdate.push({ ...entity, id: entity.rowId })\n } else {\n // if includeSelection is true, update all the selected cells with the same columnId\n const { field, value, isAttrib, type } = entity\n for (const cellId of selectedCells) {\n const { colId, rowId } = parseCellId(cellId) || {}\n\n const entity = getEntityById(rowId || '')\n if (!entity) {\n console.warn(`Entity with ID ${rowId} not found for cell update.`)\n continue\n }\n\n if ((!colId?.includes('attrib_') || colId?.replace('attrib_', '') === field) && rowId) {\n entitiesToUpdate.push({\n field: field,\n rowId: rowId,\n id: entity.entityId,\n value: value,\n isAttrib: isAttrib,\n type: entity.entityType,\n })\n }\n }\n }\n\n if (!entitiesToUpdate.length) {\n console.warn('No entities to update, skipping updateEntities call.')\n toast.warn('No entities to update.')\n return\n }\n\n await updateEntities(entitiesToUpdate, true)\n },\n [updateEntities, getEntityById, selectedCells],\n )\n\n const columnAttribs = useMemo(\n () => (isInitialized ? attribFields : loadingAttrib),\n [attribFields, loadingAttrib, isInitialized],\n )\n const columns = useMemo(() => {\n const baseColumns = buildTreeTableColumns({\n attribs: columnAttribs,\n links: linkTypes,\n showHierarchy,\n options,\n extraColumns,\n excluded: excludedColumns,\n groupBy,\n })\n\n if (sortableRows) {\n return [\n {\n id: DRAG_HANDLE_COLUMN_ID,\n header: () => null,\n cell: () => null, // Content rendered by TableBodyRow\n size: 24,\n minSize: 24,\n maxSize: 24,\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n enablePinning: false, // Programmatically pinned\n },\n ...baseColumns,\n ]\n }\n return baseColumns\n }, [columnAttribs, showHierarchy, options, extraColumns, excludedColumns, sortableRows])\n\n // Keep ColumnSettingsProvider's allColumns ref up to date\n useEffect(() => {\n const ids = columns.map((c) => c.id!).filter(Boolean)\n setAllColumns(ids)\n }, [columns, setAllColumns])\n\n const table = useReactTable({\n data: showLoadingRows ? loadingRows : tableData,\n columns,\n defaultColumn: {\n minSize: 50,\n size: 150,\n },\n enableRowSelection: true, //enable row selection for all rows\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n getSubRows: (row) => row.subRows,\n getRowCanExpand: () => true,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // EXPANDABLE\n onExpandedChange: updateExpanded,\n // SORTING\n enableSorting: true,\n getSortedRowModel: getSortedRowModel(),\n sortDescFirst: false,\n manualSorting: !clientSorting,\n onSortingChange: sortingOnChange,\n columnResizeMode: 'onChange',\n onColumnPinningChange: columnPinningOnChange,\n onColumnSizingChange: columnSizingOnChange,\n onColumnVisibilityChange: columnVisibilityOnChange,\n onColumnOrderChange: columnOrderOnChange,\n // @ts-ignore\n filterFns,\n state: {\n expanded,\n sorting,\n columnPinning: (() => {\n const leftPins: string[] = []\n if (sortableRows) {\n leftPins.push(DRAG_HANDLE_COLUMN_ID)\n }\n leftPins.push(ROW_SELECTION_COLUMN_ID)\n\n // Add other unique pins from context, ensuring they are not the programmatic ones\n const contextLeftPins = (columnPinning.left || []).filter(\n (id) => id !== DRAG_HANDLE_COLUMN_ID && id !== ROW_SELECTION_COLUMN_ID,\n )\n leftPins.push(...contextLeftPins)\n // Remove duplicates just in case, though filter should handle it\n const uniqueLeftPins = [...new Set(leftPins)]\n\n return {\n left: uniqueLeftPins,\n right: columnPinning.right,\n }\n })(),\n columnSizing,\n columnVisibility,\n columnOrder,\n },\n meta: {\n projectName,\n options,\n readOnly: readOnlyColumns,\n updateEntities: handleCellUpdate,\n toggleExpandAll,\n loadMoreTasks: fetchNextPage,\n selection: Array.from(selectedCells),\n },\n })\n\n // TODO: when there is data (like in error) then we have infinite rendering\n\n const { rows } = table.getRowModel()\n\n // update the tableRowsCountRef with the current number of rows\n useEffect(() => {\n tableRowsCountRef.current = rows.length\n }, [rows.length])\n\n // Register grid structure with selection context when rows or columns change\n useEffect(() => {\n if (!rows.length) return\n const rowIds = rows.map((row) => row.id)\n const colIds = table.getAllLeafColumns().map((col) => col.id)\n const colIdsSortedByPinning = [...colIds].sort((a, b) => {\n if (ROW_SELECTION_COLUMN_ID === b) return 1\n const colA = columnPinning.left?.includes(a) ? 0 : 1\n const colB = columnPinning.left?.includes(b) ? 0 : 1\n return colA - colB\n })\n\n registerGrid(rowIds, colIdsSortedByPinning)\n }, [rows, table.getAllLeafColumns(), columnPinning, ROW_SELECTION_COLUMN_ID, registerGrid])\n\n const visibleColumns = table.getVisibleLeafColumns()\n\n // Use the column virtualization hook\n const { columnVirtualizer, virtualPaddingLeft, virtualPaddingRight } = useColumnVirtualization({\n visibleColumns,\n tableContainerRef,\n columnPinning,\n columnSizing,\n columnOrder,\n })\n\n const columnSizeVars = useCustomColumnWidthVars(table, columnSizing)\n\n // Calculate dynamic row height based on user setting from Customize panel\n const { getRowHeight, defaultRowHeight } = useDynamicRowHeight()\n\n const attribByField = useMemo(() => {\n return attribFields.reduce((acc: Record<string, AttributeEnumItem[]>, attrib) => {\n if (attrib.data?.enum?.length) {\n acc[attrib.name] = attrib.data?.enum\n }\n return acc\n }, {})\n }, [attribFields])\n\n const rowOrderIds = useMemo(() => tableData.map((row) => row.id), [tableData])\n const draggedRowData = useMemo(() => {\n if (!dndActiveId || !sortableRows) return null // Use dndActiveId\n return tableData.find((r) => r.id === dndActiveId) // Use dndActiveId\n }, [dndActiveId, tableData, sortableRows])\n\n const combinedScrollHandler: UIEventHandler<HTMLDivElement> = useCallback(\n (e) => {\n // Call the original onScroll if provided\n onScroll?.(e)\n\n if (onScrollBottom) {\n const containerRefElement = e.currentTarget\n if (containerRefElement && !showHierarchy && !groupBy) {\n const { scrollHeight, scrollTop, clientHeight } = containerRefElement\n //once the user has scrolled within 500px of the bottom of the table, fetch more data if we can\n if (scrollHeight - scrollTop - clientHeight < 500 && !isLoading) {\n onScrollBottom(e)\n }\n }\n }\n },\n [onScroll, onScrollBottom, showHierarchy, groupBy, isLoading],\n )\n\n // Get move entity functions for the dialog\n const {\n isEntityPickerOpen,\n handleMoveSubmit,\n closeMoveDialog,\n movingEntities,\n handleMoveToRoot,\n getDisabledFolderIds,\n getDisabledMessage,\n } = useMoveEntities({\n projectName: contextProjectName || projectName || '',\n })\n\n const handleMoveSubmitWithExpand = (selection: string[]) => {\n handleMoveSubmit(selection)\n const folderIdToExpand = selection[0]\n\n updateExpanded((prevExpanded: ExpandedState) => {\n if (typeof prevExpanded === 'boolean') {\n if (prevExpanded) {\n return prevExpanded\n }\n return { [folderIdToExpand]: true }\n }\n\n if (prevExpanded[folderIdToExpand]) {\n return prevExpanded\n }\n\n return {\n ...prevExpanded,\n [folderIdToExpand]: true,\n }\n })\n }\n\n const tableUiContent = (\n <ClipboardProvider\n entitiesMap={entitiesMap}\n columnEnums={{ ...options, ...attribByField }}\n columnReadOnly={readOnlyAttribs}\n visibleColumns={visibleColumns}\n >\n <Styled.TableWrapper {...props}>\n <Styled.TableContainer\n ref={tableContainerRef}\n style={{ height: '100%', padding: 0 }}\n onScroll={combinedScrollHandler}\n {...pt?.container}\n className={clsx(\n 'table-container',\n {\n resizing: table.getState().columnSizingInfo.isResizingColumn,\n },\n pt?.container?.className,\n )}\n >\n <table\n style={{\n display: 'grid',\n borderCollapse: 'collapse',\n userSelect: 'none',\n ...columnSizeVars,\n width: table.getTotalSize(),\n cursor: table.getState().columnSizingInfo.isResizingColumn ? 'col-resize' : undefined,\n }}\n >\n <TableHead\n columnVirtualizer={columnVirtualizer}\n table={table}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n {...pt?.head}\n />\n <TableBody\n columnVirtualizer={columnVirtualizer}\n table={table}\n tableContainerRef={tableContainerRef}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n showHierarchy={showHierarchy}\n attribs={attribFields}\n onOpenNew={onOpenNew}\n rowOrderIds={rowOrderIds}\n sortableRows={sortableRows}\n error={error}\n isGrouping={isGrouping}\n getRowHeight={getRowHeight}\n defaultRowHeight={defaultRowHeight}\n />\n </table>\n </Styled.TableContainer>\n </Styled.TableWrapper>\n {/* Render EntityPickerDialog alongside table content */}\n {isEntityPickerOpen &&\n projectName &&\n movingEntities?.entities &&\n movingEntities.entities.length > 0 && (\n <EntityPickerDialog\n projectName={projectName}\n entityType=\"folder\"\n onSubmit={handleMoveSubmitWithExpand}\n onClose={closeMoveDialog}\n showMoveToRoot={movingEntities.entities.every(\n (entity: EntityMoveData) => entity.entityType === 'folder',\n )}\n onMoveToRoot={handleMoveToRoot}\n disabledIds={getDisabledFolderIds()}\n getDisabledMessage={getDisabledMessage}\n />\n )}\n </ClipboardProvider>\n )\n\n // Render DragOverlay if sortableRows and dndActiveId is present\n const dragOverlayPortal =\n sortableRows &&\n dndActiveId &&\n createPortal(\n <DragOverlay dropAnimation={null}>\n {draggedRowData\n ? (() => {\n const overlayRowInstance = table.getRowModel().rows.find((r) => r.id === dndActiveId)\n if (!overlayRowInstance) return null\n\n const tableWidth = table.getTotalSize()\n\n return (\n <table\n style={{\n width: tableWidth,\n borderCollapse: 'collapse',\n backgroundColor: 'var(--md-sys-color-surface-container-high)',\n boxShadow: '0 0 10px rgba(0,0,0,0.2)',\n ...columnSizeVars,\n }}\n >\n <tbody>\n <Styled.TR style={{ display: 'flex', userSelect: 'none' }}>\n {virtualPaddingLeft ? (\n <td style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {columnVirtualizer.getVirtualItems().map((vc) => {\n const cell = overlayRowInstance.getVisibleCells()[vc.index]\n if (!cell) return null\n\n const cellStyleBase: CSSProperties = {\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(overlayRowInstance.id, cell.column.id),\n display: 'flex',\n alignItems: 'center',\n height: defaultRowHeight,\n }\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TableCell\n key={`overlay-drag-${cell.id}`}\n style={{ ...cellStyleBase, justifyContent: 'center' }}\n className={clsx(cell.column.id)}\n >\n <Icon icon=\"drag_handle\" /> {/* Static icon */}\n </Styled.TableCell>\n )\n }\n return (\n <TableCellMemo\n cell={cell}\n cellId={`overlay-${getCellId(overlayRowInstance.id, cell.column.id)}`}\n rowId={overlayRowInstance.id}\n key={`overlay-cell-${cell.id}`}\n showHierarchy={showHierarchy}\n />\n )\n })}\n {virtualPaddingRight ? (\n <td style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.TR>\n </tbody>\n </table>\n )\n })()\n : null}\n </DragOverlay>,\n document.body,\n )\n\n if (sortableRows) {\n return (\n <>\n {tableUiContent}\n {dragOverlayPortal}\n </>\n )\n } else {\n return tableUiContent\n }\n}\n\ninterface TableHeadProps extends React.HTMLAttributes<HTMLTableSectionElement> {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n}\n\nconst TableHead = ({\n columnVirtualizer,\n table,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n ...props\n}: TableHeadProps) => {\n return (\n <Styled.TableHeader {...props}>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableHeadRow\n key={headerGroup.id}\n columnVirtualizer={columnVirtualizer}\n headerGroup={headerGroup}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n />\n ))}\n </Styled.TableHeader>\n )\n}\n\ninterface TableHeadRowProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n headerGroup: HeaderGroup<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n}\n\nconst TableHeadRow = ({\n columnVirtualizer,\n headerGroup,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n}: TableHeadRowProps) => {\n const virtualColumns = columnVirtualizer.getVirtualItems()\n return (\n <Styled.ColumnHeader key={headerGroup.id} style={{ display: 'flex' }}>\n {virtualPaddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {virtualColumns.map((virtualColumn) => {\n const header = headerGroup.headers[virtualColumn.index]\n\n return (\n <TableHeadCell\n key={header.id}\n header={header}\n isLoading={isLoading}\n isReadOnly={readOnlyColumns?.includes(header.id)}\n canSort={header.column.getCanSort()}\n canFilter={header.column.getCanFilter()}\n canHide={header.column.getCanHide()}\n canPin={header.column.getCanPin()}\n canResize={header.column.getCanResize()}\n sortableRows={sortableRows}\n />\n )\n })}\n {virtualPaddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.ColumnHeader>\n )\n}\n\ninterface TableHeadCellProps {\n header: Header<TableRow, unknown>\n isLoading: boolean\n canSort?: boolean\n canFilter?: boolean\n canHide?: boolean\n canPin?: boolean\n canResize?: boolean\n isReadOnly?: boolean\n sortableRows?: boolean\n}\n\nconst TableHeadCell = ({\n header,\n isLoading,\n canFilter,\n canHide,\n canSort,\n canPin,\n canResize,\n isReadOnly,\n sortableRows,\n}: TableHeadCellProps) => {\n const { column } = header\n const sorting = column.getIsSorted()\n const menuId = `column-header-menu-${column.id}`\n const { menuOpen } = useMenuContext()\n const isOpen = menuOpen === menuId\n\n return (\n <Styled.HeaderCell\n className={clsx(header.id, 'shimmer-dark', {\n loading: isLoading,\n 'last-pinned-left': column.getIsPinned() === 'left' && column.getIsLastColumn('left'),\n resizing: column.getIsResizing(),\n })}\n key={header.id}\n style={{\n ...getCommonPinningStyles(column),\n width: getColumnWidth('', column.id),\n }}\n >\n {header.isPlaceholder ? null : (\n <Styled.TableCellContent className={clsx('bold', 'header')}>\n {flexRender(column.columnDef.header, header.getContext())}\n {isReadOnly && (\n <Icon icon=\"lock\" data-tooltip={'You only have permission to read this column.'} />\n )}\n\n <Styled.HeaderButtons className=\"actions\" $isOpen={isOpen}>\n {(canHide || canPin || canSort) && (\n <ColumnHeaderMenu\n className=\"header-menu\"\n header={header}\n canHide={canHide}\n canPin={canPin}\n canSort={canSort}\n isResizing={column.getIsResizing()}\n menuId={menuId}\n isOpen={isOpen}\n />\n )}\n\n {/* COLUMN SORTING */}\n {canSort && (\n <HeaderActionButton\n icon=\"sort\"\n className={clsx('sort-button', { visible: sorting })}\n style={{\n transform: sorting === 'asc' ? 'rotate(180deg) scaleX(-1)' : 'none',\n }}\n onClick={column.getToggleSortingHandler()}\n selected={!!column.getIsSorted()}\n />\n )}\n </Styled.HeaderButtons>\n {canResize && (\n <Styled.ResizedHandler\n {...{\n onDoubleClick: () => column.resetSize(),\n onMouseDown: header.getResizeHandler(),\n onTouchStart: header.getResizeHandler(),\n className: clsx('resize-handle', {\n resizing: column.getIsResizing(),\n }),\n }}\n />\n )}\n </Styled.TableCellContent>\n )}\n </Styled.HeaderCell>\n )\n}\n\ninterface TableBodyProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n tableContainerRef: React.RefObject<HTMLDivElement>\n showHierarchy: boolean\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n attribs: ProjectTableAttribute[]\n onOpenNew?: (type: 'folder' | 'task') => void\n rowOrderIds: UniqueIdentifier[]\n sortableRows: boolean\n error?: string\n isGrouping: boolean\n getRowHeight: (row: TableRow) => number\n defaultRowHeight: number\n}\n\nconst TableBody = ({\n columnVirtualizer,\n table,\n tableContainerRef,\n showHierarchy,\n virtualPaddingLeft,\n virtualPaddingRight,\n attribs,\n onOpenNew,\n rowOrderIds,\n sortableRows,\n error,\n isGrouping,\n getRowHeight,\n defaultRowHeight,\n}: TableBodyProps) => {\n const headerLabels = useMemo(() => {\n const allColumns = table.getAllColumns()\n const headers = allColumns\n .map((col) => {\n const headerId = col.id\n const header = col.columnDef.header\n if (typeof header === 'string' || typeof header === 'number') {\n return { label: header, id: headerId }\n }\n return null\n })\n .filter(Boolean)\n\n return headers as HeaderLabel[]\n }, [table.getAllColumns()])\n\n const cellContextMenuHook = useCellContextMenu({ attribs, onOpenNew, headerLabels })\n\n const handleTableBodyContextMenu = cellContextMenuHook.handleTableBodyContextMenu\n\n const { handlePreFetchTasks } = usePrefetchFolderTasks()\n\n const { rows } = table.getRowModel()\n\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n estimateSize: (index) => {\n // Calculate dynamic row height based on specific row data\n const row = rows[index]\n return row ? getRowHeight(row.original) : defaultRowHeight\n },\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement:\n typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n const virtualRows = rowVirtualizer.getVirtualItems()\n\n // Force row virtualizer to recalculate when row height changes (debounced for performance)\n useEffect(() => {\n const timeout = setTimeout(() => {\n rowVirtualizer.measure()\n }, 100) // Small delay to batch multiple rapid changes\n\n return () => clearTimeout(timeout)\n }, [defaultRowHeight, rowVirtualizer])\n\n // Memoize the measureElement callback\n const measureRowElement = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n useKeyboardNavigation()\n\n const tbodyContent = (\n <tbody\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n position: 'relative',\n display: 'grid',\n }}\n onContextMenu={handleTableBodyContextMenu}\n onMouseOver={(e) => {\n handlePreFetchTasks(e)\n }}\n >\n {virtualRows.map((virtualRow, i) => {\n const row = rows[virtualRow.index] as Row<TableRow>\n // Add a check for row existence to prevent potential errors if data is out of sync\n if (!row) {\n console.warn('Virtualized row data not found for index:', virtualRow.index)\n return null\n }\n return (\n <TableBodyRow\n key={row.id + i.toString()} // dnd-kit needs this key to be stable and match the id in useSortable\n row={row}\n showHierarchy={showHierarchy}\n visibleCells={row.getVisibleCells()}\n virtualColumns={columnVirtualizer.getVirtualItems()}\n paddingLeft={virtualPaddingLeft}\n paddingRight={virtualPaddingRight}\n rowRef={measureRowElement}\n dataIndex={virtualRow.index}\n offsetTop={virtualRow.start}\n sortableRows={sortableRows}\n isGrouping={isGrouping}\n rowHeight={getRowHeight(row.original)}\n />\n )\n })}\n </tbody>\n )\n\n if (error) {\n return (\n tableContainerRef.current &&\n createPortal(\n <EmptyPlaceholder message=\"No items found\" error={error} />,\n tableContainerRef.current,\n )\n )\n }\n\n if (sortableRows) {\n return (\n <SortableContext items={rowOrderIds} strategy={verticalListSortingStrategy}>\n {tbodyContent}\n </SortableContext>\n )\n } else {\n return tbodyContent\n }\n}\n\ninterface TableBodyRowProps {\n row: Row<TableRow>\n showHierarchy: boolean\n visibleCells: Cell<TableRow, unknown>[]\n virtualColumns: VirtualItem[]\n paddingLeft: number | undefined\n paddingRight: number | undefined\n rowRef: (node: HTMLTableRowElement | null) => void\n dataIndex: number\n offsetTop: number\n sortableRows: boolean\n isGrouping: boolean\n rowHeight: number\n}\n\nconst TableBodyRow = ({\n row,\n showHierarchy,\n visibleCells,\n virtualColumns,\n paddingLeft,\n paddingRight,\n rowRef,\n dataIndex,\n offsetTop,\n sortableRows,\n isGrouping = false,\n rowHeight,\n}: TableBodyRowProps) => {\n const sortable = sortableRows ? useSortable({ id: row.id }) : null\n\n const combinedRef = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (sortable) {\n sortable.setNodeRef(node)\n }\n // rowRef for virtualizer measurement\n // only measure if not actively being transformed by dnd-kit\n if (!(sortable && sortable.isDragging)) {\n rowRef(node)\n }\n },\n [sortable, rowRef],\n )\n\n // Attempt to combine dnd-kit transform with virtualizer's offsetTop\n const style: CSSProperties = {\n position: 'absolute', // Use absolute positioning for virtualized items\n top: offsetTop, // Position based on virtualizer's calculation (virtualRow.start)\n left: 0, // Span full width of the relative parent (tbody)\n right: 0, // Span full width\n height: rowHeight, // Use dynamic row height\n zIndex: sortable && sortable.isDragging ? 0 : 1, // Ensure dragged item is above others\n display: 'flex', // Styled.TR is display:flex\n transform:\n sortable && sortable.transform ? CSS.Transform.toString(sortable.transform) : undefined, // Apply dnd-kit's transform for drag effect\n transition: sortable && sortable.transition ? sortable.transition : undefined,\n visibility: sortable && sortable.isDragging ? 'hidden' : 'visible', // Hide the row being dragged\n }\n\n return (\n <Styled.TR\n ref={combinedRef}\n data-index={dataIndex} //needed for dynamic row height measurement\n style={style}\n className={clsx({ 'group-row': row.original.group })}\n >\n {paddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingLeft }} />\n ) : null}\n {virtualColumns.map((vc, i) => {\n const cell = visibleCells[vc.index]\n if (!cell) return null // Should not happen in normal circumstances\n\n const cellId = getCellId(row.id, cell.column.id)\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TableCell\n key={cell.id + i.toString()}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(row.id, cell.column.id),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: rowHeight,\n pointerEvents: 'all',\n cursor: 'grab',\n }}\n className={clsx(cell.column.id, {\n 'last-pinned-left':\n cell.column.getIsPinned() === 'left' && cell.column.getIsLastColumn('left'),\n })}\n onMouseDown={(e) => e.stopPropagation()} // Prevent selection interference\n onMouseOver={(e) => e.stopPropagation()}\n // Removed onMouseUp stopPropagation to allow dnd-kit to handle it\n onDoubleClick={(e) => e.stopPropagation()}\n onContextMenu={(e) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n <RowDragHandleCellContent\n attributes={sortable?.attributes}\n listeners={sortable?.listeners}\n />\n </Styled.TableCell>\n )\n }\n return (\n <TableCellMemo\n cell={cell}\n cellId={cellId}\n rowId={row.id}\n key={cell.id + i.toString()}\n showHierarchy={showHierarchy}\n sortableRows={sortableRows}\n rowHeight={rowHeight}\n />\n )\n })}\n\n {paddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingRight }} />\n ) : null}\n </Styled.TR>\n )\n}\n\ninterface TableCellProps {\n cell: Cell<TableRow, unknown>\n cellId: string\n rowId: string\n className?: string\n showHierarchy: boolean\n sortableRows?: boolean\n rowHeight?: number\n}\n\nconst TableCell = ({\n cell,\n rowId,\n cellId,\n className,\n showHierarchy,\n sortableRows,\n rowHeight,\n ...props\n}: TableCellProps) => {\n const { getEntityById, onOpenPlayer } = useProjectTableContext()\n\n const {\n isCellSelected,\n isCellFocused,\n startSelection,\n extendSelection,\n endSelection,\n selectCell,\n focusCell,\n getCellBorderClasses,\n clearSelection,\n selectedCells,\n } = useSelectionCellsContext()\n\n const { isRowSelected } = useSelectedRowsContext()\n\n const { isEditing, setEditingCellId } = useCellEditing()\n\n const borderClasses = getCellBorderClasses(cellId)\n\n const isPinned = cell.column.getIsPinned()\n const isLastLeftPinnedColumn = isPinned === 'left' && cell.column.getIsLastColumn('left')\n const isRowSelectionColumn = cell.column.id === ROW_SELECTION_COLUMN_ID\n const isGroup = cell.row.original.entityType === 'group'\n const isMultipleSelected = selectedCells.size > 1\n\n return (\n <Styled.TableCell\n {...props}\n tabIndex={0}\n $isLastPinned={isLastLeftPinnedColumn} // is this column the last pinned column? Custom styling for borders.\n className={clsx(\n cell.column.id,\n {\n selected: isCellSelected(cellId),\n focused: isCellFocused(cellId),\n editing: isEditing(cellId),\n 'last-pinned-left': isLastLeftPinnedColumn,\n 'selected-row': isRowSelected(rowId),\n task: cell.row.original.entityType === 'task',\n 'multiple-selected': isMultipleSelected,\n },\n className,\n ...borderClasses,\n )}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(cell.row.id, cell.column.id),\n height: rowHeight,\n }}\n onMouseDown={(e) => {\n // Only process left clicks (button 0), ignore right clicks\n if (e.button !== 0) return\n\n const target = e.target as HTMLElement\n\n // check we are not clicking on expander\n if (target.closest('.expander')) return\n\n // if we are clicking on an edit trigger, we need to start editing\n if (target.closest('.' + EDIT_TRIGGER_CLASS)) {\n if (!isCellSelected(cellId)) {\n // if the cell is not selected, select it and deselect all others\n selectCell(cellId, false, false)\n focusCell(cellId)\n }\n // start editing the cell\n setEditingCellId(cellId)\n\n return\n }\n\n // check we are not clicking in a dropdown\n if (target.closest('.options')) return\n\n // only name column can be selected for group rows\n if (isGroup && cell.column.id !== 'name') return clearSelection()\n\n const additive = e.metaKey || e.ctrlKey || isRowSelectionColumn\n if (e.shiftKey) {\n // Shift+click extends selection from anchor cell\n selectCell(cellId, additive, true) // true for range selection\n } else {\n // Normal click starts a new selection\n startSelection(cellId, additive)\n }\n }}\n onMouseOver={(e) => {\n if (e.buttons === 1) {\n // Left button is pressed during mouse move - drag selection\n extendSelection(cellId, isRowSelectionColumn)\n }\n }}\n onMouseUp={() => {\n endSelection(cellId)\n }}\n onDoubleClick={(e) => {\n // row selection on name column double click\n if (\n cell.column.id === 'name' &&\n !(e.target as HTMLElement).closest('.expander') &&\n !isGroup\n ) {\n // select the row by selecting the row-selection cell\n const rowSelectionCellId = getCellId(cell.row.id, ROW_SELECTION_COLUMN_ID)\n if (!isCellSelected(rowSelectionCellId)) {\n const additive = e.metaKey || e.ctrlKey\n selectCell(rowSelectionCellId, additive, false)\n }\n }\n // open the viewer on thumbnail double click\n if (cell.column.id === 'thumbnail') {\n if (onOpenPlayer) {\n const entity = getEntityById(cell.row.original.entityId || cell.row.id)\n if (entity) {\n const targetIds = getEntityViewierIds(entity)\n onOpenPlayer(targetIds, { quickView: true })\n }\n }\n }\n }}\n onContextMenu={(e) => {\n e.preventDefault()\n // if the cell is not selected, select it and deselect all others\n if (!isCellSelected(cellId)) {\n selectCell(cellId, false, false)\n }\n }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Styled.TableCell>\n )\n}\n\nconst TableCellMemo = memo(TableCell)\n"],"names":["getCommonPinningStyles","column","isPinned","offset","ROW_SELECTION_COLUMN_ID","DRAG_HANDLE_COLUMN_ID","getColumnWidth","rowId","columnId","ProjectTreeTable","scope","sliceId","onScroll","onScrollBottom","onOpenNew","readOnly","excludedColumns","extraColumns","isLoadingProp","clientSorting","sortableRows","onRowReorder","dndActiveId","pt","props","columnVisibility","columnPinning","columnOrder","columnSizing","setAllColumns","sorting","sortingOnChange","columnPinningOnChange","columnSizingOnChange","columnVisibilityOnChange","columnOrderOnChange","groupBy","useColumnSettingsContext","isGrouping","projectInfo","tableData","attribFields","entitiesMap","users","isLoadingData","error","isInitialized","expanded","projectName","updateExpanded","toggleExpandAll","showHierarchy","fetchNextPage","scopes","getEntityById","useProjectTableContext","contextProjectName","writableFields","useProjectDataContext","isLoading","statuses","folderTypes","taskTypes","tags","linkTypes","options","useMemo","getTableFieldOptions","tableContainerRef","useRef","tableRowsCountRef","registerGrid","useSelectionCellsContext","loadingAttrib","loadingRows","tableRowsCount","_a","generateDummyAttributes","generateLoadingRows","showLoadingRows","readOnlyColumns","readOnlyAttribs","getReadOnlyLists","selectedCells","updateEntities","useCellEditing","handleCellUpdate","useCallback","entity","config","selection","entitiesToUpdate","field","value","isAttrib","type","cellId","colId","parseCellId","toast","columnAttribs","columns","baseColumns","buildTreeTableColumns","useEffect","ids","c","table","useReactTable","row","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","getSortedRowModel","filterFns","leftPins","contextLeftPins","id","rows","rowIds","colIdsSortedByPinning","col","a","b","colA","colB","_b","visibleColumns","columnVirtualizer","virtualPaddingLeft","virtualPaddingRight","useColumnVirtualization","columnSizeVars","useCustomColumnWidthVars","getRowHeight","defaultRowHeight","useDynamicRowHeight","attribByField","acc","attrib","_c","rowOrderIds","draggedRowData","r","combinedScrollHandler","containerRefElement","scrollHeight","scrollTop","clientHeight","isEntityPickerOpen","handleMoveSubmit","closeMoveDialog","movingEntities","handleMoveToRoot","getDisabledFolderIds","getDisabledMessage","useMoveEntities","handleMoveSubmitWithExpand","folderIdToExpand","prevExpanded","tableUiContent","jsxs","ClipboardProvider","jsx","Styled.TableWrapper","Styled.TableContainer","clsx","TableHead","TableBody","EntityPickerDialog","dragOverlayPortal","createPortal","DragOverlay","overlayRowInstance","tableWidth","Styled.TR","vc","cell","cellStyleBase","Styled.TableCell","Icon","TableCellMemo","getCellId","Fragment","Styled.TableHeader","headerGroup","TableHeadRow","virtualColumns","Styled.ColumnHeader","virtualColumn","header","TableHeadCell","canFilter","canHide","canSort","canPin","canResize","isReadOnly","menuId","menuOpen","useMenuContext","isOpen","Styled.HeaderCell","Styled.TableCellContent","flexRender","Styled.HeaderButtons","ColumnHeaderMenu","HeaderActionButton","Styled.ResizedHandler","attribs","headerLabels","headerId","handleTableBodyContextMenu","useCellContextMenu","handlePreFetchTasks","usePrefetchFolderTasks","rowVirtualizer","useVirtualizer","index","element","virtualRows","timeout","measureRowElement","node","useKeyboardNavigation","tbodyContent","e","virtualRow","i","TableBodyRow","EmptyPlaceholder","SortableContext","verticalListSortingStrategy","visibleCells","paddingLeft","paddingRight","rowRef","dataIndex","offsetTop","rowHeight","sortable","useSortable","combinedRef","style","CSS","RowDragHandleCellContent","TableCell","className","onOpenPlayer","isCellSelected","isCellFocused","startSelection","extendSelection","endSelection","selectCell","focusCell","getCellBorderClasses","clearSelection","isRowSelected","useSelectedRowsContext","isEditing","setEditingCellId","borderClasses","isLastLeftPinnedColumn","isRowSelectionColumn","isGroup","isMultipleSelected","target","EDIT_TRIGGER_CLASS","additive","rowSelectionCellId","targetIds","getEntityViewierIds","memo"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const p=require("../../../../_virtual/jsx-runtime.cjs.js"),N=require("@tanstack/react-table");require("./widgets/CollapsedWidget.cjs.js");require("./widgets/DateWidget.cjs.js");require("./widgets/EnumWidget.cjs.js");require("./widgets/TextWidget.cjs.js");require("./widgets/BooleanWidget.cjs.js");const I=require("./widgets/CellWidget.cjs.js"),$=require("./widgets/EntityNameWidget.cjs.js"),B=require("./widgets/GroupHeaderWidget.cjs.js"),U=require("./widgets/ThumbnailWidget.cjs.js"),Z=require("@ynput/ayon-react-components"),x=require("clsx");require("../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("react-toastify");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/entities/getEntity.cjs.js");require("../../api/queries/entities/getEntityPanel.cjs.js");require("../../api/queries/entities/updateEntity.cjs.js");require("../../api/queries/entityLists/getLists.cjs.js");require("../../api/queries/entityLists/updateLists.cjs.js");require("../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/entityLists/listFolders.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");require("../../api/queries/links/getLinks.cjs.js");require("../../api/queries/links/getEntityLinks.cjs.js");require("../../api/queries/overview/getOverview.cjs.js");require("../../api/queries/overview/updateOverview.cjs.js");require("../../api/queries/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/versions/updateVersions.cjs.js");require("../../api/queries/views/getViews.cjs.js");require("../../api/queries/views/updateViews.cjs.js");require("../../api/queries/watchers/getWatchers.cjs.js");require("react");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("lodash");const J=require("../../util/getEntityTypeIcon.cjs.js");require("uuid");require("../../util/pubsub.cjs.js");require("../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../../context/RemoteModulesContext.cjs.js");require("../../context/DetailsPanelContext.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../context/pip/PiPWrapper.cjs.js");require("../../context/AddonProjectContext.cjs.js");require("../../context/AddonContext.cjs.js");require("../../context/PowerpackContext.cjs.js");require("../../context/MoveEntityContext.cjs.js");require("../../context/MenuContext.cjs.js");require("../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../components/Thumbnail/StackedThumbnails.cjs.js");require("../Feed/context/FeedContext.cjs.js");require("../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../Feed/components/CommentInput/CommentInput.cjs.js");require("../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../Feed/components/ActivityDate.cjs.js");require("../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../Feed/Feed.styled.cjs.js");require("date-fns");require("./ProjectTreeTable.cjs.js");const Q=require("./context/CellEditingContext.cjs.js"),A=require("./utils/cellUtils.cjs.js"),M=require("./ProjectTreeTable.styled.cjs.js"),Y=require("./components/SelectionCell.cjs.js"),w=require("./components/RowSelectionHeader.cjs.js"),F=require("./context/SelectionCellsContext.cjs.js"),R=require("./hooks/useBuildGroupByTableData.cjs.js"),ee=require("./widgets/LoadMoreWidget.cjs.js");require("./context/ProjectTableQueriesContext.cjs.js");require("./context/ProjectTableContext.cjs.js");require("./context/ClipboardContext.cjs.js");const ie=require("./context/ColumnSettingsContext.cjs.js");require("./context/SelectedRowsContext.cjs.js");require("./context/DetailsPanelEntityContext.cjs.js");require("./context/ProjectDataContext.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("./components/GroupSettingsFallback.cjs.js");require("./components/HeaderActionButton.cjs.js");require("./components/ColumnHeaderMenu.cjs.js");require("../DetailsPanel/DetailsPanel.styled.cjs.js");require("../DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../components/PlayableIcon/PlayableIcon.cjs.js");require("../DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../Actions/Actions.styled.cjs.js");require("../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../Actions/ActionIcon.cjs.js");require("../Views/context/ViewsContext.cjs.js");require("../Views/Views.styled.cjs.js");require("../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../components/EntityPath/EntityPath.styled.cjs.js");require("../../components/EntityPath/SegmentProvider.cjs.js");require("../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../components/Watchers/Watchers.cjs.js");require("../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../components/Powerpack/PowerpackButton.cjs.js");require("../../components/Powerpack/PricingLink.cjs.js");require("../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../components/Powerpack/CTAButton.cjs.js");require("../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../components/AttributeEditor/components/MinMaxField.cjs.js");require("../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../components/SearchFilter/filterDates.cjs.js");require("../../components/Badge/Badge.cjs.js");require("../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../components/Feedback/FeedbackContext.cjs.js");require("../../components/Feedback/SupportBubble.cjs.js");require("../../components/Chips/Chips.cjs.js");require("../../components/LinksManager/LinksManager.styled.cjs.js");require("../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../components/StyledLink/StyledLink.cjs.js");require("../../components/LinksManager/CellEditingDialog.cjs.js");const T=50,j=o=>(d,c,...a)=>d.original.isLoading!==c.original.isLoading?d.original.isLoading?1:-1:o(d,c,...a),re=(o,d)=>{const c=o.original.path||o.original.name,a=d.original.path||d.original.name;return c.localeCompare(a)},H=(o,d,c)=>{const a=A.getCellValue(o.original,c),f=A.getCellValue(d.original,c),S=Array.isArray(a)?a.length:a?String(a).length:0,_=Array.isArray(f)?f.length:f?String(f).length:0;return S-_},z=(o,d,c,a)=>{const f=A.getCellValue(o.original,c),S=A.getCellValue(d.original,c);if(a&&a.enum){const _=a.enum.findIndex(y=>y.value===f);return a.enum.findIndex(y=>y.value===S)-_<0?1:-1}else return(a==null?void 0:a.type)==="datetime"?N.sortingFns.datetime(o,d,c):(a==null?void 0:a.type)==="boolean"?(f===!0?1:0)-(S===!0?1:0):N.sortingFns.alphanumeric(o,d,c)},G=(o,d)=>`${o.linkType.charAt(0).toUpperCase()+o.linkType.slice(1)} (${d})`,D=(o,d)=>`${o.name.replaceAll("_","").replaceAll("-","").replaceAll("|","_")}_${d}`,K=(o,d)=>`link_${D(o,d)}`,ne=({attribs:o,links:d=[],showHierarchy:c,options:a,excluded:f,extraColumns:S,groupBy:_})=>{const h=[],y=e=>!(f!=null&&f.includes(e));y(F.ROW_SELECTION_COLUMN_ID)&&h.push({id:F.ROW_SELECTION_COLUMN_ID,enableResizing:!1,enableSorting:!1,enablePinning:!1,enableHiding:!1,header:()=>p.jsxRuntimeExports.jsx(w,{}),cell:({row:e})=>e.original.entityType==="group"?null:p.jsxRuntimeExports.jsx(Y.SelectionCell,{}),size:20}),y("thumbnail")&&h.push({id:"thumbnail",header:"Thumbnail",size:63,minSize:24,enableResizing:!0,enableSorting:!1,cell:({row:e,column:r,table:l})=>{const i=l.options.meta;if(!i)return null;const s=A.getCellId(e.id,r.id);return p.jsxRuntimeExports.jsx(U.ThumbnailWidget,{id:s,entityId:e.original.entityId||e.id,entityType:e.original.entityType,updatedAt:e.original.updatedAt,icon:e.original.icon,projectName:i==null?void 0:i.projectName,className:x("thumbnail",{loading:e.original.isLoading}),isPlayable:e.original.hasReviewables})}}),y("name")&&h.push({id:"name",accessorKey:"name",header:"Folder / Task",minSize:T,sortingFn:j(re),enableSorting:!_,enableResizing:!0,enablePinning:!0,enableHiding:!_,cell:({row:e,column:r,table:l})=>{var g,L;const{value:i,id:s,type:u}=E(e,r.id),n=l.options.meta,{isEditing:t}=Q.useCellEditing(),{rowHeight:b=40}=ie.useColumnSettingsContext(),q=A.getCellId(e.id,r.id);return e.original.entityType===R.NEXT_PAGE_ID&&e.original.group?p.jsxRuntimeExports.jsx(ee,{label:"Load more tasks",id:e.original.group.value,onLoadMore:C=>{var m;return(m=n==null?void 0:n.loadMoreTasks)==null?void 0:m.call(n,C)}}):p.jsxRuntimeExports.jsxs(M.TableCellContent,{id:q,className:x("large",e.original.entityType,{loading:e.original.isLoading,hierarchy:c}),style:{paddingLeft:`calc(${e.depth*1}rem + 8px)`},tabIndex:0,children:[e.original.group?p.jsxRuntimeExports.jsx(B.GroupHeaderWidget,{id:e.id,label:e.original.group.label,name:e.original.name,icon:e.original.group.icon,img:e.original.group.img,color:e.original.group.color,count:e.original.group.count,isExpanded:e.getIsExpanded(),isEmpty:e.subRows.length===0,toggleExpanded:e.getToggleExpandedHandler()}):p.jsxRuntimeExports.jsx($.EntityNameWidget,{id:e.id,label:e.original.label,name:e.original.name,path:c?void 0:"/"+((g=e.original.parents)==null?void 0:g.join("/")),showHierarchy:c,icon:e.original.icon,type:e.original.entityType,isExpanded:e.getIsExpanded(),toggleExpandAll:()=>{var C;return(C=n==null?void 0:n.toggleExpandAll)==null?void 0:C.call(n,[e.id])},toggleExpanded:e.getToggleExpandedHandler(),rowHeight:b}),t(q)&&p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:s,className:x("name",{loading:e.original.isLoading}),columnId:r.id,value:i,valueData:{name:e.original.name,label:e.original.label,meta:n,entityRowId:s,columnId:r.id,hasVersions:!!e.original.hasVersions},entityType:u,attributeData:{type:"name"},isCollapsed:!!e.original.childOnlyMatch,isReadOnly:(L=n==null?void 0:n.readOnly)==null?void 0:L.includes(r.id)})]})}}),y("status")&&h.push({id:"status",accessorKey:"status",minSize:T,header:"Status",sortingFn:j((e,r,l)=>z(e,r,l,{enum:a.status,type:"string"})),sortDescFirst:!0,enableSorting:!0,enableResizing:!0,enablePinning:!0,enableHiding:!0,cell:({row:e,column:r,table:l})=>{var t,b;const{value:i,id:s,type:u}=E(e,r.id),n=l.options.meta;return["group",R.NEXT_PAGE_ID].includes(u)?null:p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:s,className:x("status",{loading:e.original.isLoading}),columnId:r.id,value:i,attributeData:{type:"string"},options:(t=n==null?void 0:n.options)==null?void 0:t.status.filter(q=>{var g;return(g=q.scope)==null?void 0:g.includes(u)}),isCollapsed:!!e.original.childOnlyMatch,onChange:q=>{var g;return(g=n==null?void 0:n.updateEntities)==null?void 0:g.call(n,{field:r.id,value:q,type:u,rowId:s},{selection:n==null?void 0:n.selection})},isReadOnly:(b=n==null?void 0:n.readOnly)==null?void 0:b.includes(r.id),pt:{enum:{pt:{template:{pt:{icon:{style:{fontVariationSettings:"'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 20"}}}}}}}})}}),y("subType")&&h.push({id:"subType",accessorKey:"subType",header:"Type",minSize:T,enableSorting:!0,enableResizing:!0,enablePinning:!0,enableHiding:!0,sortingFn:j((e,r,l)=>z(e,r,l,{enum:[...a.folderType,...a.taskType],type:"string"})),cell:({row:e,column:r,table:l})=>{var b,q,g,L;const{value:i,id:s,type:u}=E(e,r.id);if(["group",R.NEXT_PAGE_ID].includes(u))return null;const n=u==="folder"?"folderType":"taskType",t=l.options.meta;return p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:s,className:x("subType",{loading:e.original.isLoading}),columnId:r.id,value:i,attributeData:{type:"string"},options:u==="folder"?(b=t==null?void 0:t.options)==null?void 0:b.folderType:u==="task"?(q=t==null?void 0:t.options)==null?void 0:q.taskType:[],isCollapsed:!!e.original.childOnlyMatch,onChange:C=>{var m;return(m=t==null?void 0:t.updateEntities)==null?void 0:m.call(t,{field:n,value:C,type:u,rowId:e.id},{selection:t==null?void 0:t.selection})},isReadOnly:((g=t==null?void 0:t.readOnly)==null?void 0:g.includes(r.id))||((L=t==null?void 0:t.readOnly)==null?void 0:L.includes(n))})}}),y("assignees")&&h.push({id:"assignees",accessorKey:"assignees",header:"Assignees",minSize:T,enableSorting:!0,enableResizing:!0,enablePinning:!0,enableHiding:!0,sortingFn:j(H),cell:({row:e,column:r,table:l})=>{var t,b;const i=l.options.meta,{value:s,id:u,type:n}=E(e,r.id);return["group",R.NEXT_PAGE_ID].includes(n)?null:n==="folder"?p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:u,className:x("assignees",{loading:e.original.isLoading}),columnId:r.id,value:"",isPlaceholder:!0}):p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:u,className:x("assignees",{loading:e.original.isLoading}),columnId:r.id,value:s,attributeData:{type:"list_of_strings"},options:(t=i==null?void 0:i.options)==null?void 0:t.assignee,isCollapsed:!!e.original.childOnlyMatch,onChange:q=>{var g;return(g=i==null?void 0:i.updateEntities)==null?void 0:g.call(i,{field:r.id,value:q,type:n,rowId:e.id},{selection:i==null?void 0:i.selection})},isReadOnly:(b=i==null?void 0:i.readOnly)==null?void 0:b.includes(r.id),pt:{enum:{multiSelectClose:(s==null?void 0:s.length)===0,search:!0,multipleOverride:!1}}})}}),y("tags")&&h.push({id:"tags",accessorKey:"tags",header:"Tags",minSize:T,enableSorting:!0,enableResizing:!0,enablePinning:!0,enableHiding:!0,sortingFn:j(H),cell:({row:e,column:r,table:l})=>{var t,b;const i=l.options.meta,{value:s,id:u,type:n}=E(e,r.id);return["group",R.NEXT_PAGE_ID].includes(n)?null:p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:u,className:x("tags",{loading:e.original.isLoading}),columnId:r.id,value:s,attributeData:{type:"list_of_strings"},options:(t=i==null?void 0:i.options)==null?void 0:t.tag,isCollapsed:!!e.original.childOnlyMatch,onChange:q=>{var g;return(g=i==null?void 0:i.updateEntities)==null?void 0:g.call(i,{field:r.id,value:q,type:n,rowId:e.id},{selection:i==null?void 0:i.selection})},isReadOnly:(b=i==null?void 0:i.readOnly)==null?void 0:b.includes(r.id),enableCustomValues:!0})}}),y("createdAt")&&h.push({id:"createdAt",accessorKey:"createdAt",header:"Created at",minSize:T,enableSorting:!0,enableResizing:!0,enablePinning:!0,enableHiding:!0,sortingFn:j(N.sortingFns.datetime),cell:({row:e,column:r})=>{const{value:l,id:i,type:s}=E(e,r.id);return["group",R.NEXT_PAGE_ID].includes(s)?null:p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:i,className:x("createdAt",{loading:e.original.isLoading}),columnId:r.id,value:l,attributeData:{type:"datetime"},isCollapsed:!!e.original.childOnlyMatch,isReadOnly:!0})}}),y("updatedAt")&&h.push({id:"updatedAt",accessorKey:"updatedAt",header:"Updated at",minSize:T,enableSorting:!0,enableResizing:!0,enablePinning:!0,enableHiding:!0,sortingFn:j(N.sortingFns.datetime),cell:({row:e,column:r})=>{const{value:l,id:i,type:s}=E(e,r.id);return["group",R.NEXT_PAGE_ID].includes(s)?null:p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:i,className:x("updatedAt",{loading:e.original.isLoading}),columnId:r.id,value:l,attributeData:{type:"datetime"},isCollapsed:!!e.original.childOnlyMatch,isReadOnly:!0})}});const V=o.filter(e=>{const r="attrib_"+e.name;return!(!y(r)||e.builtin&&!y("attrib"))}).map(e=>({id:"attrib_"+e.name,accessorKey:"attrib."+e.name,header:e.data.title||e.name,minSize:T,filterFn:"fuzzy",sortingFn:j((l,i,s)=>z(l,i,s,e.data)),enableSorting:!0,enableResizing:!0,enablePinning:!0,enableHiding:!0,cell:({row:l,column:i,table:s})=>{var C,m,P;const u=s.options.meta,n=i.id.replace("attrib_",""),{value:t,id:b,type:q}=E(l,n,"attrib"),g=!((C=l.original.ownAttrib)!=null&&C.includes(n));return["group",R.NEXT_PAGE_ID].includes(q)||!((m=e.scope)==null?void 0:m.includes(q))?null:p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:b,className:x("attrib",{loading:l.original.isLoading}),columnId:i.id,value:t,attributeData:{type:e.data.type||"string"},options:e.data.enum||[],isCollapsed:!!l.original.childOnlyMatch,isInherited:g&&["folder","task"].includes(q),isReadOnly:e.readOnly||((P=u==null?void 0:u.readOnly)==null?void 0:P.some(v=>v===n||v==="attrib"&&e.builtin)),onChange:v=>{var k,W;return(W=u==null?void 0:u.updateEntities)==null?void 0:W.call(u,{field:n,value:v,type:q,isAttrib:!0,rowId:l.id},{selection:(k=e.data.enum)!=null&&k.length?u==null?void 0:u.selection:void 0})}})}})),X=d.filter(e=>!(!y(e.linkType)||!y("link"))).flatMap(e=>{const r=l=>({id:K(e,l),accessorKey:`links.${D(e,l)}`,header:()=>p.jsxRuntimeExports.jsxs(M.LinkColumnHeader,{children:[G(e,l)," ",p.jsxRuntimeExports.jsx(Z.Icon,{icon:J.getEntityTypeIcon(l==="in"?e.inputType:e.outputType)})]}),minSize:T,enableSorting:!1,enableResizing:!0,enablePinning:!0,enableHiding:!0,cell:({row:i,column:s})=>{const u=s.id.replace("link_",""),{id:n,value:t}=E(i,u,"links"),b=t==null?void 0:t.map(g=>g.label),q={links:t,direction:l,entityId:i.original.entityId||i.original.id,entityType:i.original.entityType,link:{label:e.linkType,linkType:e.name,targetEntityType:l==="in"?e.inputType:e.outputType}};return p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:n,className:x("links",{loading:i.original.isLoading}),columnId:s.id,value:b,valueData:q,folderId:i.original.folderId,attributeData:{type:"links"}})}});return[r("in"),r("out")]}),O=[...h,...V,...X];return S&&S.forEach(({column:e,position:r=-1})=>{r>=0&&r<O.length?O.splice(r,0,e):O.push(e)}),O},E=(o,d,c)=>{var a;return{value:c?(a=o.original[c])==null?void 0:a[d]:o.original[d],id:o.id,type:o.original.entityType}};exports.default=ne;exports.getLinkColumnId=K;exports.getLinkKey=D;exports.getLinkLabel=G;exports.getValueIdType=E;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const p=require("../../../../_virtual/jsx-runtime.cjs.js"),N=require("@tanstack/react-table");require("./widgets/CollapsedWidget.cjs.js");require("./widgets/DateWidget.cjs.js");require("./widgets/EnumWidget.cjs.js");require("./widgets/TextWidget.cjs.js");require("./widgets/BooleanWidget.cjs.js");const I=require("./widgets/CellWidget.cjs.js"),$=require("./widgets/EntityNameWidget.cjs.js"),B=require("./widgets/GroupHeaderWidget.cjs.js"),U=require("./widgets/ThumbnailWidget.cjs.js"),Z=require("@ynput/ayon-react-components"),x=require("clsx");require("../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("react-toastify");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/entities/getEntity.cjs.js");require("../../api/queries/entities/getEntityPanel.cjs.js");require("../../api/queries/entities/updateEntity.cjs.js");require("../../api/queries/entityLists/getLists.cjs.js");require("../../api/queries/entityLists/updateLists.cjs.js");require("../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/entityLists/listFolders.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");require("../../api/queries/links/getLinks.cjs.js");require("../../api/queries/links/getEntityLinks.cjs.js");require("../../api/queries/overview/getOverview.cjs.js");require("../../api/queries/overview/updateOverview.cjs.js");require("../../api/queries/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/users/guests.cjs.js");require("../../api/queries/versions/updateVersions.cjs.js");require("../../api/queries/views/getViews.cjs.js");require("../../api/queries/views/updateViews.cjs.js");require("../../api/queries/watchers/getWatchers.cjs.js");require("react");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("lodash");const J=require("../../util/getEntityTypeIcon.cjs.js");require("uuid");require("../../util/pubsub.cjs.js");require("../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../../context/RemoteModulesContext.cjs.js");require("../../context/DetailsPanelContext.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../context/pip/PiPWrapper.cjs.js");require("../../context/AddonProjectContext.cjs.js");require("../../context/AddonContext.cjs.js");require("../../context/PowerpackContext.cjs.js");require("../../context/MoveEntityContext.cjs.js");require("../../context/MenuContext.cjs.js");require("../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../components/Thumbnail/StackedThumbnails.cjs.js");require("../Feed/context/FeedContext.cjs.js");require("../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../Feed/components/CommentInput/CommentInput.cjs.js");require("../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../Feed/components/ActivityDate.cjs.js");require("../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../Feed/Feed.styled.cjs.js");require("date-fns");require("../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("./ProjectTreeTable.cjs.js");const Q=require("./context/CellEditingContext.cjs.js"),A=require("./utils/cellUtils.cjs.js"),M=require("./ProjectTreeTable.styled.cjs.js"),Y=require("./components/SelectionCell.cjs.js"),w=require("./components/RowSelectionHeader.cjs.js"),F=require("./context/SelectionCellsContext.cjs.js"),R=require("./hooks/useBuildGroupByTableData.cjs.js"),ee=require("./widgets/LoadMoreWidget.cjs.js");require("./context/ProjectTableQueriesContext.cjs.js");require("./context/ProjectTableContext.cjs.js");require("./context/ClipboardContext.cjs.js");const ie=require("./context/ColumnSettingsContext.cjs.js");require("./context/SelectedRowsContext.cjs.js");require("./context/DetailsPanelEntityContext.cjs.js");require("./context/ProjectDataContext.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("./components/GroupSettingsFallback.cjs.js");require("./components/HeaderActionButton.cjs.js");require("./components/ColumnHeaderMenu.cjs.js");require("../DetailsPanel/DetailsPanel.styled.cjs.js");require("../DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../components/PlayableIcon/PlayableIcon.cjs.js");require("../DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../Actions/Actions.styled.cjs.js");require("../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../Actions/ActionIcon.cjs.js");require("../Views/context/ViewsContext.cjs.js");require("../Views/Views.styled.cjs.js");require("../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../components/EntityPath/EntityPath.styled.cjs.js");require("../../components/EntityPath/SegmentProvider.cjs.js");require("../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../components/Watchers/Watchers.cjs.js");require("../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../components/Powerpack/PowerpackButton.cjs.js");require("../../components/Powerpack/PricingLink.cjs.js");require("../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../components/Powerpack/CTAButton.cjs.js");require("../../components/Powerpack/RequiredPowerpackVersion.cjs.js");require("../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../components/AttributeEditor/components/MinMaxField.cjs.js");require("../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../components/SearchFilter/filterDates.cjs.js");require("../../components/Badge/Badge.cjs.js");require("../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../components/Feedback/FeedbackContext.cjs.js");require("../../components/Feedback/SupportBubble.cjs.js");require("../../components/Chips/Chips.cjs.js");require("../../components/LinksManager/LinksManager.styled.cjs.js");require("../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../components/StyledLink/StyledLink.cjs.js");require("../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../components/AccessUser/AccessUser.cjs.js");require("../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../components/LinksManager/CellEditingDialog.cjs.js");const T=50,j=o=>(d,c,...a)=>d.original.isLoading!==c.original.isLoading?d.original.isLoading?1:-1:o(d,c,...a),re=(o,d)=>{const c=o.original.path||o.original.name,a=d.original.path||d.original.name;return c.localeCompare(a)},H=(o,d,c)=>{const a=A.getCellValue(o.original,c),f=A.getCellValue(d.original,c),S=Array.isArray(a)?a.length:a?String(a).length:0,_=Array.isArray(f)?f.length:f?String(f).length:0;return S-_},z=(o,d,c,a)=>{const f=A.getCellValue(o.original,c),S=A.getCellValue(d.original,c);if(a&&a.enum){const _=a.enum.findIndex(y=>y.value===f);return a.enum.findIndex(y=>y.value===S)-_<0?1:-1}else return(a==null?void 0:a.type)==="datetime"?N.sortingFns.datetime(o,d,c):(a==null?void 0:a.type)==="boolean"?(f===!0?1:0)-(S===!0?1:0):N.sortingFns.alphanumeric(o,d,c)},G=(o,d)=>`${o.linkType.charAt(0).toUpperCase()+o.linkType.slice(1)} (${d})`,D=(o,d)=>`${o.name.replaceAll("_","").replaceAll("-","").replaceAll("|","_")}_${d}`,K=(o,d)=>`link_${D(o,d)}`,ne=({attribs:o,links:d=[],showHierarchy:c,options:a,excluded:f,extraColumns:S,groupBy:_})=>{const h=[],y=e=>!(f!=null&&f.includes(e));y(F.ROW_SELECTION_COLUMN_ID)&&h.push({id:F.ROW_SELECTION_COLUMN_ID,enableResizing:!1,enableSorting:!1,enablePinning:!1,enableHiding:!1,header:()=>p.jsxRuntimeExports.jsx(w,{}),cell:({row:e})=>e.original.entityType==="group"?null:p.jsxRuntimeExports.jsx(Y.SelectionCell,{}),size:20}),y("thumbnail")&&h.push({id:"thumbnail",header:"Thumbnail",size:63,minSize:24,enableResizing:!0,enableSorting:!1,cell:({row:e,column:r,table:u})=>{const i=u.options.meta;if(!i)return null;const s=A.getCellId(e.id,r.id);return p.jsxRuntimeExports.jsx(U.ThumbnailWidget,{id:s,entityId:e.original.entityId||e.id,entityType:e.original.entityType,updatedAt:e.original.updatedAt,icon:e.original.icon,projectName:i==null?void 0:i.projectName,className:x("thumbnail",{loading:e.original.isLoading}),isPlayable:e.original.hasReviewables})}}),y("name")&&h.push({id:"name",accessorKey:"name",header:"Folder / Task",minSize:T,sortingFn:j(re),enableSorting:!_,enableResizing:!0,enablePinning:!0,enableHiding:!_,cell:({row:e,column:r,table:u})=>{var g,L;const{value:i,id:s,type:l}=E(e,r.id),n=u.options.meta,{isEditing:t}=Q.useCellEditing(),{rowHeight:b=40}=ie.useColumnSettingsContext(),q=A.getCellId(e.id,r.id);return e.original.entityType===R.NEXT_PAGE_ID&&e.original.group?p.jsxRuntimeExports.jsx(ee,{label:"Load more tasks",id:e.original.group.value,onLoadMore:C=>{var m;return(m=n==null?void 0:n.loadMoreTasks)==null?void 0:m.call(n,C)}}):p.jsxRuntimeExports.jsxs(M.TableCellContent,{id:q,className:x("large",e.original.entityType,{loading:e.original.isLoading,hierarchy:c}),style:{paddingLeft:`calc(${e.depth*1}rem + 8px)`},tabIndex:0,children:[e.original.group?p.jsxRuntimeExports.jsx(B.GroupHeaderWidget,{id:e.id,label:e.original.group.label,name:e.original.name,icon:e.original.group.icon,img:e.original.group.img,color:e.original.group.color,count:e.original.group.count,isExpanded:e.getIsExpanded(),isEmpty:e.subRows.length===0,toggleExpanded:e.getToggleExpandedHandler()}):p.jsxRuntimeExports.jsx($.EntityNameWidget,{id:e.id,label:e.original.label,name:e.original.name,path:c?void 0:"/"+((g=e.original.parents)==null?void 0:g.join("/")),showHierarchy:c,icon:e.original.icon,type:e.original.entityType,isExpanded:e.getIsExpanded(),toggleExpandAll:()=>{var C;return(C=n==null?void 0:n.toggleExpandAll)==null?void 0:C.call(n,[e.id])},toggleExpanded:e.getToggleExpandedHandler(),rowHeight:b}),t(q)&&p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:s,className:x("name",{loading:e.original.isLoading}),columnId:r.id,value:i,valueData:{name:e.original.name,label:e.original.label,meta:n,entityRowId:s,columnId:r.id,hasVersions:!!e.original.hasVersions},entityType:l,attributeData:{type:"name"},isCollapsed:!!e.original.childOnlyMatch,isReadOnly:(L=n==null?void 0:n.readOnly)==null?void 0:L.includes(r.id)})]})}}),y("status")&&h.push({id:"status",accessorKey:"status",minSize:T,header:"Status",sortingFn:j((e,r,u)=>z(e,r,u,{enum:a.status,type:"string"})),sortDescFirst:!0,enableSorting:!0,enableResizing:!0,enablePinning:!0,enableHiding:!0,cell:({row:e,column:r,table:u})=>{var t,b;const{value:i,id:s,type:l}=E(e,r.id),n=u.options.meta;return["group",R.NEXT_PAGE_ID].includes(l)?null:p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:s,className:x("status",{loading:e.original.isLoading}),columnId:r.id,value:i,attributeData:{type:"string"},options:(t=n==null?void 0:n.options)==null?void 0:t.status.filter(q=>{var g;return(g=q.scope)==null?void 0:g.includes(l)}),isCollapsed:!!e.original.childOnlyMatch,onChange:q=>{var g;return(g=n==null?void 0:n.updateEntities)==null?void 0:g.call(n,{field:r.id,value:q,type:l,rowId:s},{selection:n==null?void 0:n.selection})},isReadOnly:(b=n==null?void 0:n.readOnly)==null?void 0:b.includes(r.id),pt:{enum:{pt:{template:{pt:{icon:{style:{fontVariationSettings:"'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 20"}}}}}}}})}}),y("subType")&&h.push({id:"subType",accessorKey:"subType",header:"Type",minSize:T,enableSorting:!0,enableResizing:!0,enablePinning:!0,enableHiding:!0,sortingFn:j((e,r,u)=>z(e,r,u,{enum:[...a.folderType,...a.taskType],type:"string"})),cell:({row:e,column:r,table:u})=>{var b,q,g,L;const{value:i,id:s,type:l}=E(e,r.id);if(["group",R.NEXT_PAGE_ID].includes(l))return null;const n=l==="folder"?"folderType":"taskType",t=u.options.meta;return p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:s,className:x("subType",{loading:e.original.isLoading}),columnId:r.id,value:i,attributeData:{type:"string"},options:l==="folder"?(b=t==null?void 0:t.options)==null?void 0:b.folderType:l==="task"?(q=t==null?void 0:t.options)==null?void 0:q.taskType:[],isCollapsed:!!e.original.childOnlyMatch,onChange:C=>{var m;return(m=t==null?void 0:t.updateEntities)==null?void 0:m.call(t,{field:n,value:C,type:l,rowId:e.id},{selection:t==null?void 0:t.selection})},isReadOnly:((g=t==null?void 0:t.readOnly)==null?void 0:g.includes(r.id))||((L=t==null?void 0:t.readOnly)==null?void 0:L.includes(n))})}}),y("assignees")&&h.push({id:"assignees",accessorKey:"assignees",header:"Assignees",minSize:T,enableSorting:!0,enableResizing:!0,enablePinning:!0,enableHiding:!0,sortingFn:j(H),cell:({row:e,column:r,table:u})=>{var t,b;const i=u.options.meta,{value:s,id:l,type:n}=E(e,r.id);return["group",R.NEXT_PAGE_ID].includes(n)?null:n==="folder"?p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:l,className:x("assignees",{loading:e.original.isLoading}),columnId:r.id,value:"",isPlaceholder:!0}):p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:l,className:x("assignees",{loading:e.original.isLoading}),columnId:r.id,value:s,attributeData:{type:"list_of_strings"},options:(t=i==null?void 0:i.options)==null?void 0:t.assignee,isCollapsed:!!e.original.childOnlyMatch,onChange:q=>{var g;return(g=i==null?void 0:i.updateEntities)==null?void 0:g.call(i,{field:r.id,value:q,type:n,rowId:e.id},{selection:i==null?void 0:i.selection})},isReadOnly:(b=i==null?void 0:i.readOnly)==null?void 0:b.includes(r.id),pt:{enum:{multiSelectClose:(s==null?void 0:s.length)===0,search:!0,multipleOverride:!1}}})}}),y("tags")&&h.push({id:"tags",accessorKey:"tags",header:"Tags",minSize:T,enableSorting:!0,enableResizing:!0,enablePinning:!0,enableHiding:!0,sortingFn:j(H),cell:({row:e,column:r,table:u})=>{var t,b;const i=u.options.meta,{value:s,id:l,type:n}=E(e,r.id);return["group",R.NEXT_PAGE_ID].includes(n)?null:p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:l,className:x("tags",{loading:e.original.isLoading}),columnId:r.id,value:s,attributeData:{type:"list_of_strings"},options:(t=i==null?void 0:i.options)==null?void 0:t.tag,isCollapsed:!!e.original.childOnlyMatch,onChange:q=>{var g;return(g=i==null?void 0:i.updateEntities)==null?void 0:g.call(i,{field:r.id,value:q,type:n,rowId:e.id},{selection:i==null?void 0:i.selection})},isReadOnly:(b=i==null?void 0:i.readOnly)==null?void 0:b.includes(r.id),enableCustomValues:!0})}}),y("createdAt")&&h.push({id:"createdAt",accessorKey:"createdAt",header:"Created at",minSize:T,enableSorting:!0,enableResizing:!0,enablePinning:!0,enableHiding:!0,sortingFn:j(N.sortingFns.datetime),cell:({row:e,column:r})=>{const{value:u,id:i,type:s}=E(e,r.id);return["group",R.NEXT_PAGE_ID].includes(s)?null:p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:i,className:x("createdAt",{loading:e.original.isLoading}),columnId:r.id,value:u,attributeData:{type:"datetime"},isCollapsed:!!e.original.childOnlyMatch,isReadOnly:!0})}}),y("updatedAt")&&h.push({id:"updatedAt",accessorKey:"updatedAt",header:"Updated at",minSize:T,enableSorting:!0,enableResizing:!0,enablePinning:!0,enableHiding:!0,sortingFn:j(N.sortingFns.datetime),cell:({row:e,column:r})=>{const{value:u,id:i,type:s}=E(e,r.id);return["group",R.NEXT_PAGE_ID].includes(s)?null:p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:i,className:x("updatedAt",{loading:e.original.isLoading}),columnId:r.id,value:u,attributeData:{type:"datetime"},isCollapsed:!!e.original.childOnlyMatch,isReadOnly:!0})}});const V=o.filter(e=>{const r="attrib_"+e.name;return!(!y(r)||e.builtin&&!y("attrib"))}).map(e=>({id:"attrib_"+e.name,accessorKey:"attrib."+e.name,header:e.data.title||e.name,minSize:T,filterFn:"fuzzy",sortingFn:j((u,i,s)=>z(u,i,s,e.data)),enableSorting:!0,enableResizing:!0,enablePinning:!0,enableHiding:!0,cell:({row:u,column:i,table:s})=>{var C,m,P;const l=s.options.meta,n=i.id.replace("attrib_",""),{value:t,id:b,type:q}=E(u,n,"attrib"),g=!((C=u.original.ownAttrib)!=null&&C.includes(n));return["group",R.NEXT_PAGE_ID].includes(q)||!((m=e.scope)==null?void 0:m.includes(q))?null:p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:b,className:x("attrib",{loading:u.original.isLoading}),columnId:i.id,value:t,attributeData:{type:e.data.type||"string"},options:e.data.enum||[],isCollapsed:!!u.original.childOnlyMatch,isInherited:g&&["folder","task"].includes(q),isReadOnly:e.readOnly||((P=l==null?void 0:l.readOnly)==null?void 0:P.some(v=>v===n||v==="attrib"&&e.builtin)),onChange:v=>{var k,W;return(W=l==null?void 0:l.updateEntities)==null?void 0:W.call(l,{field:n,value:v,type:q,isAttrib:!0,rowId:u.id},{selection:(k=e.data.enum)!=null&&k.length?l==null?void 0:l.selection:void 0})}})}})),X=d.filter(e=>!(!y(e.linkType)||!y("link"))).flatMap(e=>{const r=u=>({id:K(e,u),accessorKey:`links.${D(e,u)}`,header:()=>p.jsxRuntimeExports.jsxs(M.LinkColumnHeader,{children:[G(e,u)," ",p.jsxRuntimeExports.jsx(Z.Icon,{icon:J.getEntityTypeIcon(u==="in"?e.inputType:e.outputType)})]}),minSize:T,enableSorting:!1,enableResizing:!0,enablePinning:!0,enableHiding:!0,cell:({row:i,column:s})=>{const l=s.id.replace("link_",""),{id:n,value:t}=E(i,l,"links"),b=t==null?void 0:t.map(g=>g.label),q={links:t,direction:u,entityId:i.original.entityId||i.original.id,entityType:i.original.entityType,link:{label:e.linkType,linkType:e.name,targetEntityType:u==="in"?e.inputType:e.outputType}};return p.jsxRuntimeExports.jsx(I.CellWidget,{rowId:n,className:x("links",{loading:i.original.isLoading}),columnId:s.id,value:b,valueData:q,folderId:i.original.folderId,attributeData:{type:"links"}})}});return[r("in"),r("out")]}),O=[...h,...V,...X];return S&&S.forEach(({column:e,position:r=-1})=>{r>=0&&r<O.length?O.splice(r,0,e):O.push(e)}),O},E=(o,d,c)=>{var a;return{value:c?(a=o.original[c])==null?void 0:a[d]:o.original[d],id:o.id,type:o.original.entityType}};exports.default=ne;exports.getLinkColumnId=K;exports.getLinkKey=D;exports.getLinkLabel=G;exports.getValueIdType=E;
|
|
2
2
|
//# sourceMappingURL=buildTreeTableColumns.cjs.js.map
|