@ynput/ayon-frontend-shared 0.2.39 → 0.2.41
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 +24 -22
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +256 -248
- package/dist/api.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +11 -9
- package/dist/index.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +16 -16
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
- package/dist/shared/src/api/queries/config/getConfig.cjs.js +2 -0
- package/dist/shared/src/api/queries/config/getConfig.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/config/getConfig.es.js +111 -0
- package/dist/shared/src/api/queries/config/getConfig.es.js.map +1 -0
- package/dist/shared/src/api/queries/config/updateConfig.cjs.js +2 -0
- package/dist/shared/src/api/queries/config/updateConfig.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/config/updateConfig.es.js +13 -0
- package/dist/shared/src/api/queries/config/updateConfig.es.js.map +1 -0
- 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 +5 -3
- package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.es.js +106 -86
- package/dist/shared/src/api/queries/links/getEntityLinks.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 +68 -66
- package/dist/shared/src/api/queries/overview/updateOverview.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 +34 -32
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.cjs.js +8 -7
- package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.cjs.js.map +1 -1
- package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.es.js +24 -20
- package/dist/shared/src/components/AddonLoadingScreen/AddonLoadingScreen.es.js.map +1 -1
- package/dist/shared/src/components/Chips/Chips.cjs.js +10 -6
- package/dist/shared/src/components/Chips/Chips.cjs.js.map +1 -1
- package/dist/shared/src/components/Chips/Chips.es.js +44 -38
- package/dist/shared/src/components/Chips/Chips.es.js.map +1 -1
- 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/DetailsPanelDetails.cjs.js +1 -1
- 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/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 +4 -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 +4 -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 +28 -25
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js +5 -0
- package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js +5 -0
- package/dist/shared/src/components/LinksManager/LinksManager.styled.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 +4 -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 +4 -2
- 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 +4 -2
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- 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 +6 -4
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +4 -2
- 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 +4 -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 +4 -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 +5 -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 +4 -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 +8 -6
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- 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 +4 -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 +4 -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 +4 -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 +4 -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 +4 -2
- 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 +4 -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 +5 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -2
- 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 +4 -2
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.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 +4 -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 +4 -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 +4 -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 +4 -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/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 +4 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +4 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
- 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 +4 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.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 +4 -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 +7 -5
- package/dist/shared/src/containers/Feed/context/FeedContext.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 +4 -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 +4 -2
- 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 +4 -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 +4 -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 +4 -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 +6 -4
- 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 +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.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 +4 -2
- 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 +4 -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 +4 -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 +4 -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 +30 -28
- 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 +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.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 +4 -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 +4 -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 +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +4 -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 +15 -13
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js +34 -21
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.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 +31 -28
- 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 +4 -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 +4 -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 +4 -2
- 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 +6 -4
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
- package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
- package/dist/shared/src/context/GlobalContext.es.js +6 -4
- package/dist/shared/src/context/GlobalContext.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 +8 -6
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.es.js +44 -38
- package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.es.js +6 -4
- package/dist/shared/src/context/ProjectFoldersContext.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/context/UriContext.cjs.js +1 -1
- package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
- package/dist/shared/src/context/UriContext.es.js +7 -5
- package/dist/shared/src/context/UriContext.es.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.es.js +6 -4
- package/dist/shared/src/context/WebsocketContext.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/useGetEntityGroups.cjs.js +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.es.js +4 -2
- package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +4 -2
- package/dist/shared/src/hooks/useGroupByRemoteModules.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/types/api/queries/config/getConfig.d.ts +747 -0
- package/dist/types/api/queries/config/index.d.ts +2 -0
- package/dist/types/api/queries/config/updateConfig.d.ts +171 -0
- package/dist/types/api/queries/index.d.ts +1 -0
- package/dist/types/api/queries/links/getEntityLinks.d.ts +2 -1
- package/dist/types/components/AddonLoadingScreen/AddonLoadingScreen.d.ts +7 -2
- package/dist/types/components/Chips/Chips.d.ts +1 -0
- package/dist/types/components/LinksManager/LinksManager.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackContext.es.js","sources":["../../../../../src/components/Feedback/FeedbackContext.tsx"],"sourcesContent":["import React, { createContext, useContext, ReactNode, useEffect, useState } from 'react'\nimport { useGetFeedbackVerificationQuery } from '@shared/api'\nimport { useGlobalContext } from '@shared/context'\n\nexport type FeedbackContextType = {\n loaded: boolean\n openSupport: (\n page?: 'Home' | 'Messages' | 'Changelog' | 'Help' | 'NewMessage' | 'ShowArticle',\n id?: string,\n ) => void\n messengerLoaded: boolean // whether the messenger widget is loaded\n unreadCount: number // number of unread messages\n messengerVisibility: boolean\n setMessengerVisibility: (show: boolean) => void // show/hide the messenger icon\n openFeedback: () => void\n openPortal: (\n page?: 'MainView' | 'RoadmapView' | 'CreatePost' | 'PostsView' | 'ChangelogView' | 'HelpView',\n articleId?: string,\n ) => void\n}\n\nconst FeedbackContext = createContext<FeedbackContextType | undefined>(undefined)\n\ntype FeedbackProviderProps = {\n children: ReactNode\n}\n\nexport const FeedbackProvider: React.FC<FeedbackProviderProps> = ({ children }) => {\n const [scriptLoaded, setScriptLoaded] = useState(false)\n const { siteInfo, user, cloudInfo } = useGlobalContext()\n const { data: verification, isLoading: isLoadingVerification } = useGetFeedbackVerificationQuery(\n {},\n {\n skip: !user?.name || !cloudInfo,\n },\n )\n\n const loadScript = () => {\n if (!scriptLoaded) {\n const script = document.createElement('script')\n script.src = 'https://do.featurebase.app/js/sdk.js'\n script.id = 'featurebase-sdk'\n script.async = true\n document.body.appendChild(script)\n setScriptLoaded(true)\n }\n }\n\n const initialize = () => {\n // Initialize Featurebase\n const win = window as any\n if (typeof win.Featurebase !== 'function') {\n win.Featurebase = function () {\n ;(win.Featurebase.q = win.Featurebase.q || []).push(arguments)\n }\n }\n }\n\n const serverVersion = siteInfo?.version?.split('+')[0] || 'unknown'\n const frontendVersion = siteInfo?.version?.split('+')[1] || 'unknown'\n\n const identifyUser = () => {\n if (!user?.name || !verification?.available) return\n\n const identifyData = {\n ...verification.data,\n customFields: {\n origin: window.location.origin,\n serverVersion: serverVersion,\n frontendVersion: frontendVersion,\n instanceId: cloudInfo?.instanceId,\n },\n }\n\n console.log(identifyData)\n\n const win = window as any\n win.Featurebase('identify', identifyData, (err: any) => {\n // Callback function. Called when identify completed.\n if (err) {\n console.error(err)\n } else {\n console.log('Featurebase identify completed')\n }\n })\n }\n\n const [messengerLoaded, setMessengerLoaded] = useState(false)\n const [unreadCount, setUnreadCount] = useState(0)\n\n // MESSENGER WIDGET\n const initializeMessenger = (): void => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n console.log('Initializing Featurebase messenger widget')\n if (!verification?.available)\n return console.warn('messenger verification not available, skipping messenger init')\n win.Featurebase(\n 'boot',\n {\n theme: 'dark',\n ...verification?.data,\n },\n (err: any) => {\n // Callback function. Called when identify completed.\n if (err) {\n console.error(err)\n } else {\n console.log('Featurebase messenger completed')\n setMessengerLoaded(true)\n\n // register event listener for unread messages\n win.Featurebase('onUnreadCountChange', function (unreadCount: number) {\n setUnreadCount(unreadCount)\n })\n }\n },\n )\n }\n }\n\n // CHANGELOG WIDGET\n const initializeChangelog = (): boolean => {\n // everyone sees highlights\n const categories: string[] = []\n\n if (user?.data?.isAdmin) {\n // admins see everything\n const adminCategories = ['Server', 'Addon', 'Pipeline']\n categories.push(...adminCategories)\n } else if (!siteInfo?.disableChangelog) {\n // users only see highlights (unless disabled)\n // admins do not see highlights as it is a subset of the other categories\n categories.push('Highlights')\n }\n\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase('init_changelog_widget', {\n organization: 'ayon',\n dropdown: {\n enabled: true,\n },\n popup: {\n enabled: true,\n usersName: user?.attrib?.fullName,\n autoOpenForNewUpdates: true,\n },\n category: categories,\n theme: 'dark',\n })\n }\n return false\n }\n\n // FEEDBACK WIDGET\n const initializeFeedbackWidget = (): boolean => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase(\n 'initialize_feedback_widget',\n {\n organization: 'ayon',\n theme: 'dark',\n metadata: {},\n },\n (error: any) => {\n if (error) {\n console.error('Error initializing feedback widget:', error)\n } else {\n }\n },\n )\n }\n return false\n }\n\n // PORTAL WIDGET (old)\n const initializePortalWidget = (): boolean => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase(\n 'initialize_portal_widget',\n {\n organization: 'ayon',\n fullScreen: true,\n initialPage: 'MainView',\n },\n (error: any) => {\n if (error) {\n console.error('Error initializing portal widget:', error)\n return false\n } else {\n return true\n }\n },\n )\n }\n return false\n }\n\n // Use an environment variable to skip loading Featurebase in certain environments\n // @ts-expect-error: Vite provides import.meta.env at runtime\n const skipFeaturebase = import.meta.env.VITE_SKIP_FEATUREBASE === 'true'\n\n // Load Featurebase script and initialize widgets\n useEffect(() => {\n // if skip flag is set, do not load the script\n if (skipFeaturebase) return\n // if not logged in, do not load the script\n if (!user?.name) return\n if (!siteInfo) return\n\n // if already loaded, do not load again\n if (scriptLoaded) return\n\n // Load the Featurebase script\n loadScript()\n\n // Initialize Featurebase\n initialize()\n\n // Initialize changelog widget\n initializeChangelog()\n\n // Initialize feedback widget\n initializeFeedbackWidget()\n\n // Initialize portal widget\n initializePortalWidget()\n }, [user?.name, scriptLoaded, siteInfo])\n\n const [identified, setIdentified] = useState(false)\n // verify user\n useEffect(() => {\n // check if we can identify the user\n if (!user?.name || !cloudInfo || !verification || !scriptLoaded) return\n // if we are already identified, do not identify again\n if (identified) return\n // Identify the user\n identifyUser()\n setIdentified(true)\n }, [\n user?.name,\n cloudInfo?.instanceId,\n verification?.available,\n scriptLoaded,\n window.location.pathname,\n identified,\n ])\n\n // load messenger widget once verification is done loading\n // we don't need verification but we should use it if we have it\n useEffect(() => {\n // wait for script to be loaded and verification to finish loading\n if (isLoadingVerification || !scriptLoaded) return\n\n // initialize the messenger widget\n initializeMessenger()\n }, [verification, isLoadingVerification, scriptLoaded])\n\n const openFeedback: FeedbackContextType['openFeedback'] = () => {\n window.postMessage({\n target: 'FeaturebaseWidget',\n data: {\n action: 'openFeedbackWidget',\n },\n })\n }\n\n const openPortal = (\n page:\n | 'MainView'\n | 'RoadmapView'\n | 'CreatePost'\n | 'PostsView'\n | 'ChangelogView'\n | 'HelpView' = 'MainView',\n articleId?: string,\n ) => {\n window.postMessage({\n target: 'FeaturebaseWidget',\n data: {\n action: 'changePage',\n payload: page,\n openWidget: true,\n ...(articleId && { articleId }),\n },\n })\n }\n\n const [messengerVisibility, setMessengerVisibility] = useState(false)\n const supportElement = document.getElementById('fb-messenger-root')\n\n const setSupportDisplay = (show: boolean) =>\n supportElement instanceof HTMLElement &&\n (supportElement.style.display = show ? 'block' : 'none')\n\n useEffect(() => {\n if (!scriptLoaded || !messengerLoaded) return\n setSupportDisplay(messengerVisibility)\n }, [scriptLoaded, messengerLoaded, messengerVisibility])\n\n // when the messenger is hidden, we need to hide the root element again\n useEffect(() => {\n if (!scriptLoaded || !messengerLoaded) return\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase('onHide', function () {\n // hide the messenger root element\n setMessengerVisibility(false)\n })\n }\n }, [scriptLoaded, messengerLoaded])\n\n const openSupport: FeedbackContextType['openSupport'] = (page = 'Home', id) => {\n const win = window as any\n if (typeof win.Featurebase !== 'function') {\n window.alert('Featurebase SDK is not loaded yet. Please try again later.')\n console.warn('Featurebase SDK is not loaded yet.')\n return\n }\n\n if (messengerVisibility) {\n // if the messenger is already visible, close it\n win.Featurebase('hide')\n setMessengerVisibility(false)\n return\n }\n\n // ensure the messenger is visible\n setMessengerVisibility(true)\n\n switch (page) {\n case 'Home':\n // Show messenger home\n win.Featurebase('show')\n break\n case 'Messages':\n // Show messages view\n win.Featurebase('show', 'messages')\n break\n case 'Changelog':\n // Show changelog view\n win.Featurebase('show', 'changelog')\n break\n case 'Help':\n // Open help center\n win.Featurebase('show', 'help')\n break\n case 'ShowArticle':\n // Open a specific help article\n if (id) win.Featurebase('showArticle', id)\n else win.Featurebase('show', 'help')\n break\n case 'NewMessage':\n // Open new message dialog\n win.Featurebase('showNewMessage', id)\n break\n default:\n // Default to showing the main widget\n win.Featurebase('show')\n break\n }\n }\n\n return (\n <FeedbackContext.Provider\n value={{\n openSupport,\n openFeedback,\n openPortal,\n messengerLoaded,\n unreadCount,\n messengerVisibility,\n setMessengerVisibility,\n loaded: scriptLoaded,\n }}\n >\n {children}\n </FeedbackContext.Provider>\n )\n}\n\nexport const useFeedback = (): FeedbackContextType => {\n const context = useContext(FeedbackContext)\n if (!context) {\n throw new Error('useFeedback must be used within a FeedbackProvider')\n }\n return context\n}\n"],"names":["FeedbackContext","createContext","FeedbackProvider","children","scriptLoaded","setScriptLoaded","useState","siteInfo","user","cloudInfo","useGlobalContext","verification","isLoadingVerification","useGetFeedbackVerificationQuery","loadScript","script","initialize","win","serverVersion","_a","frontendVersion","_b","identifyUser","identifyData","err","messengerLoaded","setMessengerLoaded","unreadCount","setUnreadCount","initializeMessenger","initializeChangelog","categories","adminCategories","initializeFeedbackWidget","error","initializePortalWidget","useEffect","identified","setIdentified","openFeedback","openPortal","page","articleId","messengerVisibility","setMessengerVisibility","supportElement","setSupportDisplay","show","openSupport","id","jsx","useFeedback","context","useContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FeedbackContext.es.js","sources":["../../../../../src/components/Feedback/FeedbackContext.tsx"],"sourcesContent":["import React, { createContext, useContext, ReactNode, useEffect, useState } from 'react'\nimport { useGetFeedbackVerificationQuery } from '@shared/api'\nimport { useGlobalContext } from '@shared/context'\n\nexport type FeedbackContextType = {\n loaded: boolean\n openSupport: (\n page?: 'Home' | 'Messages' | 'Changelog' | 'Help' | 'NewMessage' | 'ShowArticle',\n id?: string,\n ) => void\n messengerLoaded: boolean // whether the messenger widget is loaded\n unreadCount: number // number of unread messages\n messengerVisibility: boolean\n setMessengerVisibility: (show: boolean) => void // show/hide the messenger icon\n openFeedback: () => void\n openPortal: (\n page?: 'MainView' | 'RoadmapView' | 'CreatePost' | 'PostsView' | 'ChangelogView' | 'HelpView',\n articleId?: string,\n ) => void\n}\n\nconst FeedbackContext = createContext<FeedbackContextType | undefined>(undefined)\n\ntype FeedbackProviderProps = {\n children: ReactNode\n}\n\nexport const FeedbackProvider: React.FC<FeedbackProviderProps> = ({ children }) => {\n const [scriptLoaded, setScriptLoaded] = useState(false)\n const { siteInfo, user, cloudInfo } = useGlobalContext()\n const { data: verification, isLoading: isLoadingVerification } = useGetFeedbackVerificationQuery(\n {},\n {\n skip: !user?.name || !cloudInfo,\n },\n )\n\n const loadScript = () => {\n if (!scriptLoaded) {\n const script = document.createElement('script')\n script.src = 'https://do.featurebase.app/js/sdk.js'\n script.id = 'featurebase-sdk'\n script.async = true\n document.body.appendChild(script)\n setScriptLoaded(true)\n }\n }\n\n const initialize = () => {\n // Initialize Featurebase\n const win = window as any\n if (typeof win.Featurebase !== 'function') {\n win.Featurebase = function () {\n ;(win.Featurebase.q = win.Featurebase.q || []).push(arguments)\n }\n }\n }\n\n const serverVersion = siteInfo?.version?.split('+')[0] || 'unknown'\n const frontendVersion = siteInfo?.version?.split('+')[1] || 'unknown'\n\n const identifyUser = () => {\n if (!user?.name || !verification?.available) return\n\n const identifyData = {\n ...verification.data,\n customFields: {\n origin: window.location.origin,\n serverVersion: serverVersion,\n frontendVersion: frontendVersion,\n instanceId: cloudInfo?.instanceId,\n },\n }\n\n console.log(identifyData)\n\n const win = window as any\n win.Featurebase('identify', identifyData, (err: any) => {\n // Callback function. Called when identify completed.\n if (err) {\n console.error(err)\n } else {\n console.log('Featurebase identify completed')\n }\n })\n }\n\n const [messengerLoaded, setMessengerLoaded] = useState(false)\n const [unreadCount, setUnreadCount] = useState(0)\n\n // MESSENGER WIDGET\n const initializeMessenger = (): void => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n console.log('Initializing Featurebase messenger widget')\n if (!verification?.available)\n return console.warn('messenger verification not available, skipping messenger init')\n win.Featurebase(\n 'boot',\n {\n theme: 'dark',\n ...verification?.data,\n },\n (err: any) => {\n // Callback function. Called when identify completed.\n if (err) {\n console.error(err)\n } else {\n console.log('Featurebase messenger completed')\n setMessengerLoaded(true)\n\n // register event listener for unread messages\n win.Featurebase('onUnreadCountChange', function (unreadCount: number) {\n setUnreadCount(unreadCount)\n })\n }\n },\n )\n }\n }\n\n // CHANGELOG WIDGET\n const initializeChangelog = (): boolean => {\n // everyone sees highlights\n const categories: string[] = []\n\n if (user?.data?.isAdmin) {\n // admins see everything\n const adminCategories = ['Server', 'Addon', 'Pipeline']\n categories.push(...adminCategories)\n } else if (!siteInfo?.disableChangelog) {\n // users only see highlights (unless disabled)\n // admins do not see highlights as it is a subset of the other categories\n categories.push('Highlights')\n }\n\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase('init_changelog_widget', {\n organization: 'ayon',\n dropdown: {\n enabled: true,\n },\n popup: {\n enabled: true,\n usersName: user?.attrib?.fullName,\n autoOpenForNewUpdates: true,\n },\n category: categories,\n theme: 'dark',\n })\n }\n return false\n }\n\n // FEEDBACK WIDGET\n const initializeFeedbackWidget = (): boolean => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase(\n 'initialize_feedback_widget',\n {\n organization: 'ayon',\n theme: 'dark',\n metadata: {},\n },\n (error: any) => {\n if (error) {\n console.error('Error initializing feedback widget:', error)\n } else {\n }\n },\n )\n }\n return false\n }\n\n // PORTAL WIDGET (old)\n const initializePortalWidget = (): boolean => {\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase(\n 'initialize_portal_widget',\n {\n organization: 'ayon',\n fullScreen: true,\n initialPage: 'MainView',\n },\n (error: any) => {\n if (error) {\n console.error('Error initializing portal widget:', error)\n return false\n } else {\n return true\n }\n },\n )\n }\n return false\n }\n\n // Use an environment variable to skip loading Featurebase in certain environments\n // @ts-expect-error: Vite provides import.meta.env at runtime\n const skipFeaturebase = import.meta.env.VITE_SKIP_FEATUREBASE === 'true'\n\n // Load Featurebase script and initialize widgets\n useEffect(() => {\n // if skip flag is set, do not load the script\n if (skipFeaturebase) return\n // if not logged in, do not load the script\n if (!user?.name) return\n if (!siteInfo) return\n\n // if already loaded, do not load again\n if (scriptLoaded) return\n\n // Load the Featurebase script\n loadScript()\n\n // Initialize Featurebase\n initialize()\n\n // Initialize changelog widget\n initializeChangelog()\n\n // Initialize feedback widget\n initializeFeedbackWidget()\n\n // Initialize portal widget\n initializePortalWidget()\n }, [user?.name, scriptLoaded, siteInfo])\n\n const [identified, setIdentified] = useState(false)\n // verify user\n useEffect(() => {\n // check if we can identify the user\n if (!user?.name || !cloudInfo || !verification || !scriptLoaded) return\n // if we are already identified, do not identify again\n if (identified) return\n // Identify the user\n identifyUser()\n setIdentified(true)\n }, [\n user?.name,\n cloudInfo?.instanceId,\n verification?.available,\n scriptLoaded,\n window.location.pathname,\n identified,\n ])\n\n // load messenger widget once verification is done loading\n // we don't need verification but we should use it if we have it\n useEffect(() => {\n // wait for script to be loaded and verification to finish loading\n if (isLoadingVerification || !scriptLoaded) return\n\n // initialize the messenger widget\n initializeMessenger()\n }, [verification, isLoadingVerification, scriptLoaded])\n\n const openFeedback: FeedbackContextType['openFeedback'] = () => {\n window.postMessage({\n target: 'FeaturebaseWidget',\n data: {\n action: 'openFeedbackWidget',\n },\n })\n }\n\n const openPortal = (\n page:\n | 'MainView'\n | 'RoadmapView'\n | 'CreatePost'\n | 'PostsView'\n | 'ChangelogView'\n | 'HelpView' = 'MainView',\n articleId?: string,\n ) => {\n window.postMessage({\n target: 'FeaturebaseWidget',\n data: {\n action: 'changePage',\n payload: page,\n openWidget: true,\n ...(articleId && { articleId }),\n },\n })\n }\n\n const [messengerVisibility, setMessengerVisibility] = useState(false)\n const supportElement = document.getElementById('fb-messenger-root')\n\n const setSupportDisplay = (show: boolean) =>\n supportElement instanceof HTMLElement &&\n (supportElement.style.display = show ? 'block' : 'none')\n\n useEffect(() => {\n if (!scriptLoaded || !messengerLoaded) return\n setSupportDisplay(messengerVisibility)\n }, [scriptLoaded, messengerLoaded, messengerVisibility])\n\n // when the messenger is hidden, we need to hide the root element again\n useEffect(() => {\n if (!scriptLoaded || !messengerLoaded) return\n const win = window as any\n if (typeof win.Featurebase === 'function') {\n win.Featurebase('onHide', function () {\n // hide the messenger root element\n setMessengerVisibility(false)\n })\n }\n }, [scriptLoaded, messengerLoaded])\n\n const openSupport: FeedbackContextType['openSupport'] = (page = 'Home', id) => {\n const win = window as any\n if (typeof win.Featurebase !== 'function') {\n window.alert('Featurebase SDK is not loaded yet. Please try again later.')\n console.warn('Featurebase SDK is not loaded yet.')\n return\n }\n\n if (messengerVisibility) {\n // if the messenger is already visible, close it\n win.Featurebase('hide')\n setMessengerVisibility(false)\n return\n }\n\n // ensure the messenger is visible\n setMessengerVisibility(true)\n\n switch (page) {\n case 'Home':\n // Show messenger home\n win.Featurebase('show')\n break\n case 'Messages':\n // Show messages view\n win.Featurebase('show', 'messages')\n break\n case 'Changelog':\n // Show changelog view\n win.Featurebase('show', 'changelog')\n break\n case 'Help':\n // Open help center\n win.Featurebase('show', 'help')\n break\n case 'ShowArticle':\n // Open a specific help article\n if (id) win.Featurebase('showArticle', id)\n else win.Featurebase('show', 'help')\n break\n case 'NewMessage':\n // Open new message dialog\n win.Featurebase('showNewMessage', id)\n break\n default:\n // Default to showing the main widget\n win.Featurebase('show')\n break\n }\n }\n\n return (\n <FeedbackContext.Provider\n value={{\n openSupport,\n openFeedback,\n openPortal,\n messengerLoaded,\n unreadCount,\n messengerVisibility,\n setMessengerVisibility,\n loaded: scriptLoaded,\n }}\n >\n {children}\n </FeedbackContext.Provider>\n )\n}\n\nexport const useFeedback = (): FeedbackContextType => {\n const context = useContext(FeedbackContext)\n if (!context) {\n throw new Error('useFeedback must be used within a FeedbackProvider')\n }\n return context\n}\n"],"names":["FeedbackContext","createContext","FeedbackProvider","children","scriptLoaded","setScriptLoaded","useState","siteInfo","user","cloudInfo","useGlobalContext","verification","isLoadingVerification","useGetFeedbackVerificationQuery","loadScript","script","initialize","win","serverVersion","_a","frontendVersion","_b","identifyUser","identifyData","err","messengerLoaded","setMessengerLoaded","unreadCount","setUnreadCount","initializeMessenger","initializeChangelog","categories","adminCategories","initializeFeedbackWidget","error","initializePortalWidget","useEffect","identified","setIdentified","openFeedback","openPortal","page","articleId","messengerVisibility","setMessengerVisibility","supportElement","setSupportDisplay","show","openSupport","id","jsx","useFeedback","context","useContext"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("../../../../_virtual/jsx-runtime.cjs.js"),o=require("react"),s=require("./LinksManager.styled.cjs.js"),k=require("@ynput/ayon-react-components");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/entities/getEntity.cjs.js");require("../../api/queries/entities/getEntityPanel.cjs.js");require("../../api/queries/entities/updateEntity.cjs.js");require("../../api/queries/entityLists/getLists.cjs.js");require("../../api/queries/entityLists/updateLists.cjs.js");require("../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/entityLists/listFolders.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");const F=require("../../api/queries/links/getLinks.cjs.js");require("../../api/queries/links/getEntityLinks.cjs.js");require("../../api/queries/overview/getOverview.cjs.js");require("../../api/queries/overview/updateOverview.cjs.js");require("../../api/queries/versions/getVersionsProducts.cjs.js");require("../../api/queries/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/users/guests.cjs.js");require("../../api/queries/versions/updateVersions.cjs.js");require("../../api/queries/views/getViews.cjs.js");require("../../api/queries/views/updateViews.cjs.js");require("../../api/queries/watchers/getWatchers.cjs.js");require("../../api/queries/uris/getUris.cjs.js");const $=require("./hooks/useKeyboardNavigation.cjs.js"),w=require("./SearchingLoadingItems.cjs.js");require("../../context/RemoteModulesContext.cjs.js");require("../../context/DetailsPanelContext.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../context/pip/PiPWrapper.cjs.js");require("../../context/AddonProjectContext.cjs.js");require("../../context/AddonContext.cjs.js");require("../../context/PowerpackContext.cjs.js");require("../../context/MoveEntityContext.cjs.js");require("../../context/MenuContext.cjs.js");require("../../context/WebsocketContext.cjs.js");require("../../context/GlobalContext.cjs.js");const B=require("../../context/ProjectContext.cjs.js");require("../../context/ProjectFoldersContext.cjs.js");require("../../context/UriContext.cjs.js");require("../../containers/ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("clsx");require("../../containers/Feed/context/FeedContext.cjs.js");require("../../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../containers/Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../containers/Feed/components/CommentInput/CommentInput.cjs.js");require("../../containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("lodash");require("../../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-toastify");require("uuid");require("../../util/pubsub.cjs.js");require("react-router-dom");require("../../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../containers/Feed/components/ActivityDate.cjs.js");require("../AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../ThumbnailSimple/ThumbnailSimple.cjs.js");require("../EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../ReviewablesList/ReviewablesList.styled.cjs.js");require("../ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../ReviewableCard/ReviewableCard.cjs.js");require("../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../FileThumbnail/FileThumbnail.cjs.js");require("../Thumbnail/Thumbnail.styled.cjs.js");require("../Thumbnail/StackedThumbnails.cjs.js");require("../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../SimpleFormDialog/SimpleFormDialog.cjs.js");require("../EntityPath/EntityPath.styled.cjs.js");require("../EntityPath/SegmentProvider.cjs.js");require("../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../DetailsPanelDetails/DetailsSection.cjs.js");require("../DetailsPanelDetails/FieldLabel.cjs.js");require("../Watchers/Watchers.cjs.js");require("../ProjectTableSettings/ProjectTableSettings.cjs.js");require("../Powerpack/PowerpackButton.cjs.js");require("../Powerpack/PricingLink.cjs.js");require("../Powerpack/PowerpackDialog.styled.cjs.js");require("../Powerpack/CTAButton.cjs.js");require("../Powerpack/RequiredAddonVersion.cjs.js");require("../SizeSlider/SizeSlider.cjs.js");require("../SettingsPanel/SettingsPanel.cjs.js");require("../SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../AttributeEditor/components/MinMaxField.cjs.js");require("../EnumEditor/EnumEditor.styled.cjs.js");require("../SearchFilter/filterDates.cjs.js");require("../FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../Badge/Badge.cjs.js");require("../VersionUploader/components/UploadVersionDialog.cjs.js");require("../VersionUploader/context/VersionUploadContext.cjs.js");require("../Feedback/FeedbackContext.cjs.js");require("../Feedback/SupportBubble.cjs.js");require("../Chips/Chips.cjs.js");require("../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../StyledLink/StyledLink.cjs.js");require("date-fns");require("../ShareOptionIcon/ShareOptionIcon.cjs.js");require("../AccessUser/AccessUser.cjs.js");require("../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../TableGridSwitch/TableGridSwitch.cjs.js");require("../SortingSetting/SortingSetting.styled.cjs.js");require("../EarlyPreview/EarlyPreview.cjs.js");require("../LegacyBadge/LegacyBadge.cjs.js");require("../Menu/Menu.styled.cjs.js");require("../Menu/MenuItem.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../containers/Feed/Feed.styled.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../containers/ProjectTreeTable/ProjectTreeTable.cjs.js");require("../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("short-uuid");const M=require("../../containers/ProjectTreeTable/utils/linksToTableData.cjs.js");require("../../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("@tanstack/react-table");require("../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("./CellEditingDialog.cjs.js");require("../../containers/ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../../containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../../containers/DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../PlayableIcon/PlayableIcon.cjs.js");require("../../containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../containers/Actions/Actions.styled.cjs.js");require("../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../containers/Actions/ActionIcon.cjs.js");require("../../containers/Views/context/ViewsContext.cjs.js");require("../../containers/Views/Views.styled.cjs.js");require("../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");const _=({projectName:I,targetEntityType:c,onClose:a,onSearchTypeChange:S,onAdd:x})=>{const[t,m]=o.useState(""),l=o.useRef(null),u=B.useProjectContext(),T={folderTypes:(u==null?void 0:u.folderTypes)||[],taskTypes:(u==null?void 0:u.taskTypes)||[],productTypes:(u==null?void 0:u.productTypes)||[]},{data:r,error:h,isLoading:j,hasNextPage:d,isFetchingNextPage:R,fetchNextPage:b}=F.useGetSearchedEntitiesLinksInfiniteQuery({projectName:I,entityType:c,search:t},{skip:!t}),g=o.useMemo(()=>(r==null?void 0:r.pages.flatMap(i=>i.entities))||[],[r]),E=i=>{console.log(`Add ${i.name}`),x==null||x(i.id),m("")},N=()=>{a==null||a()},{containerRef:P,getItemProps:y}=$({entities:g,onSelect:E,onClose:N,isActive:!!(t&&g.length>0),hasNextPage:d,isFetchingNextPage:R,fetchNextPage:b});return o.useEffect(()=>{const i=setTimeout(()=>{l.current&&l.current.focus()},0);return()=>clearTimeout(i)},[r,t]),e.jsxRuntimeExports.jsxs(s.AddLinksContainer,{children:[e.jsxRuntimeExports.jsx(s.SubHeader,{children:"Add new link"}),e.jsxRuntimeExports.jsxs(s.SearchButtons,{children:[e.jsxRuntimeExports.jsxs(s.Search,{children:[e.jsxRuntimeExports.jsx(k.Icon,{icon:"search",className:"input-search"}),e.jsxRuntimeExports.jsx(s.SearchInput,{ref:l,value:t,onChange:i=>m(i.target.value),placeholder:`Search ${c}s...`,id:`search-${c}`,autoFocus:!0,autoComplete:"off"})]}),!t&&e.jsxRuntimeExports.jsx(s.PickerButton,{label:`Pick ${c}s`,icon:"table_rows",onClick:()=>S("picker")})]}),t&&r&&e.jsxRuntimeExports.jsxs(s.SearchItems,{ref:P,children:[r==null?void 0:r.pages.map((i,L)=>i.entities.map((q,C)=>{var f;const v=r.pages.slice(0,L).reduce((p,n)=>p+n.entities.length,0)+C;return e.jsxRuntimeExports.jsxs(s.SearchItem,{onClick:()=>E(q),tabIndex:0,...y(v),children:[e.jsxRuntimeExports.jsx(k.Icon,{icon:M.getEntityIcon(q.entityType,q.subType,T)}),e.jsxRuntimeExports.jsxs("span",{className:"label",children:[(f=q.parents)==null?void 0:f.map((p,n)=>e.jsxRuntimeExports.jsxs(o.Fragment,{children:[e.jsxRuntimeExports.jsx("span",{children:p},n+"-path"),e.jsxRuntimeExports.jsx("span",{children:"/"},n+"-separator")]},n)),e.jsxRuntimeExports.jsx("strong",{children:q.label||q.name})]}),e.jsxRuntimeExports.jsx("span",{className:"type",children:q.subType||q.entityType})]},q.id)})),(j||R||d)&&e.jsxRuntimeExports.jsx(w,{})]}),!j&&h&&e.jsxRuntimeExports.jsx(s.Error,{children:h.message})]})};module.exports=_;
|
|
1
|
+
"use strict";const e=require("../../../../_virtual/jsx-runtime.cjs.js"),o=require("react"),s=require("./LinksManager.styled.cjs.js"),k=require("@ynput/ayon-react-components");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/config/getConfig.cjs.js");require("../../api/queries/config/updateConfig.cjs.js");require("../../api/queries/entities/getEntity.cjs.js");require("../../api/queries/entities/getEntityPanel.cjs.js");require("../../api/queries/entities/updateEntity.cjs.js");require("../../api/queries/entityLists/getLists.cjs.js");require("../../api/queries/entityLists/updateLists.cjs.js");require("../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/entityLists/listFolders.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");const F=require("../../api/queries/links/getLinks.cjs.js");require("../../api/queries/links/getEntityLinks.cjs.js");require("../../api/queries/overview/getOverview.cjs.js");require("../../api/queries/overview/updateOverview.cjs.js");require("../../api/queries/versions/getVersionsProducts.cjs.js");require("../../api/queries/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/users/guests.cjs.js");require("../../api/queries/versions/updateVersions.cjs.js");require("../../api/queries/views/getViews.cjs.js");require("../../api/queries/views/updateViews.cjs.js");require("../../api/queries/watchers/getWatchers.cjs.js");require("../../api/queries/uris/getUris.cjs.js");const $=require("./hooks/useKeyboardNavigation.cjs.js"),w=require("./SearchingLoadingItems.cjs.js");require("../../context/RemoteModulesContext.cjs.js");require("../../context/DetailsPanelContext.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../context/pip/PiPWrapper.cjs.js");require("../../context/AddonProjectContext.cjs.js");require("../../context/AddonContext.cjs.js");require("../../context/PowerpackContext.cjs.js");require("../../context/MoveEntityContext.cjs.js");require("../../context/MenuContext.cjs.js");require("../../context/WebsocketContext.cjs.js");require("../../context/GlobalContext.cjs.js");const B=require("../../context/ProjectContext.cjs.js");require("../../context/ProjectFoldersContext.cjs.js");require("../../context/UriContext.cjs.js");require("../../containers/ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("clsx");require("../../containers/Feed/context/FeedContext.cjs.js");require("../../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../containers/Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../containers/Feed/components/CommentInput/CommentInput.cjs.js");require("../../containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("lodash");require("../../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-toastify");require("uuid");require("../../util/pubsub.cjs.js");require("react-router-dom");require("../../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../containers/Feed/components/ActivityDate.cjs.js");require("../AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../ThumbnailSimple/ThumbnailSimple.cjs.js");require("../EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../ReviewablesList/ReviewablesList.styled.cjs.js");require("../ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../ReviewableCard/ReviewableCard.cjs.js");require("../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../FileThumbnail/FileThumbnail.cjs.js");require("../Thumbnail/Thumbnail.styled.cjs.js");require("../Thumbnail/StackedThumbnails.cjs.js");require("../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../SimpleFormDialog/SimpleFormDialog.cjs.js");require("../EntityPath/EntityPath.styled.cjs.js");require("../EntityPath/SegmentProvider.cjs.js");require("../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../DetailsPanelDetails/DetailsSection.cjs.js");require("../DetailsPanelDetails/FieldLabel.cjs.js");require("../Watchers/Watchers.cjs.js");require("../ProjectTableSettings/ProjectTableSettings.cjs.js");require("../Powerpack/PowerpackButton.cjs.js");require("../Powerpack/PricingLink.cjs.js");require("../Powerpack/PowerpackDialog.styled.cjs.js");require("../Powerpack/CTAButton.cjs.js");require("../Powerpack/RequiredAddonVersion.cjs.js");require("../SizeSlider/SizeSlider.cjs.js");require("../SettingsPanel/SettingsPanel.cjs.js");require("../SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../AttributeEditor/components/MinMaxField.cjs.js");require("../EnumEditor/EnumEditor.styled.cjs.js");require("../SearchFilter/filterDates.cjs.js");require("../FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../Badge/Badge.cjs.js");require("../VersionUploader/components/UploadVersionDialog.cjs.js");require("../VersionUploader/context/VersionUploadContext.cjs.js");require("../Feedback/FeedbackContext.cjs.js");require("../Feedback/SupportBubble.cjs.js");require("../Chips/Chips.cjs.js");require("../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../StyledLink/StyledLink.cjs.js");require("date-fns");require("../ShareOptionIcon/ShareOptionIcon.cjs.js");require("../AccessUser/AccessUser.cjs.js");require("../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../TableGridSwitch/TableGridSwitch.cjs.js");require("../SortingSetting/SortingSetting.styled.cjs.js");require("../EarlyPreview/EarlyPreview.cjs.js");require("../LegacyBadge/LegacyBadge.cjs.js");require("../Menu/Menu.styled.cjs.js");require("../Menu/MenuItem.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../containers/Feed/Feed.styled.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../containers/ProjectTreeTable/ProjectTreeTable.cjs.js");require("../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("short-uuid");const M=require("../../containers/ProjectTreeTable/utils/linksToTableData.cjs.js");require("../../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("@tanstack/react-table");require("../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("./CellEditingDialog.cjs.js");require("../../containers/ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../../containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../../containers/DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../PlayableIcon/PlayableIcon.cjs.js");require("../../containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../containers/Actions/Actions.styled.cjs.js");require("../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../containers/Actions/ActionIcon.cjs.js");require("../../containers/Views/context/ViewsContext.cjs.js");require("../../containers/Views/Views.styled.cjs.js");require("../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");const _=({projectName:I,targetEntityType:c,onClose:a,onSearchTypeChange:S,onAdd:x})=>{const[t,m]=o.useState(""),l=o.useRef(null),u=B.useProjectContext(),T={folderTypes:(u==null?void 0:u.folderTypes)||[],taskTypes:(u==null?void 0:u.taskTypes)||[],productTypes:(u==null?void 0:u.productTypes)||[]},{data:r,error:h,isLoading:j,hasNextPage:d,isFetchingNextPage:R,fetchNextPage:b}=F.useGetSearchedEntitiesLinksInfiniteQuery({projectName:I,entityType:c,search:t},{skip:!t}),g=o.useMemo(()=>(r==null?void 0:r.pages.flatMap(i=>i.entities))||[],[r]),E=i=>{console.log(`Add ${i.name}`),x==null||x(i.id),m("")},N=()=>{a==null||a()},{containerRef:P,getItemProps:y}=$({entities:g,onSelect:E,onClose:N,isActive:!!(t&&g.length>0),hasNextPage:d,isFetchingNextPage:R,fetchNextPage:b});return o.useEffect(()=>{const i=setTimeout(()=>{l.current&&l.current.focus()},0);return()=>clearTimeout(i)},[r,t]),e.jsxRuntimeExports.jsxs(s.AddLinksContainer,{children:[e.jsxRuntimeExports.jsx(s.SubHeader,{children:"Add new link"}),e.jsxRuntimeExports.jsxs(s.SearchButtons,{children:[e.jsxRuntimeExports.jsxs(s.Search,{children:[e.jsxRuntimeExports.jsx(k.Icon,{icon:"search",className:"input-search"}),e.jsxRuntimeExports.jsx(s.SearchInput,{ref:l,value:t,onChange:i=>m(i.target.value),placeholder:`Search ${c}s...`,id:`search-${c}`,autoFocus:!0,autoComplete:"off"})]}),!t&&e.jsxRuntimeExports.jsx(s.PickerButton,{label:`Pick ${c}s`,icon:"table_rows",onClick:()=>S("picker")})]}),t&&r&&e.jsxRuntimeExports.jsxs(s.SearchItems,{ref:P,children:[r==null?void 0:r.pages.map((i,L)=>i.entities.map((q,C)=>{var f;const v=r.pages.slice(0,L).reduce((p,n)=>p+n.entities.length,0)+C;return e.jsxRuntimeExports.jsxs(s.SearchItem,{onClick:()=>E(q),tabIndex:0,...y(v),children:[e.jsxRuntimeExports.jsx(k.Icon,{icon:M.getEntityIcon(q.entityType,q.subType,T)}),e.jsxRuntimeExports.jsxs("span",{className:"label",children:[(f=q.parents)==null?void 0:f.map((p,n)=>e.jsxRuntimeExports.jsxs(o.Fragment,{children:[e.jsxRuntimeExports.jsx("span",{children:p},n+"-path"),e.jsxRuntimeExports.jsx("span",{children:"/"},n+"-separator")]},n)),e.jsxRuntimeExports.jsx("strong",{children:q.label||q.name})]}),e.jsxRuntimeExports.jsx("span",{className:"type",children:q.subType||q.entityType})]},q.id)})),(j||R||d)&&e.jsxRuntimeExports.jsx(w,{})]}),!j&&h&&e.jsxRuntimeExports.jsx(s.Error,{children:h.message})]})};module.exports=_;
|
|
2
2
|
//# sourceMappingURL=AddNewLinks.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddNewLinks.cjs.js","sources":["../../../../../src/components/LinksManager/AddNewLinks.tsx"],"sourcesContent":["import { FC, useState, useMemo, useRef, useEffect, Fragment } from 'react'\nimport * as Styled from './LinksManager.styled'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { useGetSearchedEntitiesLinksInfiniteQuery } from '@shared/api'\nimport useKeyboardNavigation from './hooks/useKeyboardNavigation'\nimport SearchingLoadingItems from './SearchingLoadingItems'\nimport { useProjectContext } from '@shared/context'\nimport { getEntityIcon } from '@shared/containers'\n\nexport type LinkSearchType = 'search' | 'picker' | null\n\ninterface AddNewLinksProps {\n targetEntityType: string\n projectName: string\n onClose?: () => void\n onSearchTypeChange: (type: LinkSearchType) => void // used to handle search type changes\n onAdd?: (targetEntityId: string, linkType?: string) => void\n}\n\nconst AddNewLinks: FC<AddNewLinksProps> = ({\n projectName,\n targetEntityType,\n onClose,\n onSearchTypeChange,\n onAdd,\n}) => {\n const [search, setSearch] = useState('')\n const searchInputRef = useRef<HTMLInputElement>(null)\n const project = useProjectContext()\n\n const anatomyForIcons = {\n folderTypes: project?.folderTypes || [],\n taskTypes: project?.taskTypes || [],\n productTypes: project?.productTypes || [],\n }\n\n const {\n data: searchData,\n error,\n isLoading,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n } = useGetSearchedEntitiesLinksInfiniteQuery(\n {\n projectName,\n entityType: targetEntityType,\n search,\n },\n { skip: !search },\n )\n\n // Flatten all entities from all pages\n const entities = useMemo(() => {\n return searchData?.pages.flatMap((page) => page.entities) || []\n }, [searchData])\n\n const handleSelectEntity = (entity: any) => {\n console.log(`Add ${entity.name}`)\n onAdd?.(entity.id)\n // Clear search after adding\n setSearch('')\n }\n\n const handleClose = () => {\n onClose?.()\n }\n\n const { containerRef, getItemProps } = useKeyboardNavigation({\n entities,\n onSelect: handleSelectEntity,\n onClose: handleClose,\n isActive: Boolean(search && entities.length > 0),\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n })\n\n // Force focus the search input on mount and when searchData or search changes\n useEffect(() => {\n // Use setTimeout to ensure focus after render\n const timeout = setTimeout(() => {\n if (searchInputRef.current) {\n searchInputRef.current.focus()\n }\n }, 0)\n return () => clearTimeout(timeout)\n }, [searchData, search])\n\n return (\n <Styled.AddLinksContainer>\n <Styled.SubHeader>Add new link</Styled.SubHeader>\n <Styled.SearchButtons>\n <Styled.Search>\n <Icon icon={'search'} className=\"input-search\" />\n <Styled.SearchInput\n ref={searchInputRef}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n placeholder={`Search ${targetEntityType}s...`}\n id={`search-${targetEntityType}`}\n autoFocus\n autoComplete=\"off\"\n />\n </Styled.Search>\n\n {!search && (\n <Styled.PickerButton\n label={`Pick ${targetEntityType}s`}\n icon=\"table_rows\"\n onClick={() => onSearchTypeChange('picker')}\n />\n )}\n </Styled.SearchButtons>\n\n {search && searchData && (\n <Styled.SearchItems ref={containerRef}>\n {searchData?.pages.map((page, pageIndex) =>\n page.entities.map((entity, entityIndex) => {\n const flatIndex =\n searchData.pages\n .slice(0, pageIndex)\n .reduce((acc, p) => acc + p.entities.length, 0) + entityIndex\n return (\n <Styled.SearchItem\n key={entity.id}\n onClick={() => handleSelectEntity(entity)}\n tabIndex={0}\n {...getItemProps(flatIndex)}\n >\n <Icon icon={getEntityIcon(entity.entityType, entity.subType, anatomyForIcons)} />\n <span className=\"label\">\n {entity.parents?.map((part, index) => (\n <Fragment key={index}>\n <span key={index + '-path'}>{part}</span>\n <span key={index + '-separator'}>/</span>\n </Fragment>\n ))}\n <strong>{entity.label || entity.name}</strong>\n </span>\n <span className=\"type\">{entity.subType || entity.entityType}</span>\n </Styled.SearchItem>\n )\n }),\n )}\n {(isLoading || isFetchingNextPage || hasNextPage) && <SearchingLoadingItems />}\n </Styled.SearchItems>\n )}\n {!isLoading && error && <Styled.Error>{error.message}</Styled.Error>}\n </Styled.AddLinksContainer>\n )\n}\n\nexport default AddNewLinks\n"],"names":["AddNewLinks","projectName","targetEntityType","onClose","onSearchTypeChange","onAdd","search","setSearch","useState","searchInputRef","useRef","project","useProjectContext","anatomyForIcons","searchData","error","isLoading","hasNextPage","isFetchingNextPage","fetchNextPage","useGetSearchedEntitiesLinksInfiniteQuery","entities","useMemo","page","handleSelectEntity","entity","handleClose","containerRef","getItemProps","useKeyboardNavigation","useEffect","timeout","jsxs","Styled.AddLinksContainer","jsx","Styled.SubHeader","Styled.SearchButtons","Styled.Search","Icon","Styled.SearchInput","e","Styled.PickerButton","Styled.SearchItems","pageIndex","entityIndex","flatIndex","acc","p","Styled.SearchItem","getEntityIcon","_a","part","index","Fragment","SearchingLoadingItems","Styled.Error"],"mappings":"
|
|
1
|
+
{"version":3,"file":"AddNewLinks.cjs.js","sources":["../../../../../src/components/LinksManager/AddNewLinks.tsx"],"sourcesContent":["import { FC, useState, useMemo, useRef, useEffect, Fragment } from 'react'\nimport * as Styled from './LinksManager.styled'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { useGetSearchedEntitiesLinksInfiniteQuery } from '@shared/api'\nimport useKeyboardNavigation from './hooks/useKeyboardNavigation'\nimport SearchingLoadingItems from './SearchingLoadingItems'\nimport { useProjectContext } from '@shared/context'\nimport { getEntityIcon } from '@shared/containers'\n\nexport type LinkSearchType = 'search' | 'picker' | null\n\ninterface AddNewLinksProps {\n targetEntityType: string\n projectName: string\n onClose?: () => void\n onSearchTypeChange: (type: LinkSearchType) => void // used to handle search type changes\n onAdd?: (targetEntityId: string, linkType?: string) => void\n}\n\nconst AddNewLinks: FC<AddNewLinksProps> = ({\n projectName,\n targetEntityType,\n onClose,\n onSearchTypeChange,\n onAdd,\n}) => {\n const [search, setSearch] = useState('')\n const searchInputRef = useRef<HTMLInputElement>(null)\n const project = useProjectContext()\n\n const anatomyForIcons = {\n folderTypes: project?.folderTypes || [],\n taskTypes: project?.taskTypes || [],\n productTypes: project?.productTypes || [],\n }\n\n const {\n data: searchData,\n error,\n isLoading,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n } = useGetSearchedEntitiesLinksInfiniteQuery(\n {\n projectName,\n entityType: targetEntityType,\n search,\n },\n { skip: !search },\n )\n\n // Flatten all entities from all pages\n const entities = useMemo(() => {\n return searchData?.pages.flatMap((page) => page.entities) || []\n }, [searchData])\n\n const handleSelectEntity = (entity: any) => {\n console.log(`Add ${entity.name}`)\n onAdd?.(entity.id)\n // Clear search after adding\n setSearch('')\n }\n\n const handleClose = () => {\n onClose?.()\n }\n\n const { containerRef, getItemProps } = useKeyboardNavigation({\n entities,\n onSelect: handleSelectEntity,\n onClose: handleClose,\n isActive: Boolean(search && entities.length > 0),\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n })\n\n // Force focus the search input on mount and when searchData or search changes\n useEffect(() => {\n // Use setTimeout to ensure focus after render\n const timeout = setTimeout(() => {\n if (searchInputRef.current) {\n searchInputRef.current.focus()\n }\n }, 0)\n return () => clearTimeout(timeout)\n }, [searchData, search])\n\n return (\n <Styled.AddLinksContainer>\n <Styled.SubHeader>Add new link</Styled.SubHeader>\n <Styled.SearchButtons>\n <Styled.Search>\n <Icon icon={'search'} className=\"input-search\" />\n <Styled.SearchInput\n ref={searchInputRef}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n placeholder={`Search ${targetEntityType}s...`}\n id={`search-${targetEntityType}`}\n autoFocus\n autoComplete=\"off\"\n />\n </Styled.Search>\n\n {!search && (\n <Styled.PickerButton\n label={`Pick ${targetEntityType}s`}\n icon=\"table_rows\"\n onClick={() => onSearchTypeChange('picker')}\n />\n )}\n </Styled.SearchButtons>\n\n {search && searchData && (\n <Styled.SearchItems ref={containerRef}>\n {searchData?.pages.map((page, pageIndex) =>\n page.entities.map((entity, entityIndex) => {\n const flatIndex =\n searchData.pages\n .slice(0, pageIndex)\n .reduce((acc, p) => acc + p.entities.length, 0) + entityIndex\n return (\n <Styled.SearchItem\n key={entity.id}\n onClick={() => handleSelectEntity(entity)}\n tabIndex={0}\n {...getItemProps(flatIndex)}\n >\n <Icon icon={getEntityIcon(entity.entityType, entity.subType, anatomyForIcons)} />\n <span className=\"label\">\n {entity.parents?.map((part, index) => (\n <Fragment key={index}>\n <span key={index + '-path'}>{part}</span>\n <span key={index + '-separator'}>/</span>\n </Fragment>\n ))}\n <strong>{entity.label || entity.name}</strong>\n </span>\n <span className=\"type\">{entity.subType || entity.entityType}</span>\n </Styled.SearchItem>\n )\n }),\n )}\n {(isLoading || isFetchingNextPage || hasNextPage) && <SearchingLoadingItems />}\n </Styled.SearchItems>\n )}\n {!isLoading && error && <Styled.Error>{error.message}</Styled.Error>}\n </Styled.AddLinksContainer>\n )\n}\n\nexport default AddNewLinks\n"],"names":["AddNewLinks","projectName","targetEntityType","onClose","onSearchTypeChange","onAdd","search","setSearch","useState","searchInputRef","useRef","project","useProjectContext","anatomyForIcons","searchData","error","isLoading","hasNextPage","isFetchingNextPage","fetchNextPage","useGetSearchedEntitiesLinksInfiniteQuery","entities","useMemo","page","handleSelectEntity","entity","handleClose","containerRef","getItemProps","useKeyboardNavigation","useEffect","timeout","jsxs","Styled.AddLinksContainer","jsx","Styled.SubHeader","Styled.SearchButtons","Styled.Search","Icon","Styled.SearchInput","e","Styled.PickerButton","Styled.SearchItems","pageIndex","entityIndex","flatIndex","acc","p","Styled.SearchItem","getEntityIcon","_a","part","index","Fragment","SearchingLoadingItems","Styled.Error"],"mappings":"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"}
|
|
@@ -52,6 +52,8 @@ import "../../api/queries/attributes/getAttributes.es.js";
|
|
|
52
52
|
import "../../api/queries/attributes/updateAttributes.es.js";
|
|
53
53
|
import "../../api/queries/authentication/getAuthentication.es.js";
|
|
54
54
|
import "../../api/queries/cloud/cloud.es.js";
|
|
55
|
+
import "../../api/queries/config/getConfig.es.js";
|
|
56
|
+
import "../../api/queries/config/updateConfig.es.js";
|
|
55
57
|
import "../../api/queries/entities/getEntity.es.js";
|
|
56
58
|
import "../../api/queries/entities/getEntityPanel.es.js";
|
|
57
59
|
import "../../api/queries/entities/updateEntity.es.js";
|
|
@@ -246,7 +248,7 @@ import "../../containers/Views/context/ViewsContext.es.js";
|
|
|
246
248
|
import "../../containers/Views/Views.styled.es.js";
|
|
247
249
|
import "../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
|
|
248
250
|
import "../../containers/Views/ViewsMenu/ViewsMenu.es.js";
|
|
249
|
-
const
|
|
251
|
+
const Rm = ({
|
|
250
252
|
projectName: I,
|
|
251
253
|
targetEntityType: s,
|
|
252
254
|
onClose: n,
|
|
@@ -349,6 +351,6 @@ const Cm = ({
|
|
|
349
351
|
] });
|
|
350
352
|
};
|
|
351
353
|
export {
|
|
352
|
-
|
|
354
|
+
Rm as default
|
|
353
355
|
};
|
|
354
356
|
//# sourceMappingURL=AddNewLinks.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddNewLinks.es.js","sources":["../../../../../src/components/LinksManager/AddNewLinks.tsx"],"sourcesContent":["import { FC, useState, useMemo, useRef, useEffect, Fragment } from 'react'\nimport * as Styled from './LinksManager.styled'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { useGetSearchedEntitiesLinksInfiniteQuery } from '@shared/api'\nimport useKeyboardNavigation from './hooks/useKeyboardNavigation'\nimport SearchingLoadingItems from './SearchingLoadingItems'\nimport { useProjectContext } from '@shared/context'\nimport { getEntityIcon } from '@shared/containers'\n\nexport type LinkSearchType = 'search' | 'picker' | null\n\ninterface AddNewLinksProps {\n targetEntityType: string\n projectName: string\n onClose?: () => void\n onSearchTypeChange: (type: LinkSearchType) => void // used to handle search type changes\n onAdd?: (targetEntityId: string, linkType?: string) => void\n}\n\nconst AddNewLinks: FC<AddNewLinksProps> = ({\n projectName,\n targetEntityType,\n onClose,\n onSearchTypeChange,\n onAdd,\n}) => {\n const [search, setSearch] = useState('')\n const searchInputRef = useRef<HTMLInputElement>(null)\n const project = useProjectContext()\n\n const anatomyForIcons = {\n folderTypes: project?.folderTypes || [],\n taskTypes: project?.taskTypes || [],\n productTypes: project?.productTypes || [],\n }\n\n const {\n data: searchData,\n error,\n isLoading,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n } = useGetSearchedEntitiesLinksInfiniteQuery(\n {\n projectName,\n entityType: targetEntityType,\n search,\n },\n { skip: !search },\n )\n\n // Flatten all entities from all pages\n const entities = useMemo(() => {\n return searchData?.pages.flatMap((page) => page.entities) || []\n }, [searchData])\n\n const handleSelectEntity = (entity: any) => {\n console.log(`Add ${entity.name}`)\n onAdd?.(entity.id)\n // Clear search after adding\n setSearch('')\n }\n\n const handleClose = () => {\n onClose?.()\n }\n\n const { containerRef, getItemProps } = useKeyboardNavigation({\n entities,\n onSelect: handleSelectEntity,\n onClose: handleClose,\n isActive: Boolean(search && entities.length > 0),\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n })\n\n // Force focus the search input on mount and when searchData or search changes\n useEffect(() => {\n // Use setTimeout to ensure focus after render\n const timeout = setTimeout(() => {\n if (searchInputRef.current) {\n searchInputRef.current.focus()\n }\n }, 0)\n return () => clearTimeout(timeout)\n }, [searchData, search])\n\n return (\n <Styled.AddLinksContainer>\n <Styled.SubHeader>Add new link</Styled.SubHeader>\n <Styled.SearchButtons>\n <Styled.Search>\n <Icon icon={'search'} className=\"input-search\" />\n <Styled.SearchInput\n ref={searchInputRef}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n placeholder={`Search ${targetEntityType}s...`}\n id={`search-${targetEntityType}`}\n autoFocus\n autoComplete=\"off\"\n />\n </Styled.Search>\n\n {!search && (\n <Styled.PickerButton\n label={`Pick ${targetEntityType}s`}\n icon=\"table_rows\"\n onClick={() => onSearchTypeChange('picker')}\n />\n )}\n </Styled.SearchButtons>\n\n {search && searchData && (\n <Styled.SearchItems ref={containerRef}>\n {searchData?.pages.map((page, pageIndex) =>\n page.entities.map((entity, entityIndex) => {\n const flatIndex =\n searchData.pages\n .slice(0, pageIndex)\n .reduce((acc, p) => acc + p.entities.length, 0) + entityIndex\n return (\n <Styled.SearchItem\n key={entity.id}\n onClick={() => handleSelectEntity(entity)}\n tabIndex={0}\n {...getItemProps(flatIndex)}\n >\n <Icon icon={getEntityIcon(entity.entityType, entity.subType, anatomyForIcons)} />\n <span className=\"label\">\n {entity.parents?.map((part, index) => (\n <Fragment key={index}>\n <span key={index + '-path'}>{part}</span>\n <span key={index + '-separator'}>/</span>\n </Fragment>\n ))}\n <strong>{entity.label || entity.name}</strong>\n </span>\n <span className=\"type\">{entity.subType || entity.entityType}</span>\n </Styled.SearchItem>\n )\n }),\n )}\n {(isLoading || isFetchingNextPage || hasNextPage) && <SearchingLoadingItems />}\n </Styled.SearchItems>\n )}\n {!isLoading && error && <Styled.Error>{error.message}</Styled.Error>}\n </Styled.AddLinksContainer>\n )\n}\n\nexport default AddNewLinks\n"],"names":["AddNewLinks","projectName","targetEntityType","onClose","onSearchTypeChange","onAdd","search","setSearch","useState","searchInputRef","useRef","project","useProjectContext","anatomyForIcons","searchData","error","isLoading","hasNextPage","isFetchingNextPage","fetchNextPage","useGetSearchedEntitiesLinksInfiniteQuery","entities","useMemo","page","handleSelectEntity","entity","handleClose","containerRef","getItemProps","useKeyboardNavigation","useEffect","timeout","jsxs","Styled.AddLinksContainer","jsx","Styled.SubHeader","Styled.SearchButtons","Styled.Search","Icon","Styled.SearchInput","e","Styled.PickerButton","Styled.SearchItems","pageIndex","entityIndex","flatIndex","acc","p","Styled.SearchItem","getEntityIcon","_a","part","index","Fragment","SearchingLoadingItems","Styled.Error"],"mappings":"
|
|
1
|
+
{"version":3,"file":"AddNewLinks.es.js","sources":["../../../../../src/components/LinksManager/AddNewLinks.tsx"],"sourcesContent":["import { FC, useState, useMemo, useRef, useEffect, Fragment } from 'react'\nimport * as Styled from './LinksManager.styled'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { useGetSearchedEntitiesLinksInfiniteQuery } from '@shared/api'\nimport useKeyboardNavigation from './hooks/useKeyboardNavigation'\nimport SearchingLoadingItems from './SearchingLoadingItems'\nimport { useProjectContext } from '@shared/context'\nimport { getEntityIcon } from '@shared/containers'\n\nexport type LinkSearchType = 'search' | 'picker' | null\n\ninterface AddNewLinksProps {\n targetEntityType: string\n projectName: string\n onClose?: () => void\n onSearchTypeChange: (type: LinkSearchType) => void // used to handle search type changes\n onAdd?: (targetEntityId: string, linkType?: string) => void\n}\n\nconst AddNewLinks: FC<AddNewLinksProps> = ({\n projectName,\n targetEntityType,\n onClose,\n onSearchTypeChange,\n onAdd,\n}) => {\n const [search, setSearch] = useState('')\n const searchInputRef = useRef<HTMLInputElement>(null)\n const project = useProjectContext()\n\n const anatomyForIcons = {\n folderTypes: project?.folderTypes || [],\n taskTypes: project?.taskTypes || [],\n productTypes: project?.productTypes || [],\n }\n\n const {\n data: searchData,\n error,\n isLoading,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n } = useGetSearchedEntitiesLinksInfiniteQuery(\n {\n projectName,\n entityType: targetEntityType,\n search,\n },\n { skip: !search },\n )\n\n // Flatten all entities from all pages\n const entities = useMemo(() => {\n return searchData?.pages.flatMap((page) => page.entities) || []\n }, [searchData])\n\n const handleSelectEntity = (entity: any) => {\n console.log(`Add ${entity.name}`)\n onAdd?.(entity.id)\n // Clear search after adding\n setSearch('')\n }\n\n const handleClose = () => {\n onClose?.()\n }\n\n const { containerRef, getItemProps } = useKeyboardNavigation({\n entities,\n onSelect: handleSelectEntity,\n onClose: handleClose,\n isActive: Boolean(search && entities.length > 0),\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n })\n\n // Force focus the search input on mount and when searchData or search changes\n useEffect(() => {\n // Use setTimeout to ensure focus after render\n const timeout = setTimeout(() => {\n if (searchInputRef.current) {\n searchInputRef.current.focus()\n }\n }, 0)\n return () => clearTimeout(timeout)\n }, [searchData, search])\n\n return (\n <Styled.AddLinksContainer>\n <Styled.SubHeader>Add new link</Styled.SubHeader>\n <Styled.SearchButtons>\n <Styled.Search>\n <Icon icon={'search'} className=\"input-search\" />\n <Styled.SearchInput\n ref={searchInputRef}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n placeholder={`Search ${targetEntityType}s...`}\n id={`search-${targetEntityType}`}\n autoFocus\n autoComplete=\"off\"\n />\n </Styled.Search>\n\n {!search && (\n <Styled.PickerButton\n label={`Pick ${targetEntityType}s`}\n icon=\"table_rows\"\n onClick={() => onSearchTypeChange('picker')}\n />\n )}\n </Styled.SearchButtons>\n\n {search && searchData && (\n <Styled.SearchItems ref={containerRef}>\n {searchData?.pages.map((page, pageIndex) =>\n page.entities.map((entity, entityIndex) => {\n const flatIndex =\n searchData.pages\n .slice(0, pageIndex)\n .reduce((acc, p) => acc + p.entities.length, 0) + entityIndex\n return (\n <Styled.SearchItem\n key={entity.id}\n onClick={() => handleSelectEntity(entity)}\n tabIndex={0}\n {...getItemProps(flatIndex)}\n >\n <Icon icon={getEntityIcon(entity.entityType, entity.subType, anatomyForIcons)} />\n <span className=\"label\">\n {entity.parents?.map((part, index) => (\n <Fragment key={index}>\n <span key={index + '-path'}>{part}</span>\n <span key={index + '-separator'}>/</span>\n </Fragment>\n ))}\n <strong>{entity.label || entity.name}</strong>\n </span>\n <span className=\"type\">{entity.subType || entity.entityType}</span>\n </Styled.SearchItem>\n )\n }),\n )}\n {(isLoading || isFetchingNextPage || hasNextPage) && <SearchingLoadingItems />}\n </Styled.SearchItems>\n )}\n {!isLoading && error && <Styled.Error>{error.message}</Styled.Error>}\n </Styled.AddLinksContainer>\n )\n}\n\nexport default AddNewLinks\n"],"names":["AddNewLinks","projectName","targetEntityType","onClose","onSearchTypeChange","onAdd","search","setSearch","useState","searchInputRef","useRef","project","useProjectContext","anatomyForIcons","searchData","error","isLoading","hasNextPage","isFetchingNextPage","fetchNextPage","useGetSearchedEntitiesLinksInfiniteQuery","entities","useMemo","page","handleSelectEntity","entity","handleClose","containerRef","getItemProps","useKeyboardNavigation","useEffect","timeout","jsxs","Styled.AddLinksContainer","jsx","Styled.SubHeader","Styled.SearchButtons","Styled.Search","Icon","Styled.SearchInput","e","Styled.PickerButton","Styled.SearchItems","pageIndex","entityIndex","flatIndex","acc","p","Styled.SearchItem","getEntityIcon","_a","part","index","Fragment","SearchingLoadingItems","Styled.Error"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../../../_virtual/jsx-runtime.cjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../../../_virtual/jsx-runtime.cjs.js"),o=require("react"),s=require("@ynput/ayon-react-components");require("lodash");require("react-toastify");const p=require("../../util/getEntityTypeIcon.cjs.js");require("uuid");require("../../util/pubsub.cjs.js");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/config/getConfig.cjs.js");require("../../api/queries/config/updateConfig.cjs.js");require("../../api/queries/entities/getEntity.cjs.js");require("../../api/queries/entities/getEntityPanel.cjs.js");const x=require("../../api/queries/entities/transformDetailsPanelData.cjs.js");require("../../api/queries/entities/updateEntity.cjs.js");require("../../api/queries/entityLists/getLists.cjs.js");require("../../api/queries/entityLists/updateLists.cjs.js");require("../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/entityLists/listFolders.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");require("../../api/queries/links/getLinks.cjs.js");require("../../api/queries/links/getEntityLinks.cjs.js");require("../../api/queries/overview/getOverview.cjs.js");require("../../api/queries/overview/updateOverview.cjs.js");require("../../api/queries/versions/getVersionsProducts.cjs.js");require("../../api/queries/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/users/guests.cjs.js");require("../../api/queries/versions/updateVersions.cjs.js");require("../../api/queries/views/getViews.cjs.js");require("../../api/queries/views/updateViews.cjs.js");require("../../api/queries/watchers/getWatchers.cjs.js");require("../../api/queries/uris/getUris.cjs.js");const m=require("./LinksManager.styled.cjs.js"),d=require("clsx"),j=({link:e,isSelected:a=!1,onEntityClick:i,onRemove:c})=>{var n;const q=x.detailsPanelEntityTypes.includes(e.entityType)&&!e.isRestricted;return r.jsxRuntimeExports.jsxs(m.LinkItem,{onClick:()=>q&&(i==null?void 0:i(e.entityId,e.entityType)),"data-tooltip":e.isRestricted?"Access Restricted - Insufficient Permissions to Entity":e.parents.join("/")+"/"+e.label,className:d({clickable:q,selected:a,restricted:e.isRestricted}),children:[e.icon?r.jsxRuntimeExports.jsx(s.Icon,{icon:e.icon}):r.jsxRuntimeExports.jsx(s.Icon,{icon:p.getEntityTypeIcon(e.entityType)}),r.jsxRuntimeExports.jsx("span",{className:"title",children:e.isRestricted?r.jsxRuntimeExports.jsx("span",{className:"label",children:"Access Restricted"}):r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[(n=e.parents)==null?void 0:n.map((u,t)=>r.jsxRuntimeExports.jsxs(o.Fragment,{children:[r.jsxRuntimeExports.jsx("span",{children:u},t+"-path"),r.jsxRuntimeExports.jsx("span",{children:"/"},t+"-separator")]},t)),r.jsxRuntimeExports.jsx("span",{className:"label",children:e.label})]})}),!e.isRestricted&&r.jsxRuntimeExports.jsx(s.Button,{icon:"link_off",variant:"text",className:"remove",onClick:u=>c(u,e),"data-tooltip":"Remove link"})]},e.linkId)};exports.LinkManagerItem=j;
|
|
2
2
|
//# sourceMappingURL=LinkManagerItem.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkManagerItem.cjs.js","sources":["../../../../../src/components/LinksManager/LinkManagerItem.tsx"],"sourcesContent":["import { FC, Fragment } from 'react'\nimport { Button, Icon } from '@ynput/ayon-react-components'\nimport { getEntityTypeIcon } from '@shared/util'\nimport { detailsPanelEntityTypes } from '@shared/api'\nimport * as Styled from './LinksManager.styled'\nimport { LinkEntity } from './LinksManager'\nimport clsx from 'clsx'\n\nexport interface LinkManagerItemProps {\n link: LinkEntity\n isSelected?: boolean\n onEntityClick?: (entityId: string, entityType: string) => void\n onRemove: (e: React.MouseEvent<HTMLButtonElement>, link: LinkEntity) => void\n}\n\nexport const LinkManagerItem: FC<LinkManagerItemProps> = ({\n link,\n isSelected = false,\n onEntityClick,\n onRemove,\n}) => {\n const entityTypeSupported = detailsPanelEntityTypes.includes(link.entityType as any)\n\n return (\n <Styled.LinkItem\n key={link.linkId}\n onClick={() =>
|
|
1
|
+
{"version":3,"file":"LinkManagerItem.cjs.js","sources":["../../../../../src/components/LinksManager/LinkManagerItem.tsx"],"sourcesContent":["import { FC, Fragment } from 'react'\nimport { Button, Icon } from '@ynput/ayon-react-components'\nimport { getEntityTypeIcon } from '@shared/util'\nimport { detailsPanelEntityTypes } from '@shared/api'\nimport * as Styled from './LinksManager.styled'\nimport { LinkEntity } from './LinksManager'\nimport clsx from 'clsx'\n\nexport interface LinkManagerItemProps {\n link: LinkEntity\n isSelected?: boolean\n onEntityClick?: (entityId: string, entityType: string) => void\n onRemove: (e: React.MouseEvent<HTMLButtonElement>, link: LinkEntity) => void\n}\n\nexport const LinkManagerItem: FC<LinkManagerItemProps> = ({\n link,\n isSelected = false,\n onEntityClick,\n onRemove,\n}) => {\n const entityTypeSupported = detailsPanelEntityTypes.includes(link.entityType as any)\n const isClickable = entityTypeSupported && !link.isRestricted\n\n return (\n <Styled.LinkItem\n key={link.linkId}\n onClick={() => isClickable && onEntityClick?.(link.entityId, link.entityType)}\n data-tooltip={\n link.isRestricted\n ? \"Access Restricted - Insufficient Permissions to Entity\"\n : link.parents.join('/') + '/' + link.label\n }\n className={clsx({\n clickable: isClickable,\n selected: isSelected,\n restricted: link.isRestricted,\n })}\n >\n {link.icon ? <Icon icon={link.icon} /> : <Icon icon={getEntityTypeIcon(link.entityType)} />}\n\n <span className=\"title\">\n {link.isRestricted ? (\n <span className=\"label\">\n Access Restricted\n </span>\n ) : (\n <>\n {link.parents?.map((part, index) => (\n <Fragment key={index}>\n <span key={index + '-path'}>{part}</span>\n <span key={index + '-separator'}>/</span>\n </Fragment>\n ))}\n <span className=\"label\">{link.label}</span>\n </>\n )}\n </span>\n { !link.isRestricted &&\n <Button\n icon={'link_off'}\n variant=\"text\"\n className=\"remove\"\n onClick={(e) => onRemove(e, link)}\n data-tooltip={'Remove link'}\n />\n }\n\n </Styled.LinkItem>\n )\n}\n"],"names":["LinkManagerItem","link","isSelected","onEntityClick","onRemove","isClickable","detailsPanelEntityTypes","jsxs","Styled.LinkItem","clsx","jsx","Icon","getEntityTypeIcon","Fragment","_a","part","index","Button","e"],"mappings":"o3JAeaA,EAA4C,CAAC,CACxD,KAAAC,EACA,WAAAC,EAAa,GACb,cAAAC,EACA,SAAAC,CACF,IAAM,OAEE,MAAAC,EADsBC,EAAA,wBAAwB,SAASL,EAAK,UAAiB,GACxC,CAACA,EAAK,aAG/C,OAAAM,EAAA,kBAAA,KAACC,EAAO,SAAP,CAEC,QAAS,IAAMH,IAAeF,GAAA,YAAAA,EAAgBF,EAAK,SAAUA,EAAK,aAClE,eACEA,EAAK,aACD,yDACAA,EAAK,QAAQ,KAAK,GAAG,EAAI,IAAMA,EAAK,MAE1C,UAAWQ,EAAK,CACd,UAAWJ,EACX,SAAUH,EACV,WAAYD,EAAK,YAAA,CAClB,EAEA,SAAA,CAAAA,EAAK,KAAOS,EAAA,kBAAA,IAACC,EAAK,KAAA,CAAA,KAAMV,EAAK,IAAA,CAAM,EAAKS,EAAA,kBAAA,IAACC,EAAK,KAAA,CAAA,KAAMC,EAAkB,kBAAAX,EAAK,UAAU,EAAG,EAExFS,wBAAA,OAAA,CAAK,UAAU,QACb,SAAKT,EAAA,aACHS,wBAAA,OAAA,CAAK,UAAU,QAAQ,SAExB,mBAAA,CAAA,EAGGH,yBAAAM,EAAAA,kBAAAA,SAAA,CAAA,SAAA,EAAAC,EAAAb,EAAK,UAAL,YAAAa,EAAc,IAAI,CAACC,EAAMC,IACxBT,EAAA,kBAAA,KAACM,WAAA,CACC,SAAA,CAACH,EAAA,kBAAA,IAAA,OAAA,CAA4B,SAAlBK,CAAA,EAAAC,EAAQ,OAAe,EACjCN,EAAA,kBAAA,IAAA,OAAA,CAAgC,SAAtB,GAAA,EAAAM,EAAQ,YAAe,CAAA,CAAA,EAFrBA,CAGf,GAEDN,EAAA,kBAAA,IAAA,OAAA,CAAK,UAAU,QAAS,WAAK,KAAM,CAAA,CAAA,CAAA,CACtC,CAEJ,CAAA,EACE,CAACT,EAAK,cACNS,EAAA,kBAAA,IAACO,EAAA,OAAA,CACC,KAAM,WACN,QAAQ,OACR,UAAU,SACV,QAAUC,GAAMd,EAASc,EAAGjB,CAAI,EAChC,eAAc,aAAA,CAAA,CAChB,CAAA,EAvCGA,EAAK,MA0CZ,CAEJ"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { j as
|
|
2
|
-
import { Fragment as
|
|
3
|
-
import { Icon as s, Button as
|
|
1
|
+
import { j as r } from "../../../../_virtual/jsx-runtime.es.js";
|
|
2
|
+
import { Fragment as n } from "react";
|
|
3
|
+
import { Icon as s, Button as d } from "@ynput/ayon-react-components";
|
|
4
4
|
import "lodash";
|
|
5
5
|
import "react-toastify";
|
|
6
|
-
import { getEntityTypeIcon as
|
|
6
|
+
import { getEntityTypeIcon as l } from "../../util/getEntityTypeIcon.es.js";
|
|
7
7
|
import "uuid";
|
|
8
8
|
import "../../util/pubsub.es.js";
|
|
9
9
|
import "../../api/base/client.es.js";
|
|
@@ -56,6 +56,8 @@ import "../../api/queries/attributes/getAttributes.es.js";
|
|
|
56
56
|
import "../../api/queries/attributes/updateAttributes.es.js";
|
|
57
57
|
import "../../api/queries/authentication/getAuthentication.es.js";
|
|
58
58
|
import "../../api/queries/cloud/cloud.es.js";
|
|
59
|
+
import "../../api/queries/config/getConfig.es.js";
|
|
60
|
+
import "../../api/queries/config/updateConfig.es.js";
|
|
59
61
|
import "../../api/queries/entities/getEntity.es.js";
|
|
60
62
|
import "../../api/queries/entities/getEntityPanel.es.js";
|
|
61
63
|
import { detailsPanelEntityTypes as j } from "../../api/queries/entities/transformDetailsPanelData.es.js";
|
|
@@ -92,39 +94,40 @@ import "../../api/queries/watchers/getWatchers.es.js";
|
|
|
92
94
|
import "../../api/queries/uris/getUris.es.js";
|
|
93
95
|
import { LinkItem as x } from "./LinksManager.styled.es.js";
|
|
94
96
|
import f from "clsx";
|
|
95
|
-
const
|
|
97
|
+
const mr = ({
|
|
96
98
|
link: t,
|
|
97
99
|
isSelected: a = !1,
|
|
98
|
-
onEntityClick:
|
|
99
|
-
onRemove:
|
|
100
|
+
onEntityClick: i,
|
|
101
|
+
onRemove: c
|
|
100
102
|
}) => {
|
|
101
103
|
var e;
|
|
102
|
-
const
|
|
103
|
-
return /* @__PURE__ */
|
|
104
|
+
const m = j.includes(t.entityType) && !t.isRestricted;
|
|
105
|
+
return /* @__PURE__ */ r.jsxs(
|
|
104
106
|
x,
|
|
105
107
|
{
|
|
106
|
-
onClick: () =>
|
|
107
|
-
"data-tooltip": t.parents.join("/") + "/" + t.label,
|
|
108
|
+
onClick: () => m && (i == null ? void 0 : i(t.entityId, t.entityType)),
|
|
109
|
+
"data-tooltip": t.isRestricted ? "Access Restricted - Insufficient Permissions to Entity" : t.parents.join("/") + "/" + t.label,
|
|
108
110
|
className: f({
|
|
109
|
-
clickable:
|
|
110
|
-
selected: a
|
|
111
|
+
clickable: m,
|
|
112
|
+
selected: a,
|
|
113
|
+
restricted: t.isRestricted
|
|
111
114
|
}),
|
|
112
115
|
children: [
|
|
113
|
-
t.icon ? /* @__PURE__ */
|
|
114
|
-
/* @__PURE__ */
|
|
115
|
-
(e = t.parents) == null ? void 0 : e.map((
|
|
116
|
-
/* @__PURE__ */
|
|
117
|
-
/* @__PURE__ */
|
|
118
|
-
] },
|
|
119
|
-
/* @__PURE__ */
|
|
120
|
-
] }),
|
|
121
|
-
/* @__PURE__ */
|
|
122
|
-
|
|
116
|
+
t.icon ? /* @__PURE__ */ r.jsx(s, { icon: t.icon }) : /* @__PURE__ */ r.jsx(s, { icon: l(t.entityType) }),
|
|
117
|
+
/* @__PURE__ */ r.jsx("span", { className: "title", children: t.isRestricted ? /* @__PURE__ */ r.jsx("span", { className: "label", children: "Access Restricted" }) : /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
|
|
118
|
+
(e = t.parents) == null ? void 0 : e.map((o, p) => /* @__PURE__ */ r.jsxs(n, { children: [
|
|
119
|
+
/* @__PURE__ */ r.jsx("span", { children: o }, p + "-path"),
|
|
120
|
+
/* @__PURE__ */ r.jsx("span", { children: "/" }, p + "-separator")
|
|
121
|
+
] }, p)),
|
|
122
|
+
/* @__PURE__ */ r.jsx("span", { className: "label", children: t.label })
|
|
123
|
+
] }) }),
|
|
124
|
+
!t.isRestricted && /* @__PURE__ */ r.jsx(
|
|
125
|
+
d,
|
|
123
126
|
{
|
|
124
127
|
icon: "link_off",
|
|
125
128
|
variant: "text",
|
|
126
129
|
className: "remove",
|
|
127
|
-
onClick: (
|
|
130
|
+
onClick: (o) => c(o, t),
|
|
128
131
|
"data-tooltip": "Remove link"
|
|
129
132
|
}
|
|
130
133
|
)
|
|
@@ -134,6 +137,6 @@ const ro = ({
|
|
|
134
137
|
);
|
|
135
138
|
};
|
|
136
139
|
export {
|
|
137
|
-
|
|
140
|
+
mr as LinkManagerItem
|
|
138
141
|
};
|
|
139
142
|
//# sourceMappingURL=LinkManagerItem.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkManagerItem.es.js","sources":["../../../../../src/components/LinksManager/LinkManagerItem.tsx"],"sourcesContent":["import { FC, Fragment } from 'react'\nimport { Button, Icon } from '@ynput/ayon-react-components'\nimport { getEntityTypeIcon } from '@shared/util'\nimport { detailsPanelEntityTypes } from '@shared/api'\nimport * as Styled from './LinksManager.styled'\nimport { LinkEntity } from './LinksManager'\nimport clsx from 'clsx'\n\nexport interface LinkManagerItemProps {\n link: LinkEntity\n isSelected?: boolean\n onEntityClick?: (entityId: string, entityType: string) => void\n onRemove: (e: React.MouseEvent<HTMLButtonElement>, link: LinkEntity) => void\n}\n\nexport const LinkManagerItem: FC<LinkManagerItemProps> = ({\n link,\n isSelected = false,\n onEntityClick,\n onRemove,\n}) => {\n const entityTypeSupported = detailsPanelEntityTypes.includes(link.entityType as any)\n\n return (\n <Styled.LinkItem\n key={link.linkId}\n onClick={() =>
|
|
1
|
+
{"version":3,"file":"LinkManagerItem.es.js","sources":["../../../../../src/components/LinksManager/LinkManagerItem.tsx"],"sourcesContent":["import { FC, Fragment } from 'react'\nimport { Button, Icon } from '@ynput/ayon-react-components'\nimport { getEntityTypeIcon } from '@shared/util'\nimport { detailsPanelEntityTypes } from '@shared/api'\nimport * as Styled from './LinksManager.styled'\nimport { LinkEntity } from './LinksManager'\nimport clsx from 'clsx'\n\nexport interface LinkManagerItemProps {\n link: LinkEntity\n isSelected?: boolean\n onEntityClick?: (entityId: string, entityType: string) => void\n onRemove: (e: React.MouseEvent<HTMLButtonElement>, link: LinkEntity) => void\n}\n\nexport const LinkManagerItem: FC<LinkManagerItemProps> = ({\n link,\n isSelected = false,\n onEntityClick,\n onRemove,\n}) => {\n const entityTypeSupported = detailsPanelEntityTypes.includes(link.entityType as any)\n const isClickable = entityTypeSupported && !link.isRestricted\n\n return (\n <Styled.LinkItem\n key={link.linkId}\n onClick={() => isClickable && onEntityClick?.(link.entityId, link.entityType)}\n data-tooltip={\n link.isRestricted\n ? \"Access Restricted - Insufficient Permissions to Entity\"\n : link.parents.join('/') + '/' + link.label\n }\n className={clsx({\n clickable: isClickable,\n selected: isSelected,\n restricted: link.isRestricted,\n })}\n >\n {link.icon ? <Icon icon={link.icon} /> : <Icon icon={getEntityTypeIcon(link.entityType)} />}\n\n <span className=\"title\">\n {link.isRestricted ? (\n <span className=\"label\">\n Access Restricted\n </span>\n ) : (\n <>\n {link.parents?.map((part, index) => (\n <Fragment key={index}>\n <span key={index + '-path'}>{part}</span>\n <span key={index + '-separator'}>/</span>\n </Fragment>\n ))}\n <span className=\"label\">{link.label}</span>\n </>\n )}\n </span>\n { !link.isRestricted &&\n <Button\n icon={'link_off'}\n variant=\"text\"\n className=\"remove\"\n onClick={(e) => onRemove(e, link)}\n data-tooltip={'Remove link'}\n />\n }\n\n </Styled.LinkItem>\n )\n}\n"],"names":["LinkManagerItem","link","isSelected","onEntityClick","onRemove","isClickable","detailsPanelEntityTypes","jsxs","Styled.LinkItem","clsx","jsx","Icon","getEntityTypeIcon","Fragment","_a","part","index","Button","e"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,MAAMA,KAA4C,CAAC;AAAA,EACxD,MAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,eAAAC;AAAA,EACA,UAAAC;AACF,MAAM;;AAEE,QAAAC,IADsBC,EAAwB,SAASL,EAAK,UAAiB,KACxC,CAACA,EAAK;AAG/C,SAAAM,gBAAAA,EAAA;AAAA,IAACC;AAAAA,IAAA;AAAA,MAEC,SAAS,MAAMH,MAAeF,KAAA,gBAAAA,EAAgBF,EAAK,UAAUA,EAAK;AAAA,MAClE,gBACEA,EAAK,eACD,2DACAA,EAAK,QAAQ,KAAK,GAAG,IAAI,MAAMA,EAAK;AAAA,MAE1C,WAAWQ,EAAK;AAAA,QACd,WAAWJ;AAAA,QACX,UAAUH;AAAA,QACV,YAAYD,EAAK;AAAA,MAAA,CAClB;AAAA,MAEA,UAAA;AAAA,QAAAA,EAAK,OAAOS,gBAAAA,EAAA,IAACC,GAAK,EAAA,MAAMV,EAAK,KAAA,CAAM,IAAKS,gBAAAA,EAAA,IAACC,GAAK,EAAA,MAAMC,EAAkBX,EAAK,UAAU,GAAG;AAAA,QAExFS,gBAAAA,MAAA,QAAA,EAAK,WAAU,SACb,UAAKT,EAAA,eACHS,gBAAAA,MAAA,QAAA,EAAK,WAAU,SAAQ,UAExB,oBAAA,CAAA,IAGGH,gBAAAA,OAAAM,EAAAA,UAAA,EAAA,UAAA;AAAA,WAAAC,IAAAb,EAAK,YAAL,gBAAAa,EAAc,IAAI,CAACC,GAAMC,MACxBT,gBAAAA,EAAA,KAACM,GAAA,EACC,UAAA;AAAA,YAACH,gBAAAA,EAAA,IAAA,QAAA,EAA4B,UAAlBK,EAAA,GAAAC,IAAQ,OAAe;AAAA,YACjCN,gBAAAA,EAAA,IAAA,QAAA,EAAgC,UAAtB,IAAA,GAAAM,IAAQ,YAAe;AAAA,UAAA,EAAA,GAFrBA,CAGf;AAAA,UAEDN,gBAAAA,EAAA,IAAA,QAAA,EAAK,WAAU,SAAS,YAAK,MAAM,CAAA;AAAA,QAAA,EAAA,CACtC,EAEJ,CAAA;AAAA,QACE,CAACT,EAAK,gBACNS,gBAAAA,EAAA;AAAA,UAACO;AAAA,UAAA;AAAA,YACC,MAAM;AAAA,YACN,SAAQ;AAAA,YACR,WAAU;AAAA,YACV,SAAS,CAACC,MAAMd,EAASc,GAAGjB,CAAI;AAAA,YAChC,gBAAc;AAAA,UAAA;AAAA,QAAA;AAAA,MAChB;AAAA,IAAA;AAAA,IAvCGA,EAAK;AAAA,EA0CZ;AAEJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinksManager.cjs.js","sources":["../../../../../src/components/LinksManager/LinksManager.tsx"],"sourcesContent":["import { FC, useState } from 'react'\nimport * as Styled from './LinksManager.styled'\nimport { getEntityId } from '@shared/util'\nimport useUpdateLinks from './hooks/useUpdateLinks'\nimport AddNewLinks, { LinkSearchType } from './AddNewLinks'\nimport { EntityPickerDialog, PickerEntityType } from '@shared/containers/EntityPickerDialog'\nimport { upperFirst } from 'lodash'\nimport { LinkManagerItem } from './LinkManagerItem'\nimport { Button } from '@ynput/ayon-react-components'\n\nexport type LinkEntity = {\n linkId: string\n entityId: string\n label: string\n parents: string[]\n entityType: string\n icon: string\n}\n\nexport interface LinksManagerProps {\n linkTypeLabel: string\n direction?: 'in' | 'out'\n links: LinkEntity[] // used to display basic info about the links entity\n projectName: string\n entityId: string // the entity id of the entity that has these links\n linkType: string // full link type e.g. workflow|task|task\n entityType: string // the entity type of the entity that has these links\n targetEntityType: string // the entity type of the out links\n folderId?: string | null // the folder selected or the parent folder of the selected (used in EntityPickerDialog)\n selectedEntityIds?: string[] // list of selected entity IDs to highlight\n onClose?: () => void\n onEntityClick?: (entityId: string, entityType: string) => void // a click on an linked entity\n}\n\nexport const LinksManager: FC<LinksManagerProps> = ({\n linkTypeLabel,\n direction,\n links = [],\n projectName,\n entityId,\n entityType,\n linkType,\n targetEntityType,\n folderId,\n selectedEntityIds = [],\n onClose,\n onEntityClick,\n}) => {\n const linksUpdater = useUpdateLinks({\n projectName,\n direction,\n entityId,\n entityType,\n targetEntityType,\n linkType,\n })\n\n const [searchType, setSearchType] = useState<LinkSearchType>(null)\n\n const handleRemove = (e: React.MouseEvent<HTMLButtonElement>, link: LinkEntity) => {\n // prevent clicks higher up\n e.stopPropagation()\n\n linksUpdater.remove([\n {\n id: link.linkId,\n target: { entityId: link.entityId, entityType: link.entityType },\n },\n ])\n }\n\n return (\n <>\n <Styled.Container>\n <Styled.Header>\n {upperFirst(linkTypeLabel)} links ({direction})\n <Button\n icon={'close'}\n variant=\"text\"\n className=\"remove\"\n onClick={onClose}\n data-shortcut={'Escape'}\n data-tooltip-delay={500}\n />\n </Styled.Header>\n <Styled.LinksList>\n {links?.map((link) => (\n <LinkManagerItem\n key={link.linkId}\n link={link}\n isSelected={selectedEntityIds.includes(link.entityId)}\n onEntityClick={onEntityClick}\n onRemove={handleRemove}\n />\n ))}\n {links.length === 0 && <Styled.SubHeader>No links yet</Styled.SubHeader>}\n </Styled.LinksList>\n <AddNewLinks\n targetEntityType={targetEntityType}\n projectName={projectName}\n onClose={onClose}\n onAdd={(id) => linksUpdater.add([{ targetEntityId: id, linkId: getEntityId() }])}\n onSearchTypeChange={setSearchType}\n />\n </Styled.Container>\n {searchType === 'picker' && (\n <EntityPickerDialog\n onClose={() => setSearchType(null)}\n projectName={projectName}\n entityType={targetEntityType as PickerEntityType} // the type of entity to pick\n initialSelection={folderId ? { folder: { [folderId]: true } } : undefined} // preselect current folder\n onSubmit={(s) =>\n linksUpdater.add(s.map((id) => ({ targetEntityId: id, linkId: getEntityId() })))\n }\n isMultiSelect\n />\n )}\n </>\n )\n}\n"],"names":["LinksManager","linkTypeLabel","direction","links","projectName","entityId","entityType","linkType","targetEntityType","folderId","selectedEntityIds","onClose","onEntityClick","linksUpdater","useUpdateLinks","searchType","setSearchType","useState","handleRemove","e","link","jsxs","Fragment","Styled.Container","Styled.Header","upperFirst","jsx","Button","Styled.LinksList","LinkManagerItem","Styled.SubHeader","AddNewLinks","id","getEntityId","EntityPickerDialog","s"],"mappings":"
|
|
1
|
+
{"version":3,"file":"LinksManager.cjs.js","sources":["../../../../../src/components/LinksManager/LinksManager.tsx"],"sourcesContent":["import { FC, useState } from 'react'\nimport * as Styled from './LinksManager.styled'\nimport { getEntityId } from '@shared/util'\nimport useUpdateLinks from './hooks/useUpdateLinks'\nimport AddNewLinks, { LinkSearchType } from './AddNewLinks'\nimport { EntityPickerDialog, PickerEntityType } from '@shared/containers/EntityPickerDialog'\nimport { upperFirst } from 'lodash'\nimport { LinkManagerItem } from './LinkManagerItem'\nimport { Button } from '@ynput/ayon-react-components'\n\nexport type LinkEntity = {\n linkId: string\n entityId: string\n label: string\n parents: string[]\n entityType: string\n icon: string\n isRestricted?: boolean // flag to indicate if this link is restricted (node is null from API)\n}\n\nexport interface LinksManagerProps {\n linkTypeLabel: string\n direction?: 'in' | 'out'\n links: LinkEntity[] // used to display basic info about the links entity\n projectName: string\n entityId: string // the entity id of the entity that has these links\n linkType: string // full link type e.g. workflow|task|task\n entityType: string // the entity type of the entity that has these links\n targetEntityType: string // the entity type of the out links\n folderId?: string | null // the folder selected or the parent folder of the selected (used in EntityPickerDialog)\n selectedEntityIds?: string[] // list of selected entity IDs to highlight\n onClose?: () => void\n onEntityClick?: (entityId: string, entityType: string) => void // a click on an linked entity\n}\n\nexport const LinksManager: FC<LinksManagerProps> = ({\n linkTypeLabel,\n direction,\n links = [],\n projectName,\n entityId,\n entityType,\n linkType,\n targetEntityType,\n folderId,\n selectedEntityIds = [],\n onClose,\n onEntityClick,\n}) => {\n const linksUpdater = useUpdateLinks({\n projectName,\n direction,\n entityId,\n entityType,\n targetEntityType,\n linkType,\n })\n\n const [searchType, setSearchType] = useState<LinkSearchType>(null)\n\n const handleRemove = (e: React.MouseEvent<HTMLButtonElement>, link: LinkEntity) => {\n // prevent clicks higher up\n e.stopPropagation()\n\n linksUpdater.remove([\n {\n id: link.linkId,\n target: { entityId: link.entityId, entityType: link.entityType },\n },\n ])\n }\n\n return (\n <>\n <Styled.Container>\n <Styled.Header>\n {upperFirst(linkTypeLabel)} links ({direction})\n <Button\n icon={'close'}\n variant=\"text\"\n className=\"remove\"\n onClick={onClose}\n data-shortcut={'Escape'}\n data-tooltip-delay={500}\n />\n </Styled.Header>\n <Styled.LinksList>\n {links?.map((link) => (\n <LinkManagerItem\n key={link.linkId}\n link={link}\n isSelected={selectedEntityIds.includes(link.entityId)}\n onEntityClick={onEntityClick}\n onRemove={handleRemove}\n />\n ))}\n {links.length === 0 && <Styled.SubHeader>No links yet</Styled.SubHeader>}\n </Styled.LinksList>\n <AddNewLinks\n targetEntityType={targetEntityType}\n projectName={projectName}\n onClose={onClose}\n onAdd={(id) => linksUpdater.add([{ targetEntityId: id, linkId: getEntityId() }])}\n onSearchTypeChange={setSearchType}\n />\n </Styled.Container>\n {searchType === 'picker' && (\n <EntityPickerDialog\n onClose={() => setSearchType(null)}\n projectName={projectName}\n entityType={targetEntityType as PickerEntityType} // the type of entity to pick\n initialSelection={folderId ? { folder: { [folderId]: true } } : undefined} // preselect current folder\n onSubmit={(s) =>\n linksUpdater.add(s.map((id) => ({ targetEntityId: id, linkId: getEntityId() })))\n }\n isMultiSelect\n />\n )}\n </>\n )\n}\n"],"names":["LinksManager","linkTypeLabel","direction","links","projectName","entityId","entityType","linkType","targetEntityType","folderId","selectedEntityIds","onClose","onEntityClick","linksUpdater","useUpdateLinks","searchType","setSearchType","useState","handleRemove","e","link","jsxs","Fragment","Styled.Container","Styled.Header","upperFirst","jsx","Button","Styled.LinksList","LinkManagerItem","Styled.SubHeader","AddNewLinks","id","getEntityId","EntityPickerDialog","s"],"mappings":"yjBAmCaA,EAAsC,CAAC,CAClD,cAAAC,EACA,UAAAC,EACA,MAAAC,EAAQ,CAAC,EACT,YAAAC,EACA,SAAAC,EACA,WAAAC,EACA,SAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,kBAAAC,EAAoB,CAAC,EACrB,QAAAC,EACA,cAAAC,CACF,IAAM,CACJ,MAAMC,EAAeC,EAAe,CAClC,YAAAV,EACA,UAAAF,EACA,SAAAG,EACA,WAAAC,EACA,iBAAAE,EACA,SAAAD,CAAA,CACD,EAEK,CAACQ,EAAYC,CAAa,EAAIC,EAAAA,SAAyB,IAAI,EAE3DC,EAAe,CAACC,EAAwCC,IAAqB,CAEjFD,EAAE,gBAAgB,EAElBN,EAAa,OAAO,CAClB,CACE,GAAIO,EAAK,OACT,OAAQ,CAAE,SAAUA,EAAK,SAAU,WAAYA,EAAK,UAAW,CAAA,CACjE,CACD,CACH,EAEA,OAEIC,EAAA,kBAAA,KAAAC,6BAAA,CAAA,SAAA,CAACD,yBAAAE,EAAAA,UAAA,CACC,SAAA,CAACF,yBAAAG,EAAAA,OAAA,CACE,SAAA,CAAAC,EAAAA,WAAWxB,CAAa,EAAE,WAASC,EAAU,IAC9CwB,EAAA,kBAAA,IAACC,EAAA,OAAA,CACC,KAAM,QACN,QAAQ,OACR,UAAU,SACV,QAAShB,EACT,gBAAe,SACf,qBAAoB,GAAA,CAAA,CACtB,EACF,EACAU,yBAACO,EAAAA,UAAA,CACE,SAAA,CAAOzB,GAAA,YAAAA,EAAA,IAAKiB,GACXM,EAAA,kBAAA,IAACG,EAAA,gBAAA,CAEC,KAAAT,EACA,WAAYV,EAAkB,SAASU,EAAK,QAAQ,EACpD,cAAAR,EACA,SAAUM,CAAA,EAJLE,EAAK,MAAA,GAObjB,EAAM,SAAW,2BAAM2B,EAAAA,UAAA,CAAiB,SAAY,cAAA,CAAA,CAAA,EACvD,EACAJ,EAAA,kBAAA,IAACK,EAAA,CACC,iBAAAvB,EACA,YAAAJ,EACA,QAAAO,EACA,MAAQqB,GAAOnB,EAAa,IAAI,CAAC,CAAE,eAAgBmB,EAAI,OAAQC,EAAY,YAAA,CAAG,CAAA,CAAC,EAC/E,mBAAoBjB,CAAA,CAAA,CACtB,EACF,EACCD,IAAe,UACdW,EAAA,kBAAA,IAACQ,EAAA,mBAAA,CACC,QAAS,IAAMlB,EAAc,IAAI,EACjC,YAAAZ,EACA,WAAYI,EACZ,iBAAkBC,EAAW,CAAE,OAAQ,CAAE,CAACA,CAAQ,EAAG,EAAK,CAAA,EAAM,OAChE,SAAW0B,GACTtB,EAAa,IAAIsB,EAAE,IAAKH,IAAQ,CAAE,eAAgBA,EAAI,OAAQC,EAAAA,YAAY,CAAA,EAAI,CAAC,EAEjF,cAAa,EAAA,CAAA,CACf,EAEJ,CAEJ"}
|