@ynput/ayon-frontend-shared 0.2.39 → 0.2.41
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 +24 -22
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +256 -248
- package/dist/api.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +11 -9
- package/dist/index.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +16 -16
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
- package/dist/shared/src/api/queries/config/getConfig.cjs.js +2 -0
- package/dist/shared/src/api/queries/config/getConfig.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/config/getConfig.es.js +111 -0
- package/dist/shared/src/api/queries/config/getConfig.es.js.map +1 -0
- package/dist/shared/src/api/queries/config/updateConfig.cjs.js +2 -0
- package/dist/shared/src/api/queries/config/updateConfig.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/config/updateConfig.es.js +13 -0
- package/dist/shared/src/api/queries/config/updateConfig.es.js.map +1 -0
- 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 +5 -3
- package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.es.js +106 -86
- package/dist/shared/src/api/queries/links/getEntityLinks.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 +68 -66
- package/dist/shared/src/api/queries/overview/updateOverview.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 +34 -32
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.cjs.js +8 -7
- package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.cjs.js.map +1 -1
- package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.es.js +24 -20
- package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.es.js.map +1 -1
- package/dist/shared/src/components/Chips/Chips.cjs.js +10 -6
- package/dist/shared/src/components/Chips/Chips.cjs.js.map +1 -1
- package/dist/shared/src/components/Chips/Chips.es.js +44 -38
- package/dist/shared/src/components/Chips/Chips.es.js.map +1 -1
- 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/DetailsPanelDetails.cjs.js +1 -1
- 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/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 +4 -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 +4 -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 +28 -25
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js +5 -0
- package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js +5 -0
- package/dist/shared/src/components/LinksManager/LinksManager.styled.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 +4 -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 +4 -2
- 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 +4 -2
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- 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 +6 -4
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.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 +4 -2
- 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 +4 -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 +4 -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 +5 -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 +4 -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 +8 -6
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- 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 +4 -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 +4 -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 +4 -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 +4 -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 +4 -2
- 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 +4 -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 +5 -3
- 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 +4 -2
- 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 +4 -2
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.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 +4 -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 +4 -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 +4 -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 +4 -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/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 +4 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +4 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
- 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 +4 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.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 +4 -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 +7 -5
- package/dist/shared/src/containers/Feed/context/FeedContext.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 +4 -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 +4 -2
- 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 +4 -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 +4 -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 +4 -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 +6 -4
- 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 +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.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 +4 -2
- 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 +4 -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 +4 -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 +4 -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 +30 -28
- 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 +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.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 +4 -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 +4 -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 +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.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 +4 -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 +15 -13
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js +34 -21
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.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 +31 -28
- 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 +4 -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 +4 -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 +4 -2
- 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 +6 -4
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
- package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
- package/dist/shared/src/context/GlobalContext.es.js +6 -4
- package/dist/shared/src/context/GlobalContext.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 +8 -6
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.es.js +44 -38
- package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.es.js +6 -4
- package/dist/shared/src/context/ProjectFoldersContext.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/context/UriContext.cjs.js +1 -1
- package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
- package/dist/shared/src/context/UriContext.es.js +7 -5
- package/dist/shared/src/context/UriContext.es.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.es.js +6 -4
- package/dist/shared/src/context/WebsocketContext.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/useGetEntityGroups.cjs.js +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.es.js +4 -2
- package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +4 -2
- package/dist/shared/src/hooks/useGroupByRemoteModules.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/types/api/queries/config/getConfig.d.ts +747 -0
- package/dist/types/api/queries/config/index.d.ts +2 -0
- package/dist/types/api/queries/config/updateConfig.d.ts +171 -0
- package/dist/types/api/queries/index.d.ts +1 -0
- package/dist/types/api/queries/links/getEntityLinks.d.ts +2 -1
- package/dist/types/components/AddonLoadingScreen/AddonLoadingScreen.d.ts +7 -2
- package/dist/types/components/Chips/Chips.d.ts +1 -0
- package/dist/types/components/LinksManager/LinksManager.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildTreeTableColumns.cjs.js","sources":["../../../../../src/containers/ProjectTreeTable/buildTreeTableColumns.tsx"],"sourcesContent":["import { ColumnDef, FilterFnOption, Row, SortingFn, sortingFns } from '@tanstack/react-table'\nimport { TableRow } from './types/table'\nimport { AttributeData, ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport {\n CellWidget,\n MetaWidget,\n EntityNameWidget,\n GroupHeaderWidget,\n ThumbnailWidget,\n} from './widgets'\nimport { getCellId, getCellValue } from './utils/cellUtils'\nimport { LinkColumnHeader, TableCellContent } from './ProjectTreeTable.styled'\nimport clsx from 'clsx'\nimport { SelectionCell } from './components/SelectionCell'\nimport RowSelectionHeader from './components/RowSelectionHeader'\nimport { ROW_SELECTION_COLUMN_ID } from './context/SelectionCellsContext'\nimport { TableGroupBy, useCellEditing, useColumnSettingsContext } from './context'\nimport { NEXT_PAGE_ID } from './hooks/useBuildGroupByTableData'\nimport LoadMoreWidget from './widgets/LoadMoreWidget'\nimport { LinkTypeModel } from '@shared/api'\nimport { LinkWidgetData } from './widgets/LinksWidget'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { getEntityTypeIcon } from '@shared/util'\nimport { NameWidgetData } from '@shared/components/RenameForm'\nimport { isEntityRestricted } from './utils/restrictedEntity'\nimport { ColumnsConfig, getColumnDisplayConfig } from './types/columnConfig'\nimport { upperFirst } from 'lodash'\n\nexport const isEntityExpandable = (entityType: string) => ['folder', 'product'].includes(entityType)\n\nconst MIN_SIZE = 50\n\n// Wrapper function for sorting that pushes isLoading rows to the bottom\nconst withLoadingStateSort = (sortFn: SortingFn<any>): SortingFn<any> => {\n return (rowA, rowB, ...args) => {\n // If row loading states differ, prioritize non-loading rows\n if (rowA.original.isLoading !== rowB.original.isLoading) {\n return rowA.original.isLoading ? 1 : -1\n }\n // Otherwise, use the original sort function\n return sortFn(rowA, rowB, ...args)\n }\n}\n\nconst pathSort: SortingFn<any> = (rowA, rowB) => {\n const labelA = rowA.original.path || rowA.original.name || ''\n const labelB = rowB.original.path || rowB.original.name || ''\n // sort alphabetically by label\n return labelA.localeCompare(labelB)\n}\n\nconst valueLengthSort: SortingFn<any> = (rowA, rowB, columnId) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n const lengthA = Array.isArray(valueA) ? valueA.length : valueA ? String(valueA).length : 0\n const lengthB = Array.isArray(valueB) ? valueB.length : valueB ? String(valueB).length : 0\n return lengthA - lengthB\n}\n\ntype AttribSortingFn = (rowA: any, rowB: any, columnId: string, attribute?: AttributeData) => number\n// sort by the order of the enum options\nconst attribSort: AttribSortingFn = (rowA, rowB, columnId, attrib) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n // if attrib is defined and has enum options, use them\n if (attrib && attrib.enum) {\n const indexA = attrib.enum.findIndex((o) => o.value === valueA)\n const indexB = attrib.enum.findIndex((o) => o.value === valueB)\n return indexB - indexA < 0 ? 1 : -1\n } else if (attrib?.type === 'datetime') {\n return sortingFns.datetime(rowA, rowB, columnId)\n } else if (attrib?.type === 'boolean') {\n const boolA = valueA === true ? 1 : 0\n const boolB = valueB === true ? 1 : 0\n return boolA - boolB\n } else {\n return sortingFns.alphanumeric(rowA, rowB, columnId)\n }\n}\n\nexport const getLinkLabel = (\n link: Pick<LinkTypeModel, 'linkType'>,\n direction: 'in' | 'out' | string,\n) => `${link.linkType.charAt(0).toUpperCase() + link.linkType.slice(1)} (${direction})`\n\nexport const getLinkKey = (link: Pick<LinkTypeModel, 'name'>, direction: 'in' | 'out' | string) =>\n `${link.name.replaceAll('_', '').replaceAll('-', '').replaceAll('|', '_')}_${direction}`\n\nexport const getLinkColumnId = (\n link: Pick<LinkTypeModel, 'name'>,\n direction: 'in' | 'out' | string,\n) => `link_${getLinkKey(link, direction)}`\n\nexport type DefaultColumns =\n | typeof ROW_SELECTION_COLUMN_ID\n | 'thumbnail'\n | 'name'\n | 'entityType'\n | 'folder'\n | 'status'\n | 'subType'\n | 'assignees'\n | 'tags'\n | 'createdAt'\n | 'updatedAt'\n\nexport type TreeTableExtraColumn = { column: ColumnDef<TableRow>; position?: number }\n\nexport type BuildTreeTableColumnsProps = {\n scopes: string[]\n attribs: ProjectTableAttribute[]\n links: LinkTypeModel[]\n includeLinks?: boolean\n showHierarchy: boolean\n options: BuiltInFieldOptions\n excluded?: (DefaultColumns | string)[]\n excludedSorting?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n groupBy?: TableGroupBy\n nameLabel?: string\n}\n\nconst buildTreeTableColumns = ({\n scopes,\n attribs,\n links = [],\n includeLinks = true,\n showHierarchy,\n options,\n excluded,\n excludedSorting,\n extraColumns,\n groupBy,\n nameLabel = 'Entity',\n}: BuildTreeTableColumnsProps) => {\n const staticColumns: ColumnDef<TableRow>[] = []\n\n // Helper to check if a column should be included\n const isIncluded = (id: DefaultColumns | string) => !excluded?.includes(id)\n const canSort = (id: DefaultColumns | string) => !excludedSorting?.includes(id)\n\n // Conditionally add static columns\n if (isIncluded(ROW_SELECTION_COLUMN_ID)) {\n staticColumns.push({\n id: ROW_SELECTION_COLUMN_ID,\n enableResizing: false,\n enableSorting: false,\n enablePinning: false,\n enableHiding: false,\n\n header: () => <RowSelectionHeader />,\n cell: ({ row }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n return <SelectionCell />\n },\n size: 20,\n })\n }\n\n if (isIncluded('thumbnail')) {\n staticColumns.push({\n id: 'thumbnail',\n header: 'Thumbnail',\n size: 63,\n minSize: 24,\n enableResizing: true,\n enableSorting: false,\n cell: ({ row, column, table }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n const meta = table.options.meta\n if (!meta) return null\n const cellId = getCellId(row.id, column.id)\n let thumbnail = {\n entityId: row.original.entityId || row.id,\n entityType: row.original.entityType,\n updatedAt: row.original.updatedAt,\n }\n // check for thumbnail override\n if (row.original.thumbnail) {\n thumbnail = row.original.thumbnail\n }\n return (\n <ThumbnailWidget\n id={cellId}\n entityId={thumbnail.entityId}\n entityType={thumbnail.entityType}\n updatedAt={thumbnail.updatedAt}\n icon={row.original.icon}\n projectName={meta?.projectName as string}\n className={clsx('thumbnail', {\n loading: row.original.isLoading,\n })}\n isPlayable={row.original.hasReviewables}\n />\n )\n },\n })\n }\n\n if (isIncluded('name')) {\n staticColumns.push({\n id: 'name',\n accessorKey: 'name',\n header: nameLabel,\n minSize: MIN_SIZE,\n sortingFn: withLoadingStateSort(pathSort),\n enableSorting: groupBy ? false : canSort('name'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: groupBy ? false : true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n const { isEditing } = useCellEditing()\n const { rowHeight = 40 } = useColumnSettingsContext()\n const cellId = getCellId(row.id, column.id)\n\n if (row.original.metaType) {\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', 'readonly', row.original.entityType)}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + 8px)`,\n pointerEvents: 'none',\n }}\n tabIndex={0}\n >\n <MetaWidget metaType={row.original.metaType} label={row.original.label} />\n </TableCellContent>\n )\n }\n\n if (row.original.entityType === NEXT_PAGE_ID && row.original.group) {\n return (\n <LoadMoreWidget\n id={row.original.group.value}\n onLoadMore={(id) => meta?.loadMoreRows?.(id)}\n />\n )\n }\n\n const isExpandable =\n row.getCanExpand() &&\n !!row.originalSubRows &&\n (isEntityExpandable(row.original.entityType) || !!row.original.group)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', row.original.entityType, {\n loading: row.original.isLoading,\n hierarchy: showHierarchy,\n })}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + ${\n isExpandable || !row.getCanExpand() ? 0 : 32\n }px + 8px)`,\n }}\n tabIndex={0}\n >\n {row.original.group ? (\n <GroupHeaderWidget\n id={row.id}\n label={row.original.group.label}\n name={row.original.name}\n icon={row.original.group.icon}\n img={row.original.group.img}\n color={row.original.group.color}\n count={row.original.group.count}\n isExpanded={row.getIsExpanded()}\n isEmpty={row.subRows.length === 0 && !row.original.metaType}\n toggleExpanded={row.getToggleExpandedHandler()}\n />\n ) : (\n <EntityNameWidget\n id={row.id}\n label={row.original.label}\n name={row.original.name}\n path={!showHierarchy ? '/' + row.original.parents?.join('/') : undefined}\n icon={row.original.icon}\n type={row.original.entityType}\n isExpandable={isExpandable}\n isExpanded={row.getIsExpanded()}\n toggleExpandAll={() => meta?.toggleExpandAll?.([row.id])}\n toggleExpanded={row.getToggleExpandedHandler()}\n rowHeight={rowHeight}\n columnDisplayConfig={getColumnDisplayConfig(meta?.columnsConfig, 'name')}\n />\n )}\n {isEditing(cellId) && (\n <CellWidget\n rowId={id}\n className={clsx('name', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n valueData={\n {\n name: row.original.name,\n label: row.original.label,\n meta,\n entityRowId: id,\n columnId: column.id,\n hasVersions: !!row.original.hasVersions,\n } as NameWidgetData\n }\n entityType={type}\n attributeData={{ type: 'name' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={meta?.readOnly?.includes(column.id)}\n />\n )}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('status')) {\n staticColumns.push({\n id: 'status',\n accessorKey: 'status',\n minSize: MIN_SIZE,\n header: 'Status',\n sortingFn: withLoadingStateSort((a, b, c) =>\n attribSort(a, b, c, { enum: options.status, type: 'string' }),\n ),\n sortDescFirst: true,\n enableSorting: canSort('status'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('status', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={meta?.options?.status.filter((s) => s.scope?.includes(type))}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n pt: {\n template: {\n pt: {\n icon: {\n style: {\n fontVariationSettings: \"'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 20\",\n },\n },\n },\n },\n },\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('entityType')) {\n staticColumns.push({\n id: 'entityType',\n accessorKey: 'entityType',\n header: 'Entity Type',\n minSize: 20,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.alphanumeric),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const cellId = getCellId(row.id, column.id)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('entityType', type, { loading: row.original.isLoading })}\n tabIndex={0}\n >\n <Icon icon={getEntityTypeIcon(type)} /> {upperFirst(value)}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('subType')) {\n staticColumns.push({\n id: 'subType',\n accessorKey: 'subType',\n header: scopes.includes('product') || scopes.includes('version') ? 'Product type' : 'Type',\n minSize: MIN_SIZE,\n enableSorting: canSort('subType'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort((a, b, c) =>\n attribSort(a, b, c, { enum: [...options.folderType, ...options.taskType], type: 'string' }),\n ),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const fieldId = type === 'folder' ? 'folderType' : 'taskType'\n const meta = table.options.meta\n const folderHasVersions = type === 'folder' && row.original.hasVersions\n return (\n <CellWidget\n rowId={id}\n className={clsx('subType', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={\n type === 'folder'\n ? meta?.options?.folderType\n : type === 'task'\n ? meta?.options?.taskType\n : []\n }\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: fieldId, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={\n meta?.readOnly?.includes(column.id) ||\n meta?.readOnly?.includes(fieldId) ||\n folderHasVersions\n }\n tooltip={\n folderHasVersions\n ? 'Folder type cannot be edited when versions exist within the folder'\n : undefined\n }\n />\n )\n },\n })\n }\n\n if (isIncluded('assignees')) {\n staticColumns.push({\n id: 'assignees',\n accessorKey: 'assignees',\n header: 'Assignees',\n minSize: MIN_SIZE,\n enableSorting: canSort('assignees'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(valueLengthSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n if (type === 'folder')\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value=\"\"\n isPlaceholder\n />\n )\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n multiSelectClose: value?.length === 0, // close the dropdown on first assignment\n search: true, // enable search at all times\n multipleOverride: false,\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('folder')) {\n staticColumns.push({\n id: 'folder',\n accessorKey: 'folder',\n header: 'Folder name',\n minSize: MIN_SIZE,\n enableSorting: canSort('folderName'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('folder', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // only show authors column for products\n if (isIncluded('author') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'author',\n accessorKey: 'author',\n header: 'Author',\n minSize: MIN_SIZE,\n enableSorting: canSort('author'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('author', { loading: row.original.isLoading })}\n columnId={column.id}\n value={[value]}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isReadOnly={true}\n isInherited={type === 'product'} // products do not have authors, we just show the featured version's author\n />\n )\n },\n })\n }\n\n // version column for versions\n if (isIncluded('version') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'version',\n accessorKey: 'version',\n header: 'Version',\n minSize: MIN_SIZE,\n enableSorting: canSort('version'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n let versionValue = row.original.versionName || value\n if (row.original.entityType === 'product') {\n // show summary of versions for products\n versionValue = `${row.original.versionName} (${row.original.versionsCount || 0} versions)`\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('version', { loading: row.original.isLoading })}\n columnId={column.id}\n value={versionValue}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // product name column for versions and products\n if (isIncluded('product') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'product',\n accessorKey: 'product',\n header: 'Product name',\n minSize: MIN_SIZE,\n enableSorting: canSort('product'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('product', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n if (isIncluded('tags')) {\n staticColumns.push({\n id: 'tags',\n accessorKey: 'tags',\n header: 'Tags',\n minSize: MIN_SIZE,\n enableSorting: canSort('tags'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(valueLengthSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('tags', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.tag}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n enableCustomValues\n />\n )\n },\n })\n }\n\n if (isIncluded('createdAt')) {\n staticColumns.push({\n id: 'createdAt',\n accessorKey: 'createdAt',\n header: 'Created at',\n minSize: MIN_SIZE,\n enableSorting: canSort('createdAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.datetime),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('createdAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n if (isIncluded('updatedAt')) {\n staticColumns.push({\n id: 'updatedAt',\n accessorKey: 'updatedAt',\n header: 'Updated at',\n minSize: MIN_SIZE,\n enableSorting: canSort('updatedAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.datetime),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('updatedAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n const attributeColumns: ColumnDef<TableRow>[] = attribs\n .filter((attrib) => {\n // filter out attributes that are out of scope\n if (attrib.scope && !attrib.scope.some((s) => scopes.includes(s))) return false\n\n const columnId = 'attrib_' + attrib.name\n // Check if the specific attribute column is excluded\n // or if all built-in attributes are excluded and this is a built-in attribute\n if (!isIncluded(columnId)) return false\n if (attrib.builtin && !isIncluded('attrib')) return false\n return true\n })\n .map((attrib) => {\n const attribColumn: ColumnDef<TableRow> = {\n id: 'attrib_' + attrib.name,\n accessorKey: 'attrib.' + attrib.name,\n header: attrib.data.title || attrib.name,\n minSize: MIN_SIZE,\n filterFn: 'fuzzy' as FilterFnOption<TableRow>,\n sortingFn: withLoadingStateSort((a, b, c) => attribSort(a, b, c, attrib.data)),\n enableSorting: canSort(attrib.name) && canSort('attrib'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const columnIdParsed = column.id.replace('attrib_', '')\n const { value, id, type } = getValueIdType(row, columnIdParsed, 'attrib')\n const isInherited = !row.original.ownAttrib?.includes(columnIdParsed)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const outOfScopeAndNoValue =\n !attrib.scope?.includes(type as (typeof attrib.scope)[number]) &&\n (value === null || value === undefined)\n\n // if the attribute is not in scope, we should nothing\n if (outOfScopeAndNoValue) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('attrib', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: attrib.data.type || 'string' }}\n options={attrib.data.enum || []}\n isCollapsed={!!row.original.childOnlyMatch}\n isInherited={isInherited}\n isReadOnly={\n // check attrib is not read only\n attrib.readOnly ||\n // check if there is any other reason the cell should be read only\n meta?.readOnly?.some(\n (id) => id === columnIdParsed || (id === 'attrib' && attrib.builtin),\n )\n }\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: columnIdParsed, value, type, isAttrib: true, rowId: row.id },\n { selection: !!attrib.data.enum?.length ? meta?.selection : undefined },\n )\n }\n />\n )\n },\n }\n return attribColumn\n })\n\n const linkColumns: ColumnDef<TableRow>[] = !includeLinks\n ? []\n : links\n .filter((link) => {\n // Check if the link type is excluded\n if (!isIncluded(link.linkType) || !isIncluded('link')) return false\n // Check if inputType and outputType are in scopes\n if (!scopes.includes(link.inputType) && !scopes.includes(link.outputType)) return false\n return true\n })\n .flatMap((link) => {\n const createLinkColumn = (direction: 'in' | 'out'): ColumnDef<TableRow> => {\n return {\n id: getLinkColumnId(link, direction),\n accessorKey: `links.${getLinkKey(link, direction)}`,\n header: () => (\n <LinkColumnHeader>\n {getLinkLabel(link, direction)}{' '}\n <Icon\n icon={getEntityTypeIcon(direction === 'in' ? link.inputType : link.outputType)}\n />\n </LinkColumnHeader>\n ),\n minSize: MIN_SIZE,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column }) => {\n const columnIdParsed = column.id.replace('link_', '')\n\n const { id, value } = getValueIdType(row, columnIdParsed, 'links')\n const cellValue = value?.map((v: any) => v.label)\n const valueData: LinkWidgetData = {\n links: value,\n direction: direction,\n entityId: row.original.entityId || row.original.id,\n entityType: row.original.entityType,\n link: {\n label: link.linkType,\n linkType: link.name,\n targetEntityType: direction === 'in' ? link.inputType : link.outputType,\n },\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('links', { loading: row.original.isLoading })}\n columnId={column.id}\n value={cellValue}\n valueData={valueData}\n folderId={row.original.folderId}\n attributeData={{ type: 'links' }}\n />\n )\n },\n }\n }\n\n return [createLinkColumn('in'), createLinkColumn('out')]\n })\n\n const allColumns = [...staticColumns, ...attributeColumns, ...linkColumns]\n\n // Add extra columns if provided\n if (extraColumns) {\n extraColumns.forEach(({ column, position = -1 }) => {\n if (position >= 0 && position < allColumns.length) {\n allColumns.splice(position, 0, column)\n } else {\n allColumns.push(column)\n }\n })\n }\n\n return allColumns\n}\n\nexport default buildTreeTableColumns\n\nexport const getValueIdType = (\n row: Row<TableRow>,\n field: string,\n nestedField?: keyof TableRow,\n): {\n value: any\n id: string\n type: string\n} => ({\n value: nestedField\n ? (row.original[nestedField as keyof TableRow] as any)?.[field]\n : (row.original[field as keyof TableRow] as any),\n id: row.id,\n type: row.original.entityType,\n})\n"],"names":["isEntityExpandable","entityType","MIN_SIZE","withLoadingStateSort","sortFn","rowA","rowB","args","pathSort","labelA","labelB","valueLengthSort","columnId","valueA","getCellValue","valueB","lengthA","lengthB","attribSort","attrib","indexA","o","sortingFns","getLinkLabel","link","direction","getLinkKey","getLinkColumnId","buildTreeTableColumns","scopes","attribs","links","includeLinks","showHierarchy","options","excluded","excludedSorting","extraColumns","groupBy","nameLabel","staticColumns","isIncluded","id","canSort","ROW_SELECTION_COLUMN_ID","jsx","RowSelectionHeader","row","SelectionCell","column","table","meta","cellId","getCellId","thumbnail","ThumbnailWidget","clsx","value","type","getValueIdType","isEditing","useCellEditing","rowHeight","useColumnSettingsContext","TableCellContent","MetaWidget","NEXT_PAGE_ID","LoadMoreWidget","_a","isExpandable","jsxs","GroupHeaderWidget","EntityNameWidget","getColumnDisplayConfig","CellWidget","_b","a","b","c","s","isEntityRestricted","Icon","getEntityTypeIcon","upperFirst","fieldId","folderHasVersions","_c","_d","versionValue","attributeColumns","columnIdParsed","isInherited","linkColumns","createLinkColumn","LinkColumnHeader","cellValue","v","valueData","allColumns","position","field","nestedField"],"mappings":"09aA4BaA,EAAsBC,GAAuB,CAAC,SAAU,SAAS,EAAE,SAASA,CAAU,EAE7FC,EAAW,GAGXC,EAAwBC,GACrB,CAACC,EAAMC,KAASC,IAEjBF,EAAK,SAAS,YAAcC,EAAK,SAAS,UACrCD,EAAK,SAAS,UAAY,EAAI,GAGhCD,EAAOC,EAAMC,EAAM,GAAGC,CAAI,EAI/BC,EAA2B,CAACH,EAAMC,IAAS,CAC/C,MAAMG,EAASJ,EAAK,SAAS,MAAQA,EAAK,SAAS,MAAQ,GACrDK,EAASJ,EAAK,SAAS,MAAQA,EAAK,SAAS,MAAQ,GAEpD,OAAAG,EAAO,cAAcC,CAAM,CACpC,EAEMC,EAAkC,CAACN,EAAMC,EAAMM,IAAa,CAChE,MAAMC,EAASC,EAAA,aAAaT,EAAK,SAAUO,CAAQ,EAC7CG,EAASD,EAAA,aAAaR,EAAK,SAAUM,CAAQ,EAC7CI,EAAU,MAAM,QAAQH,CAAM,EAAIA,EAAO,OAASA,EAAS,OAAOA,CAAM,EAAE,OAAS,EACnFI,EAAU,MAAM,QAAQF,CAAM,EAAIA,EAAO,OAASA,EAAS,OAAOA,CAAM,EAAE,OAAS,EACzF,OAAOC,EAAUC,CACnB,EAIMC,EAA8B,CAACb,EAAMC,EAAMM,EAAUO,IAAW,CACpE,MAAMN,EAASC,EAAA,aAAaT,EAAK,SAAUO,CAAQ,EAC7CG,EAASD,EAAA,aAAaR,EAAK,SAAUM,CAAQ,EAE/C,GAAAO,GAAUA,EAAO,KAAM,CACnB,MAAAC,EAASD,EAAO,KAAK,UAAWE,GAAMA,EAAE,QAAUR,CAAM,EAEvD,OADQM,EAAO,KAAK,UAAWE,GAAMA,EAAE,QAAUN,CAAM,EAC9CK,EAAS,EAAI,EAAI,EAAA,KACnC,QAAWD,GAAA,YAAAA,EAAQ,QAAS,WACnBG,EAAW,WAAA,SAASjB,EAAMC,EAAMM,CAAQ,GACtCO,GAAA,YAAAA,EAAQ,QAAS,WACZN,IAAW,GAAO,EAAI,IACtBE,IAAW,GAAO,EAAI,GAG7BO,EAAW,WAAA,aAAajB,EAAMC,EAAMM,CAAQ,CAEvD,EAEaW,EAAe,CAC1BC,EACAC,IACG,GAAGD,EAAK,SAAS,OAAO,CAAC,EAAE,cAAgBA,EAAK,SAAS,MAAM,CAAC,CAAC,KAAKC,CAAS,IAEvEC,EAAa,CAACF,EAAmCC,IAC5D,GAAGD,EAAK,KAAK,WAAW,IAAK,EAAE,EAAE,WAAW,IAAK,EAAE,EAAE,WAAW,IAAK,GAAG,CAAC,IAAIC,CAAS,GAE3EE,EAAkB,CAC7BH,EACAC,IACG,QAAQC,EAAWF,EAAMC,CAAS,CAAC,GA+BlCG,GAAwB,CAAC,CAC7B,OAAAC,EACA,QAAAC,EACA,MAAAC,EAAQ,CAAC,EACT,aAAAC,EAAe,GACf,cAAAC,EACA,QAAAC,EACA,SAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,QAAAC,EACA,UAAAC,EAAY,QACd,IAAkC,CAChC,MAAMC,EAAuC,CAAC,EAGxCC,EAAcC,GAAgC,EAACP,GAAA,MAAAA,EAAU,SAASO,IAClEC,EAAWD,GAAgC,EAACN,GAAA,MAAAA,EAAiB,SAASM,IAGxED,EAAWG,EAAAA,uBAAuB,GACpCJ,EAAc,KAAK,CACjB,GAAII,EAAA,wBACJ,eAAgB,GAChB,cAAe,GACf,cAAe,GACf,aAAc,GAEd,OAAQ,IAAMC,EAAAA,kBAAAA,IAACC,GAAmB,EAAA,EAClC,KAAM,CAAC,CAAE,IAAAC,KACHA,EAAI,SAAS,aAAe,SAAWA,EAAI,SAAS,SAAiB,6BACjEC,GAAc,cAAA,EAAA,EAExB,KAAM,EAAA,CACP,EAGCP,EAAW,WAAW,GACxBD,EAAc,KAAK,CACjB,GAAI,YACJ,OAAQ,YACR,KAAM,GACN,QAAS,GACT,eAAgB,GAChB,cAAe,GACf,KAAM,CAAC,CAAE,IAAAO,EAAK,OAAAE,EAAQ,MAAAC,KAAY,CAChC,GAAIH,EAAI,SAAS,aAAe,SAAWA,EAAI,SAAS,SAAiB,OAAA,KACnE,MAAAI,EAAOD,EAAM,QAAQ,KACvB,GAAA,CAACC,EAAa,OAAA,KAClB,MAAMC,EAASC,EAAAA,UAAUN,EAAI,GAAIE,EAAO,EAAE,EAC1C,IAAIK,EAAY,CACd,SAAUP,EAAI,SAAS,UAAYA,EAAI,GACvC,WAAYA,EAAI,SAAS,WACzB,UAAWA,EAAI,SAAS,SAC1B,EAEI,OAAAA,EAAI,SAAS,YACfO,EAAYP,EAAI,SAAS,WAGzBF,EAAA,kBAAA,IAACU,GAAA,gBAAA,CACC,GAAIH,EACJ,SAAUE,EAAU,SACpB,WAAYA,EAAU,WACtB,UAAWA,EAAU,UACrB,KAAMP,EAAI,SAAS,KACnB,YAAaI,GAAA,YAAAA,EAAM,YACnB,UAAWK,EAAK,YAAa,CAC3B,QAAST,EAAI,SAAS,SAAA,CACvB,EACD,WAAYA,EAAI,SAAS,cAAA,CAC3B,CAAA,CAEJ,CACD,EAGCN,EAAW,MAAM,GACnBD,EAAc,KAAK,CACjB,GAAI,OACJ,YAAa,OACb,OAAQD,EACR,QAASrC,EACT,UAAWC,EAAqBK,CAAQ,EACxC,cAAe8B,EAAU,GAAQK,EAAQ,MAAM,EAC/C,eAAgB,GAChB,cAAe,GACf,aAAc,CAAAL,EACd,KAAM,CAAC,CAAE,IAAAS,EAAK,OAAAE,EAAQ,MAAAC,KAAY,SAC1B,KAAA,CAAE,MAAAO,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACnDE,EAAOD,EAAM,QAAQ,KACrB,CAAE,UAAAU,CAAU,EAAIC,kBAAe,EAC/B,CAAE,UAAAC,EAAY,EAAG,EAAIC,4BAAyB,EAC9CX,EAASC,EAAAA,UAAUN,EAAI,GAAIE,EAAO,EAAE,EAEtC,GAAAF,EAAI,SAAS,SAEb,OAAAF,EAAA,kBAAA,IAACmB,EAAA,iBAAA,CACC,GAAIZ,EACJ,UAAWI,EAAK,QAAS,WAAYT,EAAI,SAAS,UAAU,EAC5D,MAAO,CACL,YAAa,QAAQA,EAAI,MAAQ,CAAC,aAClC,cAAe,MACjB,EACA,SAAU,EAEV,SAAAF,EAAA,kBAAA,IAACoB,eAAW,SAAUlB,EAAI,SAAS,SAAU,MAAOA,EAAI,SAAS,KAAO,CAAA,CAAA,CAC1E,EAIJ,GAAIA,EAAI,SAAS,aAAemB,EAAgB,cAAAnB,EAAI,SAAS,MAEzD,OAAAF,EAAA,kBAAA,IAACsB,GAAA,CACC,GAAIpB,EAAI,SAAS,MAAM,MACvB,WAAaL,UAAO,OAAA0B,EAAAjB,GAAA,YAAAA,EAAM,eAAN,YAAAiB,EAAA,KAAAjB,EAAqBT,GAAE,CAC7C,EAIJ,MAAM2B,EACJtB,EAAI,aACJ,GAAA,CAAC,CAACA,EAAI,kBACL/C,EAAmB+C,EAAI,SAAS,UAAU,GAAK,CAAC,CAACA,EAAI,SAAS,OAG/D,OAAAuB,EAAA,kBAAA,KAACN,EAAA,iBAAA,CACC,GAAIZ,EACJ,UAAWI,EAAK,QAAST,EAAI,SAAS,WAAY,CAChD,QAASA,EAAI,SAAS,UACtB,UAAWd,CAAA,CACZ,EACD,MAAO,CACL,YAAa,QAAQc,EAAI,MAAQ,CAAC,SAChCsB,GAAgB,CAACtB,EAAI,aAAiB,EAAA,EAAI,EAC5C,WACF,EACA,SAAU,EAET,SAAA,CAAAA,EAAI,SAAS,MACZF,EAAA,kBAAA,IAAC0B,GAAA,kBAAA,CACC,GAAIxB,EAAI,GACR,MAAOA,EAAI,SAAS,MAAM,MAC1B,KAAMA,EAAI,SAAS,KACnB,KAAMA,EAAI,SAAS,MAAM,KACzB,IAAKA,EAAI,SAAS,MAAM,IACxB,MAAOA,EAAI,SAAS,MAAM,MAC1B,MAAOA,EAAI,SAAS,MAAM,MAC1B,WAAYA,EAAI,cAAc,EAC9B,QAASA,EAAI,QAAQ,SAAW,GAAK,CAACA,EAAI,SAAS,SACnD,eAAgBA,EAAI,yBAAyB,CAAA,CAAA,EAG/CF,EAAA,kBAAA,IAAC2B,GAAA,iBAAA,CACC,GAAIzB,EAAI,GACR,MAAOA,EAAI,SAAS,MACpB,KAAMA,EAAI,SAAS,KACnB,KAAOd,EAAwD,OAAxC,MAAMmC,EAAArB,EAAI,SAAS,UAAb,YAAAqB,EAAsB,KAAK,MACxD,KAAMrB,EAAI,SAAS,KACnB,KAAMA,EAAI,SAAS,WACnB,aAAAsB,EACA,WAAYtB,EAAI,cAAc,EAC9B,gBAAiB,IAAM,OAAA,OAAAqB,EAAAjB,GAAA,YAAAA,EAAM,kBAAN,YAAAiB,EAAA,KAAAjB,EAAwB,CAACJ,EAAI,EAAE,IACtD,eAAgBA,EAAI,yBAAyB,EAC7C,UAAAe,EACA,oBAAqBW,GAAA,uBAAuBtB,GAAA,YAAAA,EAAM,cAAe,MAAM,CAAA,CACzE,EAEDS,EAAUR,CAAM,GACfP,EAAA,kBAAA,IAAC6B,EAAA,WAAA,CACC,MAAOhC,EACP,UAAWc,EAAK,OAAQ,CAAE,QAAST,EAAI,SAAS,UAAW,EAC3D,SAAUE,EAAO,GACjB,MAAAQ,EACA,UACE,CACE,KAAMV,EAAI,SAAS,KACnB,MAAOA,EAAI,SAAS,MACpB,KAAAI,EACA,YAAaT,EACb,SAAUO,EAAO,GACjB,YAAa,CAAC,CAACF,EAAI,SAAS,WAC9B,EAEF,WAAYW,EACZ,cAAe,CAAE,KAAM,MAAO,EAC9B,YAAa,CAAC,CAACX,EAAI,SAAS,eAC5B,YAAY4B,EAAAxB,GAAA,YAAAA,EAAM,WAAN,YAAAwB,EAAgB,SAAS1B,EAAO,GAAE,CAAA,CAChD,CAAA,CAEJ,CAAA,CAEJ,CACD,EAGCR,EAAW,QAAQ,GACrBD,EAAc,KAAK,CACjB,GAAI,SACJ,YAAa,SACb,QAAStC,EACT,OAAQ,SACR,UAAWC,EAAqB,CAACyE,EAAGC,EAAGC,IACrC5D,EAAW0D,EAAGC,EAAGC,EAAG,CAAE,KAAM5C,EAAQ,OAAQ,KAAM,QAAU,CAAA,CAC9D,EACA,cAAe,GACf,cAAeS,EAAQ,QAAQ,EAC/B,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,KAAM,CAAC,CAAE,IAAAI,EAAK,OAAAE,EAAQ,MAAAC,KAAY,SAC1B,KAAA,CAAE,MAAAO,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACnDE,EAAOD,EAAM,QAAQ,KACvB,MAAA,CAAC,QAASgB,EAAY,YAAA,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,KAG1EF,EAAA,kBAAA,IAAC6B,EAAA,WAAA,CACC,MAAOhC,EACP,UAAWc,EAAK,SAAU,CAAE,QAAST,EAAI,SAAS,UAAW,EAC7D,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAM,QAAS,EAChC,SAASW,EAAAjB,GAAA,YAAAA,EAAM,UAAN,YAAAiB,EAAe,OAAO,OAAQW,GAAA,OAAM,OAAAX,EAAAW,EAAE,QAAF,YAAAX,EAAS,SAASV,KAC/D,YAAa,CAAC,CAACX,EAAI,SAAS,eAC5B,SAAWU,GACT,OAAA,OAAAW,EAAAjB,GAAA,YAAAA,EAAM,iBAAN,YAAAiB,EAAA,KAAAjB,EACE,CAAE,MAAOF,EAAO,GAAI,MAAAQ,EAAO,KAAAC,EAAM,MAAOhB,CAAG,EAC3C,CAAE,UAAWS,GAAA,YAAAA,EAAM,SAAU,IAGjC,aAAYwB,EAAAxB,GAAA,YAAAA,EAAM,WAAN,YAAAwB,EAAgB,SAAS1B,EAAO,MAAO+B,qBAAmBtB,CAAI,EAC1E,GAAI,CACF,KAAM,CACJ,GAAI,CACF,SAAU,CACR,GAAI,CACF,KAAM,CACJ,MAAO,CACL,sBAAuB,6CAAA,CACzB,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CAAA,CAEJ,CACD,EAGCjB,EAAW,YAAY,GACzBD,EAAc,KAAK,CACjB,GAAI,aACJ,YAAa,aACb,OAAQ,cACR,QAAS,GACT,cAAe,GACf,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWrC,EAAqBmB,EAAA,WAAW,YAAY,EACvD,KAAM,CAAC,CAAE,IAAAyB,EAAK,OAAAE,EAAQ,MAAAC,KAAY,CAC1B,KAAA,CAAE,MAAAO,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACrD,GAAA,CAAC,QAASiB,EAAY,YAAA,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,OAAA,KAC5E,MAAMK,EAASC,EAAAA,UAAUN,EAAI,GAAIE,EAAO,EAAE,EAGxC,OAAAqB,EAAA,kBAAA,KAACN,EAAA,iBAAA,CACC,GAAIZ,EACJ,UAAWI,EAAK,aAAcE,EAAM,CAAE,QAASX,EAAI,SAAS,UAAW,EACvE,SAAU,EAEV,SAAA,CAAAF,EAAA,kBAAA,IAACoC,EAAK,KAAA,CAAA,KAAMC,EAAAA,kBAAkBxB,CAAI,CAAG,CAAA,EAAE,IAAEyB,GAAAA,WAAW1B,CAAK,CAAA,CAAA,CAC3D,CAAA,CAEJ,CACD,EAGChB,EAAW,SAAS,GACtBD,EAAc,KAAK,CACjB,GAAI,UACJ,YAAa,UACb,OAAQX,EAAO,SAAS,SAAS,GAAKA,EAAO,SAAS,SAAS,EAAI,eAAiB,OACpF,QAAS3B,EACT,cAAeyC,EAAQ,SAAS,EAChC,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWxC,EAAqB,CAACyE,EAAGC,EAAGC,IACrC5D,EAAW0D,EAAGC,EAAGC,EAAG,CAAE,KAAM,CAAC,GAAG5C,EAAQ,WAAY,GAAGA,EAAQ,QAAQ,EAAG,KAAM,QAAU,CAAA,CAC5F,EACA,KAAM,CAAC,CAAE,IAAAa,EAAK,OAAAE,EAAQ,MAAAC,KAAY,aAC1B,KAAA,CAAE,MAAAO,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACrD,GAAA,CAAC,QAASiB,EAAY,YAAA,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,OAAA,KACtE,MAAAqC,EAAU1B,IAAS,SAAW,aAAe,WAC7CP,EAAOD,EAAM,QAAQ,KACrBmC,EAAoB3B,IAAS,UAAYX,EAAI,SAAS,YAE1D,OAAAF,EAAA,kBAAA,IAAC6B,EAAA,WAAA,CACC,MAAOhC,EACP,UAAWc,EAAK,UAAW,CAAE,QAAST,EAAI,SAAS,UAAW,EAC9D,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAM,QAAS,EAChC,QACEC,IAAS,UACLU,EAAAjB,GAAA,YAAAA,EAAM,UAAN,YAAAiB,EAAe,WACfV,IAAS,QACTiB,EAAAxB,GAAA,YAAAA,EAAM,UAAN,YAAAwB,EAAe,SACf,CAAC,EAEP,YAAa,CAAC,CAAC5B,EAAI,SAAS,eAC5B,SAAWU,GACT,OAAA,OAAAW,EAAAjB,GAAA,YAAAA,EAAM,iBAAN,YAAAiB,EAAA,KAAAjB,EACE,CAAE,MAAOiC,EAAS,MAAA3B,EAAO,KAAAC,EAAM,MAAOX,EAAI,EAAG,EAC7C,CAAE,UAAWI,GAAA,YAAAA,EAAM,SAAU,IAGjC,aACEmC,EAAAnC,GAAA,YAAAA,EAAM,WAAN,YAAAmC,EAAgB,SAASrC,EAAO,QAChCsC,EAAApC,GAAA,YAAAA,EAAM,WAAN,YAAAoC,EAAgB,SAASH,KACzBC,EAEF,QACEA,EACI,qEACA,MAAA,CAER,CAAA,CAEJ,CACD,EAGC5C,EAAW,WAAW,GACxBD,EAAc,KAAK,CACjB,GAAI,YACJ,YAAa,YACb,OAAQ,YACR,QAAStC,EACT,cAAeyC,EAAQ,WAAW,EAClC,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWxC,EAAqBQ,CAAe,EAC/C,KAAM,CAAC,CAAE,IAAAoC,EAAK,OAAAE,EAAQ,MAAAC,KAAY,SAC1B,MAAAC,EAAOD,EAAM,QAAQ,KACrB,CAAE,MAAAO,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACrD,MAAA,CAAC,QAASiB,EAAY,YAAA,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,KAExEW,IAAS,SAETb,EAAA,kBAAA,IAAC6B,EAAA,WAAA,CACC,MAAOhC,EACP,UAAWc,EAAK,YAAa,CAAE,QAAST,EAAI,SAAS,UAAW,EAChE,SAAUE,EAAO,GACjB,MAAM,GACN,cAAa,EAAA,CACf,EAGFJ,EAAA,kBAAA,IAAC6B,EAAA,WAAA,CACC,MAAOhC,EACP,UAAWc,EAAK,YAAa,CAAE,QAAST,EAAI,SAAS,UAAW,EAChE,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAM,iBAAkB,EACzC,SAASW,EAAAjB,GAAA,YAAAA,EAAM,UAAN,YAAAiB,EAAe,SACxB,YAAa,CAAC,CAACrB,EAAI,SAAS,eAC5B,SAAWU,GACT,OAAA,OAAAW,EAAAjB,GAAA,YAAAA,EAAM,iBAAN,YAAAiB,EAAA,KAAAjB,EACE,CAAE,MAAOF,EAAO,GAAI,MAAAQ,EAAO,KAAAC,EAAM,MAAOX,EAAI,EAAG,EAC/C,CAAE,UAAWI,GAAA,YAAAA,EAAM,SAAU,IAGjC,aAAYwB,EAAAxB,GAAA,YAAAA,EAAM,WAAN,YAAAwB,EAAgB,SAAS1B,EAAO,MAAO+B,qBAAmBtB,CAAI,EAC1E,GAAI,CACF,KAAM,CACJ,kBAAkBD,GAAA,YAAAA,EAAO,UAAW,EACpC,OAAQ,GACR,iBAAkB,EAAA,CACpB,CACF,CACF,CAAA,CAEJ,CACD,EAGChB,EAAW,QAAQ,GACrBD,EAAc,KAAK,CACjB,GAAI,SACJ,YAAa,SACb,OAAQ,cACR,QAAStC,EACT,cAAeyC,EAAQ,YAAY,EACnC,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,KAAM,CAAC,CAAE,IAAAI,EAAK,OAAAE,EAAQ,MAAAC,KAAY,CAC1B,KAAA,CAAE,MAAAO,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACrD,MAAA,CAAC,QAASiB,EAAY,YAAA,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,KAG1EF,EAAA,kBAAA,IAAC6B,EAAA,WAAA,CACC,MAAOhC,EACP,UAAWc,EAAK,SAAU,CAAE,QAAST,EAAI,SAAS,UAAW,EAC7D,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAM,QAAS,EAChC,WAAY,EAAA,CACd,CAAA,CAEJ,CACD,EAIChB,EAAW,QAAQ,GAAK,CAAC,UAAW,SAAS,EAAE,KAAMsC,GAAMlD,EAAO,SAASkD,CAAC,CAAC,GAC/EvC,EAAc,KAAK,CACjB,GAAI,SACJ,YAAa,SACb,OAAQ,SACR,QAAStC,EACT,cAAeyC,EAAQ,QAAQ,EAC/B,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWxC,EAAqBK,CAAQ,EACxC,KAAM,CAAC,CAAE,IAAAuC,EAAK,OAAAE,EAAQ,MAAAC,KAAY,OAC1B,MAAAC,EAAOD,EAAM,QAAQ,KACrB,CAAE,MAAAO,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACrD,MAAA,CAAC,QAASiB,EAAY,YAAA,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,KAG1EF,EAAA,kBAAA,IAAC6B,EAAA,WAAA,CACC,MAAOhC,EACP,UAAWc,EAAK,SAAU,CAAE,QAAST,EAAI,SAAS,UAAW,EAC7D,SAAUE,EAAO,GACjB,MAAO,CAACQ,CAAK,EACb,cAAe,CAAE,KAAM,iBAAkB,EACzC,SAASW,EAAAjB,GAAA,YAAAA,EAAM,UAAN,YAAAiB,EAAe,SACxB,WAAY,GACZ,YAAaV,IAAS,SAAA,CACxB,CAAA,CAEJ,CACD,EAICjB,EAAW,SAAS,GAAK,CAAC,UAAW,SAAS,EAAE,KAAMsC,GAAMlD,EAAO,SAASkD,CAAC,CAAC,GAChFvC,EAAc,KAAK,CACjB,GAAI,UACJ,YAAa,UACb,OAAQ,UACR,QAAStC,EACT,cAAeyC,EAAQ,SAAS,EAChC,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWxC,EAAqBK,CAAQ,EACxC,KAAM,CAAC,CAAE,IAAAuC,EAAK,OAAAE,KAAa,CACnB,KAAA,CAAE,MAAAQ,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACrD,GAAA,CAAC,QAASiB,EAAY,YAAA,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,OAAA,KAExE,IAAAyC,EAAezC,EAAI,SAAS,aAAeU,EAC3C,OAAAV,EAAI,SAAS,aAAe,YAEfyC,EAAA,GAAGzC,EAAI,SAAS,WAAW,KAAKA,EAAI,SAAS,eAAiB,CAAC,cAI9EF,EAAA,kBAAA,IAAC6B,EAAA,WAAA,CACC,MAAOhC,EACP,UAAWc,EAAK,UAAW,CAAE,QAAST,EAAI,SAAS,UAAW,EAC9D,SAAUE,EAAO,GACjB,MAAOuC,EACP,cAAe,CAAE,KAAM,QAAS,EAChC,WAAY,EAAA,CACd,CAAA,CAEJ,CACD,EAIC/C,EAAW,SAAS,GAAK,CAAC,UAAW,SAAS,EAAE,KAAMsC,GAAMlD,EAAO,SAASkD,CAAC,CAAC,GAChFvC,EAAc,KAAK,CACjB,GAAI,UACJ,YAAa,UACb,OAAQ,eACR,QAAStC,EACT,cAAeyC,EAAQ,SAAS,EAChC,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWxC,EAAqBK,CAAQ,EACxC,KAAM,CAAC,CAAE,IAAAuC,EAAK,OAAAE,KAAa,CACnB,KAAA,CAAE,MAAAQ,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACrD,MAAA,CAAC,QAASiB,EAAY,YAAA,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,KAG1EF,EAAA,kBAAA,IAAC6B,EAAA,WAAA,CACC,MAAOhC,EACP,UAAWc,EAAK,UAAW,CAAE,QAAST,EAAI,SAAS,UAAW,EAC9D,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAM,QAAS,EAChC,WAAY,EAAA,CACd,CAAA,CAEJ,CACD,EAGChB,EAAW,MAAM,GACnBD,EAAc,KAAK,CACjB,GAAI,OACJ,YAAa,OACb,OAAQ,OACR,QAAStC,EACT,cAAeyC,EAAQ,MAAM,EAC7B,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWxC,EAAqBQ,CAAe,EAC/C,KAAM,CAAC,CAAE,IAAAoC,EAAK,OAAAE,EAAQ,MAAAC,KAAY,SAC1B,MAAAC,EAAOD,EAAM,QAAQ,KACrB,CAAE,MAAAO,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACrD,MAAA,CAAC,QAASiB,EAAY,YAAA,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,KAE1EF,EAAA,kBAAA,IAAC6B,EAAA,WAAA,CACC,MAAOhC,EACP,UAAWc,EAAK,OAAQ,CAAE,QAAST,EAAI,SAAS,UAAW,EAC3D,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAM,iBAAkB,EACzC,SAASW,EAAAjB,GAAA,YAAAA,EAAM,UAAN,YAAAiB,EAAe,IACxB,YAAa,CAAC,CAACrB,EAAI,SAAS,eAC5B,SAAWU,GACT,OAAA,OAAAW,EAAAjB,GAAA,YAAAA,EAAM,iBAAN,YAAAiB,EAAA,KAAAjB,EACE,CAAE,MAAOF,EAAO,GAAI,MAAAQ,EAAO,KAAAC,EAAM,MAAOX,EAAI,EAAG,EAC/C,CAAE,UAAWI,GAAA,YAAAA,EAAM,SAAU,IAGjC,aAAYwB,EAAAxB,GAAA,YAAAA,EAAM,WAAN,YAAAwB,EAAgB,SAAS1B,EAAO,MAAO+B,qBAAmBtB,CAAI,EAC1E,mBAAkB,EAAA,CACpB,CAAA,CAEJ,CACD,EAGCjB,EAAW,WAAW,GACxBD,EAAc,KAAK,CACjB,GAAI,YACJ,YAAa,YACb,OAAQ,aACR,QAAStC,EACT,cAAeyC,EAAQ,WAAW,EAClC,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWxC,EAAqBmB,EAAA,WAAW,QAAQ,EACnD,KAAM,CAAC,CAAE,IAAAyB,EAAK,OAAAE,KAAa,CACnB,KAAA,CAAE,MAAAQ,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACrD,MAAA,CAAC,QAASiB,EAAY,YAAA,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,KAE1EF,EAAA,kBAAA,IAAC6B,EAAA,WAAA,CACC,MAAOhC,EACP,UAAWc,EAAK,YAAa,CAAE,QAAST,EAAI,SAAS,UAAW,EAChE,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAM,UAAW,EAClC,YAAa,CAAC,CAACV,EAAI,SAAS,eAC5B,WAAY,GACZ,GAAI,CAAE,KAAM,CAAE,SAAU,EAAO,CAAA,CAAA,CACjC,CAAA,CAEJ,CACD,EAGCN,EAAW,WAAW,GACxBD,EAAc,KAAK,CACjB,GAAI,YACJ,YAAa,YACb,OAAQ,aACR,QAAStC,EACT,cAAeyC,EAAQ,WAAW,EAClC,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWxC,EAAqBmB,EAAA,WAAW,QAAQ,EACnD,KAAM,CAAC,CAAE,IAAAyB,EAAK,OAAAE,KAAa,CACnB,KAAA,CAAE,MAAAQ,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACrD,MAAA,CAAC,QAASiB,EAAY,YAAA,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,KAE1EF,EAAA,kBAAA,IAAC6B,EAAA,WAAA,CACC,MAAOhC,EACP,UAAWc,EAAK,YAAa,CAAE,QAAST,EAAI,SAAS,UAAW,EAChE,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAM,UAAW,EAClC,YAAa,CAAC,CAACV,EAAI,SAAS,eAC5B,WAAY,GACZ,GAAI,CAAE,KAAM,CAAE,SAAU,EAAO,CAAA,CAAA,CACjC,CAAA,CAEJ,CACD,EAGH,MAAM0C,GAA0C3D,EAC7C,OAAQX,GAAW,CAElB,GAAIA,EAAO,OAAS,CAACA,EAAO,MAAM,KAAM4D,GAAMlD,EAAO,SAASkD,CAAC,CAAC,EAAU,MAAA,GAEpE,MAAAnE,EAAW,UAAYO,EAAO,KAIpC,MADI,GAACsB,EAAW7B,CAAQ,GACpBO,EAAO,SAAW,CAACsB,EAAW,QAAQ,EACnC,CACR,EACA,IAAKtB,IACsC,CACxC,GAAI,UAAYA,EAAO,KACvB,YAAa,UAAYA,EAAO,KAChC,OAAQA,EAAO,KAAK,OAASA,EAAO,KACpC,QAASjB,EACT,SAAU,QACV,UAAWC,EAAqB,CAACyE,EAAGC,EAAGC,IAAM5D,EAAW0D,EAAGC,EAAGC,EAAG3D,EAAO,IAAI,CAAC,EAC7E,cAAewB,EAAQxB,EAAO,IAAI,GAAKwB,EAAQ,QAAQ,EACvD,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,KAAM,CAAC,CAAE,IAAAI,EAAK,OAAAE,EAAQ,MAAAC,KAAY,WAC1B,MAAAC,EAAOD,EAAM,QAAQ,KACrBwC,EAAiBzC,EAAO,GAAG,QAAQ,UAAW,EAAE,EAChD,CAAE,MAAAQ,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAK2C,EAAgB,QAAQ,EAClEC,EAAc,GAACvB,EAAArB,EAAI,SAAS,YAAb,MAAAqB,EAAwB,SAASsB,IAOtD,MANI,CAAC,QAASxB,EAAY,YAAA,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,UAEzD,GAAC4B,EAAAxD,EAAO,QAAP,MAAAwD,EAAc,SAASjB,KACvBD,GAAU,KAGoB,KAG/BZ,EAAA,kBAAA,IAAC6B,EAAA,WAAA,CACC,MAAOhC,EACP,UAAWc,EAAK,SAAU,CAAE,QAAST,EAAI,SAAS,UAAW,EAC7D,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAMtC,EAAO,KAAK,MAAQ,QAAS,EACpD,QAASA,EAAO,KAAK,MAAQ,CAAC,EAC9B,YAAa,CAAC,CAAC4B,EAAI,SAAS,eAC5B,YAAA4C,EACA,WAEExE,EAAO,YAEPmE,EAAAnC,GAAA,YAAAA,EAAM,WAAN,YAAAmC,EAAgB,KACb5C,GAAOA,IAAOgD,GAAmBhD,IAAO,UAAYvB,EAAO,UAGhE,SAAWsC,GACT,SAAA,OAAAkB,EAAAxB,GAAA,YAAAA,EAAM,iBAAN,YAAAwB,EAAA,KAAAxB,EACE,CAAE,MAAOuC,EAAgB,MAAAjC,EAAO,KAAAC,EAAM,SAAU,GAAM,MAAOX,EAAI,EAAG,EACpE,CAAE,WAAaqB,EAAAjD,EAAO,KAAK,OAAZ,MAAAiD,EAAkB,OAASjB,GAAA,YAAAA,EAAM,UAAY,MAAU,GACxE,CAEJ,CAAA,CAGN,EAED,EAEGyC,GAAsC5D,EAExCD,EACG,OAAQP,GAEH,GAACiB,EAAWjB,EAAK,QAAQ,GAAK,CAACiB,EAAW,MAAM,GAEhD,CAACZ,EAAO,SAASL,EAAK,SAAS,GAAK,CAACK,EAAO,SAASL,EAAK,UAAU,EAEzE,EACA,QAASA,GAAS,CACX,MAAAqE,EAAoBpE,IACjB,CACL,GAAIE,EAAgBH,EAAMC,CAAS,EACnC,YAAa,SAASC,EAAWF,EAAMC,CAAS,CAAC,GACjD,OAAQ,IACN6C,EAAAA,kBAAAA,KAACwB,EACE,iBAAA,CAAA,SAAA,CAAAvE,EAAaC,EAAMC,CAAS,EAAG,IAChCoB,EAAA,kBAAA,IAACoC,EAAA,KAAA,CACC,KAAMC,EAAkB,kBAAAzD,IAAc,KAAOD,EAAK,UAAYA,EAAK,UAAU,CAAA,CAAA,CAC/E,EACF,EAEF,QAAStB,EACT,cAAe,GACf,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,KAAM,CAAC,CAAE,IAAA6C,EAAK,OAAAE,KAAa,CACzB,MAAMyC,EAAiBzC,EAAO,GAAG,QAAQ,QAAS,EAAE,EAE9C,CAAE,GAAAP,EAAI,MAAAe,GAAUE,EAAeZ,EAAK2C,EAAgB,OAAO,EAC3DK,EAAYtC,GAAA,YAAAA,EAAO,IAAKuC,GAAWA,EAAE,OACrCC,EAA4B,CAChC,MAAOxC,EACP,UAAAhC,EACA,SAAUsB,EAAI,SAAS,UAAYA,EAAI,SAAS,GAChD,WAAYA,EAAI,SAAS,WACzB,KAAM,CACJ,MAAOvB,EAAK,SACZ,SAAUA,EAAK,KACf,iBAAkBC,IAAc,KAAOD,EAAK,UAAYA,EAAK,UAAA,CAEjE,EAGE,OAAAqB,EAAA,kBAAA,IAAC6B,EAAA,WAAA,CACC,MAAOhC,EACP,UAAWc,EAAK,QAAS,CAAE,QAAST,EAAI,SAAS,UAAW,EAC5D,SAAUE,EAAO,GACjB,MAAO8C,EACP,UAAAE,EACA,SAAUlD,EAAI,SAAS,SACvB,cAAe,CAAE,KAAM,OAAQ,CAAA,CACjC,CAAA,CAGN,GAGF,MAAO,CAAC8C,EAAiB,IAAI,EAAGA,EAAiB,KAAK,CAAC,CAAA,CACxD,EA5DH,CAAA,EA8DEK,EAAa,CAAC,GAAG1D,EAAe,GAAGiD,GAAkB,GAAGG,EAAW,EAGzE,OAAIvD,GACFA,EAAa,QAAQ,CAAC,CAAE,OAAAY,EAAQ,SAAAkD,EAAW,MAAS,CAC9CA,GAAY,GAAKA,EAAWD,EAAW,OAC9BA,EAAA,OAAOC,EAAU,EAAGlD,CAAM,EAErCiD,EAAW,KAAKjD,CAAM,CACxB,CACD,EAGIiD,CACT,EAIavC,EAAiB,CAC5BZ,EACAqD,EACAC,IAKI,OAAA,OACJ,MAAOA,GACFjC,EAAArB,EAAI,SAASsD,CAA6B,IAA1C,YAAAjC,EAAsDgC,GACtDrD,EAAI,SAASqD,CAAuB,EACzC,GAAIrD,EAAI,GACR,KAAMA,EAAI,SAAS,UACrB"}
|
|
1
|
+
{"version":3,"file":"buildTreeTableColumns.cjs.js","sources":["../../../../../src/containers/ProjectTreeTable/buildTreeTableColumns.tsx"],"sourcesContent":["import { ColumnDef, FilterFnOption, Row, SortingFn, sortingFns } from '@tanstack/react-table'\nimport { TableRow } from './types/table'\nimport { AttributeData, ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport {\n CellWidget,\n MetaWidget,\n EntityNameWidget,\n GroupHeaderWidget,\n ThumbnailWidget,\n} from './widgets'\nimport { getCellId, getCellValue } from './utils/cellUtils'\nimport { LinkColumnHeader, TableCellContent } from './ProjectTreeTable.styled'\nimport clsx from 'clsx'\nimport { SelectionCell } from './components/SelectionCell'\nimport RowSelectionHeader from './components/RowSelectionHeader'\nimport { ROW_SELECTION_COLUMN_ID } from './context/SelectionCellsContext'\nimport { TableGroupBy, useCellEditing, useColumnSettingsContext } from './context'\nimport { NEXT_PAGE_ID } from './hooks/useBuildGroupByTableData'\nimport LoadMoreWidget from './widgets/LoadMoreWidget'\nimport { LinkTypeModel } from '@shared/api'\nimport { LinkWidgetData } from './widgets/LinksWidget'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { getEntityTypeIcon } from '@shared/util'\nimport { NameWidgetData } from '@shared/components/RenameForm'\nimport { isEntityRestricted } from './utils/restrictedEntity'\nimport { ColumnsConfig, getColumnDisplayConfig } from './types/columnConfig'\nimport { upperFirst } from 'lodash'\n\nexport const isEntityExpandable = (entityType: string) => ['folder', 'product'].includes(entityType)\n\nconst MIN_SIZE = 50\n\n// Wrapper function for sorting that pushes isLoading rows to the bottom\nconst withLoadingStateSort = (sortFn: SortingFn<any>): SortingFn<any> => {\n return (rowA, rowB, ...args) => {\n // If row loading states differ, prioritize non-loading rows\n if (rowA.original.isLoading !== rowB.original.isLoading) {\n return rowA.original.isLoading ? 1 : -1\n }\n // Otherwise, use the original sort function\n return sortFn(rowA, rowB, ...args)\n }\n}\n\nconst pathSort: SortingFn<any> = (rowA, rowB) => {\n const labelA = rowA.original.path || rowA.original.name || ''\n const labelB = rowB.original.path || rowB.original.name || ''\n // sort alphabetically by label\n return labelA.localeCompare(labelB)\n}\n\nconst valueLengthSort: SortingFn<any> = (rowA, rowB, columnId) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n const lengthA = Array.isArray(valueA) ? valueA.length : valueA ? String(valueA).length : 0\n const lengthB = Array.isArray(valueB) ? valueB.length : valueB ? String(valueB).length : 0\n return lengthA - lengthB\n}\n\ntype AttribSortingFn = (rowA: any, rowB: any, columnId: string, attribute?: AttributeData) => number\n// sort by the order of the enum options\nconst attribSort: AttribSortingFn = (rowA, rowB, columnId, attrib) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n // if attrib is defined and has enum options, use them\n if (attrib && attrib.enum) {\n const indexA = attrib.enum.findIndex((o) => o.value === valueA)\n const indexB = attrib.enum.findIndex((o) => o.value === valueB)\n return indexB - indexA < 0 ? 1 : -1\n } else if (attrib?.type === 'datetime') {\n return sortingFns.datetime(rowA, rowB, columnId)\n } else if (attrib?.type === 'boolean') {\n const boolA = valueA === true ? 1 : 0\n const boolB = valueB === true ? 1 : 0\n return boolA - boolB\n } else {\n return sortingFns.alphanumeric(rowA, rowB, columnId)\n }\n}\n\nexport const getLinkLabel = (\n link: Pick<LinkTypeModel, 'linkType'>,\n direction: 'in' | 'out' | string,\n) => `${link.linkType.charAt(0).toUpperCase() + link.linkType.slice(1)} (${direction})`\n\nexport const getLinkKey = (link: Pick<LinkTypeModel, 'name'>, direction: 'in' | 'out' | string) =>\n `${link.name.replaceAll('_', '').replaceAll('-', '').replaceAll('|', '_')}_${direction}`\n\nexport const getLinkColumnId = (\n link: Pick<LinkTypeModel, 'name'>,\n direction: 'in' | 'out' | string,\n) => `link_${getLinkKey(link, direction)}`\n\nexport type DefaultColumns =\n | typeof ROW_SELECTION_COLUMN_ID\n | 'thumbnail'\n | 'name'\n | 'entityType'\n | 'folder'\n | 'status'\n | 'subType'\n | 'assignees'\n | 'tags'\n | 'createdAt'\n | 'updatedAt'\n\nexport type TreeTableExtraColumn = { column: ColumnDef<TableRow>; position?: number }\n\nexport type BuildTreeTableColumnsProps = {\n scopes: string[]\n attribs: ProjectTableAttribute[]\n links: LinkTypeModel[]\n includeLinks?: boolean\n showHierarchy: boolean\n options: BuiltInFieldOptions\n excluded?: (DefaultColumns | string)[]\n excludedSorting?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n groupBy?: TableGroupBy\n nameLabel?: string\n}\n\nconst buildTreeTableColumns = ({\n scopes,\n attribs,\n links = [],\n includeLinks = true,\n showHierarchy,\n options,\n excluded,\n excludedSorting,\n extraColumns,\n groupBy,\n nameLabel = 'Entity',\n}: BuildTreeTableColumnsProps) => {\n const staticColumns: ColumnDef<TableRow>[] = []\n\n // Helper to check if a column should be included\n const isIncluded = (id: DefaultColumns | string) => !excluded?.includes(id)\n const canSort = (id: DefaultColumns | string) => !excludedSorting?.includes(id)\n\n // Conditionally add static columns\n if (isIncluded(ROW_SELECTION_COLUMN_ID)) {\n staticColumns.push({\n id: ROW_SELECTION_COLUMN_ID,\n enableResizing: false,\n enableSorting: false,\n enablePinning: false,\n enableHiding: false,\n\n header: () => <RowSelectionHeader />,\n cell: ({ row }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n return <SelectionCell />\n },\n size: 20,\n })\n }\n\n if (isIncluded('thumbnail')) {\n staticColumns.push({\n id: 'thumbnail',\n header: 'Thumbnail',\n size: 63,\n minSize: 24,\n enableResizing: true,\n enableSorting: false,\n cell: ({ row, column, table }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n const meta = table.options.meta\n if (!meta) return null\n const cellId = getCellId(row.id, column.id)\n let thumbnail = {\n entityId: row.original.entityId || row.id,\n entityType: row.original.entityType,\n updatedAt: row.original.updatedAt,\n }\n // check for thumbnail override\n if (row.original.thumbnail) {\n thumbnail = row.original.thumbnail\n }\n return (\n <ThumbnailWidget\n id={cellId}\n entityId={thumbnail.entityId}\n entityType={thumbnail.entityType}\n updatedAt={thumbnail.updatedAt}\n icon={row.original.icon}\n projectName={meta?.projectName as string}\n className={clsx('thumbnail', {\n loading: row.original.isLoading,\n })}\n isPlayable={row.original.hasReviewables}\n />\n )\n },\n })\n }\n\n if (isIncluded('name')) {\n staticColumns.push({\n id: 'name',\n accessorKey: 'name',\n header: nameLabel,\n minSize: MIN_SIZE,\n sortingFn: withLoadingStateSort(pathSort),\n enableSorting: groupBy ? false : canSort('name'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: groupBy ? false : true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n const { isEditing } = useCellEditing()\n const { rowHeight = 40 } = useColumnSettingsContext()\n const cellId = getCellId(row.id, column.id)\n\n if (row.original.metaType) {\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', 'readonly', row.original.entityType)}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + 8px)`,\n pointerEvents: 'none',\n }}\n tabIndex={0}\n >\n <MetaWidget metaType={row.original.metaType} label={row.original.label} />\n </TableCellContent>\n )\n }\n\n if (row.original.entityType === NEXT_PAGE_ID && row.original.group) {\n return (\n <LoadMoreWidget\n id={row.original.group.value}\n onLoadMore={(id) => meta?.loadMoreRows?.(id)}\n />\n )\n }\n\n const isExpandable =\n row.getCanExpand() &&\n !!row.originalSubRows &&\n (isEntityExpandable(row.original.entityType) || !!row.original.group)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', row.original.entityType, {\n loading: row.original.isLoading,\n hierarchy: showHierarchy,\n })}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + ${\n isExpandable || !row.getCanExpand() ? 0 : 32\n }px + 8px)`,\n }}\n tabIndex={0}\n >\n {row.original.group ? (\n <GroupHeaderWidget\n id={row.id}\n label={row.original.group.label}\n name={row.original.name}\n icon={row.original.group.icon}\n img={row.original.group.img}\n color={row.original.group.color}\n count={row.original.group.count}\n isExpanded={row.getIsExpanded()}\n isEmpty={row.subRows.length === 0 && !row.original.metaType}\n toggleExpanded={row.getToggleExpandedHandler()}\n />\n ) : (\n <EntityNameWidget\n id={row.id}\n label={row.original.label}\n name={row.original.name}\n path={!showHierarchy ? '/' + row.original.parents?.join('/') : undefined}\n icon={row.original.icon}\n type={row.original.entityType}\n isExpandable={isExpandable}\n isExpanded={row.getIsExpanded()}\n toggleExpandAll={() => meta?.toggleExpandAll?.([row.id])}\n toggleExpanded={row.getToggleExpandedHandler()}\n rowHeight={rowHeight}\n columnDisplayConfig={getColumnDisplayConfig(meta?.columnsConfig, 'name')}\n />\n )}\n {isEditing(cellId) && (\n <CellWidget\n rowId={id}\n className={clsx('name', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n valueData={\n {\n name: row.original.name,\n label: row.original.label,\n meta,\n entityRowId: id,\n columnId: column.id,\n hasVersions: !!row.original.hasVersions,\n } as NameWidgetData\n }\n entityType={type}\n attributeData={{ type: 'name' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={meta?.readOnly?.includes(column.id)}\n />\n )}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('status')) {\n staticColumns.push({\n id: 'status',\n accessorKey: 'status',\n minSize: MIN_SIZE,\n header: 'Status',\n sortingFn: withLoadingStateSort((a, b, c) =>\n attribSort(a, b, c, { enum: options.status, type: 'string' }),\n ),\n sortDescFirst: true,\n enableSorting: canSort('status'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('status', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={meta?.options?.status.filter((s) => s.scope?.includes(type))}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n pt: {\n template: {\n pt: {\n icon: {\n style: {\n fontVariationSettings: \"'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 20\",\n },\n },\n },\n },\n },\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('entityType')) {\n staticColumns.push({\n id: 'entityType',\n accessorKey: 'entityType',\n header: 'Entity Type',\n minSize: 20,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.alphanumeric),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const cellId = getCellId(row.id, column.id)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('entityType', type, { loading: row.original.isLoading })}\n tabIndex={0}\n >\n <Icon icon={getEntityTypeIcon(type)} /> {upperFirst(value)}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('subType')) {\n staticColumns.push({\n id: 'subType',\n accessorKey: 'subType',\n header: scopes.includes('product') || scopes.includes('version') ? 'Product type' : 'Type',\n minSize: MIN_SIZE,\n enableSorting: canSort('subType'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort((a, b, c) =>\n attribSort(a, b, c, { enum: [...options.folderType, ...options.taskType], type: 'string' }),\n ),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const fieldId = type === 'folder' ? 'folderType' : 'taskType'\n const meta = table.options.meta\n const folderHasVersions = type === 'folder' && row.original.hasVersions\n return (\n <CellWidget\n rowId={id}\n className={clsx('subType', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={\n type === 'folder'\n ? meta?.options?.folderType\n : type === 'task'\n ? meta?.options?.taskType\n : []\n }\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: fieldId, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={\n meta?.readOnly?.includes(column.id) ||\n meta?.readOnly?.includes(fieldId) ||\n folderHasVersions\n }\n tooltip={\n folderHasVersions\n ? 'Folder type cannot be edited when versions exist within the folder'\n : undefined\n }\n />\n )\n },\n })\n }\n\n if (isIncluded('assignees')) {\n staticColumns.push({\n id: 'assignees',\n accessorKey: 'assignees',\n header: 'Assignees',\n minSize: MIN_SIZE,\n enableSorting: canSort('assignees'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(valueLengthSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n if (type === 'folder')\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value=\"\"\n isPlaceholder\n />\n )\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n multiSelectClose: value?.length === 0, // close the dropdown on first assignment\n search: true, // enable search at all times\n multipleOverride: false,\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('folder')) {\n staticColumns.push({\n id: 'folder',\n accessorKey: 'folder',\n header: 'Folder name',\n minSize: MIN_SIZE,\n enableSorting: canSort('folderName'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('folder', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // only show authors column for products\n if (isIncluded('author') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'author',\n accessorKey: 'author',\n header: 'Author',\n minSize: MIN_SIZE,\n enableSorting: canSort('author'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('author', { loading: row.original.isLoading })}\n columnId={column.id}\n value={[value]}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isReadOnly={true}\n isInherited={type === 'product'} // products do not have authors, we just show the featured version's author\n />\n )\n },\n })\n }\n\n // version column for versions\n if (isIncluded('version') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'version',\n accessorKey: 'version',\n header: 'Version',\n minSize: MIN_SIZE,\n enableSorting: canSort('version'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n let versionValue = row.original.versionName || value\n if (row.original.entityType === 'product') {\n // show summary of versions for products\n versionValue = `${row.original.versionName} (${row.original.versionsCount || 0} versions)`\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('version', { loading: row.original.isLoading })}\n columnId={column.id}\n value={versionValue}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // product name column for versions and products\n if (isIncluded('product') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'product',\n accessorKey: 'product',\n header: 'Product name',\n minSize: MIN_SIZE,\n enableSorting: canSort('product'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('product', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n if (isIncluded('tags')) {\n staticColumns.push({\n id: 'tags',\n accessorKey: 'tags',\n header: 'Tags',\n minSize: MIN_SIZE,\n enableSorting: canSort('tags'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(valueLengthSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('tags', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.tag}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n enableCustomValues\n />\n )\n },\n })\n }\n\n if (isIncluded('createdAt')) {\n staticColumns.push({\n id: 'createdAt',\n accessorKey: 'createdAt',\n header: 'Created at',\n minSize: MIN_SIZE,\n enableSorting: canSort('createdAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.datetime),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('createdAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n if (isIncluded('updatedAt')) {\n staticColumns.push({\n id: 'updatedAt',\n accessorKey: 'updatedAt',\n header: 'Updated at',\n minSize: MIN_SIZE,\n enableSorting: canSort('updatedAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.datetime),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('updatedAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n const attributeColumns: ColumnDef<TableRow>[] = attribs\n .filter((attrib) => {\n // filter out attributes that are out of scope\n if (attrib.scope && !attrib.scope.some((s) => scopes.includes(s))) return false\n\n const columnId = 'attrib_' + attrib.name\n // Check if the specific attribute column is excluded\n // or if all built-in attributes are excluded and this is a built-in attribute\n if (!isIncluded(columnId)) return false\n if (attrib.builtin && !isIncluded('attrib')) return false\n return true\n })\n .map((attrib) => {\n const attribColumn: ColumnDef<TableRow> = {\n id: 'attrib_' + attrib.name,\n accessorKey: 'attrib.' + attrib.name,\n header: attrib.data.title || attrib.name,\n minSize: MIN_SIZE,\n filterFn: 'fuzzy' as FilterFnOption<TableRow>,\n sortingFn: withLoadingStateSort((a, b, c) => attribSort(a, b, c, attrib.data)),\n enableSorting: canSort(attrib.name) && canSort('attrib'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const columnIdParsed = column.id.replace('attrib_', '')\n const { value, id, type } = getValueIdType(row, columnIdParsed, 'attrib')\n const isInherited = !row.original.ownAttrib?.includes(columnIdParsed)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const outOfScopeAndNoValue =\n !attrib.scope?.includes(type as (typeof attrib.scope)[number]) &&\n (value === null || value === undefined)\n\n // if the attribute is not in scope, we should nothing\n if (outOfScopeAndNoValue) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('attrib', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: attrib.data.type || 'string' }}\n options={attrib.data.enum || []}\n isCollapsed={!!row.original.childOnlyMatch}\n isInherited={isInherited}\n isReadOnly={\n // check attrib is not read only\n attrib.readOnly ||\n // check if there is any other reason the cell should be read only\n meta?.readOnly?.some(\n (id) => id === columnIdParsed || (id === 'attrib' && attrib.builtin),\n )\n }\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: columnIdParsed, value, type, isAttrib: true, rowId: row.id },\n { selection: !!attrib.data.enum?.length ? meta?.selection : undefined },\n )\n }\n />\n )\n },\n }\n return attribColumn\n })\n\n const linkColumns: ColumnDef<TableRow>[] = !includeLinks\n ? []\n : links\n .filter((link) => {\n // Check if the link type is excluded\n if (!isIncluded(link.linkType) || !isIncluded('link')) return false\n // Check if inputType and outputType are in scopes\n if (!scopes.includes(link.inputType) && !scopes.includes(link.outputType)) return false\n return true\n })\n .flatMap((link) => {\n const createLinkColumn = (direction: 'in' | 'out'): ColumnDef<TableRow> => {\n return {\n id: getLinkColumnId(link, direction),\n accessorKey: `links.${getLinkKey(link, direction)}`,\n header: () => (\n <LinkColumnHeader>\n {getLinkLabel(link, direction)}{' '}\n <Icon\n icon={getEntityTypeIcon(direction === 'in' ? link.inputType : link.outputType)}\n />\n </LinkColumnHeader>\n ),\n minSize: MIN_SIZE,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column }) => {\n const columnIdParsed = column.id.replace('link_', '')\n\n const { id, value } = getValueIdType(row, columnIdParsed, 'links')\n const cellValue = value?.map((v: any) => v.label)\n const valueData: LinkWidgetData = {\n links: value,\n direction: direction,\n entityId: row.original.entityId || row.original.id,\n entityType: row.original.entityType,\n link: {\n label: link.linkType,\n linkType: link.name,\n targetEntityType: direction === 'in' ? link.inputType : link.outputType,\n },\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('links', { loading: row.original.isLoading })}\n columnId={column.id}\n value={cellValue}\n valueData={valueData}\n folderId={row.original.folderId}\n attributeData={{ type: 'links' }}\n />\n )\n },\n }\n }\n\n return [createLinkColumn('in'), createLinkColumn('out')]\n })\n\n const allColumns = [...staticColumns, ...attributeColumns, ...linkColumns]\n\n // Add extra columns if provided\n if (extraColumns) {\n extraColumns.forEach(({ column, position = -1 }) => {\n if (position >= 0 && position < allColumns.length) {\n allColumns.splice(position, 0, column)\n } else {\n allColumns.push(column)\n }\n })\n }\n\n return allColumns\n}\n\nexport default buildTreeTableColumns\n\nexport const getValueIdType = (\n row: Row<TableRow>,\n field: string,\n nestedField?: keyof TableRow,\n): {\n value: any\n id: string\n type: string\n} => ({\n value: nestedField\n ? (row.original[nestedField as keyof TableRow] as any)?.[field]\n : (row.original[field as keyof TableRow] as any),\n id: row.id,\n type: row.original.entityType,\n})\n"],"names":["isEntityExpandable","entityType","MIN_SIZE","withLoadingStateSort","sortFn","rowA","rowB","args","pathSort","labelA","labelB","valueLengthSort","columnId","valueA","getCellValue","valueB","lengthA","lengthB","attribSort","attrib","indexA","o","sortingFns","getLinkLabel","link","direction","getLinkKey","getLinkColumnId","buildTreeTableColumns","scopes","attribs","links","includeLinks","showHierarchy","options","excluded","excludedSorting","extraColumns","groupBy","nameLabel","staticColumns","isIncluded","id","canSort","ROW_SELECTION_COLUMN_ID","jsx","RowSelectionHeader","row","SelectionCell","column","table","meta","cellId","getCellId","thumbnail","ThumbnailWidget","clsx","value","type","getValueIdType","isEditing","useCellEditing","rowHeight","useColumnSettingsContext","TableCellContent","MetaWidget","NEXT_PAGE_ID","LoadMoreWidget","_a","isExpandable","jsxs","GroupHeaderWidget","EntityNameWidget","getColumnDisplayConfig","CellWidget","_b","a","b","c","s","isEntityRestricted","Icon","getEntityTypeIcon","upperFirst","fieldId","folderHasVersions","_c","_d","versionValue","attributeColumns","columnIdParsed","isInherited","linkColumns","createLinkColumn","LinkColumnHeader","cellValue","v","valueData","allColumns","position","field","nestedField"],"mappings":"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"}
|
|
@@ -66,6 +66,8 @@ import "../../api/queries/attributes/getAttributes.es.js";
|
|
|
66
66
|
import "../../api/queries/attributes/updateAttributes.es.js";
|
|
67
67
|
import "../../api/queries/authentication/getAuthentication.es.js";
|
|
68
68
|
import "../../api/queries/cloud/cloud.es.js";
|
|
69
|
+
import "../../api/queries/config/getConfig.es.js";
|
|
70
|
+
import "../../api/queries/config/updateConfig.es.js";
|
|
69
71
|
import "../../api/queries/entities/getEntity.es.js";
|
|
70
72
|
import "../../api/queries/entities/getEntityPanel.es.js";
|
|
71
73
|
import "../../api/queries/entities/updateEntity.es.js";
|
|
@@ -261,7 +263,7 @@ const ui = (p) => ["folder", "product"].includes(p), S = 50, C = (p) => (m, f, .
|
|
|
261
263
|
const L = d.enum.findIndex((j) => j.value === R);
|
|
262
264
|
return d.enum.findIndex((j) => j.value === z) - L < 0 ? 1 : -1;
|
|
263
265
|
} else return (d == null ? void 0 : d.type) === "datetime" ? D.datetime(p, m, f) : (d == null ? void 0 : d.type) === "boolean" ? (R === !0 ? 1 : 0) - (z === !0 ? 1 : 0) : D.alphanumeric(p, m, f);
|
|
264
|
-
}, gi = (p, m) => `${p.linkType.charAt(0).toUpperCase() + p.linkType.slice(1)} (${m})`, J = (p, m) => `${p.name.replaceAll("_", "").replaceAll("-", "").replaceAll("|", "_")}_${m}`, ci = (p, m) => `link_${J(p, m)}`,
|
|
266
|
+
}, gi = (p, m) => `${p.linkType.charAt(0).toUpperCase() + p.linkType.slice(1)} (${m})`, J = (p, m) => `${p.name.replaceAll("_", "").replaceAll("-", "").replaceAll("|", "_")}_${m}`, ci = (p, m) => `link_${J(p, m)}`, wr = ({
|
|
265
267
|
scopes: p,
|
|
266
268
|
attribs: m,
|
|
267
269
|
links: f = [],
|
|
@@ -900,7 +902,7 @@ const ui = (p) => ["folder", "product"].includes(p), S = 50, C = (p) => (m, f, .
|
|
|
900
902
|
};
|
|
901
903
|
};
|
|
902
904
|
export {
|
|
903
|
-
|
|
905
|
+
wr as default,
|
|
904
906
|
ci as getLinkColumnId,
|
|
905
907
|
J as getLinkKey,
|
|
906
908
|
gi as getLinkLabel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildTreeTableColumns.es.js","sources":["../../../../../src/containers/ProjectTreeTable/buildTreeTableColumns.tsx"],"sourcesContent":["import { ColumnDef, FilterFnOption, Row, SortingFn, sortingFns } from '@tanstack/react-table'\nimport { TableRow } from './types/table'\nimport { AttributeData, ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport {\n CellWidget,\n MetaWidget,\n EntityNameWidget,\n GroupHeaderWidget,\n ThumbnailWidget,\n} from './widgets'\nimport { getCellId, getCellValue } from './utils/cellUtils'\nimport { LinkColumnHeader, TableCellContent } from './ProjectTreeTable.styled'\nimport clsx from 'clsx'\nimport { SelectionCell } from './components/SelectionCell'\nimport RowSelectionHeader from './components/RowSelectionHeader'\nimport { ROW_SELECTION_COLUMN_ID } from './context/SelectionCellsContext'\nimport { TableGroupBy, useCellEditing, useColumnSettingsContext } from './context'\nimport { NEXT_PAGE_ID } from './hooks/useBuildGroupByTableData'\nimport LoadMoreWidget from './widgets/LoadMoreWidget'\nimport { LinkTypeModel } from '@shared/api'\nimport { LinkWidgetData } from './widgets/LinksWidget'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { getEntityTypeIcon } from '@shared/util'\nimport { NameWidgetData } from '@shared/components/RenameForm'\nimport { isEntityRestricted } from './utils/restrictedEntity'\nimport { ColumnsConfig, getColumnDisplayConfig } from './types/columnConfig'\nimport { upperFirst } from 'lodash'\n\nexport const isEntityExpandable = (entityType: string) => ['folder', 'product'].includes(entityType)\n\nconst MIN_SIZE = 50\n\n// Wrapper function for sorting that pushes isLoading rows to the bottom\nconst withLoadingStateSort = (sortFn: SortingFn<any>): SortingFn<any> => {\n return (rowA, rowB, ...args) => {\n // If row loading states differ, prioritize non-loading rows\n if (rowA.original.isLoading !== rowB.original.isLoading) {\n return rowA.original.isLoading ? 1 : -1\n }\n // Otherwise, use the original sort function\n return sortFn(rowA, rowB, ...args)\n }\n}\n\nconst pathSort: SortingFn<any> = (rowA, rowB) => {\n const labelA = rowA.original.path || rowA.original.name || ''\n const labelB = rowB.original.path || rowB.original.name || ''\n // sort alphabetically by label\n return labelA.localeCompare(labelB)\n}\n\nconst valueLengthSort: SortingFn<any> = (rowA, rowB, columnId) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n const lengthA = Array.isArray(valueA) ? valueA.length : valueA ? String(valueA).length : 0\n const lengthB = Array.isArray(valueB) ? valueB.length : valueB ? String(valueB).length : 0\n return lengthA - lengthB\n}\n\ntype AttribSortingFn = (rowA: any, rowB: any, columnId: string, attribute?: AttributeData) => number\n// sort by the order of the enum options\nconst attribSort: AttribSortingFn = (rowA, rowB, columnId, attrib) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n // if attrib is defined and has enum options, use them\n if (attrib && attrib.enum) {\n const indexA = attrib.enum.findIndex((o) => o.value === valueA)\n const indexB = attrib.enum.findIndex((o) => o.value === valueB)\n return indexB - indexA < 0 ? 1 : -1\n } else if (attrib?.type === 'datetime') {\n return sortingFns.datetime(rowA, rowB, columnId)\n } else if (attrib?.type === 'boolean') {\n const boolA = valueA === true ? 1 : 0\n const boolB = valueB === true ? 1 : 0\n return boolA - boolB\n } else {\n return sortingFns.alphanumeric(rowA, rowB, columnId)\n }\n}\n\nexport const getLinkLabel = (\n link: Pick<LinkTypeModel, 'linkType'>,\n direction: 'in' | 'out' | string,\n) => `${link.linkType.charAt(0).toUpperCase() + link.linkType.slice(1)} (${direction})`\n\nexport const getLinkKey = (link: Pick<LinkTypeModel, 'name'>, direction: 'in' | 'out' | string) =>\n `${link.name.replaceAll('_', '').replaceAll('-', '').replaceAll('|', '_')}_${direction}`\n\nexport const getLinkColumnId = (\n link: Pick<LinkTypeModel, 'name'>,\n direction: 'in' | 'out' | string,\n) => `link_${getLinkKey(link, direction)}`\n\nexport type DefaultColumns =\n | typeof ROW_SELECTION_COLUMN_ID\n | 'thumbnail'\n | 'name'\n | 'entityType'\n | 'folder'\n | 'status'\n | 'subType'\n | 'assignees'\n | 'tags'\n | 'createdAt'\n | 'updatedAt'\n\nexport type TreeTableExtraColumn = { column: ColumnDef<TableRow>; position?: number }\n\nexport type BuildTreeTableColumnsProps = {\n scopes: string[]\n attribs: ProjectTableAttribute[]\n links: LinkTypeModel[]\n includeLinks?: boolean\n showHierarchy: boolean\n options: BuiltInFieldOptions\n excluded?: (DefaultColumns | string)[]\n excludedSorting?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n groupBy?: TableGroupBy\n nameLabel?: string\n}\n\nconst buildTreeTableColumns = ({\n scopes,\n attribs,\n links = [],\n includeLinks = true,\n showHierarchy,\n options,\n excluded,\n excludedSorting,\n extraColumns,\n groupBy,\n nameLabel = 'Entity',\n}: BuildTreeTableColumnsProps) => {\n const staticColumns: ColumnDef<TableRow>[] = []\n\n // Helper to check if a column should be included\n const isIncluded = (id: DefaultColumns | string) => !excluded?.includes(id)\n const canSort = (id: DefaultColumns | string) => !excludedSorting?.includes(id)\n\n // Conditionally add static columns\n if (isIncluded(ROW_SELECTION_COLUMN_ID)) {\n staticColumns.push({\n id: ROW_SELECTION_COLUMN_ID,\n enableResizing: false,\n enableSorting: false,\n enablePinning: false,\n enableHiding: false,\n\n header: () => <RowSelectionHeader />,\n cell: ({ row }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n return <SelectionCell />\n },\n size: 20,\n })\n }\n\n if (isIncluded('thumbnail')) {\n staticColumns.push({\n id: 'thumbnail',\n header: 'Thumbnail',\n size: 63,\n minSize: 24,\n enableResizing: true,\n enableSorting: false,\n cell: ({ row, column, table }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n const meta = table.options.meta\n if (!meta) return null\n const cellId = getCellId(row.id, column.id)\n let thumbnail = {\n entityId: row.original.entityId || row.id,\n entityType: row.original.entityType,\n updatedAt: row.original.updatedAt,\n }\n // check for thumbnail override\n if (row.original.thumbnail) {\n thumbnail = row.original.thumbnail\n }\n return (\n <ThumbnailWidget\n id={cellId}\n entityId={thumbnail.entityId}\n entityType={thumbnail.entityType}\n updatedAt={thumbnail.updatedAt}\n icon={row.original.icon}\n projectName={meta?.projectName as string}\n className={clsx('thumbnail', {\n loading: row.original.isLoading,\n })}\n isPlayable={row.original.hasReviewables}\n />\n )\n },\n })\n }\n\n if (isIncluded('name')) {\n staticColumns.push({\n id: 'name',\n accessorKey: 'name',\n header: nameLabel,\n minSize: MIN_SIZE,\n sortingFn: withLoadingStateSort(pathSort),\n enableSorting: groupBy ? false : canSort('name'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: groupBy ? false : true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n const { isEditing } = useCellEditing()\n const { rowHeight = 40 } = useColumnSettingsContext()\n const cellId = getCellId(row.id, column.id)\n\n if (row.original.metaType) {\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', 'readonly', row.original.entityType)}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + 8px)`,\n pointerEvents: 'none',\n }}\n tabIndex={0}\n >\n <MetaWidget metaType={row.original.metaType} label={row.original.label} />\n </TableCellContent>\n )\n }\n\n if (row.original.entityType === NEXT_PAGE_ID && row.original.group) {\n return (\n <LoadMoreWidget\n id={row.original.group.value}\n onLoadMore={(id) => meta?.loadMoreRows?.(id)}\n />\n )\n }\n\n const isExpandable =\n row.getCanExpand() &&\n !!row.originalSubRows &&\n (isEntityExpandable(row.original.entityType) || !!row.original.group)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', row.original.entityType, {\n loading: row.original.isLoading,\n hierarchy: showHierarchy,\n })}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + ${\n isExpandable || !row.getCanExpand() ? 0 : 32\n }px + 8px)`,\n }}\n tabIndex={0}\n >\n {row.original.group ? (\n <GroupHeaderWidget\n id={row.id}\n label={row.original.group.label}\n name={row.original.name}\n icon={row.original.group.icon}\n img={row.original.group.img}\n color={row.original.group.color}\n count={row.original.group.count}\n isExpanded={row.getIsExpanded()}\n isEmpty={row.subRows.length === 0 && !row.original.metaType}\n toggleExpanded={row.getToggleExpandedHandler()}\n />\n ) : (\n <EntityNameWidget\n id={row.id}\n label={row.original.label}\n name={row.original.name}\n path={!showHierarchy ? '/' + row.original.parents?.join('/') : undefined}\n icon={row.original.icon}\n type={row.original.entityType}\n isExpandable={isExpandable}\n isExpanded={row.getIsExpanded()}\n toggleExpandAll={() => meta?.toggleExpandAll?.([row.id])}\n toggleExpanded={row.getToggleExpandedHandler()}\n rowHeight={rowHeight}\n columnDisplayConfig={getColumnDisplayConfig(meta?.columnsConfig, 'name')}\n />\n )}\n {isEditing(cellId) && (\n <CellWidget\n rowId={id}\n className={clsx('name', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n valueData={\n {\n name: row.original.name,\n label: row.original.label,\n meta,\n entityRowId: id,\n columnId: column.id,\n hasVersions: !!row.original.hasVersions,\n } as NameWidgetData\n }\n entityType={type}\n attributeData={{ type: 'name' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={meta?.readOnly?.includes(column.id)}\n />\n )}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('status')) {\n staticColumns.push({\n id: 'status',\n accessorKey: 'status',\n minSize: MIN_SIZE,\n header: 'Status',\n sortingFn: withLoadingStateSort((a, b, c) =>\n attribSort(a, b, c, { enum: options.status, type: 'string' }),\n ),\n sortDescFirst: true,\n enableSorting: canSort('status'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('status', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={meta?.options?.status.filter((s) => s.scope?.includes(type))}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n pt: {\n template: {\n pt: {\n icon: {\n style: {\n fontVariationSettings: \"'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 20\",\n },\n },\n },\n },\n },\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('entityType')) {\n staticColumns.push({\n id: 'entityType',\n accessorKey: 'entityType',\n header: 'Entity Type',\n minSize: 20,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.alphanumeric),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const cellId = getCellId(row.id, column.id)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('entityType', type, { loading: row.original.isLoading })}\n tabIndex={0}\n >\n <Icon icon={getEntityTypeIcon(type)} /> {upperFirst(value)}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('subType')) {\n staticColumns.push({\n id: 'subType',\n accessorKey: 'subType',\n header: scopes.includes('product') || scopes.includes('version') ? 'Product type' : 'Type',\n minSize: MIN_SIZE,\n enableSorting: canSort('subType'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort((a, b, c) =>\n attribSort(a, b, c, { enum: [...options.folderType, ...options.taskType], type: 'string' }),\n ),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const fieldId = type === 'folder' ? 'folderType' : 'taskType'\n const meta = table.options.meta\n const folderHasVersions = type === 'folder' && row.original.hasVersions\n return (\n <CellWidget\n rowId={id}\n className={clsx('subType', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={\n type === 'folder'\n ? meta?.options?.folderType\n : type === 'task'\n ? meta?.options?.taskType\n : []\n }\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: fieldId, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={\n meta?.readOnly?.includes(column.id) ||\n meta?.readOnly?.includes(fieldId) ||\n folderHasVersions\n }\n tooltip={\n folderHasVersions\n ? 'Folder type cannot be edited when versions exist within the folder'\n : undefined\n }\n />\n )\n },\n })\n }\n\n if (isIncluded('assignees')) {\n staticColumns.push({\n id: 'assignees',\n accessorKey: 'assignees',\n header: 'Assignees',\n minSize: MIN_SIZE,\n enableSorting: canSort('assignees'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(valueLengthSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n if (type === 'folder')\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value=\"\"\n isPlaceholder\n />\n )\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n multiSelectClose: value?.length === 0, // close the dropdown on first assignment\n search: true, // enable search at all times\n multipleOverride: false,\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('folder')) {\n staticColumns.push({\n id: 'folder',\n accessorKey: 'folder',\n header: 'Folder name',\n minSize: MIN_SIZE,\n enableSorting: canSort('folderName'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('folder', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // only show authors column for products\n if (isIncluded('author') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'author',\n accessorKey: 'author',\n header: 'Author',\n minSize: MIN_SIZE,\n enableSorting: canSort('author'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('author', { loading: row.original.isLoading })}\n columnId={column.id}\n value={[value]}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isReadOnly={true}\n isInherited={type === 'product'} // products do not have authors, we just show the featured version's author\n />\n )\n },\n })\n }\n\n // version column for versions\n if (isIncluded('version') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'version',\n accessorKey: 'version',\n header: 'Version',\n minSize: MIN_SIZE,\n enableSorting: canSort('version'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n let versionValue = row.original.versionName || value\n if (row.original.entityType === 'product') {\n // show summary of versions for products\n versionValue = `${row.original.versionName} (${row.original.versionsCount || 0} versions)`\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('version', { loading: row.original.isLoading })}\n columnId={column.id}\n value={versionValue}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // product name column for versions and products\n if (isIncluded('product') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'product',\n accessorKey: 'product',\n header: 'Product name',\n minSize: MIN_SIZE,\n enableSorting: canSort('product'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('product', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n if (isIncluded('tags')) {\n staticColumns.push({\n id: 'tags',\n accessorKey: 'tags',\n header: 'Tags',\n minSize: MIN_SIZE,\n enableSorting: canSort('tags'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(valueLengthSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('tags', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.tag}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n enableCustomValues\n />\n )\n },\n })\n }\n\n if (isIncluded('createdAt')) {\n staticColumns.push({\n id: 'createdAt',\n accessorKey: 'createdAt',\n header: 'Created at',\n minSize: MIN_SIZE,\n enableSorting: canSort('createdAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.datetime),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('createdAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n if (isIncluded('updatedAt')) {\n staticColumns.push({\n id: 'updatedAt',\n accessorKey: 'updatedAt',\n header: 'Updated at',\n minSize: MIN_SIZE,\n enableSorting: canSort('updatedAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.datetime),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('updatedAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n const attributeColumns: ColumnDef<TableRow>[] = attribs\n .filter((attrib) => {\n // filter out attributes that are out of scope\n if (attrib.scope && !attrib.scope.some((s) => scopes.includes(s))) return false\n\n const columnId = 'attrib_' + attrib.name\n // Check if the specific attribute column is excluded\n // or if all built-in attributes are excluded and this is a built-in attribute\n if (!isIncluded(columnId)) return false\n if (attrib.builtin && !isIncluded('attrib')) return false\n return true\n })\n .map((attrib) => {\n const attribColumn: ColumnDef<TableRow> = {\n id: 'attrib_' + attrib.name,\n accessorKey: 'attrib.' + attrib.name,\n header: attrib.data.title || attrib.name,\n minSize: MIN_SIZE,\n filterFn: 'fuzzy' as FilterFnOption<TableRow>,\n sortingFn: withLoadingStateSort((a, b, c) => attribSort(a, b, c, attrib.data)),\n enableSorting: canSort(attrib.name) && canSort('attrib'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const columnIdParsed = column.id.replace('attrib_', '')\n const { value, id, type } = getValueIdType(row, columnIdParsed, 'attrib')\n const isInherited = !row.original.ownAttrib?.includes(columnIdParsed)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const outOfScopeAndNoValue =\n !attrib.scope?.includes(type as (typeof attrib.scope)[number]) &&\n (value === null || value === undefined)\n\n // if the attribute is not in scope, we should nothing\n if (outOfScopeAndNoValue) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('attrib', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: attrib.data.type || 'string' }}\n options={attrib.data.enum || []}\n isCollapsed={!!row.original.childOnlyMatch}\n isInherited={isInherited}\n isReadOnly={\n // check attrib is not read only\n attrib.readOnly ||\n // check if there is any other reason the cell should be read only\n meta?.readOnly?.some(\n (id) => id === columnIdParsed || (id === 'attrib' && attrib.builtin),\n )\n }\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: columnIdParsed, value, type, isAttrib: true, rowId: row.id },\n { selection: !!attrib.data.enum?.length ? meta?.selection : undefined },\n )\n }\n />\n )\n },\n }\n return attribColumn\n })\n\n const linkColumns: ColumnDef<TableRow>[] = !includeLinks\n ? []\n : links\n .filter((link) => {\n // Check if the link type is excluded\n if (!isIncluded(link.linkType) || !isIncluded('link')) return false\n // Check if inputType and outputType are in scopes\n if (!scopes.includes(link.inputType) && !scopes.includes(link.outputType)) return false\n return true\n })\n .flatMap((link) => {\n const createLinkColumn = (direction: 'in' | 'out'): ColumnDef<TableRow> => {\n return {\n id: getLinkColumnId(link, direction),\n accessorKey: `links.${getLinkKey(link, direction)}`,\n header: () => (\n <LinkColumnHeader>\n {getLinkLabel(link, direction)}{' '}\n <Icon\n icon={getEntityTypeIcon(direction === 'in' ? link.inputType : link.outputType)}\n />\n </LinkColumnHeader>\n ),\n minSize: MIN_SIZE,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column }) => {\n const columnIdParsed = column.id.replace('link_', '')\n\n const { id, value } = getValueIdType(row, columnIdParsed, 'links')\n const cellValue = value?.map((v: any) => v.label)\n const valueData: LinkWidgetData = {\n links: value,\n direction: direction,\n entityId: row.original.entityId || row.original.id,\n entityType: row.original.entityType,\n link: {\n label: link.linkType,\n linkType: link.name,\n targetEntityType: direction === 'in' ? link.inputType : link.outputType,\n },\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('links', { loading: row.original.isLoading })}\n columnId={column.id}\n value={cellValue}\n valueData={valueData}\n folderId={row.original.folderId}\n attributeData={{ type: 'links' }}\n />\n )\n },\n }\n }\n\n return [createLinkColumn('in'), createLinkColumn('out')]\n })\n\n const allColumns = [...staticColumns, ...attributeColumns, ...linkColumns]\n\n // Add extra columns if provided\n if (extraColumns) {\n extraColumns.forEach(({ column, position = -1 }) => {\n if (position >= 0 && position < allColumns.length) {\n allColumns.splice(position, 0, column)\n } else {\n allColumns.push(column)\n }\n })\n }\n\n return allColumns\n}\n\nexport default buildTreeTableColumns\n\nexport const getValueIdType = (\n row: Row<TableRow>,\n field: string,\n nestedField?: keyof TableRow,\n): {\n value: any\n id: string\n type: string\n} => ({\n value: nestedField\n ? (row.original[nestedField as keyof TableRow] as any)?.[field]\n : (row.original[field as keyof TableRow] as any),\n id: row.id,\n type: row.original.entityType,\n})\n"],"names":["isEntityExpandable","entityType","MIN_SIZE","withLoadingStateSort","sortFn","rowA","rowB","args","pathSort","labelA","labelB","valueLengthSort","columnId","valueA","getCellValue","valueB","lengthA","lengthB","attribSort","attrib","indexA","o","sortingFns","getLinkLabel","link","direction","getLinkKey","getLinkColumnId","buildTreeTableColumns","scopes","attribs","links","includeLinks","showHierarchy","options","excluded","excludedSorting","extraColumns","groupBy","nameLabel","staticColumns","isIncluded","id","canSort","ROW_SELECTION_COLUMN_ID","jsx","RowSelectionHeader","row","SelectionCell","column","table","meta","cellId","getCellId","thumbnail","ThumbnailWidget","clsx","value","type","getValueIdType","isEditing","useCellEditing","rowHeight","useColumnSettingsContext","TableCellContent","MetaWidget","NEXT_PAGE_ID","LoadMoreWidget","_a","isExpandable","jsxs","GroupHeaderWidget","EntityNameWidget","getColumnDisplayConfig","CellWidget","_b","a","b","c","s","isEntityRestricted","Icon","getEntityTypeIcon","upperFirst","fieldId","folderHasVersions","_c","_d","versionValue","attributeColumns","columnIdParsed","isInherited","linkColumns","createLinkColumn","LinkColumnHeader","cellValue","v","valueData","allColumns","position","field","nestedField"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"buildTreeTableColumns.es.js","sources":["../../../../../src/containers/ProjectTreeTable/buildTreeTableColumns.tsx"],"sourcesContent":["import { ColumnDef, FilterFnOption, Row, SortingFn, sortingFns } from '@tanstack/react-table'\nimport { TableRow } from './types/table'\nimport { AttributeData, ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport {\n CellWidget,\n MetaWidget,\n EntityNameWidget,\n GroupHeaderWidget,\n ThumbnailWidget,\n} from './widgets'\nimport { getCellId, getCellValue } from './utils/cellUtils'\nimport { LinkColumnHeader, TableCellContent } from './ProjectTreeTable.styled'\nimport clsx from 'clsx'\nimport { SelectionCell } from './components/SelectionCell'\nimport RowSelectionHeader from './components/RowSelectionHeader'\nimport { ROW_SELECTION_COLUMN_ID } from './context/SelectionCellsContext'\nimport { TableGroupBy, useCellEditing, useColumnSettingsContext } from './context'\nimport { NEXT_PAGE_ID } from './hooks/useBuildGroupByTableData'\nimport LoadMoreWidget from './widgets/LoadMoreWidget'\nimport { LinkTypeModel } from '@shared/api'\nimport { LinkWidgetData } from './widgets/LinksWidget'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { getEntityTypeIcon } from '@shared/util'\nimport { NameWidgetData } from '@shared/components/RenameForm'\nimport { isEntityRestricted } from './utils/restrictedEntity'\nimport { ColumnsConfig, getColumnDisplayConfig } from './types/columnConfig'\nimport { upperFirst } from 'lodash'\n\nexport const isEntityExpandable = (entityType: string) => ['folder', 'product'].includes(entityType)\n\nconst MIN_SIZE = 50\n\n// Wrapper function for sorting that pushes isLoading rows to the bottom\nconst withLoadingStateSort = (sortFn: SortingFn<any>): SortingFn<any> => {\n return (rowA, rowB, ...args) => {\n // If row loading states differ, prioritize non-loading rows\n if (rowA.original.isLoading !== rowB.original.isLoading) {\n return rowA.original.isLoading ? 1 : -1\n }\n // Otherwise, use the original sort function\n return sortFn(rowA, rowB, ...args)\n }\n}\n\nconst pathSort: SortingFn<any> = (rowA, rowB) => {\n const labelA = rowA.original.path || rowA.original.name || ''\n const labelB = rowB.original.path || rowB.original.name || ''\n // sort alphabetically by label\n return labelA.localeCompare(labelB)\n}\n\nconst valueLengthSort: SortingFn<any> = (rowA, rowB, columnId) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n const lengthA = Array.isArray(valueA) ? valueA.length : valueA ? String(valueA).length : 0\n const lengthB = Array.isArray(valueB) ? valueB.length : valueB ? String(valueB).length : 0\n return lengthA - lengthB\n}\n\ntype AttribSortingFn = (rowA: any, rowB: any, columnId: string, attribute?: AttributeData) => number\n// sort by the order of the enum options\nconst attribSort: AttribSortingFn = (rowA, rowB, columnId, attrib) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n // if attrib is defined and has enum options, use them\n if (attrib && attrib.enum) {\n const indexA = attrib.enum.findIndex((o) => o.value === valueA)\n const indexB = attrib.enum.findIndex((o) => o.value === valueB)\n return indexB - indexA < 0 ? 1 : -1\n } else if (attrib?.type === 'datetime') {\n return sortingFns.datetime(rowA, rowB, columnId)\n } else if (attrib?.type === 'boolean') {\n const boolA = valueA === true ? 1 : 0\n const boolB = valueB === true ? 1 : 0\n return boolA - boolB\n } else {\n return sortingFns.alphanumeric(rowA, rowB, columnId)\n }\n}\n\nexport const getLinkLabel = (\n link: Pick<LinkTypeModel, 'linkType'>,\n direction: 'in' | 'out' | string,\n) => `${link.linkType.charAt(0).toUpperCase() + link.linkType.slice(1)} (${direction})`\n\nexport const getLinkKey = (link: Pick<LinkTypeModel, 'name'>, direction: 'in' | 'out' | string) =>\n `${link.name.replaceAll('_', '').replaceAll('-', '').replaceAll('|', '_')}_${direction}`\n\nexport const getLinkColumnId = (\n link: Pick<LinkTypeModel, 'name'>,\n direction: 'in' | 'out' | string,\n) => `link_${getLinkKey(link, direction)}`\n\nexport type DefaultColumns =\n | typeof ROW_SELECTION_COLUMN_ID\n | 'thumbnail'\n | 'name'\n | 'entityType'\n | 'folder'\n | 'status'\n | 'subType'\n | 'assignees'\n | 'tags'\n | 'createdAt'\n | 'updatedAt'\n\nexport type TreeTableExtraColumn = { column: ColumnDef<TableRow>; position?: number }\n\nexport type BuildTreeTableColumnsProps = {\n scopes: string[]\n attribs: ProjectTableAttribute[]\n links: LinkTypeModel[]\n includeLinks?: boolean\n showHierarchy: boolean\n options: BuiltInFieldOptions\n excluded?: (DefaultColumns | string)[]\n excludedSorting?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n groupBy?: TableGroupBy\n nameLabel?: string\n}\n\nconst buildTreeTableColumns = ({\n scopes,\n attribs,\n links = [],\n includeLinks = true,\n showHierarchy,\n options,\n excluded,\n excludedSorting,\n extraColumns,\n groupBy,\n nameLabel = 'Entity',\n}: BuildTreeTableColumnsProps) => {\n const staticColumns: ColumnDef<TableRow>[] = []\n\n // Helper to check if a column should be included\n const isIncluded = (id: DefaultColumns | string) => !excluded?.includes(id)\n const canSort = (id: DefaultColumns | string) => !excludedSorting?.includes(id)\n\n // Conditionally add static columns\n if (isIncluded(ROW_SELECTION_COLUMN_ID)) {\n staticColumns.push({\n id: ROW_SELECTION_COLUMN_ID,\n enableResizing: false,\n enableSorting: false,\n enablePinning: false,\n enableHiding: false,\n\n header: () => <RowSelectionHeader />,\n cell: ({ row }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n return <SelectionCell />\n },\n size: 20,\n })\n }\n\n if (isIncluded('thumbnail')) {\n staticColumns.push({\n id: 'thumbnail',\n header: 'Thumbnail',\n size: 63,\n minSize: 24,\n enableResizing: true,\n enableSorting: false,\n cell: ({ row, column, table }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n const meta = table.options.meta\n if (!meta) return null\n const cellId = getCellId(row.id, column.id)\n let thumbnail = {\n entityId: row.original.entityId || row.id,\n entityType: row.original.entityType,\n updatedAt: row.original.updatedAt,\n }\n // check for thumbnail override\n if (row.original.thumbnail) {\n thumbnail = row.original.thumbnail\n }\n return (\n <ThumbnailWidget\n id={cellId}\n entityId={thumbnail.entityId}\n entityType={thumbnail.entityType}\n updatedAt={thumbnail.updatedAt}\n icon={row.original.icon}\n projectName={meta?.projectName as string}\n className={clsx('thumbnail', {\n loading: row.original.isLoading,\n })}\n isPlayable={row.original.hasReviewables}\n />\n )\n },\n })\n }\n\n if (isIncluded('name')) {\n staticColumns.push({\n id: 'name',\n accessorKey: 'name',\n header: nameLabel,\n minSize: MIN_SIZE,\n sortingFn: withLoadingStateSort(pathSort),\n enableSorting: groupBy ? false : canSort('name'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: groupBy ? false : true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n const { isEditing } = useCellEditing()\n const { rowHeight = 40 } = useColumnSettingsContext()\n const cellId = getCellId(row.id, column.id)\n\n if (row.original.metaType) {\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', 'readonly', row.original.entityType)}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + 8px)`,\n pointerEvents: 'none',\n }}\n tabIndex={0}\n >\n <MetaWidget metaType={row.original.metaType} label={row.original.label} />\n </TableCellContent>\n )\n }\n\n if (row.original.entityType === NEXT_PAGE_ID && row.original.group) {\n return (\n <LoadMoreWidget\n id={row.original.group.value}\n onLoadMore={(id) => meta?.loadMoreRows?.(id)}\n />\n )\n }\n\n const isExpandable =\n row.getCanExpand() &&\n !!row.originalSubRows &&\n (isEntityExpandable(row.original.entityType) || !!row.original.group)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', row.original.entityType, {\n loading: row.original.isLoading,\n hierarchy: showHierarchy,\n })}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + ${\n isExpandable || !row.getCanExpand() ? 0 : 32\n }px + 8px)`,\n }}\n tabIndex={0}\n >\n {row.original.group ? (\n <GroupHeaderWidget\n id={row.id}\n label={row.original.group.label}\n name={row.original.name}\n icon={row.original.group.icon}\n img={row.original.group.img}\n color={row.original.group.color}\n count={row.original.group.count}\n isExpanded={row.getIsExpanded()}\n isEmpty={row.subRows.length === 0 && !row.original.metaType}\n toggleExpanded={row.getToggleExpandedHandler()}\n />\n ) : (\n <EntityNameWidget\n id={row.id}\n label={row.original.label}\n name={row.original.name}\n path={!showHierarchy ? '/' + row.original.parents?.join('/') : undefined}\n icon={row.original.icon}\n type={row.original.entityType}\n isExpandable={isExpandable}\n isExpanded={row.getIsExpanded()}\n toggleExpandAll={() => meta?.toggleExpandAll?.([row.id])}\n toggleExpanded={row.getToggleExpandedHandler()}\n rowHeight={rowHeight}\n columnDisplayConfig={getColumnDisplayConfig(meta?.columnsConfig, 'name')}\n />\n )}\n {isEditing(cellId) && (\n <CellWidget\n rowId={id}\n className={clsx('name', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n valueData={\n {\n name: row.original.name,\n label: row.original.label,\n meta,\n entityRowId: id,\n columnId: column.id,\n hasVersions: !!row.original.hasVersions,\n } as NameWidgetData\n }\n entityType={type}\n attributeData={{ type: 'name' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={meta?.readOnly?.includes(column.id)}\n />\n )}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('status')) {\n staticColumns.push({\n id: 'status',\n accessorKey: 'status',\n minSize: MIN_SIZE,\n header: 'Status',\n sortingFn: withLoadingStateSort((a, b, c) =>\n attribSort(a, b, c, { enum: options.status, type: 'string' }),\n ),\n sortDescFirst: true,\n enableSorting: canSort('status'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('status', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={meta?.options?.status.filter((s) => s.scope?.includes(type))}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n pt: {\n template: {\n pt: {\n icon: {\n style: {\n fontVariationSettings: \"'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 20\",\n },\n },\n },\n },\n },\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('entityType')) {\n staticColumns.push({\n id: 'entityType',\n accessorKey: 'entityType',\n header: 'Entity Type',\n minSize: 20,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.alphanumeric),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const cellId = getCellId(row.id, column.id)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('entityType', type, { loading: row.original.isLoading })}\n tabIndex={0}\n >\n <Icon icon={getEntityTypeIcon(type)} /> {upperFirst(value)}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('subType')) {\n staticColumns.push({\n id: 'subType',\n accessorKey: 'subType',\n header: scopes.includes('product') || scopes.includes('version') ? 'Product type' : 'Type',\n minSize: MIN_SIZE,\n enableSorting: canSort('subType'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort((a, b, c) =>\n attribSort(a, b, c, { enum: [...options.folderType, ...options.taskType], type: 'string' }),\n ),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const fieldId = type === 'folder' ? 'folderType' : 'taskType'\n const meta = table.options.meta\n const folderHasVersions = type === 'folder' && row.original.hasVersions\n return (\n <CellWidget\n rowId={id}\n className={clsx('subType', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={\n type === 'folder'\n ? meta?.options?.folderType\n : type === 'task'\n ? meta?.options?.taskType\n : []\n }\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: fieldId, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={\n meta?.readOnly?.includes(column.id) ||\n meta?.readOnly?.includes(fieldId) ||\n folderHasVersions\n }\n tooltip={\n folderHasVersions\n ? 'Folder type cannot be edited when versions exist within the folder'\n : undefined\n }\n />\n )\n },\n })\n }\n\n if (isIncluded('assignees')) {\n staticColumns.push({\n id: 'assignees',\n accessorKey: 'assignees',\n header: 'Assignees',\n minSize: MIN_SIZE,\n enableSorting: canSort('assignees'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(valueLengthSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n if (type === 'folder')\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value=\"\"\n isPlaceholder\n />\n )\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n multiSelectClose: value?.length === 0, // close the dropdown on first assignment\n search: true, // enable search at all times\n multipleOverride: false,\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('folder')) {\n staticColumns.push({\n id: 'folder',\n accessorKey: 'folder',\n header: 'Folder name',\n minSize: MIN_SIZE,\n enableSorting: canSort('folderName'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('folder', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // only show authors column for products\n if (isIncluded('author') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'author',\n accessorKey: 'author',\n header: 'Author',\n minSize: MIN_SIZE,\n enableSorting: canSort('author'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('author', { loading: row.original.isLoading })}\n columnId={column.id}\n value={[value]}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isReadOnly={true}\n isInherited={type === 'product'} // products do not have authors, we just show the featured version's author\n />\n )\n },\n })\n }\n\n // version column for versions\n if (isIncluded('version') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'version',\n accessorKey: 'version',\n header: 'Version',\n minSize: MIN_SIZE,\n enableSorting: canSort('version'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n let versionValue = row.original.versionName || value\n if (row.original.entityType === 'product') {\n // show summary of versions for products\n versionValue = `${row.original.versionName} (${row.original.versionsCount || 0} versions)`\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('version', { loading: row.original.isLoading })}\n columnId={column.id}\n value={versionValue}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // product name column for versions and products\n if (isIncluded('product') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'product',\n accessorKey: 'product',\n header: 'Product name',\n minSize: MIN_SIZE,\n enableSorting: canSort('product'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('product', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n if (isIncluded('tags')) {\n staticColumns.push({\n id: 'tags',\n accessorKey: 'tags',\n header: 'Tags',\n minSize: MIN_SIZE,\n enableSorting: canSort('tags'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(valueLengthSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('tags', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.tag}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n enableCustomValues\n />\n )\n },\n })\n }\n\n if (isIncluded('createdAt')) {\n staticColumns.push({\n id: 'createdAt',\n accessorKey: 'createdAt',\n header: 'Created at',\n minSize: MIN_SIZE,\n enableSorting: canSort('createdAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.datetime),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('createdAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n if (isIncluded('updatedAt')) {\n staticColumns.push({\n id: 'updatedAt',\n accessorKey: 'updatedAt',\n header: 'Updated at',\n minSize: MIN_SIZE,\n enableSorting: canSort('updatedAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.datetime),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('updatedAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n const attributeColumns: ColumnDef<TableRow>[] = attribs\n .filter((attrib) => {\n // filter out attributes that are out of scope\n if (attrib.scope && !attrib.scope.some((s) => scopes.includes(s))) return false\n\n const columnId = 'attrib_' + attrib.name\n // Check if the specific attribute column is excluded\n // or if all built-in attributes are excluded and this is a built-in attribute\n if (!isIncluded(columnId)) return false\n if (attrib.builtin && !isIncluded('attrib')) return false\n return true\n })\n .map((attrib) => {\n const attribColumn: ColumnDef<TableRow> = {\n id: 'attrib_' + attrib.name,\n accessorKey: 'attrib.' + attrib.name,\n header: attrib.data.title || attrib.name,\n minSize: MIN_SIZE,\n filterFn: 'fuzzy' as FilterFnOption<TableRow>,\n sortingFn: withLoadingStateSort((a, b, c) => attribSort(a, b, c, attrib.data)),\n enableSorting: canSort(attrib.name) && canSort('attrib'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const columnIdParsed = column.id.replace('attrib_', '')\n const { value, id, type } = getValueIdType(row, columnIdParsed, 'attrib')\n const isInherited = !row.original.ownAttrib?.includes(columnIdParsed)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const outOfScopeAndNoValue =\n !attrib.scope?.includes(type as (typeof attrib.scope)[number]) &&\n (value === null || value === undefined)\n\n // if the attribute is not in scope, we should nothing\n if (outOfScopeAndNoValue) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('attrib', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: attrib.data.type || 'string' }}\n options={attrib.data.enum || []}\n isCollapsed={!!row.original.childOnlyMatch}\n isInherited={isInherited}\n isReadOnly={\n // check attrib is not read only\n attrib.readOnly ||\n // check if there is any other reason the cell should be read only\n meta?.readOnly?.some(\n (id) => id === columnIdParsed || (id === 'attrib' && attrib.builtin),\n )\n }\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: columnIdParsed, value, type, isAttrib: true, rowId: row.id },\n { selection: !!attrib.data.enum?.length ? meta?.selection : undefined },\n )\n }\n />\n )\n },\n }\n return attribColumn\n })\n\n const linkColumns: ColumnDef<TableRow>[] = !includeLinks\n ? []\n : links\n .filter((link) => {\n // Check if the link type is excluded\n if (!isIncluded(link.linkType) || !isIncluded('link')) return false\n // Check if inputType and outputType are in scopes\n if (!scopes.includes(link.inputType) && !scopes.includes(link.outputType)) return false\n return true\n })\n .flatMap((link) => {\n const createLinkColumn = (direction: 'in' | 'out'): ColumnDef<TableRow> => {\n return {\n id: getLinkColumnId(link, direction),\n accessorKey: `links.${getLinkKey(link, direction)}`,\n header: () => (\n <LinkColumnHeader>\n {getLinkLabel(link, direction)}{' '}\n <Icon\n icon={getEntityTypeIcon(direction === 'in' ? link.inputType : link.outputType)}\n />\n </LinkColumnHeader>\n ),\n minSize: MIN_SIZE,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column }) => {\n const columnIdParsed = column.id.replace('link_', '')\n\n const { id, value } = getValueIdType(row, columnIdParsed, 'links')\n const cellValue = value?.map((v: any) => v.label)\n const valueData: LinkWidgetData = {\n links: value,\n direction: direction,\n entityId: row.original.entityId || row.original.id,\n entityType: row.original.entityType,\n link: {\n label: link.linkType,\n linkType: link.name,\n targetEntityType: direction === 'in' ? link.inputType : link.outputType,\n },\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('links', { loading: row.original.isLoading })}\n columnId={column.id}\n value={cellValue}\n valueData={valueData}\n folderId={row.original.folderId}\n attributeData={{ type: 'links' }}\n />\n )\n },\n }\n }\n\n return [createLinkColumn('in'), createLinkColumn('out')]\n })\n\n const allColumns = [...staticColumns, ...attributeColumns, ...linkColumns]\n\n // Add extra columns if provided\n if (extraColumns) {\n extraColumns.forEach(({ column, position = -1 }) => {\n if (position >= 0 && position < allColumns.length) {\n allColumns.splice(position, 0, column)\n } else {\n allColumns.push(column)\n }\n })\n }\n\n return allColumns\n}\n\nexport default buildTreeTableColumns\n\nexport const getValueIdType = (\n row: Row<TableRow>,\n field: string,\n nestedField?: keyof TableRow,\n): {\n value: any\n id: string\n type: string\n} => ({\n value: nestedField\n ? (row.original[nestedField as keyof TableRow] as any)?.[field]\n : (row.original[field as keyof TableRow] as any),\n id: row.id,\n type: row.original.entityType,\n})\n"],"names":["isEntityExpandable","entityType","MIN_SIZE","withLoadingStateSort","sortFn","rowA","rowB","args","pathSort","labelA","labelB","valueLengthSort","columnId","valueA","getCellValue","valueB","lengthA","lengthB","attribSort","attrib","indexA","o","sortingFns","getLinkLabel","link","direction","getLinkKey","getLinkColumnId","buildTreeTableColumns","scopes","attribs","links","includeLinks","showHierarchy","options","excluded","excludedSorting","extraColumns","groupBy","nameLabel","staticColumns","isIncluded","id","canSort","ROW_SELECTION_COLUMN_ID","jsx","RowSelectionHeader","row","SelectionCell","column","table","meta","cellId","getCellId","thumbnail","ThumbnailWidget","clsx","value","type","getValueIdType","isEditing","useCellEditing","rowHeight","useColumnSettingsContext","TableCellContent","MetaWidget","NEXT_PAGE_ID","LoadMoreWidget","_a","isExpandable","jsxs","GroupHeaderWidget","EntityNameWidget","getColumnDisplayConfig","CellWidget","_b","a","b","c","s","isEntityRestricted","Icon","getEntityTypeIcon","upperFirst","fieldId","folderHasVersions","_c","_d","versionValue","attributeColumns","columnIdParsed","isInherited","linkColumns","createLinkColumn","LinkColumnHeader","cellValue","v","valueData","allColumns","position","field","nestedField"],"mappings":"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"}
|