@ynput/ayon-frontend-shared 0.3.36 → 0.3.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DetailsPanel.cjs.js +1 -1
- package/dist/DetailsPanel.es.js +24 -23
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +222 -215
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/_virtual/index.cjs12.js +1 -1
- package/dist/_virtual/index.cjs13.js +1 -1
- package/dist/_virtual/index.cjs15.js +1 -1
- package/dist/_virtual/index.cjs18.js +1 -1
- package/dist/_virtual/index.cjs19.js +1 -1
- package/dist/_virtual/index.cjs4.js +1 -1
- package/dist/_virtual/index.cjs8.js +1 -1
- package/dist/_virtual/index.cjs9.js +1 -1
- package/dist/_virtual/index.es12.js +2 -5
- package/dist/_virtual/index.es12.js.map +1 -1
- package/dist/_virtual/index.es13.js +2 -5
- package/dist/_virtual/index.es13.js.map +1 -1
- package/dist/_virtual/index.es14.js +2 -2
- 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.es4.js +5 -2
- package/dist/_virtual/index.es4.js.map +1 -1
- package/dist/_virtual/index.es7.js +2 -2
- package/dist/_virtual/index.es8.js +2 -2
- package/dist/_virtual/index.es9.js +5 -2
- package/dist/_virtual/index.es9.js.map +1 -1
- package/dist/components.cjs.js +1 -1
- package/dist/components.es.js +77 -73
- package/dist/components.es.js.map +1 -1
- package/dist/context.cjs.js +1 -1
- package/dist/context.es.js +50 -49
- package/dist/hooks.cjs.js +1 -1
- package/dist/hooks.es.js +33 -29
- package/dist/hooks.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +13 -10
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
- package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js.map +1 -1
- package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js.map +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/error-codes/dist/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/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js.map +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/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/type/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/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/@module-federation/runtime-core/dist/utils/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js.map +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js.map +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/sdk/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/sdk/dist/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/sdk/dist/utils.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/sdk/dist/utils.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.cjs.js.map +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.cjs.js.map +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.cjs.js.map +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +108 -23
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +138 -53
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.es.js +42 -42
- package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js +2 -0
- package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js +68 -0
- package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js.map +1 -0
- package/dist/shared/src/api/queries/activities/updateActivities.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/updateActivities.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateActivities.es.js +69 -62
- package/dist/shared/src/api/queries/activities/updateActivities.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js +64 -56
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js +1 -1
- package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/columnStats.es.js +57 -53
- package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js +1 -1
- package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/metricTargets.es.js +27 -25
- package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +1 -1
- package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.es.js +4 -4
- package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.es.js +212 -187
- package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +6 -3
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +6 -3
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +6 -3
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +6 -3
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +102 -99
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +95 -87
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +6 -3
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +6 -3
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.es.js +6 -3
- package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +6 -3
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +7 -4
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +6 -3
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.es.js +6 -3
- package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.cjs.js +6 -0
- package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.cjs.js.map +1 -0
- package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.es.js +58 -0
- package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.es.js.map +1 -0
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +1 -4
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useDateRangeFilter.cjs.js +2 -0
- package/dist/shared/src/components/SearchFilter/useDateRangeFilter.cjs.js.map +1 -0
- package/dist/shared/src/components/SearchFilter/useDateRangeFilter.es.js +106 -0
- package/dist/shared/src/components/SearchFilter/useDateRangeFilter.es.js.map +1 -0
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +8 -5
- package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +6 -3
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +6 -3
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +10 -7
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +6 -3
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +6 -3
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +6 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +6 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +6 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +6 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +6 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js +10 -0
- package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js +135 -0
- package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +20 -17
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +41 -44
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +5 -2
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +19 -25
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.cjs.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.cjs.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.es.js +91 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.es.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +6 -3
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +6 -3
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +6 -3
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +6 -3
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.es.js +156 -164
- package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.styled.cjs.js +25 -3
- package/dist/shared/src/containers/Feed/Feed.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.styled.es.js +30 -8
- package/dist/shared/src/containers/Feed/Feed.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +6 -3
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +6 -3
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +6 -3
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js +3 -3
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +8 -5
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +5 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +10 -7
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js +5 -5
- package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +17 -0
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +279 -0
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +5 -2
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +62 -50
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js +141 -0
- package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js +81 -0
- package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +20 -18
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.es.js +106 -103
- package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.es.js +7 -4
- package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +6 -3
- package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +127 -123
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +158 -130
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +36 -33
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +5 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +228 -222
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +103 -100
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js +3 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js +22 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +113 -109
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +125 -121
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +36 -33
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +107 -103
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +36 -33
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +36 -33
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +105 -102
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +37 -34
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +48 -45
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js +61 -61
- package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +15 -6
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +108 -101
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +82 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +416 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +8 -5
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +37 -34
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +6 -3
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +6 -3
- package/dist/shared/src/containers/SimpleTable/SimpleTable.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.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +6 -3
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +6 -3
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.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.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +6 -3
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +92 -94
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.es.js +8 -5
- package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useGetProductionAddon.cjs.js +2 -0
- package/dist/shared/src/hooks/useGetProductionAddon.cjs.js.map +1 -0
- package/dist/shared/src/hooks/useGetProductionAddon.es.js +124 -0
- package/dist/shared/src/hooks/useGetProductionAddon.es.js.map +1 -0
- package/dist/shared/src/hooks/useLocalStorage.cjs.js +1 -1
- package/dist/shared/src/hooks/useLocalStorage.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useLocalStorage.es.js +43 -27
- package/dist/shared/src/hooks/useLocalStorage.es.js.map +1 -1
- package/dist/types/api/generated/graphql.d.ts +122 -0
- package/dist/types/api/generated/graphqlLinks.d.ts +10 -0
- package/dist/types/api/queries/activities/getActivities.d.ts +83 -0
- package/dist/types/api/queries/activities/patchTableLatestComments.d.ts +1 -0
- package/dist/types/api/queries/activities/updateActivities.d.ts +16 -0
- package/dist/types/api/queries/activities/util/activitiesHelpers.d.ts +1 -0
- package/dist/types/api/queries/entities/getEntity.d.ts +7 -0
- package/dist/types/api/queries/entities/getEntityPanel.d.ts +7 -0
- package/dist/types/api/queries/entities/updateEntity.d.ts +7 -0
- package/dist/types/api/queries/entityLists/getLists.d.ts +84 -0
- package/dist/types/api/queries/entityLists/types.d.ts +2 -1
- package/dist/types/api/queries/overview/getOverview.d.ts +58 -0
- package/dist/types/api/queries/project/getProject.d.ts +7 -0
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +7 -0
- package/dist/types/api/queries/users/getUsers.d.ts +7 -0
- package/dist/types/api/queries/versions/getVersionsProducts.d.ts +30 -0
- package/dist/types/components/SearchFilter/CustomDateRangeDialog.d.ts +13 -0
- package/dist/types/components/SearchFilter/index.d.ts +2 -0
- package/dist/types/components/SearchFilter/useDateRangeFilter.d.ts +36 -0
- package/dist/types/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.d.ts +13 -0
- package/dist/types/containers/DetailsPanel/helpers/subtasksFilterAdapter.d.ts +5 -0
- package/dist/types/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.d.ts +1 -0
- package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.styled.d.ts +2 -2
- package/dist/types/containers/Feed/components/FeedSearchFilter.d.ts +15 -0
- package/dist/types/containers/Feed/context/FeedContext.d.ts +5 -1
- package/dist/types/containers/Feed/helpers/buildBackendFilter.d.ts +3 -0
- package/dist/types/containers/Feed/helpers/feedFilterAdapter.d.ts +5 -0
- package/dist/types/containers/Feed/hooks/useGetFeedActivitiesData.d.ts +5 -1
- package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardComments.d.ts +6 -0
- package/dist/types/containers/ProjectTreeTable/context/clipboard/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/types/table.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.d.ts +9 -0
- package/dist/types/containers/ProjectTreeTable/utils/queryFilterToClientFilter.d.ts +5 -0
- package/dist/types/containers/ProjectTreeTable/widgets/CellWidget.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/widgets/CommentsWidget.d.ts +7 -0
- package/dist/types/context/DetailsPanelContext.d.ts +1 -0
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/useGetProductionAddon.d.ts +10 -0
- package/dist/types/hooks/useLocalStorage.d.ts +2 -0
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VersionUploadContext.cjs.js","sources":["../../../../../../src/components/VersionUploader/context/VersionUploadContext.tsx"],"sourcesContent":["import {\n useCreateVersionMutation,\n useCreateProductMutation,\n useGetLatestProductVersionQuery,\n useGetVersionQuery,\n useGetFolderProductsQuery,\n} from '@shared/api'\nimport type { FolderProduct } from '@shared/api'\nimport React, {\n createContext,\n useContext,\n useState,\n useRef,\n ReactNode,\n useMemo,\n useCallback,\n useEffect,\n} from 'react'\nimport { extractVersionFromFilename } from '@shared/util'\nimport { toast } from 'react-toastify'\nimport {\n validateFormData as validateFormDataHelper,\n createProductAndVersion,\n createVersionHelper,\n} from '@shared/util/versionUploadHelpers'\nimport { parseFilename } from '@shared/components/ReviewablesList'\n\nexport interface FormData {\n version: number\n name: string\n productType: string\n}\nexport interface LinkedTask {\n id: string\n name: string\n label?: string | null\n taskType: string\n}\n\ninterface VersionUploadContextType {\n productId: string\n folderId: string\n taskId: string\n linkedTask: LinkedTask | null\n isLoadingTask: boolean\n setTaskId: (taskId: string) => void\n setLinkedTask: (task: LinkedTask | null) => void\n setProductId: (productId: string) => void\n setFolderId: (folderId: string) => void\n isOpen: boolean\n projectName: string\n latestVersion: number | undefined\n pendingFiles: Array<{ file: File; preview?: string }>\n setPendingFiles: React.Dispatch<React.SetStateAction<Array<{ file: File; preview?: string }>>>\n extractAndSetVersionFromFiles: (files: File[]) => void\n form: FormData\n setForm: React.Dispatch<React.SetStateAction<FormData>>\n isSubmitting: boolean\n error: string\n createdProductId: string | null\n createdVersionId: string | null\n onOpenVersionUpload: (params: {\n productId?: string\n folderId?: string\n taskId?: string\n linkedTask?: LinkedTask\n latestVersionNumber?: number\n latestVersionId?: string\n }) => void\n onCloseVersionUpload: () => void\n onUploadVersion: (data: FormData) => Promise<{ productId: string; versionId: string }>\n handleFormChange: (key: keyof FormData, value: string | number) => void\n handleFormSubmit: (formData: FormData) => Promise<void>\n folderProducts: FolderProduct[]\n isFolderProductsLoading: boolean\n matchedProduct: FolderProduct | undefined\n // pass through\n dispatch: any\n}\n\nconst VersionUploadContext = createContext<VersionUploadContextType | undefined>(undefined)\n\ninterface VersionUploadProviderProps {\n children: ReactNode\n projectName: string\n onVersionCreated: (productId: string, versionId: string) => void\n dispatch: any\n}\n\nconst defaultFormData: FormData = {\n version: 1,\n name: 'review',\n productType: 'review',\n}\n\nexport const VersionUploadProvider: React.FC<VersionUploadProviderProps> = ({\n children,\n projectName,\n onVersionCreated,\n dispatch,\n}) => {\n const [folderId, setFolderId] = useState<string>('')\n const [productId, setProductId] = useState<string>('')\n // optional task to link the version to\n // null = not set by user (auto-resolve from version), '' = explicitly cleared, 'id' = explicitly set\n const [userTaskId, setUserTaskId] = useState<string | null>(null)\n const [linkedTask, setLinkedTask] = useState<LinkedTask | null>(null)\n const [isOpen, setIsOpen] = useState<boolean>(false)\n const [pendingFiles, setPendingFiles] = useState<Array<{ file: File; preview?: string }>>([])\n const [form, setForm] = useState<FormData>(defaultFormData)\n const [isSubmitting, setIsSubmitting] = useState(false)\n const [error, setError] = useState<string>('')\n const [createdProductId, setCreatedProductId] = useState<string | null>(null)\n const [createdVersionId, setCreatedVersionId] = useState<string | null>(null)\n // Stores the latest version number passed from the caller (e.g. VP page)\n // so we can skip the GetLatestProductVersion query when we already know it\n const [latestVersionNumber, setLatestVersionNumber] = useState<number | undefined>(undefined)\n // Stores the latest version ID so we can fetch its task when not already known\n const [latestVersionId, setLatestVersionId] = useState<string | undefined>(undefined)\n // Tracks whether the current task was auto-linked from a matched product (not explicitly user-chosen)\n const isTaskAutoLinkedRef = useRef(false)\n // Remember the last submitted product name per folder so we can prefill on reopen\n const lastSubmittedRef = useRef<{ folderId: string; productName: string } | null>(null)\n\n // Fetch products for the folder (only when no productId — Overview/Browser flow)\n const { data: folderProducts = [], isLoading: isFolderProductsLoading } =\n useGetFolderProductsQuery(\n { projectName, folderId },\n { skip: !folderId || !isOpen || !!productId },\n )\n\n // Match typed product name against existing folder products\n const matchedProduct = useMemo(() => {\n if (productId || !form.name || folderProducts.length === 0) return undefined\n return folderProducts.find((p) => p.name === form.name)\n }, [productId, form.name, folderProducts])\n\n const effectiveProductId = productId || matchedProduct?.id || ''\n\n const { currentData: version } = useGetLatestProductVersionQuery(\n {\n projectName,\n productId,\n },\n { skip: !productId || !isOpen || latestVersionNumber != null },\n )\n\n // Fetch the latest version to discover its taskId (e.g. when versions are collapsed)\n const { data: latestVersionData } = useGetVersionQuery(\n { projectName, versionId: latestVersionId! },\n { skip: !latestVersionId || !isOpen || userTaskId !== null },\n )\n\n // Derive effective taskId: user's explicit choice takes priority, then auto-resolved from version\n const taskId = userTaskId ?? latestVersionData?.taskId ?? ''\n const isLoadingTask = !!(latestVersionId && userTaskId === null && !latestVersionData)\n\n const onOpenVersionUpload = useCallback<VersionUploadContextType['onOpenVersionUpload']>(\n ({ productId, folderId, taskId, linkedTask, latestVersionNumber, latestVersionId }) => {\n setProductId(productId || '')\n setFolderId(folderId || '')\n setUserTaskId(taskId || null)\n setLinkedTask(linkedTask || null)\n setLatestVersionNumber(latestVersionNumber)\n setLatestVersionId(latestVersionId)\n\n // Set initial form state in a single update\n setForm((prev) => ({\n ...prev,\n ...(latestVersionNumber != null ? { version: latestVersionNumber + 1 } : {}),\n }))\n setIsOpen(true)\n },\n [],\n )\n\n const onCloseVersionUpload = useCallback<VersionUploadContextType['onCloseVersionUpload']>(() => {\n // Clean up pending files\n pendingFiles.forEach((item) => {\n if (item.preview) {\n URL.revokeObjectURL(item.preview)\n }\n })\n setPendingFiles([])\n setForm(defaultFormData)\n setCreatedProductId(null)\n setCreatedVersionId(null)\n setError('')\n setIsSubmitting(false)\n setIsOpen(false)\n setProductId('')\n setFolderId('')\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n setLatestVersionNumber(undefined)\n setLatestVersionId(undefined)\n }, [pendingFiles])\n\n const [createProduct] = useCreateProductMutation()\n const [createVersion] = useCreateVersionMutation()\n\n const onUploadVersion = useCallback<VersionUploadContextType['onUploadVersion']>(\n async (data: FormData) => {\n try {\n if (effectiveProductId) {\n // product already exists (either passed directly or matched by name)\n const versionRes = await createVersionHelper(createVersion, projectName, {\n productId: effectiveProductId,\n version: data.version,\n taskId: taskId || undefined,\n })\n\n // select the new version\n onVersionCreated(effectiveProductId, versionRes.id)\n\n toast.success('Created new version')\n\n return {\n productId: effectiveProductId,\n versionId: versionRes.id,\n }\n } else {\n // product does not exist, create new product with version\n const { product: productRes, version: versionRes } = await createProductAndVersion(\n createProduct,\n createVersion,\n projectName,\n {\n folderId,\n name: data.name,\n productType: data.productType || 'review',\n productBaseType: data.productType || 'review',\n },\n {\n version: data.version,\n taskId: taskId || undefined,\n },\n )\n\n // select the new product and version\n onVersionCreated(productRes.id, versionRes.id)\n\n toast.success('Created new version')\n\n return {\n productId: productRes.id,\n versionId: versionRes.id,\n }\n }\n } catch (error: any) {\n console.error('Error uploading version:', error)\n throw error.message || error\n }\n },\n [onCloseVersionUpload, effectiveProductId, folderId, taskId, projectName],\n )\n\n const extractAndSetVersionFromFiles = useCallback(\n (files: File[]) => {\n // Only extract version if we don't already have a product (new product workflow)\n if (effectiveProductId) return\n\n // Try to extract version from the first file\n const firstFile = files[0]\n if (firstFile) {\n const fileName = parseFilename(firstFile.name)\n const extractedVersion = extractVersionFromFilename(fileName)\n if (extractedVersion && extractedVersion !== form.version) {\n setForm((prev) => ({\n ...prev,\n version: extractedVersion,\n }))\n }\n }\n },\n [effectiveProductId, form.version],\n )\n\n // Fallback order: (1) queried from productId, (2) passed by caller, (3) from matched product name\n const latestVersion =\n version?.version ?? latestVersionNumber ?? matchedProduct?.latestVersion?.version\n\n // Handle form changes\n const handleFormChange = useCallback((key: keyof FormData, value: string | number) => {\n setForm((prev) => ({\n ...prev,\n [key]: value,\n }))\n // Clear any previous validation error when user edits the form\n setError('')\n }, [])\n\n // Handle form submission\n const handleFormSubmit = useCallback(\n async (formData: FormData) => {\n try {\n setIsSubmitting(true)\n setError('')\n\n // validate the form data\n const validation = validateFormDataHelper(formData, latestVersion, !effectiveProductId)\n if (!validation.isValid) {\n throw validation.error\n }\n\n const response = await onUploadVersion(formData)\n\n // Remember last submitted product name for this folder so we can prefill on reopen\n if (folderId) {\n lastSubmittedRef.current = { folderId, productName: formData.name }\n }\n\n // Extract productId and versionId from response\n if (response?.productId) {\n setCreatedProductId(response.productId)\n }\n if (response?.versionId) {\n setCreatedVersionId(response.versionId)\n }\n\n if (pendingFiles.length < 1) {\n setIsSubmitting(false)\n onCloseVersionUpload()\n }\n } catch (error: any) {\n setError(error)\n setIsSubmitting(false)\n }\n },\n [onUploadVersion, pendingFiles.length, onCloseVersionUpload, latestVersion, effectiveProductId],\n )\n\n // Update form when version data changes (only when query is used as fallback)\n useEffect(() => {\n if (!isOpen || latestVersionNumber != null) return\n\n if (version) {\n setForm((prev) => ({ ...prev, version: version.version + 1 }))\n } else {\n setForm(defaultFormData)\n }\n\n return () => {\n setForm(defaultFormData)\n }\n }, [isOpen, version, latestVersionNumber])\n\n // Default product name: prefer last submitted name for same folder, else last folder product\n useEffect(() => {\n if (!isOpen || productId || folderProducts.length === 0) return\n // Only auto-fill if user hasn't changed the name from default\n if (form.name !== defaultFormData.name) return\n\n // Prefer the product name from the last successful submit on this folder\n const lastSubmitted = lastSubmittedRef.current\n if (lastSubmitted && lastSubmitted.folderId === folderId) {\n const exists = folderProducts.some((p) => p.name === lastSubmitted.productName)\n if (exists) {\n setForm((prev) => ({ ...prev, name: lastSubmitted.productName }))\n return\n }\n }\n\n // Fallback: use the last product in the folder list\n const lastProduct = folderProducts[folderProducts.length - 1]\n if (lastProduct) {\n setForm((prev) => ({ ...prev, name: lastProduct.name }))\n }\n }, [isOpen, productId, folderProducts])\n\n // Auto-set version, productType, and task when a matched product is found, reset when match is lost\n useEffect(() => {\n if (!isOpen || productId) return\n\n if (matchedProduct) {\n setForm((prev) => ({\n ...prev,\n productType: matchedProduct.productType,\n ...(matchedProduct.latestVersion && {\n version: matchedProduct.latestVersion.version + 1,\n }),\n }))\n\n const matchedTask = matchedProduct.latestVersion?.task\n if (matchedTask && (userTaskId === null || isTaskAutoLinkedRef.current)) {\n // Auto-link task from matched product's latest version\n setUserTaskId(matchedTask.id)\n setLinkedTask({\n id: matchedTask.id,\n name: matchedTask.name,\n label: matchedTask.label,\n taskType: matchedTask.taskType,\n })\n isTaskAutoLinkedRef.current = true\n } else if (!matchedTask && isTaskAutoLinkedRef.current) {\n // Matched product has no task — clear the auto-linked one\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n }\n } else {\n // Match lost — reset version back to default for new product\n setForm((prev) => ({ ...prev, version: defaultFormData.version }))\n // Clear auto-linked task (only if it was auto-set, not user-chosen)\n if (userTaskId === null || isTaskAutoLinkedRef.current) {\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n }\n }\n }, [isOpen, productId, matchedProduct])\n\n // Wrap setUserTaskId so consumers use a simple string setter\n // Any explicit user action (pick or clear) marks the task as not auto-linked\n const setTaskId = useCallback((id: string) => {\n setUserTaskId(id)\n isTaskAutoLinkedRef.current = false\n }, [])\n\n const value = useMemo(\n () => ({\n productId,\n setProductId,\n folderId,\n taskId,\n linkedTask,\n isLoadingTask,\n setTaskId,\n setLinkedTask,\n setFolderId,\n isOpen,\n projectName,\n latestVersion,\n pendingFiles,\n setPendingFiles,\n onOpenVersionUpload,\n onCloseVersionUpload,\n onUploadVersion,\n extractAndSetVersionFromFiles,\n form,\n setForm,\n isSubmitting,\n error,\n createdProductId,\n createdVersionId,\n handleFormChange,\n handleFormSubmit,\n folderProducts,\n isFolderProductsLoading,\n matchedProduct,\n dispatch,\n }),\n [\n folderId,\n setFolderId,\n productId,\n taskId,\n linkedTask,\n isLoadingTask,\n setTaskId,\n setLinkedTask,\n setProductId,\n isOpen,\n projectName,\n latestVersion,\n pendingFiles,\n setPendingFiles,\n onOpenVersionUpload,\n onCloseVersionUpload,\n onUploadVersion,\n extractAndSetVersionFromFiles,\n form,\n isSubmitting,\n error,\n createdProductId,\n createdVersionId,\n handleFormChange,\n handleFormSubmit,\n folderProducts,\n isFolderProductsLoading,\n matchedProduct,\n dispatch,\n ],\n )\n\n return <VersionUploadContext.Provider value={value}>{children}</VersionUploadContext.Provider>\n}\n\nexport const useVersionUploadContext = (): VersionUploadContextType => {\n const context = useContext(VersionUploadContext)\n if (context === undefined) {\n throw new Error('useVersionUploadContext must be used within a VersionUploadProvider')\n }\n return context\n}\n\n// Same as useVersionUploadContext but returns null instead of throwing when no provider is mounted.\n// Use in shared components that may render under pages without a VersionUploadProvider.\nexport const useOptionalVersionUploadContext = (): VersionUploadContextType | null => {\n return useContext(VersionUploadContext) ?? null\n}\n"],"names":["VersionUploadContext","createContext","defaultFormData","VersionUploadProvider","children","projectName","onVersionCreated","dispatch","folderId","setFolderId","useState","productId","setProductId","userTaskId","setUserTaskId","linkedTask","setLinkedTask","isOpen","setIsOpen","pendingFiles","setPendingFiles","form","setForm","isSubmitting","setIsSubmitting","error","setError","createdProductId","setCreatedProductId","createdVersionId","setCreatedVersionId","latestVersionNumber","setLatestVersionNumber","latestVersionId","setLatestVersionId","isTaskAutoLinkedRef","useRef","lastSubmittedRef","folderProducts","isFolderProductsLoading","useGetFolderProductsQuery","matchedProduct","useMemo","p","effectiveProductId","version","useGetLatestProductVersionQuery","latestVersionData","useGetVersionQuery","taskId","isLoadingTask","onOpenVersionUpload","useCallback","prev","onCloseVersionUpload","item","createProduct","useCreateProductMutation","createVersion","useCreateVersionMutation","onUploadVersion","data","versionRes","createVersionHelper","toast","productRes","createProductAndVersion","extractAndSetVersionFromFiles","files","firstFile","fileName","parseFilename","extractedVersion","extractVersionFromFilename","latestVersion","handleFormChange","key","value","handleFormSubmit","formData","validation","validateFormDataHelper","response","useEffect","lastSubmitted","lastProduct","matchedTask","setTaskId","id","jsx","useVersionUploadContext","context","useContext","useOptionalVersionUploadContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VersionUploadContext.cjs.js","sources":["../../../../../../src/components/VersionUploader/context/VersionUploadContext.tsx"],"sourcesContent":["import {\n useCreateVersionMutation,\n useCreateProductMutation,\n useGetLatestProductVersionQuery,\n useGetVersionQuery,\n useGetFolderProductsQuery,\n} from '@shared/api'\nimport type { FolderProduct } from '@shared/api'\nimport React, {\n createContext,\n useContext,\n useState,\n useRef,\n ReactNode,\n useMemo,\n useCallback,\n useEffect,\n} from 'react'\nimport { extractVersionFromFilename } from '@shared/util'\nimport { toast } from 'react-toastify'\nimport {\n validateFormData as validateFormDataHelper,\n createProductAndVersion,\n createVersionHelper,\n} from '@shared/util/versionUploadHelpers'\nimport { parseFilename } from '@shared/components/ReviewablesList'\n\nexport interface FormData {\n version: number\n name: string\n productType: string\n}\nexport interface LinkedTask {\n id: string\n name: string\n label?: string | null\n taskType: string\n}\n\ninterface VersionUploadContextType {\n productId: string\n folderId: string\n taskId: string\n linkedTask: LinkedTask | null\n isLoadingTask: boolean\n setTaskId: (taskId: string) => void\n setLinkedTask: (task: LinkedTask | null) => void\n setProductId: (productId: string) => void\n setFolderId: (folderId: string) => void\n isOpen: boolean\n projectName: string\n latestVersion: number | undefined\n pendingFiles: Array<{ file: File; preview?: string }>\n setPendingFiles: React.Dispatch<React.SetStateAction<Array<{ file: File; preview?: string }>>>\n extractAndSetVersionFromFiles: (files: File[]) => void\n form: FormData\n setForm: React.Dispatch<React.SetStateAction<FormData>>\n isSubmitting: boolean\n error: string\n createdProductId: string | null\n createdVersionId: string | null\n onOpenVersionUpload: (params: {\n productId?: string\n folderId?: string\n taskId?: string\n linkedTask?: LinkedTask\n latestVersionNumber?: number\n latestVersionId?: string\n }) => void\n onCloseVersionUpload: () => void\n onUploadVersion: (data: FormData) => Promise<{ productId: string; versionId: string }>\n handleFormChange: (key: keyof FormData, value: string | number) => void\n handleFormSubmit: (formData: FormData) => Promise<void>\n folderProducts: FolderProduct[]\n isFolderProductsLoading: boolean\n matchedProduct: FolderProduct | undefined\n // pass through\n dispatch: any\n}\n\nconst VersionUploadContext = createContext<VersionUploadContextType | undefined>(undefined)\n\ninterface VersionUploadProviderProps {\n children: ReactNode\n projectName: string\n onVersionCreated: (productId: string, versionId: string) => void\n dispatch: any\n}\n\nconst defaultFormData: FormData = {\n version: 1,\n name: 'review',\n productType: 'review',\n}\n\nexport const VersionUploadProvider: React.FC<VersionUploadProviderProps> = ({\n children,\n projectName,\n onVersionCreated,\n dispatch,\n}) => {\n const [folderId, setFolderId] = useState<string>('')\n const [productId, setProductId] = useState<string>('')\n // optional task to link the version to\n // null = not set by user (auto-resolve from version), '' = explicitly cleared, 'id' = explicitly set\n const [userTaskId, setUserTaskId] = useState<string | null>(null)\n const [linkedTask, setLinkedTask] = useState<LinkedTask | null>(null)\n const [isOpen, setIsOpen] = useState<boolean>(false)\n const [pendingFiles, setPendingFiles] = useState<Array<{ file: File; preview?: string }>>([])\n const [form, setForm] = useState<FormData>(defaultFormData)\n const [isSubmitting, setIsSubmitting] = useState(false)\n const [error, setError] = useState<string>('')\n const [createdProductId, setCreatedProductId] = useState<string | null>(null)\n const [createdVersionId, setCreatedVersionId] = useState<string | null>(null)\n // Stores the latest version number passed from the caller (e.g. VP page)\n // so we can skip the GetLatestProductVersion query when we already know it\n const [latestVersionNumber, setLatestVersionNumber] = useState<number | undefined>(undefined)\n // Stores the latest version ID so we can fetch its task when not already known\n const [latestVersionId, setLatestVersionId] = useState<string | undefined>(undefined)\n // Tracks whether the current task was auto-linked from a matched product (not explicitly user-chosen)\n const isTaskAutoLinkedRef = useRef(false)\n // Remember the last submitted product name per folder so we can prefill on reopen\n const lastSubmittedRef = useRef<{ folderId: string; productName: string } | null>(null)\n\n // Fetch products for the folder (only when no productId — Overview/Browser flow)\n const { data: folderProducts = [], isLoading: isFolderProductsLoading } =\n useGetFolderProductsQuery(\n { projectName, folderId },\n { skip: !folderId || !isOpen || !!productId },\n )\n\n // Match typed product name against existing folder products\n const matchedProduct = useMemo(() => {\n if (productId || !form.name || folderProducts.length === 0) return undefined\n return folderProducts.find((p) => p.name === form.name)\n }, [productId, form.name, folderProducts])\n\n const effectiveProductId = productId || matchedProduct?.id || ''\n\n const { currentData: version } = useGetLatestProductVersionQuery(\n {\n projectName,\n productId,\n },\n { skip: !productId || !isOpen || latestVersionNumber != null },\n )\n\n // Fetch the latest version to discover its taskId (e.g. when versions are collapsed)\n const { data: latestVersionData } = useGetVersionQuery(\n { projectName, versionId: latestVersionId! },\n { skip: !latestVersionId || !isOpen || userTaskId !== null },\n )\n\n // Derive effective taskId: user's explicit choice takes priority, then auto-resolved from version\n const taskId = userTaskId ?? latestVersionData?.taskId ?? ''\n const isLoadingTask = !!(latestVersionId && userTaskId === null && !latestVersionData)\n\n const onOpenVersionUpload = useCallback<VersionUploadContextType['onOpenVersionUpload']>(\n ({ productId, folderId, taskId, linkedTask, latestVersionNumber, latestVersionId }) => {\n setProductId(productId || '')\n setFolderId(folderId || '')\n setUserTaskId(taskId || null)\n setLinkedTask(linkedTask || null)\n setLatestVersionNumber(latestVersionNumber)\n setLatestVersionId(latestVersionId)\n\n // Set initial form state in a single update\n setForm((prev) => ({\n ...prev,\n ...(latestVersionNumber != null ? { version: latestVersionNumber + 1 } : {}),\n }))\n setIsOpen(true)\n },\n [],\n )\n\n const onCloseVersionUpload = useCallback<VersionUploadContextType['onCloseVersionUpload']>(() => {\n // Clean up pending files\n pendingFiles.forEach((item) => {\n if (item.preview) {\n URL.revokeObjectURL(item.preview)\n }\n })\n setPendingFiles([])\n setForm(defaultFormData)\n setCreatedProductId(null)\n setCreatedVersionId(null)\n setError('')\n setIsSubmitting(false)\n setIsOpen(false)\n setProductId('')\n setFolderId('')\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n setLatestVersionNumber(undefined)\n setLatestVersionId(undefined)\n }, [pendingFiles])\n\n const [createProduct] = useCreateProductMutation()\n const [createVersion] = useCreateVersionMutation()\n\n const onUploadVersion = useCallback<VersionUploadContextType['onUploadVersion']>(\n async (data: FormData) => {\n try {\n if (effectiveProductId) {\n // product already exists (either passed directly or matched by name)\n const versionRes = await createVersionHelper(createVersion, projectName, {\n productId: effectiveProductId,\n version: data.version,\n taskId: taskId || undefined,\n })\n\n // select the new version\n onVersionCreated(effectiveProductId, versionRes.id)\n\n toast.success('Created new version')\n\n return {\n productId: effectiveProductId,\n versionId: versionRes.id,\n }\n } else {\n // product does not exist, create new product with version\n const { product: productRes, version: versionRes } = await createProductAndVersion(\n createProduct,\n createVersion,\n projectName,\n {\n folderId,\n name: data.name,\n productType: data.productType || 'review',\n productBaseType: data.productType || 'review',\n },\n {\n version: data.version,\n taskId: taskId || undefined,\n },\n )\n\n // select the new product and version\n onVersionCreated(productRes.id, versionRes.id)\n\n toast.success('Created new version')\n\n return {\n productId: productRes.id,\n versionId: versionRes.id,\n }\n }\n } catch (error: any) {\n console.error('Error uploading version:', error)\n throw error.message || error\n }\n },\n [onCloseVersionUpload, effectiveProductId, folderId, taskId, projectName],\n )\n\n const extractAndSetVersionFromFiles = useCallback(\n (files: File[]) => {\n // Only extract version if we don't already have a product (new product workflow)\n if (effectiveProductId) return\n\n // Try to extract version from the first file\n const firstFile = files[0]\n if (firstFile) {\n const fileName = parseFilename(firstFile.name)\n const extractedVersion = extractVersionFromFilename(fileName)\n if (extractedVersion && extractedVersion !== form.version) {\n setForm((prev) => ({\n ...prev,\n version: extractedVersion,\n }))\n }\n }\n },\n [effectiveProductId, form.version],\n )\n\n // Fallback order: (1) queried from productId, (2) passed by caller, (3) from matched product name\n const latestVersion =\n version?.version ?? latestVersionNumber ?? matchedProduct?.latestVersion?.version\n\n // Handle form changes\n const handleFormChange = useCallback((key: keyof FormData, value: string | number) => {\n setForm((prev) => ({\n ...prev,\n [key]: value,\n }))\n // Clear any previous validation error when user edits the form\n setError('')\n }, [])\n\n // Handle form submission\n const handleFormSubmit = useCallback(\n async (formData: FormData) => {\n try {\n setIsSubmitting(true)\n setError('')\n\n // validate the form data\n const validation = validateFormDataHelper(formData, latestVersion, !effectiveProductId)\n if (!validation.isValid) {\n throw validation.error\n }\n\n const response = await onUploadVersion(formData)\n\n // Remember last submitted product name for this folder so we can prefill on reopen\n if (folderId) {\n lastSubmittedRef.current = { folderId, productName: formData.name }\n }\n\n // Extract productId and versionId from response\n if (response?.productId) {\n setCreatedProductId(response.productId)\n }\n if (response?.versionId) {\n setCreatedVersionId(response.versionId)\n }\n\n if (pendingFiles.length < 1) {\n setIsSubmitting(false)\n onCloseVersionUpload()\n }\n } catch (error: any) {\n setError(error)\n setIsSubmitting(false)\n }\n },\n [onUploadVersion, pendingFiles.length, onCloseVersionUpload, latestVersion, effectiveProductId],\n )\n\n // Update form when version data changes (only when query is used as fallback)\n useEffect(() => {\n if (!isOpen || latestVersionNumber != null) return\n\n if (version) {\n setForm((prev) => ({ ...prev, version: version.version + 1 }))\n } else {\n setForm(defaultFormData)\n }\n\n return () => {\n setForm(defaultFormData)\n }\n }, [isOpen, version, latestVersionNumber])\n\n // Default product name: prefer last submitted name for same folder, else last folder product\n useEffect(() => {\n if (!isOpen || productId || folderProducts.length === 0) return\n // Only auto-fill if user hasn't changed the name from default\n if (form.name !== defaultFormData.name) return\n\n // Prefer the product name from the last successful submit on this folder\n const lastSubmitted = lastSubmittedRef.current\n if (lastSubmitted && lastSubmitted.folderId === folderId) {\n const exists = folderProducts.some((p) => p.name === lastSubmitted.productName)\n if (exists) {\n setForm((prev) => ({ ...prev, name: lastSubmitted.productName }))\n return\n }\n }\n\n // Fallback: use the last product in the folder list\n const lastProduct = folderProducts[folderProducts.length - 1]\n if (lastProduct) {\n setForm((prev) => ({ ...prev, name: lastProduct.name }))\n }\n }, [isOpen, productId, folderProducts])\n\n // Auto-set version, productType, and task when a matched product is found, reset when match is lost\n useEffect(() => {\n if (!isOpen || productId) return\n\n if (matchedProduct) {\n setForm((prev) => ({\n ...prev,\n productType: matchedProduct.productType,\n ...(matchedProduct.latestVersion && {\n version: matchedProduct.latestVersion.version + 1,\n }),\n }))\n\n const matchedTask = matchedProduct.latestVersion?.task\n if (matchedTask && (userTaskId === null || isTaskAutoLinkedRef.current)) {\n // Auto-link task from matched product's latest version\n setUserTaskId(matchedTask.id)\n setLinkedTask({\n id: matchedTask.id,\n name: matchedTask.name,\n label: matchedTask.label,\n taskType: matchedTask.taskType,\n })\n isTaskAutoLinkedRef.current = true\n } else if (!matchedTask && isTaskAutoLinkedRef.current) {\n // Matched product has no task — clear the auto-linked one\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n }\n } else {\n // Match lost — reset version back to default for new product\n setForm((prev) => ({ ...prev, version: defaultFormData.version }))\n // Clear auto-linked task (only if it was auto-set, not user-chosen)\n if (userTaskId === null || isTaskAutoLinkedRef.current) {\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n }\n }\n }, [isOpen, productId, matchedProduct])\n\n // Wrap setUserTaskId so consumers use a simple string setter\n // Any explicit user action (pick or clear) marks the task as not auto-linked\n const setTaskId = useCallback((id: string) => {\n setUserTaskId(id)\n isTaskAutoLinkedRef.current = false\n }, [])\n\n const value = useMemo(\n () => ({\n productId,\n setProductId,\n folderId,\n taskId,\n linkedTask,\n isLoadingTask,\n setTaskId,\n setLinkedTask,\n setFolderId,\n isOpen,\n projectName,\n latestVersion,\n pendingFiles,\n setPendingFiles,\n onOpenVersionUpload,\n onCloseVersionUpload,\n onUploadVersion,\n extractAndSetVersionFromFiles,\n form,\n setForm,\n isSubmitting,\n error,\n createdProductId,\n createdVersionId,\n handleFormChange,\n handleFormSubmit,\n folderProducts,\n isFolderProductsLoading,\n matchedProduct,\n dispatch,\n }),\n [\n folderId,\n setFolderId,\n productId,\n taskId,\n linkedTask,\n isLoadingTask,\n setTaskId,\n setLinkedTask,\n setProductId,\n isOpen,\n projectName,\n latestVersion,\n pendingFiles,\n setPendingFiles,\n onOpenVersionUpload,\n onCloseVersionUpload,\n onUploadVersion,\n extractAndSetVersionFromFiles,\n form,\n isSubmitting,\n error,\n createdProductId,\n createdVersionId,\n handleFormChange,\n handleFormSubmit,\n folderProducts,\n isFolderProductsLoading,\n matchedProduct,\n dispatch,\n ],\n )\n\n return <VersionUploadContext.Provider value={value}>{children}</VersionUploadContext.Provider>\n}\n\nexport const useVersionUploadContext = (): VersionUploadContextType => {\n const context = useContext(VersionUploadContext)\n if (context === undefined) {\n throw new Error('useVersionUploadContext must be used within a VersionUploadProvider')\n }\n return context\n}\n\n// Same as useVersionUploadContext but returns null instead of throwing when no provider is mounted.\n// Use in shared components that may render under pages without a VersionUploadProvider.\nexport const useOptionalVersionUploadContext = (): VersionUploadContextType | null => {\n return useContext(VersionUploadContext) ?? null\n}\n"],"names":["VersionUploadContext","createContext","defaultFormData","VersionUploadProvider","children","projectName","onVersionCreated","dispatch","folderId","setFolderId","useState","productId","setProductId","userTaskId","setUserTaskId","linkedTask","setLinkedTask","isOpen","setIsOpen","pendingFiles","setPendingFiles","form","setForm","isSubmitting","setIsSubmitting","error","setError","createdProductId","setCreatedProductId","createdVersionId","setCreatedVersionId","latestVersionNumber","setLatestVersionNumber","latestVersionId","setLatestVersionId","isTaskAutoLinkedRef","useRef","lastSubmittedRef","folderProducts","isFolderProductsLoading","useGetFolderProductsQuery","matchedProduct","useMemo","p","effectiveProductId","version","useGetLatestProductVersionQuery","latestVersionData","useGetVersionQuery","taskId","isLoadingTask","onOpenVersionUpload","useCallback","prev","onCloseVersionUpload","item","createProduct","useCreateProductMutation","createVersion","useCreateVersionMutation","onUploadVersion","data","versionRes","createVersionHelper","toast","productRes","createProductAndVersion","extractAndSetVersionFromFiles","files","firstFile","fileName","parseFilename","extractedVersion","extractVersionFromFilename","latestVersion","handleFormChange","key","value","handleFormSubmit","formData","validation","validateFormDataHelper","response","useEffect","lastSubmitted","lastProduct","matchedTask","setTaskId","id","jsx","useVersionUploadContext","context","useContext","useOptionalVersionUploadContext"],"mappings":"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"}
|
|
@@ -194,7 +194,7 @@ import "../../../containers/Feed/components/ActivityVersionReview/ActivityVersio
|
|
|
194
194
|
import "../../../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js";
|
|
195
195
|
import "../../../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js";
|
|
196
196
|
import "../../../containers/Feed/Feed.styled.es.js";
|
|
197
|
-
import "../../../containers/
|
|
197
|
+
import "../../../containers/Feed/components/FeedSearchFilter.es.js";
|
|
198
198
|
import "@tanstack/react-virtual";
|
|
199
199
|
import "@tanstack/react-table";
|
|
200
200
|
import "../../../containers/ProjectTreeTable/widgets/CollapsedWidget.es.js";
|
|
@@ -239,6 +239,8 @@ import "../../../containers/DetailsPanel/components/DetailsPanelHeader/DetailsPa
|
|
|
239
239
|
import "../../PlayableIcon/PlayableIcon.es.js";
|
|
240
240
|
import "../../../containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js";
|
|
241
241
|
import "../../../containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js";
|
|
242
|
+
import "../../../containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
|
|
243
|
+
import "../../../containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js";
|
|
242
244
|
import "../../../containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.es.js";
|
|
243
245
|
import "../../../containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.es.js";
|
|
244
246
|
import "../../../containers/Actions/Actions.styled.es.js";
|
|
@@ -268,6 +270,7 @@ import "../../ProjectTableSettings/ProjectTableSettings.es.js";
|
|
|
268
270
|
import "../../SizeSlider/SizeSlider.es.js";
|
|
269
271
|
import "../../ReviewableCard/ReviewableCard.es.js";
|
|
270
272
|
import "../../ReviewableProgressCard/ReviewableProgressCard.styled.es.js";
|
|
273
|
+
import "../../SearchFilter/CustomDateRangeDialog.es.js";
|
|
271
274
|
import "../../SettingsPanel/SettingsPanel.es.js";
|
|
272
275
|
import "../../SettingsPanel/SettingsPanelItemTemplate.es.js";
|
|
273
276
|
import "../../ShareOptionIcon/ShareOptionIcon.es.js";
|
|
@@ -290,7 +293,7 @@ const G = Tt(void 0), T = {
|
|
|
290
293
|
version: 1,
|
|
291
294
|
name: "review",
|
|
292
295
|
productType: "review"
|
|
293
|
-
},
|
|
296
|
+
}, Xm = ({
|
|
294
297
|
children: y,
|
|
295
298
|
projectName: u,
|
|
296
299
|
onVersionCreated: M,
|
|
@@ -497,15 +500,15 @@ const G = Tt(void 0), T = {
|
|
|
497
500
|
]
|
|
498
501
|
);
|
|
499
502
|
return /* @__PURE__ */ ct.jsx(G.Provider, { value: at, children: y });
|
|
500
|
-
},
|
|
503
|
+
}, Ym = () => {
|
|
501
504
|
const y = nt(G);
|
|
502
505
|
if (y === void 0)
|
|
503
506
|
throw new Error("useVersionUploadContext must be used within a VersionUploadProvider");
|
|
504
507
|
return y;
|
|
505
|
-
},
|
|
508
|
+
}, Zm = () => nt(G) ?? null;
|
|
506
509
|
export {
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
+
Xm as VersionUploadProvider,
|
|
511
|
+
Zm as useOptionalVersionUploadContext,
|
|
512
|
+
Ym as useVersionUploadContext
|
|
510
513
|
};
|
|
511
514
|
//# sourceMappingURL=VersionUploadContext.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VersionUploadContext.es.js","sources":["../../../../../../src/components/VersionUploader/context/VersionUploadContext.tsx"],"sourcesContent":["import {\n useCreateVersionMutation,\n useCreateProductMutation,\n useGetLatestProductVersionQuery,\n useGetVersionQuery,\n useGetFolderProductsQuery,\n} from '@shared/api'\nimport type { FolderProduct } from '@shared/api'\nimport React, {\n createContext,\n useContext,\n useState,\n useRef,\n ReactNode,\n useMemo,\n useCallback,\n useEffect,\n} from 'react'\nimport { extractVersionFromFilename } from '@shared/util'\nimport { toast } from 'react-toastify'\nimport {\n validateFormData as validateFormDataHelper,\n createProductAndVersion,\n createVersionHelper,\n} from '@shared/util/versionUploadHelpers'\nimport { parseFilename } from '@shared/components/ReviewablesList'\n\nexport interface FormData {\n version: number\n name: string\n productType: string\n}\nexport interface LinkedTask {\n id: string\n name: string\n label?: string | null\n taskType: string\n}\n\ninterface VersionUploadContextType {\n productId: string\n folderId: string\n taskId: string\n linkedTask: LinkedTask | null\n isLoadingTask: boolean\n setTaskId: (taskId: string) => void\n setLinkedTask: (task: LinkedTask | null) => void\n setProductId: (productId: string) => void\n setFolderId: (folderId: string) => void\n isOpen: boolean\n projectName: string\n latestVersion: number | undefined\n pendingFiles: Array<{ file: File; preview?: string }>\n setPendingFiles: React.Dispatch<React.SetStateAction<Array<{ file: File; preview?: string }>>>\n extractAndSetVersionFromFiles: (files: File[]) => void\n form: FormData\n setForm: React.Dispatch<React.SetStateAction<FormData>>\n isSubmitting: boolean\n error: string\n createdProductId: string | null\n createdVersionId: string | null\n onOpenVersionUpload: (params: {\n productId?: string\n folderId?: string\n taskId?: string\n linkedTask?: LinkedTask\n latestVersionNumber?: number\n latestVersionId?: string\n }) => void\n onCloseVersionUpload: () => void\n onUploadVersion: (data: FormData) => Promise<{ productId: string; versionId: string }>\n handleFormChange: (key: keyof FormData, value: string | number) => void\n handleFormSubmit: (formData: FormData) => Promise<void>\n folderProducts: FolderProduct[]\n isFolderProductsLoading: boolean\n matchedProduct: FolderProduct | undefined\n // pass through\n dispatch: any\n}\n\nconst VersionUploadContext = createContext<VersionUploadContextType | undefined>(undefined)\n\ninterface VersionUploadProviderProps {\n children: ReactNode\n projectName: string\n onVersionCreated: (productId: string, versionId: string) => void\n dispatch: any\n}\n\nconst defaultFormData: FormData = {\n version: 1,\n name: 'review',\n productType: 'review',\n}\n\nexport const VersionUploadProvider: React.FC<VersionUploadProviderProps> = ({\n children,\n projectName,\n onVersionCreated,\n dispatch,\n}) => {\n const [folderId, setFolderId] = useState<string>('')\n const [productId, setProductId] = useState<string>('')\n // optional task to link the version to\n // null = not set by user (auto-resolve from version), '' = explicitly cleared, 'id' = explicitly set\n const [userTaskId, setUserTaskId] = useState<string | null>(null)\n const [linkedTask, setLinkedTask] = useState<LinkedTask | null>(null)\n const [isOpen, setIsOpen] = useState<boolean>(false)\n const [pendingFiles, setPendingFiles] = useState<Array<{ file: File; preview?: string }>>([])\n const [form, setForm] = useState<FormData>(defaultFormData)\n const [isSubmitting, setIsSubmitting] = useState(false)\n const [error, setError] = useState<string>('')\n const [createdProductId, setCreatedProductId] = useState<string | null>(null)\n const [createdVersionId, setCreatedVersionId] = useState<string | null>(null)\n // Stores the latest version number passed from the caller (e.g. VP page)\n // so we can skip the GetLatestProductVersion query when we already know it\n const [latestVersionNumber, setLatestVersionNumber] = useState<number | undefined>(undefined)\n // Stores the latest version ID so we can fetch its task when not already known\n const [latestVersionId, setLatestVersionId] = useState<string | undefined>(undefined)\n // Tracks whether the current task was auto-linked from a matched product (not explicitly user-chosen)\n const isTaskAutoLinkedRef = useRef(false)\n // Remember the last submitted product name per folder so we can prefill on reopen\n const lastSubmittedRef = useRef<{ folderId: string; productName: string } | null>(null)\n\n // Fetch products for the folder (only when no productId — Overview/Browser flow)\n const { data: folderProducts = [], isLoading: isFolderProductsLoading } =\n useGetFolderProductsQuery(\n { projectName, folderId },\n { skip: !folderId || !isOpen || !!productId },\n )\n\n // Match typed product name against existing folder products\n const matchedProduct = useMemo(() => {\n if (productId || !form.name || folderProducts.length === 0) return undefined\n return folderProducts.find((p) => p.name === form.name)\n }, [productId, form.name, folderProducts])\n\n const effectiveProductId = productId || matchedProduct?.id || ''\n\n const { currentData: version } = useGetLatestProductVersionQuery(\n {\n projectName,\n productId,\n },\n { skip: !productId || !isOpen || latestVersionNumber != null },\n )\n\n // Fetch the latest version to discover its taskId (e.g. when versions are collapsed)\n const { data: latestVersionData } = useGetVersionQuery(\n { projectName, versionId: latestVersionId! },\n { skip: !latestVersionId || !isOpen || userTaskId !== null },\n )\n\n // Derive effective taskId: user's explicit choice takes priority, then auto-resolved from version\n const taskId = userTaskId ?? latestVersionData?.taskId ?? ''\n const isLoadingTask = !!(latestVersionId && userTaskId === null && !latestVersionData)\n\n const onOpenVersionUpload = useCallback<VersionUploadContextType['onOpenVersionUpload']>(\n ({ productId, folderId, taskId, linkedTask, latestVersionNumber, latestVersionId }) => {\n setProductId(productId || '')\n setFolderId(folderId || '')\n setUserTaskId(taskId || null)\n setLinkedTask(linkedTask || null)\n setLatestVersionNumber(latestVersionNumber)\n setLatestVersionId(latestVersionId)\n\n // Set initial form state in a single update\n setForm((prev) => ({\n ...prev,\n ...(latestVersionNumber != null ? { version: latestVersionNumber + 1 } : {}),\n }))\n setIsOpen(true)\n },\n [],\n )\n\n const onCloseVersionUpload = useCallback<VersionUploadContextType['onCloseVersionUpload']>(() => {\n // Clean up pending files\n pendingFiles.forEach((item) => {\n if (item.preview) {\n URL.revokeObjectURL(item.preview)\n }\n })\n setPendingFiles([])\n setForm(defaultFormData)\n setCreatedProductId(null)\n setCreatedVersionId(null)\n setError('')\n setIsSubmitting(false)\n setIsOpen(false)\n setProductId('')\n setFolderId('')\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n setLatestVersionNumber(undefined)\n setLatestVersionId(undefined)\n }, [pendingFiles])\n\n const [createProduct] = useCreateProductMutation()\n const [createVersion] = useCreateVersionMutation()\n\n const onUploadVersion = useCallback<VersionUploadContextType['onUploadVersion']>(\n async (data: FormData) => {\n try {\n if (effectiveProductId) {\n // product already exists (either passed directly or matched by name)\n const versionRes = await createVersionHelper(createVersion, projectName, {\n productId: effectiveProductId,\n version: data.version,\n taskId: taskId || undefined,\n })\n\n // select the new version\n onVersionCreated(effectiveProductId, versionRes.id)\n\n toast.success('Created new version')\n\n return {\n productId: effectiveProductId,\n versionId: versionRes.id,\n }\n } else {\n // product does not exist, create new product with version\n const { product: productRes, version: versionRes } = await createProductAndVersion(\n createProduct,\n createVersion,\n projectName,\n {\n folderId,\n name: data.name,\n productType: data.productType || 'review',\n productBaseType: data.productType || 'review',\n },\n {\n version: data.version,\n taskId: taskId || undefined,\n },\n )\n\n // select the new product and version\n onVersionCreated(productRes.id, versionRes.id)\n\n toast.success('Created new version')\n\n return {\n productId: productRes.id,\n versionId: versionRes.id,\n }\n }\n } catch (error: any) {\n console.error('Error uploading version:', error)\n throw error.message || error\n }\n },\n [onCloseVersionUpload, effectiveProductId, folderId, taskId, projectName],\n )\n\n const extractAndSetVersionFromFiles = useCallback(\n (files: File[]) => {\n // Only extract version if we don't already have a product (new product workflow)\n if (effectiveProductId) return\n\n // Try to extract version from the first file\n const firstFile = files[0]\n if (firstFile) {\n const fileName = parseFilename(firstFile.name)\n const extractedVersion = extractVersionFromFilename(fileName)\n if (extractedVersion && extractedVersion !== form.version) {\n setForm((prev) => ({\n ...prev,\n version: extractedVersion,\n }))\n }\n }\n },\n [effectiveProductId, form.version],\n )\n\n // Fallback order: (1) queried from productId, (2) passed by caller, (3) from matched product name\n const latestVersion =\n version?.version ?? latestVersionNumber ?? matchedProduct?.latestVersion?.version\n\n // Handle form changes\n const handleFormChange = useCallback((key: keyof FormData, value: string | number) => {\n setForm((prev) => ({\n ...prev,\n [key]: value,\n }))\n // Clear any previous validation error when user edits the form\n setError('')\n }, [])\n\n // Handle form submission\n const handleFormSubmit = useCallback(\n async (formData: FormData) => {\n try {\n setIsSubmitting(true)\n setError('')\n\n // validate the form data\n const validation = validateFormDataHelper(formData, latestVersion, !effectiveProductId)\n if (!validation.isValid) {\n throw validation.error\n }\n\n const response = await onUploadVersion(formData)\n\n // Remember last submitted product name for this folder so we can prefill on reopen\n if (folderId) {\n lastSubmittedRef.current = { folderId, productName: formData.name }\n }\n\n // Extract productId and versionId from response\n if (response?.productId) {\n setCreatedProductId(response.productId)\n }\n if (response?.versionId) {\n setCreatedVersionId(response.versionId)\n }\n\n if (pendingFiles.length < 1) {\n setIsSubmitting(false)\n onCloseVersionUpload()\n }\n } catch (error: any) {\n setError(error)\n setIsSubmitting(false)\n }\n },\n [onUploadVersion, pendingFiles.length, onCloseVersionUpload, latestVersion, effectiveProductId],\n )\n\n // Update form when version data changes (only when query is used as fallback)\n useEffect(() => {\n if (!isOpen || latestVersionNumber != null) return\n\n if (version) {\n setForm((prev) => ({ ...prev, version: version.version + 1 }))\n } else {\n setForm(defaultFormData)\n }\n\n return () => {\n setForm(defaultFormData)\n }\n }, [isOpen, version, latestVersionNumber])\n\n // Default product name: prefer last submitted name for same folder, else last folder product\n useEffect(() => {\n if (!isOpen || productId || folderProducts.length === 0) return\n // Only auto-fill if user hasn't changed the name from default\n if (form.name !== defaultFormData.name) return\n\n // Prefer the product name from the last successful submit on this folder\n const lastSubmitted = lastSubmittedRef.current\n if (lastSubmitted && lastSubmitted.folderId === folderId) {\n const exists = folderProducts.some((p) => p.name === lastSubmitted.productName)\n if (exists) {\n setForm((prev) => ({ ...prev, name: lastSubmitted.productName }))\n return\n }\n }\n\n // Fallback: use the last product in the folder list\n const lastProduct = folderProducts[folderProducts.length - 1]\n if (lastProduct) {\n setForm((prev) => ({ ...prev, name: lastProduct.name }))\n }\n }, [isOpen, productId, folderProducts])\n\n // Auto-set version, productType, and task when a matched product is found, reset when match is lost\n useEffect(() => {\n if (!isOpen || productId) return\n\n if (matchedProduct) {\n setForm((prev) => ({\n ...prev,\n productType: matchedProduct.productType,\n ...(matchedProduct.latestVersion && {\n version: matchedProduct.latestVersion.version + 1,\n }),\n }))\n\n const matchedTask = matchedProduct.latestVersion?.task\n if (matchedTask && (userTaskId === null || isTaskAutoLinkedRef.current)) {\n // Auto-link task from matched product's latest version\n setUserTaskId(matchedTask.id)\n setLinkedTask({\n id: matchedTask.id,\n name: matchedTask.name,\n label: matchedTask.label,\n taskType: matchedTask.taskType,\n })\n isTaskAutoLinkedRef.current = true\n } else if (!matchedTask && isTaskAutoLinkedRef.current) {\n // Matched product has no task — clear the auto-linked one\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n }\n } else {\n // Match lost — reset version back to default for new product\n setForm((prev) => ({ ...prev, version: defaultFormData.version }))\n // Clear auto-linked task (only if it was auto-set, not user-chosen)\n if (userTaskId === null || isTaskAutoLinkedRef.current) {\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n }\n }\n }, [isOpen, productId, matchedProduct])\n\n // Wrap setUserTaskId so consumers use a simple string setter\n // Any explicit user action (pick or clear) marks the task as not auto-linked\n const setTaskId = useCallback((id: string) => {\n setUserTaskId(id)\n isTaskAutoLinkedRef.current = false\n }, [])\n\n const value = useMemo(\n () => ({\n productId,\n setProductId,\n folderId,\n taskId,\n linkedTask,\n isLoadingTask,\n setTaskId,\n setLinkedTask,\n setFolderId,\n isOpen,\n projectName,\n latestVersion,\n pendingFiles,\n setPendingFiles,\n onOpenVersionUpload,\n onCloseVersionUpload,\n onUploadVersion,\n extractAndSetVersionFromFiles,\n form,\n setForm,\n isSubmitting,\n error,\n createdProductId,\n createdVersionId,\n handleFormChange,\n handleFormSubmit,\n folderProducts,\n isFolderProductsLoading,\n matchedProduct,\n dispatch,\n }),\n [\n folderId,\n setFolderId,\n productId,\n taskId,\n linkedTask,\n isLoadingTask,\n setTaskId,\n setLinkedTask,\n setProductId,\n isOpen,\n projectName,\n latestVersion,\n pendingFiles,\n setPendingFiles,\n onOpenVersionUpload,\n onCloseVersionUpload,\n onUploadVersion,\n extractAndSetVersionFromFiles,\n form,\n isSubmitting,\n error,\n createdProductId,\n createdVersionId,\n handleFormChange,\n handleFormSubmit,\n folderProducts,\n isFolderProductsLoading,\n matchedProduct,\n dispatch,\n ],\n )\n\n return <VersionUploadContext.Provider value={value}>{children}</VersionUploadContext.Provider>\n}\n\nexport const useVersionUploadContext = (): VersionUploadContextType => {\n const context = useContext(VersionUploadContext)\n if (context === undefined) {\n throw new Error('useVersionUploadContext must be used within a VersionUploadProvider')\n }\n return context\n}\n\n// Same as useVersionUploadContext but returns null instead of throwing when no provider is mounted.\n// Use in shared components that may render under pages without a VersionUploadProvider.\nexport const useOptionalVersionUploadContext = (): VersionUploadContextType | null => {\n return useContext(VersionUploadContext) ?? null\n}\n"],"names":["VersionUploadContext","createContext","defaultFormData","VersionUploadProvider","children","projectName","onVersionCreated","dispatch","folderId","setFolderId","useState","productId","setProductId","userTaskId","setUserTaskId","linkedTask","setLinkedTask","isOpen","setIsOpen","pendingFiles","setPendingFiles","form","setForm","isSubmitting","setIsSubmitting","error","setError","createdProductId","setCreatedProductId","createdVersionId","setCreatedVersionId","latestVersionNumber","setLatestVersionNumber","latestVersionId","setLatestVersionId","isTaskAutoLinkedRef","useRef","lastSubmittedRef","folderProducts","isFolderProductsLoading","useGetFolderProductsQuery","matchedProduct","useMemo","p","effectiveProductId","version","useGetLatestProductVersionQuery","latestVersionData","useGetVersionQuery","taskId","isLoadingTask","onOpenVersionUpload","useCallback","prev","onCloseVersionUpload","item","createProduct","useCreateProductMutation","createVersion","useCreateVersionMutation","onUploadVersion","data","versionRes","createVersionHelper","toast","productRes","createProductAndVersion","extractAndSetVersionFromFiles","files","firstFile","fileName","parseFilename","extractedVersion","extractVersionFromFilename","latestVersion","handleFormChange","key","value","handleFormSubmit","formData","validation","validateFormDataHelper","response","useEffect","lastSubmitted","lastProduct","matchedTask","setTaskId","id","jsx","useVersionUploadContext","context","useContext","useOptionalVersionUploadContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VersionUploadContext.es.js","sources":["../../../../../../src/components/VersionUploader/context/VersionUploadContext.tsx"],"sourcesContent":["import {\n useCreateVersionMutation,\n useCreateProductMutation,\n useGetLatestProductVersionQuery,\n useGetVersionQuery,\n useGetFolderProductsQuery,\n} from '@shared/api'\nimport type { FolderProduct } from '@shared/api'\nimport React, {\n createContext,\n useContext,\n useState,\n useRef,\n ReactNode,\n useMemo,\n useCallback,\n useEffect,\n} from 'react'\nimport { extractVersionFromFilename } from '@shared/util'\nimport { toast } from 'react-toastify'\nimport {\n validateFormData as validateFormDataHelper,\n createProductAndVersion,\n createVersionHelper,\n} from '@shared/util/versionUploadHelpers'\nimport { parseFilename } from '@shared/components/ReviewablesList'\n\nexport interface FormData {\n version: number\n name: string\n productType: string\n}\nexport interface LinkedTask {\n id: string\n name: string\n label?: string | null\n taskType: string\n}\n\ninterface VersionUploadContextType {\n productId: string\n folderId: string\n taskId: string\n linkedTask: LinkedTask | null\n isLoadingTask: boolean\n setTaskId: (taskId: string) => void\n setLinkedTask: (task: LinkedTask | null) => void\n setProductId: (productId: string) => void\n setFolderId: (folderId: string) => void\n isOpen: boolean\n projectName: string\n latestVersion: number | undefined\n pendingFiles: Array<{ file: File; preview?: string }>\n setPendingFiles: React.Dispatch<React.SetStateAction<Array<{ file: File; preview?: string }>>>\n extractAndSetVersionFromFiles: (files: File[]) => void\n form: FormData\n setForm: React.Dispatch<React.SetStateAction<FormData>>\n isSubmitting: boolean\n error: string\n createdProductId: string | null\n createdVersionId: string | null\n onOpenVersionUpload: (params: {\n productId?: string\n folderId?: string\n taskId?: string\n linkedTask?: LinkedTask\n latestVersionNumber?: number\n latestVersionId?: string\n }) => void\n onCloseVersionUpload: () => void\n onUploadVersion: (data: FormData) => Promise<{ productId: string; versionId: string }>\n handleFormChange: (key: keyof FormData, value: string | number) => void\n handleFormSubmit: (formData: FormData) => Promise<void>\n folderProducts: FolderProduct[]\n isFolderProductsLoading: boolean\n matchedProduct: FolderProduct | undefined\n // pass through\n dispatch: any\n}\n\nconst VersionUploadContext = createContext<VersionUploadContextType | undefined>(undefined)\n\ninterface VersionUploadProviderProps {\n children: ReactNode\n projectName: string\n onVersionCreated: (productId: string, versionId: string) => void\n dispatch: any\n}\n\nconst defaultFormData: FormData = {\n version: 1,\n name: 'review',\n productType: 'review',\n}\n\nexport const VersionUploadProvider: React.FC<VersionUploadProviderProps> = ({\n children,\n projectName,\n onVersionCreated,\n dispatch,\n}) => {\n const [folderId, setFolderId] = useState<string>('')\n const [productId, setProductId] = useState<string>('')\n // optional task to link the version to\n // null = not set by user (auto-resolve from version), '' = explicitly cleared, 'id' = explicitly set\n const [userTaskId, setUserTaskId] = useState<string | null>(null)\n const [linkedTask, setLinkedTask] = useState<LinkedTask | null>(null)\n const [isOpen, setIsOpen] = useState<boolean>(false)\n const [pendingFiles, setPendingFiles] = useState<Array<{ file: File; preview?: string }>>([])\n const [form, setForm] = useState<FormData>(defaultFormData)\n const [isSubmitting, setIsSubmitting] = useState(false)\n const [error, setError] = useState<string>('')\n const [createdProductId, setCreatedProductId] = useState<string | null>(null)\n const [createdVersionId, setCreatedVersionId] = useState<string | null>(null)\n // Stores the latest version number passed from the caller (e.g. VP page)\n // so we can skip the GetLatestProductVersion query when we already know it\n const [latestVersionNumber, setLatestVersionNumber] = useState<number | undefined>(undefined)\n // Stores the latest version ID so we can fetch its task when not already known\n const [latestVersionId, setLatestVersionId] = useState<string | undefined>(undefined)\n // Tracks whether the current task was auto-linked from a matched product (not explicitly user-chosen)\n const isTaskAutoLinkedRef = useRef(false)\n // Remember the last submitted product name per folder so we can prefill on reopen\n const lastSubmittedRef = useRef<{ folderId: string; productName: string } | null>(null)\n\n // Fetch products for the folder (only when no productId — Overview/Browser flow)\n const { data: folderProducts = [], isLoading: isFolderProductsLoading } =\n useGetFolderProductsQuery(\n { projectName, folderId },\n { skip: !folderId || !isOpen || !!productId },\n )\n\n // Match typed product name against existing folder products\n const matchedProduct = useMemo(() => {\n if (productId || !form.name || folderProducts.length === 0) return undefined\n return folderProducts.find((p) => p.name === form.name)\n }, [productId, form.name, folderProducts])\n\n const effectiveProductId = productId || matchedProduct?.id || ''\n\n const { currentData: version } = useGetLatestProductVersionQuery(\n {\n projectName,\n productId,\n },\n { skip: !productId || !isOpen || latestVersionNumber != null },\n )\n\n // Fetch the latest version to discover its taskId (e.g. when versions are collapsed)\n const { data: latestVersionData } = useGetVersionQuery(\n { projectName, versionId: latestVersionId! },\n { skip: !latestVersionId || !isOpen || userTaskId !== null },\n )\n\n // Derive effective taskId: user's explicit choice takes priority, then auto-resolved from version\n const taskId = userTaskId ?? latestVersionData?.taskId ?? ''\n const isLoadingTask = !!(latestVersionId && userTaskId === null && !latestVersionData)\n\n const onOpenVersionUpload = useCallback<VersionUploadContextType['onOpenVersionUpload']>(\n ({ productId, folderId, taskId, linkedTask, latestVersionNumber, latestVersionId }) => {\n setProductId(productId || '')\n setFolderId(folderId || '')\n setUserTaskId(taskId || null)\n setLinkedTask(linkedTask || null)\n setLatestVersionNumber(latestVersionNumber)\n setLatestVersionId(latestVersionId)\n\n // Set initial form state in a single update\n setForm((prev) => ({\n ...prev,\n ...(latestVersionNumber != null ? { version: latestVersionNumber + 1 } : {}),\n }))\n setIsOpen(true)\n },\n [],\n )\n\n const onCloseVersionUpload = useCallback<VersionUploadContextType['onCloseVersionUpload']>(() => {\n // Clean up pending files\n pendingFiles.forEach((item) => {\n if (item.preview) {\n URL.revokeObjectURL(item.preview)\n }\n })\n setPendingFiles([])\n setForm(defaultFormData)\n setCreatedProductId(null)\n setCreatedVersionId(null)\n setError('')\n setIsSubmitting(false)\n setIsOpen(false)\n setProductId('')\n setFolderId('')\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n setLatestVersionNumber(undefined)\n setLatestVersionId(undefined)\n }, [pendingFiles])\n\n const [createProduct] = useCreateProductMutation()\n const [createVersion] = useCreateVersionMutation()\n\n const onUploadVersion = useCallback<VersionUploadContextType['onUploadVersion']>(\n async (data: FormData) => {\n try {\n if (effectiveProductId) {\n // product already exists (either passed directly or matched by name)\n const versionRes = await createVersionHelper(createVersion, projectName, {\n productId: effectiveProductId,\n version: data.version,\n taskId: taskId || undefined,\n })\n\n // select the new version\n onVersionCreated(effectiveProductId, versionRes.id)\n\n toast.success('Created new version')\n\n return {\n productId: effectiveProductId,\n versionId: versionRes.id,\n }\n } else {\n // product does not exist, create new product with version\n const { product: productRes, version: versionRes } = await createProductAndVersion(\n createProduct,\n createVersion,\n projectName,\n {\n folderId,\n name: data.name,\n productType: data.productType || 'review',\n productBaseType: data.productType || 'review',\n },\n {\n version: data.version,\n taskId: taskId || undefined,\n },\n )\n\n // select the new product and version\n onVersionCreated(productRes.id, versionRes.id)\n\n toast.success('Created new version')\n\n return {\n productId: productRes.id,\n versionId: versionRes.id,\n }\n }\n } catch (error: any) {\n console.error('Error uploading version:', error)\n throw error.message || error\n }\n },\n [onCloseVersionUpload, effectiveProductId, folderId, taskId, projectName],\n )\n\n const extractAndSetVersionFromFiles = useCallback(\n (files: File[]) => {\n // Only extract version if we don't already have a product (new product workflow)\n if (effectiveProductId) return\n\n // Try to extract version from the first file\n const firstFile = files[0]\n if (firstFile) {\n const fileName = parseFilename(firstFile.name)\n const extractedVersion = extractVersionFromFilename(fileName)\n if (extractedVersion && extractedVersion !== form.version) {\n setForm((prev) => ({\n ...prev,\n version: extractedVersion,\n }))\n }\n }\n },\n [effectiveProductId, form.version],\n )\n\n // Fallback order: (1) queried from productId, (2) passed by caller, (3) from matched product name\n const latestVersion =\n version?.version ?? latestVersionNumber ?? matchedProduct?.latestVersion?.version\n\n // Handle form changes\n const handleFormChange = useCallback((key: keyof FormData, value: string | number) => {\n setForm((prev) => ({\n ...prev,\n [key]: value,\n }))\n // Clear any previous validation error when user edits the form\n setError('')\n }, [])\n\n // Handle form submission\n const handleFormSubmit = useCallback(\n async (formData: FormData) => {\n try {\n setIsSubmitting(true)\n setError('')\n\n // validate the form data\n const validation = validateFormDataHelper(formData, latestVersion, !effectiveProductId)\n if (!validation.isValid) {\n throw validation.error\n }\n\n const response = await onUploadVersion(formData)\n\n // Remember last submitted product name for this folder so we can prefill on reopen\n if (folderId) {\n lastSubmittedRef.current = { folderId, productName: formData.name }\n }\n\n // Extract productId and versionId from response\n if (response?.productId) {\n setCreatedProductId(response.productId)\n }\n if (response?.versionId) {\n setCreatedVersionId(response.versionId)\n }\n\n if (pendingFiles.length < 1) {\n setIsSubmitting(false)\n onCloseVersionUpload()\n }\n } catch (error: any) {\n setError(error)\n setIsSubmitting(false)\n }\n },\n [onUploadVersion, pendingFiles.length, onCloseVersionUpload, latestVersion, effectiveProductId],\n )\n\n // Update form when version data changes (only when query is used as fallback)\n useEffect(() => {\n if (!isOpen || latestVersionNumber != null) return\n\n if (version) {\n setForm((prev) => ({ ...prev, version: version.version + 1 }))\n } else {\n setForm(defaultFormData)\n }\n\n return () => {\n setForm(defaultFormData)\n }\n }, [isOpen, version, latestVersionNumber])\n\n // Default product name: prefer last submitted name for same folder, else last folder product\n useEffect(() => {\n if (!isOpen || productId || folderProducts.length === 0) return\n // Only auto-fill if user hasn't changed the name from default\n if (form.name !== defaultFormData.name) return\n\n // Prefer the product name from the last successful submit on this folder\n const lastSubmitted = lastSubmittedRef.current\n if (lastSubmitted && lastSubmitted.folderId === folderId) {\n const exists = folderProducts.some((p) => p.name === lastSubmitted.productName)\n if (exists) {\n setForm((prev) => ({ ...prev, name: lastSubmitted.productName }))\n return\n }\n }\n\n // Fallback: use the last product in the folder list\n const lastProduct = folderProducts[folderProducts.length - 1]\n if (lastProduct) {\n setForm((prev) => ({ ...prev, name: lastProduct.name }))\n }\n }, [isOpen, productId, folderProducts])\n\n // Auto-set version, productType, and task when a matched product is found, reset when match is lost\n useEffect(() => {\n if (!isOpen || productId) return\n\n if (matchedProduct) {\n setForm((prev) => ({\n ...prev,\n productType: matchedProduct.productType,\n ...(matchedProduct.latestVersion && {\n version: matchedProduct.latestVersion.version + 1,\n }),\n }))\n\n const matchedTask = matchedProduct.latestVersion?.task\n if (matchedTask && (userTaskId === null || isTaskAutoLinkedRef.current)) {\n // Auto-link task from matched product's latest version\n setUserTaskId(matchedTask.id)\n setLinkedTask({\n id: matchedTask.id,\n name: matchedTask.name,\n label: matchedTask.label,\n taskType: matchedTask.taskType,\n })\n isTaskAutoLinkedRef.current = true\n } else if (!matchedTask && isTaskAutoLinkedRef.current) {\n // Matched product has no task — clear the auto-linked one\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n }\n } else {\n // Match lost — reset version back to default for new product\n setForm((prev) => ({ ...prev, version: defaultFormData.version }))\n // Clear auto-linked task (only if it was auto-set, not user-chosen)\n if (userTaskId === null || isTaskAutoLinkedRef.current) {\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n }\n }\n }, [isOpen, productId, matchedProduct])\n\n // Wrap setUserTaskId so consumers use a simple string setter\n // Any explicit user action (pick or clear) marks the task as not auto-linked\n const setTaskId = useCallback((id: string) => {\n setUserTaskId(id)\n isTaskAutoLinkedRef.current = false\n }, [])\n\n const value = useMemo(\n () => ({\n productId,\n setProductId,\n folderId,\n taskId,\n linkedTask,\n isLoadingTask,\n setTaskId,\n setLinkedTask,\n setFolderId,\n isOpen,\n projectName,\n latestVersion,\n pendingFiles,\n setPendingFiles,\n onOpenVersionUpload,\n onCloseVersionUpload,\n onUploadVersion,\n extractAndSetVersionFromFiles,\n form,\n setForm,\n isSubmitting,\n error,\n createdProductId,\n createdVersionId,\n handleFormChange,\n handleFormSubmit,\n folderProducts,\n isFolderProductsLoading,\n matchedProduct,\n dispatch,\n }),\n [\n folderId,\n setFolderId,\n productId,\n taskId,\n linkedTask,\n isLoadingTask,\n setTaskId,\n setLinkedTask,\n setProductId,\n isOpen,\n projectName,\n latestVersion,\n pendingFiles,\n setPendingFiles,\n onOpenVersionUpload,\n onCloseVersionUpload,\n onUploadVersion,\n extractAndSetVersionFromFiles,\n form,\n isSubmitting,\n error,\n createdProductId,\n createdVersionId,\n handleFormChange,\n handleFormSubmit,\n folderProducts,\n isFolderProductsLoading,\n matchedProduct,\n dispatch,\n ],\n )\n\n return <VersionUploadContext.Provider value={value}>{children}</VersionUploadContext.Provider>\n}\n\nexport const useVersionUploadContext = (): VersionUploadContextType => {\n const context = useContext(VersionUploadContext)\n if (context === undefined) {\n throw new Error('useVersionUploadContext must be used within a VersionUploadProvider')\n }\n return context\n}\n\n// Same as useVersionUploadContext but returns null instead of throwing when no provider is mounted.\n// Use in shared components that may render under pages without a VersionUploadProvider.\nexport const useOptionalVersionUploadContext = (): VersionUploadContextType | null => {\n return useContext(VersionUploadContext) ?? null\n}\n"],"names":["VersionUploadContext","createContext","defaultFormData","VersionUploadProvider","children","projectName","onVersionCreated","dispatch","folderId","setFolderId","useState","productId","setProductId","userTaskId","setUserTaskId","linkedTask","setLinkedTask","isOpen","setIsOpen","pendingFiles","setPendingFiles","form","setForm","isSubmitting","setIsSubmitting","error","setError","createdProductId","setCreatedProductId","createdVersionId","setCreatedVersionId","latestVersionNumber","setLatestVersionNumber","latestVersionId","setLatestVersionId","isTaskAutoLinkedRef","useRef","lastSubmittedRef","folderProducts","isFolderProductsLoading","useGetFolderProductsQuery","matchedProduct","useMemo","p","effectiveProductId","version","useGetLatestProductVersionQuery","latestVersionData","useGetVersionQuery","taskId","isLoadingTask","onOpenVersionUpload","useCallback","prev","onCloseVersionUpload","item","createProduct","useCreateProductMutation","createVersion","useCreateVersionMutation","onUploadVersion","data","versionRes","createVersionHelper","toast","productRes","createProductAndVersion","extractAndSetVersionFromFiles","files","firstFile","fileName","parseFilename","extractedVersion","extractVersionFromFilename","latestVersion","handleFormChange","key","value","handleFormSubmit","formData","validation","validateFormDataHelper","response","useEffect","lastSubmitted","lastProduct","matchedTask","setTaskId","id","jsx","useVersionUploadContext","context","useContext","useOptionalVersionUploadContext"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("../../../../_virtual/jsx-runtime.cjs.js"),d=require("react"),f=require("react-toastify");require("../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("@ynput/ayon-react-components");require("../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../components/AccessUser/AccessUser.cjs.js");require("clsx");require("../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../components/Badge/Badge.cjs.js");require("../../components/Chips/Chips.cjs.js");require("react-dom");require("date-fns");require("../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../components/LinksManager/CellEditingDialog.cjs.js");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/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");const n=require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/columnStats/metricTargets.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("../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../components/QuillListStyles/QuillListStyles.cjs.js");require("../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("react-markdown");require("remark-gfm");require("rehype-raw");require("../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../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/ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");require("../ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../Feed/context/FeedContext.cjs.js");require("../Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("remark-emoji");require("remark-directive");require("remark-directive-rehype");require("../Feed/components/CommentInput/CommentInput.cjs.js");require("../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../Feed/components/ActivityDate.cjs.js");require("../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../Feed/Feed.styled.cjs.js");require("../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../ProjectTreeTable/widgets/DateWidget.cjs.js");require("../ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../ProjectTreeTable/widgets/EnumCellValue.cjs.js");require("../ProjectTreeTable/widgets/TextWidget.cjs.js");require("../ProjectTreeTable/widgets/MarkdownWidget.cjs.js");require("../ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../ProjectTreeTable/widgets/CellWidget.cjs.js");require("../ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../components/LinksManager/LinksManager.styled.cjs.js");require("../ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../ProjectTreeTable/context/CellEditingContext.cjs.js");require("../../components/SearchFilter/filterDates.cjs.js");require("short-uuid");require("../ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../ProjectTreeTable/context/ClipboardContext.cjs.js");require("../ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../ProjectTreeTable/components/DeleteConfirmContent.cjs.js");require("../ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../ProjectTreeTable/components/SelectionCell.cjs.js");require("../ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../ProjectTreeTable/components/TableFooterRow.cjs.js");require("../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../Slicer/components/Slicer.cjs.js");require("../Slicer/context/SlicerContext.cjs.js");require("../Slicer/hooks/useTableDataBySlice.cjs.js");require("../DetailsPanel/DetailsPanel.styled.cjs.js");require("../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../components/PlayableIcon/PlayableIcon.cjs.js");require("../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("./Actions.styled.cjs.js");require("./ActionsDropdown/ActionsDropdown.cjs.js");require("./ActionIcon.cjs.js");require("../Views/ViewsMenu/ViewsMenu.cjs.js");require("../Views/context/ViewsContextInstance.cjs.js");require("../Views/Views.styled.cjs.js");require("../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../ListTable/ListTableRow.cjs.js");require("../ListTable/ListTable.styled.cjs.js");require("../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../components/EntityPath/EntityPath.styled.cjs.js");require("../../components/EntityPath/SegmentProvider.cjs.js");require("../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../components/Feedback/SupportBubble.cjs.js");require("../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../components/Powerpack/PowerpackButton.cjs.js");require("../../components/Powerpack/FreeTrialLink.cjs.js");require("../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../components/Powerpack/CTAButton.cjs.js");require("../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../components/SizeSlider/SizeSlider.cjs.js");require("../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");const g=require("../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../components/StyledLink/StyledLink.cjs.js");require("../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../components/Watchers/Watchers.cjs.js");require("../../components/Menu/Menu.styled.cjs.js");require("../../components/Menu/MenuItem.cjs.js");require("../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../components/ColumnHeaderMenuUI.cjs.js");const m=({action:e,onClose:i,context:u})=>{const r=d.useMemo(()=>!e||!(e.addonName&&e.addonVersion)?null:{addonName:e.addonName,addonVersion:e.addonVersion,variant:e.variant,identifier:e.identifier},[e]),[o]=n.useSetActionConfigMutation(),t={actionConfig:u,...r||{}},{data:q}=n.useGetActionConfigQuery(t,{skip:!r});if(!(q&&e?.configFields&&e&&r))return null;const a=async s=>{try{await o({actionConfig:{...u,value:s},...r}).unwrap(),i()}catch(c){console.warn("Error configuring action",c),f.toast.error("Unable to set the action configuration")}};return l.jsxRuntimeExports.jsx(g.SimpleFormDialog,{isOpen:!0,title:`Configure action ${e.label}`,fields:e.configFields,values:q,onClose:i,onSubmit:a,submitLabel:"Save action config",cancelLabel:"Cancel",submitIcon:"check",cancelIcon:"close"})};exports.ActionConfigDialog=m;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("../../../../_virtual/jsx-runtime.cjs.js"),d=require("react"),f=require("react-toastify");require("../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("@ynput/ayon-react-components");require("../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../components/AccessUser/AccessUser.cjs.js");require("clsx");require("../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../components/Badge/Badge.cjs.js");require("../../components/Chips/Chips.cjs.js");require("react-dom");require("date-fns");require("../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../components/LinksManager/CellEditingDialog.cjs.js");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/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");const n=require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/columnStats/metricTargets.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("../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../components/QuillListStyles/QuillListStyles.cjs.js");require("../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("react-markdown");require("remark-gfm");require("rehype-raw");require("../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../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/ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");require("../ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../Feed/context/FeedContext.cjs.js");require("../Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("remark-emoji");require("remark-directive");require("remark-directive-rehype");require("../Feed/components/CommentInput/CommentInput.cjs.js");require("../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../Feed/components/ActivityDate.cjs.js");require("../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../Feed/Feed.styled.cjs.js");require("../Feed/components/FeedSearchFilter.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../ProjectTreeTable/widgets/DateWidget.cjs.js");require("../ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../ProjectTreeTable/widgets/EnumCellValue.cjs.js");require("../ProjectTreeTable/widgets/TextWidget.cjs.js");require("../ProjectTreeTable/widgets/MarkdownWidget.cjs.js");require("../ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../ProjectTreeTable/widgets/CellWidget.cjs.js");require("../ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../components/LinksManager/LinksManager.styled.cjs.js");require("../ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../ProjectTreeTable/context/CellEditingContext.cjs.js");require("../../components/SearchFilter/filterDates.cjs.js");require("short-uuid");require("../ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../ProjectTreeTable/context/ClipboardContext.cjs.js");require("../ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../ProjectTreeTable/components/DeleteConfirmContent.cjs.js");require("../ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../ProjectTreeTable/components/SelectionCell.cjs.js");require("../ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../ProjectTreeTable/components/TableFooterRow.cjs.js");require("../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../Slicer/components/Slicer.cjs.js");require("../Slicer/context/SlicerContext.cjs.js");require("../Slicer/hooks/useTableDataBySlice.cjs.js");require("../DetailsPanel/DetailsPanel.styled.cjs.js");require("../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../components/PlayableIcon/PlayableIcon.cjs.js");require("../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js");require("../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("./Actions.styled.cjs.js");require("./ActionsDropdown/ActionsDropdown.cjs.js");require("./ActionIcon.cjs.js");require("../Views/ViewsMenu/ViewsMenu.cjs.js");require("../Views/context/ViewsContextInstance.cjs.js");require("../Views/Views.styled.cjs.js");require("../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../ListTable/ListTableRow.cjs.js");require("../ListTable/ListTable.styled.cjs.js");require("../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../components/EntityPath/EntityPath.styled.cjs.js");require("../../components/EntityPath/SegmentProvider.cjs.js");require("../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../components/Feedback/SupportBubble.cjs.js");require("../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../components/Powerpack/PowerpackButton.cjs.js");require("../../components/Powerpack/FreeTrialLink.cjs.js");require("../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../components/Powerpack/CTAButton.cjs.js");require("../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../components/SizeSlider/SizeSlider.cjs.js");require("../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../components/SearchFilter/CustomDateRangeDialog.cjs.js");require("../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");const g=require("../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../components/StyledLink/StyledLink.cjs.js");require("../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../components/Watchers/Watchers.cjs.js");require("../../components/Menu/Menu.styled.cjs.js");require("../../components/Menu/MenuItem.cjs.js");require("../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../components/ColumnHeaderMenuUI.cjs.js");const m=({action:e,onClose:i,context:u})=>{const r=d.useMemo(()=>!e||!(e.addonName&&e.addonVersion)?null:{addonName:e.addonName,addonVersion:e.addonVersion,variant:e.variant,identifier:e.identifier},[e]),[o]=n.useSetActionConfigMutation(),t={actionConfig:u,...r||{}},{data:q}=n.useGetActionConfigQuery(t,{skip:!r});if(!(q&&e?.configFields&&e&&r))return null;const a=async s=>{try{await o({actionConfig:{...u,value:s},...r}).unwrap(),i()}catch(c){console.warn("Error configuring action",c),f.toast.error("Unable to set the action configuration")}};return l.jsxRuntimeExports.jsx(g.SimpleFormDialog,{isOpen:!0,title:`Configure action ${e.label}`,fields:e.configFields,values:q,onClose:i,onSubmit:a,submitLabel:"Save action config",cancelLabel:"Cancel",submitIcon:"check",cancelIcon:"close"})};exports.ActionConfigDialog=m;
|
|
2
2
|
//# sourceMappingURL=ActionConfigDialog.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionConfigDialog.cjs.js","sources":["../../../../../src/containers/Actions/ActionConfigDialog.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { toast } from 'react-toastify'\nimport { SimpleFormDialog } from '@shared/components'\nimport type { SimpleFormValueDict } from '@shared/components'\n\nimport { useGetActionConfigQuery, useSetActionConfigMutation } from '@shared/api'\nimport type { ActionContext, BaseActionManifest } from '@shared/api'\n\ntype ConfigData = Record<string, any>\n\ninterface ActionConfigDialogProps {\n action: BaseActionManifest\n context: ActionContext\n onClose: () => void\n}\n\ninterface ActionConfigRequestQueryParams {\n addonName: string\n addonVersion: string\n variant?: string\n identifier: string\n}\n\nexport const ActionConfigDialog = ({ action, onClose, context }: ActionConfigDialogProps) => {\n const requestParams: ActionConfigRequestQueryParams | null =\n useMemo<ActionConfigRequestQueryParams | null>(() => {\n if (!action) return null\n if (!(action.addonName && action.addonVersion)) return null // this should never happen\n return {\n addonName: action.addonName,\n addonVersion: action.addonVersion,\n variant: action.variant,\n identifier: action.identifier,\n }\n }, [action])\n\n const [configureAction] = useSetActionConfigMutation()\n\n // make typescript happily unknowing about the type\n // because even if we pass skip, arguments are still required in the right type. that's cursed\n const qp: any = { actionConfig: context, ...(requestParams || {}) }\n const { data: initValues } = useGetActionConfigQuery(qp, { skip: !requestParams })\n\n // it would be sooo cool if i could do this BEFORE the query and ommit that\n // qp thing, but i can't. because it would change the hook order. ffs\n if (!(initValues && action?.configFields && action && requestParams)) {\n return null\n }\n\n const handleSubmit = async (data: ConfigData) => {\n try {\n await configureAction({\n actionConfig: { ...context, value: data },\n ...requestParams,\n }).unwrap()\n onClose()\n } catch (error) {\n console.warn('Error configuring action', error)\n toast.error('Unable to set the action configuration')\n }\n }\n\n return (\n <SimpleFormDialog\n isOpen\n title={`Configure action ${action.label}`}\n fields={action.configFields}\n values={initValues as SimpleFormValueDict}\n onClose={onClose}\n onSubmit={handleSubmit}\n submitLabel=\"Save action config\"\n cancelLabel=\"Cancel\"\n submitIcon=\"check\"\n cancelIcon=\"close\"\n />\n )\n}\n"],"names":["ActionConfigDialog","action","onClose","context","requestParams","useMemo","configureAction","useSetActionConfigMutation","qp","initValues","useGetActionConfigQuery","handleSubmit","data","error","toast","jsx","SimpleFormDialog"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ActionConfigDialog.cjs.js","sources":["../../../../../src/containers/Actions/ActionConfigDialog.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { toast } from 'react-toastify'\nimport { SimpleFormDialog } from '@shared/components'\nimport type { SimpleFormValueDict } from '@shared/components'\n\nimport { useGetActionConfigQuery, useSetActionConfigMutation } from '@shared/api'\nimport type { ActionContext, BaseActionManifest } from '@shared/api'\n\ntype ConfigData = Record<string, any>\n\ninterface ActionConfigDialogProps {\n action: BaseActionManifest\n context: ActionContext\n onClose: () => void\n}\n\ninterface ActionConfigRequestQueryParams {\n addonName: string\n addonVersion: string\n variant?: string\n identifier: string\n}\n\nexport const ActionConfigDialog = ({ action, onClose, context }: ActionConfigDialogProps) => {\n const requestParams: ActionConfigRequestQueryParams | null =\n useMemo<ActionConfigRequestQueryParams | null>(() => {\n if (!action) return null\n if (!(action.addonName && action.addonVersion)) return null // this should never happen\n return {\n addonName: action.addonName,\n addonVersion: action.addonVersion,\n variant: action.variant,\n identifier: action.identifier,\n }\n }, [action])\n\n const [configureAction] = useSetActionConfigMutation()\n\n // make typescript happily unknowing about the type\n // because even if we pass skip, arguments are still required in the right type. that's cursed\n const qp: any = { actionConfig: context, ...(requestParams || {}) }\n const { data: initValues } = useGetActionConfigQuery(qp, { skip: !requestParams })\n\n // it would be sooo cool if i could do this BEFORE the query and ommit that\n // qp thing, but i can't. because it would change the hook order. ffs\n if (!(initValues && action?.configFields && action && requestParams)) {\n return null\n }\n\n const handleSubmit = async (data: ConfigData) => {\n try {\n await configureAction({\n actionConfig: { ...context, value: data },\n ...requestParams,\n }).unwrap()\n onClose()\n } catch (error) {\n console.warn('Error configuring action', error)\n toast.error('Unable to set the action configuration')\n }\n }\n\n return (\n <SimpleFormDialog\n isOpen\n title={`Configure action ${action.label}`}\n fields={action.configFields}\n values={initValues as SimpleFormValueDict}\n onClose={onClose}\n onSubmit={handleSubmit}\n submitLabel=\"Save action config\"\n cancelLabel=\"Cancel\"\n submitIcon=\"check\"\n cancelIcon=\"close\"\n />\n )\n}\n"],"names":["ActionConfigDialog","action","onClose","context","requestParams","useMemo","configureAction","useSetActionConfigMutation","qp","initValues","useGetActionConfigQuery","handleSubmit","data","error","toast","jsx","SimpleFormDialog"],"mappings":"60gBAuBO,MAAMA,EAAqB,CAAC,CAAE,OAAAC,EAAQ,QAAAC,EAAS,QAAAC,KAAuC,CAC3F,MAAMC,EACJC,EAAAA,QAA+C,IACzC,CAACJ,GACD,EAAEA,EAAO,WAAaA,EAAO,cAAsB,KAChD,CACL,UAAWA,EAAO,UAClB,aAAcA,EAAO,aACrB,QAASA,EAAO,QAChB,WAAYA,EAAO,UAAA,EAEpB,CAACA,CAAM,CAAC,EAEP,CAACK,CAAe,EAAIC,6BAAA,EAIpBC,EAAU,CAAE,aAAcL,EAAS,GAAIC,GAAiB,CAAA,CAAC,EACzD,CAAE,KAAMK,GAAeC,EAAAA,wBAAwBF,EAAI,CAAE,KAAM,CAACJ,EAAe,EAIjF,GAAI,EAAEK,GAAcR,GAAQ,cAAgBA,GAAUG,GACpD,OAAO,KAGT,MAAMO,EAAe,MAAOC,GAAqB,CAC/C,GAAI,CACF,MAAMN,EAAgB,CACpB,aAAc,CAAE,GAAGH,EAAS,MAAOS,CAAA,EACnC,GAAGR,CAAA,CACJ,EAAE,OAAA,EACHF,EAAA,CACF,OAASW,EAAO,CACd,QAAQ,KAAK,2BAA4BA,CAAK,EAC9CC,EAAAA,MAAM,MAAM,wCAAwC,CACtD,CACF,EAEA,OACEC,EAAAA,kBAAAA,IAACC,EAAAA,iBAAA,CACC,OAAM,GACN,MAAO,oBAAoBf,EAAO,KAAK,GACvC,OAAQA,EAAO,aACf,OAAQQ,EACR,QAAAP,EACA,SAAUS,EACV,YAAY,qBACZ,YAAY,SACZ,WAAW,QACX,WAAW,OAAA,CAAA,CAGjB"}
|
|
@@ -192,7 +192,7 @@ import "../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.es
|
|
|
192
192
|
import "../Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js";
|
|
193
193
|
import "../Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js";
|
|
194
194
|
import "../Feed/Feed.styled.es.js";
|
|
195
|
-
import "../
|
|
195
|
+
import "../Feed/components/FeedSearchFilter.es.js";
|
|
196
196
|
import "@tanstack/react-virtual";
|
|
197
197
|
import "@tanstack/react-table";
|
|
198
198
|
import "../ProjectTreeTable/widgets/CollapsedWidget.es.js";
|
|
@@ -237,6 +237,8 @@ import "../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.
|
|
|
237
237
|
import "../../components/PlayableIcon/PlayableIcon.es.js";
|
|
238
238
|
import "../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js";
|
|
239
239
|
import "../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js";
|
|
240
|
+
import "../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
|
|
241
|
+
import "../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js";
|
|
240
242
|
import "../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.es.js";
|
|
241
243
|
import "../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.es.js";
|
|
242
244
|
import "./Actions.styled.es.js";
|
|
@@ -268,6 +270,7 @@ import "../../components/ProjectTableSettings/ProjectTableSettings.es.js";
|
|
|
268
270
|
import "../../components/SizeSlider/SizeSlider.es.js";
|
|
269
271
|
import "../../components/ReviewableCard/ReviewableCard.es.js";
|
|
270
272
|
import "../../components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js";
|
|
273
|
+
import "../../components/SearchFilter/CustomDateRangeDialog.es.js";
|
|
271
274
|
import "../../components/SettingsPanel/SettingsPanel.es.js";
|
|
272
275
|
import "../../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
|
|
273
276
|
import "../../components/ShareOptionIcon/ShareOptionIcon.es.js";
|
|
@@ -284,7 +287,7 @@ import "../../components/Menu/Menu.styled.es.js";
|
|
|
284
287
|
import "../../components/Menu/MenuItem.es.js";
|
|
285
288
|
import "../../components/ReviewablesSelector/ReviewablesSelector.es.js";
|
|
286
289
|
import "../../components/ColumnHeaderMenuUI.es.js";
|
|
287
|
-
const
|
|
290
|
+
const Gm = ({ action: o, onClose: r, context: t }) => {
|
|
288
291
|
const i = l(() => !o || !(o.addonName && o.addonVersion) ? null : {
|
|
289
292
|
addonName: o.addonName,
|
|
290
293
|
addonVersion: o.addonVersion,
|
|
@@ -320,6 +323,6 @@ const Im = ({ action: o, onClose: r, context: t }) => {
|
|
|
320
323
|
);
|
|
321
324
|
};
|
|
322
325
|
export {
|
|
323
|
-
|
|
326
|
+
Gm as ActionConfigDialog
|
|
324
327
|
};
|
|
325
328
|
//# sourceMappingURL=ActionConfigDialog.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionConfigDialog.es.js","sources":["../../../../../src/containers/Actions/ActionConfigDialog.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { toast } from 'react-toastify'\nimport { SimpleFormDialog } from '@shared/components'\nimport type { SimpleFormValueDict } from '@shared/components'\n\nimport { useGetActionConfigQuery, useSetActionConfigMutation } from '@shared/api'\nimport type { ActionContext, BaseActionManifest } from '@shared/api'\n\ntype ConfigData = Record<string, any>\n\ninterface ActionConfigDialogProps {\n action: BaseActionManifest\n context: ActionContext\n onClose: () => void\n}\n\ninterface ActionConfigRequestQueryParams {\n addonName: string\n addonVersion: string\n variant?: string\n identifier: string\n}\n\nexport const ActionConfigDialog = ({ action, onClose, context }: ActionConfigDialogProps) => {\n const requestParams: ActionConfigRequestQueryParams | null =\n useMemo<ActionConfigRequestQueryParams | null>(() => {\n if (!action) return null\n if (!(action.addonName && action.addonVersion)) return null // this should never happen\n return {\n addonName: action.addonName,\n addonVersion: action.addonVersion,\n variant: action.variant,\n identifier: action.identifier,\n }\n }, [action])\n\n const [configureAction] = useSetActionConfigMutation()\n\n // make typescript happily unknowing about the type\n // because even if we pass skip, arguments are still required in the right type. that's cursed\n const qp: any = { actionConfig: context, ...(requestParams || {}) }\n const { data: initValues } = useGetActionConfigQuery(qp, { skip: !requestParams })\n\n // it would be sooo cool if i could do this BEFORE the query and ommit that\n // qp thing, but i can't. because it would change the hook order. ffs\n if (!(initValues && action?.configFields && action && requestParams)) {\n return null\n }\n\n const handleSubmit = async (data: ConfigData) => {\n try {\n await configureAction({\n actionConfig: { ...context, value: data },\n ...requestParams,\n }).unwrap()\n onClose()\n } catch (error) {\n console.warn('Error configuring action', error)\n toast.error('Unable to set the action configuration')\n }\n }\n\n return (\n <SimpleFormDialog\n isOpen\n title={`Configure action ${action.label}`}\n fields={action.configFields}\n values={initValues as SimpleFormValueDict}\n onClose={onClose}\n onSubmit={handleSubmit}\n submitLabel=\"Save action config\"\n cancelLabel=\"Cancel\"\n submitIcon=\"check\"\n cancelIcon=\"close\"\n />\n )\n}\n"],"names":["ActionConfigDialog","action","onClose","context","requestParams","useMemo","configureAction","useSetActionConfigMutation","qp","initValues","useGetActionConfigQuery","handleSubmit","data","error","toast","jsx","SimpleFormDialog"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ActionConfigDialog.es.js","sources":["../../../../../src/containers/Actions/ActionConfigDialog.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { toast } from 'react-toastify'\nimport { SimpleFormDialog } from '@shared/components'\nimport type { SimpleFormValueDict } from '@shared/components'\n\nimport { useGetActionConfigQuery, useSetActionConfigMutation } from '@shared/api'\nimport type { ActionContext, BaseActionManifest } from '@shared/api'\n\ntype ConfigData = Record<string, any>\n\ninterface ActionConfigDialogProps {\n action: BaseActionManifest\n context: ActionContext\n onClose: () => void\n}\n\ninterface ActionConfigRequestQueryParams {\n addonName: string\n addonVersion: string\n variant?: string\n identifier: string\n}\n\nexport const ActionConfigDialog = ({ action, onClose, context }: ActionConfigDialogProps) => {\n const requestParams: ActionConfigRequestQueryParams | null =\n useMemo<ActionConfigRequestQueryParams | null>(() => {\n if (!action) return null\n if (!(action.addonName && action.addonVersion)) return null // this should never happen\n return {\n addonName: action.addonName,\n addonVersion: action.addonVersion,\n variant: action.variant,\n identifier: action.identifier,\n }\n }, [action])\n\n const [configureAction] = useSetActionConfigMutation()\n\n // make typescript happily unknowing about the type\n // because even if we pass skip, arguments are still required in the right type. that's cursed\n const qp: any = { actionConfig: context, ...(requestParams || {}) }\n const { data: initValues } = useGetActionConfigQuery(qp, { skip: !requestParams })\n\n // it would be sooo cool if i could do this BEFORE the query and ommit that\n // qp thing, but i can't. because it would change the hook order. ffs\n if (!(initValues && action?.configFields && action && requestParams)) {\n return null\n }\n\n const handleSubmit = async (data: ConfigData) => {\n try {\n await configureAction({\n actionConfig: { ...context, value: data },\n ...requestParams,\n }).unwrap()\n onClose()\n } catch (error) {\n console.warn('Error configuring action', error)\n toast.error('Unable to set the action configuration')\n }\n }\n\n return (\n <SimpleFormDialog\n isOpen\n title={`Configure action ${action.label}`}\n fields={action.configFields}\n values={initValues as SimpleFormValueDict}\n onClose={onClose}\n onSubmit={handleSubmit}\n submitLabel=\"Save action config\"\n cancelLabel=\"Cancel\"\n submitIcon=\"check\"\n cancelIcon=\"close\"\n />\n )\n}\n"],"names":["ActionConfigDialog","action","onClose","context","requestParams","useMemo","configureAction","useSetActionConfigMutation","qp","initValues","useGetActionConfigQuery","handleSubmit","data","error","toast","jsx","SimpleFormDialog"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBO,MAAMA,KAAqB,CAAC,EAAE,QAAAC,GAAQ,SAAAC,GAAS,SAAAC,QAAuC;AAC3F,QAAMC,IACJC,EAA+C,MACzC,CAACJ,KACD,EAAEA,EAAO,aAAaA,EAAO,gBAAsB,OAChD;AAAA,IACL,WAAWA,EAAO;AAAA,IAClB,cAAcA,EAAO;AAAA,IACrB,SAASA,EAAO;AAAA,IAChB,YAAYA,EAAO;AAAA,EAAA,GAEpB,CAACA,CAAM,CAAC,GAEP,CAACK,CAAe,IAAIC,EAAA,GAIpBC,IAAU,EAAE,cAAcL,GAAS,GAAIC,KAAiB,CAAA,EAAC,GACzD,EAAE,MAAMK,MAAeC,EAAwBF,GAAI,EAAE,MAAM,CAACJ,GAAe;AAIjF,MAAI,EAAEK,KAAcR,GAAQ,gBAAgBA,KAAUG;AACpD,WAAO;AAGT,QAAMO,IAAe,OAAOC,MAAqB;AAC/C,QAAI;AACF,YAAMN,EAAgB;AAAA,QACpB,cAAc,EAAE,GAAGH,GAAS,OAAOS,EAAA;AAAA,QACnC,GAAGR;AAAA,MAAA,CACJ,EAAE,OAAA,GACHF,EAAA;AAAA,IACF,SAASW,GAAO;AACd,cAAQ,KAAK,4BAA4BA,CAAK,GAC9CC,EAAM,MAAM,wCAAwC;AAAA,IACtD;AAAA,EACF;AAEA,SACEC,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,QAAM;AAAA,MACN,OAAO,oBAAoBf,EAAO,KAAK;AAAA,MACvC,QAAQA,EAAO;AAAA,MACf,QAAQQ;AAAA,MACR,SAAAP;AAAA,MACA,UAAUS;AAAA,MACV,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,YAAW;AAAA,MACX,YAAW;AAAA,IAAA;AAAA,EAAA;AAGjB;"}
|