@ynput/ayon-frontend-shared 0.2.15 → 0.2.17
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 +12 -10
- package/dist/DetailsPanel.cjs.js.map +1 -1
- package/dist/DetailsPanel.es.js +12 -10
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +71 -34
- package/dist/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/ProjectTreeTable.es.js +55 -18
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/_virtual/index.cjs10.js +5 -3
- package/dist/_virtual/index.cjs10.js.map +1 -1
- 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 +3 -5
- package/dist/_virtual/index.cjs7.js.map +1 -1
- package/dist/_virtual/index.es10.js +5 -2
- package/dist/_virtual/index.es10.js.map +1 -1
- 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 -5
- package/dist/_virtual/index.es7.js.map +1 -1
- package/dist/api.cjs.js +6 -1
- package/dist/api.cjs.js.map +1 -1
- package/dist/api.es.js +8 -3
- package/dist/api.es.js.map +1 -1
- package/dist/components.cjs.js +3 -0
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.es.js +3 -0
- package/dist/components.es.js.map +1 -1
- package/dist/index.cjs.js +9 -7
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +9 -7
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/graphql-request/build/legacy/helpers/analyzeDocument.cjs.js +1 -2
- package/dist/node_modules/graphql-request/build/legacy/helpers/analyzeDocument.cjs.js.map +1 -1
- package/dist/node_modules/graphql-request/build/legacy/helpers/analyzeDocument.es.js +1 -2
- package/dist/node_modules/graphql-request/build/legacy/helpers/analyzeDocument.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-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/shared/src/api/generated/graphql.cjs.js +24 -0
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +24 -0
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/grouping.cjs.js +18 -0
- package/dist/shared/src/api/generated/grouping.cjs.js.map +1 -0
- package/dist/shared/src/api/generated/grouping.es.js +18 -0
- package/dist/shared/src/api/generated/grouping.es.js.map +1 -0
- package/dist/shared/src/api/generated/tasks.cjs.js +0 -8
- package/dist/shared/src/api/generated/tasks.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/tasks.es.js +0 -8
- package/dist/shared/src/api/generated/tasks.es.js.map +1 -1
- package/dist/shared/src/api/queries/actions/getActions.cjs.js +1 -0
- package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/actions/getActions.es.js +1 -0
- package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -0
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.es.js +1 -0
- package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getMentions.cjs.js +1 -0
- package/dist/shared/src/api/queries/activities/getMentions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getMentions.es.js +1 -0
- package/dist/shared/src/api/queries/activities/getMentions.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateReaction.cjs.js +1 -0
- package/dist/shared/src/api/queries/activities/updateReaction.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateReaction.es.js +1 -0
- package/dist/shared/src/api/queries/activities/updateReaction.es.js.map +1 -1
- package/dist/shared/src/api/queries/addons/getAddons.cjs.js +1 -0
- package/dist/shared/src/api/queries/addons/getAddons.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/addons/getAddons.es.js +1 -0
- package/dist/shared/src/api/queries/addons/getAddons.es.js.map +1 -1
- package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js +1 -0
- package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/attributes/getAttributes.es.js +1 -0
- package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
- package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js +1 -0
- package/dist/shared/src/api/queries/authentication/getAuthentication.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/authentication/getAuthentication.es.js +1 -0
- package/dist/shared/src/api/queries/authentication/getAuthentication.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntity.cjs.js +1 -0
- package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntity.es.js +1 -0
- package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -0
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +1 -0
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +2 -0
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +2 -0
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +2 -0
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.es.js +2 -0
- package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -0
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +1 -0
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js +1 -0
- package/dist/shared/src/api/queries/entityLists/getListsAttributes.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js +1 -0
- package/dist/shared/src/api/queries/entityLists/getListsAttributes.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -0
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js +1 -0
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -0
- package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.es.js +1 -0
- package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +47 -0
- package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/grouping/getGrouping.es.js +47 -0
- package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -0
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js +4 -5
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.es.js +4 -5
- package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +2 -0
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js +2 -0
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js +1 -0
- package/dist/shared/src/api/queries/permissions/getPermissions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/permissions/getPermissions.es.js +1 -0
- package/dist/shared/src/api/queries/permissions/getPermissions.es.js.map +1 -1
- package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -0
- package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/project/getProject.es.js +1 -0
- package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
- package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -0
- package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/review/getReview.es.js +1 -0
- package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
- package/dist/shared/src/api/queries/review/updateReview.cjs.js +1 -0
- package/dist/shared/src/api/queries/review/updateReview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/review/updateReview.es.js +1 -0
- package/dist/shared/src/api/queries/review/updateReview.es.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.cjs.js +1 -0
- package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.es.js +1 -0
- package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -0
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +1 -0
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +2 -0
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +2 -0
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/updateUsers.cjs.js +1 -0
- package/dist/shared/src/api/queries/users/updateUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/updateUsers.es.js +1 -0
- package/dist/shared/src/api/queries/users/updateUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js +1 -0
- package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/watchers/getWatchers.es.js +1 -0
- package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +2 -2
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +2 -2
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
- package/dist/shared/src/components/Badge/Badge.cjs.js +31 -0
- package/dist/shared/src/components/Badge/Badge.cjs.js.map +1 -0
- package/dist/shared/src/components/Badge/Badge.es.js +31 -0
- package/dist/shared/src/components/Badge/Badge.es.js.map +1 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +2 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +2 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +2 -0
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +2 -0
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js +9 -7
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js +9 -7
- package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnItem.cjs.js +2 -0
- package/dist/shared/src/components/ProjectTableSettings/ColumnItem.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnItem.es.js +2 -0
- package/dist/shared/src/components/ProjectTableSettings/ColumnItem.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +5 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +5 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +83 -13
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +83 -13
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/SortableColumnItem.cjs.js +2 -0
- package/dist/shared/src/components/ProjectTableSettings/SortableColumnItem.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/SortableColumnItem.es.js +2 -0
- package/dist/shared/src/components/ProjectTableSettings/SortableColumnItem.es.js.map +1 -1
- package/dist/shared/src/components/ReviewableProgressCard/ReviewableProgressCard.cjs.js +5 -1
- package/dist/shared/src/components/ReviewableProgressCard/ReviewableProgressCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewableProgressCard/ReviewableProgressCard.es.js +5 -1
- package/dist/shared/src/components/ReviewableProgressCard/ReviewableProgressCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js +5 -5
- package/dist/shared/src/components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js +5 -5
- package/dist/shared/src/components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +2 -0
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +2 -0
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +99 -86
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +99 -86
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +93 -24
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +94 -25
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.styled.cjs.js +4 -0
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.styled.es.js +4 -0
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.styled.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +9 -7
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +9 -7
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +2 -0
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +2 -0
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js +27 -6
- package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js +27 -6
- package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +222 -19
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +223 -20
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js +2 -0
- package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.es.js +2 -0
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +9 -7
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +9 -7
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js +2 -0
- package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.es.js +2 -0
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +9 -7
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +9 -7
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/ContextMenu/ContextMenuItem.cjs.js +22 -0
- package/dist/shared/src/containers/ContextMenu/ContextMenuItem.cjs.js.map +1 -1
- package/dist/shared/src/containers/ContextMenu/ContextMenuItem.es.js +22 -0
- package/dist/shared/src/containers/ContextMenu/ContextMenuItem.es.js.map +1 -1
- package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.cjs.js +26 -7
- package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.es.js +26 -7
- package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +12 -10
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +12 -10
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +19 -17
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +19 -17
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +9 -7
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +9 -7
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +8 -6
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +8 -6
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.cjs.js +8 -1
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.es.js +9 -2
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js +9 -0
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.es.js +10 -1
- package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +2 -0
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +2 -0
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +40 -34
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +41 -35
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +7 -0
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +7 -0
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +9 -8
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +9 -8
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +8 -7
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +8 -7
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +11 -6
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +11 -6
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js +1 -174
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js +2 -175
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +212 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +212 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +1 -161
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +2 -162
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +191 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +191 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js +1 -79
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsContext.es.js +2 -80
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js +84 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +84 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js +1 -277
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js +2 -278
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +282 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +282 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +85 -34
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +86 -35
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +26 -13
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +26 -13
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.cjs.js +24 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.es.js +24 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnSorting.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +16 -9
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +16 -9
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useEntitiesMap.cjs.js +17 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useEntitiesMap.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useEntitiesMap.es.js +17 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useEntitiesMap.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useExpandedState.cjs.js +30 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useExpandedState.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useExpandedState.es.js +30 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useExpandedState.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +363 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +363 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js +16 -12
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js +16 -13
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +72 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +72 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +82 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +82 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/{context/ProjectTableModulesContext.cjs.js → hooks/useProjectTableModules.cjs.js} +22 -23
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/{context/ProjectTableModulesContext.es.js → hooks/useProjectTableModules.es.js} +22 -23
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +41 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +41 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useScopedAttributeFields.cjs.js +19 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useScopedAttributeFields.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useScopedAttributeFields.es.js +19 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useScopedAttributeFields.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js +26 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.es.js +26 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +7 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +7 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +15 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +15 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/errorExtraction.cjs.js +8 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/errorExtraction.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/errorExtraction.es.js +8 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/errorExtraction.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/localStorageKeys.cjs.js +7 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/localStorageKeys.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/localStorageKeys.es.js +7 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/localStorageKeys.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.cjs.js +0 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.es.js +0 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js +2 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js +2 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +0 -8
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +0 -8
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +10 -8
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +10 -8
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +2 -0
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +2 -0
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +2 -0
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +2 -0
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js +122 -17
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +123 -18
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +7 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +7 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js +2 -0
- package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.es.js +2 -0
- package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +2 -0
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +2 -0
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModule.cjs.js +11 -5
- package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModule.es.js +11 -5
- package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +2 -0
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +2 -0
- package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +2 -0
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.es.js +2 -0
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/types/api/generated/graphql.d.ts +33 -38
- package/dist/types/api/generated/grouping.d.ts +40 -0
- package/dist/types/api/generated/index.d.ts +3 -1
- package/dist/types/api/generated/tasks.d.ts +8 -33
- package/dist/types/api/queries/activities/getActivities.d.ts +4 -0
- package/dist/types/api/queries/activities/updateActivities.d.ts +8 -0
- package/dist/types/api/queries/entities/getEntity.d.ts +4 -0
- package/dist/types/api/queries/entities/getEntityPanel.d.ts +4 -0
- package/dist/types/api/queries/entities/updateEntity.d.ts +4 -0
- package/dist/types/api/queries/entityLists/getLists.d.ts +4 -0
- package/dist/types/api/queries/grouping/getGrouping.d.ts +137 -0
- package/dist/types/api/queries/grouping/index.d.ts +1 -0
- package/dist/types/api/queries/index.d.ts +1 -0
- package/dist/types/api/queries/overview/getOverview.d.ts +5 -133
- package/dist/types/api/queries/project/getProject.d.ts +2 -2
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +4 -0
- package/dist/types/api/queries/users/getUsers.d.ts +4 -0
- package/dist/types/components/Badge/Badge.d.ts +10 -0
- package/dist/types/components/Badge/index.d.ts +1 -0
- package/dist/types/components/ProjectTableSettings/ColumnItem.d.ts +1 -0
- package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +1 -1
- package/dist/types/components/ProjectTableSettings/SortableColumnItem.d.ts +1 -0
- package/dist/types/components/ReviewableProgressCard/ReviewableProgressCard.d.ts +1 -1
- package/dist/types/components/ReviewablesList/ReviewablesUpload.d.ts +19 -3
- package/dist/types/components/SettingsPanel/SettingsPanelItemTemplate.d.ts +1 -0
- package/dist/types/components/index.d.ts +1 -0
- package/dist/types/containers/ContextMenu/ContextMenuItem.d.ts +4 -0
- package/dist/types/containers/ContextMenu/useCreateContextMenu.d.ts +2 -1
- package/dist/types/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +1 -5
- package/dist/types/containers/ProjectTreeTable/components/GroupSettingsFallback.d.ts +9 -2
- package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +16 -16
- package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsProvider.d.ts +9 -0
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +7 -52
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +59 -0
- package/dist/types/containers/ProjectTreeTable/context/SelectedRowsContext.d.ts +3 -8
- package/dist/types/containers/ProjectTreeTable/context/SelectedRowsProvider.d.ts +6 -0
- package/dist/types/containers/ProjectTreeTable/context/SelectionCellsContext.d.ts +2 -4
- package/dist/types/containers/ProjectTreeTable/context/SelectionCellsProvider.d.ts +4 -0
- package/dist/types/containers/ProjectTreeTable/context/index.d.ts +4 -2
- package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +14 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.d.ts +7 -3
- package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +13 -2
- package/dist/types/containers/ProjectTreeTable/hooks/useColumnSorting.d.ts +12 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useEntitiesMap.d.ts +7 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useExpandedState.d.ts +11 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +38 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useGetEntityTypeData.d.ts +2 -2
- package/dist/types/containers/ProjectTreeTable/hooks/useGetGroupedFields.d.ts +9 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useGetTaskGroups.d.ts +10 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useProjectTableModules.d.ts +25 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +14 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useScopedAttributeFields.d.ts +10 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useSelectedFolders.d.ts +10 -0
- package/dist/types/containers/ProjectTreeTable/index.d.ts +2 -14
- package/dist/types/containers/ProjectTreeTable/types/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +46 -0
- package/dist/types/containers/ProjectTreeTable/utils/errorExtraction.d.ts +4 -0
- package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/utils/localStorageKeys.d.ts +4 -0
- package/dist/types/containers/ProjectTreeTable/widgets/GroupHeaderWidget.d.ts +2 -1
- package/dist/types/context/PowerpackContext.d.ts +2 -1
- package/dist/types/hooks/useLoadModule.d.ts +2 -1
- package/dist/types/utils/extractVersionFromFilename.d.ts +5 -0
- package/package.json +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.cjs.js.map +0 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.es.js.map +0 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableSelectionContext.cjs.js +0 -33
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableSelectionContext.cjs.js.map +0 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableSelectionContext.es.js +0 -33
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableSelectionContext.es.js.map +0 -1
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableModulesContext.d.ts +0 -12
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableSelectionContext.d.ts +0 -11
|
@@ -1,282 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { createContext, useContext, useState, useMemo, useRef, useCallback } from "react";
|
|
3
|
-
import { parseCellId, getCellId, BorderPosition, getBorderClasses } from "../utils/cellUtils.es.js";
|
|
4
|
-
import { DRAG_HANDLE_COLUMN_ID } from "../ProjectTreeTable.es.js";
|
|
1
|
+
import { createContext, useContext } from "react";
|
|
5
2
|
const ROW_SELECTION_COLUMN_ID = "__row_selection__";
|
|
6
3
|
const SelectionCellsContext = createContext(void 0);
|
|
7
|
-
const SelectionCellsProvider = ({ children }) => {
|
|
8
|
-
const [selectedCells, setSelectedCells] = useState(/* @__PURE__ */ new Set());
|
|
9
|
-
const [focusedCellId, setFocusedCellId] = useState(null);
|
|
10
|
-
const [selectionInProgress, setSelectionInProgress] = useState(false);
|
|
11
|
-
const [anchorCell, setAnchorCell] = useState(null);
|
|
12
|
-
const [gridMap, setGridMap] = useState({
|
|
13
|
-
rowIdToIndex: /* @__PURE__ */ new Map(),
|
|
14
|
-
colIdToIndex: /* @__PURE__ */ new Map(),
|
|
15
|
-
indexToRowId: /* @__PURE__ */ new Map(),
|
|
16
|
-
indexToColId: /* @__PURE__ */ new Map()
|
|
17
|
-
});
|
|
18
|
-
const mapToString = (map) => {
|
|
19
|
-
return JSON.stringify(Array.from(map.entries()));
|
|
20
|
-
};
|
|
21
|
-
const stableGridMap = useMemo(
|
|
22
|
-
() => gridMap,
|
|
23
|
-
[
|
|
24
|
-
mapToString(gridMap.rowIdToIndex),
|
|
25
|
-
mapToString(gridMap.colIdToIndex),
|
|
26
|
-
mapToString(gridMap.indexToRowId),
|
|
27
|
-
mapToString(gridMap.indexToColId)
|
|
28
|
-
]
|
|
29
|
-
);
|
|
30
|
-
const initialCellSelected = useRef(false);
|
|
31
|
-
const selectedRows = useMemo(
|
|
32
|
-
() => Array.from(selectedCells).filter(
|
|
33
|
-
(cellId) => {
|
|
34
|
-
var _a, _b;
|
|
35
|
-
return ((_a = parseCellId(cellId)) == null ? void 0 : _a.colId) === ROW_SELECTION_COLUMN_ID && ((_b = parseCellId(cellId)) == null ? void 0 : _b.rowId);
|
|
36
|
-
}
|
|
37
|
-
).map((cellId) => {
|
|
38
|
-
var _a;
|
|
39
|
-
return (_a = parseCellId(cellId)) == null ? void 0 : _a.rowId;
|
|
40
|
-
}),
|
|
41
|
-
[selectedCells]
|
|
42
|
-
);
|
|
43
|
-
const registerGrid = useCallback((rows, columns) => {
|
|
44
|
-
const rowIdToIndex = /* @__PURE__ */ new Map();
|
|
45
|
-
const colIdToIndex = /* @__PURE__ */ new Map();
|
|
46
|
-
const indexToRowId = /* @__PURE__ */ new Map();
|
|
47
|
-
const indexToColId = /* @__PURE__ */ new Map();
|
|
48
|
-
rows.forEach((rowId, index) => {
|
|
49
|
-
rowIdToIndex.set(rowId, index);
|
|
50
|
-
indexToRowId.set(index, rowId);
|
|
51
|
-
});
|
|
52
|
-
columns.forEach((colId, index) => {
|
|
53
|
-
colIdToIndex.set(colId, index);
|
|
54
|
-
indexToColId.set(index, colId);
|
|
55
|
-
});
|
|
56
|
-
setGridMap({ rowIdToIndex, colIdToIndex, indexToRowId, indexToColId });
|
|
57
|
-
}, []);
|
|
58
|
-
const updateSelection = useCallback((selection, position) => {
|
|
59
|
-
setSelectedCells((prevSelectedCells) => {
|
|
60
|
-
let newSelection = new Set(selection);
|
|
61
|
-
if (position.colId !== ROW_SELECTION_COLUMN_ID && position.colId !== DRAG_HANDLE_COLUMN_ID) {
|
|
62
|
-
const rowSelection = Array.from(prevSelectedCells).filter(
|
|
63
|
-
(id) => {
|
|
64
|
-
var _a;
|
|
65
|
-
return ((_a = parseCellId(id)) == null ? void 0 : _a.colId) === ROW_SELECTION_COLUMN_ID;
|
|
66
|
-
}
|
|
67
|
-
);
|
|
68
|
-
if (rowSelection.length) {
|
|
69
|
-
newSelection = /* @__PURE__ */ new Set([...newSelection, ...rowSelection]);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return newSelection;
|
|
73
|
-
});
|
|
74
|
-
}, []);
|
|
75
|
-
const selectCellRange = useCallback(
|
|
76
|
-
(start, end, additive) => {
|
|
77
|
-
if (!additive) {
|
|
78
|
-
updateSelection(/* @__PURE__ */ new Set(), start);
|
|
79
|
-
}
|
|
80
|
-
const startRowIdx = stableGridMap.rowIdToIndex.get(start.rowId) ?? 0;
|
|
81
|
-
const startColIdx = stableGridMap.colIdToIndex.get(start.colId) ?? 0;
|
|
82
|
-
const endRowIdx = stableGridMap.rowIdToIndex.get(end.rowId) ?? 0;
|
|
83
|
-
const endColIdx = stableGridMap.colIdToIndex.get(end.colId) ?? 0;
|
|
84
|
-
const minRowIdx = Math.min(startRowIdx, endRowIdx);
|
|
85
|
-
const maxRowIdx = Math.max(startRowIdx, endRowIdx);
|
|
86
|
-
const minColIdx = Math.min(startColIdx, endColIdx);
|
|
87
|
-
const maxColIdx = Math.max(startColIdx, endColIdx);
|
|
88
|
-
const newSelection = new Set(additive ? selectedCells : []);
|
|
89
|
-
for (let r = minRowIdx; r <= maxRowIdx; r++) {
|
|
90
|
-
const rowId = stableGridMap.indexToRowId.get(r);
|
|
91
|
-
if (!rowId) continue;
|
|
92
|
-
for (let c = minColIdx; c <= maxColIdx; c++) {
|
|
93
|
-
const colId = stableGridMap.indexToColId.get(c);
|
|
94
|
-
if (!colId) continue;
|
|
95
|
-
newSelection.add(getCellId(rowId, colId));
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return newSelection;
|
|
99
|
-
},
|
|
100
|
-
[stableGridMap, selectedCells]
|
|
101
|
-
);
|
|
102
|
-
const startSelection = useCallback(
|
|
103
|
-
(cellId, additive) => {
|
|
104
|
-
const position = parseCellId(cellId);
|
|
105
|
-
if (!position) return;
|
|
106
|
-
setSelectionInProgress(true);
|
|
107
|
-
initialCellSelected.current = selectedCells.has(cellId);
|
|
108
|
-
if (additive) {
|
|
109
|
-
setSelectedCells((prev) => {
|
|
110
|
-
const newSelection = new Set(prev);
|
|
111
|
-
if (newSelection.has(cellId)) {
|
|
112
|
-
newSelection.delete(cellId);
|
|
113
|
-
if (focusedCellId === cellId) {
|
|
114
|
-
if (newSelection.size > 0) {
|
|
115
|
-
setFocusedCellId(Array.from(newSelection)[Array.from(newSelection).length - 1]);
|
|
116
|
-
} else {
|
|
117
|
-
setFocusedCellId(null);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
} else {
|
|
121
|
-
newSelection.add(cellId);
|
|
122
|
-
setFocusedCellId(cellId);
|
|
123
|
-
setAnchorCell(position);
|
|
124
|
-
}
|
|
125
|
-
return newSelection;
|
|
126
|
-
});
|
|
127
|
-
} else {
|
|
128
|
-
if (selectedCells.size === 1 && selectedCells.has(cellId) && [ROW_SELECTION_COLUMN_ID, "name"].includes(position.colId)) {
|
|
129
|
-
setSelectedCells(/* @__PURE__ */ new Set());
|
|
130
|
-
setAnchorCell(null);
|
|
131
|
-
setFocusedCellId(null);
|
|
132
|
-
} else {
|
|
133
|
-
updateSelection(/* @__PURE__ */ new Set([cellId]), position);
|
|
134
|
-
setAnchorCell(position);
|
|
135
|
-
setFocusedCellId(cellId);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
},
|
|
139
|
-
[selectedCells, focusedCellId]
|
|
140
|
-
);
|
|
141
|
-
const extendSelection = useCallback(
|
|
142
|
-
(cellId, isRowSelectionColumn) => {
|
|
143
|
-
if (!selectionInProgress || !anchorCell) return;
|
|
144
|
-
const currentPosition = parseCellId(cellId);
|
|
145
|
-
if (!currentPosition) return;
|
|
146
|
-
if (isRowSelectionColumn) {
|
|
147
|
-
setSelectedCells((prev) => {
|
|
148
|
-
const newSelection = new Set(prev);
|
|
149
|
-
const position = parseCellId(cellId);
|
|
150
|
-
if (!position) return newSelection;
|
|
151
|
-
if (initialCellSelected.current) {
|
|
152
|
-
newSelection.delete(cellId);
|
|
153
|
-
} else {
|
|
154
|
-
newSelection.add(cellId);
|
|
155
|
-
}
|
|
156
|
-
return newSelection;
|
|
157
|
-
});
|
|
158
|
-
} else {
|
|
159
|
-
const newSelection = selectCellRange(anchorCell, currentPosition, false);
|
|
160
|
-
updateSelection(newSelection, currentPosition);
|
|
161
|
-
}
|
|
162
|
-
},
|
|
163
|
-
[selectionInProgress, anchorCell, selectCellRange]
|
|
164
|
-
);
|
|
165
|
-
const endSelection = useCallback(() => {
|
|
166
|
-
setSelectionInProgress(false);
|
|
167
|
-
}, []);
|
|
168
|
-
const selectCell = useCallback(
|
|
169
|
-
(cellId, additive, range) => {
|
|
170
|
-
const position = parseCellId(cellId);
|
|
171
|
-
if (!position) return;
|
|
172
|
-
if (range && anchorCell) {
|
|
173
|
-
const newSelection = selectCellRange(anchorCell, position, additive);
|
|
174
|
-
updateSelection(newSelection, position);
|
|
175
|
-
} else if (additive) {
|
|
176
|
-
setSelectedCells((prev) => {
|
|
177
|
-
const newSelection = new Set(prev);
|
|
178
|
-
if (newSelection.has(cellId)) {
|
|
179
|
-
newSelection.delete(cellId);
|
|
180
|
-
} else {
|
|
181
|
-
newSelection.add(cellId);
|
|
182
|
-
}
|
|
183
|
-
return newSelection;
|
|
184
|
-
});
|
|
185
|
-
} else {
|
|
186
|
-
updateSelection(/* @__PURE__ */ new Set([cellId]), position);
|
|
187
|
-
setAnchorCell(position);
|
|
188
|
-
}
|
|
189
|
-
},
|
|
190
|
-
[anchorCell, selectCellRange]
|
|
191
|
-
);
|
|
192
|
-
const focusCell = useCallback((cellId) => {
|
|
193
|
-
setFocusedCellId(cellId);
|
|
194
|
-
}, []);
|
|
195
|
-
const clearSelection = useCallback(() => {
|
|
196
|
-
setSelectedCells(/* @__PURE__ */ new Set());
|
|
197
|
-
setAnchorCell(null);
|
|
198
|
-
setFocusedCellId(null);
|
|
199
|
-
}, []);
|
|
200
|
-
const isCellSelected = useCallback((cellId) => selectedCells.has(cellId), [selectedCells]);
|
|
201
|
-
const isCellFocused = useCallback((cellId) => cellId === focusedCellId, [focusedCellId]);
|
|
202
|
-
const getCellPositionFromId = useCallback((cellId) => parseCellId(cellId), []);
|
|
203
|
-
const getCellBorderClasses = useCallback(
|
|
204
|
-
(cellId) => {
|
|
205
|
-
if (!isCellSelected(cellId)) return [];
|
|
206
|
-
const position = parseCellId(cellId);
|
|
207
|
-
if (!position) return [];
|
|
208
|
-
const rowIndex = stableGridMap.rowIdToIndex.get(position.rowId);
|
|
209
|
-
const colIndex = stableGridMap.colIdToIndex.get(position.colId);
|
|
210
|
-
if (rowIndex === void 0 || colIndex === void 0) return [];
|
|
211
|
-
const top = stableGridMap.indexToRowId.get(rowIndex - 1);
|
|
212
|
-
const right = stableGridMap.indexToColId.get(colIndex + 1);
|
|
213
|
-
const bottom = stableGridMap.indexToRowId.get(rowIndex + 1);
|
|
214
|
-
const left = stableGridMap.indexToColId.get(colIndex - 1);
|
|
215
|
-
let borderPos = BorderPosition.None;
|
|
216
|
-
if (!top || !selectedCells.has(getCellId(top, position.colId))) {
|
|
217
|
-
borderPos |= BorderPosition.Top;
|
|
218
|
-
}
|
|
219
|
-
if (!right || !selectedCells.has(getCellId(position.rowId, right))) {
|
|
220
|
-
borderPos |= BorderPosition.Right;
|
|
221
|
-
}
|
|
222
|
-
if (!bottom || !selectedCells.has(getCellId(bottom, position.colId))) {
|
|
223
|
-
borderPos |= BorderPosition.Bottom;
|
|
224
|
-
}
|
|
225
|
-
if (!left || !selectedCells.has(getCellId(position.rowId, left))) {
|
|
226
|
-
borderPos |= BorderPosition.Left;
|
|
227
|
-
}
|
|
228
|
-
return getBorderClasses(borderPos);
|
|
229
|
-
},
|
|
230
|
-
[selectedCells, stableGridMap, isCellSelected]
|
|
231
|
-
);
|
|
232
|
-
const value = useMemo(
|
|
233
|
-
() => ({
|
|
234
|
-
selectedCells,
|
|
235
|
-
selectedRows,
|
|
236
|
-
focusedCellId,
|
|
237
|
-
selectionInProgress,
|
|
238
|
-
anchorCell,
|
|
239
|
-
gridMap: stableGridMap,
|
|
240
|
-
setSelectedCells,
|
|
241
|
-
setFocusedCellId,
|
|
242
|
-
setAnchorCell,
|
|
243
|
-
registerGrid,
|
|
244
|
-
selectCell,
|
|
245
|
-
startSelection,
|
|
246
|
-
extendSelection,
|
|
247
|
-
endSelection,
|
|
248
|
-
focusCell,
|
|
249
|
-
clearSelection,
|
|
250
|
-
isCellSelected,
|
|
251
|
-
isCellFocused,
|
|
252
|
-
getCellPositionFromId,
|
|
253
|
-
getCellBorderClasses
|
|
254
|
-
}),
|
|
255
|
-
[
|
|
256
|
-
selectedCells,
|
|
257
|
-
selectedRows,
|
|
258
|
-
focusedCellId,
|
|
259
|
-
selectionInProgress,
|
|
260
|
-
anchorCell,
|
|
261
|
-
stableGridMap,
|
|
262
|
-
setSelectedCells,
|
|
263
|
-
setFocusedCellId,
|
|
264
|
-
setAnchorCell,
|
|
265
|
-
registerGrid,
|
|
266
|
-
selectCell,
|
|
267
|
-
startSelection,
|
|
268
|
-
extendSelection,
|
|
269
|
-
endSelection,
|
|
270
|
-
focusCell,
|
|
271
|
-
clearSelection,
|
|
272
|
-
isCellSelected,
|
|
273
|
-
isCellFocused,
|
|
274
|
-
getCellPositionFromId,
|
|
275
|
-
getCellBorderClasses
|
|
276
|
-
]
|
|
277
|
-
);
|
|
278
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(SelectionCellsContext.Provider, { value, children });
|
|
279
|
-
};
|
|
280
4
|
const useSelectionCellsContext = () => {
|
|
281
5
|
const context = useContext(SelectionCellsContext);
|
|
282
6
|
if (context === void 0) {
|
|
@@ -286,7 +10,7 @@ const useSelectionCellsContext = () => {
|
|
|
286
10
|
};
|
|
287
11
|
export {
|
|
288
12
|
ROW_SELECTION_COLUMN_ID,
|
|
289
|
-
|
|
13
|
+
SelectionCellsContext,
|
|
290
14
|
useSelectionCellsContext
|
|
291
15
|
};
|
|
292
16
|
//# sourceMappingURL=SelectionCellsContext.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionCellsContext.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/SelectionCellsContext.tsx"],"sourcesContent":["import React, {\n createContext,\n useContext,\n useState,\n useCallback,\n useMemo,\n ReactNode,\n useRef,\n} from 'react'\nimport {\n CellId,\n RowId,\n ColId,\n CellPosition,\n getCellId,\n parseCellId,\n BorderPosition,\n getBorderClasses,\n} from '../utils/cellUtils'\nimport { DRAG_HANDLE_COLUMN_ID } from '../ProjectTreeTable'\n\nexport const ROW_SELECTION_COLUMN_ID = '__row_selection__' // ID for the row selection column\n\n// Cell range for selections\n\n// Structure to map row/column IDs to their positions in the grid\nexport interface GridMap {\n rowIdToIndex: Map<RowId, number>\n colIdToIndex: Map<ColId, number>\n indexToRowId: Map<number, RowId>\n indexToColId: Map<number, ColId>\n}\n\nexport interface SelectionCellsContextType {\n // Selected cells\n selectedCells: Set<CellId>\n // Focused cell (single cell that has focus)\n focusedCellId: CellId | null\n // Selection in progress state\n selectionInProgress: boolean\n // Anchor point for range selections\n anchorCell: CellPosition | null\n // Grid mapping for coordinate lookups\n gridMap: GridMap\n\n selectedRows: string[] // Array of selected row IDs\n\n // State setters\n setSelectedCells: React.Dispatch<React.SetStateAction<Set<CellId>>>\n setFocusedCellId: React.Dispatch<React.SetStateAction<CellId | null>>\n setAnchorCell: React.Dispatch<React.SetStateAction<CellPosition | null>>\n // Methods\n registerGrid: (rows: RowId[], columns: ColId[]) => void\n selectCell: (cellId: CellId, additive: boolean, range: boolean) => void\n startSelection: (cellId: CellId, additive: boolean) => void\n extendSelection: (cellId: CellId, isRowSelectionColumn?: boolean) => void\n endSelection: (cellId: CellId) => void\n focusCell: (cellId: CellId | null) => void\n clearSelection: () => void\n isCellSelected: (cellId: CellId) => boolean\n isCellFocused: (cellId: CellId) => boolean\n getCellPositionFromId: (cellId: CellId) => CellPosition | null\n getCellBorderClasses: (cellId: CellId) => string[]\n}\n\n// Create the context\nconst SelectionCellsContext = createContext<SelectionCellsContextType | undefined>(undefined)\n\nexport const SelectionCellsProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n const [selectedCells, setSelectedCells] = useState<Set<CellId>>(new Set())\n const [focusedCellId, setFocusedCellId] = useState<CellId | null>(null)\n const [selectionInProgress, setSelectionInProgress] = useState<boolean>(false)\n const [anchorCell, setAnchorCell] = useState<CellPosition | null>(null)\n const [gridMap, setGridMap] = useState<GridMap>({\n rowIdToIndex: new Map(),\n colIdToIndex: new Map(),\n indexToRowId: new Map(),\n indexToColId: new Map(),\n })\n const mapToString = (map: Map<any, any>) => {\n return JSON.stringify(Array.from(map.entries()))\n }\n\n const stableGridMap = useMemo(\n () => gridMap,\n [\n mapToString(gridMap.rowIdToIndex),\n mapToString(gridMap.colIdToIndex),\n mapToString(gridMap.indexToRowId),\n mapToString(gridMap.indexToColId),\n ],\n )\n // Track whether we're selecting or unselecting during drag\n const initialCellSelected = useRef<boolean>(false)\n\n const selectedRows = useMemo(\n () =>\n Array.from(selectedCells)\n .filter(\n (cellId) =>\n parseCellId(cellId)?.colId === ROW_SELECTION_COLUMN_ID && parseCellId(cellId)?.rowId,\n )\n .map((cellId) => parseCellId(cellId)?.rowId) as string[],\n [selectedCells],\n )\n\n // Register grid structure for range selections\n const registerGrid = useCallback((rows: RowId[], columns: ColId[]) => {\n const rowIdToIndex = new Map<RowId, number>()\n const colIdToIndex = new Map<ColId, number>()\n const indexToRowId = new Map<number, RowId>()\n const indexToColId = new Map<number, ColId>()\n\n rows.forEach((rowId, index) => {\n rowIdToIndex.set(rowId, index)\n indexToRowId.set(index, rowId)\n })\n\n columns.forEach((colId, index) => {\n colIdToIndex.set(colId, index)\n indexToColId.set(index, colId)\n })\n\n setGridMap({ rowIdToIndex, colIdToIndex, indexToRowId, indexToColId })\n }, [])\n\n // update the selection whilst properly handling the row-selection column\n const updateSelection = useCallback((selection: Set<CellId>, position: CellPosition) => {\n setSelectedCells((prevSelectedCells) => {\n let newSelection = new Set(selection)\n if (position.colId !== ROW_SELECTION_COLUMN_ID && position.colId !== DRAG_HANDLE_COLUMN_ID) {\n const rowSelection = Array.from(prevSelectedCells).filter(\n (id) => parseCellId(id)?.colId === ROW_SELECTION_COLUMN_ID,\n )\n if (rowSelection.length) {\n newSelection = new Set([...newSelection, ...rowSelection])\n }\n }\n return newSelection\n })\n }, [])\n\n // Select cells between two points in the grid\n const selectCellRange = useCallback(\n (start: CellPosition, end: CellPosition, additive: boolean): Set<CellId> => {\n if (!additive) {\n // Clear existing selection if not additive\n updateSelection(new Set(), start)\n }\n\n const startRowIdx = stableGridMap.rowIdToIndex.get(start.rowId) ?? 0\n const startColIdx = stableGridMap.colIdToIndex.get(start.colId) ?? 0\n const endRowIdx = stableGridMap.rowIdToIndex.get(end.rowId) ?? 0\n const endColIdx = stableGridMap.colIdToIndex.get(end.colId) ?? 0\n\n const minRowIdx = Math.min(startRowIdx, endRowIdx)\n const maxRowIdx = Math.max(startRowIdx, endRowIdx)\n const minColIdx = Math.min(startColIdx, endColIdx)\n const maxColIdx = Math.max(startColIdx, endColIdx)\n\n const newSelection = new Set(additive ? selectedCells : [])\n\n for (let r = minRowIdx; r <= maxRowIdx; r++) {\n const rowId = stableGridMap.indexToRowId.get(r)\n if (!rowId) continue\n\n for (let c = minColIdx; c <= maxColIdx; c++) {\n const colId = stableGridMap.indexToColId.get(c)\n if (!colId) continue\n\n newSelection.add(getCellId(rowId, colId))\n }\n }\n\n return newSelection\n },\n [stableGridMap, selectedCells],\n )\n\n // Start a selection operation\n const startSelection = useCallback(\n (cellId: CellId, additive: boolean) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n setSelectionInProgress(true)\n // Store whether the initial cell was selected to determine drag behavior\n initialCellSelected.current = selectedCells.has(cellId)\n\n if (additive) {\n // Toggle this cell in multi-select mode\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n if (newSelection.has(cellId)) {\n newSelection.delete(cellId)\n // If this was the focused cell, set focus to another cell in the selection or null\n if (focusedCellId === cellId) {\n if (newSelection.size > 0) {\n setFocusedCellId(Array.from(newSelection)[Array.from(newSelection).length - 1])\n } else {\n setFocusedCellId(null)\n }\n }\n } else {\n newSelection.add(cellId)\n setFocusedCellId(cellId)\n setAnchorCell(position)\n }\n return newSelection\n })\n } else {\n // Single cell selection\n // If this cell is already the only selected cell, deselect it\n // and it is from name column\n if (\n selectedCells.size === 1 &&\n selectedCells.has(cellId) &&\n [ROW_SELECTION_COLUMN_ID, 'name'].includes(position.colId)\n ) {\n setSelectedCells(new Set())\n setAnchorCell(null)\n setFocusedCellId(null)\n } else {\n updateSelection(new Set([cellId]), position)\n setAnchorCell(position)\n setFocusedCellId(cellId)\n }\n }\n },\n [selectedCells, focusedCellId],\n )\n\n // Extend the current selection during drag\n const extendSelection = useCallback(\n (cellId: CellId, isRowSelectionColumn?: boolean) => {\n if (!selectionInProgress || !anchorCell) return\n\n const currentPosition = parseCellId(cellId)\n if (!currentPosition) return\n\n if (isRowSelectionColumn) {\n // Handle row selection column differently during drag\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n const position = parseCellId(cellId)\n\n if (!position) return newSelection\n\n // We're either selecting or unselecting based on the initial cell's state\n if (initialCellSelected.current) {\n // If we started on a selected cell, we're removing cells during drag\n newSelection.delete(cellId)\n } else {\n // If we started on an unselected cell, we're adding cells during drag\n newSelection.add(cellId)\n }\n\n return newSelection\n })\n } else {\n // For normal cells, use the range selection behavior\n const newSelection = selectCellRange(anchorCell, currentPosition, false)\n updateSelection(newSelection, currentPosition)\n }\n },\n [selectionInProgress, anchorCell, selectCellRange],\n )\n\n // End a selection operation\n const endSelection = useCallback(() => {\n setSelectionInProgress(false)\n }, [])\n\n // Select a cell (click or programmatically)\n const selectCell = useCallback(\n (cellId: CellId, additive: boolean, range: boolean) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n if (range && anchorCell) {\n // Shift+click for range selection - select cells between anchor and current\n const newSelection = selectCellRange(anchorCell, position, additive)\n updateSelection(newSelection, position)\n } else if (additive) {\n // Ctrl/Cmd+click for toggling selection\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n if (newSelection.has(cellId)) {\n newSelection.delete(cellId)\n } else {\n newSelection.add(cellId)\n }\n return newSelection\n })\n } else {\n // Normal click - select just this cell and set as new anchor\n updateSelection(new Set([cellId]), position)\n setAnchorCell(position)\n }\n },\n [anchorCell, selectCellRange],\n )\n\n // Focus a cell without changing selection\n const focusCell = useCallback((cellId: CellId | null) => {\n setFocusedCellId(cellId)\n }, [])\n\n // Clear all selections\n const clearSelection = useCallback(() => {\n setSelectedCells(new Set())\n setAnchorCell(null)\n setFocusedCellId(null)\n }, [])\n\n // Check if a cell is selected\n const isCellSelected = useCallback((cellId: CellId) => selectedCells.has(cellId), [selectedCells])\n\n // Check if a cell is focused\n const isCellFocused = useCallback((cellId: CellId) => cellId === focusedCellId, [focusedCellId])\n\n // Get position from cell ID - using shared utility\n const getCellPositionFromId = useCallback((cellId: CellId) => parseCellId(cellId), [])\n\n // Get border classes for a cell based on its selection state and neighbors\n const getCellBorderClasses = useCallback(\n (cellId: CellId): string[] => {\n if (!isCellSelected(cellId)) return []\n\n const position = parseCellId(cellId)\n if (!position) return []\n\n const rowIndex = stableGridMap.rowIdToIndex.get(position.rowId)\n const colIndex = stableGridMap.colIdToIndex.get(position.colId)\n\n if (rowIndex === undefined || colIndex === undefined) return []\n\n // Check if the cell's neighbors in all four directions are selected\n const top = stableGridMap.indexToRowId.get(rowIndex - 1)\n const right = stableGridMap.indexToColId.get(colIndex + 1)\n const bottom = stableGridMap.indexToRowId.get(rowIndex + 1)\n const left = stableGridMap.indexToColId.get(colIndex - 1)\n\n // Default to no borders\n let borderPos = BorderPosition.None\n\n // Top edge check: show border if we're at the top of the grid or the cell above is not selected\n if (!top || !selectedCells.has(getCellId(top, position.colId))) {\n borderPos |= BorderPosition.Top\n }\n\n // Right edge check: show border if we're at the right edge of the grid or the cell to the right is not selected\n if (!right || !selectedCells.has(getCellId(position.rowId, right))) {\n borderPos |= BorderPosition.Right\n }\n\n // Bottom edge check: show border if we're at the bottom of the grid or the cell below is not selected\n if (!bottom || !selectedCells.has(getCellId(bottom, position.colId))) {\n borderPos |= BorderPosition.Bottom\n }\n\n // Left edge check: show border if we're at the left edge of the grid or the cell to the left is not selected\n if (!left || !selectedCells.has(getCellId(position.rowId, left))) {\n borderPos |= BorderPosition.Left\n }\n\n return getBorderClasses(borderPos)\n },\n [selectedCells, stableGridMap, isCellSelected],\n )\n\n // Memoize context value to prevent unnecessary re-renders\n const value = useMemo(\n () => ({\n selectedCells,\n selectedRows,\n focusedCellId,\n selectionInProgress,\n anchorCell,\n gridMap: stableGridMap,\n setSelectedCells,\n setFocusedCellId,\n setAnchorCell,\n registerGrid,\n selectCell,\n startSelection,\n extendSelection,\n endSelection,\n focusCell,\n clearSelection,\n isCellSelected,\n isCellFocused,\n getCellPositionFromId,\n getCellBorderClasses,\n }),\n [\n selectedCells,\n selectedRows,\n focusedCellId,\n selectionInProgress,\n anchorCell,\n stableGridMap,\n setSelectedCells,\n setFocusedCellId,\n setAnchorCell,\n registerGrid,\n selectCell,\n startSelection,\n extendSelection,\n endSelection,\n focusCell,\n clearSelection,\n isCellSelected,\n isCellFocused,\n getCellPositionFromId,\n getCellBorderClasses,\n ],\n )\n\n return <SelectionCellsContext.Provider value={value}>{children}</SelectionCellsContext.Provider>\n}\n\nexport const useSelectionCellsContext = (): SelectionCellsContextType => {\n const context = useContext(SelectionCellsContext)\n if (context === undefined) {\n throw new Error('useSelectionCellsContext must be used within a SelectionCellsProvider')\n }\n return context\n}\n"],"names":["jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SelectionCellsContext.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/SelectionCellsContext.ts"],"sourcesContent":["import React, { createContext, useContext } from 'react'\nimport {\n CellId,\n RowId,\n ColId,\n CellPosition,\n} from '../utils/cellUtils'\n\nexport const ROW_SELECTION_COLUMN_ID = '__row_selection__' // ID for the row selection column\n\n// Structure to map row/column IDs to their positions in the grid\nexport interface GridMap {\n rowIdToIndex: Map<RowId, number>\n colIdToIndex: Map<ColId, number>\n indexToRowId: Map<number, RowId>\n indexToColId: Map<number, ColId>\n}\n\nexport interface SelectionCellsContextType {\n // Selected cells\n selectedCells: Set<CellId>\n // Focused cell (single cell that has focus)\n focusedCellId: CellId | null\n // Selection in progress state\n selectionInProgress: boolean\n // Anchor point for range selections\n anchorCell: CellPosition | null\n // Grid mapping for coordinate lookups\n gridMap: GridMap\n\n selectedRows: string[] // Array of selected row IDs\n\n // State setters\n setSelectedCells: React.Dispatch<React.SetStateAction<Set<CellId>>>\n setFocusedCellId: React.Dispatch<React.SetStateAction<CellId | null>>\n setAnchorCell: React.Dispatch<React.SetStateAction<CellPosition | null>>\n // Methods\n registerGrid: (rows: RowId[], columns: ColId[]) => void\n selectCell: (cellId: CellId, additive: boolean, range: boolean) => void\n startSelection: (cellId: CellId, additive: boolean) => void\n extendSelection: (cellId: CellId, isRowSelectionColumn?: boolean) => void\n endSelection: (cellId: CellId) => void\n focusCell: (cellId: CellId | null) => void\n clearSelection: () => void\n isCellSelected: (cellId: CellId) => boolean\n isCellFocused: (cellId: CellId) => boolean\n getCellPositionFromId: (cellId: CellId) => CellPosition | null\n getCellBorderClasses: (cellId: CellId) => string[]\n}\n\n// Create the context\nexport const SelectionCellsContext = createContext<SelectionCellsContextType | undefined>(undefined)\n\nexport const useSelectionCellsContext = (): SelectionCellsContextType => {\n const context = useContext(SelectionCellsContext)\n if (context === undefined) {\n throw new Error('useSelectionCellsContext must be used within a SelectionCellsProvider')\n }\n return context\n}\n"],"names":[],"mappings":";AAQO,MAAM,0BAA0B;AA2C1B,MAAA,wBAAwB,cAAqD,MAAS;AAE5F,MAAM,2BAA2B,MAAiC;AACjE,QAAA,UAAU,WAAW,qBAAqB;AAChD,MAAI,YAAY,QAAW;AACnB,UAAA,IAAI,MAAM,uEAAuE;AAAA,EAAA;AAElF,SAAA;AACT;"}
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("../../../../../_virtual/jsx-runtime.cjs.js");
|
|
4
|
+
const React = require("react");
|
|
5
|
+
const cellUtils = require("../utils/cellUtils.cjs.js");
|
|
6
|
+
const ProjectTreeTable = require("../ProjectTreeTable.cjs.js");
|
|
7
|
+
const SelectionCellsContext = require("./SelectionCellsContext.cjs.js");
|
|
8
|
+
const SelectionCellsProvider = ({ children }) => {
|
|
9
|
+
const [selectedCells, setSelectedCells] = React.useState(/* @__PURE__ */ new Set());
|
|
10
|
+
const [focusedCellId, setFocusedCellId] = React.useState(null);
|
|
11
|
+
const [selectionInProgress, setSelectionInProgress] = React.useState(false);
|
|
12
|
+
const [anchorCell, setAnchorCell] = React.useState(null);
|
|
13
|
+
const [gridMap, setGridMap] = React.useState({
|
|
14
|
+
rowIdToIndex: /* @__PURE__ */ new Map(),
|
|
15
|
+
colIdToIndex: /* @__PURE__ */ new Map(),
|
|
16
|
+
indexToRowId: /* @__PURE__ */ new Map(),
|
|
17
|
+
indexToColId: /* @__PURE__ */ new Map()
|
|
18
|
+
});
|
|
19
|
+
const mapToString = (map) => {
|
|
20
|
+
return JSON.stringify(Array.from(map.entries()));
|
|
21
|
+
};
|
|
22
|
+
const stableGridMap = React.useMemo(
|
|
23
|
+
() => gridMap,
|
|
24
|
+
[
|
|
25
|
+
mapToString(gridMap.rowIdToIndex),
|
|
26
|
+
mapToString(gridMap.colIdToIndex),
|
|
27
|
+
mapToString(gridMap.indexToRowId),
|
|
28
|
+
mapToString(gridMap.indexToColId)
|
|
29
|
+
]
|
|
30
|
+
);
|
|
31
|
+
const initialCellSelected = React.useRef(false);
|
|
32
|
+
const selectedRows = React.useMemo(
|
|
33
|
+
() => Array.from(selectedCells).filter(
|
|
34
|
+
(cellId) => {
|
|
35
|
+
var _a, _b;
|
|
36
|
+
return ((_a = cellUtils.parseCellId(cellId)) == null ? void 0 : _a.colId) === SelectionCellsContext.ROW_SELECTION_COLUMN_ID && ((_b = cellUtils.parseCellId(cellId)) == null ? void 0 : _b.rowId);
|
|
37
|
+
}
|
|
38
|
+
).map((cellId) => {
|
|
39
|
+
var _a;
|
|
40
|
+
return (_a = cellUtils.parseCellId(cellId)) == null ? void 0 : _a.rowId;
|
|
41
|
+
}),
|
|
42
|
+
[selectedCells]
|
|
43
|
+
);
|
|
44
|
+
const registerGrid = React.useCallback((rows, columns) => {
|
|
45
|
+
const rowIdToIndex = /* @__PURE__ */ new Map();
|
|
46
|
+
const colIdToIndex = /* @__PURE__ */ new Map();
|
|
47
|
+
const indexToRowId = /* @__PURE__ */ new Map();
|
|
48
|
+
const indexToColId = /* @__PURE__ */ new Map();
|
|
49
|
+
rows.forEach((rowId, index) => {
|
|
50
|
+
rowIdToIndex.set(rowId, index);
|
|
51
|
+
indexToRowId.set(index, rowId);
|
|
52
|
+
});
|
|
53
|
+
columns.forEach((colId, index) => {
|
|
54
|
+
colIdToIndex.set(colId, index);
|
|
55
|
+
indexToColId.set(index, colId);
|
|
56
|
+
});
|
|
57
|
+
setGridMap({ rowIdToIndex, colIdToIndex, indexToRowId, indexToColId });
|
|
58
|
+
}, []);
|
|
59
|
+
const updateSelection = React.useCallback((selection, position) => {
|
|
60
|
+
setSelectedCells((prevSelectedCells) => {
|
|
61
|
+
let newSelection = new Set(selection);
|
|
62
|
+
if (position.colId !== SelectionCellsContext.ROW_SELECTION_COLUMN_ID && position.colId !== ProjectTreeTable.DRAG_HANDLE_COLUMN_ID) {
|
|
63
|
+
const rowSelection = Array.from(prevSelectedCells).filter(
|
|
64
|
+
(id) => {
|
|
65
|
+
var _a;
|
|
66
|
+
return ((_a = cellUtils.parseCellId(id)) == null ? void 0 : _a.colId) === SelectionCellsContext.ROW_SELECTION_COLUMN_ID;
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
if (rowSelection.length) {
|
|
70
|
+
newSelection = /* @__PURE__ */ new Set([...newSelection, ...rowSelection]);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return newSelection;
|
|
74
|
+
});
|
|
75
|
+
}, []);
|
|
76
|
+
const selectCellRange = React.useCallback(
|
|
77
|
+
(start, end, additive) => {
|
|
78
|
+
if (!additive) {
|
|
79
|
+
updateSelection(/* @__PURE__ */ new Set(), start);
|
|
80
|
+
}
|
|
81
|
+
const startRowIdx = stableGridMap.rowIdToIndex.get(start.rowId) ?? 0;
|
|
82
|
+
const startColIdx = stableGridMap.colIdToIndex.get(start.colId) ?? 0;
|
|
83
|
+
const endRowIdx = stableGridMap.rowIdToIndex.get(end.rowId) ?? 0;
|
|
84
|
+
const endColIdx = stableGridMap.colIdToIndex.get(end.colId) ?? 0;
|
|
85
|
+
const minRowIdx = Math.min(startRowIdx, endRowIdx);
|
|
86
|
+
const maxRowIdx = Math.max(startRowIdx, endRowIdx);
|
|
87
|
+
const minColIdx = Math.min(startColIdx, endColIdx);
|
|
88
|
+
const maxColIdx = Math.max(startColIdx, endColIdx);
|
|
89
|
+
const newSelection = new Set(additive ? selectedCells : []);
|
|
90
|
+
for (let r = minRowIdx; r <= maxRowIdx; r++) {
|
|
91
|
+
const rowId = stableGridMap.indexToRowId.get(r);
|
|
92
|
+
if (!rowId) continue;
|
|
93
|
+
for (let c = minColIdx; c <= maxColIdx; c++) {
|
|
94
|
+
const colId = stableGridMap.indexToColId.get(c);
|
|
95
|
+
if (!colId) continue;
|
|
96
|
+
newSelection.add(cellUtils.getCellId(rowId, colId));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return newSelection;
|
|
100
|
+
},
|
|
101
|
+
[stableGridMap, selectedCells, updateSelection]
|
|
102
|
+
);
|
|
103
|
+
const startSelection = React.useCallback(
|
|
104
|
+
(cellId, additive) => {
|
|
105
|
+
const position = cellUtils.parseCellId(cellId);
|
|
106
|
+
if (!position) return;
|
|
107
|
+
setSelectionInProgress(true);
|
|
108
|
+
initialCellSelected.current = selectedCells.has(cellId);
|
|
109
|
+
if (additive) {
|
|
110
|
+
setSelectedCells((prev) => {
|
|
111
|
+
const newSelection = new Set(prev);
|
|
112
|
+
if (newSelection.has(cellId)) {
|
|
113
|
+
newSelection.delete(cellId);
|
|
114
|
+
if (focusedCellId === cellId) {
|
|
115
|
+
if (newSelection.size > 0) {
|
|
116
|
+
setFocusedCellId(Array.from(newSelection)[Array.from(newSelection).length - 1]);
|
|
117
|
+
} else {
|
|
118
|
+
setFocusedCellId(null);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
} else {
|
|
122
|
+
newSelection.add(cellId);
|
|
123
|
+
setFocusedCellId(cellId);
|
|
124
|
+
setAnchorCell(position);
|
|
125
|
+
}
|
|
126
|
+
return newSelection;
|
|
127
|
+
});
|
|
128
|
+
} else {
|
|
129
|
+
if (selectedCells.size === 1 && selectedCells.has(cellId) && [SelectionCellsContext.ROW_SELECTION_COLUMN_ID, "name"].includes(position.colId)) {
|
|
130
|
+
setSelectedCells(/* @__PURE__ */ new Set());
|
|
131
|
+
setAnchorCell(null);
|
|
132
|
+
setFocusedCellId(null);
|
|
133
|
+
} else {
|
|
134
|
+
updateSelection(/* @__PURE__ */ new Set([cellId]), position);
|
|
135
|
+
setAnchorCell(position);
|
|
136
|
+
setFocusedCellId(cellId);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
[selectedCells, focusedCellId, updateSelection]
|
|
141
|
+
);
|
|
142
|
+
const extendSelection = React.useCallback(
|
|
143
|
+
(cellId, isRowSelectionColumn) => {
|
|
144
|
+
if (!selectionInProgress || !anchorCell) return;
|
|
145
|
+
const currentPosition = cellUtils.parseCellId(cellId);
|
|
146
|
+
if (!currentPosition) return;
|
|
147
|
+
if (isRowSelectionColumn) {
|
|
148
|
+
setSelectedCells((prev) => {
|
|
149
|
+
const newSelection = new Set(prev);
|
|
150
|
+
const position = cellUtils.parseCellId(cellId);
|
|
151
|
+
if (!position) return newSelection;
|
|
152
|
+
if (initialCellSelected.current) {
|
|
153
|
+
newSelection.delete(cellId);
|
|
154
|
+
} else {
|
|
155
|
+
newSelection.add(cellId);
|
|
156
|
+
}
|
|
157
|
+
return newSelection;
|
|
158
|
+
});
|
|
159
|
+
} else {
|
|
160
|
+
const newSelection = selectCellRange(anchorCell, currentPosition, false);
|
|
161
|
+
updateSelection(newSelection, currentPosition);
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
[selectionInProgress, anchorCell, selectCellRange, updateSelection]
|
|
165
|
+
);
|
|
166
|
+
const endSelection = React.useCallback(() => {
|
|
167
|
+
setSelectionInProgress(false);
|
|
168
|
+
}, []);
|
|
169
|
+
const selectCell = React.useCallback(
|
|
170
|
+
(cellId, additive, range) => {
|
|
171
|
+
const position = cellUtils.parseCellId(cellId);
|
|
172
|
+
if (!position) return;
|
|
173
|
+
if (range && anchorCell) {
|
|
174
|
+
const newSelection = selectCellRange(anchorCell, position, additive);
|
|
175
|
+
updateSelection(newSelection, position);
|
|
176
|
+
} else if (additive) {
|
|
177
|
+
setSelectedCells((prev) => {
|
|
178
|
+
const newSelection = new Set(prev);
|
|
179
|
+
if (newSelection.has(cellId)) {
|
|
180
|
+
newSelection.delete(cellId);
|
|
181
|
+
} else {
|
|
182
|
+
newSelection.add(cellId);
|
|
183
|
+
}
|
|
184
|
+
return newSelection;
|
|
185
|
+
});
|
|
186
|
+
} else {
|
|
187
|
+
updateSelection(/* @__PURE__ */ new Set([cellId]), position);
|
|
188
|
+
setAnchorCell(position);
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
[anchorCell, selectCellRange, updateSelection]
|
|
192
|
+
);
|
|
193
|
+
const focusCell = React.useCallback((cellId) => {
|
|
194
|
+
setFocusedCellId(cellId);
|
|
195
|
+
}, []);
|
|
196
|
+
const clearSelection = React.useCallback(() => {
|
|
197
|
+
setSelectedCells(/* @__PURE__ */ new Set());
|
|
198
|
+
setAnchorCell(null);
|
|
199
|
+
setFocusedCellId(null);
|
|
200
|
+
}, []);
|
|
201
|
+
const isCellSelected = React.useCallback((cellId) => selectedCells.has(cellId), [selectedCells]);
|
|
202
|
+
const isCellFocused = React.useCallback((cellId) => cellId === focusedCellId, [focusedCellId]);
|
|
203
|
+
const getCellPositionFromId = React.useCallback((cellId) => cellUtils.parseCellId(cellId), []);
|
|
204
|
+
const getCellBorderClasses = React.useCallback(
|
|
205
|
+
(cellId) => {
|
|
206
|
+
if (!isCellSelected(cellId)) return [];
|
|
207
|
+
const position = cellUtils.parseCellId(cellId);
|
|
208
|
+
if (!position) return [];
|
|
209
|
+
const rowIndex = stableGridMap.rowIdToIndex.get(position.rowId);
|
|
210
|
+
const colIndex = stableGridMap.colIdToIndex.get(position.colId);
|
|
211
|
+
if (rowIndex === void 0 || colIndex === void 0) return [];
|
|
212
|
+
const top = stableGridMap.indexToRowId.get(rowIndex - 1);
|
|
213
|
+
const right = stableGridMap.indexToColId.get(colIndex + 1);
|
|
214
|
+
const bottom = stableGridMap.indexToRowId.get(rowIndex + 1);
|
|
215
|
+
const left = stableGridMap.indexToColId.get(colIndex - 1);
|
|
216
|
+
let borderPos = cellUtils.BorderPosition.None;
|
|
217
|
+
if (!top || !selectedCells.has(cellUtils.getCellId(top, position.colId))) {
|
|
218
|
+
borderPos |= cellUtils.BorderPosition.Top;
|
|
219
|
+
}
|
|
220
|
+
if (!right || !selectedCells.has(cellUtils.getCellId(position.rowId, right))) {
|
|
221
|
+
borderPos |= cellUtils.BorderPosition.Right;
|
|
222
|
+
}
|
|
223
|
+
if (!bottom || !selectedCells.has(cellUtils.getCellId(bottom, position.colId))) {
|
|
224
|
+
borderPos |= cellUtils.BorderPosition.Bottom;
|
|
225
|
+
}
|
|
226
|
+
if (!left || !selectedCells.has(cellUtils.getCellId(position.rowId, left))) {
|
|
227
|
+
borderPos |= cellUtils.BorderPosition.Left;
|
|
228
|
+
}
|
|
229
|
+
return cellUtils.getBorderClasses(borderPos);
|
|
230
|
+
},
|
|
231
|
+
[selectedCells, stableGridMap, isCellSelected]
|
|
232
|
+
);
|
|
233
|
+
const value = React.useMemo(
|
|
234
|
+
() => ({
|
|
235
|
+
selectedCells,
|
|
236
|
+
selectedRows,
|
|
237
|
+
focusedCellId,
|
|
238
|
+
selectionInProgress,
|
|
239
|
+
anchorCell,
|
|
240
|
+
gridMap: stableGridMap,
|
|
241
|
+
setSelectedCells,
|
|
242
|
+
setFocusedCellId,
|
|
243
|
+
setAnchorCell,
|
|
244
|
+
registerGrid,
|
|
245
|
+
selectCell,
|
|
246
|
+
startSelection,
|
|
247
|
+
extendSelection,
|
|
248
|
+
endSelection,
|
|
249
|
+
focusCell,
|
|
250
|
+
clearSelection,
|
|
251
|
+
isCellSelected,
|
|
252
|
+
isCellFocused,
|
|
253
|
+
getCellPositionFromId,
|
|
254
|
+
getCellBorderClasses
|
|
255
|
+
}),
|
|
256
|
+
[
|
|
257
|
+
selectedCells,
|
|
258
|
+
selectedRows,
|
|
259
|
+
focusedCellId,
|
|
260
|
+
selectionInProgress,
|
|
261
|
+
anchorCell,
|
|
262
|
+
stableGridMap,
|
|
263
|
+
setSelectedCells,
|
|
264
|
+
setFocusedCellId,
|
|
265
|
+
setAnchorCell,
|
|
266
|
+
registerGrid,
|
|
267
|
+
selectCell,
|
|
268
|
+
startSelection,
|
|
269
|
+
extendSelection,
|
|
270
|
+
endSelection,
|
|
271
|
+
focusCell,
|
|
272
|
+
clearSelection,
|
|
273
|
+
isCellSelected,
|
|
274
|
+
isCellFocused,
|
|
275
|
+
getCellPositionFromId,
|
|
276
|
+
getCellBorderClasses
|
|
277
|
+
]
|
|
278
|
+
);
|
|
279
|
+
return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(SelectionCellsContext.SelectionCellsContext.Provider, { value, children });
|
|
280
|
+
};
|
|
281
|
+
exports.SelectionCellsProvider = SelectionCellsProvider;
|
|
282
|
+
//# sourceMappingURL=SelectionCellsProvider.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectionCellsProvider.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/SelectionCellsProvider.tsx"],"sourcesContent":["import React, { useState, useCallback, useMemo, ReactNode, useRef } from 'react'\nimport {\n CellId,\n RowId,\n ColId,\n CellPosition,\n getCellId,\n parseCellId,\n BorderPosition,\n getBorderClasses,\n} from '../utils/cellUtils'\nimport { DRAG_HANDLE_COLUMN_ID } from '../ProjectTreeTable'\nimport { SelectionCellsContext, GridMap, ROW_SELECTION_COLUMN_ID } from './SelectionCellsContext'\n\nexport const SelectionCellsProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n const [selectedCells, setSelectedCells] = useState<Set<CellId>>(new Set())\n const [focusedCellId, setFocusedCellId] = useState<CellId | null>(null)\n const [selectionInProgress, setSelectionInProgress] = useState<boolean>(false)\n const [anchorCell, setAnchorCell] = useState<CellPosition | null>(null)\n const [gridMap, setGridMap] = useState<GridMap>({\n rowIdToIndex: new Map(),\n colIdToIndex: new Map(),\n indexToRowId: new Map(),\n indexToColId: new Map(),\n })\n const mapToString = (map: Map<any, any>) => {\n return JSON.stringify(Array.from(map.entries()))\n }\n\n const stableGridMap = useMemo(\n () => gridMap,\n [\n mapToString(gridMap.rowIdToIndex),\n mapToString(gridMap.colIdToIndex),\n mapToString(gridMap.indexToRowId),\n mapToString(gridMap.indexToColId),\n ],\n )\n // Track whether we're selecting or unselecting during drag\n const initialCellSelected = useRef<boolean>(false)\n\n const selectedRows = useMemo(\n () =>\n Array.from(selectedCells)\n .filter(\n (cellId) =>\n parseCellId(cellId)?.colId === ROW_SELECTION_COLUMN_ID && parseCellId(cellId)?.rowId,\n )\n .map((cellId) => parseCellId(cellId)?.rowId) as string[],\n [selectedCells],\n )\n\n // Register grid structure for range selections\n const registerGrid = useCallback((rows: RowId[], columns: ColId[]) => {\n const rowIdToIndex = new Map<RowId, number>()\n const colIdToIndex = new Map<ColId, number>()\n const indexToRowId = new Map<number, RowId>()\n const indexToColId = new Map<number, ColId>()\n\n rows.forEach((rowId, index) => {\n rowIdToIndex.set(rowId, index)\n indexToRowId.set(index, rowId)\n })\n\n columns.forEach((colId, index) => {\n colIdToIndex.set(colId, index)\n indexToColId.set(index, colId)\n })\n\n setGridMap({ rowIdToIndex, colIdToIndex, indexToRowId, indexToColId })\n }, [])\n\n // update the selection whilst properly handling the row-selection column\n const updateSelection = useCallback((selection: Set<CellId>, position: CellPosition) => {\n setSelectedCells((prevSelectedCells) => {\n let newSelection = new Set(selection)\n if (position.colId !== ROW_SELECTION_COLUMN_ID && position.colId !== DRAG_HANDLE_COLUMN_ID) {\n const rowSelection = Array.from(prevSelectedCells).filter(\n (id) => parseCellId(id)?.colId === ROW_SELECTION_COLUMN_ID,\n )\n if (rowSelection.length) {\n newSelection = new Set([...newSelection, ...rowSelection])\n }\n }\n return newSelection\n })\n }, [])\n\n // Select cells between two points in the grid\n const selectCellRange = useCallback(\n (start: CellPosition, end: CellPosition, additive: boolean): Set<CellId> => {\n if (!additive) {\n // Clear existing selection if not additive\n updateSelection(new Set(), start)\n }\n\n const startRowIdx = stableGridMap.rowIdToIndex.get(start.rowId) ?? 0\n const startColIdx = stableGridMap.colIdToIndex.get(start.colId) ?? 0\n const endRowIdx = stableGridMap.rowIdToIndex.get(end.rowId) ?? 0\n const endColIdx = stableGridMap.colIdToIndex.get(end.colId) ?? 0\n\n const minRowIdx = Math.min(startRowIdx, endRowIdx)\n const maxRowIdx = Math.max(startRowIdx, endRowIdx)\n const minColIdx = Math.min(startColIdx, endColIdx)\n const maxColIdx = Math.max(startColIdx, endColIdx)\n\n const newSelection = new Set(additive ? selectedCells : [])\n\n for (let r = minRowIdx; r <= maxRowIdx; r++) {\n const rowId = stableGridMap.indexToRowId.get(r)\n if (!rowId) continue\n\n for (let c = minColIdx; c <= maxColIdx; c++) {\n const colId = stableGridMap.indexToColId.get(c)\n if (!colId) continue\n\n newSelection.add(getCellId(rowId, colId))\n }\n }\n\n return newSelection\n },\n [stableGridMap, selectedCells, updateSelection],\n )\n\n // Start a selection operation\n const startSelection = useCallback(\n (cellId: CellId, additive: boolean) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n setSelectionInProgress(true)\n // Store whether the initial cell was selected to determine drag behavior\n initialCellSelected.current = selectedCells.has(cellId)\n\n if (additive) {\n // Toggle this cell in multi-select mode\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n if (newSelection.has(cellId)) {\n newSelection.delete(cellId)\n // If this was the focused cell, set focus to another cell in the selection or null\n if (focusedCellId === cellId) {\n if (newSelection.size > 0) {\n setFocusedCellId(Array.from(newSelection)[Array.from(newSelection).length - 1])\n } else {\n setFocusedCellId(null)\n }\n }\n } else {\n newSelection.add(cellId)\n setFocusedCellId(cellId)\n setAnchorCell(position)\n }\n return newSelection\n })\n } else {\n // Single cell selection\n // If this cell is already the only selected cell, deselect it\n // and it is from name column\n if (\n selectedCells.size === 1 &&\n selectedCells.has(cellId) &&\n [ROW_SELECTION_COLUMN_ID, 'name'].includes(position.colId)\n ) {\n setSelectedCells(new Set())\n setAnchorCell(null)\n setFocusedCellId(null)\n } else {\n updateSelection(new Set([cellId]), position)\n setAnchorCell(position)\n setFocusedCellId(cellId)\n }\n }\n },\n [selectedCells, focusedCellId, updateSelection],\n )\n\n // Extend the current selection during drag\n const extendSelection = useCallback(\n (cellId: CellId, isRowSelectionColumn?: boolean) => {\n if (!selectionInProgress || !anchorCell) return\n\n const currentPosition = parseCellId(cellId)\n if (!currentPosition) return\n\n if (isRowSelectionColumn) {\n // Handle row selection column differently during drag\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n const position = parseCellId(cellId)\n\n if (!position) return newSelection\n\n // We're either selecting or unselecting based on the initial cell's state\n if (initialCellSelected.current) {\n // If we started on a selected cell, we're removing cells during drag\n newSelection.delete(cellId)\n } else {\n // If we started on an unselected cell, we're adding cells during drag\n newSelection.add(cellId)\n }\n\n return newSelection\n })\n } else {\n // For normal cells, use the range selection behavior\n const newSelection = selectCellRange(anchorCell, currentPosition, false)\n updateSelection(newSelection, currentPosition)\n }\n },\n [selectionInProgress, anchorCell, selectCellRange, updateSelection],\n )\n\n // End a selection operation\n const endSelection = useCallback(() => {\n setSelectionInProgress(false)\n }, [])\n\n // Select a cell (click or programmatically)\n const selectCell = useCallback(\n (cellId: CellId, additive: boolean, range: boolean) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n if (range && anchorCell) {\n // Shift+click for range selection - select cells between anchor and current\n const newSelection = selectCellRange(anchorCell, position, additive)\n updateSelection(newSelection, position)\n } else if (additive) {\n // Ctrl/Cmd+click for toggling selection\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n if (newSelection.has(cellId)) {\n newSelection.delete(cellId)\n } else {\n newSelection.add(cellId)\n }\n return newSelection\n })\n } else {\n // Normal click - select just this cell and set as new anchor\n updateSelection(new Set([cellId]), position)\n setAnchorCell(position)\n }\n },\n [anchorCell, selectCellRange, updateSelection],\n )\n\n // Focus a cell without changing selection\n const focusCell = useCallback((cellId: CellId | null) => {\n setFocusedCellId(cellId)\n }, [])\n\n // Clear all selections\n const clearSelection = useCallback(() => {\n setSelectedCells(new Set())\n setAnchorCell(null)\n setFocusedCellId(null)\n }, [])\n\n // Check if a cell is selected\n const isCellSelected = useCallback((cellId: CellId) => selectedCells.has(cellId), [selectedCells])\n\n // Check if a cell is focused\n const isCellFocused = useCallback((cellId: CellId) => cellId === focusedCellId, [focusedCellId])\n\n // Get position from cell ID - using shared utility\n const getCellPositionFromId = useCallback((cellId: CellId) => parseCellId(cellId), [])\n\n // Get border classes for a cell based on its selection state and neighbors\n const getCellBorderClasses = useCallback(\n (cellId: CellId): string[] => {\n if (!isCellSelected(cellId)) return []\n\n const position = parseCellId(cellId)\n if (!position) return []\n\n const rowIndex = stableGridMap.rowIdToIndex.get(position.rowId)\n const colIndex = stableGridMap.colIdToIndex.get(position.colId)\n\n if (rowIndex === undefined || colIndex === undefined) return []\n\n // Check if the cell's neighbors in all four directions are selected\n const top = stableGridMap.indexToRowId.get(rowIndex - 1)\n const right = stableGridMap.indexToColId.get(colIndex + 1)\n const bottom = stableGridMap.indexToRowId.get(rowIndex + 1)\n const left = stableGridMap.indexToColId.get(colIndex - 1)\n\n // Default to no borders\n let borderPos = BorderPosition.None\n\n // Top edge check: show border if we're at the top of the grid or the cell above is not selected\n if (!top || !selectedCells.has(getCellId(top, position.colId))) {\n borderPos |= BorderPosition.Top\n }\n\n // Right edge check: show border if we're at the right edge of the grid or the cell to the right is not selected\n if (!right || !selectedCells.has(getCellId(position.rowId, right))) {\n borderPos |= BorderPosition.Right\n }\n\n // Bottom edge check: show border if we're at the bottom of the grid or the cell below is not selected\n if (!bottom || !selectedCells.has(getCellId(bottom, position.colId))) {\n borderPos |= BorderPosition.Bottom\n }\n\n // Left edge check: show border if we're at the left edge of the grid or the cell to the left is not selected\n if (!left || !selectedCells.has(getCellId(position.rowId, left))) {\n borderPos |= BorderPosition.Left\n }\n\n return getBorderClasses(borderPos)\n },\n [selectedCells, stableGridMap, isCellSelected],\n )\n\n // Memoize context value to prevent unnecessary re-renders\n const value = useMemo(\n () => ({\n selectedCells,\n selectedRows,\n focusedCellId,\n selectionInProgress,\n anchorCell,\n gridMap: stableGridMap,\n setSelectedCells,\n setFocusedCellId,\n setAnchorCell,\n registerGrid,\n selectCell,\n startSelection,\n extendSelection,\n endSelection,\n focusCell,\n clearSelection,\n isCellSelected,\n isCellFocused,\n getCellPositionFromId,\n getCellBorderClasses,\n }),\n [\n selectedCells,\n selectedRows,\n focusedCellId,\n selectionInProgress,\n anchorCell,\n stableGridMap,\n setSelectedCells,\n setFocusedCellId,\n setAnchorCell,\n registerGrid,\n selectCell,\n startSelection,\n extendSelection,\n endSelection,\n focusCell,\n clearSelection,\n isCellSelected,\n isCellFocused,\n getCellPositionFromId,\n getCellBorderClasses,\n ],\n )\n\n return <SelectionCellsContext.Provider value={value}>{children}</SelectionCellsContext.Provider>\n}\n"],"names":["useState","useMemo","useRef","parseCellId","ROW_SELECTION_COLUMN_ID","useCallback","DRAG_HANDLE_COLUMN_ID","getCellId","BorderPosition","getBorderClasses","jsx","SelectionCellsContext"],"mappings":"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"}
|