@ynput/ayon-frontend-shared 0.2.21 → 0.2.23
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 +6 -5
- package/dist/DetailsPanel.cjs.js.map +1 -1
- package/dist/DetailsPanel.es.js +6 -5
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/_virtual/index.cjs10.js +4 -4
- package/dist/_virtual/index.cjs4.js +4 -4
- package/dist/_virtual/index.cjs5.js +4 -4
- package/dist/_virtual/index.cjs6.js +2 -2
- package/dist/_virtual/index.cjs7.js +2 -2
- package/dist/_virtual/index.cjs8.js +4 -4
- package/dist/_virtual/index.cjs9.js +4 -4
- package/dist/_virtual/index.es10.js +4 -4
- package/dist/_virtual/index.es4.js +4 -4
- package/dist/_virtual/index.es5.js +4 -4
- package/dist/_virtual/index.es6.js +2 -2
- package/dist/_virtual/index.es7.js +2 -2
- package/dist/_virtual/index.es8.js +4 -4
- package/dist/_virtual/index.es9.js +4 -4
- package/dist/api.cjs.js +22 -19
- package/dist/api.cjs.js.map +1 -1
- package/dist/api.es.js +8 -5
- package/dist/api.es.js.map +1 -1
- package/dist/index.cjs.js +6 -5
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +6 -5
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
- package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
- package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
- package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +2 -2
- package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
- package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/node_modules/vfile/lib/index.cjs.js +1 -1
- package/dist/node_modules/vfile/lib/index.es.js +1 -1
- package/dist/shared/src/api/base/client.cjs.js +20 -19
- package/dist/shared/src/api/base/client.cjs.js.map +1 -1
- package/dist/shared/src/api/base/client.es.js +20 -19
- package/dist/shared/src/api/base/client.es.js.map +1 -1
- package/dist/shared/src/api/generated/access.cjs.js +8 -0
- package/dist/shared/src/api/generated/access.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/access.es.js +8 -0
- package/dist/shared/src/api/generated/access.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/entities/transformDetailsPanelData.cjs.js +6 -5
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +6 -5
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +6 -5
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.es.js +6 -5
- package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +6 -5
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js +6 -5
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/share/share.cjs.js +66 -0
- package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/share/share.es.js +66 -0
- package/dist/shared/src/api/queries/share/share.es.js.map +1 -0
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +6 -5
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +6 -5
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/views/getViews.cjs.js +5 -1
- package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/views/getViews.es.js +5 -1
- package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
- package/dist/shared/src/api/queries/views/updateViews.cjs.js +0 -2
- package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/views/updateViews.es.js +0 -2
- package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +6 -5
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +6 -5
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +6 -5
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +6 -5
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +6 -5
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +6 -5
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +6 -5
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js +6 -5
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +6 -5
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +6 -5
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +6 -5
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +6 -5
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +6 -5
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +6 -5
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +6 -5
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +6 -5
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +6 -5
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +6 -5
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +6 -5
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +6 -5
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +6 -5
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +6 -5
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +6 -5
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +6 -5
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +6 -5
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +6 -5
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +6 -5
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +6 -5
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +6 -5
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +6 -5
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +6 -5
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +6 -5
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js +6 -5
- package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.es.js +6 -5
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +6 -5
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +6 -5
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js +6 -5
- package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.es.js +6 -5
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +6 -5
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +6 -5
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +6 -5
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +6 -5
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +6 -5
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +6 -5
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +6 -5
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +15 -9
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +15 -9
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +52 -77
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +52 -77
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +14 -8
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +14 -8
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +6 -5
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +6 -5
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +17 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +17 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.cjs.js +4 -2
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.es.js +4 -2
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +12 -7
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +12 -7
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.cjs.js +17 -0
- package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.es.js +17 -0
- package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.es.js.map +1 -0
- package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.styled.cjs.js +37 -0
- package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.styled.cjs.js.map +1 -0
- package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.styled.es.js +37 -0
- package/dist/shared/src/containers/Views/ViewsMenu/SectionHeader.styled.es.js.map +1 -0
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.cjs.js +13 -2
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.es.js +14 -3
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.styled.cjs.js +1 -2
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.styled.es.js +2 -3
- package/dist/shared/src/containers/Views/ViewsMenu/ViewsMenu.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +38 -6
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js +39 -7
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +31 -5
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +31 -5
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +61 -23
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +61 -23
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +6 -5
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +6 -5
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +45 -6
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +45 -6
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.cjs.js +3 -40
- package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.es.js +3 -40
- package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.cjs.js +2 -1
- package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.es.js +2 -1
- package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +6 -5
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +6 -5
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +6 -5
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +6 -5
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +6 -5
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +6 -5
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js +6 -5
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +6 -5
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +6 -5
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +6 -5
- package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js +6 -5
- package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.es.js +6 -5
- package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +6 -5
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +6 -5
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +6 -5
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -5
- package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +6 -5
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.es.js +6 -5
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/types/api/generated/access.d.ts +15 -0
- package/dist/types/api/generated/views.d.ts +4 -4
- package/dist/types/api/queries/index.d.ts +6 -5
- package/dist/types/api/queries/share/index.d.ts +1 -0
- package/dist/types/api/queries/share/share.d.ts +150 -0
- package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +10 -15
- package/dist/types/containers/Views/ViewItem/ViewItem.d.ts +1 -0
- package/dist/types/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.d.ts +2 -1
- package/dist/types/containers/Views/ViewsMenu/SectionHeader.d.ts +6 -0
- package/dist/types/containers/Views/ViewsMenu/SectionHeader.styled.d.ts +1 -0
- package/dist/types/containers/Views/ViewsMenu/ViewsMenu.d.ts +8 -3
- package/dist/types/containers/Views/context/ViewsContext.d.ts +3 -1
- package/dist/types/containers/Views/hooks/useBuildViewMenuItems.d.ts +2 -1
- package/dist/types/containers/Views/hooks/useViewsMutations.d.ts +7 -0
- package/dist/types/containers/Views/index.d.ts +1 -1
- package/dist/types/containers/Views/utils/getCustomViewsFallback.d.ts +7 -6
- package/package.json +1 -1
- package/dist/types/api/generated/powerPack1.1.1Views.d.ts +0 -25
- package/dist/types/containers/Views/hooks/useOverviewViewSettings.d.ts +0 -0
|
@@ -12,6 +12,11 @@ const ColumnSettingsProvider = ({
|
|
|
12
12
|
onChange
|
|
13
13
|
}) => {
|
|
14
14
|
var _a;
|
|
15
|
+
const allColumnsRef = React.useRef([]);
|
|
16
|
+
const setAllColumns = (allColumnIds) => {
|
|
17
|
+
allColumnsRef.current = Array.from(new Set(allColumnIds));
|
|
18
|
+
};
|
|
19
|
+
const onChangeWithColumns = (next) => onChange(next, allColumnsRef.current);
|
|
15
20
|
const columnsConfig = config;
|
|
16
21
|
const {
|
|
17
22
|
columnOrder: columnOrderInit = [],
|
|
@@ -59,49 +64,37 @@ const ColumnSettingsProvider = ({
|
|
|
59
64
|
if (groupBy && !columnVisibility.name) {
|
|
60
65
|
columnVisibility.name = true;
|
|
61
66
|
}
|
|
62
|
-
const setColumnVisibility = (visibility
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
},
|
|
68
|
-
allColumnIds
|
|
69
|
-
);
|
|
67
|
+
const setColumnVisibility = (visibility) => {
|
|
68
|
+
onChangeWithColumns({
|
|
69
|
+
...columnsConfig,
|
|
70
|
+
columnVisibility: visibility
|
|
71
|
+
});
|
|
70
72
|
};
|
|
71
|
-
const setColumnOrder = (order
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
},
|
|
77
|
-
allColumnIds
|
|
78
|
-
);
|
|
73
|
+
const setColumnOrder = (order) => {
|
|
74
|
+
onChangeWithColumns({
|
|
75
|
+
...columnsConfig,
|
|
76
|
+
columnOrder: order
|
|
77
|
+
});
|
|
79
78
|
};
|
|
80
|
-
const setColumnPinning = (pinning
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
},
|
|
86
|
-
allColumnIds
|
|
87
|
-
);
|
|
79
|
+
const setColumnPinning = (pinning) => {
|
|
80
|
+
onChangeWithColumns({
|
|
81
|
+
...columnsConfig,
|
|
82
|
+
columnPinning: pinning
|
|
83
|
+
});
|
|
88
84
|
};
|
|
89
85
|
const [internalColumnSizing, setInternalColumnSizing] = React.useState(null);
|
|
90
86
|
const columnSizing = internalColumnSizing || columnsSizingExternal;
|
|
91
87
|
const resizingTimeoutRef = React.useRef(null);
|
|
92
|
-
const setColumnSizing = (sizing
|
|
88
|
+
const setColumnSizing = (sizing) => {
|
|
93
89
|
setInternalColumnSizing(sizing);
|
|
94
90
|
if (resizingTimeoutRef.current) {
|
|
95
91
|
clearTimeout(resizingTimeoutRef.current);
|
|
96
92
|
}
|
|
97
93
|
resizingTimeoutRef.current = setTimeout(() => {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
},
|
|
103
|
-
allColumnIds
|
|
104
|
-
);
|
|
94
|
+
onChangeWithColumns({
|
|
95
|
+
...columnsConfig,
|
|
96
|
+
columnSizing: sizing
|
|
97
|
+
});
|
|
105
98
|
setInternalColumnSizing(null);
|
|
106
99
|
}, 500);
|
|
107
100
|
};
|
|
@@ -134,7 +127,7 @@ const ColumnSettingsProvider = ({
|
|
|
134
127
|
};
|
|
135
128
|
const updateColumnVisibility = (visibility) => {
|
|
136
129
|
const newPinning = togglePinningOnVisibilityChange(visibility);
|
|
137
|
-
|
|
130
|
+
onChangeWithColumns({
|
|
138
131
|
...columnsConfig,
|
|
139
132
|
columnVisibility: visibility,
|
|
140
133
|
columnPinning: newPinning
|
|
@@ -142,7 +135,7 @@ const ColumnSettingsProvider = ({
|
|
|
142
135
|
};
|
|
143
136
|
const updateColumnOrder = (order) => {
|
|
144
137
|
const newPinning = updatePinningOrderOnOrderChange(order);
|
|
145
|
-
|
|
138
|
+
onChangeWithColumns({
|
|
146
139
|
...columnsConfig,
|
|
147
140
|
columnOrder: order,
|
|
148
141
|
columnPinning: newPinning
|
|
@@ -150,26 +143,26 @@ const ColumnSettingsProvider = ({
|
|
|
150
143
|
};
|
|
151
144
|
const updateColumnPinning = (pinning) => {
|
|
152
145
|
const newOrder = updateOrderOnPinningChange(pinning);
|
|
153
|
-
|
|
146
|
+
onChangeWithColumns({
|
|
154
147
|
...columnsConfig,
|
|
155
148
|
columnOrder: newOrder,
|
|
156
149
|
columnPinning: pinning
|
|
157
150
|
});
|
|
158
151
|
};
|
|
159
152
|
const updateSorting = (sortingState) => {
|
|
160
|
-
|
|
153
|
+
onChangeWithColumns({
|
|
161
154
|
...columnsConfig,
|
|
162
155
|
sorting: sortingState
|
|
163
156
|
});
|
|
164
157
|
};
|
|
165
158
|
const updateGroupBy = (groupBy2) => {
|
|
166
|
-
|
|
159
|
+
onChangeWithColumns({
|
|
167
160
|
...columnsConfig,
|
|
168
161
|
groupBy: groupBy2
|
|
169
162
|
});
|
|
170
163
|
};
|
|
171
164
|
const updateGroupByConfig = (config2) => {
|
|
172
|
-
|
|
165
|
+
onChangeWithColumns({
|
|
173
166
|
...columnsConfig,
|
|
174
167
|
groupByConfig: {
|
|
175
168
|
...groupByConfig,
|
|
@@ -177,80 +170,62 @@ const ColumnSettingsProvider = ({
|
|
|
177
170
|
}
|
|
178
171
|
});
|
|
179
172
|
};
|
|
180
|
-
const
|
|
181
|
-
const newVisibility = reactTable.functionalUpdate(
|
|
182
|
-
|
|
173
|
+
const columnVisibilityOnChange = (updater) => {
|
|
174
|
+
const newVisibility = reactTable.functionalUpdate(updater, columnVisibility);
|
|
175
|
+
setColumnVisibility(newVisibility);
|
|
183
176
|
};
|
|
184
|
-
const
|
|
185
|
-
const
|
|
186
|
-
|
|
177
|
+
const columnPinningOnChange = (updater) => {
|
|
178
|
+
const newPinning = reactTable.functionalUpdate(updater, columnPinning);
|
|
179
|
+
setColumnPinning(newPinning);
|
|
187
180
|
};
|
|
188
|
-
const
|
|
189
|
-
const
|
|
190
|
-
|
|
181
|
+
const columnOrderOnChange = (updater) => {
|
|
182
|
+
const newOrder = reactTable.functionalUpdate(updater, columnOrder);
|
|
183
|
+
setColumnOrder(newOrder);
|
|
191
184
|
};
|
|
192
|
-
const
|
|
193
|
-
const newSizing = reactTable.functionalUpdate(
|
|
185
|
+
const columnSizingOnChange = (updater) => {
|
|
186
|
+
const newSizing = reactTable.functionalUpdate(updater, columnSizing);
|
|
194
187
|
setColumnSizing(newSizing);
|
|
195
188
|
};
|
|
196
|
-
const
|
|
197
|
-
const newSorting = reactTable.functionalUpdate(
|
|
189
|
+
const sortingOnChange = (updater) => {
|
|
190
|
+
const newSorting = reactTable.functionalUpdate(updater, sorting);
|
|
198
191
|
updateSorting(newSorting);
|
|
199
192
|
};
|
|
200
|
-
const createUpdaterWithAllColumns = {
|
|
201
|
-
columnVisibility: (allColumnIds) => (updater) => {
|
|
202
|
-
const newVisibility = reactTable.functionalUpdate(updater, columnVisibility);
|
|
203
|
-
setColumnVisibility(newVisibility, allColumnIds);
|
|
204
|
-
},
|
|
205
|
-
columnPinning: (allColumnIds) => (updater) => {
|
|
206
|
-
const newPinning = reactTable.functionalUpdate(updater, columnPinning);
|
|
207
|
-
setColumnPinning(newPinning, allColumnIds);
|
|
208
|
-
},
|
|
209
|
-
columnOrder: (allColumnIds) => (updater) => {
|
|
210
|
-
const newOrder = reactTable.functionalUpdate(updater, columnOrder);
|
|
211
|
-
setColumnOrder(newOrder, allColumnIds);
|
|
212
|
-
},
|
|
213
|
-
columnSizing: (allColumnIds) => (updater) => {
|
|
214
|
-
const newSizing = reactTable.functionalUpdate(updater, columnSizing);
|
|
215
|
-
setColumnSizing(newSizing, allColumnIds);
|
|
216
|
-
}
|
|
217
|
-
};
|
|
218
193
|
return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
|
|
219
194
|
ColumnSettingsContext.ColumnSettingsContext.Provider,
|
|
220
195
|
{
|
|
221
196
|
value: {
|
|
197
|
+
// all columns ref
|
|
198
|
+
setAllColumns,
|
|
222
199
|
// column visibility
|
|
223
200
|
columnVisibility,
|
|
224
201
|
setColumnVisibility,
|
|
225
202
|
updateColumnVisibility,
|
|
226
|
-
|
|
203
|
+
columnVisibilityOnChange,
|
|
227
204
|
// column pinning
|
|
228
205
|
columnPinning,
|
|
229
206
|
setColumnPinning,
|
|
230
207
|
updateColumnPinning,
|
|
231
|
-
|
|
208
|
+
columnPinningOnChange,
|
|
232
209
|
// column order
|
|
233
210
|
columnOrder,
|
|
234
211
|
setColumnOrder,
|
|
235
212
|
updateColumnOrder,
|
|
236
|
-
|
|
213
|
+
columnOrderOnChange,
|
|
237
214
|
// column sizing
|
|
238
215
|
columnSizing,
|
|
239
216
|
setColumnSizing,
|
|
240
|
-
|
|
217
|
+
columnSizingOnChange,
|
|
241
218
|
// sorting
|
|
242
219
|
sorting,
|
|
243
220
|
updateSorting,
|
|
244
|
-
|
|
245
|
-
// unified updaters
|
|
246
|
-
createUpdaterWithAllColumns,
|
|
221
|
+
sortingOnChange,
|
|
247
222
|
// group by
|
|
248
223
|
groupBy,
|
|
249
224
|
updateGroupBy,
|
|
250
225
|
groupByConfig,
|
|
251
226
|
updateGroupByConfig,
|
|
252
227
|
// global change
|
|
253
|
-
setColumnsConfig: (config2) =>
|
|
228
|
+
setColumnsConfig: (config2) => onChangeWithColumns(config2)
|
|
254
229
|
},
|
|
255
230
|
children
|
|
256
231
|
}
|
package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSettingsProvider.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ColumnSettingsProvider.tsx"],"sourcesContent":["import React, { ReactNode, useState } from 'react'\nimport {\n ColumnOrderState,\n ColumnPinningState,\n functionalUpdate,\n OnChangeFn,\n VisibilityState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ROW_SELECTION_COLUMN_ID } from './SelectionCellsContext'\nimport { DRAG_HANDLE_COLUMN_ID } from '../ProjectTreeTable'\nimport { ColumnsConfig, ColumnSettingsContext, TableGroupBy } from './ColumnSettingsContext'\nimport { GroupByConfig } from '../components/GroupSettingsFallback'\n\ninterface ColumnSettingsProviderProps {\n children: ReactNode\n config?: Record<string, any>\n onChange: (config: ColumnsConfig, allColumnIds?: string[]) => void\n}\n\nexport const ColumnSettingsProvider: React.FC<ColumnSettingsProviderProps> = ({\n children,\n config,\n onChange,\n}) => {\n const columnsConfig = config as ColumnsConfig\n const {\n columnOrder: columnOrderInit = [],\n columnPinning: columnPinningInit = {},\n columnVisibility: columnVisibilityInit = {},\n columnSizing: columnsSizingExternal = {},\n sorting: sortingInit = [],\n groupBy,\n groupByConfig = {},\n } = columnsConfig\n\n const sorting = [...sortingInit]\n const columnOrder = [...columnOrderInit]\n const columnPinning = { ...columnPinningInit }\n const defaultOrder = ['thumbnail', 'name', 'subType', 'status', 'tags']\n // for each default column, if it is not in the columnOrder, find the index of the column before it, if none, add to beginning\n defaultOrder.forEach((col, i) => {\n if (!columnOrder.includes(col)) {\n const defaultBefore = defaultOrder[i - 1]\n const columnAfter = defaultOrder[i + 1]\n if (!defaultBefore || !columnOrder.includes(defaultBefore)) {\n // add to beginning\n columnOrder.unshift(col)\n } else {\n // find the index of that column in the columnOrder\n const index = columnOrder.indexOf(defaultBefore)\n // add the item after that column\n columnOrder.splice(index + 1, 0, col)\n }\n if (columnAfter && columnPinning?.left && columnPinning?.left.includes(columnAfter)) {\n // pin the column\n columnPinning.left = [col, ...(columnPinning?.left || [])]\n }\n }\n })\n\n // if we are in grouping mode, always pin the name column\n // and ensure it is first in column order\n if (groupBy) {\n // ensure name column is pinned and first in pinning order\n if (!columnPinning.left?.includes('name')) {\n columnPinning.left = ['name', ...(columnPinning?.left || [])]\n } else {\n // name is already pinned, but ensure it's first\n const filteredPinned = columnPinning.left.filter((col) => col !== 'name')\n columnPinning.left = ['name', ...filteredPinned]\n }\n\n // ensure name is first in column order\n if (columnOrder.includes('name')) {\n // remove name from its current position\n const nameIndex = columnOrder.indexOf('name')\n columnOrder.splice(nameIndex, 1)\n }\n // add name to the beginning\n columnOrder.unshift('name')\n }\n\n // add drag handle and selection columns to the beginning of the column order\n columnOrder.unshift(...[DRAG_HANDLE_COLUMN_ID, ROW_SELECTION_COLUMN_ID])\n\n // VISIBILITY STATE MUTATIONS\n const columnVisibility = { ...columnVisibilityInit }\n // if we are in grouping mode, name column must always be visible\n if (groupBy && !columnVisibility.name) {\n columnVisibility.name = true\n }\n\n // DIRECT STATE UPDATES - no side effects\n const setColumnVisibility = (visibility: VisibilityState, allColumnIds?: string[]) => {\n onChange(\n {\n ...columnsConfig,\n columnVisibility: visibility,\n },\n allColumnIds,\n )\n }\n\n const setColumnOrder = (order: ColumnOrderState, allColumnIds?: string[]) => {\n onChange(\n {\n ...columnsConfig,\n columnOrder: order,\n },\n allColumnIds,\n )\n }\n\n const setColumnPinning = (pinning: ColumnPinningState, allColumnIds?: string[]) => {\n onChange(\n {\n ...columnsConfig,\n columnPinning: pinning,\n },\n allColumnIds,\n )\n }\n\n const [internalColumnSizing, setInternalColumnSizing] = useState<ColumnSizingState | null>(null)\n\n // use internalColumnSizing if it exists, otherwise use the external column sizing\n const columnSizing = internalColumnSizing || columnsSizingExternal\n\n const resizingTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n\n const setColumnSizing = (sizing: ColumnSizingState, allColumnIds?: string[]) => {\n setInternalColumnSizing(sizing)\n\n // if there is a timeout already set, clear it\n if (resizingTimeoutRef.current) {\n clearTimeout(resizingTimeoutRef.current)\n }\n // set a timeout that tracks if the column sizing has finished\n resizingTimeoutRef.current = setTimeout(() => {\n // we have finished resizing now!\n // update the external column sizing\n onChange(\n {\n ...columnsConfig,\n columnSizing: sizing,\n },\n allColumnIds,\n )\n // reset the internal column sizing to not be used anymore\n setInternalColumnSizing(null)\n }, 500)\n }\n\n // SIDE EFFECT UTILITIES\n const togglePinningOnVisibilityChange = (visibility: VisibilityState) => {\n // ensure that any columns that are now hidden are removed from the pinning\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const hiddenColumns = Object.keys(visibility).filter((col) => visibility[col] === false)\n const newPinnedColumns = pinnedColumns.filter((col) => !hiddenColumns.includes(col))\n\n return {\n ...newPinning,\n left: newPinnedColumns,\n }\n }\n\n const updatePinningOrderOnOrderChange = (order: ColumnOrderState) => {\n // ensure that the column pinning is in the order of the column order\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const pinnedColumnsOrder = order.filter((col) => pinnedColumns.includes(col))\n\n return {\n ...newPinning,\n left: pinnedColumnsOrder,\n }\n }\n\n const updateOrderOnPinningChange = (pinning: ColumnPinningState) => {\n // we resort the column order based on the pinning\n return [...columnOrder].sort((a, b) => {\n const aPinned = pinning.left?.includes(a) ? 1 : 0\n const bPinned = pinning.left?.includes(b) ? 1 : 0\n return bPinned - aPinned\n })\n }\n\n // UPDATE METHODS WITH SIDE EFFECTS\n const updateColumnVisibility = (visibility: VisibilityState) => {\n const newPinning = togglePinningOnVisibilityChange(visibility)\n onChange({\n ...columnsConfig,\n columnVisibility: visibility,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnOrder = (order: ColumnOrderState) => {\n const newPinning = updatePinningOrderOnOrderChange(order)\n onChange({\n ...columnsConfig,\n columnOrder: order,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnPinning = (pinning: ColumnPinningState) => {\n const newOrder = updateOrderOnPinningChange(pinning)\n onChange({\n ...columnsConfig,\n columnOrder: newOrder,\n columnPinning: pinning,\n })\n }\n\n const updateSorting = (sortingState: SortingState) => {\n onChange({\n ...columnsConfig,\n sorting: sortingState,\n })\n }\n\n const updateGroupBy = (groupBy: TableGroupBy | undefined) => {\n onChange({\n ...columnsConfig,\n groupBy: groupBy,\n })\n }\n\n const updateGroupByConfig = (config: GroupByConfig) => {\n onChange({\n ...columnsConfig,\n groupByConfig: {\n ...groupByConfig,\n ...config,\n },\n })\n }\n\n // UPDATER FUNCTIONS\n const columnVisibilityUpdater: OnChangeFn<VisibilityState> = (columnVisibilityUpdater) => {\n const newVisibility = functionalUpdate(columnVisibilityUpdater, columnVisibility)\n updateColumnVisibility(newVisibility)\n }\n\n const columnOrderUpdater: OnChangeFn<ColumnOrderState> = (columnOrderUpdater) => {\n const newOrder = functionalUpdate(columnOrderUpdater, columnOrder)\n updateColumnOrder(newOrder)\n }\n\n const columnPinningUpdater: OnChangeFn<ColumnPinningState> = (columnPinningUpdater) => {\n const newPinning = functionalUpdate(columnPinningUpdater, columnPinning)\n updateColumnPinning(newPinning)\n }\n\n const columnSizingUpdater: OnChangeFn<ColumnSizingState> = (sizingUpdater) => {\n const newSizing = functionalUpdate(sizingUpdater, columnSizing)\n setColumnSizing(newSizing)\n }\n\n const sortingUpdater: OnChangeFn<SortingState> = (sortingUpdater) => {\n const newSorting = functionalUpdate(sortingUpdater, sorting)\n updateSorting(newSorting)\n }\n\n // UNIFIED UPDATERS WITH ALL COLUMN IDS\n const createUpdaterWithAllColumns = {\n columnVisibility:\n (allColumnIds: string[]): OnChangeFn<VisibilityState> =>\n (updater) => {\n const newVisibility = functionalUpdate(updater, columnVisibility)\n setColumnVisibility(newVisibility, allColumnIds)\n },\n columnPinning:\n (allColumnIds: string[]): OnChangeFn<ColumnPinningState> =>\n (updater) => {\n const newPinning = functionalUpdate(updater, columnPinning)\n setColumnPinning(newPinning, allColumnIds)\n },\n columnOrder:\n (allColumnIds: string[]): OnChangeFn<ColumnOrderState> =>\n (updater) => {\n const newOrder = functionalUpdate(updater, columnOrder)\n setColumnOrder(newOrder, allColumnIds)\n },\n columnSizing:\n (allColumnIds: string[]): OnChangeFn<ColumnSizingState> =>\n (updater) => {\n const newSizing = functionalUpdate(updater, columnSizing)\n setColumnSizing(newSizing, allColumnIds)\n },\n }\n\n return (\n <ColumnSettingsContext.Provider\n value={{\n // column visibility\n columnVisibility,\n setColumnVisibility,\n updateColumnVisibility,\n columnVisibilityUpdater,\n // column pinning\n columnPinning,\n setColumnPinning,\n updateColumnPinning,\n columnPinningUpdater,\n // column order\n columnOrder,\n setColumnOrder,\n updateColumnOrder,\n columnOrderUpdater,\n // column sizing\n columnSizing,\n setColumnSizing,\n columnSizingUpdater,\n // sorting\n sorting,\n updateSorting,\n sortingUpdater,\n // unified updaters\n createUpdaterWithAllColumns,\n // group by\n groupBy,\n updateGroupBy,\n groupByConfig,\n updateGroupByConfig,\n\n // global change\n setColumnsConfig: (config: ColumnsConfig) => onChange(config),\n }}\n >\n {children}\n </ColumnSettingsContext.Provider>\n )\n}\n"],"names":["DRAG_HANDLE_COLUMN_ID","ROW_SELECTION_COLUMN_ID","useState","_a","groupBy","config","columnVisibilityUpdater","functionalUpdate","columnOrderUpdater","columnPinningUpdater","sortingUpdater","jsx","ColumnSettingsContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColumnSettingsProvider.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ColumnSettingsProvider.tsx"],"sourcesContent":["import React, { ReactNode, useState } from 'react'\nimport {\n ColumnOrderState,\n ColumnPinningState,\n functionalUpdate,\n OnChangeFn,\n VisibilityState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ROW_SELECTION_COLUMN_ID } from './SelectionCellsContext'\nimport { DRAG_HANDLE_COLUMN_ID } from '../ProjectTreeTable'\nimport { ColumnsConfig, ColumnSettingsContext, TableGroupBy } from './ColumnSettingsContext'\nimport { GroupByConfig } from '../components/GroupSettingsFallback'\n\ninterface ColumnSettingsProviderProps {\n children: ReactNode\n config?: Record<string, any>\n onChange: (config: ColumnsConfig, allColumnIds?: string[]) => void\n}\n\nexport const ColumnSettingsProvider: React.FC<ColumnSettingsProviderProps> = ({\n children,\n config,\n onChange,\n}) => {\n const allColumnsRef = React.useRef<string[]>([])\n const setAllColumns = (allColumnIds: string[]) => {\n allColumnsRef.current = Array.from(new Set(allColumnIds))\n }\n const onChangeWithColumns = (next: ColumnsConfig) => onChange(next, allColumnsRef.current)\n const columnsConfig = config as ColumnsConfig\n const {\n columnOrder: columnOrderInit = [],\n columnPinning: columnPinningInit = {},\n columnVisibility: columnVisibilityInit = {},\n columnSizing: columnsSizingExternal = {},\n sorting: sortingInit = [],\n groupBy,\n groupByConfig = {},\n } = columnsConfig\n\n const sorting = [...sortingInit]\n const columnOrder = [...columnOrderInit]\n const columnPinning = { ...columnPinningInit }\n const defaultOrder = ['thumbnail', 'name', 'subType', 'status', 'tags']\n // for each default column, if it is not in the columnOrder, find the index of the column before it, if none, add to beginning\n defaultOrder.forEach((col, i) => {\n if (!columnOrder.includes(col)) {\n const defaultBefore = defaultOrder[i - 1]\n const columnAfter = defaultOrder[i + 1]\n if (!defaultBefore || !columnOrder.includes(defaultBefore)) {\n // add to beginning\n columnOrder.unshift(col)\n } else {\n // find the index of that column in the columnOrder\n const index = columnOrder.indexOf(defaultBefore)\n // add the item after that column\n columnOrder.splice(index + 1, 0, col)\n }\n if (columnAfter && columnPinning?.left && columnPinning?.left.includes(columnAfter)) {\n // pin the column\n columnPinning.left = [col, ...(columnPinning?.left || [])]\n }\n }\n })\n\n // if we are in grouping mode, always pin the name column\n // and ensure it is first in column order\n if (groupBy) {\n // ensure name column is pinned and first in pinning order\n if (!columnPinning.left?.includes('name')) {\n columnPinning.left = ['name', ...(columnPinning?.left || [])]\n } else {\n // name is already pinned, but ensure it's first\n const filteredPinned = columnPinning.left.filter((col) => col !== 'name')\n columnPinning.left = ['name', ...filteredPinned]\n }\n\n // ensure name is first in column order\n if (columnOrder.includes('name')) {\n // remove name from its current position\n const nameIndex = columnOrder.indexOf('name')\n columnOrder.splice(nameIndex, 1)\n }\n // add name to the beginning\n columnOrder.unshift('name')\n }\n\n // add drag handle and selection columns to the beginning of the column order\n columnOrder.unshift(...[DRAG_HANDLE_COLUMN_ID, ROW_SELECTION_COLUMN_ID])\n\n // VISIBILITY STATE MUTATIONS\n const columnVisibility = { ...columnVisibilityInit }\n // if we are in grouping mode, name column must always be visible\n if (groupBy && !columnVisibility.name) {\n columnVisibility.name = true\n }\n\n // DIRECT STATE UPDATES - no side effects\n const setColumnVisibility = (visibility: VisibilityState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnVisibility: visibility,\n })\n }\n\n const setColumnOrder = (order: ColumnOrderState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: order,\n })\n }\n\n const setColumnPinning = (pinning: ColumnPinningState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnPinning: pinning,\n })\n }\n\n const [internalColumnSizing, setInternalColumnSizing] = useState<ColumnSizingState | null>(null)\n\n // use internalColumnSizing if it exists, otherwise use the external column sizing\n const columnSizing = internalColumnSizing || columnsSizingExternal\n\n const resizingTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n\n const setColumnSizing = (sizing: ColumnSizingState) => {\n setInternalColumnSizing(sizing)\n\n // if there is a timeout already set, clear it\n if (resizingTimeoutRef.current) {\n clearTimeout(resizingTimeoutRef.current)\n }\n // set a timeout that tracks if the column sizing has finished\n resizingTimeoutRef.current = setTimeout(() => {\n // we have finished resizing now!\n // update the external column sizing\n onChangeWithColumns({\n ...columnsConfig,\n columnSizing: sizing,\n })\n // reset the internal column sizing to not be used anymore\n setInternalColumnSizing(null)\n }, 500)\n }\n\n // SIDE EFFECT UTILITIES\n const togglePinningOnVisibilityChange = (visibility: VisibilityState) => {\n // ensure that any columns that are now hidden are removed from the pinning\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const hiddenColumns = Object.keys(visibility).filter((col) => visibility[col] === false)\n const newPinnedColumns = pinnedColumns.filter((col) => !hiddenColumns.includes(col))\n\n return {\n ...newPinning,\n left: newPinnedColumns,\n }\n }\n\n const updatePinningOrderOnOrderChange = (order: ColumnOrderState) => {\n // ensure that the column pinning is in the order of the column order\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const pinnedColumnsOrder = order.filter((col) => pinnedColumns.includes(col))\n\n return {\n ...newPinning,\n left: pinnedColumnsOrder,\n }\n }\n\n const updateOrderOnPinningChange = (pinning: ColumnPinningState) => {\n // we resort the column order based on the pinning\n return [...columnOrder].sort((a, b) => {\n const aPinned = pinning.left?.includes(a) ? 1 : 0\n const bPinned = pinning.left?.includes(b) ? 1 : 0\n return bPinned - aPinned\n })\n }\n\n // UPDATE METHODS WITH SIDE EFFECTS\n const updateColumnVisibility = (visibility: VisibilityState) => {\n const newPinning = togglePinningOnVisibilityChange(visibility)\n onChangeWithColumns({\n ...columnsConfig,\n columnVisibility: visibility,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnOrder = (order: ColumnOrderState) => {\n const newPinning = updatePinningOrderOnOrderChange(order)\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: order,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnPinning = (pinning: ColumnPinningState) => {\n const newOrder = updateOrderOnPinningChange(pinning)\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: newOrder,\n columnPinning: pinning,\n })\n }\n\n const updateSorting = (sortingState: SortingState) => {\n onChangeWithColumns({\n ...columnsConfig,\n sorting: sortingState,\n })\n }\n\n const updateGroupBy = (groupBy: TableGroupBy | undefined) => {\n onChangeWithColumns({\n ...columnsConfig,\n groupBy: groupBy,\n })\n }\n\n const updateGroupByConfig = (config: GroupByConfig) => {\n onChangeWithColumns({\n ...columnsConfig,\n groupByConfig: {\n ...groupByConfig,\n ...config,\n },\n })\n }\n\n // Remove redundant local updater functions in favor of unified updaters with all columns\n\n // ON-CHANGE HANDLERS (TanStack-compatible)\n const columnVisibilityOnChange: OnChangeFn<VisibilityState> = (updater) => {\n const newVisibility = functionalUpdate(updater, columnVisibility)\n setColumnVisibility(newVisibility)\n }\n\n const columnPinningOnChange: OnChangeFn<ColumnPinningState> = (updater) => {\n const newPinning = functionalUpdate(updater, columnPinning)\n setColumnPinning(newPinning)\n }\n\n const columnOrderOnChange: OnChangeFn<ColumnOrderState> = (updater) => {\n const newOrder = functionalUpdate(updater, columnOrder)\n setColumnOrder(newOrder)\n }\n\n const columnSizingOnChange: OnChangeFn<ColumnSizingState> = (updater) => {\n const newSizing = functionalUpdate(updater, columnSizing)\n setColumnSizing(newSizing)\n }\n\n const sortingOnChange: OnChangeFn<SortingState> = (updater) => {\n const newSorting = functionalUpdate(updater, sorting)\n updateSorting(newSorting)\n }\n\n return (\n <ColumnSettingsContext.Provider\n value={{\n // all columns ref\n setAllColumns,\n // column visibility\n columnVisibility,\n setColumnVisibility,\n updateColumnVisibility,\n columnVisibilityOnChange,\n // column pinning\n columnPinning,\n setColumnPinning,\n updateColumnPinning,\n columnPinningOnChange,\n // column order\n columnOrder,\n setColumnOrder,\n updateColumnOrder,\n columnOrderOnChange,\n // column sizing\n columnSizing,\n setColumnSizing,\n columnSizingOnChange,\n // sorting\n sorting,\n updateSorting,\n sortingOnChange,\n // group by\n groupBy,\n updateGroupBy,\n groupByConfig,\n updateGroupByConfig,\n\n // global change\n setColumnsConfig: (config: ColumnsConfig) => onChangeWithColumns(config),\n }}\n >\n {children}\n </ColumnSettingsContext.Provider>\n )\n}\n"],"names":["DRAG_HANDLE_COLUMN_ID","ROW_SELECTION_COLUMN_ID","useState","_a","groupBy","config","functionalUpdate","jsx","ColumnSettingsContext"],"mappings":"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"}
|
|
@@ -10,6 +10,11 @@ const ColumnSettingsProvider = ({
|
|
|
10
10
|
onChange
|
|
11
11
|
}) => {
|
|
12
12
|
var _a;
|
|
13
|
+
const allColumnsRef = React__default.useRef([]);
|
|
14
|
+
const setAllColumns = (allColumnIds) => {
|
|
15
|
+
allColumnsRef.current = Array.from(new Set(allColumnIds));
|
|
16
|
+
};
|
|
17
|
+
const onChangeWithColumns = (next) => onChange(next, allColumnsRef.current);
|
|
13
18
|
const columnsConfig = config;
|
|
14
19
|
const {
|
|
15
20
|
columnOrder: columnOrderInit = [],
|
|
@@ -57,49 +62,37 @@ const ColumnSettingsProvider = ({
|
|
|
57
62
|
if (groupBy && !columnVisibility.name) {
|
|
58
63
|
columnVisibility.name = true;
|
|
59
64
|
}
|
|
60
|
-
const setColumnVisibility = (visibility
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
},
|
|
66
|
-
allColumnIds
|
|
67
|
-
);
|
|
65
|
+
const setColumnVisibility = (visibility) => {
|
|
66
|
+
onChangeWithColumns({
|
|
67
|
+
...columnsConfig,
|
|
68
|
+
columnVisibility: visibility
|
|
69
|
+
});
|
|
68
70
|
};
|
|
69
|
-
const setColumnOrder = (order
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
},
|
|
75
|
-
allColumnIds
|
|
76
|
-
);
|
|
71
|
+
const setColumnOrder = (order) => {
|
|
72
|
+
onChangeWithColumns({
|
|
73
|
+
...columnsConfig,
|
|
74
|
+
columnOrder: order
|
|
75
|
+
});
|
|
77
76
|
};
|
|
78
|
-
const setColumnPinning = (pinning
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
},
|
|
84
|
-
allColumnIds
|
|
85
|
-
);
|
|
77
|
+
const setColumnPinning = (pinning) => {
|
|
78
|
+
onChangeWithColumns({
|
|
79
|
+
...columnsConfig,
|
|
80
|
+
columnPinning: pinning
|
|
81
|
+
});
|
|
86
82
|
};
|
|
87
83
|
const [internalColumnSizing, setInternalColumnSizing] = useState(null);
|
|
88
84
|
const columnSizing = internalColumnSizing || columnsSizingExternal;
|
|
89
85
|
const resizingTimeoutRef = React__default.useRef(null);
|
|
90
|
-
const setColumnSizing = (sizing
|
|
86
|
+
const setColumnSizing = (sizing) => {
|
|
91
87
|
setInternalColumnSizing(sizing);
|
|
92
88
|
if (resizingTimeoutRef.current) {
|
|
93
89
|
clearTimeout(resizingTimeoutRef.current);
|
|
94
90
|
}
|
|
95
91
|
resizingTimeoutRef.current = setTimeout(() => {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
},
|
|
101
|
-
allColumnIds
|
|
102
|
-
);
|
|
92
|
+
onChangeWithColumns({
|
|
93
|
+
...columnsConfig,
|
|
94
|
+
columnSizing: sizing
|
|
95
|
+
});
|
|
103
96
|
setInternalColumnSizing(null);
|
|
104
97
|
}, 500);
|
|
105
98
|
};
|
|
@@ -132,7 +125,7 @@ const ColumnSettingsProvider = ({
|
|
|
132
125
|
};
|
|
133
126
|
const updateColumnVisibility = (visibility) => {
|
|
134
127
|
const newPinning = togglePinningOnVisibilityChange(visibility);
|
|
135
|
-
|
|
128
|
+
onChangeWithColumns({
|
|
136
129
|
...columnsConfig,
|
|
137
130
|
columnVisibility: visibility,
|
|
138
131
|
columnPinning: newPinning
|
|
@@ -140,7 +133,7 @@ const ColumnSettingsProvider = ({
|
|
|
140
133
|
};
|
|
141
134
|
const updateColumnOrder = (order) => {
|
|
142
135
|
const newPinning = updatePinningOrderOnOrderChange(order);
|
|
143
|
-
|
|
136
|
+
onChangeWithColumns({
|
|
144
137
|
...columnsConfig,
|
|
145
138
|
columnOrder: order,
|
|
146
139
|
columnPinning: newPinning
|
|
@@ -148,26 +141,26 @@ const ColumnSettingsProvider = ({
|
|
|
148
141
|
};
|
|
149
142
|
const updateColumnPinning = (pinning) => {
|
|
150
143
|
const newOrder = updateOrderOnPinningChange(pinning);
|
|
151
|
-
|
|
144
|
+
onChangeWithColumns({
|
|
152
145
|
...columnsConfig,
|
|
153
146
|
columnOrder: newOrder,
|
|
154
147
|
columnPinning: pinning
|
|
155
148
|
});
|
|
156
149
|
};
|
|
157
150
|
const updateSorting = (sortingState) => {
|
|
158
|
-
|
|
151
|
+
onChangeWithColumns({
|
|
159
152
|
...columnsConfig,
|
|
160
153
|
sorting: sortingState
|
|
161
154
|
});
|
|
162
155
|
};
|
|
163
156
|
const updateGroupBy = (groupBy2) => {
|
|
164
|
-
|
|
157
|
+
onChangeWithColumns({
|
|
165
158
|
...columnsConfig,
|
|
166
159
|
groupBy: groupBy2
|
|
167
160
|
});
|
|
168
161
|
};
|
|
169
162
|
const updateGroupByConfig = (config2) => {
|
|
170
|
-
|
|
163
|
+
onChangeWithColumns({
|
|
171
164
|
...columnsConfig,
|
|
172
165
|
groupByConfig: {
|
|
173
166
|
...groupByConfig,
|
|
@@ -175,80 +168,62 @@ const ColumnSettingsProvider = ({
|
|
|
175
168
|
}
|
|
176
169
|
});
|
|
177
170
|
};
|
|
178
|
-
const
|
|
179
|
-
const newVisibility = functionalUpdate(
|
|
180
|
-
|
|
171
|
+
const columnVisibilityOnChange = (updater) => {
|
|
172
|
+
const newVisibility = functionalUpdate(updater, columnVisibility);
|
|
173
|
+
setColumnVisibility(newVisibility);
|
|
181
174
|
};
|
|
182
|
-
const
|
|
183
|
-
const
|
|
184
|
-
|
|
175
|
+
const columnPinningOnChange = (updater) => {
|
|
176
|
+
const newPinning = functionalUpdate(updater, columnPinning);
|
|
177
|
+
setColumnPinning(newPinning);
|
|
185
178
|
};
|
|
186
|
-
const
|
|
187
|
-
const
|
|
188
|
-
|
|
179
|
+
const columnOrderOnChange = (updater) => {
|
|
180
|
+
const newOrder = functionalUpdate(updater, columnOrder);
|
|
181
|
+
setColumnOrder(newOrder);
|
|
189
182
|
};
|
|
190
|
-
const
|
|
191
|
-
const newSizing = functionalUpdate(
|
|
183
|
+
const columnSizingOnChange = (updater) => {
|
|
184
|
+
const newSizing = functionalUpdate(updater, columnSizing);
|
|
192
185
|
setColumnSizing(newSizing);
|
|
193
186
|
};
|
|
194
|
-
const
|
|
195
|
-
const newSorting = functionalUpdate(
|
|
187
|
+
const sortingOnChange = (updater) => {
|
|
188
|
+
const newSorting = functionalUpdate(updater, sorting);
|
|
196
189
|
updateSorting(newSorting);
|
|
197
190
|
};
|
|
198
|
-
const createUpdaterWithAllColumns = {
|
|
199
|
-
columnVisibility: (allColumnIds) => (updater) => {
|
|
200
|
-
const newVisibility = functionalUpdate(updater, columnVisibility);
|
|
201
|
-
setColumnVisibility(newVisibility, allColumnIds);
|
|
202
|
-
},
|
|
203
|
-
columnPinning: (allColumnIds) => (updater) => {
|
|
204
|
-
const newPinning = functionalUpdate(updater, columnPinning);
|
|
205
|
-
setColumnPinning(newPinning, allColumnIds);
|
|
206
|
-
},
|
|
207
|
-
columnOrder: (allColumnIds) => (updater) => {
|
|
208
|
-
const newOrder = functionalUpdate(updater, columnOrder);
|
|
209
|
-
setColumnOrder(newOrder, allColumnIds);
|
|
210
|
-
},
|
|
211
|
-
columnSizing: (allColumnIds) => (updater) => {
|
|
212
|
-
const newSizing = functionalUpdate(updater, columnSizing);
|
|
213
|
-
setColumnSizing(newSizing, allColumnIds);
|
|
214
|
-
}
|
|
215
|
-
};
|
|
216
191
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
217
192
|
ColumnSettingsContext.Provider,
|
|
218
193
|
{
|
|
219
194
|
value: {
|
|
195
|
+
// all columns ref
|
|
196
|
+
setAllColumns,
|
|
220
197
|
// column visibility
|
|
221
198
|
columnVisibility,
|
|
222
199
|
setColumnVisibility,
|
|
223
200
|
updateColumnVisibility,
|
|
224
|
-
|
|
201
|
+
columnVisibilityOnChange,
|
|
225
202
|
// column pinning
|
|
226
203
|
columnPinning,
|
|
227
204
|
setColumnPinning,
|
|
228
205
|
updateColumnPinning,
|
|
229
|
-
|
|
206
|
+
columnPinningOnChange,
|
|
230
207
|
// column order
|
|
231
208
|
columnOrder,
|
|
232
209
|
setColumnOrder,
|
|
233
210
|
updateColumnOrder,
|
|
234
|
-
|
|
211
|
+
columnOrderOnChange,
|
|
235
212
|
// column sizing
|
|
236
213
|
columnSizing,
|
|
237
214
|
setColumnSizing,
|
|
238
|
-
|
|
215
|
+
columnSizingOnChange,
|
|
239
216
|
// sorting
|
|
240
217
|
sorting,
|
|
241
218
|
updateSorting,
|
|
242
|
-
|
|
243
|
-
// unified updaters
|
|
244
|
-
createUpdaterWithAllColumns,
|
|
219
|
+
sortingOnChange,
|
|
245
220
|
// group by
|
|
246
221
|
groupBy,
|
|
247
222
|
updateGroupBy,
|
|
248
223
|
groupByConfig,
|
|
249
224
|
updateGroupByConfig,
|
|
250
225
|
// global change
|
|
251
|
-
setColumnsConfig: (config2) =>
|
|
226
|
+
setColumnsConfig: (config2) => onChangeWithColumns(config2)
|
|
252
227
|
},
|
|
253
228
|
children
|
|
254
229
|
}
|
package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSettingsProvider.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ColumnSettingsProvider.tsx"],"sourcesContent":["import React, { ReactNode, useState } from 'react'\nimport {\n ColumnOrderState,\n ColumnPinningState,\n functionalUpdate,\n OnChangeFn,\n VisibilityState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ROW_SELECTION_COLUMN_ID } from './SelectionCellsContext'\nimport { DRAG_HANDLE_COLUMN_ID } from '../ProjectTreeTable'\nimport { ColumnsConfig, ColumnSettingsContext, TableGroupBy } from './ColumnSettingsContext'\nimport { GroupByConfig } from '../components/GroupSettingsFallback'\n\ninterface ColumnSettingsProviderProps {\n children: ReactNode\n config?: Record<string, any>\n onChange: (config: ColumnsConfig, allColumnIds?: string[]) => void\n}\n\nexport const ColumnSettingsProvider: React.FC<ColumnSettingsProviderProps> = ({\n children,\n config,\n onChange,\n}) => {\n const columnsConfig = config as ColumnsConfig\n const {\n columnOrder: columnOrderInit = [],\n columnPinning: columnPinningInit = {},\n columnVisibility: columnVisibilityInit = {},\n columnSizing: columnsSizingExternal = {},\n sorting: sortingInit = [],\n groupBy,\n groupByConfig = {},\n } = columnsConfig\n\n const sorting = [...sortingInit]\n const columnOrder = [...columnOrderInit]\n const columnPinning = { ...columnPinningInit }\n const defaultOrder = ['thumbnail', 'name', 'subType', 'status', 'tags']\n // for each default column, if it is not in the columnOrder, find the index of the column before it, if none, add to beginning\n defaultOrder.forEach((col, i) => {\n if (!columnOrder.includes(col)) {\n const defaultBefore = defaultOrder[i - 1]\n const columnAfter = defaultOrder[i + 1]\n if (!defaultBefore || !columnOrder.includes(defaultBefore)) {\n // add to beginning\n columnOrder.unshift(col)\n } else {\n // find the index of that column in the columnOrder\n const index = columnOrder.indexOf(defaultBefore)\n // add the item after that column\n columnOrder.splice(index + 1, 0, col)\n }\n if (columnAfter && columnPinning?.left && columnPinning?.left.includes(columnAfter)) {\n // pin the column\n columnPinning.left = [col, ...(columnPinning?.left || [])]\n }\n }\n })\n\n // if we are in grouping mode, always pin the name column\n // and ensure it is first in column order\n if (groupBy) {\n // ensure name column is pinned and first in pinning order\n if (!columnPinning.left?.includes('name')) {\n columnPinning.left = ['name', ...(columnPinning?.left || [])]\n } else {\n // name is already pinned, but ensure it's first\n const filteredPinned = columnPinning.left.filter((col) => col !== 'name')\n columnPinning.left = ['name', ...filteredPinned]\n }\n\n // ensure name is first in column order\n if (columnOrder.includes('name')) {\n // remove name from its current position\n const nameIndex = columnOrder.indexOf('name')\n columnOrder.splice(nameIndex, 1)\n }\n // add name to the beginning\n columnOrder.unshift('name')\n }\n\n // add drag handle and selection columns to the beginning of the column order\n columnOrder.unshift(...[DRAG_HANDLE_COLUMN_ID, ROW_SELECTION_COLUMN_ID])\n\n // VISIBILITY STATE MUTATIONS\n const columnVisibility = { ...columnVisibilityInit }\n // if we are in grouping mode, name column must always be visible\n if (groupBy && !columnVisibility.name) {\n columnVisibility.name = true\n }\n\n // DIRECT STATE UPDATES - no side effects\n const setColumnVisibility = (visibility: VisibilityState, allColumnIds?: string[]) => {\n onChange(\n {\n ...columnsConfig,\n columnVisibility: visibility,\n },\n allColumnIds,\n )\n }\n\n const setColumnOrder = (order: ColumnOrderState, allColumnIds?: string[]) => {\n onChange(\n {\n ...columnsConfig,\n columnOrder: order,\n },\n allColumnIds,\n )\n }\n\n const setColumnPinning = (pinning: ColumnPinningState, allColumnIds?: string[]) => {\n onChange(\n {\n ...columnsConfig,\n columnPinning: pinning,\n },\n allColumnIds,\n )\n }\n\n const [internalColumnSizing, setInternalColumnSizing] = useState<ColumnSizingState | null>(null)\n\n // use internalColumnSizing if it exists, otherwise use the external column sizing\n const columnSizing = internalColumnSizing || columnsSizingExternal\n\n const resizingTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n\n const setColumnSizing = (sizing: ColumnSizingState, allColumnIds?: string[]) => {\n setInternalColumnSizing(sizing)\n\n // if there is a timeout already set, clear it\n if (resizingTimeoutRef.current) {\n clearTimeout(resizingTimeoutRef.current)\n }\n // set a timeout that tracks if the column sizing has finished\n resizingTimeoutRef.current = setTimeout(() => {\n // we have finished resizing now!\n // update the external column sizing\n onChange(\n {\n ...columnsConfig,\n columnSizing: sizing,\n },\n allColumnIds,\n )\n // reset the internal column sizing to not be used anymore\n setInternalColumnSizing(null)\n }, 500)\n }\n\n // SIDE EFFECT UTILITIES\n const togglePinningOnVisibilityChange = (visibility: VisibilityState) => {\n // ensure that any columns that are now hidden are removed from the pinning\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const hiddenColumns = Object.keys(visibility).filter((col) => visibility[col] === false)\n const newPinnedColumns = pinnedColumns.filter((col) => !hiddenColumns.includes(col))\n\n return {\n ...newPinning,\n left: newPinnedColumns,\n }\n }\n\n const updatePinningOrderOnOrderChange = (order: ColumnOrderState) => {\n // ensure that the column pinning is in the order of the column order\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const pinnedColumnsOrder = order.filter((col) => pinnedColumns.includes(col))\n\n return {\n ...newPinning,\n left: pinnedColumnsOrder,\n }\n }\n\n const updateOrderOnPinningChange = (pinning: ColumnPinningState) => {\n // we resort the column order based on the pinning\n return [...columnOrder].sort((a, b) => {\n const aPinned = pinning.left?.includes(a) ? 1 : 0\n const bPinned = pinning.left?.includes(b) ? 1 : 0\n return bPinned - aPinned\n })\n }\n\n // UPDATE METHODS WITH SIDE EFFECTS\n const updateColumnVisibility = (visibility: VisibilityState) => {\n const newPinning = togglePinningOnVisibilityChange(visibility)\n onChange({\n ...columnsConfig,\n columnVisibility: visibility,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnOrder = (order: ColumnOrderState) => {\n const newPinning = updatePinningOrderOnOrderChange(order)\n onChange({\n ...columnsConfig,\n columnOrder: order,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnPinning = (pinning: ColumnPinningState) => {\n const newOrder = updateOrderOnPinningChange(pinning)\n onChange({\n ...columnsConfig,\n columnOrder: newOrder,\n columnPinning: pinning,\n })\n }\n\n const updateSorting = (sortingState: SortingState) => {\n onChange({\n ...columnsConfig,\n sorting: sortingState,\n })\n }\n\n const updateGroupBy = (groupBy: TableGroupBy | undefined) => {\n onChange({\n ...columnsConfig,\n groupBy: groupBy,\n })\n }\n\n const updateGroupByConfig = (config: GroupByConfig) => {\n onChange({\n ...columnsConfig,\n groupByConfig: {\n ...groupByConfig,\n ...config,\n },\n })\n }\n\n // UPDATER FUNCTIONS\n const columnVisibilityUpdater: OnChangeFn<VisibilityState> = (columnVisibilityUpdater) => {\n const newVisibility = functionalUpdate(columnVisibilityUpdater, columnVisibility)\n updateColumnVisibility(newVisibility)\n }\n\n const columnOrderUpdater: OnChangeFn<ColumnOrderState> = (columnOrderUpdater) => {\n const newOrder = functionalUpdate(columnOrderUpdater, columnOrder)\n updateColumnOrder(newOrder)\n }\n\n const columnPinningUpdater: OnChangeFn<ColumnPinningState> = (columnPinningUpdater) => {\n const newPinning = functionalUpdate(columnPinningUpdater, columnPinning)\n updateColumnPinning(newPinning)\n }\n\n const columnSizingUpdater: OnChangeFn<ColumnSizingState> = (sizingUpdater) => {\n const newSizing = functionalUpdate(sizingUpdater, columnSizing)\n setColumnSizing(newSizing)\n }\n\n const sortingUpdater: OnChangeFn<SortingState> = (sortingUpdater) => {\n const newSorting = functionalUpdate(sortingUpdater, sorting)\n updateSorting(newSorting)\n }\n\n // UNIFIED UPDATERS WITH ALL COLUMN IDS\n const createUpdaterWithAllColumns = {\n columnVisibility:\n (allColumnIds: string[]): OnChangeFn<VisibilityState> =>\n (updater) => {\n const newVisibility = functionalUpdate(updater, columnVisibility)\n setColumnVisibility(newVisibility, allColumnIds)\n },\n columnPinning:\n (allColumnIds: string[]): OnChangeFn<ColumnPinningState> =>\n (updater) => {\n const newPinning = functionalUpdate(updater, columnPinning)\n setColumnPinning(newPinning, allColumnIds)\n },\n columnOrder:\n (allColumnIds: string[]): OnChangeFn<ColumnOrderState> =>\n (updater) => {\n const newOrder = functionalUpdate(updater, columnOrder)\n setColumnOrder(newOrder, allColumnIds)\n },\n columnSizing:\n (allColumnIds: string[]): OnChangeFn<ColumnSizingState> =>\n (updater) => {\n const newSizing = functionalUpdate(updater, columnSizing)\n setColumnSizing(newSizing, allColumnIds)\n },\n }\n\n return (\n <ColumnSettingsContext.Provider\n value={{\n // column visibility\n columnVisibility,\n setColumnVisibility,\n updateColumnVisibility,\n columnVisibilityUpdater,\n // column pinning\n columnPinning,\n setColumnPinning,\n updateColumnPinning,\n columnPinningUpdater,\n // column order\n columnOrder,\n setColumnOrder,\n updateColumnOrder,\n columnOrderUpdater,\n // column sizing\n columnSizing,\n setColumnSizing,\n columnSizingUpdater,\n // sorting\n sorting,\n updateSorting,\n sortingUpdater,\n // unified updaters\n createUpdaterWithAllColumns,\n // group by\n groupBy,\n updateGroupBy,\n groupByConfig,\n updateGroupByConfig,\n\n // global change\n setColumnsConfig: (config: ColumnsConfig) => onChange(config),\n }}\n >\n {children}\n </ColumnSettingsContext.Provider>\n )\n}\n"],"names":["React","_a","groupBy","config","columnVisibilityUpdater","columnOrderUpdater","columnPinningUpdater","sortingUpdater","jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColumnSettingsProvider.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ColumnSettingsProvider.tsx"],"sourcesContent":["import React, { ReactNode, useState } from 'react'\nimport {\n ColumnOrderState,\n ColumnPinningState,\n functionalUpdate,\n OnChangeFn,\n VisibilityState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ROW_SELECTION_COLUMN_ID } from './SelectionCellsContext'\nimport { DRAG_HANDLE_COLUMN_ID } from '../ProjectTreeTable'\nimport { ColumnsConfig, ColumnSettingsContext, TableGroupBy } from './ColumnSettingsContext'\nimport { GroupByConfig } from '../components/GroupSettingsFallback'\n\ninterface ColumnSettingsProviderProps {\n children: ReactNode\n config?: Record<string, any>\n onChange: (config: ColumnsConfig, allColumnIds?: string[]) => void\n}\n\nexport const ColumnSettingsProvider: React.FC<ColumnSettingsProviderProps> = ({\n children,\n config,\n onChange,\n}) => {\n const allColumnsRef = React.useRef<string[]>([])\n const setAllColumns = (allColumnIds: string[]) => {\n allColumnsRef.current = Array.from(new Set(allColumnIds))\n }\n const onChangeWithColumns = (next: ColumnsConfig) => onChange(next, allColumnsRef.current)\n const columnsConfig = config as ColumnsConfig\n const {\n columnOrder: columnOrderInit = [],\n columnPinning: columnPinningInit = {},\n columnVisibility: columnVisibilityInit = {},\n columnSizing: columnsSizingExternal = {},\n sorting: sortingInit = [],\n groupBy,\n groupByConfig = {},\n } = columnsConfig\n\n const sorting = [...sortingInit]\n const columnOrder = [...columnOrderInit]\n const columnPinning = { ...columnPinningInit }\n const defaultOrder = ['thumbnail', 'name', 'subType', 'status', 'tags']\n // for each default column, if it is not in the columnOrder, find the index of the column before it, if none, add to beginning\n defaultOrder.forEach((col, i) => {\n if (!columnOrder.includes(col)) {\n const defaultBefore = defaultOrder[i - 1]\n const columnAfter = defaultOrder[i + 1]\n if (!defaultBefore || !columnOrder.includes(defaultBefore)) {\n // add to beginning\n columnOrder.unshift(col)\n } else {\n // find the index of that column in the columnOrder\n const index = columnOrder.indexOf(defaultBefore)\n // add the item after that column\n columnOrder.splice(index + 1, 0, col)\n }\n if (columnAfter && columnPinning?.left && columnPinning?.left.includes(columnAfter)) {\n // pin the column\n columnPinning.left = [col, ...(columnPinning?.left || [])]\n }\n }\n })\n\n // if we are in grouping mode, always pin the name column\n // and ensure it is first in column order\n if (groupBy) {\n // ensure name column is pinned and first in pinning order\n if (!columnPinning.left?.includes('name')) {\n columnPinning.left = ['name', ...(columnPinning?.left || [])]\n } else {\n // name is already pinned, but ensure it's first\n const filteredPinned = columnPinning.left.filter((col) => col !== 'name')\n columnPinning.left = ['name', ...filteredPinned]\n }\n\n // ensure name is first in column order\n if (columnOrder.includes('name')) {\n // remove name from its current position\n const nameIndex = columnOrder.indexOf('name')\n columnOrder.splice(nameIndex, 1)\n }\n // add name to the beginning\n columnOrder.unshift('name')\n }\n\n // add drag handle and selection columns to the beginning of the column order\n columnOrder.unshift(...[DRAG_HANDLE_COLUMN_ID, ROW_SELECTION_COLUMN_ID])\n\n // VISIBILITY STATE MUTATIONS\n const columnVisibility = { ...columnVisibilityInit }\n // if we are in grouping mode, name column must always be visible\n if (groupBy && !columnVisibility.name) {\n columnVisibility.name = true\n }\n\n // DIRECT STATE UPDATES - no side effects\n const setColumnVisibility = (visibility: VisibilityState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnVisibility: visibility,\n })\n }\n\n const setColumnOrder = (order: ColumnOrderState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: order,\n })\n }\n\n const setColumnPinning = (pinning: ColumnPinningState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnPinning: pinning,\n })\n }\n\n const [internalColumnSizing, setInternalColumnSizing] = useState<ColumnSizingState | null>(null)\n\n // use internalColumnSizing if it exists, otherwise use the external column sizing\n const columnSizing = internalColumnSizing || columnsSizingExternal\n\n const resizingTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n\n const setColumnSizing = (sizing: ColumnSizingState) => {\n setInternalColumnSizing(sizing)\n\n // if there is a timeout already set, clear it\n if (resizingTimeoutRef.current) {\n clearTimeout(resizingTimeoutRef.current)\n }\n // set a timeout that tracks if the column sizing has finished\n resizingTimeoutRef.current = setTimeout(() => {\n // we have finished resizing now!\n // update the external column sizing\n onChangeWithColumns({\n ...columnsConfig,\n columnSizing: sizing,\n })\n // reset the internal column sizing to not be used anymore\n setInternalColumnSizing(null)\n }, 500)\n }\n\n // SIDE EFFECT UTILITIES\n const togglePinningOnVisibilityChange = (visibility: VisibilityState) => {\n // ensure that any columns that are now hidden are removed from the pinning\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const hiddenColumns = Object.keys(visibility).filter((col) => visibility[col] === false)\n const newPinnedColumns = pinnedColumns.filter((col) => !hiddenColumns.includes(col))\n\n return {\n ...newPinning,\n left: newPinnedColumns,\n }\n }\n\n const updatePinningOrderOnOrderChange = (order: ColumnOrderState) => {\n // ensure that the column pinning is in the order of the column order\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const pinnedColumnsOrder = order.filter((col) => pinnedColumns.includes(col))\n\n return {\n ...newPinning,\n left: pinnedColumnsOrder,\n }\n }\n\n const updateOrderOnPinningChange = (pinning: ColumnPinningState) => {\n // we resort the column order based on the pinning\n return [...columnOrder].sort((a, b) => {\n const aPinned = pinning.left?.includes(a) ? 1 : 0\n const bPinned = pinning.left?.includes(b) ? 1 : 0\n return bPinned - aPinned\n })\n }\n\n // UPDATE METHODS WITH SIDE EFFECTS\n const updateColumnVisibility = (visibility: VisibilityState) => {\n const newPinning = togglePinningOnVisibilityChange(visibility)\n onChangeWithColumns({\n ...columnsConfig,\n columnVisibility: visibility,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnOrder = (order: ColumnOrderState) => {\n const newPinning = updatePinningOrderOnOrderChange(order)\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: order,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnPinning = (pinning: ColumnPinningState) => {\n const newOrder = updateOrderOnPinningChange(pinning)\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: newOrder,\n columnPinning: pinning,\n })\n }\n\n const updateSorting = (sortingState: SortingState) => {\n onChangeWithColumns({\n ...columnsConfig,\n sorting: sortingState,\n })\n }\n\n const updateGroupBy = (groupBy: TableGroupBy | undefined) => {\n onChangeWithColumns({\n ...columnsConfig,\n groupBy: groupBy,\n })\n }\n\n const updateGroupByConfig = (config: GroupByConfig) => {\n onChangeWithColumns({\n ...columnsConfig,\n groupByConfig: {\n ...groupByConfig,\n ...config,\n },\n })\n }\n\n // Remove redundant local updater functions in favor of unified updaters with all columns\n\n // ON-CHANGE HANDLERS (TanStack-compatible)\n const columnVisibilityOnChange: OnChangeFn<VisibilityState> = (updater) => {\n const newVisibility = functionalUpdate(updater, columnVisibility)\n setColumnVisibility(newVisibility)\n }\n\n const columnPinningOnChange: OnChangeFn<ColumnPinningState> = (updater) => {\n const newPinning = functionalUpdate(updater, columnPinning)\n setColumnPinning(newPinning)\n }\n\n const columnOrderOnChange: OnChangeFn<ColumnOrderState> = (updater) => {\n const newOrder = functionalUpdate(updater, columnOrder)\n setColumnOrder(newOrder)\n }\n\n const columnSizingOnChange: OnChangeFn<ColumnSizingState> = (updater) => {\n const newSizing = functionalUpdate(updater, columnSizing)\n setColumnSizing(newSizing)\n }\n\n const sortingOnChange: OnChangeFn<SortingState> = (updater) => {\n const newSorting = functionalUpdate(updater, sorting)\n updateSorting(newSorting)\n }\n\n return (\n <ColumnSettingsContext.Provider\n value={{\n // all columns ref\n setAllColumns,\n // column visibility\n columnVisibility,\n setColumnVisibility,\n updateColumnVisibility,\n columnVisibilityOnChange,\n // column pinning\n columnPinning,\n setColumnPinning,\n updateColumnPinning,\n columnPinningOnChange,\n // column order\n columnOrder,\n setColumnOrder,\n updateColumnOrder,\n columnOrderOnChange,\n // column sizing\n columnSizing,\n setColumnSizing,\n columnSizingOnChange,\n // sorting\n sorting,\n updateSorting,\n sortingOnChange,\n // group by\n groupBy,\n updateGroupBy,\n groupByConfig,\n updateGroupByConfig,\n\n // global change\n setColumnsConfig: (config: ColumnsConfig) => onChangeWithColumns(config),\n }}\n >\n {children}\n </ColumnSettingsContext.Provider>\n )\n}\n"],"names":["React","_a","groupBy","config","jsx"],"mappings":"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"}
|