@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":"getUsers.es.js","sources":["../../../../../../src/api/queries/users/getUsers.ts"],"sourcesContent":["import { gqlApi, usersApi } from '@shared/api/generated'\nimport { parseAllAttribs } from '@shared/api'\nimport {\n GetActiveUsersCountQuery,\n GetAllAssigneesQuery,\n GetAllProjectUsersAsAssigneeQuery,\n} from '@shared/api'\n\nconst USER_BY_NAME_QUERY = `\n query UserList($name:String!) {\n users(name: $name) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n allAttrib\n }\n }\n }\n }\n`\nconst USERS_QUERY = `\n query UserList {\n users(last: 2000) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n userPool\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n createdAt\n updatedAt\n apiKeyPreview\n allAttrib\n }\n }\n }\n }\n`\n\nconst ASSIGNEES_BY_NAME_QUERY = `\nquery Assignees($names: [String!]!){\n users(names: $names) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\nconst ASSIGNEES_QUERY = `\nquery Assignees($projectName: String) {\n users(last: 2000 projectName: $projectName) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\n\nconst enhancedApi = usersApi.enhanceEndpoints({\n endpoints: {\n getCurrentUser: {\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n getUserSessions: {\n transformResponse: (res: any) => res?.sessions,\n providesTags: (_res, _g, { userName }) => [{ type: 'session', id: userName }],\n },\n },\n})\n\nconst injectedApi = gqlApi.injectEndpoints({\n endpoints: (build) => ({\n getUsers: build.query({\n query: () => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USERS_QUERY,\n variables: {},\n },\n }),\n transformResponse: (res: any, _meta, { selfName }) => {\n if (res?.errors) {\n console.log(res.errors)\n throw new Error(res.errors[0].message)\n }\n\n return res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n self: e.node.name === selfName,\n avatarUrl: `/api/users/${e.node.name}/avatar`,\n accessGroups: e.node.accessGroups ? JSON.parse(e.node.accessGroups) : {},\n attrib: parseAllAttribs(e.node.allAttrib),\n }))\n },\n providesTags: (users) =>\n users\n ? [...users.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : [{ type: 'user', id: 'LIST' }],\n }),\n getUserByName: build.query({\n query: ({ name }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USER_BY_NAME_QUERY,\n variables: { name },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n avatarUrl: `/api/users/${e.node?.name}/avatar`,\n attrib: parseAllAttribs(e.node.allAttrib),\n })),\n providesTags: (res) =>\n res\n ? [...res.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : ['user', { type: 'user', id: 'LIST' }],\n }),\n getUsersAssignee: build.query({\n query: ({ names, projectName }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: names ? ASSIGNEES_BY_NAME_QUERY : ASSIGNEES_QUERY,\n variables: { names, projectName },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.flatMap((u: any) => {\n if (!u.node) return []\n\n const n = u.node\n\n return {\n name: n.name,\n fullName: n.attrib?.fullName,\n avatarUrl: `/api/users/${n.name}/avatar`,\n }\n }),\n providesTags: (res) =>\n res\n ? [\n ...res.map((user: any) => ({ type: 'user', id: user.name })),\n { type: 'user', id: 'LIST' },\n ]\n : [{ type: 'user', id: 'LIST' }],\n }),\n }),\n overrideExisting: true,\n})\n\ntype AssigneeNode = GetAllProjectUsersAsAssigneeQuery['users']['edges'][0]['node']\nexport type Assignees = {\n name: AssigneeNode['name']\n fullName: AssigneeNode['attrib']['fullName']\n updatedAt: AssigneeNode['updatedAt']\n}[]\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetAllProjectUsersAsAssignee'> & {\n GetAllProjectUsersAsAssignee: OverrideResultType<\n Definitions['GetAllProjectUsersAsAssignee'],\n Assignees\n >\n GetActiveUsersCount: OverrideResultType<Definitions['GetActiveUsersCount'], number>\n GetAllAssignees: OverrideResultType<Definitions['GetAllAssignees'], Assignees>\n}\n\nconst gqlUsers = injectedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetAllProjectUsersAsAssignee: {\n transformResponse: (res: GetAllProjectUsersAsAssigneeQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n GetActiveUsersCount: {\n transformResponse: (res: GetActiveUsersCountQuery) =>\n res.users.edges.filter((e) => e.node.active && !e.node.isGuest).length,\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n GetAllAssignees: {\n transformResponse: (res: GetAllAssigneesQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const {\n useGetAllProjectUsersAsAssigneeQuery,\n useLazyGetAllProjectUsersAsAssigneeQuery,\n useGetActiveUsersCountQuery,\n useGetAllAssigneesQuery,\n useGetUsersQuery,\n useGetUserByNameQuery,\n useGetUsersAssigneeQuery,\n} = gqlUsers\n\nexport const { useGetUserSessionsQuery, useGetCurrentUserQuery } = enhancedApi\nexport default injectedApi\n"],"names":["USER_BY_NAME_QUERY","USERS_QUERY","ASSIGNEES_BY_NAME_QUERY","ASSIGNEES_QUERY","enhancedApi","usersApi","res","_res","_g","userName","injectedApi","gqlApi","build","_meta","selfName","_a","e","parseAllAttribs","users","name","names","projectName","u","n","user","gqlUsers","useGetAllProjectUsersAsAssigneeQuery","useLazyGetAllProjectUsersAsAssigneeQuery","useGetActiveUsersCountQuery","useGetAllAssigneesQuery","useGetUsersQuery","useGetUserByNameQuery","useGetUsersAssigneeQuery","useGetUserSessionsQuery","useGetCurrentUserQuery"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getUsers.es.js","sources":["../../../../../../src/api/queries/users/getUsers.ts"],"sourcesContent":["import { gqlApi, usersApi } from '@shared/api/generated'\nimport { parseAllAttribs } from '@shared/api'\nimport {\n GetActiveUsersCountQuery,\n GetAllAssigneesQuery,\n GetAllProjectUsersAsAssigneeQuery,\n} from '@shared/api'\n\nconst USER_BY_NAME_QUERY = `\n query UserList($name:String!) {\n users(name: $name) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n allAttrib\n }\n }\n }\n }\n`\nconst USERS_QUERY = `\n query UserList {\n users(last: 2000) {\n edges {\n node {\n name\n isAdmin\n isManager\n isService\n isDeveloper\n isGuest\n active\n userPool\n accessGroups\n defaultAccessGroups\n hasPassword\n disablePasswordLogin\n createdAt\n updatedAt\n apiKeyPreview\n allAttrib\n }\n }\n }\n }\n`\n\nconst ASSIGNEES_BY_NAME_QUERY = `\nquery Assignees($names: [String!]!){\n users(names: $names) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\nconst ASSIGNEES_QUERY = `\nquery Assignees($projectName: String) {\n users(last: 2000 projectName: $projectName) {\n edges {\n node {\n name\n attrib {\n fullName\n }\n }\n }\n}\n}`\n\nconst enhancedApi = usersApi.enhanceEndpoints({\n endpoints: {\n getCurrentUser: {\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n getUser: {\n providesTags: (res) =>\n res ? [{ type: 'user', id: res.name }] : [{ type: 'user', id: 'LIST' }],\n },\n getUserSessions: {\n transformResponse: (res: any) => res?.sessions,\n providesTags: (_res, _g, { userName }) => [{ type: 'session', id: userName }],\n },\n },\n})\n\nconst injectedApi = gqlApi.injectEndpoints({\n endpoints: (build) => ({\n getUsers: build.query({\n query: () => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USERS_QUERY,\n variables: {},\n },\n }),\n transformResponse: (res: any, _meta, { selfName }) => {\n if (res?.errors) {\n console.log(res.errors)\n throw new Error(res.errors[0].message)\n }\n\n return res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n self: e.node.name === selfName,\n avatarUrl: `/api/users/${e.node.name}/avatar`,\n accessGroups: e.node.accessGroups ? JSON.parse(e.node.accessGroups) : {},\n attrib: parseAllAttribs(e.node.allAttrib),\n }))\n },\n providesTags: (users) =>\n users\n ? [...users.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : [{ type: 'user', id: 'LIST' }],\n }),\n getUserByName: build.query({\n query: ({ name }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: USER_BY_NAME_QUERY,\n variables: { name },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.map((e: any) => ({\n ...e.node,\n avatarUrl: `/api/users/${e.node?.name}/avatar`,\n attrib: parseAllAttribs(e.node.allAttrib),\n })),\n providesTags: (res) =>\n res\n ? [...res.map((e: any) => ({ type: 'user', id: e.name })), { type: 'user', id: 'LIST' }]\n : ['user', { type: 'user', id: 'LIST' }],\n }),\n getUsersAssignee: build.query({\n query: ({ names, projectName }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: names ? ASSIGNEES_BY_NAME_QUERY : ASSIGNEES_QUERY,\n variables: { names, projectName },\n },\n }),\n transformResponse: (res: any) =>\n res?.data?.users.edges.flatMap((u: any) => {\n if (!u.node) return []\n\n const n = u.node\n\n return {\n name: n.name,\n fullName: n.attrib?.fullName,\n avatarUrl: `/api/users/${n.name}/avatar`,\n }\n }),\n providesTags: (res) =>\n res\n ? [\n ...res.map((user: any) => ({ type: 'user', id: user.name })),\n { type: 'user', id: 'LIST' },\n ]\n : [{ type: 'user', id: 'LIST' }],\n }),\n }),\n overrideExisting: true,\n})\n\ntype AssigneeNode = GetAllProjectUsersAsAssigneeQuery['users']['edges'][0]['node']\nexport type Assignees = {\n name: AssigneeNode['name']\n fullName: AssigneeNode['attrib']['fullName']\n updatedAt: AssigneeNode['updatedAt']\n}[]\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetAllProjectUsersAsAssignee'> & {\n GetAllProjectUsersAsAssignee: OverrideResultType<\n Definitions['GetAllProjectUsersAsAssignee'],\n Assignees\n >\n GetActiveUsersCount: OverrideResultType<Definitions['GetActiveUsersCount'], number>\n GetAllAssignees: OverrideResultType<Definitions['GetAllAssignees'], Assignees>\n}\n\nconst gqlUsers = injectedApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetAllProjectUsersAsAssignee: {\n transformResponse: (res: GetAllProjectUsersAsAssigneeQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n GetActiveUsersCount: {\n transformResponse: (res: GetActiveUsersCountQuery) =>\n res.users.edges.filter((e) => e.node.active && !e.node.isGuest).length,\n providesTags: [{ type: 'user', id: 'LIST' }],\n },\n GetAllAssignees: {\n transformResponse: (res: GetAllAssigneesQuery) =>\n res.users.edges.map((e) => ({\n name: e.node.name,\n fullName: e.node.attrib.fullName,\n updatedAt: e.node.updatedAt,\n })),\n providesTags: (res) =>\n res\n ? [{ type: 'user', id: 'LIST' }, ...res.map((e) => ({ type: 'user', id: e.name }))]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const {\n useGetAllProjectUsersAsAssigneeQuery,\n useLazyGetAllProjectUsersAsAssigneeQuery,\n useGetActiveUsersCountQuery,\n useGetAllAssigneesQuery,\n useGetUsersQuery,\n useGetUserByNameQuery,\n useGetUsersAssigneeQuery,\n} = gqlUsers\n\nexport const { useGetUserSessionsQuery, useGetCurrentUserQuery, useGetUserQuery } = enhancedApi\nexport default injectedApi\n"],"names":["USER_BY_NAME_QUERY","USERS_QUERY","ASSIGNEES_BY_NAME_QUERY","ASSIGNEES_QUERY","enhancedApi","usersApi","res","_res","_g","userName","injectedApi","gqlApi","build","_meta","selfName","_a","e","parseAllAttribs","users","name","names","projectName","u","n","user","gqlUsers","useGetAllProjectUsersAsAssigneeQuery","useLazyGetAllProjectUsersAsAssigneeQuery","useGetActiveUsersCountQuery","useGetAllAssigneesQuery","useGetUsersQuery","useGetUserByNameQuery","useGetUsersAssigneeQuery","useGetUserSessionsQuery","useGetCurrentUserQuery","useGetUserQuery"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");const i=require("../../generated/projects.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");const s=i.api.enhanceEndpoints({endpoints:{listGuestUsers:{providesTags:e=>e!=null&&e.users?[...e.users.map(({email:r})=>({type:"guest",id:r})),{type:"guest",id:"LIST"}]:[{type:"guest",id:"LIST"}]},addGuestUser:{invalidatesTags:[{type:"guest",id:"LIST"}]},removeGuestUser:{invalidatesTags:(e,r,u)=>[{type:"guest",id:u.email}]}}}),{useListGuestUsersQuery:t,useAddGuestUserMutation:q,useRemoveGuestUserMutation:a}=s;exports.useAddGuestUserMutation=q;exports.useListGuestUsersQuery=t;exports.useRemoveGuestUserMutation=a;
|
|
2
|
+
//# sourceMappingURL=guests.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guests.cjs.js","sources":["../../../../../../src/api/queries/users/guests.ts"],"sourcesContent":["import { projectsApi } from '@shared/api/generated'\n\nconst enhancedGuestsApi = projectsApi.enhanceEndpoints({\n endpoints: {\n listGuestUsers: {\n providesTags: (result) =>\n result?.users\n ? [\n ...result.users.map(({ email }) => ({ type: 'guest', id: email })),\n { type: 'guest', id: 'LIST' },\n ]\n : [{ type: 'guest', id: 'LIST' }],\n },\n addGuestUser: {\n invalidatesTags: [{ type: 'guest', id: 'LIST' }],\n },\n removeGuestUser: {\n invalidatesTags: (result, error, arg) => [{ type: 'guest', id: arg.email }],\n },\n },\n})\n\nexport const { useListGuestUsersQuery, useAddGuestUserMutation, useRemoveGuestUserMutation } =\n enhancedGuestsApi\n"],"names":["enhancedGuestsApi","projectsApi","result","email","error","arg","useListGuestUsersQuery","useAddGuestUserMutation","useRemoveGuestUserMutation"],"mappings":"srDAEA,MAAMA,EAAoBC,MAAY,iBAAiB,CACrD,UAAW,CACT,eAAgB,CACd,aAAeC,GACbA,GAAA,MAAAA,EAAQ,MACJ,CACE,GAAGA,EAAO,MAAM,IAAI,CAAC,CAAE,MAAAC,CAAM,KAAO,CAAE,KAAM,QAAS,GAAIA,CAAQ,EAAA,EACjE,CAAE,KAAM,QAAS,GAAI,MAAO,GAE9B,CAAC,CAAE,KAAM,QAAS,GAAI,MAAQ,CAAA,CACtC,EACA,aAAc,CACZ,gBAAiB,CAAC,CAAE,KAAM,QAAS,GAAI,MAAQ,CAAA,CACjD,EACA,gBAAiB,CACf,gBAAiB,CAACD,EAAQE,EAAOC,IAAQ,CAAC,CAAE,KAAM,QAAS,GAAIA,EAAI,KAAO,CAAA,CAAA,CAC5E,CAEJ,CAAC,EAEY,CAAE,uBAAAC,EAAwB,wBAAAC,EAAyB,2BAAAC,GAC9DR"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import "../../base/client.es.js";
|
|
2
|
+
import "../../generated/graphql.es.js";
|
|
3
|
+
import "../../generated/graphqlLinks.es.js";
|
|
4
|
+
import "../../generated/access.es.js";
|
|
5
|
+
import "../../generated/actions.es.js";
|
|
6
|
+
import "../../generated/activityFeed.es.js";
|
|
7
|
+
import "../../generated/addons.es.js";
|
|
8
|
+
import "../../generated/anatomy.es.js";
|
|
9
|
+
import "../../generated/attributes.es.js";
|
|
10
|
+
import "../../generated/authentication.es.js";
|
|
11
|
+
import "../../generated/bundles.es.js";
|
|
12
|
+
import "../../generated/configuration.es.js";
|
|
13
|
+
import "../../generated/desktop.es.js";
|
|
14
|
+
import "../../generated/entityLists.es.js";
|
|
15
|
+
import "../../generated/events.es.js";
|
|
16
|
+
import "../../generated/files.es.js";
|
|
17
|
+
import "../../generated/folders.es.js";
|
|
18
|
+
import "../../generated/inbox.es.js";
|
|
19
|
+
import "../../generated/links.es.js";
|
|
20
|
+
import "../../generated/market.es.js";
|
|
21
|
+
import "../../generated/onboarding.es.js";
|
|
22
|
+
import "../../generated/operations.es.js";
|
|
23
|
+
import "../../generated/products.es.js";
|
|
24
|
+
import "../../generated/projectDashboard.es.js";
|
|
25
|
+
import { api as o } from "../../generated/projects.es.js";
|
|
26
|
+
import "../../generated/reviewables.es.js";
|
|
27
|
+
import "../../generated/services.es.js";
|
|
28
|
+
import "../../generated/system.es.js";
|
|
29
|
+
import "../../generated/tasks.es.js";
|
|
30
|
+
import "../../generated/teams.es.js";
|
|
31
|
+
import "../../generated/thumbnails.es.js";
|
|
32
|
+
import "../../generated/uRIs.es.js";
|
|
33
|
+
import "../../generated/users.es.js";
|
|
34
|
+
import "../../generated/versions.es.js";
|
|
35
|
+
import "../../generated/workfiles.es.js";
|
|
36
|
+
import "../../generated/ynputCloud.es.js";
|
|
37
|
+
import "../../generated/grouping.es.js";
|
|
38
|
+
import "../../generated/views.es.js";
|
|
39
|
+
const r = o.enhanceEndpoints({
|
|
40
|
+
endpoints: {
|
|
41
|
+
listGuestUsers: {
|
|
42
|
+
providesTags: (t) => t != null && t.users ? [
|
|
43
|
+
...t.users.map(({ email: i }) => ({ type: "guest", id: i })),
|
|
44
|
+
{ type: "guest", id: "LIST" }
|
|
45
|
+
] : [{ type: "guest", id: "LIST" }]
|
|
46
|
+
},
|
|
47
|
+
addGuestUser: {
|
|
48
|
+
invalidatesTags: [{ type: "guest", id: "LIST" }]
|
|
49
|
+
},
|
|
50
|
+
removeGuestUser: {
|
|
51
|
+
invalidatesTags: (t, i, p) => [{ type: "guest", id: p.email }]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}), { useListGuestUsersQuery: K, useAddGuestUserMutation: N, useRemoveGuestUserMutation: O } = r;
|
|
55
|
+
export {
|
|
56
|
+
N as useAddGuestUserMutation,
|
|
57
|
+
K as useListGuestUsersQuery,
|
|
58
|
+
O as useRemoveGuestUserMutation
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=guests.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guests.es.js","sources":["../../../../../../src/api/queries/users/guests.ts"],"sourcesContent":["import { projectsApi } from '@shared/api/generated'\n\nconst enhancedGuestsApi = projectsApi.enhanceEndpoints({\n endpoints: {\n listGuestUsers: {\n providesTags: (result) =>\n result?.users\n ? [\n ...result.users.map(({ email }) => ({ type: 'guest', id: email })),\n { type: 'guest', id: 'LIST' },\n ]\n : [{ type: 'guest', id: 'LIST' }],\n },\n addGuestUser: {\n invalidatesTags: [{ type: 'guest', id: 'LIST' }],\n },\n removeGuestUser: {\n invalidatesTags: (result, error, arg) => [{ type: 'guest', id: arg.email }],\n },\n },\n})\n\nexport const { useListGuestUsersQuery, useAddGuestUserMutation, useRemoveGuestUserMutation } =\n enhancedGuestsApi\n"],"names":["enhancedGuestsApi","projectsApi","result","email","error","arg","useListGuestUsersQuery","useAddGuestUserMutation","useRemoveGuestUserMutation"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAMA,IAAoBC,EAAY,iBAAiB;AAAA,EACrD,WAAW;AAAA,IACT,gBAAgB;AAAA,MACd,cAAc,CAACC,MACbA,KAAA,QAAAA,EAAQ,QACJ;AAAA,QACE,GAAGA,EAAO,MAAM,IAAI,CAAC,EAAE,OAAAC,EAAM,OAAO,EAAE,MAAM,SAAS,IAAIA,EAAQ,EAAA;AAAA,QACjE,EAAE,MAAM,SAAS,IAAI,OAAO;AAAA,UAE9B,CAAC,EAAE,MAAM,SAAS,IAAI,OAAQ,CAAA;AAAA,IACtC;AAAA,IACA,cAAc;AAAA,MACZ,iBAAiB,CAAC,EAAE,MAAM,SAAS,IAAI,OAAQ,CAAA;AAAA,IACjD;AAAA,IACA,iBAAiB;AAAA,MACf,iBAAiB,CAACD,GAAQE,GAAOC,MAAQ,CAAC,EAAE,MAAM,SAAS,IAAIA,EAAI,MAAO,CAAA;AAAA,IAAA;AAAA,EAC5E;AAEJ,CAAC,GAEY,EAAE,wBAAAC,GAAwB,yBAAAC,GAAyB,4BAAAC,MAC9DR;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./getViews.cjs.js"),y=c.getViewsApi.enhanceEndpoints({endpoints:{createView:{onQueryStarted:async(e,{dispatch:t,queryFulfilled:s,getState:
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./getViews.cjs.js"),y=c.getViewsApi.enhanceEndpoints({endpoints:{createView:{onQueryStarted:async(e,{dispatch:t,queryFulfilled:s,getState:n})=>{const{payload:o}=e,u=n().user.name,w=t(c.getViewsApi.util.updateQueryData("listViews",{viewType:e.viewType,projectName:e.projectName},i=>{const p={...o,working:o.working||!1,scope:e.projectName?"project":"studio",visibility:"private",position:i.length+1,owner:u,accessLevel:30};if(o.working){const r=i.findIndex(a=>a.working===!0);if(r!==-1){const a=i[r].id;i[r]={...p,id:a}}else i.push(p)}else i.push(p);i.sort((r,a)=>r.position!==a.position?r.position-a.position:r.label.localeCompare(a.label))}));let d;o.working&&(d=t(c.getViewsApi.util.updateQueryData("getWorkingView",{viewType:e.viewType,projectName:e.projectName},i=>{const p=i==null?void 0:i.id,r={...o,working:!0,scope:e.projectName?"project":"studio",visibility:"private",owner:u,...p&&{id:p}};Object.assign(i,r)})));try{await s}catch(i){w.undo(),d&&d.undo(),console.error("Failed to create view:",i)}},transformErrorResponse:e=>{var t;return(t=e.data)==null?void 0:t.detail},invalidatesTags:(e,t,{viewType:s,projectName:n,payload:o})=>[{type:"view",id:o.id},c.getScopeTag(s,n)]},updateView:{transformErrorResponse:e=>{var t;return(t=e.data)==null?void 0:t.detail},invalidatesTags:(e,t,{viewType:s,projectName:n,viewId:o})=>[{type:"view",id:o},c.getScopeTag(s,n)]},deleteView:{onQueryStarted:async(e,{dispatch:t,queryFulfilled:s})=>{const{viewId:n,projectName:o,viewType:l}=e,u=t(c.getViewsApi.util.updateQueryData("listViews",{viewType:l,projectName:o},w=>w.filter(d=>d.id!==n)));try{await s}catch(w){u.undo(),console.error("Failed to delete view:",w)}},transformErrorResponse:e=>{var t;return(t=e.data)==null?void 0:t.detail},invalidatesTags:(e,t,{viewType:s,projectName:n,viewId:o})=>[{type:"view",id:o},c.getScopeTag(s,n)]},setDefaultView:{onQueryStarted:async(e,{dispatch:t,queryFulfilled:s,getState:n})=>{var p;const{setDefaultViewRequestModel:o,projectName:l,viewType:u}=e,{viewId:w}=o,d=n(),i=c.getViewsApi.endpoints.getDefaultView.select({viewType:u,projectName:l})(d);if(i!=null&&i.isSuccess&&((p=i.data)!=null&&p.id)){const r=t(c.getViewsApi.util.updateQueryData("getDefaultView",{viewType:u,projectName:l},a=>{var v;if(a){const g=c.getViewsApi.endpoints.listViews.select({viewType:u,projectName:l})(d),V=(v=g==null?void 0:g.data)==null?void 0:v.find(m=>m.id===w);V?Object.assign(a,V):a.id=w}}));try{await s}catch(a){r.undo(),console.error("Failed to set default view:",a)}}else console.warn("No current default view found, skipping optimistic update and invalidating default view cache")},transformErrorResponse:e=>{var t;return(t=e.data)==null?void 0:t.detail},invalidatesTags:(e,t,{viewType:s,projectName:n,setDefaultViewRequestModel:o})=>[{type:"view",id:o.viewId},c.getScopeTag(s,n)]}}}),{useCreateViewMutation:T,useUpdateViewMutation:f,useDeleteViewMutation:j,useSetDefaultViewMutation:S}=y;exports.useCreateViewMutation=T;exports.useDeleteViewMutation=j;exports.useSetDefaultViewMutation=S;exports.useUpdateViewMutation=f;exports.viewsQueries=y;
|
|
2
2
|
//# sourceMappingURL=updateViews.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateViews.cjs.js","sources":["../../../../../../src/api/queries/views/updateViews.ts"],"sourcesContent":["import { ViewListItemModel } from '@shared/api/generated'\nimport { getScopeTag, getViewsApi } from './getViews'\n\nconst updateViewsApi = getViewsApi.enhanceEndpoints({\n endpoints: {\n createView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled, getState }) => {\n const { payload } = arg\n const state = getState()\n // @ts-expect-error - user is not typed in the state\n const user = state.user.name\n\n // Optimistically update the view list\n const patch = dispatch(\n getViewsApi.util.updateQueryData(\n 'listViews',\n { viewType: arg.viewType, projectName: arg.projectName },\n (draft) => {\n const newView: ViewListItemModel = {\n ...payload,\n working: payload.working || false,\n scope: arg.projectName ? 'project' : 'studio',\n visibility: 'private',\n position: draft.length + 1, // Add to the end of the list\n owner: user,\n editable: true,\n access: {},\n }\n if (payload.working) {\n // For working views, find and replace the existing working view\n const existingWorkingIndex = draft.findIndex((view) => view.working === true)\n if (existingWorkingIndex !== -1) {\n // Keep the existing ID but update all other properties\n const existingId = draft[existingWorkingIndex].id\n draft[existingWorkingIndex] = { ...newView, id: existingId }\n } else {\n // No existing working view, add the new one\n draft.push(newView)\n }\n } else {\n // For non-working views, add to the list as usual\n draft.push(newView)\n }\n\n // finally sort the view by position and then by label\n draft.sort((a, b) => {\n if (a.position !== b.position) {\n return a.position - b.position\n }\n return a.label.localeCompare(b.label)\n })\n },\n ),\n )\n\n // Also update the getWorkingView cache if this is a working view\n let workingViewPatch\n if (payload.working) {\n workingViewPatch = dispatch(\n getViewsApi.util.updateQueryData(\n 'getWorkingView',\n { viewType: arg.viewType, projectName: arg.projectName },\n (draft) => {\n // Preserve the existing ID if there's already a working view\n const existingId = draft?.id\n const updatedWorkingView = {\n ...payload,\n working: true,\n scope: arg.projectName ? 'project' : 'studio',\n visibility: 'private',\n owner: user,\n ...(existingId && { id: existingId }), // Keep existing ID if it exists\n }\n // Update the working view cache with the new view data\n Object.assign(draft, updatedWorkingView)\n },\n ),\n )\n }\n\n try {\n await queryFulfilled\n } catch (error) {\n // If the query failed, we need to roll back the optimistic updates\n patch.undo()\n if (workingViewPatch) {\n workingViewPatch.undo()\n }\n console.error('Failed to create view:', error)\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the view list cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, payload }) => [\n { type: 'view', id: payload.id },\n getScopeTag(viewType, projectName),\n ],\n },\n updateView: {\n transformErrorResponse: (error: any) => error.data?.detail,\n invalidatesTags: (_r, _e, { viewType, projectName, viewId }) => [\n { type: 'view', id: viewId },\n getScopeTag(viewType, projectName),\n ],\n },\n deleteView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled }) => {\n const { viewId, projectName, viewType } = arg\n // Optimistically remove the view from the list\n const patch = dispatch(\n getViewsApi.util.updateQueryData('listViews', { viewType, projectName }, (draft) => {\n return draft.filter((view) => view.id !== viewId)\n }),\n )\n\n try {\n await queryFulfilled\n } catch (error) {\n // If the query failed, we need to roll back the optimistic update\n patch.undo()\n console.error('Failed to delete view:', error)\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the view list cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, viewId }) => [\n { type: 'view', id: viewId },\n getScopeTag(viewType, projectName),\n ],\n },\n setDefaultView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled, getState }) => {\n const { setDefaultViewRequestModel, projectName, viewType } = arg\n const { viewId } = setDefaultViewRequestModel\n const state = getState()\n // get current state of default view\n const currentDefaultView = getViewsApi.endpoints.getDefaultView.select({\n viewType,\n projectName,\n })(state)\n\n // check if there is even a cache for the default view\n if (currentDefaultView?.isSuccess && currentDefaultView.data?.id) {\n // Optimistically update the default view\n const patch = dispatch(\n getViewsApi.util.updateQueryData(\n 'getDefaultView',\n { viewType, projectName },\n (draft) => {\n if (draft) {\n // Try to find the view in the listViews cache\n const listViewData = getViewsApi.endpoints.listViews.select({\n viewType,\n projectName,\n })(state)\n const view = listViewData?.data?.find((v) => v.id === viewId)\n\n if (view) {\n // If the view is found in the listViews cache, update the getDefaultView cache with the full view data\n Object.assign(draft, view)\n } else {\n // If the view is not found, only update the ID\n draft.id = viewId\n }\n }\n },\n ),\n )\n\n try {\n await queryFulfilled\n } catch (error) {\n // If the query failed, we need to roll back the optimistic update\n patch.undo()\n console.error('Failed to set default view:', error)\n }\n } else {\n console.warn(\n 'No current default view found, skipping optimistic update and invalidating default view cache',\n )\n // If there is no current default view, we skip the optimistic update\n // it will be handled by the invalidation below\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the default view cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, setDefaultViewRequestModel }) => [\n { type: 'view', id: setDefaultViewRequestModel.viewId },\n getScopeTag(viewType, projectName),\n ],\n },\n },\n})\n\nexport const {\n useCreateViewMutation,\n useUpdateViewMutation,\n useDeleteViewMutation,\n useSetDefaultViewMutation,\n} = updateViewsApi\nexport { updateViewsApi as viewsQueries }\n"],"names":["updateViewsApi","getViewsApi","arg","dispatch","queryFulfilled","getState","payload","user","patch","draft","newView","existingWorkingIndex","view","existingId","a","b","workingViewPatch","updatedWorkingView","error","_a","_r","_e","viewType","projectName","getScopeTag","viewId","setDefaultViewRequestModel","state","currentDefaultView","listViewData","v","useCreateViewMutation","useUpdateViewMutation","useDeleteViewMutation","useSetDefaultViewMutation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"updateViews.cjs.js","sources":["../../../../../../src/api/queries/views/updateViews.ts"],"sourcesContent":["import { ViewListItemModel } from '@shared/api/generated'\nimport { getScopeTag, getViewsApi } from './getViews'\n\nconst updateViewsApi = getViewsApi.enhanceEndpoints({\n endpoints: {\n createView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled, getState }) => {\n const { payload } = arg\n const state = getState()\n // @ts-expect-error - user is not typed in the state\n const user = state.user.name\n\n // Optimistically update the view list\n const patch = dispatch(\n getViewsApi.util.updateQueryData(\n 'listViews',\n { viewType: arg.viewType, projectName: arg.projectName },\n (draft) => {\n const newView: ViewListItemModel = {\n ...payload,\n working: payload.working || false,\n scope: arg.projectName ? 'project' : 'studio',\n visibility: 'private',\n position: draft.length + 1, // Add to the end of the list\n owner: user,\n accessLevel: 30,\n }\n if (payload.working) {\n // For working views, find and replace the existing working view\n const existingWorkingIndex = draft.findIndex((view) => view.working === true)\n if (existingWorkingIndex !== -1) {\n // Keep the existing ID but update all other properties\n const existingId = draft[existingWorkingIndex].id\n draft[existingWorkingIndex] = { ...newView, id: existingId }\n } else {\n // No existing working view, add the new one\n draft.push(newView)\n }\n } else {\n // For non-working views, add to the list as usual\n draft.push(newView)\n }\n\n // finally sort the view by position and then by label\n draft.sort((a, b) => {\n if (a.position !== b.position) {\n return a.position - b.position\n }\n return a.label.localeCompare(b.label)\n })\n },\n ),\n )\n\n // Also update the getWorkingView cache if this is a working view\n let workingViewPatch\n if (payload.working) {\n workingViewPatch = dispatch(\n getViewsApi.util.updateQueryData(\n 'getWorkingView',\n { viewType: arg.viewType, projectName: arg.projectName },\n (draft) => {\n // Preserve the existing ID if there's already a working view\n const existingId = draft?.id\n const updatedWorkingView = {\n ...payload,\n working: true,\n scope: arg.projectName ? 'project' : 'studio',\n visibility: 'private',\n owner: user,\n ...(existingId && { id: existingId }), // Keep existing ID if it exists\n }\n // Update the working view cache with the new view data\n Object.assign(draft, updatedWorkingView)\n },\n ),\n )\n }\n\n try {\n await queryFulfilled\n } catch (error) {\n // If the query failed, we need to roll back the optimistic updates\n patch.undo()\n if (workingViewPatch) {\n workingViewPatch.undo()\n }\n console.error('Failed to create view:', error)\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the view list cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, payload }) => [\n { type: 'view', id: payload.id },\n getScopeTag(viewType, projectName),\n ],\n },\n updateView: {\n transformErrorResponse: (error: any) => error.data?.detail,\n invalidatesTags: (_r, _e, { viewType, projectName, viewId }) => [\n { type: 'view', id: viewId },\n getScopeTag(viewType, projectName),\n ],\n },\n deleteView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled }) => {\n const { viewId, projectName, viewType } = arg\n // Optimistically remove the view from the list\n const patch = dispatch(\n getViewsApi.util.updateQueryData('listViews', { viewType, projectName }, (draft) => {\n return draft.filter((view) => view.id !== viewId)\n }),\n )\n\n try {\n await queryFulfilled\n } catch (error) {\n // If the query failed, we need to roll back the optimistic update\n patch.undo()\n console.error('Failed to delete view:', error)\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the view list cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, viewId }) => [\n { type: 'view', id: viewId },\n getScopeTag(viewType, projectName),\n ],\n },\n setDefaultView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled, getState }) => {\n const { setDefaultViewRequestModel, projectName, viewType } = arg\n const { viewId } = setDefaultViewRequestModel\n const state = getState()\n // get current state of default view\n const currentDefaultView = getViewsApi.endpoints.getDefaultView.select({\n viewType,\n projectName,\n })(state)\n\n // check if there is even a cache for the default view\n if (currentDefaultView?.isSuccess && currentDefaultView.data?.id) {\n // Optimistically update the default view\n const patch = dispatch(\n getViewsApi.util.updateQueryData(\n 'getDefaultView',\n { viewType, projectName },\n (draft) => {\n if (draft) {\n // Try to find the view in the listViews cache\n const listViewData = getViewsApi.endpoints.listViews.select({\n viewType,\n projectName,\n })(state)\n const view = listViewData?.data?.find((v) => v.id === viewId)\n\n if (view) {\n // If the view is found in the listViews cache, update the getDefaultView cache with the full view data\n Object.assign(draft, view)\n } else {\n // If the view is not found, only update the ID\n draft.id = viewId\n }\n }\n },\n ),\n )\n\n try {\n await queryFulfilled\n } catch (error) {\n // If the query failed, we need to roll back the optimistic update\n patch.undo()\n console.error('Failed to set default view:', error)\n }\n } else {\n console.warn(\n 'No current default view found, skipping optimistic update and invalidating default view cache',\n )\n // If there is no current default view, we skip the optimistic update\n // it will be handled by the invalidation below\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the default view cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, setDefaultViewRequestModel }) => [\n { type: 'view', id: setDefaultViewRequestModel.viewId },\n getScopeTag(viewType, projectName),\n ],\n },\n },\n})\n\nexport const {\n useCreateViewMutation,\n useUpdateViewMutation,\n useDeleteViewMutation,\n useSetDefaultViewMutation,\n} = updateViewsApi\nexport { updateViewsApi as viewsQueries }\n"],"names":["updateViewsApi","getViewsApi","arg","dispatch","queryFulfilled","getState","payload","user","patch","draft","newView","existingWorkingIndex","view","existingId","a","b","workingViewPatch","updatedWorkingView","error","_a","_r","_e","viewType","projectName","getScopeTag","viewId","setDefaultViewRequestModel","state","currentDefaultView","listViewData","v","useCreateViewMutation","useUpdateViewMutation","useDeleteViewMutation","useSetDefaultViewMutation"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { getViewsApi as
|
|
2
|
-
const f =
|
|
1
|
+
import { getViewsApi as u, getScopeTag as v } from "./getViews.es.js";
|
|
2
|
+
const f = u.enhanceEndpoints({
|
|
3
3
|
endpoints: {
|
|
4
4
|
createView: {
|
|
5
5
|
onQueryStarted: async (e, { dispatch: t, queryFulfilled: s, getState: n }) => {
|
|
6
6
|
const { payload: o } = e, p = n().user.name, d = t(
|
|
7
|
-
|
|
7
|
+
u.util.updateQueryData(
|
|
8
8
|
"listViews",
|
|
9
9
|
{ viewType: e.viewType, projectName: e.projectName },
|
|
10
10
|
(i) => {
|
|
@@ -16,8 +16,7 @@ const f = l.enhanceEndpoints({
|
|
|
16
16
|
position: i.length + 1,
|
|
17
17
|
// Add to the end of the list
|
|
18
18
|
owner: p,
|
|
19
|
-
|
|
20
|
-
access: {}
|
|
19
|
+
accessLevel: 30
|
|
21
20
|
};
|
|
22
21
|
if (o.working) {
|
|
23
22
|
const r = i.findIndex((a) => a.working === !0);
|
|
@@ -32,9 +31,9 @@ const f = l.enhanceEndpoints({
|
|
|
32
31
|
}
|
|
33
32
|
)
|
|
34
33
|
);
|
|
35
|
-
let
|
|
36
|
-
o.working && (
|
|
37
|
-
|
|
34
|
+
let l;
|
|
35
|
+
o.working && (l = t(
|
|
36
|
+
u.util.updateQueryData(
|
|
38
37
|
"getWorkingView",
|
|
39
38
|
{ viewType: e.viewType, projectName: e.projectName },
|
|
40
39
|
(i) => {
|
|
@@ -54,7 +53,7 @@ const f = l.enhanceEndpoints({
|
|
|
54
53
|
try {
|
|
55
54
|
await s;
|
|
56
55
|
} catch (i) {
|
|
57
|
-
d.undo(),
|
|
56
|
+
d.undo(), l && l.undo(), console.error("Failed to create view:", i);
|
|
58
57
|
}
|
|
59
58
|
},
|
|
60
59
|
transformErrorResponse: (e) => {
|
|
@@ -80,7 +79,7 @@ const f = l.enhanceEndpoints({
|
|
|
80
79
|
deleteView: {
|
|
81
80
|
onQueryStarted: async (e, { dispatch: t, queryFulfilled: s }) => {
|
|
82
81
|
const { viewId: n, projectName: o, viewType: w } = e, p = t(
|
|
83
|
-
|
|
82
|
+
u.util.updateQueryData("listViews", { viewType: w, projectName: o }, (d) => d.filter((l) => l.id !== n))
|
|
84
83
|
);
|
|
85
84
|
try {
|
|
86
85
|
await s;
|
|
@@ -101,22 +100,22 @@ const f = l.enhanceEndpoints({
|
|
|
101
100
|
setDefaultView: {
|
|
102
101
|
onQueryStarted: async (e, { dispatch: t, queryFulfilled: s, getState: n }) => {
|
|
103
102
|
var c;
|
|
104
|
-
const { setDefaultViewRequestModel: o, projectName: w, viewType: p } = e, { viewId: d } = o,
|
|
103
|
+
const { setDefaultViewRequestModel: o, projectName: w, viewType: p } = e, { viewId: d } = o, l = n(), i = u.endpoints.getDefaultView.select({
|
|
105
104
|
viewType: p,
|
|
106
105
|
projectName: w
|
|
107
|
-
})(
|
|
106
|
+
})(l);
|
|
108
107
|
if (i != null && i.isSuccess && ((c = i.data) != null && c.id)) {
|
|
109
108
|
const r = t(
|
|
110
|
-
|
|
109
|
+
u.util.updateQueryData(
|
|
111
110
|
"getDefaultView",
|
|
112
111
|
{ viewType: p, projectName: w },
|
|
113
112
|
(a) => {
|
|
114
113
|
var g;
|
|
115
114
|
if (a) {
|
|
116
|
-
const y =
|
|
115
|
+
const y = u.endpoints.listViews.select({
|
|
117
116
|
viewType: p,
|
|
118
117
|
projectName: w
|
|
119
|
-
})(
|
|
118
|
+
})(l), V = (g = y == null ? void 0 : y.data) == null ? void 0 : g.find((m) => m.id === d);
|
|
120
119
|
V ? Object.assign(a, V) : a.id = d;
|
|
121
120
|
}
|
|
122
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateViews.es.js","sources":["../../../../../../src/api/queries/views/updateViews.ts"],"sourcesContent":["import { ViewListItemModel } from '@shared/api/generated'\nimport { getScopeTag, getViewsApi } from './getViews'\n\nconst updateViewsApi = getViewsApi.enhanceEndpoints({\n endpoints: {\n createView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled, getState }) => {\n const { payload } = arg\n const state = getState()\n // @ts-expect-error - user is not typed in the state\n const user = state.user.name\n\n // Optimistically update the view list\n const patch = dispatch(\n getViewsApi.util.updateQueryData(\n 'listViews',\n { viewType: arg.viewType, projectName: arg.projectName },\n (draft) => {\n const newView: ViewListItemModel = {\n ...payload,\n working: payload.working || false,\n scope: arg.projectName ? 'project' : 'studio',\n visibility: 'private',\n position: draft.length + 1, // Add to the end of the list\n owner: user,\n editable: true,\n access: {},\n }\n if (payload.working) {\n // For working views, find and replace the existing working view\n const existingWorkingIndex = draft.findIndex((view) => view.working === true)\n if (existingWorkingIndex !== -1) {\n // Keep the existing ID but update all other properties\n const existingId = draft[existingWorkingIndex].id\n draft[existingWorkingIndex] = { ...newView, id: existingId }\n } else {\n // No existing working view, add the new one\n draft.push(newView)\n }\n } else {\n // For non-working views, add to the list as usual\n draft.push(newView)\n }\n\n // finally sort the view by position and then by label\n draft.sort((a, b) => {\n if (a.position !== b.position) {\n return a.position - b.position\n }\n return a.label.localeCompare(b.label)\n })\n },\n ),\n )\n\n // Also update the getWorkingView cache if this is a working view\n let workingViewPatch\n if (payload.working) {\n workingViewPatch = dispatch(\n getViewsApi.util.updateQueryData(\n 'getWorkingView',\n { viewType: arg.viewType, projectName: arg.projectName },\n (draft) => {\n // Preserve the existing ID if there's already a working view\n const existingId = draft?.id\n const updatedWorkingView = {\n ...payload,\n working: true,\n scope: arg.projectName ? 'project' : 'studio',\n visibility: 'private',\n owner: user,\n ...(existingId && { id: existingId }), // Keep existing ID if it exists\n }\n // Update the working view cache with the new view data\n Object.assign(draft, updatedWorkingView)\n },\n ),\n )\n }\n\n try {\n await queryFulfilled\n } catch (error) {\n // If the query failed, we need to roll back the optimistic updates\n patch.undo()\n if (workingViewPatch) {\n workingViewPatch.undo()\n }\n console.error('Failed to create view:', error)\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the view list cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, payload }) => [\n { type: 'view', id: payload.id },\n getScopeTag(viewType, projectName),\n ],\n },\n updateView: {\n transformErrorResponse: (error: any) => error.data?.detail,\n invalidatesTags: (_r, _e, { viewType, projectName, viewId }) => [\n { type: 'view', id: viewId },\n getScopeTag(viewType, projectName),\n ],\n },\n deleteView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled }) => {\n const { viewId, projectName, viewType } = arg\n // Optimistically remove the view from the list\n const patch = dispatch(\n getViewsApi.util.updateQueryData('listViews', { viewType, projectName }, (draft) => {\n return draft.filter((view) => view.id !== viewId)\n }),\n )\n\n try {\n await queryFulfilled\n } catch (error) {\n // If the query failed, we need to roll back the optimistic update\n patch.undo()\n console.error('Failed to delete view:', error)\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the view list cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, viewId }) => [\n { type: 'view', id: viewId },\n getScopeTag(viewType, projectName),\n ],\n },\n setDefaultView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled, getState }) => {\n const { setDefaultViewRequestModel, projectName, viewType } = arg\n const { viewId } = setDefaultViewRequestModel\n const state = getState()\n // get current state of default view\n const currentDefaultView = getViewsApi.endpoints.getDefaultView.select({\n viewType,\n projectName,\n })(state)\n\n // check if there is even a cache for the default view\n if (currentDefaultView?.isSuccess && currentDefaultView.data?.id) {\n // Optimistically update the default view\n const patch = dispatch(\n getViewsApi.util.updateQueryData(\n 'getDefaultView',\n { viewType, projectName },\n (draft) => {\n if (draft) {\n // Try to find the view in the listViews cache\n const listViewData = getViewsApi.endpoints.listViews.select({\n viewType,\n projectName,\n })(state)\n const view = listViewData?.data?.find((v) => v.id === viewId)\n\n if (view) {\n // If the view is found in the listViews cache, update the getDefaultView cache with the full view data\n Object.assign(draft, view)\n } else {\n // If the view is not found, only update the ID\n draft.id = viewId\n }\n }\n },\n ),\n )\n\n try {\n await queryFulfilled\n } catch (error) {\n // If the query failed, we need to roll back the optimistic update\n patch.undo()\n console.error('Failed to set default view:', error)\n }\n } else {\n console.warn(\n 'No current default view found, skipping optimistic update and invalidating default view cache',\n )\n // If there is no current default view, we skip the optimistic update\n // it will be handled by the invalidation below\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the default view cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, setDefaultViewRequestModel }) => [\n { type: 'view', id: setDefaultViewRequestModel.viewId },\n getScopeTag(viewType, projectName),\n ],\n },\n },\n})\n\nexport const {\n useCreateViewMutation,\n useUpdateViewMutation,\n useDeleteViewMutation,\n useSetDefaultViewMutation,\n} = updateViewsApi\nexport { updateViewsApi as viewsQueries }\n"],"names":["updateViewsApi","getViewsApi","arg","dispatch","queryFulfilled","getState","payload","user","patch","draft","newView","existingWorkingIndex","view","existingId","a","b","workingViewPatch","updatedWorkingView","error","_a","_r","_e","viewType","projectName","getScopeTag","viewId","setDefaultViewRequestModel","state","currentDefaultView","listViewData","v","useCreateViewMutation","useUpdateViewMutation","useDeleteViewMutation","useSetDefaultViewMutation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"updateViews.es.js","sources":["../../../../../../src/api/queries/views/updateViews.ts"],"sourcesContent":["import { ViewListItemModel } from '@shared/api/generated'\nimport { getScopeTag, getViewsApi } from './getViews'\n\nconst updateViewsApi = getViewsApi.enhanceEndpoints({\n endpoints: {\n createView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled, getState }) => {\n const { payload } = arg\n const state = getState()\n // @ts-expect-error - user is not typed in the state\n const user = state.user.name\n\n // Optimistically update the view list\n const patch = dispatch(\n getViewsApi.util.updateQueryData(\n 'listViews',\n { viewType: arg.viewType, projectName: arg.projectName },\n (draft) => {\n const newView: ViewListItemModel = {\n ...payload,\n working: payload.working || false,\n scope: arg.projectName ? 'project' : 'studio',\n visibility: 'private',\n position: draft.length + 1, // Add to the end of the list\n owner: user,\n accessLevel: 30,\n }\n if (payload.working) {\n // For working views, find and replace the existing working view\n const existingWorkingIndex = draft.findIndex((view) => view.working === true)\n if (existingWorkingIndex !== -1) {\n // Keep the existing ID but update all other properties\n const existingId = draft[existingWorkingIndex].id\n draft[existingWorkingIndex] = { ...newView, id: existingId }\n } else {\n // No existing working view, add the new one\n draft.push(newView)\n }\n } else {\n // For non-working views, add to the list as usual\n draft.push(newView)\n }\n\n // finally sort the view by position and then by label\n draft.sort((a, b) => {\n if (a.position !== b.position) {\n return a.position - b.position\n }\n return a.label.localeCompare(b.label)\n })\n },\n ),\n )\n\n // Also update the getWorkingView cache if this is a working view\n let workingViewPatch\n if (payload.working) {\n workingViewPatch = dispatch(\n getViewsApi.util.updateQueryData(\n 'getWorkingView',\n { viewType: arg.viewType, projectName: arg.projectName },\n (draft) => {\n // Preserve the existing ID if there's already a working view\n const existingId = draft?.id\n const updatedWorkingView = {\n ...payload,\n working: true,\n scope: arg.projectName ? 'project' : 'studio',\n visibility: 'private',\n owner: user,\n ...(existingId && { id: existingId }), // Keep existing ID if it exists\n }\n // Update the working view cache with the new view data\n Object.assign(draft, updatedWorkingView)\n },\n ),\n )\n }\n\n try {\n await queryFulfilled\n } catch (error) {\n // If the query failed, we need to roll back the optimistic updates\n patch.undo()\n if (workingViewPatch) {\n workingViewPatch.undo()\n }\n console.error('Failed to create view:', error)\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the view list cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, payload }) => [\n { type: 'view', id: payload.id },\n getScopeTag(viewType, projectName),\n ],\n },\n updateView: {\n transformErrorResponse: (error: any) => error.data?.detail,\n invalidatesTags: (_r, _e, { viewType, projectName, viewId }) => [\n { type: 'view', id: viewId },\n getScopeTag(viewType, projectName),\n ],\n },\n deleteView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled }) => {\n const { viewId, projectName, viewType } = arg\n // Optimistically remove the view from the list\n const patch = dispatch(\n getViewsApi.util.updateQueryData('listViews', { viewType, projectName }, (draft) => {\n return draft.filter((view) => view.id !== viewId)\n }),\n )\n\n try {\n await queryFulfilled\n } catch (error) {\n // If the query failed, we need to roll back the optimistic update\n patch.undo()\n console.error('Failed to delete view:', error)\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the view list cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, viewId }) => [\n { type: 'view', id: viewId },\n getScopeTag(viewType, projectName),\n ],\n },\n setDefaultView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled, getState }) => {\n const { setDefaultViewRequestModel, projectName, viewType } = arg\n const { viewId } = setDefaultViewRequestModel\n const state = getState()\n // get current state of default view\n const currentDefaultView = getViewsApi.endpoints.getDefaultView.select({\n viewType,\n projectName,\n })(state)\n\n // check if there is even a cache for the default view\n if (currentDefaultView?.isSuccess && currentDefaultView.data?.id) {\n // Optimistically update the default view\n const patch = dispatch(\n getViewsApi.util.updateQueryData(\n 'getDefaultView',\n { viewType, projectName },\n (draft) => {\n if (draft) {\n // Try to find the view in the listViews cache\n const listViewData = getViewsApi.endpoints.listViews.select({\n viewType,\n projectName,\n })(state)\n const view = listViewData?.data?.find((v) => v.id === viewId)\n\n if (view) {\n // If the view is found in the listViews cache, update the getDefaultView cache with the full view data\n Object.assign(draft, view)\n } else {\n // If the view is not found, only update the ID\n draft.id = viewId\n }\n }\n },\n ),\n )\n\n try {\n await queryFulfilled\n } catch (error) {\n // If the query failed, we need to roll back the optimistic update\n patch.undo()\n console.error('Failed to set default view:', error)\n }\n } else {\n console.warn(\n 'No current default view found, skipping optimistic update and invalidating default view cache',\n )\n // If there is no current default view, we skip the optimistic update\n // it will be handled by the invalidation below\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the default view cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, setDefaultViewRequestModel }) => [\n { type: 'view', id: setDefaultViewRequestModel.viewId },\n getScopeTag(viewType, projectName),\n ],\n },\n },\n})\n\nexport const {\n useCreateViewMutation,\n useUpdateViewMutation,\n useDeleteViewMutation,\n useSetDefaultViewMutation,\n} = updateViewsApi\nexport { updateViewsApi as viewsQueries }\n"],"names":["updateViewsApi","getViewsApi","arg","dispatch","queryFulfilled","getState","payload","user","patch","draft","newView","existingWorkingIndex","view","existingId","a","b","workingViewPatch","updatedWorkingView","error","_a","_r","_e","viewType","projectName","getScopeTag","viewId","setDefaultViewRequestModel","state","currentDefaultView","listViewData","v","useCreateViewMutation","useUpdateViewMutation","useDeleteViewMutation","useSetDefaultViewMutation"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../../../../_virtual/jsx-runtime.cjs.js"),m=require("react"),k=require("../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js"),W=require("@ynput/ayon-react-components"),v=require("./AccessSearchInput.styled.cjs.js"),b=require("../AccessUser/AccessUser.cjs.js"),B=require("clsx"),w=500,L=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,P=({shareOptions:g,existingAccess:C,owner:I,placeholder:_="Add people or access groups",disabled:D=!1,mode:N="internal",onSelectOption:x,pt:l,...M})=>{var R;const[r,d]=m.useState(""),[S,u]=m.useState(!1),[o,n]=m.useState(-1),h=m.useRef(null),p=g.filter(e=>!C.includes(e.value)).toSorted((e,t)=>{const a=i=>i.value==="__everyone__"?0:i.value.startsWith("__")?1:i.value.startsWith("team:")?2:i.value.startsWith("group:")?3:i.value.startsWith("user:")?4:5,A=a(e),j=a(t);return A!==j?A-j:e.label.localeCompare(t.label)}),s=(r?k.matchSorter(p,r,{keys:["name","label","value"],threshold:k.matchSorter.rankings.CONTAINS}):p).slice(0,w),y=L.test(r)&&!g.some(e=>e.name===r)&&N==="external",E=()=>{u(!0),n(-1)},T=()=>{setTimeout(()=>{u(!1),n(-1)},200)},q=e=>{d(e.target.value),n(-1),u(!0)},O=e=>{var t;if(!S||s.length===0){e.key==="Enter"&&s.length>0&&(e.preventDefault(),f(s[0]));return}switch(e.key){case"ArrowDown":e.preventDefault(),n(a=>a<s.length-1?a+1:a);break;case"ArrowUp":e.preventDefault(),n(a=>a>0?a-1:-1);break;case"Enter":e.preventDefault(),o>=0&&o<s.length?f(s[o]):s.length>0&&f(s[0]);break;case"Escape":u(!1),n(-1),(t=h.current)==null||t.blur(),e.stopPropagation();break}},f=e=>{var t;x(e,10),d(""),u(!1),n(-1),(t=h.current)==null||t.focus()},U=()=>{var e;x({name:r,label:r,value:r,shareType:"guest"},10),d(""),u(!1),n(-1),(e=h.current)==null||e.focus()};return c.jsxRuntimeExports.jsxs(v.Container,{...M,children:[c.jsxRuntimeExports.jsx(W.InputText,{ref:h,value:r,placeholder:_,disabled:D,onFocus:E,onClick:E,onBlur:T,onChange:q,onKeyDown:O,style:{width:"100%"}}),S&&(s.length>0||y)&&c.jsxRuntimeExports.jsxs(v.SuggestionsList,{...l==null?void 0:l.list,className:B((R=l==null?void 0:l.list)==null?void 0:R.className,{"no-owner":!I}),children:[s.map((e,t)=>c.jsxRuntimeExports.jsx(b.AccessUser,{name:e.name,label:e.label,shareType:e.shareType,isOwner:!1,isMe:!1,"data-index":t,className:t===o?"highlighted":"",style:{cursor:"pointer"},onClick:()=>f(e),onMouseEnter:()=>n(t),isCompact:!0,isSearchResult:!0},e.value)),y&&c.jsxRuntimeExports.jsx(b.AccessUser,{name:r,label:r,shareType:"guest",isOwner:!1,isMe:!1,"data-index":s.length,className:s.length===o?"highlighted":"",style:{cursor:"pointer"},onClick:U,onMouseEnter:()=>n(s.length),isCompact:!0,isSearchResult:!0}),s.length===w&&c.jsxRuntimeExports.jsx("li",{className:"tip",children:"More than 500 results, please refine your search..."})]})]})};exports.AccessSearchInput=P;
|
|
2
|
+
//# sourceMappingURL=AccessSearchInput.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccessSearchInput.cjs.js","sources":["../../../../../src/components/AccessSearchInput/AccessSearchInput.tsx"],"sourcesContent":["import React, { FC, useState, useRef, KeyboardEvent, ChangeEvent } from 'react'\nimport { matchSorter } from 'match-sorter'\nimport { InputText } from '@ynput/ayon-react-components'\nimport { AccessLevel } from '../AccessUser/AccessUser'\nimport * as Styled from './AccessSearchInput.styled'\nimport { AccessUser } from '../AccessUser/AccessUser'\nimport clsx from 'clsx'\nimport { ShareOption } from '@shared/api'\n\nconst MAX_USERS_DISPLAYED = 500\n// Email validation regex\nconst EMAIL_REGEX = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\n\nexport interface AccessSearchInputProps extends React.HTMLAttributes<HTMLDivElement> {\n shareOptions: ShareOption[]\n existingAccess: string[] // Array of names already in access\n owner: string | undefined | null\n placeholder?: string\n disabled?: boolean\n mode?: 'internal' | 'external'\n onSelectOption: (option: ShareOption, accessLevel: AccessLevel) => void\n pt?: {\n list?: Partial<React.HTMLAttributes<HTMLUListElement>>\n }\n}\n\nexport const AccessSearchInput: FC<AccessSearchInputProps> = ({\n shareOptions,\n existingAccess,\n owner,\n placeholder = 'Add people or access groups',\n disabled = false,\n mode = 'internal',\n onSelectOption,\n pt,\n ...props\n}) => {\n const [searchValue, setSearchValue] = useState('')\n const [isOpen, setIsOpen] = useState(false)\n const [highlightedIndex, setHighlightedIndex] = useState(-1)\n const inputRef = useRef<HTMLInputElement>(null)\n\n // sort default by special groups __everyone__, __{type}__, team:, group:, user: and alphabetically\n const defaultSorted = shareOptions\n .filter((option) => !existingAccess.includes(option.value))\n .toSorted((a, b) => {\n const getRank = (option: ShareOption) => {\n if (option.value === '__everyone__') return 0\n if (option.value.startsWith('__')) return 1\n if (option.value.startsWith('team:')) return 2\n if (option.value.startsWith('group:')) return 3\n if (option.value.startsWith('user:')) return 4\n return 5\n }\n const rankA = getRank(a)\n const rankB = getRank(b)\n if (rankA !== rankB) return rankA - rankB\n return a.label.localeCompare(b.label)\n })\n\n // Filter and sort options based on search value\n const filteredOptions = (\n searchValue\n ? matchSorter(defaultSorted, searchValue, {\n keys: ['name', 'label', 'value'],\n threshold: matchSorter.rankings.CONTAINS,\n })\n : defaultSorted\n ).slice(0, MAX_USERS_DISPLAYED)\n\n // Check if search value is a valid email and not already added\n const isValidNewEmail =\n EMAIL_REGEX.test(searchValue) &&\n !shareOptions.some((g) => g.name === searchValue) &&\n mode === 'external'\n\n // Handle input focus\n const handleFocus = () => {\n setIsOpen(true)\n setHighlightedIndex(-1)\n }\n\n // Handle input blur\n const handleBlur = () => {\n // Delay closing to allow for option selection\n setTimeout(() => {\n setIsOpen(false)\n setHighlightedIndex(-1)\n }, 200)\n }\n\n // Handle input change\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n setSearchValue(e.target.value)\n setHighlightedIndex(-1)\n setIsOpen(true)\n }\n\n // Handle keyboard navigation\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (!isOpen || filteredOptions.length === 0) {\n // If Enter is pressed and no options are highlighted, select the first option\n if (e.key === 'Enter' && filteredOptions.length > 0) {\n e.preventDefault()\n handleSelectOption(filteredOptions[0])\n }\n return\n }\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault()\n setHighlightedIndex((prev) => (prev < filteredOptions.length - 1 ? prev + 1 : prev))\n break\n case 'ArrowUp':\n e.preventDefault()\n setHighlightedIndex((prev) => (prev > 0 ? prev - 1 : -1))\n break\n case 'Enter':\n e.preventDefault()\n if (highlightedIndex >= 0 && highlightedIndex < filteredOptions.length) {\n handleSelectOption(filteredOptions[highlightedIndex])\n } else if (filteredOptions.length > 0) {\n // If no specific option is highlighted, select the first one\n handleSelectOption(filteredOptions[0])\n }\n break\n case 'Escape':\n setIsOpen(false)\n setHighlightedIndex(-1)\n inputRef.current?.blur()\n // stop dialog from closing\n e.stopPropagation()\n break\n }\n }\n\n // Handle option selection\n const handleSelectOption = (option: ShareOption) => {\n onSelectOption(option, 10) // Default access level is 10 (Read-only)\n setSearchValue('')\n setIsOpen(false)\n setHighlightedIndex(-1)\n inputRef.current?.focus()\n }\n\n // Handle adding a new email\n const handleAddNewEmail = () => {\n onSelectOption(\n {\n name: searchValue,\n label: searchValue,\n value: searchValue,\n shareType: 'guest',\n },\n 10,\n )\n setSearchValue('')\n setIsOpen(false)\n setHighlightedIndex(-1)\n inputRef.current?.focus()\n }\n\n return (\n <Styled.Container {...props}>\n <InputText\n ref={inputRef}\n value={searchValue}\n placeholder={placeholder}\n disabled={disabled}\n onFocus={handleFocus}\n onClick={handleFocus}\n onBlur={handleBlur}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n style={{ width: '100%' }}\n />\n\n {isOpen && (filteredOptions.length > 0 || isValidNewEmail) && (\n <Styled.SuggestionsList\n {...pt?.list}\n className={clsx(pt?.list?.className, { 'no-owner': !owner })}\n >\n {filteredOptions.map((option, index) => (\n <AccessUser\n key={option.value}\n name={option.name}\n label={option.label}\n shareType={option.shareType}\n isOwner={false}\n isMe={false}\n data-index={index}\n className={index === highlightedIndex ? 'highlighted' : ''}\n style={{ cursor: 'pointer' }}\n onClick={() => handleSelectOption(option)}\n onMouseEnter={() => setHighlightedIndex(index)}\n isCompact\n isSearchResult\n >\n {/* No controls needed for search suggestions */}\n </AccessUser>\n ))}\n\n {/* Add new email option */}\n {isValidNewEmail && (\n <AccessUser\n name={searchValue}\n label={searchValue}\n shareType=\"guest\"\n isOwner={false}\n isMe={false}\n data-index={filteredOptions.length}\n className={filteredOptions.length === highlightedIndex ? 'highlighted' : ''}\n style={{ cursor: 'pointer' }}\n onClick={handleAddNewEmail}\n onMouseEnter={() => setHighlightedIndex(filteredOptions.length)}\n isCompact\n isSearchResult\n />\n )}\n\n {filteredOptions.length === MAX_USERS_DISPLAYED && (\n <li className=\"tip\">More than 500 results, please refine your search...</li>\n )}\n </Styled.SuggestionsList>\n )}\n </Styled.Container>\n )\n}\n"],"names":["MAX_USERS_DISPLAYED","EMAIL_REGEX","AccessSearchInput","shareOptions","existingAccess","owner","placeholder","disabled","mode","onSelectOption","pt","props","searchValue","setSearchValue","useState","isOpen","setIsOpen","highlightedIndex","setHighlightedIndex","inputRef","useRef","defaultSorted","option","a","b","getRank","rankA","rankB","filteredOptions","matchSorter","isValidNewEmail","g","handleFocus","handleBlur","handleInputChange","handleKeyDown","handleSelectOption","prev","_a","handleAddNewEmail","jsxs","Styled.Container","jsx","InputText","Styled.SuggestionsList","clsx","index","AccessUser"],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { j as o } from "../../../../_virtual/jsx-runtime.es.js";
|
|
2
|
+
import { useState as g, useRef as B } from "react";
|
|
3
|
+
import { matchSorter as b } from "../../../../node_modules/match-sorter/dist/match-sorter.esm.es.js";
|
|
4
|
+
import { InputText as L } from "@ynput/ayon-react-components";
|
|
5
|
+
import { Container as U, SuggestionsList as V } from "./AccessSearchInput.styled.es.js";
|
|
6
|
+
import { AccessUser as A } from "../AccessUser/AccessUser.es.js";
|
|
7
|
+
import F from "clsx";
|
|
8
|
+
const C = 500, K = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, z = ({
|
|
9
|
+
shareOptions: d,
|
|
10
|
+
existingAccess: D,
|
|
11
|
+
owner: I,
|
|
12
|
+
placeholder: N = "Add people or access groups",
|
|
13
|
+
disabled: _ = !1,
|
|
14
|
+
mode: j = "internal",
|
|
15
|
+
onSelectOption: p,
|
|
16
|
+
pt: n,
|
|
17
|
+
...R
|
|
18
|
+
}) => {
|
|
19
|
+
var E;
|
|
20
|
+
const [r, m] = g(""), [k, u] = g(!1), [c, a] = g(-1), h = B(null), x = d.filter((e) => !D.includes(e.value)).toSorted((e, t) => {
|
|
21
|
+
const l = (i) => i.value === "__everyone__" ? 0 : i.value.startsWith("__") ? 1 : i.value.startsWith("team:") ? 2 : i.value.startsWith("group:") ? 3 : i.value.startsWith("user:") ? 4 : 5, S = l(e), w = l(t);
|
|
22
|
+
return S !== w ? S - w : e.label.localeCompare(t.label);
|
|
23
|
+
}), s = (r ? b(x, r, {
|
|
24
|
+
keys: ["name", "label", "value"],
|
|
25
|
+
threshold: b.rankings.CONTAINS
|
|
26
|
+
}) : x).slice(0, C), y = K.test(r) && !d.some((e) => e.name === r) && j === "external", v = () => {
|
|
27
|
+
u(!0), a(-1);
|
|
28
|
+
}, M = () => {
|
|
29
|
+
setTimeout(() => {
|
|
30
|
+
u(!1), a(-1);
|
|
31
|
+
}, 200);
|
|
32
|
+
}, T = (e) => {
|
|
33
|
+
m(e.target.value), a(-1), u(!0);
|
|
34
|
+
}, O = (e) => {
|
|
35
|
+
var t;
|
|
36
|
+
if (!k || s.length === 0) {
|
|
37
|
+
e.key === "Enter" && s.length > 0 && (e.preventDefault(), f(s[0]));
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
switch (e.key) {
|
|
41
|
+
case "ArrowDown":
|
|
42
|
+
e.preventDefault(), a((l) => l < s.length - 1 ? l + 1 : l);
|
|
43
|
+
break;
|
|
44
|
+
case "ArrowUp":
|
|
45
|
+
e.preventDefault(), a((l) => l > 0 ? l - 1 : -1);
|
|
46
|
+
break;
|
|
47
|
+
case "Enter":
|
|
48
|
+
e.preventDefault(), c >= 0 && c < s.length ? f(s[c]) : s.length > 0 && f(s[0]);
|
|
49
|
+
break;
|
|
50
|
+
case "Escape":
|
|
51
|
+
u(!1), a(-1), (t = h.current) == null || t.blur(), e.stopPropagation();
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
}, f = (e) => {
|
|
55
|
+
var t;
|
|
56
|
+
p(e, 10), m(""), u(!1), a(-1), (t = h.current) == null || t.focus();
|
|
57
|
+
}, W = () => {
|
|
58
|
+
var e;
|
|
59
|
+
p(
|
|
60
|
+
{
|
|
61
|
+
name: r,
|
|
62
|
+
label: r,
|
|
63
|
+
value: r,
|
|
64
|
+
shareType: "guest"
|
|
65
|
+
},
|
|
66
|
+
10
|
|
67
|
+
), m(""), u(!1), a(-1), (e = h.current) == null || e.focus();
|
|
68
|
+
};
|
|
69
|
+
return /* @__PURE__ */ o.jsxs(U, { ...R, children: [
|
|
70
|
+
/* @__PURE__ */ o.jsx(
|
|
71
|
+
L,
|
|
72
|
+
{
|
|
73
|
+
ref: h,
|
|
74
|
+
value: r,
|
|
75
|
+
placeholder: N,
|
|
76
|
+
disabled: _,
|
|
77
|
+
onFocus: v,
|
|
78
|
+
onClick: v,
|
|
79
|
+
onBlur: M,
|
|
80
|
+
onChange: T,
|
|
81
|
+
onKeyDown: O,
|
|
82
|
+
style: { width: "100%" }
|
|
83
|
+
}
|
|
84
|
+
),
|
|
85
|
+
k && (s.length > 0 || y) && /* @__PURE__ */ o.jsxs(
|
|
86
|
+
V,
|
|
87
|
+
{
|
|
88
|
+
...n == null ? void 0 : n.list,
|
|
89
|
+
className: F((E = n == null ? void 0 : n.list) == null ? void 0 : E.className, { "no-owner": !I }),
|
|
90
|
+
children: [
|
|
91
|
+
s.map((e, t) => /* @__PURE__ */ o.jsx(
|
|
92
|
+
A,
|
|
93
|
+
{
|
|
94
|
+
name: e.name,
|
|
95
|
+
label: e.label,
|
|
96
|
+
shareType: e.shareType,
|
|
97
|
+
isOwner: !1,
|
|
98
|
+
isMe: !1,
|
|
99
|
+
"data-index": t,
|
|
100
|
+
className: t === c ? "highlighted" : "",
|
|
101
|
+
style: { cursor: "pointer" },
|
|
102
|
+
onClick: () => f(e),
|
|
103
|
+
onMouseEnter: () => a(t),
|
|
104
|
+
isCompact: !0,
|
|
105
|
+
isSearchResult: !0
|
|
106
|
+
},
|
|
107
|
+
e.value
|
|
108
|
+
)),
|
|
109
|
+
y && /* @__PURE__ */ o.jsx(
|
|
110
|
+
A,
|
|
111
|
+
{
|
|
112
|
+
name: r,
|
|
113
|
+
label: r,
|
|
114
|
+
shareType: "guest",
|
|
115
|
+
isOwner: !1,
|
|
116
|
+
isMe: !1,
|
|
117
|
+
"data-index": s.length,
|
|
118
|
+
className: s.length === c ? "highlighted" : "",
|
|
119
|
+
style: { cursor: "pointer" },
|
|
120
|
+
onClick: W,
|
|
121
|
+
onMouseEnter: () => a(s.length),
|
|
122
|
+
isCompact: !0,
|
|
123
|
+
isSearchResult: !0
|
|
124
|
+
}
|
|
125
|
+
),
|
|
126
|
+
s.length === C && /* @__PURE__ */ o.jsx("li", { className: "tip", children: "More than 500 results, please refine your search..." })
|
|
127
|
+
]
|
|
128
|
+
}
|
|
129
|
+
)
|
|
130
|
+
] });
|
|
131
|
+
};
|
|
132
|
+
export {
|
|
133
|
+
z as AccessSearchInput
|
|
134
|
+
};
|
|
135
|
+
//# sourceMappingURL=AccessSearchInput.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccessSearchInput.es.js","sources":["../../../../../src/components/AccessSearchInput/AccessSearchInput.tsx"],"sourcesContent":["import React, { FC, useState, useRef, KeyboardEvent, ChangeEvent } from 'react'\nimport { matchSorter } from 'match-sorter'\nimport { InputText } from '@ynput/ayon-react-components'\nimport { AccessLevel } from '../AccessUser/AccessUser'\nimport * as Styled from './AccessSearchInput.styled'\nimport { AccessUser } from '../AccessUser/AccessUser'\nimport clsx from 'clsx'\nimport { ShareOption } from '@shared/api'\n\nconst MAX_USERS_DISPLAYED = 500\n// Email validation regex\nconst EMAIL_REGEX = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\n\nexport interface AccessSearchInputProps extends React.HTMLAttributes<HTMLDivElement> {\n shareOptions: ShareOption[]\n existingAccess: string[] // Array of names already in access\n owner: string | undefined | null\n placeholder?: string\n disabled?: boolean\n mode?: 'internal' | 'external'\n onSelectOption: (option: ShareOption, accessLevel: AccessLevel) => void\n pt?: {\n list?: Partial<React.HTMLAttributes<HTMLUListElement>>\n }\n}\n\nexport const AccessSearchInput: FC<AccessSearchInputProps> = ({\n shareOptions,\n existingAccess,\n owner,\n placeholder = 'Add people or access groups',\n disabled = false,\n mode = 'internal',\n onSelectOption,\n pt,\n ...props\n}) => {\n const [searchValue, setSearchValue] = useState('')\n const [isOpen, setIsOpen] = useState(false)\n const [highlightedIndex, setHighlightedIndex] = useState(-1)\n const inputRef = useRef<HTMLInputElement>(null)\n\n // sort default by special groups __everyone__, __{type}__, team:, group:, user: and alphabetically\n const defaultSorted = shareOptions\n .filter((option) => !existingAccess.includes(option.value))\n .toSorted((a, b) => {\n const getRank = (option: ShareOption) => {\n if (option.value === '__everyone__') return 0\n if (option.value.startsWith('__')) return 1\n if (option.value.startsWith('team:')) return 2\n if (option.value.startsWith('group:')) return 3\n if (option.value.startsWith('user:')) return 4\n return 5\n }\n const rankA = getRank(a)\n const rankB = getRank(b)\n if (rankA !== rankB) return rankA - rankB\n return a.label.localeCompare(b.label)\n })\n\n // Filter and sort options based on search value\n const filteredOptions = (\n searchValue\n ? matchSorter(defaultSorted, searchValue, {\n keys: ['name', 'label', 'value'],\n threshold: matchSorter.rankings.CONTAINS,\n })\n : defaultSorted\n ).slice(0, MAX_USERS_DISPLAYED)\n\n // Check if search value is a valid email and not already added\n const isValidNewEmail =\n EMAIL_REGEX.test(searchValue) &&\n !shareOptions.some((g) => g.name === searchValue) &&\n mode === 'external'\n\n // Handle input focus\n const handleFocus = () => {\n setIsOpen(true)\n setHighlightedIndex(-1)\n }\n\n // Handle input blur\n const handleBlur = () => {\n // Delay closing to allow for option selection\n setTimeout(() => {\n setIsOpen(false)\n setHighlightedIndex(-1)\n }, 200)\n }\n\n // Handle input change\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n setSearchValue(e.target.value)\n setHighlightedIndex(-1)\n setIsOpen(true)\n }\n\n // Handle keyboard navigation\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (!isOpen || filteredOptions.length === 0) {\n // If Enter is pressed and no options are highlighted, select the first option\n if (e.key === 'Enter' && filteredOptions.length > 0) {\n e.preventDefault()\n handleSelectOption(filteredOptions[0])\n }\n return\n }\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault()\n setHighlightedIndex((prev) => (prev < filteredOptions.length - 1 ? prev + 1 : prev))\n break\n case 'ArrowUp':\n e.preventDefault()\n setHighlightedIndex((prev) => (prev > 0 ? prev - 1 : -1))\n break\n case 'Enter':\n e.preventDefault()\n if (highlightedIndex >= 0 && highlightedIndex < filteredOptions.length) {\n handleSelectOption(filteredOptions[highlightedIndex])\n } else if (filteredOptions.length > 0) {\n // If no specific option is highlighted, select the first one\n handleSelectOption(filteredOptions[0])\n }\n break\n case 'Escape':\n setIsOpen(false)\n setHighlightedIndex(-1)\n inputRef.current?.blur()\n // stop dialog from closing\n e.stopPropagation()\n break\n }\n }\n\n // Handle option selection\n const handleSelectOption = (option: ShareOption) => {\n onSelectOption(option, 10) // Default access level is 10 (Read-only)\n setSearchValue('')\n setIsOpen(false)\n setHighlightedIndex(-1)\n inputRef.current?.focus()\n }\n\n // Handle adding a new email\n const handleAddNewEmail = () => {\n onSelectOption(\n {\n name: searchValue,\n label: searchValue,\n value: searchValue,\n shareType: 'guest',\n },\n 10,\n )\n setSearchValue('')\n setIsOpen(false)\n setHighlightedIndex(-1)\n inputRef.current?.focus()\n }\n\n return (\n <Styled.Container {...props}>\n <InputText\n ref={inputRef}\n value={searchValue}\n placeholder={placeholder}\n disabled={disabled}\n onFocus={handleFocus}\n onClick={handleFocus}\n onBlur={handleBlur}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n style={{ width: '100%' }}\n />\n\n {isOpen && (filteredOptions.length > 0 || isValidNewEmail) && (\n <Styled.SuggestionsList\n {...pt?.list}\n className={clsx(pt?.list?.className, { 'no-owner': !owner })}\n >\n {filteredOptions.map((option, index) => (\n <AccessUser\n key={option.value}\n name={option.name}\n label={option.label}\n shareType={option.shareType}\n isOwner={false}\n isMe={false}\n data-index={index}\n className={index === highlightedIndex ? 'highlighted' : ''}\n style={{ cursor: 'pointer' }}\n onClick={() => handleSelectOption(option)}\n onMouseEnter={() => setHighlightedIndex(index)}\n isCompact\n isSearchResult\n >\n {/* No controls needed for search suggestions */}\n </AccessUser>\n ))}\n\n {/* Add new email option */}\n {isValidNewEmail && (\n <AccessUser\n name={searchValue}\n label={searchValue}\n shareType=\"guest\"\n isOwner={false}\n isMe={false}\n data-index={filteredOptions.length}\n className={filteredOptions.length === highlightedIndex ? 'highlighted' : ''}\n style={{ cursor: 'pointer' }}\n onClick={handleAddNewEmail}\n onMouseEnter={() => setHighlightedIndex(filteredOptions.length)}\n isCompact\n isSearchResult\n />\n )}\n\n {filteredOptions.length === MAX_USERS_DISPLAYED && (\n <li className=\"tip\">More than 500 results, please refine your search...</li>\n )}\n </Styled.SuggestionsList>\n )}\n </Styled.Container>\n )\n}\n"],"names":["MAX_USERS_DISPLAYED","EMAIL_REGEX","AccessSearchInput","shareOptions","existingAccess","owner","placeholder","disabled","mode","onSelectOption","pt","props","searchValue","setSearchValue","useState","isOpen","setIsOpen","highlightedIndex","setHighlightedIndex","inputRef","useRef","defaultSorted","option","a","b","getRank","rankA","rankB","filteredOptions","matchSorter","isValidNewEmail","g","handleFocus","handleBlur","handleInputChange","handleKeyDown","handleSelectOption","prev","_a","handleAddNewEmail","jsxs","Styled.Container","jsx","InputText","Styled.SuggestionsList","clsx","index","AccessUser"],"mappings":"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"}
|