@ynput/ayon-frontend-shared 0.2.32 → 0.2.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DetailsPanel.cjs.js +1 -1
- package/dist/DetailsPanel.es.js +32 -22
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/Feed.cjs.js +1 -1
- package/dist/Feed.es.js +19 -13
- package/dist/Feed.es.js.map +1 -1
- package/dist/Views.cjs.js.map +1 -1
- package/dist/Views.es.js.map +1 -1
- package/dist/_virtual/index.cjs5.js +1 -1
- package/dist/_virtual/index.cjs6.js +1 -1
- package/dist/_virtual/index.es5.js +2 -5
- package/dist/_virtual/index.es5.js.map +1 -1
- package/dist/_virtual/index.es6.js +5 -2
- package/dist/_virtual/index.es6.js.map +1 -1
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +230 -223
- package/dist/api.es.js.map +1 -1
- package/dist/components.cjs.js +1 -1
- package/dist/components.es.js +84 -69
- package/dist/components.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +19 -9
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/shared/src/api/base/client.cjs.js +1 -1
- package/dist/shared/src/api/base/client.cjs.js.map +1 -1
- package/dist/shared/src/api/base/client.es.js +9 -8
- package/dist/shared/src/api/base/client.es.js.map +1 -1
- package/dist/shared/src/api/generated/activityFeed.cjs.js +1 -1
- package/dist/shared/src/api/generated/activityFeed.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/activityFeed.es.js +3 -0
- package/dist/shared/src/api/generated/activityFeed.es.js.map +1 -1
- package/dist/shared/src/api/generated/entityLists.cjs.js +1 -1
- package/dist/shared/src/api/generated/entityLists.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/entityLists.es.js +4 -1
- package/dist/shared/src/api/generated/entityLists.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +10 -7
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +15 -12
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/projects.es.js.map +1 -1
- package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/views.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.es.js +4 -8
- package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getCategories.cjs.js +2 -0
- package/dist/shared/src/api/queries/activities/getCategories.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/activities/getCategories.es.js +53 -0
- package/dist/shared/src/api/queries/activities/getCategories.es.js.map +1 -0
- package/dist/shared/src/api/queries/activities/updateActivities.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/updateActivities.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateActivities.es.js +53 -51
- package/dist/shared/src/api/queries/activities/updateActivities.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +5 -3
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.es.js +32 -30
- package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +68 -68
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js +47 -49
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js +62 -60
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/share/share.cjs.js +1 -1
- package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/share/share.es.js +38 -12
- package/dist/shared/src/api/queries/share/share.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +2 -2
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +39 -33
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/guests.cjs.js +2 -0
- package/dist/shared/src/api/queries/users/guests.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/users/guests.es.js +60 -0
- package/dist/shared/src/api/queries/users/guests.es.js.map +1 -0
- package/dist/shared/src/api/queries/views/updateViews.cjs.js +1 -1
- package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/views/updateViews.es.js +14 -15
- package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.cjs.js +2 -0
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.cjs.js.map +1 -0
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.es.js +135 -0
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.es.js.map +1 -0
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.styled.cjs.js +39 -0
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.styled.es.js +44 -0
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.styled.es.js.map +1 -0
- package/dist/shared/src/components/AccessUser/AccessUser.cjs.js +2 -0
- package/dist/shared/src/components/AccessUser/AccessUser.cjs.js.map +1 -0
- package/dist/shared/src/components/AccessUser/AccessUser.es.js +43 -0
- package/dist/shared/src/components/AccessUser/AccessUser.es.js.map +1 -0
- package/dist/shared/src/components/AccessUser/AccessUser.styled.cjs.js +46 -0
- package/dist/shared/src/components/AccessUser/AccessUser.styled.cjs.js.map +1 -0
- package/dist/shared/src/components/AccessUser/AccessUser.styled.es.js +50 -0
- package/dist/shared/src/components/AccessUser/AccessUser.styled.es.js.map +1 -0
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -2
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.cjs.js +47 -43
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.es.js +47 -43
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +2 -2
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +12 -2
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js +6 -4
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +12 -2
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +4 -2
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +12 -2
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +40 -38
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +12 -2
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.cjs.js +9 -0
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.cjs.js.map +1 -0
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.es.js +25 -0
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.es.js.map +1 -0
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +14 -4
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.es.js +12 -2
- package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +25 -21
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.es.js +12 -2
- package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +4 -2
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +12 -2
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +13 -3
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +12 -2
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +4 -2
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +4 -2
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.cjs.js +12 -0
- package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.cjs.js.map +1 -0
- package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.es.js +46 -0
- package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.es.js.map +1 -0
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +12 -2
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +12 -2
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +6 -4
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.es.js +4 -2
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +12 -2
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.es.js +4 -2
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +12 -2
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +136 -117
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +12 -2
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +28 -18
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +13 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +5 -2
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +21 -17
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +12 -2
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +12 -2
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +12 -2
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +12 -2
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +4 -2
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.es.js +92 -95
- package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.styled.cjs.js +4 -4
- package/dist/shared/src/containers/Feed/Feed.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.styled.es.js +8 -7
- package/dist/shared/src/containers/Feed/Feed.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js +13 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js +89 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js +21 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js +62 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js +51 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryTag.es.js +76 -0
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryTag.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +164 -130
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js +34 -14
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js +45 -24
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js +3 -3
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js +58 -48
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityHeader/ActivityHeader.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityHeader/ActivityHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityHeader/ActivityHeader.es.js +28 -28
- package/dist/shared/src/containers/Feed/components/ActivityHeader/ActivityHeader.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityItem.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +24 -20
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js +12 -12
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.es.js +13 -13
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +339 -257
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js +69 -41
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js +77 -48
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +19 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/CommentMentionSelect/CommentMentionSelect.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentMentionSelect/CommentMentionSelect.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentMentionSelect/CommentMentionSelect.es.js +34 -31
- package/dist/shared/src/containers/Feed/components/CommentMentionSelect/CommentMentionSelect.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/ExistingReactions.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/ExistingReactions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/ExistingReactions.es.js +15 -6
- package/dist/shared/src/containers/Feed/components/ReactionContainer/ExistingReactions.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reaction.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reaction.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reaction.es.js +24 -14
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reaction.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/ReactionPanelOpener.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/ReactionPanelOpener.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/ReactionPanelOpener.es.js +60 -38
- package/dist/shared/src/containers/Feed/components/ReactionContainer/ReactionPanelOpener.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.es.js +26 -8
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js +65 -20
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.styled.es.js +71 -26
- package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +5 -2
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +39 -33
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +57 -53
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +4 -2
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +51 -41
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +12 -10
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +50 -40
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +7 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +24 -21
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +23 -13
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +7 -7
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +5 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +14 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +12 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +12 -2
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +43 -33
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +4 -2
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js +6 -4
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +4 -2
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +6 -4
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +73 -66
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +42 -26
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +6 -4
- package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.es.js +4 -2
- package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -2
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.es.js +4 -2
- package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -4
- package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.es.js +4 -2
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/shared/src/util/colorUtils.cjs.js +2 -0
- package/dist/shared/src/util/colorUtils.cjs.js.map +1 -0
- package/dist/shared/src/util/colorUtils.es.js +40 -0
- package/dist/shared/src/util/colorUtils.es.js.map +1 -0
- package/dist/types/api/generated/activityFeed.d.ts +9 -0
- package/dist/types/api/generated/entityLists.d.ts +2 -0
- package/dist/types/api/generated/graphql.d.ts +11 -3
- package/dist/types/api/generated/projects.d.ts +4 -4
- package/dist/types/api/generated/views.d.ts +9 -3
- package/dist/types/api/index.d.ts +1 -0
- package/dist/types/api/queries/activities/getCategories.d.ts +142 -0
- package/dist/types/api/queries/activities/getMentions.d.ts +1 -0
- package/dist/types/api/queries/activities/index.d.ts +1 -0
- package/dist/types/api/queries/activities/updateReaction.d.ts +1 -0
- package/dist/types/api/queries/users/getUsers.d.ts +132 -0
- package/dist/types/api/queries/users/guests.d.ts +453 -0
- package/dist/types/api/queries/users/index.d.ts +1 -0
- package/dist/types/api/queries/watchers/getWatchers.d.ts +1 -0
- package/dist/types/components/AccessSearchInput/AccessSearchInput.d.ts +16 -0
- package/dist/types/components/AccessSearchInput/AccessSearchInput.styled.d.ts +2 -0
- package/dist/types/components/AccessSearchInput/index.d.ts +2 -0
- package/dist/types/components/AccessUser/AccessUser.d.ts +24 -0
- package/dist/types/components/AccessUser/AccessUser.styled.d.ts +1 -0
- package/dist/types/components/AccessUser/index.d.ts +1 -0
- package/dist/types/components/Powerpack/RequiredPowerpackVersion.d.ts +5 -0
- package/dist/types/components/Powerpack/index.d.ts +1 -0
- package/dist/types/components/ShareOptionIcon/ShareOptionIcon.d.ts +16 -0
- package/dist/types/components/ShareOptionIcon/index.d.ts +1 -0
- package/dist/types/components/index.d.ts +4 -0
- package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +3 -1
- package/dist/types/containers/DetailsPanel/FeedContextWrapper.d.ts +1 -1
- package/dist/types/containers/DetailsPanel/FeedWrapper.d.ts +2 -1
- package/dist/types/containers/Feed/Feed.d.ts +3 -2
- package/dist/types/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.d.ts +14 -0
- package/dist/types/containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.d.ts +10 -0
- package/dist/types/containers/Feed/components/ActivityCategorySelect/CategoryTag.d.ts +10 -0
- package/dist/types/containers/Feed/components/ActivityCategorySelect/index.d.ts +3 -0
- package/dist/types/containers/Feed/components/ActivityComment/ActivityComment.d.ts +1 -1
- package/dist/types/containers/Feed/components/ActivityComment/ActivityComment.styled.d.ts +2 -1
- package/dist/types/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.d.ts +3 -1
- package/dist/types/containers/Feed/components/ActivityItem.d.ts +1 -1
- package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.d.ts +2 -0
- package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.styled.d.ts +2 -0
- package/dist/types/containers/Feed/components/CommentInput/CommentInput.d.ts +1 -0
- package/dist/types/containers/Feed/components/CommentInput/CommentInput.styled.d.ts +7 -1
- package/dist/types/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.d.ts +11 -0
- package/dist/types/containers/Feed/components/CommentMentionSelect/CommentMentionSelect.d.ts +2 -1
- package/dist/types/containers/Feed/components/ReactionContainer/ExistingReactions.d.ts +4 -1
- package/dist/types/containers/Feed/components/ReactionContainer/Reaction.d.ts +4 -1
- package/dist/types/containers/Feed/components/ReactionContainer/ReactionPanelOpener.d.ts +4 -1
- package/dist/types/containers/Feed/components/ReactionContainer/Reactions.d.ts +5 -1
- package/dist/types/containers/Feed/components/ReactionContainer/Reactions.styled.d.ts +8 -3
- package/dist/types/containers/Feed/context/FeedContext.d.ts +3 -1
- package/dist/types/containers/Feed/hooks/useCommentMutations.d.ts +3 -2
- package/dist/types/containers/Feed/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/widgets/BooleanWidget.d.ts +1 -0
- package/dist/types/containers/Views/index.d.ts +5 -2
- package/dist/types/context/DetailsPanelContext.d.ts +9 -0
- package/dist/types/context/PowerpackContext.d.ts +1 -1
- package/dist/types/util/colorUtils.d.ts +42 -0
- package/dist/types/util/index.d.ts +1 -0
- package/dist/util.cjs.js +1 -1
- package/dist/util.es.js +30 -24
- package/dist/util.es.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleTable.cjs.js","sources":["../../../../../src/containers/SimpleTable/SimpleTable.tsx"],"sourcesContent":["import { FC, useMemo, useRef, MouseEvent as ReactMouseEvent, useCallback, useEffect } from 'react'\nimport * as Styled from './SimpleTable.styled'\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n ColumnDef,\n flexRender,\n Row,\n FilterFn,\n SortingFn,\n sortingFns,\n RowData,\n Table,\n OnChangeFn,\n RowSelectionState,\n functionalUpdate,\n} from '@tanstack/react-table'\nimport { useVirtualizer } from '@tanstack/react-virtual'\n\nimport clsx from 'clsx'\nimport useRowKeydown, { RowKeyboardEvent } from './hooks/useRowKeydown'\n\nimport { RankingInfo, rankItem, compareItems } from '@tanstack/match-sorter-utils'\nimport { useSimpleTableContext } from './context/SimpleTableContext'\nimport { SimpleTableCellTemplate, SimpleTableCellTemplateProps } from './SimpleTableRowTemplate'\nimport { EmptyPlaceholder } from '@shared/components'\nimport { RowPinningState } from '@tanstack/react-table'\n\ndeclare module '@tanstack/react-table' {\n //add fuzzy filter to the filterFns\n interface FilterFns {\n fuzzy: FilterFn<unknown>\n }\n interface FilterMeta {\n itemRank: RankingInfo\n }\n\n interface TableMeta<TData extends RowData> {\n isExpandable?: boolean\n isLoading?: boolean\n children?: (\n props: SimpleTableCellTemplateProps,\n row: Row<TData>,\n table: Table<SimpleTableRow>,\n ) => JSX.Element\n [key: string]: any\n }\n}\n\n// Define a custom fuzzy filter function that will apply ranking info to rows (using match-sorter utils)\nconst fuzzyFilter: FilterFn<any> = (row, columnId, searchValue, addMeta) => {\n const cellValue = row.getValue(columnId)\n // convert non-string cell values to string\n let searchString =\n typeof cellValue === 'string'\n ? cellValue\n : Array.isArray(cellValue)\n ? cellValue.join(' ')\n : JSON.stringify(cellValue)\n\n // combine label and parents into a single string for searching if columnId is 'label'\n if (columnId === 'label') {\n searchString = [row.original.label, row.original.name, ...(row.original.parents || [])].join(\n ' ',\n )\n }\n\n // Rank the item\n const itemRank = rankItem(searchString, searchValue)\n\n // Store the itemRank info\n addMeta({\n itemRank,\n })\n\n // Return if the item should be filtered in/out\n return itemRank.passed\n}\n\n// Define a custom fuzzy sort function that will sort by rank if the row has ranking information\nconst fuzzySort: SortingFn<any> = (rowA, rowB, columnId) => {\n let dir = 0\n\n // Only sort by rank if the column has ranking information\n if (rowA.columnFiltersMeta[columnId]) {\n dir = compareItems(\n rowA.columnFiltersMeta[columnId]?.itemRank!,\n rowB.columnFiltersMeta[columnId]?.itemRank!,\n )\n }\n\n // Provide an alphanumeric fallback for when the item ranks are equal\n return dir === 0 ? sortingFns.alphanumeric(rowA, rowB, columnId) : dir\n}\n\nexport type RowItemData = {\n id: string\n name?: string | null\n label?: string | null\n subType?: string | null\n [key: string]: any\n}\n\nexport type SimpleTableRow = {\n id: string\n parentId?: string\n name: string\n label: string\n parents?: string[]\n icon?: string | null\n iconColor?: string\n iconFilled?: boolean\n img?: string | null\n startContent?: JSX.Element\n endContent?: JSX.Element\n subRows: SimpleTableRow[]\n data: RowItemData\n isDisabled?: boolean\n disabledMessage?: string\n inactive?: boolean\n}\n\nexport interface SimpleTableProps {\n data: SimpleTableRow[]\n isLoading: boolean\n error?: string\n isExpandable?: boolean // show expand/collapse icons\n isMultiSelect?: boolean // enable multi-select with shift+click and ctrl/cmd+click\n enableClickToDeselect?: boolean // allow deselecting a single selected row by clicking it again & clicking outside clears selection\n enableNonFolderIndent?: boolean // indent non-folder rows to align with folder rows\n forceUpdateTable?: any\n globalFilter?: string\n meta?: Record<string, any>\n rowHeight?: number // height of each row, used for virtual scrolling\n onScrollBottom?: () => void // callback fired when scrolled to the bottom of the table\n children?: (\n props: SimpleTableCellTemplateProps,\n row: Row<SimpleTableRow>,\n table: Table<SimpleTableRow>,\n ) => JSX.Element\n pt?: {\n cell?: SimpleTableCellTemplateProps\n row?: React.HTMLAttributes<HTMLTableRowElement>\n }\n}\n\n// Helper function to get row range for shift-selection\n// Operates on the provided list of rows (e.g., filtered and sorted rows)\nfunction getRowRange<TData extends RowData>(\n rows: Array<Row<TData>>,\n idA: string,\n idB: string,\n): Array<Row<TData>> {\n const range: Array<Row<TData>> = []\n // If idA and idB are the same, or one is not found, handle appropriately\n if (idA === idB) {\n const singleRow = rows.find((row) => row.id === idA)\n return singleRow ? [singleRow] : []\n }\n\n let indexA = -1\n let indexB = -1\n\n for (let i = 0; i < rows.length; i++) {\n if (rows[i].id === idA) indexA = i\n if (rows[i].id === idB) indexB = i\n if (indexA !== -1 && indexB !== -1) break\n }\n\n if (indexA === -1 || indexB === -1) return [] // One or both IDs not found\n\n const start = Math.min(indexA, indexB)\n const end = Math.max(indexA, indexB)\n\n for (let i = start; i <= end; i++) {\n range.push(rows[i])\n }\n return range\n}\n\nconst SimpleTable: FC<SimpleTableProps> = ({\n data = [],\n isLoading,\n error,\n isExpandable,\n isMultiSelect = true,\n enableClickToDeselect = true,\n enableNonFolderIndent = true,\n forceUpdateTable,\n globalFilter,\n meta,\n rowHeight,\n onScrollBottom,\n children,\n pt,\n}) => {\n const {\n rowSelection,\n expanded,\n setExpanded,\n onExpandedChange,\n onRowSelectionChange,\n rowPinning,\n onRowPinningChange,\n } = useSimpleTableContext()\n const lastSelectedIdRef = useRef<string | null>(null)\n const tableRef = useRef<Table<SimpleTableRow> | null>(null)\n\n // stable data reference\n const tableData = useMemo(() => {\n if (!isLoading) return data\n\n // show loading placeholders\n return Array.from({ length: 10 }, (_, i) => ({\n id: `placeholder-${i}`,\n name: `placeholder-${i}`,\n label: `placeholder-${i}`,\n icon: null,\n img: null,\n subRows: [],\n data: {\n id: `placeholder-${i}`,\n },\n }))\n }, [isLoading, data, forceUpdateTable])\n\n // Define the core selection logic using useCallback for stability\n const handleSelectionLogic = useCallback(\n (\n tableInstance: Table<SimpleTableRow>,\n rowId: string,\n isShift: boolean,\n isCtrlOrMeta: boolean,\n ) => {\n const currentId = rowId\n const allProcessableRows = tableInstance.getFilteredRowModel().flatRows\n const currentRow = allProcessableRows.find((r) => r.id === currentId)\n\n if (!currentRow) return\n\n // Prevent selection of disabled rows\n if (currentRow.original.isDisabled) return\n\n // If click-to-deselect is enabled and only one row is selected and it's the current row\n if (\n enableClickToDeselect &&\n !isShift &&\n !isCtrlOrMeta &&\n Object.keys(tableInstance.getState().rowSelection).length === 1 &&\n tableInstance.getState().rowSelection[currentId]\n ) {\n tableInstance.setRowSelection({})\n lastSelectedIdRef.current = null\n return\n }\n\n if (isMultiSelect && isShift && lastSelectedIdRef.current) {\n const lastId = lastSelectedIdRef.current\n const anchorRow = allProcessableRows.find((r) => r.id === lastId)\n\n if (!anchorRow) {\n tableInstance.setRowSelection({ [currentId]: true })\n } else {\n const rowsToToggle = getRowRange(allProcessableRows, currentId, lastId)\n const newSelection: RowSelectionState = {}\n rowsToToggle.forEach((r) => (newSelection[r.id] = true))\n tableInstance.setRowSelection(newSelection)\n }\n } else if (isMultiSelect && isCtrlOrMeta) {\n currentRow.toggleSelected()\n } else {\n tableInstance.setRowSelection({ [currentId]: true })\n }\n lastSelectedIdRef.current = currentId\n },\n [isMultiSelect, enableClickToDeselect],\n )\n\n // Callback for useRowKeydown's handleRowSelect prop\n // Uses tableRef to access the table instance, avoiding direct dependency on 'table' variable at definition time\n const handleRowSelectForKeydown = useCallback(\n (\n event: RowKeyboardEvent, // Use the specific keyboard event type from the hook\n selectedRow: Row<SimpleTableRow>,\n ) => {\n if (!tableRef.current) {\n console.warn('tableRef not yet available in handleRowSelectForKeydown')\n return\n }\n\n // Extract modifier keys from the event\n const isShiftKey = event.shiftKey\n const isCtrlKey = event.ctrlKey || event.metaKey\n\n handleSelectionLogic(\n tableRef.current, // Pass the main table instance\n selectedRow.id,\n isShiftKey,\n isCtrlKey,\n )\n },\n [handleSelectionLogic], // Depends only on handleSelectionLogic\n )\n\n const { handleRowKeyDown } = useRowKeydown<SimpleTableRow>({\n handleRowSelect: handleRowSelectForKeydown,\n })\n\n const columns = useMemo<ColumnDef<SimpleTableRow>[]>(\n () => [\n {\n accessorKey: 'label',\n header: undefined,\n filterFn: 'fuzzy',\n sortingFn: fuzzySort, //sort by fuzzy rank (falls back to alphanumeric)\n cell: ({ row, getValue, table: cellTableInstance }) => {\n const cellMeta = cellTableInstance.options.meta\n\n const handleCellClick = (event: ReactMouseEvent<HTMLElement, MouseEvent>) => {\n // Prevent row selection if clicking on an interactive element within the cell\n if (\n event.target instanceof HTMLInputElement ||\n event.target instanceof HTMLButtonElement ||\n event.target instanceof HTMLTextAreaElement ||\n event.target instanceof HTMLSelectElement ||\n event.target instanceof HTMLAnchorElement ||\n (event.target as HTMLElement).closest('button, a, input, textarea, select')\n ) {\n return\n }\n handleSelectionLogic(\n cellTableInstance, // Pass the cell's table instance\n row.id,\n event.shiftKey,\n event.ctrlKey || event.metaKey,\n )\n }\n\n const props: SimpleTableCellTemplateProps & {\n onClick?: (event: ReactMouseEvent<HTMLElement, MouseEvent>) => void\n } = {\n className: clsx({\n selected: row.getIsSelected(),\n loading: cellMeta?.isLoading,\n disabled: row.original.isDisabled, // you can't select disabled rows\n inactive: row.original.inactive, // false: archived items but still selectable\n }),\n onKeyDown: (e) => {\n if (e.target instanceof HTMLInputElement) return\n // Corrected typo: handleRowKeydown -> handleRowKeyDown\n handleRowKeyDown(e, row)\n },\n onClick: handleCellClick, // Added onClick handler\n depth: row.depth,\n tabIndex: 0,\n value: getValue<string>(),\n parents: row.original.parents,\n icon: row.original.icon || undefined,\n iconColor: row.original.iconColor,\n iconFilled: row.original.iconFilled,\n isRowExpandable: row.getCanExpand(),\n enableNonFolderIndent,\n isRowExpanded: row.getIsExpanded(),\n isTableExpandable: cellMeta?.isExpandable,\n onExpandClick: row.getToggleExpandedHandler(),\n startContent: row.original.startContent,\n endContent: row.original.endContent,\n isDisabled: row.original.isDisabled,\n disabledMessage: row.original.disabledMessage,\n }\n\n // Use children function if provided, otherwise default to SimpleTableCellTemplate\n return cellMeta?.children ? (\n cellMeta.children(props, row, cellTableInstance)\n ) : (\n <SimpleTableCellTemplate {...props} {...pt?.cell} />\n )\n },\n },\n ],\n [\n forceUpdateTable,\n handleSelectionLogic,\n handleRowKeyDown,\n enableClickToDeselect,\n enableNonFolderIndent,\n ], // include enableClickToDeselect for completeness\n )\n\n const handleRowSelectionChangeCallback: OnChangeFn<RowSelectionState> = useCallback(\n (updater) => {\n onRowSelectionChange(functionalUpdate(updater, rowSelection))\n },\n [onRowSelectionChange, rowSelection], // Depends only on the stable setState function from context\n )\n\n const handleRowPinningChangeCallback: OnChangeFn<RowPinningState> = useCallback(\n (updater) => {\n rowPinning && onRowPinningChange?.(functionalUpdate(updater, rowPinning))\n },\n [onRowPinningChange], // Depends only on the stable setState function from context\n )\n\n const handleExpandedChange = useCallback(\n (updater: any) => {\n setExpanded?.((old) => {\n const newExpanded = updater instanceof Function ? updater(old) : updater\n onExpandedChange?.(newExpanded)\n return newExpanded\n })\n },\n [setExpanded, onExpandedChange],\n )\n\n const table = useReactTable({\n data: tableData,\n columns,\n state: {\n expanded,\n rowSelection,\n globalFilter,\n rowPinning,\n },\n onRowSelectionChange: handleRowSelectionChangeCallback,\n onRowPinningChange: handleRowPinningChangeCallback,\n filterFns: {\n fuzzy: fuzzyFilter,\n },\n globalFilterFn: 'fuzzy',\n enableRowSelection: true, //enable row selection for all rows\n enableRowPinning: !!onRowPinningChange,\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n onExpandedChange: handleExpandedChange,\n getSubRows: (row) => row.subRows,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // debugTable: true,\n meta: {\n isExpandable: !!isExpandable,\n isLoading: isLoading,\n children: children,\n ...meta,\n },\n })\n\n // Update tableRef whenever the table instance changes.\n // This ensures handleRowSelectForKeydown uses the current table instance.\n useEffect(() => {\n tableRef.current = table\n }, [table])\n\n const { rows } = table.getRowModel()\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n\n const rowVirtualizer = useVirtualizer({\n count: rows.length,\n estimateSize: () => rowHeight || 34, //estimate row height for accurate scrollbar dragging\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement: rowHeight\n ? () => rowHeight\n : typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n // Memoize the ref callback to prevent infinite re-renders\n const measureElementRef = useCallback(\n (node: HTMLElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n // Handle scroll to bottom detection\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLDivElement>) => {\n if (!onScrollBottom) return\n\n const target = event.currentTarget\n const { scrollTop, scrollHeight, clientHeight } = target\n\n // Check if we're near the bottom (within 100px)\n const isNearBottom = scrollHeight - scrollTop - clientHeight < 100\n\n if (isNearBottom && !isLoading) {\n onScrollBottom()\n }\n },\n [onScrollBottom, isLoading],\n )\n\n const handleContainerClick = (e: React.MouseEvent<HTMLDivElement>) => {\n // if the click is outside of any row, clear selection\n if (enableClickToDeselect && !(e.target as HTMLElement).closest('tr')) {\n table.setRowSelection({})\n lastSelectedIdRef.current = null\n }\n }\n\n return (\n <Styled.TableContainer\n ref={tableContainerRef}\n className={clsx({ isLoading })}\n onScroll={handleScroll}\n onClick={handleContainerClick}\n >\n {!error && (\n <table>\n <tbody\n style={{\n height: `${rowVirtualizer?.getTotalSize()}px`, //tells scrollbar how big the table is\n }}\n >\n {rowVirtualizer?.getVirtualItems().map((virtualRow) => {\n const row = rows[virtualRow.index] as Row<SimpleTableRow>\n return (\n <tr\n data-index={virtualRow.index} //needed for dynamic row height measurement\n ref={measureElementRef} //measure dynamic row height\n key={row.id}\n id={row.id}\n {...pt?.row}\n style={{\n transform: `translateY(${virtualRow.start}px)`, //this should always be a `style` as it changes on scroll\n ...pt?.row?.style, // custom styles to be passed\n }}\n >\n {row.getVisibleCells().map((cell) => {\n return (\n <td key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </td>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n )}\n {!!error && <EmptyPlaceholder error={error} />}\n </Styled.TableContainer>\n )\n}\n\nexport default SimpleTable\n"],"names":["fuzzyFilter","row","columnId","searchValue","addMeta","cellValue","searchString","itemRank","rankItem","fuzzySort","rowA","rowB","dir","compareItems","_a","_b","sortingFns","getRowRange","rows","idA","idB","range","singleRow","indexA","indexB","i","start","end","SimpleTable","data","isLoading","error","isExpandable","isMultiSelect","enableClickToDeselect","enableNonFolderIndent","forceUpdateTable","globalFilter","meta","rowHeight","onScrollBottom","children","pt","rowSelection","expanded","setExpanded","onExpandedChange","onRowSelectionChange","rowPinning","onRowPinningChange","useSimpleTableContext","lastSelectedIdRef","useRef","tableRef","tableData","useMemo","_","handleSelectionLogic","useCallback","tableInstance","rowId","isShift","isCtrlOrMeta","currentId","allProcessableRows","currentRow","r","lastId","rowsToToggle","newSelection","handleRowSelectForKeydown","event","selectedRow","isShiftKey","isCtrlKey","handleRowKeyDown","useRowKeydown","columns","getValue","cellTableInstance","cellMeta","handleCellClick","props","clsx","e","jsx","SimpleTableCellTemplate","handleRowSelectionChangeCallback","updater","functionalUpdate","handleRowPinningChangeCallback","handleExpandedChange","old","newExpanded","table","useReactTable","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","useEffect","tableContainerRef","rowVirtualizer","useVirtualizer","element","measureElementRef","node","handleScroll","target","scrollTop","scrollHeight","clientHeight","handleContainerClick","jsxs","Styled.TableContainer","virtualRow","cell","flexRender","EmptyPlaceholder"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SimpleTable.cjs.js","sources":["../../../../../src/containers/SimpleTable/SimpleTable.tsx"],"sourcesContent":["import { FC, useMemo, useRef, MouseEvent as ReactMouseEvent, useCallback, useEffect } from 'react'\nimport * as Styled from './SimpleTable.styled'\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n ColumnDef,\n flexRender,\n Row,\n FilterFn,\n SortingFn,\n sortingFns,\n RowData,\n Table,\n OnChangeFn,\n RowSelectionState,\n functionalUpdate,\n} from '@tanstack/react-table'\nimport { useVirtualizer } from '@tanstack/react-virtual'\n\nimport clsx from 'clsx'\nimport useRowKeydown, { RowKeyboardEvent } from './hooks/useRowKeydown'\n\nimport { RankingInfo, rankItem, compareItems } from '@tanstack/match-sorter-utils'\nimport { useSimpleTableContext } from './context/SimpleTableContext'\nimport { SimpleTableCellTemplate, SimpleTableCellTemplateProps } from './SimpleTableRowTemplate'\nimport { EmptyPlaceholder } from '@shared/components'\nimport { RowPinningState } from '@tanstack/react-table'\n\ndeclare module '@tanstack/react-table' {\n //add fuzzy filter to the filterFns\n interface FilterFns {\n fuzzy: FilterFn<unknown>\n }\n interface FilterMeta {\n itemRank: RankingInfo\n }\n\n interface TableMeta<TData extends RowData> {\n isExpandable?: boolean\n isLoading?: boolean\n children?: (\n props: SimpleTableCellTemplateProps,\n row: Row<TData>,\n table: Table<SimpleTableRow>,\n ) => JSX.Element\n [key: string]: any\n }\n}\n\n// Define a custom fuzzy filter function that will apply ranking info to rows (using match-sorter utils)\nconst fuzzyFilter: FilterFn<any> = (row, columnId, searchValue, addMeta) => {\n const cellValue = row.getValue(columnId)\n // convert non-string cell values to string\n let searchString =\n typeof cellValue === 'string'\n ? cellValue\n : Array.isArray(cellValue)\n ? cellValue.join(' ')\n : JSON.stringify(cellValue)\n\n // combine label and parents into a single string for searching if columnId is 'label'\n if (columnId === 'label') {\n searchString = [row.original.label, row.original.name, ...(row.original.parents || [])].join(\n ' ',\n )\n }\n\n // Rank the item\n const itemRank = rankItem(searchString, searchValue)\n\n // Store the itemRank info\n addMeta({\n itemRank,\n })\n\n // Return if the item should be filtered in/out\n return itemRank.passed\n}\n\n// Define a custom fuzzy sort function that will sort by rank if the row has ranking information\nconst fuzzySort: SortingFn<any> = (rowA, rowB, columnId) => {\n let dir = 0\n\n // Only sort by rank if the column has ranking information\n if (rowA.columnFiltersMeta[columnId]) {\n dir = compareItems(\n rowA.columnFiltersMeta[columnId]?.itemRank!,\n rowB.columnFiltersMeta[columnId]?.itemRank!,\n )\n }\n\n // Provide an alphanumeric fallback for when the item ranks are equal\n return dir === 0 ? sortingFns.alphanumeric(rowA, rowB, columnId) : dir\n}\n\nexport type RowItemData = {\n id: string\n name?: string | null\n label?: string | null\n subType?: string | null\n [key: string]: any\n}\n\nexport type SimpleTableRow = {\n id: string\n parentId?: string\n name: string\n label: string\n parents?: string[]\n icon?: string | null\n iconColor?: string\n iconFilled?: boolean\n img?: string | null\n startContent?: JSX.Element\n endContent?: JSX.Element\n subRows: SimpleTableRow[]\n data: RowItemData\n isDisabled?: boolean\n disabledMessage?: string\n inactive?: boolean\n}\n\nexport interface SimpleTableProps {\n data: SimpleTableRow[]\n isLoading: boolean\n error?: string\n isExpandable?: boolean // show expand/collapse icons\n isMultiSelect?: boolean // enable multi-select with shift+click and ctrl/cmd+click\n enableClickToDeselect?: boolean // allow deselecting a single selected row by clicking it again & clicking outside clears selection\n enableNonFolderIndent?: boolean // indent non-folder rows to align with folder rows\n forceUpdateTable?: any\n globalFilter?: string\n meta?: Record<string, any>\n rowHeight?: number // height of each row, used for virtual scrolling\n onScrollBottom?: () => void // callback fired when scrolled to the bottom of the table\n children?: (\n props: SimpleTableCellTemplateProps,\n row: Row<SimpleTableRow>,\n table: Table<SimpleTableRow>,\n ) => JSX.Element\n pt?: {\n cell?: SimpleTableCellTemplateProps\n row?: React.HTMLAttributes<HTMLTableRowElement>\n }\n}\n\n// Helper function to get row range for shift-selection\n// Operates on the provided list of rows (e.g., filtered and sorted rows)\nfunction getRowRange<TData extends RowData>(\n rows: Array<Row<TData>>,\n idA: string,\n idB: string,\n): Array<Row<TData>> {\n const range: Array<Row<TData>> = []\n // If idA and idB are the same, or one is not found, handle appropriately\n if (idA === idB) {\n const singleRow = rows.find((row) => row.id === idA)\n return singleRow ? [singleRow] : []\n }\n\n let indexA = -1\n let indexB = -1\n\n for (let i = 0; i < rows.length; i++) {\n if (rows[i].id === idA) indexA = i\n if (rows[i].id === idB) indexB = i\n if (indexA !== -1 && indexB !== -1) break\n }\n\n if (indexA === -1 || indexB === -1) return [] // One or both IDs not found\n\n const start = Math.min(indexA, indexB)\n const end = Math.max(indexA, indexB)\n\n for (let i = start; i <= end; i++) {\n range.push(rows[i])\n }\n return range\n}\n\nconst SimpleTable: FC<SimpleTableProps> = ({\n data = [],\n isLoading,\n error,\n isExpandable,\n isMultiSelect = true,\n enableClickToDeselect = true,\n enableNonFolderIndent = true,\n forceUpdateTable,\n globalFilter,\n meta,\n rowHeight,\n onScrollBottom,\n children,\n pt,\n}) => {\n const {\n rowSelection,\n expanded,\n setExpanded,\n onExpandedChange,\n onRowSelectionChange,\n rowPinning,\n onRowPinningChange,\n } = useSimpleTableContext()\n const lastSelectedIdRef = useRef<string | null>(null)\n const tableRef = useRef<Table<SimpleTableRow> | null>(null)\n\n // stable data reference\n const tableData = useMemo(() => {\n if (!isLoading) return data\n\n // show loading placeholders\n return Array.from({ length: 10 }, (_, i) => ({\n id: `placeholder-${i}`,\n name: `placeholder-${i}`,\n label: `placeholder-${i}`,\n icon: null,\n img: null,\n subRows: [],\n data: {\n id: `placeholder-${i}`,\n },\n }))\n }, [isLoading, data, forceUpdateTable])\n\n // Define the core selection logic using useCallback for stability\n const handleSelectionLogic = useCallback(\n (\n tableInstance: Table<SimpleTableRow>,\n rowId: string,\n isShift: boolean,\n isCtrlOrMeta: boolean,\n ) => {\n const currentId = rowId\n const allProcessableRows = tableInstance.getFilteredRowModel().flatRows\n const currentRow = allProcessableRows.find((r) => r.id === currentId)\n\n if (!currentRow) return\n\n // Prevent selection of disabled rows\n if (currentRow.original.isDisabled) return\n\n // If click-to-deselect is enabled and only one row is selected and it's the current row\n if (\n enableClickToDeselect &&\n !isShift &&\n !isCtrlOrMeta &&\n Object.keys(tableInstance.getState().rowSelection).length === 1 &&\n tableInstance.getState().rowSelection[currentId]\n ) {\n tableInstance.setRowSelection({})\n lastSelectedIdRef.current = null\n return\n }\n\n if (isMultiSelect && isShift && lastSelectedIdRef.current) {\n const lastId = lastSelectedIdRef.current\n const anchorRow = allProcessableRows.find((r) => r.id === lastId)\n\n if (!anchorRow) {\n tableInstance.setRowSelection({ [currentId]: true })\n } else {\n const rowsToToggle = getRowRange(allProcessableRows, currentId, lastId)\n const newSelection: RowSelectionState = {}\n rowsToToggle.forEach((r) => (newSelection[r.id] = true))\n tableInstance.setRowSelection(newSelection)\n }\n } else if (isMultiSelect && isCtrlOrMeta) {\n currentRow.toggleSelected()\n } else {\n tableInstance.setRowSelection({ [currentId]: true })\n }\n lastSelectedIdRef.current = currentId\n },\n [isMultiSelect, enableClickToDeselect],\n )\n\n // Callback for useRowKeydown's handleRowSelect prop\n // Uses tableRef to access the table instance, avoiding direct dependency on 'table' variable at definition time\n const handleRowSelectForKeydown = useCallback(\n (\n event: RowKeyboardEvent, // Use the specific keyboard event type from the hook\n selectedRow: Row<SimpleTableRow>,\n ) => {\n if (!tableRef.current) {\n console.warn('tableRef not yet available in handleRowSelectForKeydown')\n return\n }\n\n // Extract modifier keys from the event\n const isShiftKey = event.shiftKey\n const isCtrlKey = event.ctrlKey || event.metaKey\n\n handleSelectionLogic(\n tableRef.current, // Pass the main table instance\n selectedRow.id,\n isShiftKey,\n isCtrlKey,\n )\n },\n [handleSelectionLogic], // Depends only on handleSelectionLogic\n )\n\n const { handleRowKeyDown } = useRowKeydown<SimpleTableRow>({\n handleRowSelect: handleRowSelectForKeydown,\n })\n\n const columns = useMemo<ColumnDef<SimpleTableRow>[]>(\n () => [\n {\n accessorKey: 'label',\n header: undefined,\n filterFn: 'fuzzy',\n sortingFn: fuzzySort, //sort by fuzzy rank (falls back to alphanumeric)\n cell: ({ row, getValue, table: cellTableInstance }) => {\n const cellMeta = cellTableInstance.options.meta\n\n const handleCellClick = (event: ReactMouseEvent<HTMLElement, MouseEvent>) => {\n // Prevent row selection if clicking on an interactive element within the cell\n if (\n event.target instanceof HTMLInputElement ||\n event.target instanceof HTMLButtonElement ||\n event.target instanceof HTMLTextAreaElement ||\n event.target instanceof HTMLSelectElement ||\n event.target instanceof HTMLAnchorElement ||\n (event.target as HTMLElement).closest('button, a, input, textarea, select')\n ) {\n return\n }\n handleSelectionLogic(\n cellTableInstance, // Pass the cell's table instance\n row.id,\n event.shiftKey,\n event.ctrlKey || event.metaKey,\n )\n }\n\n const props: SimpleTableCellTemplateProps & {\n onClick?: (event: ReactMouseEvent<HTMLElement, MouseEvent>) => void\n } = {\n className: clsx({\n selected: row.getIsSelected(),\n loading: cellMeta?.isLoading,\n disabled: row.original.isDisabled, // you can't select disabled rows\n inactive: row.original.inactive, // false: archived items but still selectable\n }),\n onKeyDown: (e) => {\n if (e.target instanceof HTMLInputElement) return\n // Corrected typo: handleRowKeydown -> handleRowKeyDown\n handleRowKeyDown(e, row)\n },\n onClick: handleCellClick, // Added onClick handler\n depth: row.depth,\n tabIndex: 0,\n value: getValue<string>(),\n parents: row.original.parents,\n icon: row.original.icon || undefined,\n iconColor: row.original.iconColor,\n iconFilled: row.original.iconFilled,\n isRowExpandable: row.getCanExpand(),\n enableNonFolderIndent,\n isRowExpanded: row.getIsExpanded(),\n isTableExpandable: cellMeta?.isExpandable,\n onExpandClick: row.getToggleExpandedHandler(),\n startContent: row.original.startContent,\n endContent: row.original.endContent,\n isDisabled: row.original.isDisabled,\n disabledMessage: row.original.disabledMessage,\n }\n\n // Use children function if provided, otherwise default to SimpleTableCellTemplate\n return cellMeta?.children ? (\n cellMeta.children(props, row, cellTableInstance)\n ) : (\n <SimpleTableCellTemplate {...props} {...pt?.cell} />\n )\n },\n },\n ],\n [\n forceUpdateTable,\n handleSelectionLogic,\n handleRowKeyDown,\n enableClickToDeselect,\n enableNonFolderIndent,\n ], // include enableClickToDeselect for completeness\n )\n\n const handleRowSelectionChangeCallback: OnChangeFn<RowSelectionState> = useCallback(\n (updater) => {\n onRowSelectionChange(functionalUpdate(updater, rowSelection))\n },\n [onRowSelectionChange, rowSelection], // Depends only on the stable setState function from context\n )\n\n const handleRowPinningChangeCallback: OnChangeFn<RowPinningState> = useCallback(\n (updater) => {\n rowPinning && onRowPinningChange?.(functionalUpdate(updater, rowPinning))\n },\n [onRowPinningChange], // Depends only on the stable setState function from context\n )\n\n const handleExpandedChange = useCallback(\n (updater: any) => {\n setExpanded?.((old) => {\n const newExpanded = updater instanceof Function ? updater(old) : updater\n onExpandedChange?.(newExpanded)\n return newExpanded\n })\n },\n [setExpanded, onExpandedChange],\n )\n\n const table = useReactTable({\n data: tableData,\n columns,\n state: {\n expanded,\n rowSelection,\n globalFilter,\n rowPinning,\n },\n onRowSelectionChange: handleRowSelectionChangeCallback,\n onRowPinningChange: handleRowPinningChangeCallback,\n filterFns: {\n fuzzy: fuzzyFilter,\n },\n globalFilterFn: 'fuzzy',\n enableRowSelection: true, //enable row selection for all rows\n enableRowPinning: !!onRowPinningChange,\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n onExpandedChange: handleExpandedChange,\n getSubRows: (row) => row.subRows,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // debugTable: true,\n meta: {\n isExpandable: !!isExpandable,\n isLoading: isLoading,\n children: children,\n ...meta,\n },\n })\n\n // Update tableRef whenever the table instance changes.\n // This ensures handleRowSelectForKeydown uses the current table instance.\n useEffect(() => {\n tableRef.current = table\n }, [table])\n\n const { rows } = table.getRowModel()\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n\n const rowVirtualizer = useVirtualizer({\n count: rows.length,\n estimateSize: () => rowHeight || 34, //estimate row height for accurate scrollbar dragging\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement: rowHeight\n ? () => rowHeight\n : typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n // Memoize the ref callback to prevent infinite re-renders\n const measureElementRef = useCallback(\n (node: HTMLElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n // Handle scroll to bottom detection\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLDivElement>) => {\n if (!onScrollBottom) return\n\n const target = event.currentTarget\n const { scrollTop, scrollHeight, clientHeight } = target\n\n // Check if we're near the bottom (within 100px)\n const isNearBottom = scrollHeight - scrollTop - clientHeight < 100\n\n if (isNearBottom && !isLoading) {\n onScrollBottom()\n }\n },\n [onScrollBottom, isLoading],\n )\n\n const handleContainerClick = (e: React.MouseEvent<HTMLDivElement>) => {\n // if the click is outside of any row, clear selection\n if (enableClickToDeselect && !(e.target as HTMLElement).closest('tr')) {\n table.setRowSelection({})\n lastSelectedIdRef.current = null\n }\n }\n\n return (\n <Styled.TableContainer\n ref={tableContainerRef}\n className={clsx({ isLoading })}\n onScroll={handleScroll}\n onClick={handleContainerClick}\n >\n {!error && (\n <table>\n <tbody\n style={{\n height: `${rowVirtualizer?.getTotalSize()}px`, //tells scrollbar how big the table is\n }}\n >\n {rowVirtualizer?.getVirtualItems().map((virtualRow) => {\n const row = rows[virtualRow.index] as Row<SimpleTableRow>\n return (\n <tr\n data-index={virtualRow.index} //needed for dynamic row height measurement\n ref={measureElementRef} //measure dynamic row height\n key={row.id}\n id={row.id}\n {...pt?.row}\n style={{\n transform: `translateY(${virtualRow.start}px)`, //this should always be a `style` as it changes on scroll\n ...pt?.row?.style, // custom styles to be passed\n }}\n >\n {row.getVisibleCells().map((cell) => {\n return (\n <td key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </td>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n )}\n {!!error && <EmptyPlaceholder error={error} />}\n </Styled.TableContainer>\n )\n}\n\nexport default SimpleTable\n"],"names":["fuzzyFilter","row","columnId","searchValue","addMeta","cellValue","searchString","itemRank","rankItem","fuzzySort","rowA","rowB","dir","compareItems","_a","_b","sortingFns","getRowRange","rows","idA","idB","range","singleRow","indexA","indexB","i","start","end","SimpleTable","data","isLoading","error","isExpandable","isMultiSelect","enableClickToDeselect","enableNonFolderIndent","forceUpdateTable","globalFilter","meta","rowHeight","onScrollBottom","children","pt","rowSelection","expanded","setExpanded","onExpandedChange","onRowSelectionChange","rowPinning","onRowPinningChange","useSimpleTableContext","lastSelectedIdRef","useRef","tableRef","tableData","useMemo","_","handleSelectionLogic","useCallback","tableInstance","rowId","isShift","isCtrlOrMeta","currentId","allProcessableRows","currentRow","r","lastId","rowsToToggle","newSelection","handleRowSelectForKeydown","event","selectedRow","isShiftKey","isCtrlKey","handleRowKeyDown","useRowKeydown","columns","getValue","cellTableInstance","cellMeta","handleCellClick","props","clsx","e","jsx","SimpleTableCellTemplate","handleRowSelectionChangeCallback","updater","functionalUpdate","handleRowPinningChangeCallback","handleExpandedChange","old","newExpanded","table","useReactTable","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","useEffect","tableContainerRef","rowVirtualizer","useVirtualizer","element","measureElementRef","node","handleScroll","target","scrollTop","scrollHeight","clientHeight","handleContainerClick","jsxs","Styled.TableContainer","virtualRow","cell","flexRender","EmptyPlaceholder"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as h } from "../../../../_virtual/jsx-runtime.es.js";
|
|
2
2
|
import { useRef as D, useMemo as V, useCallback as x, useEffect as ot } from "react";
|
|
3
3
|
import { TableContainer as it } from "./SimpleTable.styled.es.js";
|
|
4
|
-
import { functionalUpdate as B, useReactTable as rt, getExpandedRowModel as et, getFilteredRowModel as mt, getCoreRowModel as
|
|
4
|
+
import { functionalUpdate as B, useReactTable as rt, getExpandedRowModel as et, getFilteredRowModel as mt, getCoreRowModel as pt, flexRender as nt, sortingFns as lt } from "@tanstack/react-table";
|
|
5
5
|
import { useVirtualizer as at } from "@tanstack/react-virtual";
|
|
6
6
|
import J from "clsx";
|
|
7
7
|
import st from "./hooks/useRowKeydown.es.js";
|
|
@@ -56,6 +56,7 @@ import "../../api/queries/activities/getActivities.es.js";
|
|
|
56
56
|
import "../../api/queries/activities/updateActivities.es.js";
|
|
57
57
|
import "../../api/queries/activities/updateReaction.es.js";
|
|
58
58
|
import "../../api/queries/activities/getMentions.es.js";
|
|
59
|
+
import "../../api/queries/activities/getCategories.es.js";
|
|
59
60
|
import "../../api/queries/addons/getAddons.es.js";
|
|
60
61
|
import "../../api/queries/addons/updateAddons.es.js";
|
|
61
62
|
import "../../api/queries/attributes/getAttributes.es.js";
|
|
@@ -88,6 +89,7 @@ import "../../api/queries/system/getSystem.es.js";
|
|
|
88
89
|
import "../../api/queries/userDashboard/getUserDashboard.es.js";
|
|
89
90
|
import "../../api/queries/users/getUsers.es.js";
|
|
90
91
|
import "../../api/queries/users/updateUsers.es.js";
|
|
92
|
+
import "../../api/queries/users/guests.es.js";
|
|
91
93
|
import "../../api/queries/versions/updateVersions.es.js";
|
|
92
94
|
import "../../api/queries/views/getViews.es.js";
|
|
93
95
|
import "../../api/queries/views/updateViews.es.js";
|
|
@@ -141,12 +143,15 @@ import "react-router-dom";
|
|
|
141
143
|
import "../Feed/components/ActivityStatus/ActivityStatus.es.js";
|
|
142
144
|
import "../Feed/components/ActivityHeader/ActivityHeader.styled.es.js";
|
|
143
145
|
import "../Feed/components/ActivityDate.es.js";
|
|
146
|
+
import "../Feed/components/ActivityCategorySelect/CategoryTag.es.js";
|
|
144
147
|
import "../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.es.js";
|
|
145
148
|
import "../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.es.js";
|
|
146
149
|
import "../Feed/components/ActivityVersions/ActivityVersions.styled.es.js";
|
|
147
150
|
import "../Feed/components/ActivityGroup/ActivityGroup.styled.es.js";
|
|
148
151
|
import "../Feed/Feed.styled.es.js";
|
|
149
152
|
import "date-fns";
|
|
153
|
+
import "../Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js";
|
|
154
|
+
import "../Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js";
|
|
150
155
|
import "../ProjectTreeTable/ProjectTreeTable.es.js";
|
|
151
156
|
import "../ProjectTreeTable/context/CellEditingContext.es.js";
|
|
152
157
|
import "../ProjectTreeTable/widgets/CollapsedWidget.es.js";
|
|
@@ -207,6 +212,7 @@ import "../../components/Powerpack/PowerpackButton.es.js";
|
|
|
207
212
|
import "../../components/Powerpack/PricingLink.es.js";
|
|
208
213
|
import "../../components/Powerpack/PowerpackDialog.styled.es.js";
|
|
209
214
|
import "../../components/Powerpack/CTAButton.es.js";
|
|
215
|
+
import "../../components/Powerpack/RequiredPowerpackVersion.es.js";
|
|
210
216
|
import "../../components/SettingsPanel/SettingsPanel.es.js";
|
|
211
217
|
import "../../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
|
|
212
218
|
import "../../components/AttributeEditor/components/MinMaxField.es.js";
|
|
@@ -220,22 +226,26 @@ import "../../components/Feedback/SupportBubble.es.js";
|
|
|
220
226
|
import "../../components/Chips/Chips.es.js";
|
|
221
227
|
import "../EntityPickerDialog/EntityPickerDialog.es.js";
|
|
222
228
|
import "../../components/StyledLink/StyledLink.es.js";
|
|
229
|
+
import "../../components/ShareOptionIcon/ShareOptionIcon.es.js";
|
|
230
|
+
import "../../components/AccessUser/AccessUser.es.js";
|
|
231
|
+
import "../../../../node_modules/match-sorter/dist/match-sorter.esm.es.js";
|
|
232
|
+
import "../../components/AccessSearchInput/AccessSearchInput.styled.es.js";
|
|
223
233
|
const Rt = (e, m, s, c) => {
|
|
224
234
|
const i = e.getValue(m);
|
|
225
|
-
let
|
|
226
|
-
m === "label" && (
|
|
235
|
+
let p = typeof i == "string" ? i : Array.isArray(i) ? i.join(" ") : JSON.stringify(i);
|
|
236
|
+
m === "label" && (p = [e.original.label, e.original.name, ...e.original.parents || []].join(
|
|
227
237
|
" "
|
|
228
238
|
));
|
|
229
|
-
const u = dt(
|
|
239
|
+
const u = dt(p, s);
|
|
230
240
|
return c({
|
|
231
241
|
itemRank: u
|
|
232
242
|
}), u.passed;
|
|
233
243
|
}, ht = (e, m, s) => {
|
|
234
|
-
var i,
|
|
244
|
+
var i, p;
|
|
235
245
|
let c = 0;
|
|
236
246
|
return e.columnFiltersMeta[s] && (c = ct(
|
|
237
247
|
(i = e.columnFiltersMeta[s]) == null ? void 0 : i.itemRank,
|
|
238
|
-
(
|
|
248
|
+
(p = m.columnFiltersMeta[s]) == null ? void 0 : p.itemRank
|
|
239
249
|
)), c === 0 ? lt.alphanumeric(e, m, s) : c;
|
|
240
250
|
};
|
|
241
251
|
function xt(e, m, s) {
|
|
@@ -244,22 +254,22 @@ function xt(e, m, s) {
|
|
|
244
254
|
const a = e.find((M) => M.id === m);
|
|
245
255
|
return a ? [a] : [];
|
|
246
256
|
}
|
|
247
|
-
let i = -1,
|
|
248
|
-
for (let a = 0; a < e.length && (e[a].id === m && (i = a), e[a].id === s && (
|
|
257
|
+
let i = -1, p = -1;
|
|
258
|
+
for (let a = 0; a < e.length && (e[a].id === m && (i = a), e[a].id === s && (p = a), !(i !== -1 && p !== -1)); a++)
|
|
249
259
|
;
|
|
250
|
-
if (i === -1 ||
|
|
251
|
-
const u = Math.min(i,
|
|
260
|
+
if (i === -1 || p === -1) return [];
|
|
261
|
+
const u = Math.min(i, p), y = Math.max(i, p);
|
|
252
262
|
for (let a = u; a <= y; a++)
|
|
253
263
|
c.push(e[a]);
|
|
254
264
|
return c;
|
|
255
265
|
}
|
|
256
|
-
const
|
|
266
|
+
const Ne = ({
|
|
257
267
|
data: e = [],
|
|
258
268
|
isLoading: m,
|
|
259
269
|
error: s,
|
|
260
270
|
isExpandable: c,
|
|
261
271
|
isMultiSelect: i = !0,
|
|
262
|
-
enableClickToDeselect:
|
|
272
|
+
enableClickToDeselect: p = !0,
|
|
263
273
|
enableNonFolderIndent: u = !0,
|
|
264
274
|
forceUpdateTable: y,
|
|
265
275
|
globalFilter: a,
|
|
@@ -288,14 +298,14 @@ const Me = ({
|
|
|
288
298
|
id: `placeholder-${r}`
|
|
289
299
|
}
|
|
290
300
|
})) : e, [m, e, y]), w = x(
|
|
291
|
-
(t, r,
|
|
301
|
+
(t, r, n, o) => {
|
|
292
302
|
const d = r, R = t.getFilteredRowModel().flatRows, l = R.find((K) => K.id === d);
|
|
293
303
|
if (l && !l.original.isDisabled) {
|
|
294
|
-
if (
|
|
304
|
+
if (p && !n && !o && Object.keys(t.getState().rowSelection).length === 1 && t.getState().rowSelection[d]) {
|
|
295
305
|
t.setRowSelection({}), S.current = null;
|
|
296
306
|
return;
|
|
297
307
|
}
|
|
298
|
-
if (i &&
|
|
308
|
+
if (i && n && S.current) {
|
|
299
309
|
const K = S.current;
|
|
300
310
|
if (!R.find(($) => $.id === K))
|
|
301
311
|
t.setRowSelection({ [d]: !0 });
|
|
@@ -307,19 +317,19 @@ const Me = ({
|
|
|
307
317
|
S.current = d;
|
|
308
318
|
}
|
|
309
319
|
},
|
|
310
|
-
[i,
|
|
320
|
+
[i, p]
|
|
311
321
|
), G = x(
|
|
312
322
|
(t, r) => {
|
|
313
323
|
if (!H.current) {
|
|
314
324
|
console.warn("tableRef not yet available in handleRowSelectForKeydown");
|
|
315
325
|
return;
|
|
316
326
|
}
|
|
317
|
-
const
|
|
327
|
+
const n = t.shiftKey, o = t.ctrlKey || t.metaKey;
|
|
318
328
|
w(
|
|
319
329
|
H.current,
|
|
320
330
|
// Pass the main table instance
|
|
321
331
|
r.id,
|
|
322
|
-
|
|
332
|
+
n,
|
|
323
333
|
o
|
|
324
334
|
);
|
|
325
335
|
},
|
|
@@ -335,10 +345,10 @@ const Me = ({
|
|
|
335
345
|
filterFn: "fuzzy",
|
|
336
346
|
sortingFn: ht,
|
|
337
347
|
//sort by fuzzy rank (falls back to alphanumeric)
|
|
338
|
-
cell: ({ row: t, getValue: r, table:
|
|
339
|
-
const o =
|
|
348
|
+
cell: ({ row: t, getValue: r, table: n }) => {
|
|
349
|
+
const o = n.options.meta, d = (l) => {
|
|
340
350
|
l.target instanceof HTMLInputElement || l.target instanceof HTMLButtonElement || l.target instanceof HTMLTextAreaElement || l.target instanceof HTMLSelectElement || l.target instanceof HTMLAnchorElement || l.target.closest("button, a, input, textarea, select") || w(
|
|
341
|
-
|
|
351
|
+
n,
|
|
342
352
|
// Pass the cell's table instance
|
|
343
353
|
t.id,
|
|
344
354
|
l.shiftKey,
|
|
@@ -375,7 +385,7 @@ const Me = ({
|
|
|
375
385
|
isDisabled: t.original.isDisabled,
|
|
376
386
|
disabledMessage: t.original.disabledMessage
|
|
377
387
|
};
|
|
378
|
-
return o != null && o.children ? o.children(R, t,
|
|
388
|
+
return o != null && o.children ? o.children(R, t, n) : /* @__PURE__ */ h.jsx(ft, { ...R, ...g == null ? void 0 : g.cell });
|
|
379
389
|
}
|
|
380
390
|
}
|
|
381
391
|
],
|
|
@@ -383,7 +393,7 @@ const Me = ({
|
|
|
383
393
|
y,
|
|
384
394
|
w,
|
|
385
395
|
L,
|
|
386
|
-
|
|
396
|
+
p,
|
|
387
397
|
u
|
|
388
398
|
]
|
|
389
399
|
// include enableClickToDeselect for completeness
|
|
@@ -402,8 +412,8 @@ const Me = ({
|
|
|
402
412
|
), X = x(
|
|
403
413
|
(t) => {
|
|
404
414
|
C == null || C((r) => {
|
|
405
|
-
const
|
|
406
|
-
return E == null || E(
|
|
415
|
+
const n = t instanceof Function ? t(r) : t;
|
|
416
|
+
return E == null || E(n), n;
|
|
407
417
|
});
|
|
408
418
|
},
|
|
409
419
|
[C, E]
|
|
@@ -430,7 +440,7 @@ const Me = ({
|
|
|
430
440
|
//disable sub row selection
|
|
431
441
|
onExpandedChange: X,
|
|
432
442
|
getSubRows: (t) => t.subRows,
|
|
433
|
-
getCoreRowModel:
|
|
443
|
+
getCoreRowModel: pt(),
|
|
434
444
|
getFilteredRowModel: mt(),
|
|
435
445
|
getExpandedRowModel: et(),
|
|
436
446
|
filterFromLeafRows: !0,
|
|
@@ -461,12 +471,12 @@ const Me = ({
|
|
|
461
471
|
), I = x(
|
|
462
472
|
(t) => {
|
|
463
473
|
if (!j) return;
|
|
464
|
-
const r = t.currentTarget, { scrollTop:
|
|
465
|
-
o -
|
|
474
|
+
const r = t.currentTarget, { scrollTop: n, scrollHeight: o, clientHeight: d } = r;
|
|
475
|
+
o - n - d < 100 && !m && j();
|
|
466
476
|
},
|
|
467
477
|
[j, m]
|
|
468
478
|
), v = (t) => {
|
|
469
|
-
|
|
479
|
+
p && !t.target.closest("tr") && (F.setRowSelection({}), S.current = null);
|
|
470
480
|
};
|
|
471
481
|
return /* @__PURE__ */ h.jsxs(
|
|
472
482
|
it,
|
|
@@ -484,7 +494,7 @@ const Me = ({
|
|
|
484
494
|
//tells scrollbar how big the table is
|
|
485
495
|
},
|
|
486
496
|
children: f == null ? void 0 : f.getVirtualItems().map((t) => {
|
|
487
|
-
var
|
|
497
|
+
var n;
|
|
488
498
|
const r = N[t.index];
|
|
489
499
|
return /* @__PURE__ */ h.jsx(
|
|
490
500
|
"tr",
|
|
@@ -496,10 +506,10 @@ const Me = ({
|
|
|
496
506
|
style: {
|
|
497
507
|
transform: `translateY(${t.start}px)`,
|
|
498
508
|
//this should always be a `style` as it changes on scroll
|
|
499
|
-
...(
|
|
509
|
+
...(n = g == null ? void 0 : g.row) == null ? void 0 : n.style
|
|
500
510
|
// custom styles to be passed
|
|
501
511
|
},
|
|
502
|
-
children: r.getVisibleCells().map((o) => /* @__PURE__ */ h.jsx("td", { children:
|
|
512
|
+
children: r.getVisibleCells().map((o) => /* @__PURE__ */ h.jsx("td", { children: nt(o.column.columnDef.cell, o.getContext()) }, o.id))
|
|
503
513
|
},
|
|
504
514
|
r.id
|
|
505
515
|
);
|
|
@@ -512,6 +522,6 @@ const Me = ({
|
|
|
512
522
|
);
|
|
513
523
|
};
|
|
514
524
|
export {
|
|
515
|
-
|
|
525
|
+
Ne as default
|
|
516
526
|
};
|
|
517
527
|
//# sourceMappingURL=SimpleTable.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleTable.es.js","sources":["../../../../../src/containers/SimpleTable/SimpleTable.tsx"],"sourcesContent":["import { FC, useMemo, useRef, MouseEvent as ReactMouseEvent, useCallback, useEffect } from 'react'\nimport * as Styled from './SimpleTable.styled'\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n ColumnDef,\n flexRender,\n Row,\n FilterFn,\n SortingFn,\n sortingFns,\n RowData,\n Table,\n OnChangeFn,\n RowSelectionState,\n functionalUpdate,\n} from '@tanstack/react-table'\nimport { useVirtualizer } from '@tanstack/react-virtual'\n\nimport clsx from 'clsx'\nimport useRowKeydown, { RowKeyboardEvent } from './hooks/useRowKeydown'\n\nimport { RankingInfo, rankItem, compareItems } from '@tanstack/match-sorter-utils'\nimport { useSimpleTableContext } from './context/SimpleTableContext'\nimport { SimpleTableCellTemplate, SimpleTableCellTemplateProps } from './SimpleTableRowTemplate'\nimport { EmptyPlaceholder } from '@shared/components'\nimport { RowPinningState } from '@tanstack/react-table'\n\ndeclare module '@tanstack/react-table' {\n //add fuzzy filter to the filterFns\n interface FilterFns {\n fuzzy: FilterFn<unknown>\n }\n interface FilterMeta {\n itemRank: RankingInfo\n }\n\n interface TableMeta<TData extends RowData> {\n isExpandable?: boolean\n isLoading?: boolean\n children?: (\n props: SimpleTableCellTemplateProps,\n row: Row<TData>,\n table: Table<SimpleTableRow>,\n ) => JSX.Element\n [key: string]: any\n }\n}\n\n// Define a custom fuzzy filter function that will apply ranking info to rows (using match-sorter utils)\nconst fuzzyFilter: FilterFn<any> = (row, columnId, searchValue, addMeta) => {\n const cellValue = row.getValue(columnId)\n // convert non-string cell values to string\n let searchString =\n typeof cellValue === 'string'\n ? cellValue\n : Array.isArray(cellValue)\n ? cellValue.join(' ')\n : JSON.stringify(cellValue)\n\n // combine label and parents into a single string for searching if columnId is 'label'\n if (columnId === 'label') {\n searchString = [row.original.label, row.original.name, ...(row.original.parents || [])].join(\n ' ',\n )\n }\n\n // Rank the item\n const itemRank = rankItem(searchString, searchValue)\n\n // Store the itemRank info\n addMeta({\n itemRank,\n })\n\n // Return if the item should be filtered in/out\n return itemRank.passed\n}\n\n// Define a custom fuzzy sort function that will sort by rank if the row has ranking information\nconst fuzzySort: SortingFn<any> = (rowA, rowB, columnId) => {\n let dir = 0\n\n // Only sort by rank if the column has ranking information\n if (rowA.columnFiltersMeta[columnId]) {\n dir = compareItems(\n rowA.columnFiltersMeta[columnId]?.itemRank!,\n rowB.columnFiltersMeta[columnId]?.itemRank!,\n )\n }\n\n // Provide an alphanumeric fallback for when the item ranks are equal\n return dir === 0 ? sortingFns.alphanumeric(rowA, rowB, columnId) : dir\n}\n\nexport type RowItemData = {\n id: string\n name?: string | null\n label?: string | null\n subType?: string | null\n [key: string]: any\n}\n\nexport type SimpleTableRow = {\n id: string\n parentId?: string\n name: string\n label: string\n parents?: string[]\n icon?: string | null\n iconColor?: string\n iconFilled?: boolean\n img?: string | null\n startContent?: JSX.Element\n endContent?: JSX.Element\n subRows: SimpleTableRow[]\n data: RowItemData\n isDisabled?: boolean\n disabledMessage?: string\n inactive?: boolean\n}\n\nexport interface SimpleTableProps {\n data: SimpleTableRow[]\n isLoading: boolean\n error?: string\n isExpandable?: boolean // show expand/collapse icons\n isMultiSelect?: boolean // enable multi-select with shift+click and ctrl/cmd+click\n enableClickToDeselect?: boolean // allow deselecting a single selected row by clicking it again & clicking outside clears selection\n enableNonFolderIndent?: boolean // indent non-folder rows to align with folder rows\n forceUpdateTable?: any\n globalFilter?: string\n meta?: Record<string, any>\n rowHeight?: number // height of each row, used for virtual scrolling\n onScrollBottom?: () => void // callback fired when scrolled to the bottom of the table\n children?: (\n props: SimpleTableCellTemplateProps,\n row: Row<SimpleTableRow>,\n table: Table<SimpleTableRow>,\n ) => JSX.Element\n pt?: {\n cell?: SimpleTableCellTemplateProps\n row?: React.HTMLAttributes<HTMLTableRowElement>\n }\n}\n\n// Helper function to get row range for shift-selection\n// Operates on the provided list of rows (e.g., filtered and sorted rows)\nfunction getRowRange<TData extends RowData>(\n rows: Array<Row<TData>>,\n idA: string,\n idB: string,\n): Array<Row<TData>> {\n const range: Array<Row<TData>> = []\n // If idA and idB are the same, or one is not found, handle appropriately\n if (idA === idB) {\n const singleRow = rows.find((row) => row.id === idA)\n return singleRow ? [singleRow] : []\n }\n\n let indexA = -1\n let indexB = -1\n\n for (let i = 0; i < rows.length; i++) {\n if (rows[i].id === idA) indexA = i\n if (rows[i].id === idB) indexB = i\n if (indexA !== -1 && indexB !== -1) break\n }\n\n if (indexA === -1 || indexB === -1) return [] // One or both IDs not found\n\n const start = Math.min(indexA, indexB)\n const end = Math.max(indexA, indexB)\n\n for (let i = start; i <= end; i++) {\n range.push(rows[i])\n }\n return range\n}\n\nconst SimpleTable: FC<SimpleTableProps> = ({\n data = [],\n isLoading,\n error,\n isExpandable,\n isMultiSelect = true,\n enableClickToDeselect = true,\n enableNonFolderIndent = true,\n forceUpdateTable,\n globalFilter,\n meta,\n rowHeight,\n onScrollBottom,\n children,\n pt,\n}) => {\n const {\n rowSelection,\n expanded,\n setExpanded,\n onExpandedChange,\n onRowSelectionChange,\n rowPinning,\n onRowPinningChange,\n } = useSimpleTableContext()\n const lastSelectedIdRef = useRef<string | null>(null)\n const tableRef = useRef<Table<SimpleTableRow> | null>(null)\n\n // stable data reference\n const tableData = useMemo(() => {\n if (!isLoading) return data\n\n // show loading placeholders\n return Array.from({ length: 10 }, (_, i) => ({\n id: `placeholder-${i}`,\n name: `placeholder-${i}`,\n label: `placeholder-${i}`,\n icon: null,\n img: null,\n subRows: [],\n data: {\n id: `placeholder-${i}`,\n },\n }))\n }, [isLoading, data, forceUpdateTable])\n\n // Define the core selection logic using useCallback for stability\n const handleSelectionLogic = useCallback(\n (\n tableInstance: Table<SimpleTableRow>,\n rowId: string,\n isShift: boolean,\n isCtrlOrMeta: boolean,\n ) => {\n const currentId = rowId\n const allProcessableRows = tableInstance.getFilteredRowModel().flatRows\n const currentRow = allProcessableRows.find((r) => r.id === currentId)\n\n if (!currentRow) return\n\n // Prevent selection of disabled rows\n if (currentRow.original.isDisabled) return\n\n // If click-to-deselect is enabled and only one row is selected and it's the current row\n if (\n enableClickToDeselect &&\n !isShift &&\n !isCtrlOrMeta &&\n Object.keys(tableInstance.getState().rowSelection).length === 1 &&\n tableInstance.getState().rowSelection[currentId]\n ) {\n tableInstance.setRowSelection({})\n lastSelectedIdRef.current = null\n return\n }\n\n if (isMultiSelect && isShift && lastSelectedIdRef.current) {\n const lastId = lastSelectedIdRef.current\n const anchorRow = allProcessableRows.find((r) => r.id === lastId)\n\n if (!anchorRow) {\n tableInstance.setRowSelection({ [currentId]: true })\n } else {\n const rowsToToggle = getRowRange(allProcessableRows, currentId, lastId)\n const newSelection: RowSelectionState = {}\n rowsToToggle.forEach((r) => (newSelection[r.id] = true))\n tableInstance.setRowSelection(newSelection)\n }\n } else if (isMultiSelect && isCtrlOrMeta) {\n currentRow.toggleSelected()\n } else {\n tableInstance.setRowSelection({ [currentId]: true })\n }\n lastSelectedIdRef.current = currentId\n },\n [isMultiSelect, enableClickToDeselect],\n )\n\n // Callback for useRowKeydown's handleRowSelect prop\n // Uses tableRef to access the table instance, avoiding direct dependency on 'table' variable at definition time\n const handleRowSelectForKeydown = useCallback(\n (\n event: RowKeyboardEvent, // Use the specific keyboard event type from the hook\n selectedRow: Row<SimpleTableRow>,\n ) => {\n if (!tableRef.current) {\n console.warn('tableRef not yet available in handleRowSelectForKeydown')\n return\n }\n\n // Extract modifier keys from the event\n const isShiftKey = event.shiftKey\n const isCtrlKey = event.ctrlKey || event.metaKey\n\n handleSelectionLogic(\n tableRef.current, // Pass the main table instance\n selectedRow.id,\n isShiftKey,\n isCtrlKey,\n )\n },\n [handleSelectionLogic], // Depends only on handleSelectionLogic\n )\n\n const { handleRowKeyDown } = useRowKeydown<SimpleTableRow>({\n handleRowSelect: handleRowSelectForKeydown,\n })\n\n const columns = useMemo<ColumnDef<SimpleTableRow>[]>(\n () => [\n {\n accessorKey: 'label',\n header: undefined,\n filterFn: 'fuzzy',\n sortingFn: fuzzySort, //sort by fuzzy rank (falls back to alphanumeric)\n cell: ({ row, getValue, table: cellTableInstance }) => {\n const cellMeta = cellTableInstance.options.meta\n\n const handleCellClick = (event: ReactMouseEvent<HTMLElement, MouseEvent>) => {\n // Prevent row selection if clicking on an interactive element within the cell\n if (\n event.target instanceof HTMLInputElement ||\n event.target instanceof HTMLButtonElement ||\n event.target instanceof HTMLTextAreaElement ||\n event.target instanceof HTMLSelectElement ||\n event.target instanceof HTMLAnchorElement ||\n (event.target as HTMLElement).closest('button, a, input, textarea, select')\n ) {\n return\n }\n handleSelectionLogic(\n cellTableInstance, // Pass the cell's table instance\n row.id,\n event.shiftKey,\n event.ctrlKey || event.metaKey,\n )\n }\n\n const props: SimpleTableCellTemplateProps & {\n onClick?: (event: ReactMouseEvent<HTMLElement, MouseEvent>) => void\n } = {\n className: clsx({\n selected: row.getIsSelected(),\n loading: cellMeta?.isLoading,\n disabled: row.original.isDisabled, // you can't select disabled rows\n inactive: row.original.inactive, // false: archived items but still selectable\n }),\n onKeyDown: (e) => {\n if (e.target instanceof HTMLInputElement) return\n // Corrected typo: handleRowKeydown -> handleRowKeyDown\n handleRowKeyDown(e, row)\n },\n onClick: handleCellClick, // Added onClick handler\n depth: row.depth,\n tabIndex: 0,\n value: getValue<string>(),\n parents: row.original.parents,\n icon: row.original.icon || undefined,\n iconColor: row.original.iconColor,\n iconFilled: row.original.iconFilled,\n isRowExpandable: row.getCanExpand(),\n enableNonFolderIndent,\n isRowExpanded: row.getIsExpanded(),\n isTableExpandable: cellMeta?.isExpandable,\n onExpandClick: row.getToggleExpandedHandler(),\n startContent: row.original.startContent,\n endContent: row.original.endContent,\n isDisabled: row.original.isDisabled,\n disabledMessage: row.original.disabledMessage,\n }\n\n // Use children function if provided, otherwise default to SimpleTableCellTemplate\n return cellMeta?.children ? (\n cellMeta.children(props, row, cellTableInstance)\n ) : (\n <SimpleTableCellTemplate {...props} {...pt?.cell} />\n )\n },\n },\n ],\n [\n forceUpdateTable,\n handleSelectionLogic,\n handleRowKeyDown,\n enableClickToDeselect,\n enableNonFolderIndent,\n ], // include enableClickToDeselect for completeness\n )\n\n const handleRowSelectionChangeCallback: OnChangeFn<RowSelectionState> = useCallback(\n (updater) => {\n onRowSelectionChange(functionalUpdate(updater, rowSelection))\n },\n [onRowSelectionChange, rowSelection], // Depends only on the stable setState function from context\n )\n\n const handleRowPinningChangeCallback: OnChangeFn<RowPinningState> = useCallback(\n (updater) => {\n rowPinning && onRowPinningChange?.(functionalUpdate(updater, rowPinning))\n },\n [onRowPinningChange], // Depends only on the stable setState function from context\n )\n\n const handleExpandedChange = useCallback(\n (updater: any) => {\n setExpanded?.((old) => {\n const newExpanded = updater instanceof Function ? updater(old) : updater\n onExpandedChange?.(newExpanded)\n return newExpanded\n })\n },\n [setExpanded, onExpandedChange],\n )\n\n const table = useReactTable({\n data: tableData,\n columns,\n state: {\n expanded,\n rowSelection,\n globalFilter,\n rowPinning,\n },\n onRowSelectionChange: handleRowSelectionChangeCallback,\n onRowPinningChange: handleRowPinningChangeCallback,\n filterFns: {\n fuzzy: fuzzyFilter,\n },\n globalFilterFn: 'fuzzy',\n enableRowSelection: true, //enable row selection for all rows\n enableRowPinning: !!onRowPinningChange,\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n onExpandedChange: handleExpandedChange,\n getSubRows: (row) => row.subRows,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // debugTable: true,\n meta: {\n isExpandable: !!isExpandable,\n isLoading: isLoading,\n children: children,\n ...meta,\n },\n })\n\n // Update tableRef whenever the table instance changes.\n // This ensures handleRowSelectForKeydown uses the current table instance.\n useEffect(() => {\n tableRef.current = table\n }, [table])\n\n const { rows } = table.getRowModel()\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n\n const rowVirtualizer = useVirtualizer({\n count: rows.length,\n estimateSize: () => rowHeight || 34, //estimate row height for accurate scrollbar dragging\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement: rowHeight\n ? () => rowHeight\n : typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n // Memoize the ref callback to prevent infinite re-renders\n const measureElementRef = useCallback(\n (node: HTMLElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n // Handle scroll to bottom detection\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLDivElement>) => {\n if (!onScrollBottom) return\n\n const target = event.currentTarget\n const { scrollTop, scrollHeight, clientHeight } = target\n\n // Check if we're near the bottom (within 100px)\n const isNearBottom = scrollHeight - scrollTop - clientHeight < 100\n\n if (isNearBottom && !isLoading) {\n onScrollBottom()\n }\n },\n [onScrollBottom, isLoading],\n )\n\n const handleContainerClick = (e: React.MouseEvent<HTMLDivElement>) => {\n // if the click is outside of any row, clear selection\n if (enableClickToDeselect && !(e.target as HTMLElement).closest('tr')) {\n table.setRowSelection({})\n lastSelectedIdRef.current = null\n }\n }\n\n return (\n <Styled.TableContainer\n ref={tableContainerRef}\n className={clsx({ isLoading })}\n onScroll={handleScroll}\n onClick={handleContainerClick}\n >\n {!error && (\n <table>\n <tbody\n style={{\n height: `${rowVirtualizer?.getTotalSize()}px`, //tells scrollbar how big the table is\n }}\n >\n {rowVirtualizer?.getVirtualItems().map((virtualRow) => {\n const row = rows[virtualRow.index] as Row<SimpleTableRow>\n return (\n <tr\n data-index={virtualRow.index} //needed for dynamic row height measurement\n ref={measureElementRef} //measure dynamic row height\n key={row.id}\n id={row.id}\n {...pt?.row}\n style={{\n transform: `translateY(${virtualRow.start}px)`, //this should always be a `style` as it changes on scroll\n ...pt?.row?.style, // custom styles to be passed\n }}\n >\n {row.getVisibleCells().map((cell) => {\n return (\n <td key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </td>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n )}\n {!!error && <EmptyPlaceholder error={error} />}\n </Styled.TableContainer>\n )\n}\n\nexport default SimpleTable\n"],"names":["fuzzyFilter","row","columnId","searchValue","addMeta","cellValue","searchString","itemRank","rankItem","fuzzySort","rowA","rowB","dir","compareItems","_a","_b","sortingFns","getRowRange","rows","idA","idB","range","singleRow","indexA","indexB","i","start","end","SimpleTable","data","isLoading","error","isExpandable","isMultiSelect","enableClickToDeselect","enableNonFolderIndent","forceUpdateTable","globalFilter","meta","rowHeight","onScrollBottom","children","pt","rowSelection","expanded","setExpanded","onExpandedChange","onRowSelectionChange","rowPinning","onRowPinningChange","useSimpleTableContext","lastSelectedIdRef","useRef","tableRef","tableData","useMemo","_","handleSelectionLogic","useCallback","tableInstance","rowId","isShift","isCtrlOrMeta","currentId","allProcessableRows","currentRow","r","lastId","rowsToToggle","newSelection","handleRowSelectForKeydown","event","selectedRow","isShiftKey","isCtrlKey","handleRowKeyDown","useRowKeydown","columns","getValue","cellTableInstance","cellMeta","handleCellClick","props","clsx","e","jsx","SimpleTableCellTemplate","handleRowSelectionChangeCallback","updater","functionalUpdate","handleRowPinningChangeCallback","handleExpandedChange","old","newExpanded","table","useReactTable","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","useEffect","tableContainerRef","rowVirtualizer","useVirtualizer","element","measureElementRef","node","handleScroll","target","scrollTop","scrollHeight","clientHeight","handleContainerClick","jsxs","Styled.TableContainer","virtualRow","cell","flexRender","EmptyPlaceholder"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,MAAMA,KAA6B,CAACC,GAAKC,GAAUC,GAAaC,MAAY;AACpE,QAAAC,IAAYJ,EAAI,SAASC,CAAQ;AAEvC,MAAII,IACF,OAAOD,KAAc,WACjBA,IACA,MAAM,QAAQA,CAAS,IACvBA,EAAU,KAAK,GAAG,IAClB,KAAK,UAAUA,CAAS;AAG9B,EAAIH,MAAa,YACfI,IAAe,CAACL,EAAI,SAAS,OAAOA,EAAI,SAAS,MAAM,GAAIA,EAAI,SAAS,WAAW,CAAA,CAAG,EAAE;AAAA,IACtF;AAAA,EACF;AAII,QAAAM,IAAWC,GAASF,GAAcH,CAAW;AAG3C,SAAAC,EAAA;AAAA,IACN,UAAAG;AAAA,EAAA,CACD,GAGMA,EAAS;AAClB,GAGME,KAA4B,CAACC,GAAMC,GAAMT,MAAa;;AAC1D,MAAIU,IAAM;AAGN,SAAAF,EAAK,kBAAkBR,CAAQ,MAC3BU,IAAAC;AAAA,KACJC,IAAAJ,EAAK,kBAAkBR,CAAQ,MAA/B,gBAAAY,EAAkC;AAAA,KAClCC,IAAAJ,EAAK,kBAAkBT,CAAQ,MAA/B,gBAAAa,EAAkC;AAAA,EACpC,IAIKH,MAAQ,IAAII,GAAW,aAAaN,GAAMC,GAAMT,CAAQ,IAAIU;AACrE;AAuDA,SAASK,GACPC,GACAC,GACAC,GACmB;AACnB,QAAMC,IAA2B,CAAC;AAElC,MAAIF,MAAQC,GAAK;AACf,UAAME,IAAYJ,EAAK,KAAK,CAACjB,MAAQA,EAAI,OAAOkB,CAAG;AACnD,WAAOG,IAAY,CAACA,CAAS,IAAI,CAAC;AAAA,EAAA;AAGpC,MAAIC,IAAS,IACTC,IAAS;AAEb,WAASC,IAAI,GAAGA,IAAIP,EAAK,WACnBA,EAAKO,CAAC,EAAE,OAAON,MAAcI,IAAAE,IAC7BP,EAAKO,CAAC,EAAE,OAAOL,MAAcI,IAAAC,IAC7B,EAAAF,MAAW,MAAMC,MAAW,MAHDC;AAG3B;AAGN,MAAIF,MAAW,MAAMC,MAAW,WAAW,CAAC;AAE5C,QAAME,IAAQ,KAAK,IAAIH,GAAQC,CAAM,GAC/BG,IAAM,KAAK,IAAIJ,GAAQC,CAAM;AAEnC,WAASC,IAAIC,GAAOD,KAAKE,GAAKF;AACtB,IAAAJ,EAAA,KAAKH,EAAKO,CAAC,CAAC;AAEb,SAAAJ;AACT;AAEA,MAAMO,KAAoC,CAAC;AAAA,EACzC,MAAAC,IAAO,CAAC;AAAA,EACR,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,uBAAAC,IAAwB;AAAA,EACxB,uBAAAC,IAAwB;AAAA,EACxB,kBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,IAAAC;AACF,MAAM;AACE,QAAA;AAAA,IACJ,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,oBAAAC;AAAA,MACEC,GAAsB,GACpBC,IAAoBC,EAAsB,IAAI,GAC9CC,IAAWD,EAAqC,IAAI,GAGpDE,IAAYC,EAAQ,MACnBzB,IAGE,MAAM,KAAK,EAAE,QAAQ,MAAM,CAAC0B,GAAG/B,OAAO;AAAA,IAC3C,IAAI,eAAeA,CAAC;AAAA,IACpB,MAAM,eAAeA,CAAC;AAAA,IACtB,OAAO,eAAeA,CAAC;AAAA,IACvB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,SAAS,CAAC;AAAA,IACV,MAAM;AAAA,MACJ,IAAI,eAAeA,CAAC;AAAA,IAAA;AAAA,EACtB,EACA,IAbqBI,GActB,CAACC,GAAWD,GAAMO,CAAgB,CAAC,GAGhCqB,IAAuBC;AAAA,IAC3B,CACEC,GACAC,GACAC,GACAC,MACG;AACH,YAAMC,IAAYH,GACZI,IAAqBL,EAAc,oBAAA,EAAsB,UACzDM,IAAaD,EAAmB,KAAK,CAACE,MAAMA,EAAE,OAAOH,CAAS;AAEpE,UAAKE,KAGD,CAAAA,EAAW,SAAS,YAGxB;AAAA,YACE/B,KACA,CAAC2B,KACD,CAACC,KACD,OAAO,KAAKH,EAAc,SAAA,EAAW,YAAY,EAAE,WAAW,KAC9DA,EAAc,WAAW,aAAaI,CAAS,GAC/C;AACc,UAAAJ,EAAA,gBAAgB,EAAE,GAChCR,EAAkB,UAAU;AAC5B;AAAA,QAAA;AAGE,YAAAlB,KAAiB4B,KAAWV,EAAkB,SAAS;AACzD,gBAAMgB,IAAShB,EAAkB;AAGjC,cAAI,CAFca,EAAmB,KAAK,CAACE,MAAMA,EAAE,OAAOC,CAAM;AAG9D,YAAAR,EAAc,gBAAgB,EAAE,CAACI,CAAS,GAAG,IAAM;AAAA,eAC9C;AACL,kBAAMK,IAAenD,GAAY+C,GAAoBD,GAAWI,CAAM,GAChEE,IAAkC,CAAC;AACzC,YAAAD,EAAa,QAAQ,CAACF,OAAOG,EAAaH,GAAE,EAAE,IAAI,EAAK,GACvDP,EAAc,gBAAgBU,CAAY;AAAA,UAAA;AAAA,QAC5C,MACF,CAAWpC,KAAiB6B,IAC1BG,EAAW,eAAe,IAE1BN,EAAc,gBAAgB,EAAE,CAACI,CAAS,GAAG,IAAM;AAErD,QAAAZ,EAAkB,UAAUY;AAAA;AAAA,IAC9B;AAAA,IACA,CAAC9B,GAAeC,CAAqB;AAAA,EACvC,GAIMoC,IAA4BZ;AAAA,IAChC,CACEa,GACAC,MACG;AACC,UAAA,CAACnB,EAAS,SAAS;AACrB,gBAAQ,KAAK,yDAAyD;AACtE;AAAA,MAAA;AAIF,YAAMoB,IAAaF,EAAM,UACnBG,IAAYH,EAAM,WAAWA,EAAM;AAEzC,MAAAd;AAAA,QACEJ,EAAS;AAAA;AAAA,QACTmB,EAAY;AAAA,QACZC;AAAA,QACAC;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAACjB,CAAoB;AAAA;AAAA,EACvB,GAEM,EAAE,kBAAAkB,EAAiB,IAAIC,GAA8B;AAAA,IACzD,iBAAiBN;AAAA,EAAA,CAClB,GAEKO,IAAUtB;AAAA,IACd,MAAM;AAAA,MACJ;AAAA,QACE,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,WAAW9C;AAAA;AAAA,QACX,MAAM,CAAC,EAAE,KAAAR,GAAK,UAAA6E,GAAU,OAAOC,QAAwB;AAC/C,gBAAAC,IAAWD,EAAkB,QAAQ,MAErCE,IAAkB,CAACV,MAAoD;AAE3E,YACEA,EAAM,kBAAkB,oBACxBA,EAAM,kBAAkB,qBACxBA,EAAM,kBAAkB,uBACxBA,EAAM,kBAAkB,qBACxBA,EAAM,kBAAkB,qBACvBA,EAAM,OAAuB,QAAQ,oCAAoC,KAI5Ed;AAAA,cACEsB;AAAA;AAAA,cACA9E,EAAI;AAAA,cACJsE,EAAM;AAAA,cACNA,EAAM,WAAWA,EAAM;AAAA,YACzB;AAAA,UACF,GAEMW,IAEF;AAAA,YACF,WAAWC,EAAK;AAAA,cACd,UAAUlF,EAAI,cAAc;AAAA,cAC5B,SAAS+E,KAAA,gBAAAA,EAAU;AAAA,cACnB,UAAU/E,EAAI,SAAS;AAAA;AAAA,cACvB,UAAUA,EAAI,SAAS;AAAA;AAAA,YAAA,CACxB;AAAA,YACD,WAAW,CAACmF,MAAM;AACZ,cAAAA,EAAE,kBAAkB,oBAExBT,EAAiBS,GAAGnF,CAAG;AAAA,YACzB;AAAA,YACA,SAASgF;AAAA;AAAA,YACT,OAAOhF,EAAI;AAAA,YACX,UAAU;AAAA,YACV,OAAO6E,EAAiB;AAAA,YACxB,SAAS7E,EAAI,SAAS;AAAA,YACtB,MAAMA,EAAI,SAAS,QAAQ;AAAA,YAC3B,WAAWA,EAAI,SAAS;AAAA,YACxB,YAAYA,EAAI,SAAS;AAAA,YACzB,iBAAiBA,EAAI,aAAa;AAAA,YAClC,uBAAAkC;AAAA,YACA,eAAelC,EAAI,cAAc;AAAA,YACjC,mBAAmB+E,KAAA,gBAAAA,EAAU;AAAA,YAC7B,eAAe/E,EAAI,yBAAyB;AAAA,YAC5C,cAAcA,EAAI,SAAS;AAAA,YAC3B,YAAYA,EAAI,SAAS;AAAA,YACzB,YAAYA,EAAI,SAAS;AAAA,YACzB,iBAAiBA,EAAI,SAAS;AAAA,UAChC;AAGA,iBAAO+E,KAAA,QAAAA,EAAU,WACfA,EAAS,SAASE,GAAOjF,GAAK8E,CAAiB,IAE/CM,gBAAAA,EAAA,IAACC,IAAyB,EAAA,GAAGJ,GAAQ,GAAGxC,KAAA,gBAAAA,EAAI,MAAM;AAAA,QAAA;AAAA,MAEtD;AAAA,IAEJ;AAAA,IACA;AAAA,MACEN;AAAA,MACAqB;AAAA,MACAkB;AAAA,MACAzC;AAAA,MACAC;AAAA,IAAA;AAAA;AAAA,EAEJ,GAEMoD,IAAkE7B;AAAA,IACtE,CAAC8B,MAAY;AACU,MAAAzC,EAAA0C,EAAiBD,GAAS7C,CAAY,CAAC;AAAA,IAC9D;AAAA,IACA,CAACI,GAAsBJ,CAAY;AAAA;AAAA,EACrC,GAEM+C,IAA8DhC;AAAA,IAClE,CAAC8B,MAAY;AACX,MAAAxC,MAAcC,KAAA,QAAAA,EAAqBwC,EAAiBD,GAASxC,CAAU;AAAA,IACzE;AAAA,IACA,CAACC,CAAkB;AAAA;AAAA,EACrB,GAEM0C,IAAuBjC;AAAA,IAC3B,CAAC8B,MAAiB;AAChB,MAAA3C,KAAA,QAAAA,EAAc,CAAC+C,MAAQ;AACrB,cAAMC,IAAcL,aAAmB,WAAWA,EAAQI,CAAG,IAAIJ;AACjE,eAAA1C,KAAA,QAAAA,EAAmB+C,IACZA;AAAA,MAAA;AAAA,IAEX;AAAA,IACA,CAAChD,GAAaC,CAAgB;AAAA,EAChC,GAEMgD,IAAQC,GAAc;AAAA,IAC1B,MAAMzC;AAAA,IACN,SAAAuB;AAAA,IACA,OAAO;AAAA,MACL,UAAAjC;AAAA,MACA,cAAAD;AAAA,MACA,cAAAN;AAAA,MACA,YAAAW;AAAA,IACF;AAAA,IACA,sBAAsBuC;AAAA,IACtB,oBAAoBG;AAAA,IACpB,WAAW;AAAA,MACT,OAAO1F;AAAA,IACT;AAAA,IACA,gBAAgB;AAAA,IAChB,oBAAoB;AAAA;AAAA,IACpB,kBAAkB,CAAC,CAACiD;AAAA,IACpB,UAAU,CAAChD,MAAQA,EAAI;AAAA,IACvB,uBAAuB;AAAA;AAAA,IACvB,kBAAkB0F;AAAA,IAClB,YAAY,CAAC1F,MAAQA,EAAI;AAAA,IACzB,iBAAiB+F,GAAgB;AAAA,IACjC,qBAAqBC,GAAoB;AAAA,IACzC,qBAAqBC,GAAoB;AAAA,IACzC,oBAAoB;AAAA;AAAA,IAEpB,MAAM;AAAA,MACJ,cAAc,CAAC,CAAClE;AAAA,MAChB,WAAAF;AAAA,MACA,UAAAW;AAAA,MACA,GAAGH;AAAA,IAAA;AAAA,EACL,CACD;AAID,EAAA6D,GAAU,MAAM;AACd,IAAA9C,EAAS,UAAUyC;AAAA,EAAA,GAClB,CAACA,CAAK,CAAC;AAEV,QAAM,EAAE,MAAA5E,EAAA,IAAS4E,EAAM,YAAY,GAG7BM,IAAoBhD,EAAuB,IAAI,GAE/CiD,IAAiBC,GAAe;AAAA,IACpC,OAAOpF,EAAK;AAAA,IACZ,cAAc,MAAMqB,KAAa;AAAA;AAAA,IACjC,kBAAkB,MAAM6D,EAAkB;AAAA;AAAA,IAE1C,gBAAgB7D,IACZ,MAAMA,IACN,OAAO,SAAW,OAAe,UAAU,UAAU,QAAQ,SAAS,MAAM,KAC5E,CAACgE,MAAYA,KAAA,gBAAAA,EAAS,wBAAwB,SAC9C;AAAA,IACJ,UAAU;AAAA,EAAA,CACX,GAGKC,IAAoB9C;AAAA,IACxB,CAAC+C,MAA6B;AAC5B,MAAIA,KACFJ,EAAe,eAAeI,CAAI;AAAA,IAEtC;AAAA,IACA,CAACJ,CAAc;AAAA,EACjB,GAGMK,IAAehD;AAAA,IACnB,CAACa,MAAyC;AACxC,UAAI,CAAC/B,EAAgB;AAErB,YAAMmE,IAASpC,EAAM,eACf,EAAE,WAAAqC,GAAW,cAAAC,GAAc,cAAAC,EAAiB,IAAAH;AAK9C,MAFiBE,IAAeD,IAAYE,IAAe,OAE3C,CAAChF,KACJU,EAAA;AAAA,IAEnB;AAAA,IACA,CAACA,GAAgBV,CAAS;AAAA,EAC5B,GAEMiF,IAAuB,CAAC3B,MAAwC;AAEpE,IAAIlD,KAAyB,CAAEkD,EAAE,OAAuB,QAAQ,IAAI,MAC5DU,EAAA,gBAAgB,EAAE,GACxB3C,EAAkB,UAAU;AAAA,EAEhC;AAGE,SAAA6D,gBAAAA,EAAA;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAKb;AAAA,MACL,WAAWjB,EAAK,EAAE,WAAArD,GAAW;AAAA,MAC7B,UAAU4E;AAAA,MACV,SAASK;AAAA,MAER,UAAA;AAAA,QAAC,CAAAhF,2BACC,SACC,EAAA,UAAAsD,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,QAAQ,GAAGgB,KAAA,gBAAAA,EAAgB,cAAc;AAAA;AAAA,YAC3C;AAAA,YAEC,UAAgBA,KAAA,gBAAAA,EAAA,kBAAkB,IAAI,CAACa,MAAe;;AAC/C,oBAAAjH,IAAMiB,EAAKgG,EAAW,KAAK;AAE/B,qBAAA7B,gBAAAA,EAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,cAAY6B,EAAW;AAAA,kBACvB,KAAKV;AAAA,kBAEL,IAAIvG,EAAI;AAAA,kBACP,GAAGyC,KAAA,gBAAAA,EAAI;AAAA,kBACR,OAAO;AAAA,oBACL,WAAW,cAAcwE,EAAW,KAAK;AAAA;AAAA,oBACzC,IAAGpG,IAAA4B,KAAA,gBAAAA,EAAI,QAAJ,gBAAA5B,EAAS;AAAA;AAAA,kBACd;AAAA,kBAEC,UAAIb,EAAA,gBAAkB,EAAA,IAAI,CAACkH,MAEvB9B,gBAAAA,EAAAA,IAAA,MAAA,EACE,UAAW+B,GAAAD,EAAK,OAAO,UAAU,MAAMA,EAAK,WAAW,CAAC,EADlD,GAAAA,EAAK,EAEd,CAEH;AAAA,gBAAA;AAAA,gBAdIlH,EAAI;AAAA,cAeX;AAAA,YAEH;AAAA,UAAA;AAAA,QAAA,GAEL;AAAA,QAED,CAAC,CAAC8B,KAASsD,gBAAAA,EAAAA,IAACgC,MAAiB,OAAAtF,EAAc,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAC9C;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"SimpleTable.es.js","sources":["../../../../../src/containers/SimpleTable/SimpleTable.tsx"],"sourcesContent":["import { FC, useMemo, useRef, MouseEvent as ReactMouseEvent, useCallback, useEffect } from 'react'\nimport * as Styled from './SimpleTable.styled'\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n ColumnDef,\n flexRender,\n Row,\n FilterFn,\n SortingFn,\n sortingFns,\n RowData,\n Table,\n OnChangeFn,\n RowSelectionState,\n functionalUpdate,\n} from '@tanstack/react-table'\nimport { useVirtualizer } from '@tanstack/react-virtual'\n\nimport clsx from 'clsx'\nimport useRowKeydown, { RowKeyboardEvent } from './hooks/useRowKeydown'\n\nimport { RankingInfo, rankItem, compareItems } from '@tanstack/match-sorter-utils'\nimport { useSimpleTableContext } from './context/SimpleTableContext'\nimport { SimpleTableCellTemplate, SimpleTableCellTemplateProps } from './SimpleTableRowTemplate'\nimport { EmptyPlaceholder } from '@shared/components'\nimport { RowPinningState } from '@tanstack/react-table'\n\ndeclare module '@tanstack/react-table' {\n //add fuzzy filter to the filterFns\n interface FilterFns {\n fuzzy: FilterFn<unknown>\n }\n interface FilterMeta {\n itemRank: RankingInfo\n }\n\n interface TableMeta<TData extends RowData> {\n isExpandable?: boolean\n isLoading?: boolean\n children?: (\n props: SimpleTableCellTemplateProps,\n row: Row<TData>,\n table: Table<SimpleTableRow>,\n ) => JSX.Element\n [key: string]: any\n }\n}\n\n// Define a custom fuzzy filter function that will apply ranking info to rows (using match-sorter utils)\nconst fuzzyFilter: FilterFn<any> = (row, columnId, searchValue, addMeta) => {\n const cellValue = row.getValue(columnId)\n // convert non-string cell values to string\n let searchString =\n typeof cellValue === 'string'\n ? cellValue\n : Array.isArray(cellValue)\n ? cellValue.join(' ')\n : JSON.stringify(cellValue)\n\n // combine label and parents into a single string for searching if columnId is 'label'\n if (columnId === 'label') {\n searchString = [row.original.label, row.original.name, ...(row.original.parents || [])].join(\n ' ',\n )\n }\n\n // Rank the item\n const itemRank = rankItem(searchString, searchValue)\n\n // Store the itemRank info\n addMeta({\n itemRank,\n })\n\n // Return if the item should be filtered in/out\n return itemRank.passed\n}\n\n// Define a custom fuzzy sort function that will sort by rank if the row has ranking information\nconst fuzzySort: SortingFn<any> = (rowA, rowB, columnId) => {\n let dir = 0\n\n // Only sort by rank if the column has ranking information\n if (rowA.columnFiltersMeta[columnId]) {\n dir = compareItems(\n rowA.columnFiltersMeta[columnId]?.itemRank!,\n rowB.columnFiltersMeta[columnId]?.itemRank!,\n )\n }\n\n // Provide an alphanumeric fallback for when the item ranks are equal\n return dir === 0 ? sortingFns.alphanumeric(rowA, rowB, columnId) : dir\n}\n\nexport type RowItemData = {\n id: string\n name?: string | null\n label?: string | null\n subType?: string | null\n [key: string]: any\n}\n\nexport type SimpleTableRow = {\n id: string\n parentId?: string\n name: string\n label: string\n parents?: string[]\n icon?: string | null\n iconColor?: string\n iconFilled?: boolean\n img?: string | null\n startContent?: JSX.Element\n endContent?: JSX.Element\n subRows: SimpleTableRow[]\n data: RowItemData\n isDisabled?: boolean\n disabledMessage?: string\n inactive?: boolean\n}\n\nexport interface SimpleTableProps {\n data: SimpleTableRow[]\n isLoading: boolean\n error?: string\n isExpandable?: boolean // show expand/collapse icons\n isMultiSelect?: boolean // enable multi-select with shift+click and ctrl/cmd+click\n enableClickToDeselect?: boolean // allow deselecting a single selected row by clicking it again & clicking outside clears selection\n enableNonFolderIndent?: boolean // indent non-folder rows to align with folder rows\n forceUpdateTable?: any\n globalFilter?: string\n meta?: Record<string, any>\n rowHeight?: number // height of each row, used for virtual scrolling\n onScrollBottom?: () => void // callback fired when scrolled to the bottom of the table\n children?: (\n props: SimpleTableCellTemplateProps,\n row: Row<SimpleTableRow>,\n table: Table<SimpleTableRow>,\n ) => JSX.Element\n pt?: {\n cell?: SimpleTableCellTemplateProps\n row?: React.HTMLAttributes<HTMLTableRowElement>\n }\n}\n\n// Helper function to get row range for shift-selection\n// Operates on the provided list of rows (e.g., filtered and sorted rows)\nfunction getRowRange<TData extends RowData>(\n rows: Array<Row<TData>>,\n idA: string,\n idB: string,\n): Array<Row<TData>> {\n const range: Array<Row<TData>> = []\n // If idA and idB are the same, or one is not found, handle appropriately\n if (idA === idB) {\n const singleRow = rows.find((row) => row.id === idA)\n return singleRow ? [singleRow] : []\n }\n\n let indexA = -1\n let indexB = -1\n\n for (let i = 0; i < rows.length; i++) {\n if (rows[i].id === idA) indexA = i\n if (rows[i].id === idB) indexB = i\n if (indexA !== -1 && indexB !== -1) break\n }\n\n if (indexA === -1 || indexB === -1) return [] // One or both IDs not found\n\n const start = Math.min(indexA, indexB)\n const end = Math.max(indexA, indexB)\n\n for (let i = start; i <= end; i++) {\n range.push(rows[i])\n }\n return range\n}\n\nconst SimpleTable: FC<SimpleTableProps> = ({\n data = [],\n isLoading,\n error,\n isExpandable,\n isMultiSelect = true,\n enableClickToDeselect = true,\n enableNonFolderIndent = true,\n forceUpdateTable,\n globalFilter,\n meta,\n rowHeight,\n onScrollBottom,\n children,\n pt,\n}) => {\n const {\n rowSelection,\n expanded,\n setExpanded,\n onExpandedChange,\n onRowSelectionChange,\n rowPinning,\n onRowPinningChange,\n } = useSimpleTableContext()\n const lastSelectedIdRef = useRef<string | null>(null)\n const tableRef = useRef<Table<SimpleTableRow> | null>(null)\n\n // stable data reference\n const tableData = useMemo(() => {\n if (!isLoading) return data\n\n // show loading placeholders\n return Array.from({ length: 10 }, (_, i) => ({\n id: `placeholder-${i}`,\n name: `placeholder-${i}`,\n label: `placeholder-${i}`,\n icon: null,\n img: null,\n subRows: [],\n data: {\n id: `placeholder-${i}`,\n },\n }))\n }, [isLoading, data, forceUpdateTable])\n\n // Define the core selection logic using useCallback for stability\n const handleSelectionLogic = useCallback(\n (\n tableInstance: Table<SimpleTableRow>,\n rowId: string,\n isShift: boolean,\n isCtrlOrMeta: boolean,\n ) => {\n const currentId = rowId\n const allProcessableRows = tableInstance.getFilteredRowModel().flatRows\n const currentRow = allProcessableRows.find((r) => r.id === currentId)\n\n if (!currentRow) return\n\n // Prevent selection of disabled rows\n if (currentRow.original.isDisabled) return\n\n // If click-to-deselect is enabled and only one row is selected and it's the current row\n if (\n enableClickToDeselect &&\n !isShift &&\n !isCtrlOrMeta &&\n Object.keys(tableInstance.getState().rowSelection).length === 1 &&\n tableInstance.getState().rowSelection[currentId]\n ) {\n tableInstance.setRowSelection({})\n lastSelectedIdRef.current = null\n return\n }\n\n if (isMultiSelect && isShift && lastSelectedIdRef.current) {\n const lastId = lastSelectedIdRef.current\n const anchorRow = allProcessableRows.find((r) => r.id === lastId)\n\n if (!anchorRow) {\n tableInstance.setRowSelection({ [currentId]: true })\n } else {\n const rowsToToggle = getRowRange(allProcessableRows, currentId, lastId)\n const newSelection: RowSelectionState = {}\n rowsToToggle.forEach((r) => (newSelection[r.id] = true))\n tableInstance.setRowSelection(newSelection)\n }\n } else if (isMultiSelect && isCtrlOrMeta) {\n currentRow.toggleSelected()\n } else {\n tableInstance.setRowSelection({ [currentId]: true })\n }\n lastSelectedIdRef.current = currentId\n },\n [isMultiSelect, enableClickToDeselect],\n )\n\n // Callback for useRowKeydown's handleRowSelect prop\n // Uses tableRef to access the table instance, avoiding direct dependency on 'table' variable at definition time\n const handleRowSelectForKeydown = useCallback(\n (\n event: RowKeyboardEvent, // Use the specific keyboard event type from the hook\n selectedRow: Row<SimpleTableRow>,\n ) => {\n if (!tableRef.current) {\n console.warn('tableRef not yet available in handleRowSelectForKeydown')\n return\n }\n\n // Extract modifier keys from the event\n const isShiftKey = event.shiftKey\n const isCtrlKey = event.ctrlKey || event.metaKey\n\n handleSelectionLogic(\n tableRef.current, // Pass the main table instance\n selectedRow.id,\n isShiftKey,\n isCtrlKey,\n )\n },\n [handleSelectionLogic], // Depends only on handleSelectionLogic\n )\n\n const { handleRowKeyDown } = useRowKeydown<SimpleTableRow>({\n handleRowSelect: handleRowSelectForKeydown,\n })\n\n const columns = useMemo<ColumnDef<SimpleTableRow>[]>(\n () => [\n {\n accessorKey: 'label',\n header: undefined,\n filterFn: 'fuzzy',\n sortingFn: fuzzySort, //sort by fuzzy rank (falls back to alphanumeric)\n cell: ({ row, getValue, table: cellTableInstance }) => {\n const cellMeta = cellTableInstance.options.meta\n\n const handleCellClick = (event: ReactMouseEvent<HTMLElement, MouseEvent>) => {\n // Prevent row selection if clicking on an interactive element within the cell\n if (\n event.target instanceof HTMLInputElement ||\n event.target instanceof HTMLButtonElement ||\n event.target instanceof HTMLTextAreaElement ||\n event.target instanceof HTMLSelectElement ||\n event.target instanceof HTMLAnchorElement ||\n (event.target as HTMLElement).closest('button, a, input, textarea, select')\n ) {\n return\n }\n handleSelectionLogic(\n cellTableInstance, // Pass the cell's table instance\n row.id,\n event.shiftKey,\n event.ctrlKey || event.metaKey,\n )\n }\n\n const props: SimpleTableCellTemplateProps & {\n onClick?: (event: ReactMouseEvent<HTMLElement, MouseEvent>) => void\n } = {\n className: clsx({\n selected: row.getIsSelected(),\n loading: cellMeta?.isLoading,\n disabled: row.original.isDisabled, // you can't select disabled rows\n inactive: row.original.inactive, // false: archived items but still selectable\n }),\n onKeyDown: (e) => {\n if (e.target instanceof HTMLInputElement) return\n // Corrected typo: handleRowKeydown -> handleRowKeyDown\n handleRowKeyDown(e, row)\n },\n onClick: handleCellClick, // Added onClick handler\n depth: row.depth,\n tabIndex: 0,\n value: getValue<string>(),\n parents: row.original.parents,\n icon: row.original.icon || undefined,\n iconColor: row.original.iconColor,\n iconFilled: row.original.iconFilled,\n isRowExpandable: row.getCanExpand(),\n enableNonFolderIndent,\n isRowExpanded: row.getIsExpanded(),\n isTableExpandable: cellMeta?.isExpandable,\n onExpandClick: row.getToggleExpandedHandler(),\n startContent: row.original.startContent,\n endContent: row.original.endContent,\n isDisabled: row.original.isDisabled,\n disabledMessage: row.original.disabledMessage,\n }\n\n // Use children function if provided, otherwise default to SimpleTableCellTemplate\n return cellMeta?.children ? (\n cellMeta.children(props, row, cellTableInstance)\n ) : (\n <SimpleTableCellTemplate {...props} {...pt?.cell} />\n )\n },\n },\n ],\n [\n forceUpdateTable,\n handleSelectionLogic,\n handleRowKeyDown,\n enableClickToDeselect,\n enableNonFolderIndent,\n ], // include enableClickToDeselect for completeness\n )\n\n const handleRowSelectionChangeCallback: OnChangeFn<RowSelectionState> = useCallback(\n (updater) => {\n onRowSelectionChange(functionalUpdate(updater, rowSelection))\n },\n [onRowSelectionChange, rowSelection], // Depends only on the stable setState function from context\n )\n\n const handleRowPinningChangeCallback: OnChangeFn<RowPinningState> = useCallback(\n (updater) => {\n rowPinning && onRowPinningChange?.(functionalUpdate(updater, rowPinning))\n },\n [onRowPinningChange], // Depends only on the stable setState function from context\n )\n\n const handleExpandedChange = useCallback(\n (updater: any) => {\n setExpanded?.((old) => {\n const newExpanded = updater instanceof Function ? updater(old) : updater\n onExpandedChange?.(newExpanded)\n return newExpanded\n })\n },\n [setExpanded, onExpandedChange],\n )\n\n const table = useReactTable({\n data: tableData,\n columns,\n state: {\n expanded,\n rowSelection,\n globalFilter,\n rowPinning,\n },\n onRowSelectionChange: handleRowSelectionChangeCallback,\n onRowPinningChange: handleRowPinningChangeCallback,\n filterFns: {\n fuzzy: fuzzyFilter,\n },\n globalFilterFn: 'fuzzy',\n enableRowSelection: true, //enable row selection for all rows\n enableRowPinning: !!onRowPinningChange,\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n onExpandedChange: handleExpandedChange,\n getSubRows: (row) => row.subRows,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // debugTable: true,\n meta: {\n isExpandable: !!isExpandable,\n isLoading: isLoading,\n children: children,\n ...meta,\n },\n })\n\n // Update tableRef whenever the table instance changes.\n // This ensures handleRowSelectForKeydown uses the current table instance.\n useEffect(() => {\n tableRef.current = table\n }, [table])\n\n const { rows } = table.getRowModel()\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n\n const rowVirtualizer = useVirtualizer({\n count: rows.length,\n estimateSize: () => rowHeight || 34, //estimate row height for accurate scrollbar dragging\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement: rowHeight\n ? () => rowHeight\n : typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n // Memoize the ref callback to prevent infinite re-renders\n const measureElementRef = useCallback(\n (node: HTMLElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n // Handle scroll to bottom detection\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLDivElement>) => {\n if (!onScrollBottom) return\n\n const target = event.currentTarget\n const { scrollTop, scrollHeight, clientHeight } = target\n\n // Check if we're near the bottom (within 100px)\n const isNearBottom = scrollHeight - scrollTop - clientHeight < 100\n\n if (isNearBottom && !isLoading) {\n onScrollBottom()\n }\n },\n [onScrollBottom, isLoading],\n )\n\n const handleContainerClick = (e: React.MouseEvent<HTMLDivElement>) => {\n // if the click is outside of any row, clear selection\n if (enableClickToDeselect && !(e.target as HTMLElement).closest('tr')) {\n table.setRowSelection({})\n lastSelectedIdRef.current = null\n }\n }\n\n return (\n <Styled.TableContainer\n ref={tableContainerRef}\n className={clsx({ isLoading })}\n onScroll={handleScroll}\n onClick={handleContainerClick}\n >\n {!error && (\n <table>\n <tbody\n style={{\n height: `${rowVirtualizer?.getTotalSize()}px`, //tells scrollbar how big the table is\n }}\n >\n {rowVirtualizer?.getVirtualItems().map((virtualRow) => {\n const row = rows[virtualRow.index] as Row<SimpleTableRow>\n return (\n <tr\n data-index={virtualRow.index} //needed for dynamic row height measurement\n ref={measureElementRef} //measure dynamic row height\n key={row.id}\n id={row.id}\n {...pt?.row}\n style={{\n transform: `translateY(${virtualRow.start}px)`, //this should always be a `style` as it changes on scroll\n ...pt?.row?.style, // custom styles to be passed\n }}\n >\n {row.getVisibleCells().map((cell) => {\n return (\n <td key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </td>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n )}\n {!!error && <EmptyPlaceholder error={error} />}\n </Styled.TableContainer>\n )\n}\n\nexport default SimpleTable\n"],"names":["fuzzyFilter","row","columnId","searchValue","addMeta","cellValue","searchString","itemRank","rankItem","fuzzySort","rowA","rowB","dir","compareItems","_a","_b","sortingFns","getRowRange","rows","idA","idB","range","singleRow","indexA","indexB","i","start","end","SimpleTable","data","isLoading","error","isExpandable","isMultiSelect","enableClickToDeselect","enableNonFolderIndent","forceUpdateTable","globalFilter","meta","rowHeight","onScrollBottom","children","pt","rowSelection","expanded","setExpanded","onExpandedChange","onRowSelectionChange","rowPinning","onRowPinningChange","useSimpleTableContext","lastSelectedIdRef","useRef","tableRef","tableData","useMemo","_","handleSelectionLogic","useCallback","tableInstance","rowId","isShift","isCtrlOrMeta","currentId","allProcessableRows","currentRow","r","lastId","rowsToToggle","newSelection","handleRowSelectForKeydown","event","selectedRow","isShiftKey","isCtrlKey","handleRowKeyDown","useRowKeydown","columns","getValue","cellTableInstance","cellMeta","handleCellClick","props","clsx","e","jsx","SimpleTableCellTemplate","handleRowSelectionChangeCallback","updater","functionalUpdate","handleRowPinningChangeCallback","handleExpandedChange","old","newExpanded","table","useReactTable","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","useEffect","tableContainerRef","rowVirtualizer","useVirtualizer","element","measureElementRef","node","handleScroll","target","scrollTop","scrollHeight","clientHeight","handleContainerClick","jsxs","Styled.TableContainer","virtualRow","cell","flexRender","EmptyPlaceholder"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("../../../../../_virtual/jsx-runtime.cjs.js"),S=require("../context/ViewsContext.cjs.js");require("react");const D=require("../../../hooks/useLoadModule.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("lodash");require("react-toastify");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");const j=require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("react-redux");require("custom-protocol-check");const C=require("./ViewFormDialogFallback.cjs.js"),k=require("@ynput/ayon-react-components"),t="views-dialog",v=({})=>{const{editingView:e,editingViewData:o,isLoadingEditingViewData:s,setEditingView:u,viewType:r,projectName:n,currentUser:a,viewSettings:d,shareOptions:l,setSelectedView:c,onCreateView:w,onUpdateView:p,onDeleteView:g,api:V,dispatch:m}=S.useViewsContext(),{powerLicense:x}=j.usePowerpack(),[L,{isLoading:E,outdated:q}]=D.useLoadModule({addon:"powerpack",remote:"views",module:"ViewFormDialog",fallback:C,minVersion:"1.1.1",skip:!r||!x});return!r||!e?null:e&&q?i.jsxRuntimeExports.jsx(k.Dialog,{isOpen:!0,header:"Powerpack Update Required",onClose:()=>u(null),size:"sm",children:i.jsxRuntimeExports.jsxs("p",{children:["Please update the Powerpack addon to at least ",q.required]})}):i.jsxRuntimeExports.jsx(L,{editingView:{viewId:e===!0?void 0:e,...o||{}},isLoading:s,viewSettings:d,setEditingView:u,viewType:r,projectName:n,shareOptions:l,setSelected:c,onCreateView:w,onUpdateView:p,onDeleteView:g,api:V,dispatch:m,currentUser:a,pt:{dialog:{className:t}}})};exports.VIEWS_DIALOG_CLASS=t;exports.default=v;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("../../../../../_virtual/jsx-runtime.cjs.js"),S=require("../context/ViewsContext.cjs.js");require("react");const D=require("../../../hooks/useLoadModule.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("lodash");require("react-toastify");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");const j=require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("react-redux");require("custom-protocol-check");const C=require("./ViewFormDialogFallback.cjs.js"),k=require("@ynput/ayon-react-components"),t="views-dialog",v=({})=>{const{editingView:e,editingViewData:o,isLoadingEditingViewData:s,setEditingView:u,viewType:r,projectName:n,currentUser:a,viewSettings:d,shareOptions:l,setSelectedView:c,onCreateView:w,onUpdateView:p,onDeleteView:g,api:V,dispatch:m}=S.useViewsContext(),{powerLicense:x}=j.usePowerpack(),[L,{isLoading:E,outdated:q}]=D.useLoadModule({addon:"powerpack",remote:"views",module:"ViewFormDialog",fallback:C,minVersion:"1.1.1",skip:!r||!x});return!r||!e?null:e&&q?i.jsxRuntimeExports.jsx(k.Dialog,{isOpen:!0,header:"Powerpack Update Required",onClose:()=>u(null),size:"sm",children:i.jsxRuntimeExports.jsxs("p",{children:["Please update the Powerpack addon to at least ",q.required]})}):i.jsxRuntimeExports.jsx(L,{editingView:{viewId:e===!0?void 0:e,...o||{}},isLoading:s,viewSettings:d,setEditingView:u,viewType:r,projectName:n,shareOptions:l,setSelected:c,onCreateView:w,onUpdateView:p,onDeleteView:g,api:V,dispatch:m,currentUser:a,pt:{dialog:{className:t}}})};exports.VIEWS_DIALOG_CLASS=t;exports.default=v;
|
|
2
2
|
//# sourceMappingURL=ViewsDialogContainer.cjs.js.map
|
package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewsDialogContainer.cjs.js","sources":["../../../../../../src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.tsx"],"sourcesContent":["import { FC } from 'react'\nimport { useViewsContext } from '../context/ViewsContext'\nimport { useLoadModule } from '@shared/hooks'\nimport ViewFormDialogFallback from './ViewFormDialogFallback'\nimport { Dialog } from '@ynput/ayon-react-components'\nimport { usePowerpack } from '@shared/context'\n\nexport const VIEWS_DIALOG_CLASS = 'views-dialog' as const\n\ninterface ViewsDialogContainerProps {}\n\nconst ViewsDialogContainer: FC<ViewsDialogContainerProps> = ({}) => {\n const {\n editingView,\n editingViewData,\n isLoadingEditingViewData,\n setEditingView,\n viewType,\n projectName,\n currentUser,\n viewSettings,\n shareOptions,\n setSelectedView,\n onCreateView,\n onUpdateView,\n onDeleteView,\n api,\n dispatch,\n } = useViewsContext()\n\n const { powerLicense } = usePowerpack()\n\n const [ViewFormDialog, { isLoading: isLoadingQueries, outdated }] = useLoadModule({\n addon: 'powerpack',\n remote: 'views',\n module: 'ViewFormDialog',\n fallback: ViewFormDialogFallback,\n minVersion: '1.1.1',\n skip: !viewType || !powerLicense,\n })\n\n if (!viewType || !editingView) return null\n\n if (editingView && outdated) {\n return (\n <Dialog\n isOpen\n header=\"Powerpack Update Required\"\n onClose={() => setEditingView(null)}\n size=\"sm\"\n >\n <p>Please update the Powerpack addon to at least {outdated.required}</p>\n </Dialog>\n )\n }\n\n return (\n <ViewFormDialog\n editingView={{\n viewId: editingView === true ? undefined : editingView,\n ...(editingViewData || {}),\n }}\n isLoading={isLoadingEditingViewData}\n viewSettings={viewSettings}\n setEditingView={setEditingView}\n viewType={viewType}\n projectName={projectName}\n shareOptions={shareOptions}\n setSelected={setSelectedView}\n onCreateView={onCreateView}\n onUpdateView={onUpdateView}\n onDeleteView={onDeleteView}\n api={api}\n dispatch={dispatch}\n currentUser={currentUser}\n pt={{\n dialog: {\n className: VIEWS_DIALOG_CLASS,\n },\n }}\n />\n )\n}\n\nexport default ViewsDialogContainer\n"],"names":["VIEWS_DIALOG_CLASS","ViewsDialogContainer","editingView","editingViewData","isLoadingEditingViewData","setEditingView","viewType","projectName","currentUser","viewSettings","shareOptions","setSelectedView","onCreateView","onUpdateView","onDeleteView","api","dispatch","useViewsContext","powerLicense","usePowerpack","ViewFormDialog","isLoadingQueries","outdated","useLoadModule","ViewFormDialogFallback","jsx","Dialog"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ViewsDialogContainer.cjs.js","sources":["../../../../../../src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.tsx"],"sourcesContent":["import { FC } from 'react'\nimport { useViewsContext } from '../context/ViewsContext'\nimport { useLoadModule } from '@shared/hooks'\nimport ViewFormDialogFallback from './ViewFormDialogFallback'\nimport { Dialog } from '@ynput/ayon-react-components'\nimport { usePowerpack } from '@shared/context'\n\nexport const VIEWS_DIALOG_CLASS = 'views-dialog' as const\n\ninterface ViewsDialogContainerProps {}\n\nconst ViewsDialogContainer: FC<ViewsDialogContainerProps> = ({}) => {\n const {\n editingView,\n editingViewData,\n isLoadingEditingViewData,\n setEditingView,\n viewType,\n projectName,\n currentUser,\n viewSettings,\n shareOptions,\n setSelectedView,\n onCreateView,\n onUpdateView,\n onDeleteView,\n api,\n dispatch,\n } = useViewsContext()\n\n const { powerLicense } = usePowerpack()\n\n const [ViewFormDialog, { isLoading: isLoadingQueries, outdated }] = useLoadModule({\n addon: 'powerpack',\n remote: 'views',\n module: 'ViewFormDialog',\n fallback: ViewFormDialogFallback,\n minVersion: '1.1.1',\n skip: !viewType || !powerLicense,\n })\n\n if (!viewType || !editingView) return null\n\n if (editingView && outdated) {\n return (\n <Dialog\n isOpen\n header=\"Powerpack Update Required\"\n onClose={() => setEditingView(null)}\n size=\"sm\"\n >\n <p>Please update the Powerpack addon to at least {outdated.required}</p>\n </Dialog>\n )\n }\n\n return (\n <ViewFormDialog\n editingView={{\n viewId: editingView === true ? undefined : editingView,\n ...(editingViewData || {}),\n }}\n isLoading={isLoadingEditingViewData}\n viewSettings={viewSettings}\n setEditingView={setEditingView}\n viewType={viewType}\n projectName={projectName}\n shareOptions={shareOptions}\n setSelected={setSelectedView}\n onCreateView={onCreateView}\n onUpdateView={onUpdateView}\n onDeleteView={onDeleteView}\n api={api}\n dispatch={dispatch}\n currentUser={currentUser}\n pt={{\n dialog: {\n className: VIEWS_DIALOG_CLASS,\n },\n }}\n />\n )\n}\n\nexport default ViewsDialogContainer\n"],"names":["VIEWS_DIALOG_CLASS","ViewsDialogContainer","editingView","editingViewData","isLoadingEditingViewData","setEditingView","viewType","projectName","currentUser","viewSettings","shareOptions","setSelectedView","onCreateView","onUpdateView","onDeleteView","api","dispatch","useViewsContext","powerLicense","usePowerpack","ViewFormDialog","isLoadingQueries","outdated","useLoadModule","ViewFormDialogFallback","jsx","Dialog"],"mappings":"8jLAOaA,EAAqB,eAI5BC,EAAsD,CAAC,CAAA,IAAO,CAC5D,KAAA,CACJ,YAAAC,EACA,gBAAAC,EACA,yBAAAC,EACA,eAAAC,EACA,SAAAC,EACA,YAAAC,EACA,YAAAC,EACA,aAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,aAAAC,EACA,aAAAC,EACA,IAAAC,EACA,SAAAC,GACEC,kBAAgB,EAEd,CAAE,aAAAC,CAAa,EAAIC,eAAa,EAEhC,CAACC,EAAgB,CAAE,UAAWC,EAAkB,SAAAC,CAAS,CAAC,EAAIC,gBAAc,CAChF,MAAO,YACP,OAAQ,QACR,OAAQ,iBACR,SAAUC,EACV,WAAY,QACZ,KAAM,CAAClB,GAAY,CAACY,CAAA,CACrB,EAED,MAAI,CAACZ,GAAY,CAACJ,EAAoB,KAElCA,GAAeoB,EAEfG,EAAA,kBAAA,IAACC,EAAA,OAAA,CACC,OAAM,GACN,OAAO,4BACP,QAAS,IAAMrB,EAAe,IAAI,EAClC,KAAK,KAEL,kCAAC,IAAE,CAAA,SAAA,CAAA,iDAA+CiB,EAAS,QAAA,CAAS,CAAA,CAAA,CACtE,EAKFG,EAAA,kBAAA,IAACL,EAAA,CACC,YAAa,CACX,OAAQlB,IAAgB,GAAO,OAAYA,EAC3C,GAAIC,GAAmB,CAAA,CACzB,EACA,UAAWC,EACX,aAAAK,EACA,eAAAJ,EACA,SAAAC,EACA,YAAAC,EACA,aAAAG,EACA,YAAaC,EACb,aAAAC,EACA,aAAAC,EACA,aAAAC,EACA,IAAAC,EACA,SAAAC,EACA,YAAAR,EACA,GAAI,CACF,OAAQ,CACN,UAAWR,CAAA,CACb,CACF,CACF,CAEJ"}
|