@ynput/ayon-frontend-shared 0.3.44 → 0.3.45
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 +4 -4
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +4 -4
- package/dist/_virtual/index.cjs15.js +1 -1
- package/dist/_virtual/index.cjs19.js +1 -1
- package/dist/_virtual/index.cjs22.js +1 -1
- package/dist/_virtual/index.cjs23.js +1 -1
- package/dist/_virtual/index.cjs24.js +1 -1
- package/dist/_virtual/index.cjs4.js +1 -1
- package/dist/_virtual/index.cjs5.js +1 -1
- package/dist/_virtual/index.cjs8.js +1 -1
- package/dist/_virtual/index.cjs9.js +1 -1
- package/dist/_virtual/index.es15.js +2 -2
- package/dist/_virtual/index.es16.js +2 -2
- package/dist/_virtual/index.es17.js +2 -2
- package/dist/_virtual/index.es18.js +2 -2
- package/dist/_virtual/index.es19.js +2 -2
- package/dist/_virtual/index.es22.js +3 -3
- package/dist/_virtual/index.es23.js +5 -5
- package/dist/_virtual/index.es24.js +5 -5
- package/dist/_virtual/index.es4.js +2 -5
- package/dist/_virtual/index.es4.js.map +1 -1
- package/dist/_virtual/index.es5.js +5 -2
- package/dist/_virtual/index.es5.js.map +1 -1
- package/dist/_virtual/index.es8.js +5 -2
- package/dist/_virtual/index.es8.js.map +1 -1
- package/dist/_virtual/index.es9.js +2 -5
- package/dist/_virtual/index.es9.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +4 -4
- package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
- package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
- package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
- package/dist/shared/node_modules/prop-types/index.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +4 -4
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +4 -4
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +4 -4
- package/dist/shared/src/components/LinksManager/CellEditingDialog.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/CellEditingDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/CellEditingDialog.es.js +20 -20
- package/dist/shared/src/components/LinksManager/CellEditingDialog.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.es.js +4 -4
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +4 -4
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +4 -4
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +5 -5
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.es.js +4 -4
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +4 -4
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +4 -4
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -4
- 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 +84 -69
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.es.js +4 -4
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +4 -4
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +4 -4
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +4 -4
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +4 -4
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -4
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -4
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -4
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -4
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +4 -4
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -4
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +4 -4
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +4 -4
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +4 -4
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +4 -4
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +4 -4
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +15 -15
- 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.es.js +4 -4
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +4 -4
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +4 -4
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +4 -4
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +4 -4
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +4 -4
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +4 -4
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +4 -4
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +4 -4
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +4 -4
- package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.es.js +4 -4
- package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.es.js +4 -4
- package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +4 -4
- 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 +31 -23
- 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.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +5 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.es.js +23 -13
- package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +4 -4
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +4 -4
- 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 +169 -169
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/hooks/useRowKeydown.cjs.js +1 -1
- package/dist/shared/src/containers/SimpleTable/hooks/useRowKeydown.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/hooks/useRowKeydown.es.js +13 -13
- package/dist/shared/src/containers/SimpleTable/hooks/useRowKeydown.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +4 -4
- package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +55 -54
- package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +3 -3
- package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
- package/dist/shared/src/context/WebsocketContext.es.js +4 -4
- package/dist/types/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.d.ts +8 -1
- package/dist/types/containers/Slicer/context/SlicerContext.d.ts +6 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReviewablesUpload.cjs.js","sources":["../../../../../src/components/ReviewablesList/useReviewablesUpload.ts"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport axios, { AxiosProgressEvent, AxiosResponse } from 'axios'\nimport { toast } from 'react-toastify'\n\nimport api, { reviewablesQueries } from '@shared/api'\nimport type { UploadReviewableApiResponse } from '@shared/api'\nimport type { ReviewableProgress } from '@shared/components'\n\n// strip out non-ISO-8859-1 characters like Narrow No-Break Space and emojis\n// then check it is not an empty string without extension, if so replace with \"unnamed\"\nexport const parseFilename = (filename: string) => {\n const parsed = filename.replace(/[^\\x00-\\xFF]/g, '').trim()\n // without extension\n const nameWithoutExtension = parsed.replace(/\\.[^/.]+$/, '')\n const extension = parsed.split('.').pop()\n if (nameWithoutExtension.length === 0) {\n return 'unnamed' + (extension ? `.${extension}` : '')\n } else {\n return parsed\n }\n}\n\nexport interface UseReviewablesUploadProps {\n projectName: string | null\n versionId?: string | null\n taskId?: string | null\n folderId?: string | null\n productId?: string | null\n dispatch: any\n onUpload?: () => void\n onProgress?: (progress: number) => void\n}\n\nexport interface UploadHandlers {\n handleFileUpload: (files: FileList | File[], versionId?: string) => Promise<void>\n handleRemoveUpload: (name: string) => void\n uploading: { [key: string]: ReviewableProgress[] }\n}\n\nexport const useReviewablesUpload = ({\n projectName,\n versionId,\n taskId,\n folderId,\n productId,\n dispatch,\n onUpload,\n onProgress,\n}: UseReviewablesUploadProps): UploadHandlers => {\n const [uploading, setUploads] = useState<{ [key: string]: ReviewableProgress[] }>({})\n\n const handleRemoveUpload = useCallback(\n (name: string) => {\n if (!versionId) return\n setUploads((uploads) => ({\n ...uploads,\n [versionId]: uploads[versionId]?.filter((upload) => upload.name !== name) || [],\n }))\n },\n [versionId],\n )\n\n const handleFileUpload = useCallback(\n async (files: FileList | File[], fileVersionId?: string) => {\n // use the passed versionId or the one from props\n const reviewableVersionId = fileVersionId || versionId\n if (!reviewableVersionId || !projectName) return\n\n const fileArray = Array.from(files)\n\n const uploadingFiles = fileArray.map((file) => ({\n name: parseFilename(file.name),\n size: file.size,\n progress: 0,\n }))\n\n const newUploadsForVersion = [...(uploading[reviewableVersionId] || []), ...uploadingFiles]\n\n setUploads({ ...uploading, [reviewableVersionId]: newUploadsForVersion })\n\n const successHandler = (file: File) => (response: AxiosResponse) => {\n if (!reviewableVersionId) return\n // Handle successful upload\n console.log(`Upload successful for ${file.name}`)\n // patch the new data into the reviewables cache\n const data = response.data as UploadReviewableApiResponse\n\n if (!projectName) return\n\n dispatch(\n // @ts-ignore\n reviewablesQueries.util.updateQueryData(\n 'getReviewablesForVersion',\n { projectName, versionId: reviewableVersionId },\n (draft) => {\n if (!draft.reviewables) {\n draft.reviewables = []\n }\n // @ts-ignore\n draft.reviewables.push(data)\n },\n ),\n )\n\n // also invalidate the viewer cache\n productId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: productId }]))\n dispatch(api.util.invalidateTags([{ type: 'viewer', id: reviewableVersionId }]))\n folderId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: folderId }]))\n taskId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: taskId }]))\n // remove the file from the list\n handleRemoveUpload(parseFilename(file.name))\n }\n\n const errorHandler = (file: File) => (error: any) => {\n if (!reviewableVersionId) return\n console.error(`Upload failed for ${file.name}: ${error}`)\n toast.error(`Failed to upload file: ${file.name}`)\n // add error to the file\n setUploads((uploads) => {\n // current uploads for reviewableVersionId\n const currentUploads = uploads[reviewableVersionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== parseFilename(file.name)) return upload\n console.log(error)\n return {\n ...upload,\n error: error.response || error.message,\n }\n })\n\n // update state\n return {\n ...uploads,\n [reviewableVersionId]: updatedUploads,\n }\n })\n }\n\n const progressHandler = (file: File) => {\n if (!reviewableVersionId) return () => {}\n return (progressEvent: AxiosProgressEvent) =>\n setUploads((uploads) => {\n // current uploads for reviewableVersionId\n const currentUploads = uploads[reviewableVersionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== parseFilename(file.name)) return upload\n return {\n ...upload,\n progress: progressEvent.total\n ? Math.round((progressEvent.loaded / progressEvent.total) * 100)\n : 0,\n }\n })\n\n // Calculate overall progress across all files\n const totalProgress = updatedUploads.reduce(\n (sum, upload) => sum + (upload.progress || 0),\n 0,\n )\n const overallProgress = Math.round(totalProgress / updatedUploads.length)\n\n // Call the onProgress callback with overall progress\n onProgress?.(overallProgress)\n\n // update state\n return {\n ...uploads,\n [reviewableVersionId]: updatedUploads,\n }\n })\n }\n\n try {\n // upload the files\n const uploadPromises = fileArray.map((file) => {\n const fileName = parseFilename(file.name)\n const autoLabel = fileName.split('.').slice(0, -1).join('.') || 'unnamed'\n\n const url = `/api/projects/${projectName}/versions/${reviewableVersionId}/reviewables?label=${autoLabel}`\n const headers = { 'content-type': file.type, 'x-file-name': fileName }\n return axios\n .post(url, file, { headers, onUploadProgress: progressHandler(file) })\n .then(successHandler(file))\n .catch(errorHandler(file))\n })\n\n // Wait for all uploads to complete\n await Promise.all(uploadPromises)\n\n // Callback after all uploads are finished\n onUpload && onUpload()\n } catch (error) {\n // something went wrong with everything, EEEEK!\n console.error(error)\n toast.error('Failed to upload file/s')\n }\n },\n [\n versionId,\n projectName,\n uploading,\n dispatch,\n productId,\n folderId,\n taskId,\n handleRemoveUpload,\n onUpload,\n onProgress,\n ],\n )\n\n return {\n handleFileUpload,\n handleRemoveUpload,\n uploading,\n }\n}\n"],"names":["parseFilename","filename","parsed","nameWithoutExtension","extension","useReviewablesUpload","projectName","versionId","taskId","folderId","productId","dispatch","onUpload","onProgress","uploading","setUploads","useState","handleRemoveUpload","useCallback","name","uploads","upload","files","fileVersionId","reviewableVersionId","fileArray","uploadingFiles","file","newUploadsForVersion","successHandler","response","data","reviewablesQueries","draft","api","errorHandler","error","toast","updatedUploads","progressHandler","progressEvent","totalProgress","sum","overallProgress","uploadPromises","fileName","autoLabel","url","headers","axios"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useReviewablesUpload.cjs.js","sources":["../../../../../src/components/ReviewablesList/useReviewablesUpload.ts"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport axios, { AxiosProgressEvent, AxiosResponse } from 'axios'\nimport { toast } from 'react-toastify'\n\nimport api, { reviewablesQueries } from '@shared/api'\nimport type { UploadReviewableApiResponse } from '@shared/api'\nimport type { ReviewableProgress } from '@shared/components'\n\n// strip out non-ISO-8859-1 characters like Narrow No-Break Space and emojis\n// then check it is not an empty string without extension, if so replace with \"unnamed\"\nexport const parseFilename = (filename: string) => {\n const parsed = filename.replace(/[^\\x00-\\xFF]/g, '').trim()\n // without extension\n const nameWithoutExtension = parsed.replace(/\\.[^/.]+$/, '')\n const extension = parsed.split('.').pop()\n if (nameWithoutExtension.length === 0) {\n return 'unnamed' + (extension ? `.${extension}` : '')\n } else {\n return parsed\n }\n}\n\nconst getUploadErrorMessage = (error: unknown): string => {\n if (axios.isAxiosError(error)) {\n const responseData = error.response?.data\n if (typeof responseData === 'string' && responseData) {\n return responseData\n }\n\n if (responseData && typeof responseData === 'object' && 'detail' in responseData) {\n const detail = responseData.detail\n if (typeof detail === 'string' && detail) {\n return detail\n }\n }\n\n return error.message || error.response?.statusText || 'Unknown upload error'\n }\n\n if (error instanceof Error) {\n return error.message\n }\n\n return typeof error === 'string' ? error : 'Unknown upload error'\n}\n\nexport interface UseReviewablesUploadProps {\n projectName: string | null\n versionId?: string | null\n taskId?: string | null\n folderId?: string | null\n productId?: string | null\n dispatch: any\n onUpload?: () => void\n onProgress?: (progress: number) => void\n}\n\nexport interface UploadHandlers {\n handleFileUpload: (files: FileList | File[], versionId?: string) => Promise<void>\n handleRemoveUpload: (name: string) => void\n uploading: { [key: string]: ReviewableProgress[] }\n}\n\nexport const useReviewablesUpload = ({\n projectName,\n versionId,\n taskId,\n folderId,\n productId,\n dispatch,\n onUpload,\n onProgress,\n}: UseReviewablesUploadProps): UploadHandlers => {\n const [uploading, setUploads] = useState<{ [key: string]: ReviewableProgress[] }>({})\n\n const handleRemoveUpload = useCallback(\n (name: string) => {\n if (!versionId) return\n setUploads((uploads) => ({\n ...uploads,\n [versionId]: uploads[versionId]?.filter((upload) => upload.name !== name) || [],\n }))\n },\n [versionId],\n )\n\n const handleFileUpload = useCallback(\n async (files: FileList | File[], fileVersionId?: string) => {\n // use the passed versionId or the one from props\n const reviewableVersionId = fileVersionId || versionId\n if (!reviewableVersionId || !projectName) return\n\n const fileArray = Array.from(files)\n\n const uploadingFiles = fileArray.map((file) => ({\n name: parseFilename(file.name),\n size: file.size,\n progress: 0,\n }))\n\n const newUploadsForVersion = [...(uploading[reviewableVersionId] || []), ...uploadingFiles]\n\n setUploads({ ...uploading, [reviewableVersionId]: newUploadsForVersion })\n\n const successHandler = (file: File) => (response: AxiosResponse) => {\n if (!reviewableVersionId) return\n // Handle successful upload\n console.log(`Upload successful for ${file.name}`)\n // patch the new data into the reviewables cache\n const data = response.data as UploadReviewableApiResponse\n\n if (!projectName) return\n\n dispatch(\n // @ts-ignore\n reviewablesQueries.util.updateQueryData(\n 'getReviewablesForVersion',\n { projectName, versionId: reviewableVersionId },\n (draft) => {\n if (!draft.reviewables) {\n draft.reviewables = []\n }\n // @ts-ignore\n draft.reviewables.push(data)\n },\n ),\n )\n\n // also invalidate the viewer cache\n productId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: productId }]))\n dispatch(api.util.invalidateTags([{ type: 'viewer', id: reviewableVersionId }]))\n folderId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: folderId }]))\n taskId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: taskId }]))\n // remove the file from the list\n handleRemoveUpload(parseFilename(file.name))\n }\n\n const errorHandler = (file: File) => (error: unknown) => {\n if (!reviewableVersionId) return\n console.error(`Upload failed for ${file.name}: ${error}`)\n // add error to the file\n setUploads((uploads) => {\n // current uploads for reviewableVersionId\n const currentUploads = uploads[reviewableVersionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== parseFilename(file.name)) return upload\n return {\n ...upload,\n error: getUploadErrorMessage(error),\n }\n })\n\n // update state\n return {\n ...uploads,\n [reviewableVersionId]: updatedUploads,\n }\n })\n }\n\n const progressHandler = (file: File) => {\n if (!reviewableVersionId) return () => {}\n return (progressEvent: AxiosProgressEvent) =>\n setUploads((uploads) => {\n // current uploads for reviewableVersionId\n const currentUploads = uploads[reviewableVersionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== parseFilename(file.name)) return upload\n return {\n ...upload,\n progress: progressEvent.total\n ? Math.round((progressEvent.loaded / progressEvent.total) * 100)\n : 0,\n }\n })\n\n // Calculate overall progress across all files\n const totalProgress = updatedUploads.reduce(\n (sum, upload) => sum + (upload.progress || 0),\n 0,\n )\n const overallProgress = Math.round(totalProgress / updatedUploads.length)\n\n // Call the onProgress callback with overall progress\n onProgress?.(overallProgress)\n\n // update state\n return {\n ...uploads,\n [reviewableVersionId]: updatedUploads,\n }\n })\n }\n\n try {\n // upload the files\n const uploadPromises = fileArray.map((file) => {\n const fileName = parseFilename(file.name)\n const autoLabel = fileName.split('.').slice(0, -1).join('.') || 'unnamed'\n\n const url = `/api/projects/${projectName}/versions/${reviewableVersionId}/reviewables?label=${autoLabel}`\n const headers = { 'content-type': file.type, 'x-file-name': fileName }\n return axios\n .post(url, file, { headers, onUploadProgress: progressHandler(file) })\n .then(successHandler(file))\n .catch((error) => {\n errorHandler(file)(error)\n throw error\n })\n })\n\n // Wait for all uploads to complete\n await Promise.all(uploadPromises)\n\n // Callback after all uploads are finished\n onUpload && onUpload()\n } catch (error) {\n // something went wrong with everything, EEEEK!\n console.error(error)\n toast.error(`Failed to upload file/s: ${getUploadErrorMessage(error)}`)\n throw error\n }\n },\n [\n versionId,\n projectName,\n uploading,\n dispatch,\n productId,\n folderId,\n taskId,\n handleRemoveUpload,\n onUpload,\n onProgress,\n ],\n )\n\n return {\n handleFileUpload,\n handleRemoveUpload,\n uploading,\n }\n}\n"],"names":["parseFilename","filename","parsed","nameWithoutExtension","extension","getUploadErrorMessage","error","axios","responseData","detail","useReviewablesUpload","projectName","versionId","taskId","folderId","productId","dispatch","onUpload","onProgress","uploading","setUploads","useState","handleRemoveUpload","useCallback","name","uploads","upload","files","fileVersionId","reviewableVersionId","fileArray","uploadingFiles","file","newUploadsForVersion","successHandler","response","data","reviewablesQueries","draft","api","errorHandler","updatedUploads","progressHandler","progressEvent","totalProgress","sum","overallProgress","uploadPromises","fileName","autoLabel","url","headers","toast"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { useState as
|
|
2
|
-
import
|
|
3
|
-
import { toast as
|
|
4
|
-
import { api as
|
|
1
|
+
import { useState as D, useCallback as T } from "react";
|
|
2
|
+
import A from "axios";
|
|
3
|
+
import { toast as Q } from "react-toastify";
|
|
4
|
+
import { api as y } from "../../api/base/client.es.js";
|
|
5
5
|
import "../../api/generated/graphql.es.js";
|
|
6
6
|
import "../../api/generated/graphqlLinks.es.js";
|
|
7
7
|
import "../../api/generated/access.es.js";
|
|
@@ -83,7 +83,7 @@ import "../../api/queries/project/getProject.es.js";
|
|
|
83
83
|
import "../../api/queries/project/updateProject.es.js";
|
|
84
84
|
import "../../api/queries/projectFolders/projectFolders.es.js";
|
|
85
85
|
import "../../api/queries/review/getReview.es.js";
|
|
86
|
-
import { reviewablesQueries as
|
|
86
|
+
import { reviewablesQueries as k } from "../../api/queries/review/updateReview.es.js";
|
|
87
87
|
import "../../api/queries/share/share.es.js";
|
|
88
88
|
import "../../api/queries/system/getSystem.es.js";
|
|
89
89
|
import "../../api/queries/tasks/getTasks.es.js";
|
|
@@ -98,107 +98,122 @@ import "../../api/queries/views/getViews.es.js";
|
|
|
98
98
|
import "../../api/queries/views/updateViews.es.js";
|
|
99
99
|
import "../../api/queries/watchers/getWatchers.es.js";
|
|
100
100
|
import "../../api/queries/uris/getUris.es.js";
|
|
101
|
-
const d = (
|
|
102
|
-
const
|
|
103
|
-
return
|
|
104
|
-
},
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
101
|
+
const d = (r) => {
|
|
102
|
+
const t = r.replace(/[^\x00-\xFF]/g, "").trim(), m = t.replace(/\.[^/.]+$/, ""), l = t.split(".").pop();
|
|
103
|
+
return m.length === 0 ? "unnamed" + (l ? `.${l}` : "") : t;
|
|
104
|
+
}, P = (r) => {
|
|
105
|
+
if (A.isAxiosError(r)) {
|
|
106
|
+
const t = r.response?.data;
|
|
107
|
+
if (typeof t == "string" && t)
|
|
108
|
+
return t;
|
|
109
|
+
if (t && typeof t == "object" && "detail" in t) {
|
|
110
|
+
const m = t.detail;
|
|
111
|
+
if (typeof m == "string" && m)
|
|
112
|
+
return m;
|
|
113
|
+
}
|
|
114
|
+
return r.message || r.response?.statusText || "Unknown upload error";
|
|
115
|
+
}
|
|
116
|
+
return r instanceof Error ? r.message : typeof r == "string" ? r : "Unknown upload error";
|
|
117
|
+
}, Mr = ({
|
|
118
|
+
projectName: r,
|
|
119
|
+
versionId: t,
|
|
120
|
+
taskId: m,
|
|
121
|
+
folderId: l,
|
|
122
|
+
productId: v,
|
|
123
|
+
dispatch: u,
|
|
111
124
|
onUpload: b,
|
|
112
|
-
onProgress:
|
|
125
|
+
onProgress: F
|
|
113
126
|
}) => {
|
|
114
|
-
const [
|
|
115
|
-
(
|
|
116
|
-
|
|
117
|
-
...
|
|
118
|
-
[
|
|
127
|
+
const [f, g] = D({}), h = T(
|
|
128
|
+
(x) => {
|
|
129
|
+
t && g((w) => ({
|
|
130
|
+
...w,
|
|
131
|
+
[t]: w[t]?.filter((i) => i.name !== x) || []
|
|
119
132
|
}));
|
|
120
133
|
},
|
|
121
|
-
[
|
|
134
|
+
[t]
|
|
122
135
|
);
|
|
123
136
|
return {
|
|
124
|
-
handleFileUpload:
|
|
125
|
-
async (
|
|
126
|
-
const
|
|
127
|
-
if (!
|
|
128
|
-
const $ = Array.from(
|
|
137
|
+
handleFileUpload: T(
|
|
138
|
+
async (x, w) => {
|
|
139
|
+
const i = w || t;
|
|
140
|
+
if (!i || !r) return;
|
|
141
|
+
const $ = Array.from(x), E = $.map((o) => ({
|
|
129
142
|
name: d(o.name),
|
|
130
143
|
size: o.size,
|
|
131
144
|
progress: 0
|
|
132
|
-
})), H = [...
|
|
133
|
-
|
|
134
|
-
const
|
|
135
|
-
if (!
|
|
145
|
+
})), H = [...f[i] || [], ...E];
|
|
146
|
+
g({ ...f, [i]: H });
|
|
147
|
+
const M = (o) => (e) => {
|
|
148
|
+
if (!i) return;
|
|
136
149
|
console.log(`Upload successful for ${o.name}`);
|
|
137
|
-
const
|
|
138
|
-
|
|
150
|
+
const p = e.data;
|
|
151
|
+
r && (u(
|
|
139
152
|
// @ts-ignore
|
|
140
|
-
|
|
153
|
+
k.util.updateQueryData(
|
|
141
154
|
"getReviewablesForVersion",
|
|
142
|
-
{ projectName:
|
|
143
|
-
(
|
|
144
|
-
|
|
155
|
+
{ projectName: r, versionId: i },
|
|
156
|
+
(n) => {
|
|
157
|
+
n.reviewables || (n.reviewables = []), n.reviewables.push(p);
|
|
145
158
|
}
|
|
146
159
|
)
|
|
147
|
-
),
|
|
148
|
-
},
|
|
149
|
-
|
|
150
|
-
const
|
|
160
|
+
), v && u(y.util.invalidateTags([{ type: "viewer", id: v }])), u(y.util.invalidateTags([{ type: "viewer", id: i }])), l && u(y.util.invalidateTags([{ type: "viewer", id: l }])), m && u(y.util.invalidateTags([{ type: "viewer", id: m }])), h(d(o.name)));
|
|
161
|
+
}, R = (o) => (e) => {
|
|
162
|
+
i && (console.error(`Upload failed for ${o.name}: ${e}`), g((p) => {
|
|
163
|
+
const s = (p[i] || []).map((a) => a.name !== d(o.name) ? a : {
|
|
151
164
|
...a,
|
|
152
|
-
error:
|
|
153
|
-
})
|
|
165
|
+
error: P(e)
|
|
166
|
+
});
|
|
154
167
|
return {
|
|
155
|
-
...
|
|
156
|
-
[
|
|
168
|
+
...p,
|
|
169
|
+
[i]: s
|
|
157
170
|
};
|
|
158
171
|
}));
|
|
159
|
-
},
|
|
160
|
-
const
|
|
172
|
+
}, V = (o) => i ? (e) => g((p) => {
|
|
173
|
+
const s = (p[i] || []).map((c) => c.name !== d(o.name) ? c : {
|
|
161
174
|
...c,
|
|
162
|
-
progress:
|
|
163
|
-
}), a =
|
|
164
|
-
(c,
|
|
175
|
+
progress: e.total ? Math.round(e.loaded / e.total * 100) : 0
|
|
176
|
+
}), a = s.reduce(
|
|
177
|
+
(c, z) => c + (z.progress || 0),
|
|
165
178
|
0
|
|
166
|
-
),
|
|
167
|
-
return
|
|
168
|
-
...
|
|
169
|
-
[
|
|
179
|
+
), U = Math.round(a / s.length);
|
|
180
|
+
return F?.(U), {
|
|
181
|
+
...p,
|
|
182
|
+
[i]: s
|
|
170
183
|
};
|
|
171
184
|
}) : () => {
|
|
172
185
|
};
|
|
173
186
|
try {
|
|
174
|
-
const o = $.map((
|
|
175
|
-
const
|
|
176
|
-
return
|
|
187
|
+
const o = $.map((e) => {
|
|
188
|
+
const p = d(e.name), n = p.split(".").slice(0, -1).join(".") || "unnamed", s = `/api/projects/${r}/versions/${i}/reviewables?label=${n}`, a = { "content-type": e.type, "x-file-name": p };
|
|
189
|
+
return A.post(s, e, { headers: a, onUploadProgress: V(e) }).then(M(e)).catch((U) => {
|
|
190
|
+
throw R(e)(U), U;
|
|
191
|
+
});
|
|
177
192
|
});
|
|
178
193
|
await Promise.all(o), b && b();
|
|
179
194
|
} catch (o) {
|
|
180
|
-
console.error(o),
|
|
195
|
+
throw console.error(o), Q.error(`Failed to upload file/s: ${P(o)}`), o;
|
|
181
196
|
}
|
|
182
197
|
},
|
|
183
198
|
[
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
l,
|
|
188
|
-
U,
|
|
189
|
-
s,
|
|
199
|
+
t,
|
|
200
|
+
r,
|
|
201
|
+
f,
|
|
190
202
|
u,
|
|
191
|
-
|
|
203
|
+
v,
|
|
204
|
+
l,
|
|
205
|
+
m,
|
|
206
|
+
h,
|
|
192
207
|
b,
|
|
193
|
-
|
|
208
|
+
F
|
|
194
209
|
]
|
|
195
210
|
),
|
|
196
|
-
handleRemoveUpload:
|
|
197
|
-
uploading:
|
|
211
|
+
handleRemoveUpload: h,
|
|
212
|
+
uploading: f
|
|
198
213
|
};
|
|
199
214
|
};
|
|
200
215
|
export {
|
|
201
216
|
d as parseFilename,
|
|
202
|
-
|
|
217
|
+
Mr as useReviewablesUpload
|
|
203
218
|
};
|
|
204
219
|
//# sourceMappingURL=useReviewablesUpload.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReviewablesUpload.es.js","sources":["../../../../../src/components/ReviewablesList/useReviewablesUpload.ts"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport axios, { AxiosProgressEvent, AxiosResponse } from 'axios'\nimport { toast } from 'react-toastify'\n\nimport api, { reviewablesQueries } from '@shared/api'\nimport type { UploadReviewableApiResponse } from '@shared/api'\nimport type { ReviewableProgress } from '@shared/components'\n\n// strip out non-ISO-8859-1 characters like Narrow No-Break Space and emojis\n// then check it is not an empty string without extension, if so replace with \"unnamed\"\nexport const parseFilename = (filename: string) => {\n const parsed = filename.replace(/[^\\x00-\\xFF]/g, '').trim()\n // without extension\n const nameWithoutExtension = parsed.replace(/\\.[^/.]+$/, '')\n const extension = parsed.split('.').pop()\n if (nameWithoutExtension.length === 0) {\n return 'unnamed' + (extension ? `.${extension}` : '')\n } else {\n return parsed\n }\n}\n\nexport interface UseReviewablesUploadProps {\n projectName: string | null\n versionId?: string | null\n taskId?: string | null\n folderId?: string | null\n productId?: string | null\n dispatch: any\n onUpload?: () => void\n onProgress?: (progress: number) => void\n}\n\nexport interface UploadHandlers {\n handleFileUpload: (files: FileList | File[], versionId?: string) => Promise<void>\n handleRemoveUpload: (name: string) => void\n uploading: { [key: string]: ReviewableProgress[] }\n}\n\nexport const useReviewablesUpload = ({\n projectName,\n versionId,\n taskId,\n folderId,\n productId,\n dispatch,\n onUpload,\n onProgress,\n}: UseReviewablesUploadProps): UploadHandlers => {\n const [uploading, setUploads] = useState<{ [key: string]: ReviewableProgress[] }>({})\n\n const handleRemoveUpload = useCallback(\n (name: string) => {\n if (!versionId) return\n setUploads((uploads) => ({\n ...uploads,\n [versionId]: uploads[versionId]?.filter((upload) => upload.name !== name) || [],\n }))\n },\n [versionId],\n )\n\n const handleFileUpload = useCallback(\n async (files: FileList | File[], fileVersionId?: string) => {\n // use the passed versionId or the one from props\n const reviewableVersionId = fileVersionId || versionId\n if (!reviewableVersionId || !projectName) return\n\n const fileArray = Array.from(files)\n\n const uploadingFiles = fileArray.map((file) => ({\n name: parseFilename(file.name),\n size: file.size,\n progress: 0,\n }))\n\n const newUploadsForVersion = [...(uploading[reviewableVersionId] || []), ...uploadingFiles]\n\n setUploads({ ...uploading, [reviewableVersionId]: newUploadsForVersion })\n\n const successHandler = (file: File) => (response: AxiosResponse) => {\n if (!reviewableVersionId) return\n // Handle successful upload\n console.log(`Upload successful for ${file.name}`)\n // patch the new data into the reviewables cache\n const data = response.data as UploadReviewableApiResponse\n\n if (!projectName) return\n\n dispatch(\n // @ts-ignore\n reviewablesQueries.util.updateQueryData(\n 'getReviewablesForVersion',\n { projectName, versionId: reviewableVersionId },\n (draft) => {\n if (!draft.reviewables) {\n draft.reviewables = []\n }\n // @ts-ignore\n draft.reviewables.push(data)\n },\n ),\n )\n\n // also invalidate the viewer cache\n productId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: productId }]))\n dispatch(api.util.invalidateTags([{ type: 'viewer', id: reviewableVersionId }]))\n folderId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: folderId }]))\n taskId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: taskId }]))\n // remove the file from the list\n handleRemoveUpload(parseFilename(file.name))\n }\n\n const errorHandler = (file: File) => (error: any) => {\n if (!reviewableVersionId) return\n console.error(`Upload failed for ${file.name}: ${error}`)\n toast.error(`Failed to upload file: ${file.name}`)\n // add error to the file\n setUploads((uploads) => {\n // current uploads for reviewableVersionId\n const currentUploads = uploads[reviewableVersionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== parseFilename(file.name)) return upload\n console.log(error)\n return {\n ...upload,\n error: error.response || error.message,\n }\n })\n\n // update state\n return {\n ...uploads,\n [reviewableVersionId]: updatedUploads,\n }\n })\n }\n\n const progressHandler = (file: File) => {\n if (!reviewableVersionId) return () => {}\n return (progressEvent: AxiosProgressEvent) =>\n setUploads((uploads) => {\n // current uploads for reviewableVersionId\n const currentUploads = uploads[reviewableVersionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== parseFilename(file.name)) return upload\n return {\n ...upload,\n progress: progressEvent.total\n ? Math.round((progressEvent.loaded / progressEvent.total) * 100)\n : 0,\n }\n })\n\n // Calculate overall progress across all files\n const totalProgress = updatedUploads.reduce(\n (sum, upload) => sum + (upload.progress || 0),\n 0,\n )\n const overallProgress = Math.round(totalProgress / updatedUploads.length)\n\n // Call the onProgress callback with overall progress\n onProgress?.(overallProgress)\n\n // update state\n return {\n ...uploads,\n [reviewableVersionId]: updatedUploads,\n }\n })\n }\n\n try {\n // upload the files\n const uploadPromises = fileArray.map((file) => {\n const fileName = parseFilename(file.name)\n const autoLabel = fileName.split('.').slice(0, -1).join('.') || 'unnamed'\n\n const url = `/api/projects/${projectName}/versions/${reviewableVersionId}/reviewables?label=${autoLabel}`\n const headers = { 'content-type': file.type, 'x-file-name': fileName }\n return axios\n .post(url, file, { headers, onUploadProgress: progressHandler(file) })\n .then(successHandler(file))\n .catch(errorHandler(file))\n })\n\n // Wait for all uploads to complete\n await Promise.all(uploadPromises)\n\n // Callback after all uploads are finished\n onUpload && onUpload()\n } catch (error) {\n // something went wrong with everything, EEEEK!\n console.error(error)\n toast.error('Failed to upload file/s')\n }\n },\n [\n versionId,\n projectName,\n uploading,\n dispatch,\n productId,\n folderId,\n taskId,\n handleRemoveUpload,\n onUpload,\n onProgress,\n ],\n )\n\n return {\n handleFileUpload,\n handleRemoveUpload,\n uploading,\n }\n}\n"],"names":["parseFilename","filename","parsed","nameWithoutExtension","extension","useReviewablesUpload","projectName","versionId","taskId","folderId","productId","dispatch","onUpload","onProgress","uploading","setUploads","useState","handleRemoveUpload","useCallback","name","uploads","upload","files","fileVersionId","reviewableVersionId","fileArray","uploadingFiles","file","newUploadsForVersion","successHandler","response","data","reviewablesQueries","draft","api","errorHandler","error","toast","updatedUploads","progressHandler","progressEvent","totalProgress","sum","overallProgress","uploadPromises","fileName","autoLabel","url","headers","axios"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useReviewablesUpload.es.js","sources":["../../../../../src/components/ReviewablesList/useReviewablesUpload.ts"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport axios, { AxiosProgressEvent, AxiosResponse } from 'axios'\nimport { toast } from 'react-toastify'\n\nimport api, { reviewablesQueries } from '@shared/api'\nimport type { UploadReviewableApiResponse } from '@shared/api'\nimport type { ReviewableProgress } from '@shared/components'\n\n// strip out non-ISO-8859-1 characters like Narrow No-Break Space and emojis\n// then check it is not an empty string without extension, if so replace with \"unnamed\"\nexport const parseFilename = (filename: string) => {\n const parsed = filename.replace(/[^\\x00-\\xFF]/g, '').trim()\n // without extension\n const nameWithoutExtension = parsed.replace(/\\.[^/.]+$/, '')\n const extension = parsed.split('.').pop()\n if (nameWithoutExtension.length === 0) {\n return 'unnamed' + (extension ? `.${extension}` : '')\n } else {\n return parsed\n }\n}\n\nconst getUploadErrorMessage = (error: unknown): string => {\n if (axios.isAxiosError(error)) {\n const responseData = error.response?.data\n if (typeof responseData === 'string' && responseData) {\n return responseData\n }\n\n if (responseData && typeof responseData === 'object' && 'detail' in responseData) {\n const detail = responseData.detail\n if (typeof detail === 'string' && detail) {\n return detail\n }\n }\n\n return error.message || error.response?.statusText || 'Unknown upload error'\n }\n\n if (error instanceof Error) {\n return error.message\n }\n\n return typeof error === 'string' ? error : 'Unknown upload error'\n}\n\nexport interface UseReviewablesUploadProps {\n projectName: string | null\n versionId?: string | null\n taskId?: string | null\n folderId?: string | null\n productId?: string | null\n dispatch: any\n onUpload?: () => void\n onProgress?: (progress: number) => void\n}\n\nexport interface UploadHandlers {\n handleFileUpload: (files: FileList | File[], versionId?: string) => Promise<void>\n handleRemoveUpload: (name: string) => void\n uploading: { [key: string]: ReviewableProgress[] }\n}\n\nexport const useReviewablesUpload = ({\n projectName,\n versionId,\n taskId,\n folderId,\n productId,\n dispatch,\n onUpload,\n onProgress,\n}: UseReviewablesUploadProps): UploadHandlers => {\n const [uploading, setUploads] = useState<{ [key: string]: ReviewableProgress[] }>({})\n\n const handleRemoveUpload = useCallback(\n (name: string) => {\n if (!versionId) return\n setUploads((uploads) => ({\n ...uploads,\n [versionId]: uploads[versionId]?.filter((upload) => upload.name !== name) || [],\n }))\n },\n [versionId],\n )\n\n const handleFileUpload = useCallback(\n async (files: FileList | File[], fileVersionId?: string) => {\n // use the passed versionId or the one from props\n const reviewableVersionId = fileVersionId || versionId\n if (!reviewableVersionId || !projectName) return\n\n const fileArray = Array.from(files)\n\n const uploadingFiles = fileArray.map((file) => ({\n name: parseFilename(file.name),\n size: file.size,\n progress: 0,\n }))\n\n const newUploadsForVersion = [...(uploading[reviewableVersionId] || []), ...uploadingFiles]\n\n setUploads({ ...uploading, [reviewableVersionId]: newUploadsForVersion })\n\n const successHandler = (file: File) => (response: AxiosResponse) => {\n if (!reviewableVersionId) return\n // Handle successful upload\n console.log(`Upload successful for ${file.name}`)\n // patch the new data into the reviewables cache\n const data = response.data as UploadReviewableApiResponse\n\n if (!projectName) return\n\n dispatch(\n // @ts-ignore\n reviewablesQueries.util.updateQueryData(\n 'getReviewablesForVersion',\n { projectName, versionId: reviewableVersionId },\n (draft) => {\n if (!draft.reviewables) {\n draft.reviewables = []\n }\n // @ts-ignore\n draft.reviewables.push(data)\n },\n ),\n )\n\n // also invalidate the viewer cache\n productId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: productId }]))\n dispatch(api.util.invalidateTags([{ type: 'viewer', id: reviewableVersionId }]))\n folderId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: folderId }]))\n taskId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: taskId }]))\n // remove the file from the list\n handleRemoveUpload(parseFilename(file.name))\n }\n\n const errorHandler = (file: File) => (error: unknown) => {\n if (!reviewableVersionId) return\n console.error(`Upload failed for ${file.name}: ${error}`)\n // add error to the file\n setUploads((uploads) => {\n // current uploads for reviewableVersionId\n const currentUploads = uploads[reviewableVersionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== parseFilename(file.name)) return upload\n return {\n ...upload,\n error: getUploadErrorMessage(error),\n }\n })\n\n // update state\n return {\n ...uploads,\n [reviewableVersionId]: updatedUploads,\n }\n })\n }\n\n const progressHandler = (file: File) => {\n if (!reviewableVersionId) return () => {}\n return (progressEvent: AxiosProgressEvent) =>\n setUploads((uploads) => {\n // current uploads for reviewableVersionId\n const currentUploads = uploads[reviewableVersionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== parseFilename(file.name)) return upload\n return {\n ...upload,\n progress: progressEvent.total\n ? Math.round((progressEvent.loaded / progressEvent.total) * 100)\n : 0,\n }\n })\n\n // Calculate overall progress across all files\n const totalProgress = updatedUploads.reduce(\n (sum, upload) => sum + (upload.progress || 0),\n 0,\n )\n const overallProgress = Math.round(totalProgress / updatedUploads.length)\n\n // Call the onProgress callback with overall progress\n onProgress?.(overallProgress)\n\n // update state\n return {\n ...uploads,\n [reviewableVersionId]: updatedUploads,\n }\n })\n }\n\n try {\n // upload the files\n const uploadPromises = fileArray.map((file) => {\n const fileName = parseFilename(file.name)\n const autoLabel = fileName.split('.').slice(0, -1).join('.') || 'unnamed'\n\n const url = `/api/projects/${projectName}/versions/${reviewableVersionId}/reviewables?label=${autoLabel}`\n const headers = { 'content-type': file.type, 'x-file-name': fileName }\n return axios\n .post(url, file, { headers, onUploadProgress: progressHandler(file) })\n .then(successHandler(file))\n .catch((error) => {\n errorHandler(file)(error)\n throw error\n })\n })\n\n // Wait for all uploads to complete\n await Promise.all(uploadPromises)\n\n // Callback after all uploads are finished\n onUpload && onUpload()\n } catch (error) {\n // something went wrong with everything, EEEEK!\n console.error(error)\n toast.error(`Failed to upload file/s: ${getUploadErrorMessage(error)}`)\n throw error\n }\n },\n [\n versionId,\n projectName,\n uploading,\n dispatch,\n productId,\n folderId,\n taskId,\n handleRemoveUpload,\n onUpload,\n onProgress,\n ],\n )\n\n return {\n handleFileUpload,\n handleRemoveUpload,\n uploading,\n }\n}\n"],"names":["parseFilename","filename","parsed","nameWithoutExtension","extension","getUploadErrorMessage","error","axios","responseData","detail","useReviewablesUpload","projectName","versionId","taskId","folderId","productId","dispatch","onUpload","onProgress","uploading","setUploads","useState","handleRemoveUpload","useCallback","name","uploads","upload","files","fileVersionId","reviewableVersionId","fileArray","uploadingFiles","file","newUploadsForVersion","successHandler","response","data","reviewablesQueries","draft","api","errorHandler","updatedUploads","progressHandler","progressEvent","totalProgress","sum","overallProgress","uploadPromises","fileName","autoLabel","url","headers","toast"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const i=require("../../../../_virtual/jsx-runtime.cjs.js"),p=require("clsx");require("../AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("react");require("../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("@ynput/ayon-react-components");require("../AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../AccessUser/AccessUser.cjs.js");require("../AttributeEditor/AttributeEditor.cjs.js");require("../AttributeEditor/attributeTypeMap.cjs.js");require("../Badge/Badge.cjs.js");require("../Chips/Chips.cjs.js");require("react-dom");require("date-fns");require("../DateRangePicker/DateRangePicker.styled.cjs.js");require("../LinksManager/CellEditingDialog.cjs.js");require("react-toastify");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/dataImport.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/projectFolders.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/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/bundles/getBundles.cjs.js");require("../../api/queries/bundles/updateBundles.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/columnStats/metricTargets.cjs.js");require("../../api/queries/columnStats/groupCounts.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/overview/getOverview.cjs.js");require("../../api/queries/overview/updateOverview.cjs.js");require("../../api/queries/versions/getVersionsProducts.cjs.js");require("../../api/queries/links/getEntityLinks.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/listItemsColumnStats.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/folders/getFolderDeleteInfo.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/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/products/getFolderProducts.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/projectFolders/projectFolders.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/tasks/getTasks.cjs.js");require("../../api/queries/tasks/updateTasks.cjs.js");require("../../api/queries/teams/getTeams.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");require("../../../../_virtual/index.cjs.js");require("../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("lodash");require("uuid");require("../../util/pubsub.cjs.js");require("../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../DetailsPanelDetails/BorderedSection.cjs.js");require("../QuillListStyles/QuillListStyles.cjs.js");require("../DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("react-markdown");require("remark-gfm");require("rehype-raw");require("../../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../containers/Feed/components/CommentInput/modules/index.cjs.js");require("../../context/RemoteModulesContext.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("../../context/PowerpackContextInstance.cjs.js");require("../../context/UriContext.cjs.js");require("../../context/DetailsPanelContextInstance.cjs.js");require("../../context/SubtasksModulesContextInstance.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("../../context/pip/PiPWrapper.cjs.js");require("../../context/AddonProjectContext.cjs.js");require("../../context/AddonContext.cjs.js");require("../../context/MoveEntityContext.cjs.js");require("../../context/MenuContext.cjs.js");require("../../context/WebsocketContext.cjs.js");require("../../context/GlobalContext.cjs.js");require("../../context/ProjectContext.cjs.js");require("../../context/ProjectFoldersContextInstance.cjs.js");require("react-redux");require("custom-protocol-check");require("../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../DetailsPanelDetails/DetailsSection.cjs.js");require("../DetailsPanelDetails/FieldLabel.cjs.js");require("../DoneCheckbox/DoneCheckbox.cjs.js");require("../EarlyPreview/EarlyPreview.cjs.js");require("../EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../InfoMessage/InfoMessage.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../EnumEditor/EnumEditor.styled.cjs.js");require("../../containers/ContextMenu/ContextMenuContext.cjs.js");;/* empty css */const j=require("../../containers/ContextMenu/useCreateContextMenu.cjs.js");require("../../containers/Feed/context/FeedContext.cjs.js");require("../../containers/Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.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("remark-emoji");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/ActivityComment/ActivityComment.styled.cjs.js");require("../../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../containers/Feed/components/ActivityReference/ActivityReference.styled.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("../../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/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../containers/Feed/Feed.styled.cjs.js");require("../../containers/Feed/components/FeedSearchFilter.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");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/EnumCellValue.cjs.js");require("../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/MarkdownWidget.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("../../containers/ProjectTreeTable/widgets/LinksWidget.cjs.js");require("../LinksManager/LinksManager.styled.cjs.js");require("short-uuid");require("../SearchFilter/filterDates.cjs.js");require("../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("../../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../containers/ProjectTreeTable/components/DeleteConfirmContent.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectDataContextInstance.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableContextInstance.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/TableFooterRow.cjs.js");require("../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../containers/Slicer/components/Slicer.cjs.js");require("../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");require("../../containers/Views/context/ViewsContextInstance.cjs.js");require("../../containers/Views/Views.styled.cjs.js");require("../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../containers/Slicer/context/SlicerContextInstance.cjs.js");require("../../containers/Slicer/components/SlicerDropdownFallback.cjs.js");require("../../containers/Slicer/hooks/useTableDataBySlice.cjs.js");require("../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../PlayableIcon/PlayableIcon.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../containers/DetailsPanel/components/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/ListTable/ListTableRow.cjs.js");require("../../containers/ListTable/ListTable.styled.cjs.js");require("../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../ReviewablesList/ReviewablesList.styled.cjs.js");require("../ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../EntityPath/EntityPath.styled.cjs.js");require("../EntityPath/SegmentProvider.cjs.js");require("../FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../Feedback/FeedbackContextInstance.cjs.js");require("../Feedback/SupportBubble.cjs.js");const C=require("../FileThumbnail/FileThumbnail.cjs.js");require("../LegacyBadge/LegacyBadge.cjs.js");require("../Powerpack/PowerpackButton.cjs.js");require("../Powerpack/FreeTrialLink.cjs.js");require("../Powerpack/PowerpackDialog.styled.cjs.js");require("../Powerpack/CTAButton.cjs.js");require("../Powerpack/RequiredAddonVersion.cjs.js");require("../ProjectTableSettings/ProjectTableSettings.cjs.js");require("../SizeSlider/SizeSlider.cjs.js");require("../ReviewableCard/ReviewableCard.cjs.js");require("../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../SearchFilter/CustomDateRangeDialog.cjs.js");require("../SettingsPanel/SettingsPanel.cjs.js");require("../SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../ShareOptionIcon/ShareOptionIcon.cjs.js");require("../SimpleFormDialog/SimpleFormDialog.cjs.js");require("../StyledLink/StyledLink.cjs.js");require("../TableGridSwitch/TableGridSwitch.cjs.js");require("../Thumbnail/Thumbnail.styled.cjs.js");require("../Thumbnail/StackedThumbnails.cjs.js");require("../ThumbnailSimple/ThumbnailSimple.cjs.js");require("../VersionUploader/components/UploadVersionDialog.cjs.js");require("../VersionUploader/context/VersionUploadContextInstance.cjs.js");require("../Watchers/Watchers.cjs.js");require("../Menu/Menu.styled.cjs.js");require("../Menu/MenuItem.cjs.js");require("./ReviewablesSelector.cjs.js");require("../ColumnHeaderMenuUI.cjs.js");const t=require("./ReviewablesSelector.styled.cjs.js");function b({fileId:r,label:s,selected:n,projectName:o,onKeyDown:a,onMouseOver:c,onChange:x,tag:u,contextMenuItems:q,selectionVariant:l="primary"}){const[m]=j.useCreateContextMenu();return i.jsxRuntimeExports.jsxs(t.ReviewableCard,{id:"preview-"+r,onClick:e=>x?.(r,e.metaKey||e.ctrlKey),className:p("reviewable-card",{selected:n},l),onMouseOver:e=>c(e,{label:s}),onKeyDown:a,onContextMenu:e=>{q&&(e.preventDefault(),m(e,q))},tabIndex:0,children:[i.jsxRuntimeExports.jsx(C.FileThumbnail,{src:`/api/projects/${o}/files/${r}/thumbnail`}),u&&i.jsxRuntimeExports.jsx(t.Tag,{children:u})]},r)}module.exports=b;
|
|
1
|
+
"use strict";const i=require("../../../../_virtual/jsx-runtime.cjs.js"),p=require("clsx");require("../AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("react");require("../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("@ynput/ayon-react-components");require("../AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../AccessUser/AccessUser.cjs.js");require("../AttributeEditor/AttributeEditor.cjs.js");require("../AttributeEditor/attributeTypeMap.cjs.js");require("../Badge/Badge.cjs.js");require("../Chips/Chips.cjs.js");require("react-dom");require("date-fns");require("../DateRangePicker/DateRangePicker.styled.cjs.js");require("../LinksManager/CellEditingDialog.cjs.js");require("react-toastify");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/dataImport.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/projectFolders.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/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/bundles/getBundles.cjs.js");require("../../api/queries/bundles/updateBundles.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/columnStats/metricTargets.cjs.js");require("../../api/queries/columnStats/groupCounts.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/overview/getOverview.cjs.js");require("../../api/queries/overview/updateOverview.cjs.js");require("../../api/queries/versions/getVersionsProducts.cjs.js");require("../../api/queries/links/getEntityLinks.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/listItemsColumnStats.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/folders/getFolderDeleteInfo.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/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/products/getFolderProducts.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/projectFolders/projectFolders.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/tasks/getTasks.cjs.js");require("../../api/queries/tasks/updateTasks.cjs.js");require("../../api/queries/teams/getTeams.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");require("../../../../_virtual/index.cjs.js");require("../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("lodash");require("uuid");require("../../util/pubsub.cjs.js");require("../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../DetailsPanelDetails/BorderedSection.cjs.js");require("../QuillListStyles/QuillListStyles.cjs.js");require("../DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("react-markdown");require("remark-gfm");require("rehype-raw");require("../../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../containers/Feed/components/CommentInput/modules/index.cjs.js");require("../../context/RemoteModulesContext.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("../../context/PowerpackContextInstance.cjs.js");require("../../context/UriContext.cjs.js");require("../../context/DetailsPanelContextInstance.cjs.js");require("../../context/SubtasksModulesContextInstance.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("../../context/pip/PiPWrapper.cjs.js");require("../../context/AddonProjectContext.cjs.js");require("../../context/AddonContext.cjs.js");require("../../context/MoveEntityContext.cjs.js");require("../../context/MenuContext.cjs.js");require("../../context/WebsocketContext.cjs.js");require("../../context/GlobalContext.cjs.js");require("../../context/ProjectContext.cjs.js");require("../../context/ProjectFoldersContextInstance.cjs.js");require("react-redux");require("custom-protocol-check");require("../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../DetailsPanelDetails/DetailsSection.cjs.js");require("../DetailsPanelDetails/FieldLabel.cjs.js");require("../DoneCheckbox/DoneCheckbox.cjs.js");require("../EarlyPreview/EarlyPreview.cjs.js");require("../EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../InfoMessage/InfoMessage.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../EnumEditor/EnumEditor.styled.cjs.js");require("../../containers/ContextMenu/ContextMenuContext.cjs.js");;/* empty css */const j=require("../../containers/ContextMenu/useCreateContextMenu.cjs.js");require("../../containers/Feed/context/FeedContext.cjs.js");require("../../containers/Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.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("remark-emoji");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/ActivityComment/ActivityComment.styled.cjs.js");require("../../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../containers/Feed/components/ActivityReference/ActivityReference.styled.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("../../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/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../containers/Feed/Feed.styled.cjs.js");require("../../containers/Feed/components/FeedSearchFilter.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");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/EnumCellValue.cjs.js");require("../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/MarkdownWidget.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("../../containers/ProjectTreeTable/widgets/LinksWidget.cjs.js");require("../LinksManager/LinksManager.styled.cjs.js");require("short-uuid");require("../SearchFilter/filterDates.cjs.js");require("../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("../../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../containers/ProjectTreeTable/components/DeleteConfirmContent.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectDataContextInstance.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableContextInstance.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/TableFooterRow.cjs.js");require("../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../containers/Slicer/components/Slicer.cjs.js");require("../../containers/Slicer/context/SlicerContextInstance.cjs.js");require("../../containers/Slicer/components/SlicerDropdownFallback.cjs.js");require("../../containers/Slicer/hooks/useTableDataBySlice.cjs.js");require("../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../PlayableIcon/PlayableIcon.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../containers/DetailsPanel/components/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/ViewsMenu/ViewsMenu.cjs.js");require("../../containers/Views/context/ViewsContextInstance.cjs.js");require("../../containers/Views/Views.styled.cjs.js");require("../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../containers/ListTable/ListTableRow.cjs.js");require("../../containers/ListTable/ListTable.styled.cjs.js");require("../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../ReviewablesList/ReviewablesList.styled.cjs.js");require("../ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../EntityPath/EntityPath.styled.cjs.js");require("../EntityPath/SegmentProvider.cjs.js");require("../FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../Feedback/FeedbackContextInstance.cjs.js");require("../Feedback/SupportBubble.cjs.js");const C=require("../FileThumbnail/FileThumbnail.cjs.js");require("../LegacyBadge/LegacyBadge.cjs.js");require("../Powerpack/PowerpackButton.cjs.js");require("../Powerpack/FreeTrialLink.cjs.js");require("../Powerpack/PowerpackDialog.styled.cjs.js");require("../Powerpack/CTAButton.cjs.js");require("../Powerpack/RequiredAddonVersion.cjs.js");require("../ProjectTableSettings/ProjectTableSettings.cjs.js");require("../SizeSlider/SizeSlider.cjs.js");require("../ReviewableCard/ReviewableCard.cjs.js");require("../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../SearchFilter/CustomDateRangeDialog.cjs.js");require("../SettingsPanel/SettingsPanel.cjs.js");require("../SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../ShareOptionIcon/ShareOptionIcon.cjs.js");require("../SimpleFormDialog/SimpleFormDialog.cjs.js");require("../StyledLink/StyledLink.cjs.js");require("../TableGridSwitch/TableGridSwitch.cjs.js");require("../Thumbnail/Thumbnail.styled.cjs.js");require("../Thumbnail/StackedThumbnails.cjs.js");require("../ThumbnailSimple/ThumbnailSimple.cjs.js");require("../VersionUploader/components/UploadVersionDialog.cjs.js");require("../VersionUploader/context/VersionUploadContextInstance.cjs.js");require("../Watchers/Watchers.cjs.js");require("../Menu/Menu.styled.cjs.js");require("../Menu/MenuItem.cjs.js");require("./ReviewablesSelector.cjs.js");require("../ColumnHeaderMenuUI.cjs.js");const t=require("./ReviewablesSelector.styled.cjs.js");function b({fileId:r,label:s,selected:n,projectName:o,onKeyDown:a,onMouseOver:c,onChange:x,tag:u,contextMenuItems:q,selectionVariant:l="primary"}){const[m]=j.useCreateContextMenu();return i.jsxRuntimeExports.jsxs(t.ReviewableCard,{id:"preview-"+r,onClick:e=>x?.(r,e.metaKey||e.ctrlKey),className:p("reviewable-card",{selected:n},l),onMouseOver:e=>c(e,{label:s}),onKeyDown:a,onContextMenu:e=>{q&&(e.preventDefault(),m(e,q))},tabIndex:0,children:[i.jsxRuntimeExports.jsx(C.FileThumbnail,{src:`/api/projects/${o}/files/${r}/thumbnail`}),u&&i.jsxRuntimeExports.jsx(t.Tag,{children:u})]},r)}module.exports=b;
|
|
2
2
|
//# sourceMappingURL=Card.cjs.js.map
|
|
@@ -234,10 +234,6 @@ import "../../containers/ProjectTreeTable/components/HeaderActionButton.es.js";
|
|
|
234
234
|
import "../../containers/ProjectTreeTable/components/TableFooterRow.es.js";
|
|
235
235
|
import "../../containers/EntityPickerDialog/EntityPickerDialog.es.js";
|
|
236
236
|
import "../../containers/Slicer/components/Slicer.es.js";
|
|
237
|
-
import "../../containers/Views/ViewsMenu/ViewsMenu.es.js";
|
|
238
|
-
import "../../containers/Views/context/ViewsContextInstance.es.js";
|
|
239
|
-
import "../../containers/Views/Views.styled.es.js";
|
|
240
|
-
import "../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
|
|
241
237
|
import "../../containers/Slicer/context/SlicerContextInstance.es.js";
|
|
242
238
|
import "../../containers/Slicer/components/SlicerDropdownFallback.es.js";
|
|
243
239
|
import "../../containers/Slicer/hooks/useTableDataBySlice.es.js";
|
|
@@ -255,6 +251,10 @@ import "../../containers/DetailsPanel/components/DetailsPanelFloating/DetailsPan
|
|
|
255
251
|
import "../../containers/Actions/Actions.styled.es.js";
|
|
256
252
|
import "../../containers/Actions/ActionsDropdown/ActionsDropdown.es.js";
|
|
257
253
|
import "../../containers/Actions/ActionIcon.es.js";
|
|
254
|
+
import "../../containers/Views/ViewsMenu/ViewsMenu.es.js";
|
|
255
|
+
import "../../containers/Views/context/ViewsContextInstance.es.js";
|
|
256
|
+
import "../../containers/Views/Views.styled.es.js";
|
|
257
|
+
import "../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
|
|
258
258
|
import "../../containers/ListTable/ListTableRow.es.js";
|
|
259
259
|
import "../../containers/ListTable/ListTable.styled.es.js";
|
|
260
260
|
import "../EntityPanelUploader/EntityPanelUploader.styled.es.js";
|