@ynput/ayon-frontend-shared 0.2.26 → 0.2.28
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 +25 -22
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/Views.cjs.js +1 -1
- package/dist/Views.cjs.js.map +1 -1
- package/dist/Views.es.js +13 -11
- package/dist/Views.es.js.map +1 -1
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +153 -151
- package/dist/components.cjs.js +1 -1
- package/dist/components.es.js +62 -51
- package/dist/components.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +12 -6
- package/dist/index.es.js.map +1 -1
- package/dist/shared/src/api/generated/entityLists.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/entityLists.es.js.map +1 -1
- package/dist/shared/src/api/generated/users.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/users.es.js.map +1 -1
- package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/views.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +142 -117
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js +110 -95
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +21 -17
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/components/AccessUser/AccessUser.cjs.js +2 -0
- package/dist/shared/src/components/AccessUser/AccessUser.cjs.js.map +1 -0
- package/dist/shared/src/components/AccessUser/AccessUser.es.js +33 -0
- package/dist/shared/src/components/AccessUser/AccessUser.es.js.map +1 -0
- package/dist/shared/src/components/AccessUser/AccessUser.styled.cjs.js +42 -0
- package/dist/shared/src/components/AccessUser/AccessUser.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/AccessUser/AccessUser.styled.es.js +46 -0
- package/dist/shared/src/components/AccessUser/AccessUser.styled.es.js.map +1 -0
- package/dist/shared/src/components/DetailsMetaData/DetailsMetaData.cjs.js +34 -0
- package/dist/shared/src/components/DetailsMetaData/DetailsMetaData.cjs.js.map +1 -0
- package/dist/shared/src/components/DetailsMetaData/DetailsMetaData.es.js +46 -0
- package/dist/shared/src/components/DetailsMetaData/DetailsMetaData.es.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +20 -10
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +81 -67
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +3 -3
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +59 -52
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.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 +5 -2
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.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 +5 -2
- package/dist/shared/src/components/LinksManager/AddNewLinks.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 +5 -2
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +2 -0
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -0
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +205 -0
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -0
- package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +2 -0
- package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -0
- package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +25 -0
- package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -0
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +3 -3
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +5 -5
- package/dist/shared/src/components/Powerpack/PowerpackButton.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 +5 -2
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.cjs.js +9 -0
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.cjs.js.map +1 -0
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.es.js +25 -0
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.es.js.map +1 -0
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +7 -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 +18 -21
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.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 +5 -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 +6 -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 +5 -2
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.cjs.js +2 -0
- package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.cjs.js.map +1 -0
- package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.es.js +17 -0
- package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.es.js.map +1 -0
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +2 -2
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +5 -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 +5 -2
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.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 +5 -2
- package/dist/shared/src/containers/Actions/ActionConfigDialog.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 +5 -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 +146 -157
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.cjs.js +7 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.es.js +13 -6
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.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 +5 -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 +6 -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 +6 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.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 +5 -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 +5 -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 +5 -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 +5 -2
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.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 +413 -396
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +104 -25
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +131 -52
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.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 +136 -129
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +16 -53
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +100 -120
- 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 +5 -2
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js +7 -3
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js +12 -8
- package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.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 +5 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +3 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +250 -235
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.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 +24 -21
- 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 +5 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +10 -10
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +13 -9
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.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 +65 -60
- 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 +5 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.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 +5 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.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 +5 -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 +5 -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 +5 -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 +5 -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 +16 -13
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.es.js +41 -14
- package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +7 -7
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +110 -104
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js +8 -8
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +44 -43
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.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 +7 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.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 +5 -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 +118 -103
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js +16 -4
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js +13 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js +62 -50
- package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js.map +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.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.cjs.js +2 -0
- package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.es.js +64 -0
- package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.es.js.map +1 -0
- package/dist/shared/src/context/MenuContext.cjs.js +2 -0
- package/dist/shared/src/context/MenuContext.cjs.js.map +1 -0
- package/dist/shared/src/context/MenuContext.es.js +28 -0
- package/dist/shared/src/context/MenuContext.es.js.map +1 -0
- 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 +20 -15
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +19 -19
- package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/Menu.cjs.js +2 -0
- package/dist/src/components/Menu/MenuComponents/Menu.cjs.js.map +1 -0
- package/dist/src/components/Menu/MenuComponents/Menu.es.js +55 -0
- package/dist/src/components/Menu/MenuComponents/Menu.es.js.map +1 -0
- package/dist/src/components/Menu/MenuComponents/Menu.styled.cjs.js +254 -0
- package/dist/src/components/Menu/MenuComponents/Menu.styled.cjs.js.map +1 -0
- package/dist/src/components/Menu/MenuComponents/Menu.styled.es.js +265 -0
- package/dist/src/components/Menu/MenuComponents/Menu.styled.es.js.map +1 -0
- package/dist/src/components/Menu/MenuComponents/MenuContainer2.cjs.js +2 -0
- package/dist/src/components/Menu/MenuComponents/MenuContainer2.cjs.js.map +1 -0
- package/dist/src/components/Menu/MenuComponents/MenuContainer2.es.js +80 -0
- package/dist/src/components/Menu/MenuComponents/MenuContainer2.es.js.map +1 -0
- package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js +2 -0
- package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js.map +1 -0
- package/dist/src/components/Menu/MenuComponents/MenuItem.es.js +59 -0
- package/dist/src/components/Menu/MenuComponents/MenuItem.es.js.map +1 -0
- package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js +2 -0
- package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js.map +1 -0
- package/dist/src/components/Menu/MenuComponents/MenuList.es.js +112 -0
- package/dist/src/components/Menu/MenuComponents/MenuList.es.js.map +1 -0
- package/dist/src/components/Menu/MenuComponents/useMenuPosition.cjs.js +2 -0
- package/dist/src/components/Menu/MenuComponents/useMenuPosition.cjs.js.map +1 -0
- package/dist/src/components/Menu/MenuComponents/useMenuPosition.es.js +35 -0
- package/dist/src/components/Menu/MenuComponents/useMenuPosition.es.js.map +1 -0
- package/dist/types/api/generated/entityLists.d.ts +8 -8
- package/dist/types/api/generated/users.d.ts +18 -14
- package/dist/types/api/generated/views.d.ts +47 -9
- package/dist/types/api/queries/entityLists/getLists.d.ts +133 -0
- package/dist/types/api/queries/entityLists/types.d.ts +2 -1
- package/dist/types/api/queries/permissions/getPermissions.d.ts +22 -22
- package/dist/types/api/queries/users/getUsers.d.ts +132 -0
- package/dist/types/api/queries/users/updateUsers.d.ts +3 -3
- package/dist/types/components/AccessUser/AccessUser.d.ts +22 -0
- package/dist/types/components/AccessUser/AccessUser.styled.d.ts +1 -0
- package/dist/types/components/AccessUser/index.d.ts +1 -0
- package/dist/types/components/DetailsMetaData/DetailsMetaData.d.ts +8 -0
- package/dist/types/components/DetailsMetaData/index.d.ts +1 -0
- package/dist/types/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.d.ts +4 -0
- package/dist/types/components/ListAttributeForm/ListAttributeForm.d.ts +13 -0
- package/dist/types/components/ListAttributeForm/index.d.ts +1 -0
- package/dist/types/components/ListMetaData/ListMetaData.d.ts +8 -0
- package/dist/types/components/ListMetaData/index.d.ts +1 -0
- package/dist/types/components/Powerpack/RequiredPowerpackVersion.d.ts +5 -0
- package/dist/types/components/Powerpack/index.d.ts +1 -0
- package/dist/types/components/ShareOptionIcon/ShareOptionIcon.d.ts +10 -0
- package/dist/types/components/ShareOptionIcon/index.d.ts +2 -0
- package/dist/types/components/index.d.ts +4 -0
- package/dist/types/containers/DetailsPanel/DetailsPanel.styled.d.ts +7 -0
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.styled.d.ts +3 -1
- package/dist/types/containers/ProjectTreeTable/components/ColumnHeaderMenu.d.ts +4 -1
- package/dist/types/containers/ProjectTreeTable/context/ProjectDataContext.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardTypes.d.ts +3 -1
- package/dist/types/containers/ProjectTreeTable/hooks/useAttributesList.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/utils/getReadOnlyLists.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/widgets/BooleanWidget.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/widgets/EnumCellValue.d.ts +2 -2
- package/dist/types/containers/SimpleTable/SimpleTable.d.ts +3 -0
- package/dist/types/containers/SimpleTable/SimpleTableRowTemplate.d.ts +5 -1
- package/dist/types/containers/Views/hooks/pages/useReportsViewSettings.d.ts +11 -0
- package/dist/types/containers/Views/index.d.ts +6 -2
- package/dist/types/context/MenuContext.d.ts +12 -0
- package/dist/types/context/PowerpackContext.d.ts +1 -1
- package/dist/types/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectTreeTable.es.js","sources":["../../../../../src/containers/ProjectTreeTable/ProjectTreeTable.tsx"],"sourcesContent":["import { useMemo, useRef, useEffect, memo, CSSProperties, useCallback, UIEventHandler } from 'react' // Added useCallback\nimport { useVirtualizer, VirtualItem, Virtualizer } from '@tanstack/react-virtual'\n// TanStack Table imports\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n filterFns,\n flexRender,\n Row,\n getSortedRowModel,\n Cell,\n Column,\n Table,\n Header,\n HeaderGroup,\n RowData,\n ExpandedState,\n} from '@tanstack/react-table'\n\n// Utility imports\nimport clsx from 'clsx'\n\n// Type imports\nimport type { TableRow } from './types/table'\n\n// Component imports\nimport buildTreeTableColumns, {\n DefaultColumns,\n TreeTableExtraColumn,\n} from './buildTreeTableColumns'\nimport * as Styled from './ProjectTreeTable.styled'\nimport { RowDragHandleCellContent, ColumnHeaderMenu } from './components'\nimport EmptyPlaceholder from '../../components/EmptyPlaceholder'\nimport HeaderActionButton from './components/HeaderActionButton'\n\n// Context imports\nimport { useCellEditing } from './context/CellEditingContext'\nimport { ROW_SELECTION_COLUMN_ID, useSelectionCellsContext } from './context/SelectionCellsContext'\nimport { ClipboardProvider } from './context/ClipboardContext'\nimport { useSelectedRowsContext } from './context/SelectedRowsContext'\nimport { useColumnSettingsContext } from './context/ColumnSettingsContext'\n\n// Hook imports\nimport useCustomColumnWidthVars from './hooks/useCustomColumnWidthVars'\nimport usePrefetchFolderTasks from './hooks/usePrefetchFolderTasks'\nimport useCellContextMenu, { HeaderLabel } from './hooks/useCellContextMenu'\nimport useColumnVirtualization from './hooks/useColumnVirtualization'\nimport useKeyboardNavigation from './hooks/useKeyboardNavigation'\n\n// EntityPickerDialog import\nimport { EntityPickerDialog } from '../EntityPickerDialog/EntityPickerDialog'\n// Move entity hook\nimport { useMoveEntities } from './hooks/useMoveEntities'\nimport { useProjectDataContext } from '@shared/containers'\n\n// Utility function imports\nimport { getCellId, parseCellId } from './utils/cellUtils'\nimport { generateLoadingRows, generateDummyAttributes } from './utils/loadingUtils'\nimport { createPortal } from 'react-dom'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { AttributeEnumItem, ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport { ToggleExpandAll, useProjectTableContext } from './context/ProjectTableContext'\nimport { getEntityViewierIds, getReadOnlyLists, getTableFieldOptions } from './utils'\nimport { EntityUpdate } from './hooks/useUpdateTableData'\n\n// dnd-kit imports\nimport {\n DragOverlay,\n type UniqueIdentifier,\n // Removed: DndContext, KeyboardSensor, MouseSensor, TouchSensor, closestCenter, DragEndEvent, DragStartEvent, Active, Over, useSensor, useSensors\n} from '@dnd-kit/core'\n// import { restrictToVerticalAxis } from '@dnd-kit/modifiers'\nimport { SortableContext, verticalListSortingStrategy, useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport { EDIT_TRIGGER_CLASS } from './widgets/CellWidget'\nimport { toast } from 'react-toastify'\nimport { EntityMoveData } from '@shared/context/MoveEntityContext'\n\ntype CellUpdate = (\n entity: Omit<EntityUpdate, 'id'>,\n config?: { selection?: string[] },\n) => Promise<void>\n\ndeclare module '@tanstack/react-table' {\n interface TableMeta<TData extends RowData> {\n options?: BuiltInFieldOptions\n readOnly?: ProjectTreeTableProps['readOnly']\n projectName?: string\n updateEntities?: CellUpdate\n toggleExpandAll?: ToggleExpandAll\n selection?: string[]\n }\n}\n\n//These are the important styles to make sticky column pinning work!\n//Apply styles like this using your CSS strategy of choice with this kind of logic to head cells, data cells, footer cells, etc.\n//View the index.css file for more needed styles such as border-collapse: separate\nconst getCommonPinningStyles = (column: Column<TableRow, unknown>): CSSProperties => {\n const isPinned = column.getIsPinned()\n const offset =\n column.id !== ROW_SELECTION_COLUMN_ID && column.id !== DRAG_HANDLE_COLUMN_ID ? -30 : 0\n\n return {\n left: isPinned === 'left' ? `${column.getStart('left') + offset}px` : undefined, // Removed offset\n right: isPinned === 'right' ? `${column.getAfter('right')}px` : undefined,\n position: isPinned ? 'sticky' : 'relative',\n width: column.getSize(),\n zIndex: isPinned ? 100 : 0,\n }\n}\n\nconst getColumnWidth = (rowId: string, columnId: string) => {\n return `calc(var(--col-${columnId}-size) * 1px)`\n}\n// test\n\nexport const DRAG_HANDLE_COLUMN_ID = 'drag-handle'\n\nexport interface ProjectTreeTableProps extends React.HTMLAttributes<HTMLDivElement> {\n scope: string\n sliceId: string\n onScrollBottom?: React.HTMLAttributes<HTMLDivElement>['onScroll']\n onOpenNew?: (type: 'folder' | 'task') => void\n readOnly?: (DefaultColumns | string)[]\n excludedColumns?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n isLoading?: boolean\n clientSorting?: boolean\n sortableRows?: boolean\n onRowReorder?: (active: UniqueIdentifier, over: UniqueIdentifier | null) => void // Adjusted type for active/over if needed, or keep as Active, Over\n dndActiveId?: UniqueIdentifier | null // Added prop\n pt?: {\n container?: React.HTMLAttributes<HTMLDivElement>\n head?: Partial<TableHeadProps>\n }\n}\n\nexport const ProjectTreeTable = ({\n scope,\n sliceId,\n onScroll,\n onScrollBottom, // when the user scrolls to the bottom of the table, this callback is called\n onOpenNew,\n readOnly,\n excludedColumns,\n extraColumns,\n isLoading: isLoadingProp,\n clientSorting = false,\n sortableRows = false,\n onRowReorder,\n dndActiveId, // Destructure new prop\n pt,\n ...props\n}: ProjectTreeTableProps) => {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n setAllColumns,\n sorting,\n sortingOnChange,\n columnPinningOnChange,\n columnSizingOnChange,\n columnVisibilityOnChange,\n columnOrderOnChange,\n groupBy,\n } = useColumnSettingsContext()\n const isGrouping = !!groupBy\n\n const {\n projectInfo,\n tableData,\n attribFields,\n entitiesMap,\n users,\n isLoading: isLoadingData,\n error,\n isInitialized,\n expanded,\n projectName,\n updateExpanded,\n toggleExpandAll,\n showHierarchy,\n fetchNextPage,\n scopes,\n getEntityById,\n } = useProjectTableContext()\n\n const isLoading = isLoadingProp || isLoadingData\n\n const {\n statuses = [],\n folderTypes = [],\n taskTypes = [],\n tags = [],\n linkTypes = [],\n } = projectInfo || {}\n const options: BuiltInFieldOptions = useMemo(\n () =>\n getTableFieldOptions({\n users,\n statuses,\n folderTypes,\n taskTypes,\n tags,\n scopes,\n }),\n [users, statuses, folderTypes, taskTypes, scopes, tags],\n )\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n // reference of how many rows are currently rendered in the table\n const tableRowsCountRef = useRef(0)\n\n // Selection context\n const { registerGrid } = useSelectionCellsContext()\n\n // generate loading attrib and rows\n const { loadingAttrib, loadingRows } = useMemo(() => {\n // count the number of children in tbody\n const tableRowsCount = tableContainerRef.current?.querySelectorAll('tbody tr').length || 0\n const loadingAttrib = generateDummyAttributes()\n const loadingRows = generateLoadingRows(\n attribFields,\n showHierarchy && tableData.length > 0\n ? Math.min(tableRowsCount, 50)\n : groupBy\n ? Math.max(tableRowsCountRef.current, 50)\n : 50,\n )\n\n return { loadingAttrib, loadingRows }\n }, [])\n\n const showLoadingRows = !isInitialized || isLoading\n\n // Format readonly columns and attributes\n const { readOnlyColumns, readOnlyAttribs } = useMemo(\n () => getReadOnlyLists(attribFields, readOnly),\n [attribFields, readOnly],\n )\n\n const { selectedCells } = useSelectionCellsContext()\n const { updateEntities } = useCellEditing()\n\n const handleCellUpdate: CellUpdate = useCallback(\n async (entity, config) => {\n const { selection = [] } = config || {}\n const entitiesToUpdate: EntityUpdate[] = []\n if (!selection?.length) {\n entitiesToUpdate.push({ ...entity, id: entity.rowId })\n } else {\n // if includeSelection is true, update all the selected cells with the same columnId\n const { field, value, isAttrib, type } = entity\n for (const cellId of selectedCells) {\n const { colId, rowId } = parseCellId(cellId) || {}\n\n const entity = getEntityById(rowId || '')\n if (!entity) {\n console.warn(`Entity with ID ${rowId} not found for cell update.`)\n continue\n }\n\n if ((!colId?.includes('attrib_') || colId?.replace('attrib_', '') === field) && rowId) {\n entitiesToUpdate.push({\n field: field,\n rowId: rowId,\n id: entity.entityId,\n value: value,\n isAttrib: isAttrib,\n type: entity.entityType,\n })\n }\n }\n }\n\n if (!entitiesToUpdate.length) {\n console.warn('No entities to update, skipping updateEntities call.')\n toast.warn('No entities to update.')\n return\n }\n\n await updateEntities(entitiesToUpdate, true)\n },\n [updateEntities, getEntityById, selectedCells],\n )\n\n const columnAttribs = useMemo(\n () => (isInitialized ? attribFields : loadingAttrib),\n [attribFields, loadingAttrib, isInitialized],\n )\n const columns = useMemo(() => {\n const baseColumns = buildTreeTableColumns({\n attribs: columnAttribs,\n links: linkTypes,\n showHierarchy,\n options,\n extraColumns,\n excluded: excludedColumns,\n groupBy,\n })\n\n if (sortableRows) {\n return [\n {\n id: DRAG_HANDLE_COLUMN_ID,\n header: () => null,\n cell: () => null, // Content rendered by TableBodyRow\n size: 24,\n minSize: 24,\n maxSize: 24,\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n enablePinning: false, // Programmatically pinned\n },\n ...baseColumns,\n ]\n }\n return baseColumns\n }, [columnAttribs, showHierarchy, options, extraColumns, excludedColumns, sortableRows])\n\n // Keep ColumnSettingsProvider's allColumns ref up to date\n useEffect(() => {\n const ids = columns.map((c) => c.id!).filter(Boolean)\n setAllColumns(ids)\n }, [columns, setAllColumns])\n\n const table = useReactTable({\n data: showLoadingRows ? loadingRows : tableData,\n columns,\n defaultColumn: {\n minSize: 50,\n size: 150,\n },\n enableRowSelection: true, //enable row selection for all rows\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n getSubRows: (row) => row.subRows,\n getRowCanExpand: () => true,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // EXPANDABLE\n onExpandedChange: updateExpanded,\n // SORTING\n getSortedRowModel: clientSorting ? getSortedRowModel() : undefined,\n onSortingChange: sortingOnChange,\n columnResizeMode: 'onChange',\n onColumnPinningChange: columnPinningOnChange,\n onColumnSizingChange: columnSizingOnChange,\n onColumnVisibilityChange: columnVisibilityOnChange,\n onColumnOrderChange: columnOrderOnChange,\n // @ts-ignore\n filterFns,\n state: {\n expanded,\n sorting,\n columnPinning: (() => {\n const leftPins: string[] = []\n if (sortableRows) {\n leftPins.push(DRAG_HANDLE_COLUMN_ID)\n }\n leftPins.push(ROW_SELECTION_COLUMN_ID)\n\n // Add other unique pins from context, ensuring they are not the programmatic ones\n const contextLeftPins = (columnPinning.left || []).filter(\n (id) => id !== DRAG_HANDLE_COLUMN_ID && id !== ROW_SELECTION_COLUMN_ID,\n )\n leftPins.push(...contextLeftPins)\n // Remove duplicates just in case, though filter should handle it\n const uniqueLeftPins = [...new Set(leftPins)]\n\n return {\n left: uniqueLeftPins,\n right: columnPinning.right,\n }\n })(),\n columnSizing,\n columnVisibility,\n columnOrder,\n },\n enableSorting: true,\n meta: {\n projectName,\n options,\n readOnly: readOnlyColumns,\n updateEntities: handleCellUpdate,\n toggleExpandAll,\n loadMoreTasks: fetchNextPage,\n selection: Array.from(selectedCells),\n },\n })\n\n // TODO: when there is data (like in error) then we have infinite rendering\n\n const { rows } = table.getRowModel()\n\n // update the tableRowsCountRef with the current number of rows\n useEffect(() => {\n tableRowsCountRef.current = rows.length\n }, [rows.length])\n\n // Register grid structure with selection context when rows or columns change\n useEffect(() => {\n if (!rows.length) return\n const rowIds = rows.map((row) => row.id)\n const colIds = table.getAllLeafColumns().map((col) => col.id)\n const colIdsSortedByPinning = [...colIds].sort((a, b) => {\n if (ROW_SELECTION_COLUMN_ID === b) return 1\n const colA = columnPinning.left?.includes(a) ? 0 : 1\n const colB = columnPinning.left?.includes(b) ? 0 : 1\n return colA - colB\n })\n\n registerGrid(rowIds, colIdsSortedByPinning)\n }, [rows, table.getAllLeafColumns(), columnPinning, ROW_SELECTION_COLUMN_ID, registerGrid])\n\n const visibleColumns = table.getVisibleLeafColumns()\n\n // Use the column virtualization hook\n const { columnVirtualizer, virtualPaddingLeft, virtualPaddingRight } = useColumnVirtualization({\n visibleColumns,\n tableContainerRef,\n columnPinning,\n columnSizing,\n columnOrder,\n })\n\n const columnSizeVars = useCustomColumnWidthVars(table, columnSizing)\n\n const attribByField = useMemo(() => {\n return attribFields.reduce((acc: Record<string, AttributeEnumItem[]>, attrib) => {\n if (attrib.data?.enum?.length) {\n acc[attrib.name] = attrib.data?.enum\n }\n return acc\n }, {})\n }, [attribFields])\n\n const rowOrderIds = useMemo(() => tableData.map((row) => row.id), [tableData])\n const draggedRowData = useMemo(() => {\n if (!dndActiveId || !sortableRows) return null // Use dndActiveId\n return tableData.find((r) => r.id === dndActiveId) // Use dndActiveId\n }, [dndActiveId, tableData, sortableRows])\n\n const combinedScrollHandler: UIEventHandler<HTMLDivElement> = useCallback(\n (e) => {\n // Call the original onScroll if provided\n onScroll?.(e)\n\n if (onScrollBottom) {\n const containerRefElement = e.currentTarget\n if (containerRefElement && !showHierarchy && !groupBy) {\n const { scrollHeight, scrollTop, clientHeight } = containerRefElement\n //once the user has scrolled within 500px of the bottom of the table, fetch more data if we can\n if (scrollHeight - scrollTop - clientHeight < 500 && !isLoading) {\n onScrollBottom(e)\n }\n }\n }\n },\n [onScroll, onScrollBottom, showHierarchy, groupBy, isLoading],\n )\n\n const { projectName: contextProjectName } = useProjectDataContext()\n\n // Get move entity functions for the dialog\n const {\n isEntityPickerOpen,\n handleMoveSubmit,\n closeMoveDialog,\n movingEntities,\n handleMoveToRoot,\n getDisabledFolderIds,\n getDisabledMessage,\n } = useMoveEntities({\n projectName: contextProjectName || projectName || '',\n })\n\n const handleMoveSubmitWithExpand = (selection: string[]) => {\n handleMoveSubmit(selection)\n const folderIdToExpand = selection[0]\n\n updateExpanded((prevExpanded: ExpandedState) => {\n if (typeof prevExpanded === 'boolean') {\n if (prevExpanded) {\n return prevExpanded\n }\n return { [folderIdToExpand]: true }\n }\n\n if (prevExpanded[folderIdToExpand]) {\n return prevExpanded\n }\n\n return {\n ...prevExpanded,\n [folderIdToExpand]: true,\n }\n })\n }\n\n const tableUiContent = (\n <ClipboardProvider\n entitiesMap={entitiesMap}\n columnEnums={{ ...options, ...attribByField }}\n columnReadOnly={readOnlyAttribs}\n >\n <Styled.TableWrapper {...props}>\n <Styled.TableContainer\n ref={tableContainerRef}\n style={{ height: '100%', padding: 0 }}\n onScroll={combinedScrollHandler}\n {...pt?.container}\n className={clsx('table-container', pt?.container?.className)}\n >\n <table\n style={{\n display: 'grid',\n borderCollapse: 'collapse',\n userSelect: 'none',\n ...columnSizeVars,\n width: table.getTotalSize(),\n cursor: table.getState().columnSizingInfo.isResizingColumn ? 'col-resize' : undefined,\n }}\n >\n <TableHead\n columnVirtualizer={columnVirtualizer}\n table={table}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n {...pt?.head}\n />\n <TableBody\n columnVirtualizer={columnVirtualizer}\n table={table}\n tableContainerRef={tableContainerRef}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n showHierarchy={showHierarchy}\n attribs={attribFields}\n onOpenNew={onOpenNew}\n rowOrderIds={rowOrderIds}\n sortableRows={sortableRows}\n error={error}\n isGrouping={isGrouping}\n />\n </table>\n </Styled.TableContainer>\n </Styled.TableWrapper>\n {/* Render EntityPickerDialog alongside table content */}\n {isEntityPickerOpen &&\n projectName &&\n movingEntities?.entities &&\n movingEntities.entities.length > 0 && (\n <EntityPickerDialog\n projectName={projectName}\n entityType=\"folder\"\n onSubmit={handleMoveSubmitWithExpand}\n onClose={closeMoveDialog}\n showMoveToRoot={movingEntities.entities.every(\n (entity: EntityMoveData) => entity.entityType === 'folder',\n )}\n onMoveToRoot={handleMoveToRoot}\n disabledIds={getDisabledFolderIds()}\n getDisabledMessage={getDisabledMessage}\n />\n )}\n </ClipboardProvider>\n )\n\n // Render DragOverlay if sortableRows and dndActiveId is present\n const dragOverlayPortal =\n sortableRows &&\n dndActiveId &&\n createPortal(\n <DragOverlay dropAnimation={null}>\n {draggedRowData\n ? (() => {\n const overlayRowInstance = table.getRowModel().rows.find((r) => r.id === dndActiveId)\n if (!overlayRowInstance) return null\n\n const tableWidth = table.getTotalSize()\n\n return (\n <table\n style={{\n width: tableWidth,\n borderCollapse: 'collapse',\n backgroundColor: 'var(--md-sys-color-surface-container-high)',\n boxShadow: '0 0 10px rgba(0,0,0,0.2)',\n ...columnSizeVars,\n }}\n >\n <tbody>\n <Styled.TR style={{ display: 'flex', userSelect: 'none' }}>\n {virtualPaddingLeft ? (\n <td style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {columnVirtualizer.getVirtualItems().map((vc) => {\n const cell = overlayRowInstance.getVisibleCells()[vc.index]\n if (!cell) return null\n\n const cellStyleBase: CSSProperties = {\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(overlayRowInstance.id, cell.column.id),\n display: 'flex',\n alignItems: 'center',\n height: 40,\n }\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TableCell\n key={`overlay-drag-${cell.id}`}\n style={{ ...cellStyleBase, justifyContent: 'center' }}\n className={clsx(cell.column.id)}\n >\n <Icon icon=\"drag_handle\" /> {/* Static icon */}\n </Styled.TableCell>\n )\n }\n return (\n <TableCellMemo\n cell={cell}\n cellId={`overlay-${getCellId(overlayRowInstance.id, cell.column.id)}`}\n rowId={overlayRowInstance.id}\n key={`overlay-cell-${cell.id}`}\n showHierarchy={showHierarchy}\n />\n )\n })}\n {virtualPaddingRight ? (\n <td style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.TR>\n </tbody>\n </table>\n )\n })()\n : null}\n </DragOverlay>,\n document.body,\n )\n\n if (sortableRows) {\n return (\n <>\n {tableUiContent}\n {dragOverlayPortal}\n </>\n )\n } else {\n return tableUiContent\n }\n}\n\ninterface TableHeadProps extends React.HTMLAttributes<HTMLTableSectionElement> {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n}\n\nconst TableHead = ({\n columnVirtualizer,\n table,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n ...props\n}: TableHeadProps) => {\n return (\n <Styled.TableHeader {...props}>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableHeadRow\n key={headerGroup.id}\n columnVirtualizer={columnVirtualizer}\n headerGroup={headerGroup}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n />\n ))}\n </Styled.TableHeader>\n )\n}\n\ninterface TableHeadRowProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n headerGroup: HeaderGroup<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n}\n\nconst TableHeadRow = ({\n columnVirtualizer,\n headerGroup,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n}: TableHeadRowProps) => {\n const virtualColumns = columnVirtualizer.getVirtualItems()\n return (\n <Styled.ColumnHeader key={headerGroup.id} style={{ display: 'flex' }}>\n {virtualPaddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {virtualColumns.map((virtualColumn) => {\n const header = headerGroup.headers[virtualColumn.index]\n\n return (\n <TableHeadCell\n key={header.id}\n header={header}\n isLoading={isLoading}\n isReadOnly={readOnlyColumns?.includes(header.id)}\n canSort={header.column.getCanSort()}\n canFilter={header.column.getCanFilter()}\n canHide={header.column.getCanHide()}\n canPin={header.column.getCanPin()}\n canResize={header.column.getCanResize()}\n sortableRows={sortableRows}\n />\n )\n })}\n {virtualPaddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.ColumnHeader>\n )\n}\n\ninterface TableHeadCellProps {\n header: Header<TableRow, unknown>\n isLoading: boolean\n canSort?: boolean\n canFilter?: boolean\n canHide?: boolean\n canPin?: boolean\n canResize?: boolean\n isReadOnly?: boolean\n sortableRows?: boolean\n}\n\nconst TableHeadCell = ({\n header,\n isLoading,\n canFilter,\n canHide,\n canSort,\n canPin,\n canResize,\n isReadOnly,\n sortableRows,\n}: TableHeadCellProps) => {\n const { column } = header\n\n return (\n <Styled.HeaderCell\n className={clsx(header.id, 'shimmer-dark', 'aaa', {\n loading: isLoading,\n 'last-pinned-left': column.getIsPinned() === 'left' && column.getIsLastColumn('left'),\n resizing: column.getIsResizing(),\n })}\n key={header.id}\n style={{\n ...getCommonPinningStyles(column),\n width: getColumnWidth('', column.id),\n }}\n >\n {header.isPlaceholder ? null : (\n <Styled.TableCellContent className={clsx('bold', 'header')}>\n {flexRender(column.columnDef.header, header.getContext())}\n {isReadOnly && (\n <Icon icon=\"lock\" data-tooltip={'You only have permission to read this column.'} />\n )}\n\n <Styled.HeaderButtons className=\"actions\">\n {(canHide || canPin || canSort) && (\n <ColumnHeaderMenu\n header={header}\n canHide={canHide}\n canPin={canPin}\n canSort={canSort}\n isResizing={column.getIsResizing()}\n />\n )}\n\n {/* COLUMN SORTING */}\n {canSort && (\n <HeaderActionButton\n icon={'sort'}\n style={{\n transform: (column.getIsSorted() as string) === 'asc' ? 'scaleY(-1)' : undefined,\n }}\n onClick={column.getToggleSortingHandler()}\n selected={!!column.getIsSorted()}\n />\n )}\n </Styled.HeaderButtons>\n {canResize && (\n <Styled.ResizedHandler\n {...{\n onDoubleClick: () => column.resetSize(),\n onMouseDown: header.getResizeHandler(),\n onTouchStart: header.getResizeHandler(),\n className: clsx('resize-handle', {\n resizing: column.getIsResizing(),\n }),\n }}\n />\n )}\n </Styled.TableCellContent>\n )}\n </Styled.HeaderCell>\n )\n}\n\ninterface TableBodyProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n tableContainerRef: React.RefObject<HTMLDivElement>\n showHierarchy: boolean\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n attribs: ProjectTableAttribute[]\n onOpenNew?: (type: 'folder' | 'task') => void\n rowOrderIds: UniqueIdentifier[]\n sortableRows: boolean\n error?: string\n isGrouping: boolean\n}\n\nconst TableBody = ({\n columnVirtualizer,\n table,\n tableContainerRef,\n showHierarchy,\n virtualPaddingLeft,\n virtualPaddingRight,\n attribs,\n onOpenNew,\n rowOrderIds,\n sortableRows,\n error,\n isGrouping,\n}: TableBodyProps) => {\n const headerLabels = useMemo(() => {\n const allColumns = table.getAllColumns()\n const headers = allColumns\n .map((col) => {\n const headerId = col.id\n const header = col.columnDef.header\n if (typeof header === 'string' || typeof header === 'number') {\n return { label: header, id: headerId }\n }\n return null\n })\n .filter(Boolean)\n\n return headers as HeaderLabel[]\n }, [table.getAllColumns()])\n\n const cellContextMenuHook = useCellContextMenu({ attribs, onOpenNew, headerLabels })\n\n const handleTableBodyContextMenu = cellContextMenuHook.handleTableBodyContextMenu\n\n const { handlePreFetchTasks } = usePrefetchFolderTasks()\n\n const { rows } = table.getRowModel()\n\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n estimateSize: () => 40, //estimate row height for accurate scrollbar dragging\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement:\n typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n const virtualRows = rowVirtualizer.getVirtualItems()\n\n // Memoize the measureElement callback\n const measureRowElement = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n useKeyboardNavigation()\n\n const tbodyContent = (\n <tbody\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n position: 'relative',\n display: 'grid',\n }}\n onContextMenu={handleTableBodyContextMenu}\n onMouseOver={(e) => {\n handlePreFetchTasks(e)\n }}\n >\n {virtualRows.map((virtualRow, i) => {\n const row = rows[virtualRow.index] as Row<TableRow>\n // Add a check for row existence to prevent potential errors if data is out of sync\n if (!row) {\n console.warn('Virtualized row data not found for index:', virtualRow.index)\n return null\n }\n return (\n <TableBodyRow\n key={row.id + i.toString()} // dnd-kit needs this key to be stable and match the id in useSortable\n row={row}\n showHierarchy={showHierarchy}\n visibleCells={row.getVisibleCells()}\n virtualColumns={columnVirtualizer.getVirtualItems()}\n paddingLeft={virtualPaddingLeft}\n paddingRight={virtualPaddingRight}\n rowRef={measureRowElement}\n dataIndex={virtualRow.index}\n offsetTop={virtualRow.start}\n sortableRows={sortableRows}\n isGrouping={isGrouping}\n />\n )\n })}\n </tbody>\n )\n\n if (error) {\n return (\n tableContainerRef.current &&\n createPortal(\n <EmptyPlaceholder message=\"No items found\" error={error} />,\n tableContainerRef.current,\n )\n )\n }\n\n if (sortableRows) {\n return (\n <SortableContext items={rowOrderIds} strategy={verticalListSortingStrategy}>\n {tbodyContent}\n </SortableContext>\n )\n } else {\n return tbodyContent\n }\n}\n\ninterface TableBodyRowProps {\n row: Row<TableRow>\n showHierarchy: boolean\n visibleCells: Cell<TableRow, unknown>[]\n virtualColumns: VirtualItem[]\n paddingLeft: number | undefined\n paddingRight: number | undefined\n rowRef: (node: HTMLTableRowElement | null) => void\n dataIndex: number\n offsetTop: number\n sortableRows: boolean\n isGrouping: boolean\n}\n\nconst TableBodyRow = ({\n row,\n showHierarchy,\n visibleCells,\n virtualColumns,\n paddingLeft,\n paddingRight,\n rowRef,\n dataIndex,\n offsetTop,\n sortableRows,\n isGrouping = false,\n}: TableBodyRowProps) => {\n const sortable = sortableRows ? useSortable({ id: row.id }) : null\n\n const combinedRef = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (sortable) {\n sortable.setNodeRef(node)\n }\n // rowRef for virtualizer measurement\n // only measure if not actively being transformed by dnd-kit\n if (!(sortable && sortable.isDragging)) {\n rowRef(node)\n }\n },\n [sortable, rowRef],\n )\n\n // Attempt to combine dnd-kit transform with virtualizer's offsetTop\n const style: CSSProperties = {\n position: 'absolute', // Use absolute positioning for virtualized items\n top: offsetTop, // Position based on virtualizer's calculation (virtualRow.start)\n left: 0, // Span full width of the relative parent (tbody)\n right: 0, // Span full width\n height: 40, // Explicit height can be beneficial for absolute positioning\n zIndex: sortable && sortable.isDragging ? 0 : 1, // Ensure dragged item is above others\n display: 'flex', // Styled.TR is display:flex\n transform:\n sortable && sortable.transform ? CSS.Transform.toString(sortable.transform) : undefined, // Apply dnd-kit's transform for drag effect\n transition: sortable && sortable.transition ? sortable.transition : undefined,\n visibility: sortable && sortable.isDragging ? 'hidden' : 'visible', // Hide the row being dragged\n }\n\n return (\n <Styled.TR\n ref={combinedRef}\n data-index={dataIndex} //needed for dynamic row height measurement\n style={style}\n className={clsx({ 'group-row': row.original.group })}\n >\n {paddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingLeft }} />\n ) : null}\n {virtualColumns.map((vc, i) => {\n const cell = visibleCells[vc.index]\n if (!cell) return null // Should not happen in normal circumstances\n\n const cellId = getCellId(row.id, cell.column.id)\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TableCell\n key={cell.id + i.toString()}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(row.id, cell.column.id),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 40,\n }}\n className={clsx(cell.column.id, {\n 'last-pinned-left':\n cell.column.getIsPinned() === 'left' && cell.column.getIsLastColumn('left'),\n })}\n onMouseDown={(e) => e.stopPropagation()} // Prevent selection interference\n onMouseOver={(e) => e.stopPropagation()}\n // Removed onMouseUp stopPropagation to allow dnd-kit to handle it\n onDoubleClick={(e) => e.stopPropagation()}\n onContextMenu={(e) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n <RowDragHandleCellContent\n attributes={sortable?.attributes}\n listeners={sortable?.listeners}\n />\n </Styled.TableCell>\n )\n }\n return (\n <TableCellMemo\n cell={cell}\n cellId={cellId}\n rowId={row.id}\n key={cell.id + i.toString()}\n showHierarchy={showHierarchy}\n sortableRows={sortableRows}\n />\n )\n })}\n\n {paddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingRight }} />\n ) : null}\n </Styled.TR>\n )\n}\n\ninterface TableCellProps {\n cell: Cell<TableRow, unknown>\n cellId: string\n rowId: string\n className?: string\n showHierarchy: boolean\n sortableRows?: boolean\n}\n\nconst TableCell = ({\n cell,\n rowId,\n cellId,\n className,\n showHierarchy,\n sortableRows,\n ...props\n}: TableCellProps) => {\n const { getEntityById, onOpenPlayer } = useProjectTableContext()\n\n const {\n isCellSelected,\n isCellFocused,\n startSelection,\n extendSelection,\n endSelection,\n selectCell,\n focusCell,\n getCellBorderClasses,\n clearSelection,\n } = useSelectionCellsContext()\n\n const { isRowSelected } = useSelectedRowsContext()\n\n const { isEditing, setEditingCellId } = useCellEditing()\n\n const borderClasses = getCellBorderClasses(cellId)\n\n const isPinned = cell.column.getIsPinned()\n const isLastLeftPinnedColumn = isPinned === 'left' && cell.column.getIsLastColumn('left')\n const isRowSelectionColumn = cell.column.id === ROW_SELECTION_COLUMN_ID\n const isGroup = cell.row.original.entityType === 'group'\n\n return (\n <Styled.TableCell\n {...props}\n tabIndex={0}\n $isLastPinned={isLastLeftPinnedColumn} // is this column the last pinned column? Custom styling for borders.\n className={clsx(\n cell.column.id,\n {\n selected: isCellSelected(cellId),\n focused: isCellFocused(cellId),\n editing: isEditing(cellId),\n 'last-pinned-left': isLastLeftPinnedColumn,\n 'selected-row': isRowSelected(rowId),\n task: cell.row.original.entityType === 'task',\n },\n className,\n ...borderClasses,\n )}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(cell.row.id, cell.column.id),\n height: 40,\n }}\n onMouseDown={(e) => {\n // Only process left clicks (button 0), ignore right clicks\n if (e.button !== 0) return\n\n const target = e.target as HTMLElement\n\n // check we are not clicking on expander\n if (target.closest('.expander')) return\n\n // if we are clicking on an edit trigger, we need to start editing\n if (target.closest('.' + EDIT_TRIGGER_CLASS)) {\n if (!isCellSelected(cellId)) {\n // if the cell is not selected, select it and deselect all others\n selectCell(cellId, false, false)\n focusCell(cellId)\n }\n // start editing the cell\n setEditingCellId(cellId)\n\n return\n }\n\n // check we are not clicking in a dropdown\n if (target.closest('.options')) return\n\n // only name column can be selected for group rows\n if (isGroup && cell.column.id !== 'name') return clearSelection()\n\n const additive = e.metaKey || e.ctrlKey || isRowSelectionColumn\n if (e.shiftKey) {\n // Shift+click extends selection from anchor cell\n selectCell(cellId, additive, true) // true for range selection\n } else {\n // Normal click starts a new selection\n startSelection(cellId, additive)\n }\n }}\n onMouseOver={(e) => {\n if (e.buttons === 1) {\n // Left button is pressed during mouse move - drag selection\n extendSelection(cellId, isRowSelectionColumn)\n }\n }}\n onMouseUp={() => {\n endSelection(cellId)\n }}\n onDoubleClick={(e) => {\n // row selection on name column double click\n if (\n cell.column.id === 'name' &&\n !(e.target as HTMLElement).closest('.expander') &&\n !isGroup\n ) {\n // select the row by selecting the row-selection cell\n const rowSelectionCellId = getCellId(cell.row.id, ROW_SELECTION_COLUMN_ID)\n if (!isCellSelected(rowSelectionCellId)) {\n const additive = e.metaKey || e.ctrlKey\n selectCell(rowSelectionCellId, additive, false)\n }\n }\n // open the viewer on thumbnail double click\n if (cell.column.id === 'thumbnail') {\n if (onOpenPlayer) {\n const entity = getEntityById(cell.row.original.entityId || cell.row.id)\n if (entity) {\n const targetIds = getEntityViewierIds(entity)\n onOpenPlayer(targetIds, { quickView: true })\n }\n }\n }\n }}\n onContextMenu={(e) => {\n e.preventDefault()\n // if the cell is not selected, select it and deselect all others\n if (!isCellSelected(cellId)) {\n selectCell(cellId, false, false)\n }\n }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Styled.TableCell>\n )\n}\n\nconst TableCellMemo = memo(TableCell)\n"],"names":["getCommonPinningStyles","column","isPinned","offset","ROW_SELECTION_COLUMN_ID","DRAG_HANDLE_COLUMN_ID","getColumnWidth","rowId","columnId","ProjectTreeTable","scope","sliceId","onScroll","onScrollBottom","onOpenNew","readOnly","excludedColumns","extraColumns","isLoadingProp","clientSorting","sortableRows","onRowReorder","dndActiveId","pt","props","columnVisibility","columnPinning","columnOrder","columnSizing","setAllColumns","sorting","sortingOnChange","columnPinningOnChange","columnSizingOnChange","columnVisibilityOnChange","columnOrderOnChange","groupBy","useColumnSettingsContext","isGrouping","projectInfo","tableData","attribFields","entitiesMap","users","isLoadingData","error","isInitialized","expanded","projectName","updateExpanded","toggleExpandAll","showHierarchy","fetchNextPage","scopes","getEntityById","useProjectTableContext","isLoading","statuses","folderTypes","taskTypes","tags","linkTypes","options","useMemo","getTableFieldOptions","tableContainerRef","useRef","tableRowsCountRef","registerGrid","useSelectionCellsContext","loadingAttrib","loadingRows","tableRowsCount","_a","generateDummyAttributes","generateLoadingRows","showLoadingRows","readOnlyColumns","readOnlyAttribs","getReadOnlyLists","selectedCells","updateEntities","useCellEditing","handleCellUpdate","useCallback","entity","config","selection","entitiesToUpdate","field","value","isAttrib","type","cellId","colId","parseCellId","toast","columnAttribs","columns","baseColumns","buildTreeTableColumns","useEffect","ids","c","table","useReactTable","row","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","getSortedRowModel","filterFns","leftPins","contextLeftPins","id","rows","rowIds","colIdsSortedByPinning","col","a","b","colA","colB","_b","visibleColumns","columnVirtualizer","virtualPaddingLeft","virtualPaddingRight","useColumnVirtualization","columnSizeVars","useCustomColumnWidthVars","attribByField","acc","attrib","_c","rowOrderIds","draggedRowData","r","combinedScrollHandler","containerRefElement","scrollHeight","scrollTop","clientHeight","contextProjectName","useProjectDataContext","isEntityPickerOpen","handleMoveSubmit","closeMoveDialog","movingEntities","handleMoveToRoot","getDisabledFolderIds","getDisabledMessage","useMoveEntities","handleMoveSubmitWithExpand","folderIdToExpand","prevExpanded","tableUiContent","jsxs","ClipboardProvider","jsx","Styled.TableWrapper","Styled.TableContainer","clsx","TableHead","TableBody","EntityPickerDialog","dragOverlayPortal","createPortal","DragOverlay","overlayRowInstance","tableWidth","Styled.TR","vc","cell","cellStyleBase","Styled.TableCell","Icon","TableCellMemo","getCellId","Fragment","Styled.TableHeader","headerGroup","TableHeadRow","virtualColumns","Styled.ColumnHeader","virtualColumn","header","TableHeadCell","canFilter","canHide","canSort","canPin","canResize","isReadOnly","Styled.HeaderCell","Styled.TableCellContent","flexRender","Styled.HeaderButtons","ColumnHeaderMenu","HeaderActionButton","Styled.ResizedHandler","attribs","headerLabels","headerId","handleTableBodyContextMenu","useCellContextMenu","handlePreFetchTasks","usePrefetchFolderTasks","rowVirtualizer","useVirtualizer","element","virtualRows","measureRowElement","node","useKeyboardNavigation","tbodyContent","e","virtualRow","i","TableBodyRow","EmptyPlaceholder","SortableContext","verticalListSortingStrategy","visibleCells","paddingLeft","paddingRight","rowRef","dataIndex","offsetTop","sortable","useSortable","combinedRef","style","CSS","RowDragHandleCellContent","TableCell","className","onOpenPlayer","isCellSelected","isCellFocused","startSelection","extendSelection","endSelection","selectCell","focusCell","getCellBorderClasses","clearSelection","isRowSelected","useSelectedRowsContext","isEditing","setEditingCellId","borderClasses","isLastLeftPinnedColumn","isRowSelectionColumn","isGroup","target","EDIT_TRIGGER_CLASS","additive","rowSelectionCellId","targetIds","getEntityViewierIds","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProjectTreeTable.es.js","sources":["../../../../../src/containers/ProjectTreeTable/ProjectTreeTable.tsx"],"sourcesContent":["import { useMemo, useRef, useEffect, memo, CSSProperties, useCallback, UIEventHandler } from 'react' // Added useCallback\nimport { useVirtualizer, VirtualItem, Virtualizer } from '@tanstack/react-virtual'\n// TanStack Table imports\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n filterFns,\n flexRender,\n Row,\n getSortedRowModel,\n Cell,\n Column,\n Table,\n Header,\n HeaderGroup,\n RowData,\n ExpandedState,\n} from '@tanstack/react-table'\n\n// Utility imports\nimport clsx from 'clsx'\n\n// Type imports\nimport type { TableRow } from './types/table'\n\n// Component imports\nimport buildTreeTableColumns, {\n DefaultColumns,\n TreeTableExtraColumn,\n} from './buildTreeTableColumns'\nimport * as Styled from './ProjectTreeTable.styled'\nimport { RowDragHandleCellContent, ColumnHeaderMenu } from './components'\nimport EmptyPlaceholder from '../../components/EmptyPlaceholder'\nimport HeaderActionButton from './components/HeaderActionButton'\n\n// Context imports\nimport { useCellEditing } from './context/CellEditingContext'\nimport { ROW_SELECTION_COLUMN_ID, useSelectionCellsContext } from './context/SelectionCellsContext'\nimport { ClipboardProvider } from './context/ClipboardContext'\nimport { useSelectedRowsContext } from './context/SelectedRowsContext'\nimport { useColumnSettingsContext } from './context/ColumnSettingsContext'\nimport { useMenuContext } from '../../context/MenuContext'\n\n// Hook imports\nimport useCustomColumnWidthVars from './hooks/useCustomColumnWidthVars'\nimport usePrefetchFolderTasks from './hooks/usePrefetchFolderTasks'\nimport useCellContextMenu, { HeaderLabel } from './hooks/useCellContextMenu'\nimport useColumnVirtualization from './hooks/useColumnVirtualization'\nimport useKeyboardNavigation from './hooks/useKeyboardNavigation'\n\n// EntityPickerDialog import\nimport { EntityPickerDialog } from '../EntityPickerDialog/EntityPickerDialog'\n// Move entity hook\nimport { useMoveEntities } from './hooks/useMoveEntities'\nimport { useProjectDataContext } from '@shared/containers'\n\n// Utility function imports\nimport { getCellId, parseCellId } from './utils/cellUtils'\nimport { generateLoadingRows, generateDummyAttributes } from './utils/loadingUtils'\nimport { createPortal } from 'react-dom'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { AttributeEnumItem, ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport { ToggleExpandAll, useProjectTableContext } from './context/ProjectTableContext'\nimport { getEntityViewierIds, getReadOnlyLists, getTableFieldOptions } from './utils'\nimport { EntityUpdate } from './hooks/useUpdateTableData'\n\n// dnd-kit imports\nimport {\n DragOverlay,\n type UniqueIdentifier,\n // Removed: DndContext, KeyboardSensor, MouseSensor, TouchSensor, closestCenter, DragEndEvent, DragStartEvent, Active, Over, useSensor, useSensors\n} from '@dnd-kit/core'\n// import { restrictToVerticalAxis } from '@dnd-kit/modifiers'\nimport { SortableContext, verticalListSortingStrategy, useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport { EDIT_TRIGGER_CLASS } from './widgets/CellWidget'\nimport { toast } from 'react-toastify'\nimport { EntityMoveData } from '@shared/context/MoveEntityContext'\nimport { useSelector } from 'react-redux'\n\ntype CellUpdate = (\n entity: Omit<EntityUpdate, 'id'>,\n config?: { selection?: string[] },\n) => Promise<void>\n\ndeclare module '@tanstack/react-table' {\n interface TableMeta<TData extends RowData> {\n options?: BuiltInFieldOptions\n readOnly?: ProjectTreeTableProps['readOnly']\n projectName?: string\n updateEntities?: CellUpdate\n toggleExpandAll?: ToggleExpandAll\n selection?: string[]\n }\n}\n\n//These are the important styles to make sticky column pinning work!\n//Apply styles like this using your CSS strategy of choice with this kind of logic to head cells, data cells, footer cells, etc.\n//View the index.css file for more needed styles such as border-collapse: separate\nconst getCommonPinningStyles = (column: Column<TableRow, unknown>): CSSProperties => {\n const isPinned = column.getIsPinned()\n const offset =\n column.id !== ROW_SELECTION_COLUMN_ID && column.id !== DRAG_HANDLE_COLUMN_ID ? -30 : 0\n\n return {\n left: isPinned === 'left' ? `${column.getStart('left') + offset}px` : undefined, // Removed offset\n right: isPinned === 'right' ? `${column.getAfter('right')}px` : undefined,\n position: isPinned ? 'sticky' : 'relative',\n width: column.getSize(),\n zIndex: isPinned ? 100 : 0,\n }\n}\n\nconst getColumnWidth = (rowId: string, columnId: string) => {\n return `calc(var(--col-${columnId}-size) * 1px)`\n}\n// test\n\nexport const DRAG_HANDLE_COLUMN_ID = 'drag-handle'\n\nexport interface ProjectTreeTableProps extends React.HTMLAttributes<HTMLDivElement> {\n scope: string\n sliceId: string\n onScrollBottom?: React.HTMLAttributes<HTMLDivElement>['onScroll']\n onOpenNew?: (type: 'folder' | 'task') => void\n readOnly?: (DefaultColumns | string)[]\n excludedColumns?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n isLoading?: boolean\n clientSorting?: boolean\n sortableRows?: boolean\n onRowReorder?: (active: UniqueIdentifier, over: UniqueIdentifier | null) => void // Adjusted type for active/over if needed, or keep as Active, Over\n dndActiveId?: UniqueIdentifier | null // Added prop\n pt?: {\n container?: React.HTMLAttributes<HTMLDivElement>\n head?: Partial<TableHeadProps>\n }\n}\n\nexport const ProjectTreeTable = ({\n scope,\n sliceId,\n onScroll,\n onScrollBottom, // when the user scrolls to the bottom of the table, this callback is called\n onOpenNew,\n readOnly,\n excludedColumns,\n extraColumns,\n isLoading: isLoadingProp,\n clientSorting = false,\n sortableRows = false,\n onRowReorder,\n dndActiveId, // Destructure new prop\n pt,\n ...props\n}: ProjectTreeTableProps) => {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n setAllColumns,\n sorting,\n sortingOnChange,\n columnPinningOnChange,\n columnSizingOnChange,\n columnVisibilityOnChange,\n columnOrderOnChange,\n groupBy,\n } = useColumnSettingsContext()\n const isGrouping = !!groupBy\n\n const {\n projectInfo,\n tableData,\n attribFields,\n entitiesMap,\n users,\n isLoading: isLoadingData,\n error,\n isInitialized,\n expanded,\n projectName,\n updateExpanded,\n toggleExpandAll,\n showHierarchy,\n fetchNextPage,\n scopes,\n getEntityById,\n } = useProjectTableContext()\n\n const { projectName: contextProjectName, writableFields } = useProjectDataContext()\n\n const isLoading = isLoadingProp || isLoadingData\n\n const {\n statuses = [],\n folderTypes = [],\n taskTypes = [],\n tags = [],\n linkTypes = [],\n } = projectInfo || {}\n const options: BuiltInFieldOptions = useMemo(\n () =>\n getTableFieldOptions({\n users,\n statuses,\n folderTypes,\n taskTypes,\n tags,\n scopes,\n }),\n [users, statuses, folderTypes, taskTypes, scopes, tags],\n )\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n // reference of how many rows are currently rendered in the table\n const tableRowsCountRef = useRef(0)\n\n // Selection context\n const { registerGrid } = useSelectionCellsContext()\n\n // generate loading attrib and rows\n const { loadingAttrib, loadingRows } = useMemo(() => {\n // count the number of children in tbody\n const tableRowsCount = tableContainerRef.current?.querySelectorAll('tbody tr').length || 0\n const loadingAttrib = generateDummyAttributes()\n const loadingRows = generateLoadingRows(\n attribFields,\n showHierarchy && tableData.length > 0\n ? Math.min(tableRowsCount, 50)\n : groupBy\n ? Math.max(tableRowsCountRef.current, 50)\n : 50,\n )\n\n return { loadingAttrib, loadingRows }\n }, [])\n\n const showLoadingRows = !isInitialized || isLoading\n\n // Format readonly columns and attributes\n const { readOnlyColumns, readOnlyAttribs } = useMemo(\n () => getReadOnlyLists(attribFields, writableFields, readOnly),\n [attribFields, writableFields, readOnly],\n )\n\n const { selectedCells } = useSelectionCellsContext()\n const { updateEntities } = useCellEditing()\n\n const handleCellUpdate: CellUpdate = useCallback(\n async (entity, config) => {\n const { selection = [] } = config || {}\n const entitiesToUpdate: EntityUpdate[] = []\n if (!selection?.length) {\n entitiesToUpdate.push({ ...entity, id: entity.rowId })\n } else {\n // if includeSelection is true, update all the selected cells with the same columnId\n const { field, value, isAttrib, type } = entity\n for (const cellId of selectedCells) {\n const { colId, rowId } = parseCellId(cellId) || {}\n\n const entity = getEntityById(rowId || '')\n if (!entity) {\n console.warn(`Entity with ID ${rowId} not found for cell update.`)\n continue\n }\n\n if ((!colId?.includes('attrib_') || colId?.replace('attrib_', '') === field) && rowId) {\n entitiesToUpdate.push({\n field: field,\n rowId: rowId,\n id: entity.entityId,\n value: value,\n isAttrib: isAttrib,\n type: entity.entityType,\n })\n }\n }\n }\n\n if (!entitiesToUpdate.length) {\n console.warn('No entities to update, skipping updateEntities call.')\n toast.warn('No entities to update.')\n return\n }\n\n await updateEntities(entitiesToUpdate, true)\n },\n [updateEntities, getEntityById, selectedCells],\n )\n\n const columnAttribs = useMemo(\n () => (isInitialized ? attribFields : loadingAttrib),\n [attribFields, loadingAttrib, isInitialized],\n )\n const columns = useMemo(() => {\n const baseColumns = buildTreeTableColumns({\n attribs: columnAttribs,\n links: linkTypes,\n showHierarchy,\n options,\n extraColumns,\n excluded: excludedColumns,\n groupBy,\n })\n\n if (sortableRows) {\n return [\n {\n id: DRAG_HANDLE_COLUMN_ID,\n header: () => null,\n cell: () => null, // Content rendered by TableBodyRow\n size: 24,\n minSize: 24,\n maxSize: 24,\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n enablePinning: false, // Programmatically pinned\n },\n ...baseColumns,\n ]\n }\n return baseColumns\n }, [columnAttribs, showHierarchy, options, extraColumns, excludedColumns, sortableRows])\n\n // Keep ColumnSettingsProvider's allColumns ref up to date\n useEffect(() => {\n const ids = columns.map((c) => c.id!).filter(Boolean)\n setAllColumns(ids)\n }, [columns, setAllColumns])\n\n const table = useReactTable({\n data: showLoadingRows ? loadingRows : tableData,\n columns,\n defaultColumn: {\n minSize: 50,\n size: 150,\n },\n enableRowSelection: true, //enable row selection for all rows\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n getSubRows: (row) => row.subRows,\n getRowCanExpand: () => true,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // EXPANDABLE\n onExpandedChange: updateExpanded,\n // SORTING\n getSortedRowModel: clientSorting ? getSortedRowModel() : undefined,\n onSortingChange: sortingOnChange,\n columnResizeMode: 'onChange',\n onColumnPinningChange: columnPinningOnChange,\n onColumnSizingChange: columnSizingOnChange,\n onColumnVisibilityChange: columnVisibilityOnChange,\n onColumnOrderChange: columnOrderOnChange,\n // @ts-ignore\n filterFns,\n state: {\n expanded,\n sorting,\n columnPinning: (() => {\n const leftPins: string[] = []\n if (sortableRows) {\n leftPins.push(DRAG_HANDLE_COLUMN_ID)\n }\n leftPins.push(ROW_SELECTION_COLUMN_ID)\n\n // Add other unique pins from context, ensuring they are not the programmatic ones\n const contextLeftPins = (columnPinning.left || []).filter(\n (id) => id !== DRAG_HANDLE_COLUMN_ID && id !== ROW_SELECTION_COLUMN_ID,\n )\n leftPins.push(...contextLeftPins)\n // Remove duplicates just in case, though filter should handle it\n const uniqueLeftPins = [...new Set(leftPins)]\n\n return {\n left: uniqueLeftPins,\n right: columnPinning.right,\n }\n })(),\n columnSizing,\n columnVisibility,\n columnOrder,\n },\n enableSorting: true,\n meta: {\n projectName,\n options,\n readOnly: readOnlyColumns,\n updateEntities: handleCellUpdate,\n toggleExpandAll,\n loadMoreTasks: fetchNextPage,\n selection: Array.from(selectedCells),\n },\n })\n\n // TODO: when there is data (like in error) then we have infinite rendering\n\n const { rows } = table.getRowModel()\n\n // update the tableRowsCountRef with the current number of rows\n useEffect(() => {\n tableRowsCountRef.current = rows.length\n }, [rows.length])\n\n // Register grid structure with selection context when rows or columns change\n useEffect(() => {\n if (!rows.length) return\n const rowIds = rows.map((row) => row.id)\n const colIds = table.getAllLeafColumns().map((col) => col.id)\n const colIdsSortedByPinning = [...colIds].sort((a, b) => {\n if (ROW_SELECTION_COLUMN_ID === b) return 1\n const colA = columnPinning.left?.includes(a) ? 0 : 1\n const colB = columnPinning.left?.includes(b) ? 0 : 1\n return colA - colB\n })\n\n registerGrid(rowIds, colIdsSortedByPinning)\n }, [rows, table.getAllLeafColumns(), columnPinning, ROW_SELECTION_COLUMN_ID, registerGrid])\n\n const visibleColumns = table.getVisibleLeafColumns()\n\n // Use the column virtualization hook\n const { columnVirtualizer, virtualPaddingLeft, virtualPaddingRight } = useColumnVirtualization({\n visibleColumns,\n tableContainerRef,\n columnPinning,\n columnSizing,\n columnOrder,\n })\n\n const columnSizeVars = useCustomColumnWidthVars(table, columnSizing)\n\n const attribByField = useMemo(() => {\n return attribFields.reduce((acc: Record<string, AttributeEnumItem[]>, attrib) => {\n if (attrib.data?.enum?.length) {\n acc[attrib.name] = attrib.data?.enum\n }\n return acc\n }, {})\n }, [attribFields])\n\n const rowOrderIds = useMemo(() => tableData.map((row) => row.id), [tableData])\n const draggedRowData = useMemo(() => {\n if (!dndActiveId || !sortableRows) return null // Use dndActiveId\n return tableData.find((r) => r.id === dndActiveId) // Use dndActiveId\n }, [dndActiveId, tableData, sortableRows])\n\n const combinedScrollHandler: UIEventHandler<HTMLDivElement> = useCallback(\n (e) => {\n // Call the original onScroll if provided\n onScroll?.(e)\n\n if (onScrollBottom) {\n const containerRefElement = e.currentTarget\n if (containerRefElement && !showHierarchy && !groupBy) {\n const { scrollHeight, scrollTop, clientHeight } = containerRefElement\n //once the user has scrolled within 500px of the bottom of the table, fetch more data if we can\n if (scrollHeight - scrollTop - clientHeight < 500 && !isLoading) {\n onScrollBottom(e)\n }\n }\n }\n },\n [onScroll, onScrollBottom, showHierarchy, groupBy, isLoading],\n )\n\n // Get move entity functions for the dialog\n const {\n isEntityPickerOpen,\n handleMoveSubmit,\n closeMoveDialog,\n movingEntities,\n handleMoveToRoot,\n getDisabledFolderIds,\n getDisabledMessage,\n } = useMoveEntities({\n projectName: contextProjectName || projectName || '',\n })\n\n const handleMoveSubmitWithExpand = (selection: string[]) => {\n handleMoveSubmit(selection)\n const folderIdToExpand = selection[0]\n\n updateExpanded((prevExpanded: ExpandedState) => {\n if (typeof prevExpanded === 'boolean') {\n if (prevExpanded) {\n return prevExpanded\n }\n return { [folderIdToExpand]: true }\n }\n\n if (prevExpanded[folderIdToExpand]) {\n return prevExpanded\n }\n\n return {\n ...prevExpanded,\n [folderIdToExpand]: true,\n }\n })\n }\n\n const tableUiContent = (\n <ClipboardProvider\n entitiesMap={entitiesMap}\n columnEnums={{ ...options, ...attribByField }}\n columnReadOnly={readOnlyAttribs}\n visibleColumns={visibleColumns}\n >\n <Styled.TableWrapper {...props}>\n <Styled.TableContainer\n ref={tableContainerRef}\n style={{ height: '100%', padding: 0 }}\n onScroll={combinedScrollHandler}\n {...pt?.container}\n className={clsx(\n 'table-container',\n {\n resizing: table.getState().columnSizingInfo.isResizingColumn,\n },\n pt?.container?.className,\n )}\n >\n <table\n style={{\n display: 'grid',\n borderCollapse: 'collapse',\n userSelect: 'none',\n ...columnSizeVars,\n width: table.getTotalSize(),\n cursor: table.getState().columnSizingInfo.isResizingColumn ? 'col-resize' : undefined,\n }}\n >\n <TableHead\n columnVirtualizer={columnVirtualizer}\n table={table}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n {...pt?.head}\n />\n <TableBody\n columnVirtualizer={columnVirtualizer}\n table={table}\n tableContainerRef={tableContainerRef}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n showHierarchy={showHierarchy}\n attribs={attribFields}\n onOpenNew={onOpenNew}\n rowOrderIds={rowOrderIds}\n sortableRows={sortableRows}\n error={error}\n isGrouping={isGrouping}\n />\n </table>\n </Styled.TableContainer>\n </Styled.TableWrapper>\n {/* Render EntityPickerDialog alongside table content */}\n {isEntityPickerOpen &&\n projectName &&\n movingEntities?.entities &&\n movingEntities.entities.length > 0 && (\n <EntityPickerDialog\n projectName={projectName}\n entityType=\"folder\"\n onSubmit={handleMoveSubmitWithExpand}\n onClose={closeMoveDialog}\n showMoveToRoot={movingEntities.entities.every(\n (entity: EntityMoveData) => entity.entityType === 'folder',\n )}\n onMoveToRoot={handleMoveToRoot}\n disabledIds={getDisabledFolderIds()}\n getDisabledMessage={getDisabledMessage}\n />\n )}\n </ClipboardProvider>\n )\n\n // Render DragOverlay if sortableRows and dndActiveId is present\n const dragOverlayPortal =\n sortableRows &&\n dndActiveId &&\n createPortal(\n <DragOverlay dropAnimation={null}>\n {draggedRowData\n ? (() => {\n const overlayRowInstance = table.getRowModel().rows.find((r) => r.id === dndActiveId)\n if (!overlayRowInstance) return null\n\n const tableWidth = table.getTotalSize()\n\n return (\n <table\n style={{\n width: tableWidth,\n borderCollapse: 'collapse',\n backgroundColor: 'var(--md-sys-color-surface-container-high)',\n boxShadow: '0 0 10px rgba(0,0,0,0.2)',\n ...columnSizeVars,\n }}\n >\n <tbody>\n <Styled.TR style={{ display: 'flex', userSelect: 'none' }}>\n {virtualPaddingLeft ? (\n <td style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {columnVirtualizer.getVirtualItems().map((vc) => {\n const cell = overlayRowInstance.getVisibleCells()[vc.index]\n if (!cell) return null\n\n const cellStyleBase: CSSProperties = {\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(overlayRowInstance.id, cell.column.id),\n display: 'flex',\n alignItems: 'center',\n height: 40,\n }\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TableCell\n key={`overlay-drag-${cell.id}`}\n style={{ ...cellStyleBase, justifyContent: 'center' }}\n className={clsx(cell.column.id)}\n >\n <Icon icon=\"drag_handle\" /> {/* Static icon */}\n </Styled.TableCell>\n )\n }\n return (\n <TableCellMemo\n cell={cell}\n cellId={`overlay-${getCellId(overlayRowInstance.id, cell.column.id)}`}\n rowId={overlayRowInstance.id}\n key={`overlay-cell-${cell.id}`}\n showHierarchy={showHierarchy}\n />\n )\n })}\n {virtualPaddingRight ? (\n <td style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.TR>\n </tbody>\n </table>\n )\n })()\n : null}\n </DragOverlay>,\n document.body,\n )\n\n if (sortableRows) {\n return (\n <>\n {tableUiContent}\n {dragOverlayPortal}\n </>\n )\n } else {\n return tableUiContent\n }\n}\n\ninterface TableHeadProps extends React.HTMLAttributes<HTMLTableSectionElement> {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n}\n\nconst TableHead = ({\n columnVirtualizer,\n table,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n ...props\n}: TableHeadProps) => {\n return (\n <Styled.TableHeader {...props}>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableHeadRow\n key={headerGroup.id}\n columnVirtualizer={columnVirtualizer}\n headerGroup={headerGroup}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n />\n ))}\n </Styled.TableHeader>\n )\n}\n\ninterface TableHeadRowProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n headerGroup: HeaderGroup<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n}\n\nconst TableHeadRow = ({\n columnVirtualizer,\n headerGroup,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n}: TableHeadRowProps) => {\n const virtualColumns = columnVirtualizer.getVirtualItems()\n return (\n <Styled.ColumnHeader key={headerGroup.id} style={{ display: 'flex' }}>\n {virtualPaddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {virtualColumns.map((virtualColumn) => {\n const header = headerGroup.headers[virtualColumn.index]\n\n return (\n <TableHeadCell\n key={header.id}\n header={header}\n isLoading={isLoading}\n isReadOnly={readOnlyColumns?.includes(header.id)}\n canSort={header.column.getCanSort()}\n canFilter={header.column.getCanFilter()}\n canHide={header.column.getCanHide()}\n canPin={header.column.getCanPin()}\n canResize={header.column.getCanResize()}\n sortableRows={sortableRows}\n />\n )\n })}\n {virtualPaddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.ColumnHeader>\n )\n}\n\ninterface TableHeadCellProps {\n header: Header<TableRow, unknown>\n isLoading: boolean\n canSort?: boolean\n canFilter?: boolean\n canHide?: boolean\n canPin?: boolean\n canResize?: boolean\n isReadOnly?: boolean\n sortableRows?: boolean\n}\n\nconst TableHeadCell = ({\n header,\n isLoading,\n canFilter,\n canHide,\n canSort,\n canPin,\n canResize,\n isReadOnly,\n sortableRows,\n}: TableHeadCellProps) => {\n const { column } = header\n const sorting = column.getIsSorted()\n const menuId = `column-header-menu-${column.id}`\n const { menuOpen } = useMenuContext()\n const isOpen = menuOpen === menuId\n\n return (\n <Styled.HeaderCell\n className={clsx(header.id, 'shimmer-dark', {\n loading: isLoading,\n 'last-pinned-left': column.getIsPinned() === 'left' && column.getIsLastColumn('left'),\n resizing: column.getIsResizing(),\n })}\n key={header.id}\n style={{\n ...getCommonPinningStyles(column),\n width: getColumnWidth('', column.id),\n }}\n >\n {header.isPlaceholder ? null : (\n <Styled.TableCellContent className={clsx('bold', 'header')}>\n {flexRender(column.columnDef.header, header.getContext())}\n {isReadOnly && (\n <Icon icon=\"lock\" data-tooltip={'You only have permission to read this column.'} />\n )}\n\n <Styled.HeaderButtons className=\"actions\" $isOpen={isOpen}>\n {(canHide || canPin || canSort) && (\n <ColumnHeaderMenu\n className=\"header-menu\"\n header={header}\n canHide={canHide}\n canPin={canPin}\n canSort={canSort}\n isResizing={column.getIsResizing()}\n menuId={menuId}\n isOpen={isOpen}\n />\n )}\n\n {/* COLUMN SORTING */}\n {canSort && (\n <HeaderActionButton\n icon=\"sort\"\n className={clsx('sort-button', { visible: sorting })}\n style={{\n transform: sorting === 'asc' ? 'rotate(180deg) scaleX(-1)' : 'none',\n }}\n onClick={column.getToggleSortingHandler()}\n selected={!!column.getIsSorted()}\n />\n )}\n </Styled.HeaderButtons>\n {canResize && (\n <Styled.ResizedHandler\n {...{\n onDoubleClick: () => column.resetSize(),\n onMouseDown: header.getResizeHandler(),\n onTouchStart: header.getResizeHandler(),\n className: clsx('resize-handle', {\n resizing: column.getIsResizing(),\n }),\n }}\n />\n )}\n </Styled.TableCellContent>\n )}\n </Styled.HeaderCell>\n )\n}\n\ninterface TableBodyProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n tableContainerRef: React.RefObject<HTMLDivElement>\n showHierarchy: boolean\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n attribs: ProjectTableAttribute[]\n onOpenNew?: (type: 'folder' | 'task') => void\n rowOrderIds: UniqueIdentifier[]\n sortableRows: boolean\n error?: string\n isGrouping: boolean\n}\n\nconst TableBody = ({\n columnVirtualizer,\n table,\n tableContainerRef,\n showHierarchy,\n virtualPaddingLeft,\n virtualPaddingRight,\n attribs,\n onOpenNew,\n rowOrderIds,\n sortableRows,\n error,\n isGrouping,\n}: TableBodyProps) => {\n const headerLabels = useMemo(() => {\n const allColumns = table.getAllColumns()\n const headers = allColumns\n .map((col) => {\n const headerId = col.id\n const header = col.columnDef.header\n if (typeof header === 'string' || typeof header === 'number') {\n return { label: header, id: headerId }\n }\n return null\n })\n .filter(Boolean)\n\n return headers as HeaderLabel[]\n }, [table.getAllColumns()])\n\n const cellContextMenuHook = useCellContextMenu({ attribs, onOpenNew, headerLabels })\n\n const handleTableBodyContextMenu = cellContextMenuHook.handleTableBodyContextMenu\n\n const { handlePreFetchTasks } = usePrefetchFolderTasks()\n\n const { rows } = table.getRowModel()\n\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n estimateSize: () => 40, //estimate row height for accurate scrollbar dragging\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement:\n typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n const virtualRows = rowVirtualizer.getVirtualItems()\n\n // Memoize the measureElement callback\n const measureRowElement = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n useKeyboardNavigation()\n\n const tbodyContent = (\n <tbody\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n position: 'relative',\n display: 'grid',\n }}\n onContextMenu={handleTableBodyContextMenu}\n onMouseOver={(e) => {\n handlePreFetchTasks(e)\n }}\n >\n {virtualRows.map((virtualRow, i) => {\n const row = rows[virtualRow.index] as Row<TableRow>\n // Add a check for row existence to prevent potential errors if data is out of sync\n if (!row) {\n console.warn('Virtualized row data not found for index:', virtualRow.index)\n return null\n }\n return (\n <TableBodyRow\n key={row.id + i.toString()} // dnd-kit needs this key to be stable and match the id in useSortable\n row={row}\n showHierarchy={showHierarchy}\n visibleCells={row.getVisibleCells()}\n virtualColumns={columnVirtualizer.getVirtualItems()}\n paddingLeft={virtualPaddingLeft}\n paddingRight={virtualPaddingRight}\n rowRef={measureRowElement}\n dataIndex={virtualRow.index}\n offsetTop={virtualRow.start}\n sortableRows={sortableRows}\n isGrouping={isGrouping}\n />\n )\n })}\n </tbody>\n )\n\n if (error) {\n return (\n tableContainerRef.current &&\n createPortal(\n <EmptyPlaceholder message=\"No items found\" error={error} />,\n tableContainerRef.current,\n )\n )\n }\n\n if (sortableRows) {\n return (\n <SortableContext items={rowOrderIds} strategy={verticalListSortingStrategy}>\n {tbodyContent}\n </SortableContext>\n )\n } else {\n return tbodyContent\n }\n}\n\ninterface TableBodyRowProps {\n row: Row<TableRow>\n showHierarchy: boolean\n visibleCells: Cell<TableRow, unknown>[]\n virtualColumns: VirtualItem[]\n paddingLeft: number | undefined\n paddingRight: number | undefined\n rowRef: (node: HTMLTableRowElement | null) => void\n dataIndex: number\n offsetTop: number\n sortableRows: boolean\n isGrouping: boolean\n}\n\nconst TableBodyRow = ({\n row,\n showHierarchy,\n visibleCells,\n virtualColumns,\n paddingLeft,\n paddingRight,\n rowRef,\n dataIndex,\n offsetTop,\n sortableRows,\n isGrouping = false,\n}: TableBodyRowProps) => {\n const sortable = sortableRows ? useSortable({ id: row.id }) : null\n\n const combinedRef = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (sortable) {\n sortable.setNodeRef(node)\n }\n // rowRef for virtualizer measurement\n // only measure if not actively being transformed by dnd-kit\n if (!(sortable && sortable.isDragging)) {\n rowRef(node)\n }\n },\n [sortable, rowRef],\n )\n\n // Attempt to combine dnd-kit transform with virtualizer's offsetTop\n const style: CSSProperties = {\n position: 'absolute', // Use absolute positioning for virtualized items\n top: offsetTop, // Position based on virtualizer's calculation (virtualRow.start)\n left: 0, // Span full width of the relative parent (tbody)\n right: 0, // Span full width\n height: 40, // Explicit height can be beneficial for absolute positioning\n zIndex: sortable && sortable.isDragging ? 0 : 1, // Ensure dragged item is above others\n display: 'flex', // Styled.TR is display:flex\n transform:\n sortable && sortable.transform ? CSS.Transform.toString(sortable.transform) : undefined, // Apply dnd-kit's transform for drag effect\n transition: sortable && sortable.transition ? sortable.transition : undefined,\n visibility: sortable && sortable.isDragging ? 'hidden' : 'visible', // Hide the row being dragged\n }\n\n return (\n <Styled.TR\n ref={combinedRef}\n data-index={dataIndex} //needed for dynamic row height measurement\n style={style}\n className={clsx({ 'group-row': row.original.group })}\n >\n {paddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingLeft }} />\n ) : null}\n {virtualColumns.map((vc, i) => {\n const cell = visibleCells[vc.index]\n if (!cell) return null // Should not happen in normal circumstances\n\n const cellId = getCellId(row.id, cell.column.id)\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TableCell\n key={cell.id + i.toString()}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(row.id, cell.column.id),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 40,\n }}\n className={clsx(cell.column.id, {\n 'last-pinned-left':\n cell.column.getIsPinned() === 'left' && cell.column.getIsLastColumn('left'),\n })}\n onMouseDown={(e) => e.stopPropagation()} // Prevent selection interference\n onMouseOver={(e) => e.stopPropagation()}\n // Removed onMouseUp stopPropagation to allow dnd-kit to handle it\n onDoubleClick={(e) => e.stopPropagation()}\n onContextMenu={(e) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n <RowDragHandleCellContent\n attributes={sortable?.attributes}\n listeners={sortable?.listeners}\n />\n </Styled.TableCell>\n )\n }\n return (\n <TableCellMemo\n cell={cell}\n cellId={cellId}\n rowId={row.id}\n key={cell.id + i.toString()}\n showHierarchy={showHierarchy}\n sortableRows={sortableRows}\n />\n )\n })}\n\n {paddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingRight }} />\n ) : null}\n </Styled.TR>\n )\n}\n\ninterface TableCellProps {\n cell: Cell<TableRow, unknown>\n cellId: string\n rowId: string\n className?: string\n showHierarchy: boolean\n sortableRows?: boolean\n}\n\nconst TableCell = ({\n cell,\n rowId,\n cellId,\n className,\n showHierarchy,\n sortableRows,\n ...props\n}: TableCellProps) => {\n const { getEntityById, onOpenPlayer } = useProjectTableContext()\n\n const {\n isCellSelected,\n isCellFocused,\n startSelection,\n extendSelection,\n endSelection,\n selectCell,\n focusCell,\n getCellBorderClasses,\n clearSelection,\n selectedCells,\n } = useSelectionCellsContext()\n\n const { isRowSelected } = useSelectedRowsContext()\n\n const { isEditing, setEditingCellId } = useCellEditing()\n\n const borderClasses = getCellBorderClasses(cellId)\n\n const isPinned = cell.column.getIsPinned()\n const isLastLeftPinnedColumn = isPinned === 'left' && cell.column.getIsLastColumn('left')\n const isRowSelectionColumn = cell.column.id === ROW_SELECTION_COLUMN_ID\n const isGroup = cell.row.original.entityType === 'group'\n const isMultipleSelected = selectedCells.size > 1\n\n return (\n <Styled.TableCell\n {...props}\n tabIndex={0}\n $isLastPinned={isLastLeftPinnedColumn} // is this column the last pinned column? Custom styling for borders.\n className={clsx(\n cell.column.id,\n {\n selected: isCellSelected(cellId),\n focused: isCellFocused(cellId),\n editing: isEditing(cellId),\n 'last-pinned-left': isLastLeftPinnedColumn,\n 'selected-row': isRowSelected(rowId),\n task: cell.row.original.entityType === 'task',\n 'multiple-selected': isMultipleSelected,\n },\n className,\n ...borderClasses,\n )}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(cell.row.id, cell.column.id),\n height: 40,\n }}\n onMouseDown={(e) => {\n // Only process left clicks (button 0), ignore right clicks\n if (e.button !== 0) return\n\n const target = e.target as HTMLElement\n\n // check we are not clicking on expander\n if (target.closest('.expander')) return\n\n // if we are clicking on an edit trigger, we need to start editing\n if (target.closest('.' + EDIT_TRIGGER_CLASS)) {\n if (!isCellSelected(cellId)) {\n // if the cell is not selected, select it and deselect all others\n selectCell(cellId, false, false)\n focusCell(cellId)\n }\n // start editing the cell\n setEditingCellId(cellId)\n\n return\n }\n\n // check we are not clicking in a dropdown\n if (target.closest('.options')) return\n\n // only name column can be selected for group rows\n if (isGroup && cell.column.id !== 'name') return clearSelection()\n\n const additive = e.metaKey || e.ctrlKey || isRowSelectionColumn\n if (e.shiftKey) {\n // Shift+click extends selection from anchor cell\n selectCell(cellId, additive, true) // true for range selection\n } else {\n // Normal click starts a new selection\n startSelection(cellId, additive)\n }\n }}\n onMouseOver={(e) => {\n if (e.buttons === 1) {\n // Left button is pressed during mouse move - drag selection\n extendSelection(cellId, isRowSelectionColumn)\n }\n }}\n onMouseUp={() => {\n endSelection(cellId)\n }}\n onDoubleClick={(e) => {\n // row selection on name column double click\n if (\n cell.column.id === 'name' &&\n !(e.target as HTMLElement).closest('.expander') &&\n !isGroup\n ) {\n // select the row by selecting the row-selection cell\n const rowSelectionCellId = getCellId(cell.row.id, ROW_SELECTION_COLUMN_ID)\n if (!isCellSelected(rowSelectionCellId)) {\n const additive = e.metaKey || e.ctrlKey\n selectCell(rowSelectionCellId, additive, false)\n }\n }\n // open the viewer on thumbnail double click\n if (cell.column.id === 'thumbnail') {\n if (onOpenPlayer) {\n const entity = getEntityById(cell.row.original.entityId || cell.row.id)\n if (entity) {\n const targetIds = getEntityViewierIds(entity)\n onOpenPlayer(targetIds, { quickView: true })\n }\n }\n }\n }}\n onContextMenu={(e) => {\n e.preventDefault()\n // if the cell is not selected, select it and deselect all others\n if (!isCellSelected(cellId)) {\n selectCell(cellId, false, false)\n }\n }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Styled.TableCell>\n )\n}\n\nconst TableCellMemo = memo(TableCell)\n"],"names":["getCommonPinningStyles","column","isPinned","offset","ROW_SELECTION_COLUMN_ID","DRAG_HANDLE_COLUMN_ID","getColumnWidth","rowId","columnId","ProjectTreeTable","scope","sliceId","onScroll","onScrollBottom","onOpenNew","readOnly","excludedColumns","extraColumns","isLoadingProp","clientSorting","sortableRows","onRowReorder","dndActiveId","pt","props","columnVisibility","columnPinning","columnOrder","columnSizing","setAllColumns","sorting","sortingOnChange","columnPinningOnChange","columnSizingOnChange","columnVisibilityOnChange","columnOrderOnChange","groupBy","useColumnSettingsContext","isGrouping","projectInfo","tableData","attribFields","entitiesMap","users","isLoadingData","error","isInitialized","expanded","projectName","updateExpanded","toggleExpandAll","showHierarchy","fetchNextPage","scopes","getEntityById","useProjectTableContext","contextProjectName","writableFields","useProjectDataContext","isLoading","statuses","folderTypes","taskTypes","tags","linkTypes","options","useMemo","getTableFieldOptions","tableContainerRef","useRef","tableRowsCountRef","registerGrid","useSelectionCellsContext","loadingAttrib","loadingRows","tableRowsCount","_a","generateDummyAttributes","generateLoadingRows","showLoadingRows","readOnlyColumns","readOnlyAttribs","getReadOnlyLists","selectedCells","updateEntities","useCellEditing","handleCellUpdate","useCallback","entity","config","selection","entitiesToUpdate","field","value","isAttrib","type","cellId","colId","parseCellId","toast","columnAttribs","columns","baseColumns","buildTreeTableColumns","useEffect","ids","c","table","useReactTable","row","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","getSortedRowModel","filterFns","leftPins","contextLeftPins","id","rows","rowIds","colIdsSortedByPinning","col","a","b","colA","colB","_b","visibleColumns","columnVirtualizer","virtualPaddingLeft","virtualPaddingRight","useColumnVirtualization","columnSizeVars","useCustomColumnWidthVars","attribByField","acc","attrib","_c","rowOrderIds","draggedRowData","r","combinedScrollHandler","containerRefElement","scrollHeight","scrollTop","clientHeight","isEntityPickerOpen","handleMoveSubmit","closeMoveDialog","movingEntities","handleMoveToRoot","getDisabledFolderIds","getDisabledMessage","useMoveEntities","handleMoveSubmitWithExpand","folderIdToExpand","prevExpanded","tableUiContent","jsxs","ClipboardProvider","jsx","Styled.TableWrapper","Styled.TableContainer","clsx","TableHead","TableBody","EntityPickerDialog","dragOverlayPortal","createPortal","DragOverlay","overlayRowInstance","tableWidth","Styled.TR","vc","cell","cellStyleBase","Styled.TableCell","Icon","TableCellMemo","getCellId","Fragment","Styled.TableHeader","headerGroup","TableHeadRow","virtualColumns","Styled.ColumnHeader","virtualColumn","header","TableHeadCell","canFilter","canHide","canSort","canPin","canResize","isReadOnly","menuId","menuOpen","useMenuContext","isOpen","Styled.HeaderCell","Styled.TableCellContent","flexRender","Styled.HeaderButtons","ColumnHeaderMenu","HeaderActionButton","Styled.ResizedHandler","attribs","headerLabels","headerId","handleTableBodyContextMenu","useCellContextMenu","handlePreFetchTasks","usePrefetchFolderTasks","rowVirtualizer","useVirtualizer","element","virtualRows","measureRowElement","node","useKeyboardNavigation","tbodyContent","e","virtualRow","i","TableBodyRow","EmptyPlaceholder","SortableContext","verticalListSortingStrategy","visibleCells","paddingLeft","paddingRight","rowRef","dataIndex","offsetTop","sortable","useSortable","combinedRef","style","CSS","RowDragHandleCellContent","TableCell","className","onOpenPlayer","isCellSelected","isCellFocused","startSelection","extendSelection","endSelection","selectCell","focusCell","getCellBorderClasses","clearSelection","isRowSelected","useSelectedRowsContext","isEditing","setEditingCellId","borderClasses","isLastLeftPinnedColumn","isRowSelectionColumn","isGroup","isMultipleSelected","target","EDIT_TRIGGER_CLASS","additive","rowSelectionCellId","targetIds","getEntityViewierIds","memo"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("styled-components"),s="inset 0 1px 0 0 var(--md-sys-color-primary)",a="inset -1px 0 0 0 var(--md-sys-color-primary)",r="inset 0 -1px 0 0 var(--md-sys-color-primary)",
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("styled-components"),s="inset 0 1px 0 0 var(--md-sys-color-primary)",a="inset -1px 0 0 0 var(--md-sys-color-primary)",r="inset 0 -1px 0 0 var(--md-sys-color-primary)",n="inset 1px 0 0 0 var(--md-sys-color-primary)",e=o=>o?"inset -2px -1px 0 0 var(--md-sys-color-surface-container), inset 1px 0 0 0 var(--md-sys-color-surface-container)":"inset 1px -1px 0 0 var(--md-sys-color-surface-container)",i="drag-handle",d=t.tr`
|
|
2
2
|
display: flex;
|
|
3
3
|
position: absolute;
|
|
4
4
|
width: 100%;
|
|
@@ -8,16 +8,21 @@
|
|
|
8
8
|
|
|
9
9
|
// Target the button inside the drag handle cell to make it visible at 50% opacity.
|
|
10
10
|
// This uses a more specific selector by including 'td' to ensure it correctly targets the cell.
|
|
11
|
-
td.${
|
|
11
|
+
td.${i} button {
|
|
12
12
|
opacity: 0.5;
|
|
13
13
|
visibility: visible;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
// When the row (TR) is hovered AND the button inside drag handle cell is also hovered...
|
|
17
17
|
// Make the button 100% opacity. This selector is more specific and will override the above.
|
|
18
|
-
td.${
|
|
18
|
+
td.${i} button:hover {
|
|
19
19
|
opacity: 1;
|
|
20
20
|
}
|
|
21
|
+
|
|
22
|
+
/* row selection hover */
|
|
23
|
+
td:not(.selected) {
|
|
24
|
+
background-color: hsl(215 14% 15%);
|
|
25
|
+
}
|
|
21
26
|
}
|
|
22
27
|
|
|
23
28
|
&.group-row {
|
|
@@ -92,12 +97,13 @@
|
|
|
92
97
|
.resize-handle {
|
|
93
98
|
opacity: 1;
|
|
94
99
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
/* show action buttons */
|
|
98
|
-
&:hover {
|
|
100
|
+
|
|
99
101
|
.actions {
|
|
100
|
-
display: flex;
|
|
102
|
+
display: flex !important;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.actions .header-menu {
|
|
106
|
+
display: flex !important;
|
|
101
107
|
}
|
|
102
108
|
}
|
|
103
109
|
|
|
@@ -107,8 +113,7 @@
|
|
|
107
113
|
display: none !important;
|
|
108
114
|
}
|
|
109
115
|
cursor: col-resize !important;
|
|
110
|
-
|
|
111
|
-
/* Ensure all child elements also have the resize cursor */
|
|
116
|
+
|
|
112
117
|
* {
|
|
113
118
|
cursor: col-resize !important;
|
|
114
119
|
}
|
|
@@ -129,8 +134,13 @@
|
|
|
129
134
|
display: none;
|
|
130
135
|
}
|
|
131
136
|
}
|
|
132
|
-
`,
|
|
137
|
+
`,u=t.div`
|
|
133
138
|
display: none;
|
|
139
|
+
|
|
140
|
+
${({$isOpen:o})=>o&&`
|
|
141
|
+
display: flex !important;
|
|
142
|
+
`}
|
|
143
|
+
|
|
134
144
|
gap: var(--base-gap-small);
|
|
135
145
|
align-items: center;
|
|
136
146
|
|
|
@@ -145,12 +155,47 @@
|
|
|
145
155
|
.resizing & {
|
|
146
156
|
cursor: col-resize !important;
|
|
147
157
|
}
|
|
148
|
-
|
|
158
|
+
|
|
159
|
+
&:has(.sort-button.visible),
|
|
160
|
+
&:has(.sort-button.selected) {
|
|
161
|
+
display: flex !important;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.sort-button.visible {
|
|
165
|
+
display: flex !important;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.sort-button.selected {
|
|
169
|
+
display: flex !important;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.header-menu {
|
|
173
|
+
display: none;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
${({$isOpen:o})=>o&&`
|
|
177
|
+
.header-menu {
|
|
178
|
+
display: flex !important;
|
|
179
|
+
}
|
|
180
|
+
`}
|
|
181
|
+
|
|
182
|
+
.header-menu.open,
|
|
183
|
+
.header-menu.active {
|
|
184
|
+
display: flex !important;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.resizing & {
|
|
188
|
+
.sort-button,
|
|
189
|
+
.header-menu {
|
|
190
|
+
display: none !important;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
`,w=t.td`
|
|
149
194
|
position: relative;
|
|
150
195
|
box-shadow: ${e(!1)};
|
|
151
196
|
background-color: var(--md-sys-color-surface-container-low);
|
|
152
197
|
|
|
153
|
-
&.${
|
|
198
|
+
&.${i} {
|
|
154
199
|
// Styles for the button inside the drag handle cell
|
|
155
200
|
button {
|
|
156
201
|
opacity: 0; // Default: hidden
|
|
@@ -171,22 +216,23 @@
|
|
|
171
216
|
}
|
|
172
217
|
}
|
|
173
218
|
|
|
219
|
+
--task-background-color: hsl(216 15% 11.5% / 1);
|
|
174
220
|
&.task {
|
|
175
|
-
background-color:
|
|
221
|
+
background-color: var(--task-background-color);
|
|
176
222
|
}
|
|
177
223
|
|
|
178
224
|
&.selected-row {
|
|
179
225
|
background-color: var(--md-sys-color-surface-container-high);
|
|
180
226
|
}
|
|
181
227
|
|
|
182
|
-
/* show hover effect only if direct child div does NOT have .readonly */
|
|
228
|
+
/* show hover effect only if direct child div does NOT have .readonly and is not selected */
|
|
183
229
|
&:not(:has(> div.readonly)) {
|
|
184
230
|
cursor: pointer;
|
|
185
231
|
&:hover {
|
|
186
232
|
background-color: var(--md-sys-color-surface-container);
|
|
187
233
|
}
|
|
188
234
|
|
|
189
|
-
|
|
235
|
+
&.selected {
|
|
190
236
|
background-color: var(--md-sys-color-secondary-container);
|
|
191
237
|
}
|
|
192
238
|
}
|
|
@@ -223,7 +269,7 @@
|
|
|
223
269
|
}
|
|
224
270
|
|
|
225
271
|
&.shadow-left:not(.shadow-top):not(.shadow-right):not(.shadow-bottom) {
|
|
226
|
-
box-shadow: ${
|
|
272
|
+
box-shadow: ${n}, ${({$isLastPinned:o})=>e(o||!1)};
|
|
227
273
|
}
|
|
228
274
|
|
|
229
275
|
/* Two sides */
|
|
@@ -238,7 +284,7 @@
|
|
|
238
284
|
}
|
|
239
285
|
|
|
240
286
|
&.shadow-top.shadow-left:not(.shadow-right):not(.shadow-bottom) {
|
|
241
|
-
box-shadow: ${s}, ${
|
|
287
|
+
box-shadow: ${s}, ${n},
|
|
242
288
|
${({$isLastPinned:o})=>e(o||!1)};
|
|
243
289
|
}
|
|
244
290
|
|
|
@@ -248,12 +294,12 @@
|
|
|
248
294
|
}
|
|
249
295
|
|
|
250
296
|
&.shadow-right.shadow-left:not(.shadow-top):not(.shadow-bottom) {
|
|
251
|
-
box-shadow: ${a}, ${
|
|
297
|
+
box-shadow: ${a}, ${n},
|
|
252
298
|
${({$isLastPinned:o})=>e(o||!1)};
|
|
253
299
|
}
|
|
254
300
|
|
|
255
301
|
&.shadow-bottom.shadow-left:not(.shadow-top):not(.shadow-right) {
|
|
256
|
-
box-shadow: ${r}, ${
|
|
302
|
+
box-shadow: ${r}, ${n},
|
|
257
303
|
${({$isLastPinned:o})=>e(o||!1)};
|
|
258
304
|
}
|
|
259
305
|
|
|
@@ -264,23 +310,23 @@
|
|
|
264
310
|
}
|
|
265
311
|
|
|
266
312
|
&.shadow-top.shadow-right.shadow-left:not(.shadow-bottom) {
|
|
267
|
-
box-shadow: ${s}, ${a}, ${
|
|
313
|
+
box-shadow: ${s}, ${a}, ${n},
|
|
268
314
|
${({$isLastPinned:o})=>e(o||!1)};
|
|
269
315
|
}
|
|
270
316
|
|
|
271
317
|
&.shadow-top.shadow-bottom.shadow-left:not(.shadow-right) {
|
|
272
|
-
box-shadow: ${s}, ${r}, ${
|
|
318
|
+
box-shadow: ${s}, ${r}, ${n},
|
|
273
319
|
${({$isLastPinned:o})=>e(o||!1)};
|
|
274
320
|
}
|
|
275
321
|
|
|
276
322
|
&.shadow-right.shadow-bottom.shadow-left:not(.shadow-top) {
|
|
277
|
-
box-shadow: ${a}, ${r}, ${
|
|
323
|
+
box-shadow: ${a}, ${r}, ${n},
|
|
278
324
|
${({$isLastPinned:o})=>e(o||!1)};
|
|
279
325
|
}
|
|
280
326
|
|
|
281
327
|
/* All four sides */
|
|
282
328
|
&.shadow-top.shadow-right.shadow-bottom.shadow-left {
|
|
283
|
-
box-shadow: ${s}, ${a}, ${r}, ${
|
|
329
|
+
box-shadow: ${s}, ${a}, ${r}, ${n},
|
|
284
330
|
${({$isLastPinned:o})=>e(o||!1)};
|
|
285
331
|
}
|
|
286
332
|
|
|
@@ -302,6 +348,32 @@
|
|
|
302
348
|
pointer-events: none;
|
|
303
349
|
}
|
|
304
350
|
|
|
351
|
+
/* read only fields are dimmed down for bg and border */
|
|
352
|
+
&:has(> div.readonly) {
|
|
353
|
+
&:not(.multiple-selected) {
|
|
354
|
+
--focused-readonly-color: hsl(212 15% 18% / 1);
|
|
355
|
+
&.focused {
|
|
356
|
+
background-color: var(--focused-readonly-color);
|
|
357
|
+
&::after {
|
|
358
|
+
border-color: var(--focused-readonly-color);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
/* when focused is readonly and multiple-selected */
|
|
364
|
+
&.multiple-selected {
|
|
365
|
+
&.focused::after {
|
|
366
|
+
display: none;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
/* if there is no cell widget element (no children) then the cell should not be selectable at all */
|
|
372
|
+
&:not(:has(> div)) {
|
|
373
|
+
pointer-events: none;
|
|
374
|
+
cursor: default;
|
|
375
|
+
}
|
|
376
|
+
|
|
305
377
|
&.editing {
|
|
306
378
|
z-index: 10 !important;
|
|
307
379
|
/* light border around the outside */
|
|
@@ -358,6 +430,13 @@
|
|
|
358
430
|
overflow: hidden;
|
|
359
431
|
}
|
|
360
432
|
|
|
433
|
+
/* Hide all header buttons when any column is being resized */
|
|
434
|
+
&.resizing {
|
|
435
|
+
.actions {
|
|
436
|
+
display: none !important;
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
|
|
361
440
|
table {
|
|
362
441
|
height: fit-content;
|
|
363
442
|
width: 100%;
|
|
@@ -386,5 +465,5 @@
|
|
|
386
465
|
font-size: 18px;
|
|
387
466
|
color: var(--md-sys-color-outline);
|
|
388
467
|
}
|
|
389
|
-
`;exports.ColumnHeader=h;exports.HeaderButtons=
|
|
468
|
+
`;exports.ColumnHeader=h;exports.HeaderButtons=u;exports.HeaderCell=p;exports.LinkColumnHeader=g;exports.ResizedHandler=c;exports.TR=d;exports.TableCell=w;exports.TableCellContent=l;exports.TableContainer=m;exports.TableHeader=b;exports.TableWrapper=f;
|
|
390
469
|
//# sourceMappingURL=ProjectTreeTable.styled.cjs.js.map
|