@ynput/ayon-frontend-shared 0.3.39 → 0.3.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DetailsPanel.cjs.js +1 -1
- package/dist/DetailsPanel.es.js +23 -22
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +219 -218
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/_virtual/index.cjs22.js +1 -1
- package/dist/_virtual/index.cjs23.js +1 -1
- package/dist/_virtual/index.cjs24.js +1 -1
- package/dist/_virtual/index.cjs6.js +1 -1
- package/dist/_virtual/index.cjs8.js +1 -1
- package/dist/_virtual/index.es22.js +3 -3
- package/dist/_virtual/index.es23.js +5 -5
- package/dist/_virtual/index.es24.js +5 -5
- package/dist/_virtual/index.es6.js +2 -2
- package/dist/_virtual/index.es8.js +2 -2
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +219 -220
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +10 -9
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/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-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/src/api/generated/graphql.cjs.js +20 -58
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +37 -75
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +14 -16
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/grouping/getGrouping.es.js +6 -21
- package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -1
- package/dist/shared/src/api/queries/products/createProduct.cjs.js +1 -1
- package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/products/createProduct.es.js +7 -46
- package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -1
- package/dist/shared/src/api/queries/products/getProduct.cjs.js +2 -0
- package/dist/shared/src/api/queries/products/getProduct.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/products/getProduct.es.js +52 -0
- package/dist/shared/src/api/queries/products/getProduct.es.js.map +1 -0
- 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 +3 -2
- 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 +3 -2
- 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 +3 -2
- 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 +3 -2
- 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 +3 -2
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +5 -4
- 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 +3 -2
- 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 +3 -2
- 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 +3 -2
- 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 +3 -2
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +4 -3
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +3 -2
- 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 +3 -2
- package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +339 -353
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- 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 +5 -4
- 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 +3 -2
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +3 -2
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +7 -6
- 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 +3 -2
- 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 +3 -2
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +113 -119
- 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 +3 -2
- 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 +3 -2
- 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 +132 -122
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js +6 -6
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +148 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js +29 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js +34 -0
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js.map +1 -0
- 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 +3 -2
- 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 +3 -2
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.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 +17 -16
- 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 +3 -2
- 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 +3 -2
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js +9 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js +12 -12
- package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +3 -2
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +3 -2
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +3 -2
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +3 -2
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.styled.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/Feed.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.styled.es.js +5 -5
- 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 +3 -2
- 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 +3 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +3 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.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 +5 -4
- 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 +2 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +3 -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 +7 -6
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +3 -2
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.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 +3 -2
- 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 +3 -2
- 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 +3 -2
- 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 +365 -363
- 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 +3 -2
- 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 +3 -2
- 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 +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.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 +3 -2
- 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 +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +3 -2
- 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 +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.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 +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +3 -2
- 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 +3 -2
- 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 +14 -13
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +5 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +3 -2
- 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 +3 -2
- 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 +3 -2
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +3 -2
- 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 +3 -2
- 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 +3 -2
- 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 +3 -2
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +61 -82
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.es.js +83 -66
- package/dist/shared/src/context/ProjectContext.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 +5 -4
- package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
- package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
- package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
- package/dist/types/api/generated/graphql.d.ts +1 -34
- package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +3 -1
- package/dist/types/api/queries/entityLists/getLists.d.ts +2 -315
- package/dist/types/api/queries/products/createProduct.d.ts +2 -2
- package/dist/types/api/queries/products/getProduct.d.ts +259 -0
- package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -1
- package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.d.ts +3 -2
- package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.d.ts +7 -0
- package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.d.ts +2 -0
- package/dist/types/containers/DetailsPanel/helpers/buildEntityTypeIcons.d.ts +4 -0
- package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/types/index.d.ts +1 -0
- package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +1 -0
- package/dist/types/context/ProjectContext.d.ts +2 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { j as
|
|
2
|
-
import { createContext as
|
|
1
|
+
import { j as w } from "../../../_virtual/jsx-runtime.es.js";
|
|
2
|
+
import { createContext as E, useCallback as s, useContext as B } from "react";
|
|
3
3
|
import "../api/base/client.es.js";
|
|
4
4
|
import "../api/generated/graphql.es.js";
|
|
5
5
|
import "../api/generated/graphqlLinks.es.js";
|
|
@@ -76,7 +76,7 @@ import "../api/queries/links/getLinks.es.js";
|
|
|
76
76
|
import "../api/queries/permissions/getPermissions.es.js";
|
|
77
77
|
import "../api/queries/products/createProduct.es.js";
|
|
78
78
|
import "../api/queries/products/getFolderProducts.es.js";
|
|
79
|
-
import { useGetProjectQuery as
|
|
79
|
+
import { useGetProjectQuery as G, useGetProjectAnatomyQuery as Q } from "../api/queries/project/getProject.es.js";
|
|
80
80
|
import "../api/queries/project/updateProject.es.js";
|
|
81
81
|
import "../api/queries/projectFolders/projectFolders.es.js";
|
|
82
82
|
import "../api/queries/review/getReview.es.js";
|
|
@@ -97,10 +97,11 @@ import "../api/queries/watchers/getWatchers.es.js";
|
|
|
97
97
|
import "../api/queries/uris/getUris.es.js";
|
|
98
98
|
import "lodash";
|
|
99
99
|
import "react-toastify";
|
|
100
|
-
import { getEntityTypeIcon as
|
|
100
|
+
import { getEntityTypeIcon as d } from "../util/getEntityTypeIcon.es.js";
|
|
101
101
|
import "uuid";
|
|
102
102
|
import "../util/pubsub.es.js";
|
|
103
|
-
|
|
103
|
+
import { useGetProductTypesQuery as F } from "../api/queries/products/getProduct.es.js";
|
|
104
|
+
const L = {
|
|
104
105
|
name: "",
|
|
105
106
|
code: "",
|
|
106
107
|
productTypes: [],
|
|
@@ -117,82 +118,98 @@ const F = {
|
|
|
117
118
|
library: !1,
|
|
118
119
|
linkTypes: [],
|
|
119
120
|
ownAttrib: []
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
|
|
121
|
+
};
|
|
122
|
+
function M(t) {
|
|
123
|
+
if (!t)
|
|
124
|
+
return { productTypes: [], productBaseTypes: [] };
|
|
125
|
+
const n = t.productTypes || [], r = /* @__PURE__ */ new Map();
|
|
126
|
+
return n.forEach((i) => {
|
|
127
|
+
r.has(i.baseType) || r.set(i.baseType, {
|
|
128
|
+
name: i.baseType,
|
|
129
|
+
icon: i.icon,
|
|
130
|
+
color: i.color
|
|
131
|
+
});
|
|
132
|
+
}), {
|
|
133
|
+
productTypes: n,
|
|
134
|
+
productBaseTypes: Array.from(r.values())
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
const y = E(void 0), Qo = ({
|
|
138
|
+
projectName: t,
|
|
139
|
+
children: n
|
|
123
140
|
}) => {
|
|
124
141
|
const {
|
|
125
|
-
data:
|
|
126
|
-
isLoading:
|
|
127
|
-
isFetching:
|
|
128
|
-
isSuccess:
|
|
129
|
-
isUninitialized:
|
|
130
|
-
error:
|
|
142
|
+
data: r,
|
|
143
|
+
isLoading: i,
|
|
144
|
+
isFetching: l,
|
|
145
|
+
isSuccess: T,
|
|
146
|
+
isUninitialized: f,
|
|
147
|
+
error: P,
|
|
131
148
|
refetch: c
|
|
132
|
-
} =
|
|
133
|
-
{ projectName:
|
|
134
|
-
{ skip: !
|
|
135
|
-
),
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const t = m.find((C) => C.name === o);
|
|
149
|
+
} = G({ projectName: t }, { skip: !t }), { data: a = {}, refetch: u } = Q(
|
|
150
|
+
{ projectName: t },
|
|
151
|
+
{ skip: !t }
|
|
152
|
+
), p = a.product_base_types?.default, { data: x } = F(
|
|
153
|
+
{ projectName: t },
|
|
154
|
+
{
|
|
155
|
+
skip: !t
|
|
156
|
+
}
|
|
157
|
+
), { productTypes: m, productBaseTypes: b } = M(x), g = s(
|
|
158
|
+
(e) => r?.folderTypes?.find((o) => o.name === e),
|
|
159
|
+
[r]
|
|
160
|
+
), h = s(
|
|
161
|
+
(e) => r?.taskTypes?.find((o) => o.name === e),
|
|
162
|
+
[r]
|
|
163
|
+
), v = s(
|
|
164
|
+
(e) => {
|
|
165
|
+
const o = m.find((A) => A.name === e);
|
|
150
166
|
return {
|
|
151
|
-
icon:
|
|
152
|
-
color:
|
|
167
|
+
icon: o?.icon || p?.icon || d("product"),
|
|
168
|
+
color: o?.color || p?.color
|
|
153
169
|
};
|
|
154
170
|
},
|
|
155
|
-
[m,
|
|
156
|
-
),
|
|
157
|
-
value:
|
|
158
|
-
label:
|
|
159
|
-
icon:
|
|
160
|
-
color:
|
|
161
|
-
})), [m,
|
|
162
|
-
c(),
|
|
163
|
-
}, [c,
|
|
164
|
-
getFolderType:
|
|
165
|
-
getTaskType:
|
|
166
|
-
getProductType:
|
|
167
|
-
getProductTypeOptions:
|
|
168
|
-
refetch:
|
|
171
|
+
[m, p]
|
|
172
|
+
), k = s(() => m.map((o) => ({
|
|
173
|
+
value: o.name,
|
|
174
|
+
label: o.name,
|
|
175
|
+
icon: o.icon || p?.icon || d("product"),
|
|
176
|
+
color: o.color || p?.color || ""
|
|
177
|
+
})), [m, p]), C = s(() => {
|
|
178
|
+
c(), u();
|
|
179
|
+
}, [c, u]), j = {
|
|
180
|
+
getFolderType: g,
|
|
181
|
+
getTaskType: h,
|
|
182
|
+
getProductType: v,
|
|
183
|
+
getProductTypeOptions: k,
|
|
184
|
+
refetch: C
|
|
169
185
|
};
|
|
170
|
-
return /* @__PURE__ */
|
|
171
|
-
|
|
186
|
+
return /* @__PURE__ */ w.jsx(
|
|
187
|
+
y.Provider,
|
|
172
188
|
{
|
|
173
189
|
value: {
|
|
174
|
-
...
|
|
175
|
-
...
|
|
176
|
-
projectName:
|
|
190
|
+
...L,
|
|
191
|
+
...r,
|
|
192
|
+
projectName: t,
|
|
177
193
|
productTypes: m,
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
194
|
+
productBaseTypes: b,
|
|
195
|
+
anatomy: a,
|
|
196
|
+
isLoading: i || l,
|
|
197
|
+
isSuccess: T,
|
|
198
|
+
isUninitialized: f,
|
|
199
|
+
error: P,
|
|
200
|
+
...j
|
|
184
201
|
},
|
|
185
|
-
children:
|
|
202
|
+
children: n
|
|
186
203
|
}
|
|
187
204
|
);
|
|
188
|
-
},
|
|
189
|
-
const
|
|
190
|
-
if (
|
|
205
|
+
}, Fo = () => {
|
|
206
|
+
const t = B(y);
|
|
207
|
+
if (t === void 0)
|
|
191
208
|
throw new Error("useProjectContext must be used within a ProjectProviderContext");
|
|
192
|
-
return
|
|
209
|
+
return t;
|
|
193
210
|
};
|
|
194
211
|
export {
|
|
195
|
-
|
|
196
|
-
|
|
212
|
+
Qo as ProjectContextProvider,
|
|
213
|
+
Fo as useProjectContext
|
|
197
214
|
};
|
|
198
215
|
//# sourceMappingURL=ProjectContext.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectContext.es.js","sources":["../../../../src/context/ProjectContext.tsx"],"sourcesContent":["import { createContext, useContext, useCallback } from 'react'\nimport { useGetProjectQuery, useGetProjectAnatomyQuery } from '@shared/api'\nimport { getEntityTypeIcon } from '@shared/util'\n\nimport type {
|
|
1
|
+
{"version":3,"file":"ProjectContext.es.js","sources":["../../../../src/context/ProjectContext.tsx"],"sourcesContent":["import { createContext, useContext, useCallback } from 'react'\nimport { useGetProjectQuery, useGetProjectAnatomyQuery } from '@shared/api'\nimport { getEntityTypeIcon } from '@shared/util'\n\nimport type {\n FolderType,\n TaskType,\n ProductTypeListItem,\n ProjectModel,\n Anatomy,\n ProductType,\n ProductTypesList,\n} from '@shared/api'\nimport { useGetProductTypesQuery } from '@shared/api/queries/products/getProduct'\n\nexport type ProjectModelWithProducts = ProjectModel & {\n // Extend project with product types\n productTypes: ProductTypeListItem[]\n}\n\nconst emptyProject: ProjectModelWithProducts = {\n name: '',\n code: '',\n productTypes: [],\n folderTypes: [],\n taskTypes: [],\n tags: [],\n statuses: [],\n createdAt: '',\n updatedAt: '',\n active: true,\n attrib: {},\n data: {},\n config: {},\n library: false,\n linkTypes: [],\n ownAttrib: [],\n}\n\nfunction getProductTypesData(sourceData: ProductTypesList | undefined) {\n if (!sourceData) {\n return { productTypes: [], productBaseTypes: [] }\n }\n const productTypes = sourceData.productTypes || []\n\n // Create unique base types by mapping and filtering duplicates\n const baseTypesMap = new Map<string, ProductType>()\n\n productTypes.forEach((item: any) => {\n if (!baseTypesMap.has(item.baseType)) {\n baseTypesMap.set(item.baseType, {\n name: item.baseType,\n icon: item.icon,\n color: item.color,\n })\n }\n })\n\n return {\n productTypes,\n productBaseTypes: Array.from(baseTypesMap.values()),\n }\n}\n\nexport interface ProjectContextValue extends ProjectModelWithProducts {\n projectName: string\n isLoading: boolean\n isSuccess: boolean\n isUninitialized: boolean\n error: any\n anatomy: Anatomy\n productBaseTypes: ProductType[]\n\n refetch: () => void\n getProductType: (productType: string) => {\n icon: string\n color: string | undefined\n }\n getFolderType: (name: string) => FolderType | undefined\n getTaskType: (name: string) => TaskType | undefined\n getProductTypeOptions: () => { value: string; label: string; icon?: string; color?: string }[]\n}\n\nconst ProjectContext = createContext<ProjectContextValue | undefined>(undefined)\n\n//\n// ProjectProvider\n//\n\ninterface ProjectProviderProps {\n projectName: string\n children: React.ReactNode\n}\n\nexport const ProjectContextProvider: React.FC<ProjectProviderProps> = ({\n projectName,\n children,\n}: ProjectProviderProps) => {\n // PROJECT\n const {\n data: project,\n isLoading,\n isFetching,\n isSuccess,\n isUninitialized,\n error,\n refetch: refetchProject,\n } = useGetProjectQuery({ projectName }, { skip: !projectName })\n // ANATOMY\n const { data: anatomy = {}, refetch: refetchAnatomy } = useGetProjectAnatomyQuery(\n { projectName },\n { skip: !projectName },\n )\n\n // Shorthands to access project data and type casting\n // (we're referencing nested objects. no need to use useMemo for these)\n\n const defaultProductType = anatomy.product_base_types?.['default']\n\n const { data: productTypesAll } = useGetProductTypesQuery(\n { projectName: projectName },\n {\n skip: !projectName,\n },\n )\n\n const { productTypes, productBaseTypes } = getProductTypesData(productTypesAll)\n\n //\n // Magic functions\n //\n\n // Folder types\n const getFolderType = useCallback(\n (name: string): FolderType | undefined => {\n return project?.folderTypes?.find((type: FolderType) => type.name === name)\n },\n [project],\n )\n\n // Task types\n const getTaskType = useCallback(\n (name: string): TaskType | undefined => {\n return project?.taskTypes?.find((type: TaskType) => type.name === name)\n },\n [project],\n )\n\n // Product types\n const getProductType = useCallback(\n (productType: string) => {\n const type = productTypes.find((t) => t.name === productType)\n return {\n icon: type?.icon || defaultProductType?.icon || getEntityTypeIcon('product'),\n color: type?.color || defaultProductType?.color,\n }\n },\n [productTypes, defaultProductType],\n )\n\n const getProductTypeOptions = useCallback((): {\n value: string\n label: string\n icon: string\n }[] => {\n // Return a list of product type ready to be used in a select input\n const result = productTypes.map((type) => ({\n value: type.name,\n label: type.name,\n icon: type.icon || defaultProductType?.icon || getEntityTypeIcon('product'),\n color: type.color || defaultProductType?.color || '',\n }))\n return result\n }, [productTypes, defaultProductType])\n\n const refetch = useCallback(() => {\n refetchProject()\n refetchAnatomy()\n }, [refetchProject, refetchAnatomy])\n\n //\n // Put everything together\n //\n\n const functions = {\n getFolderType,\n getTaskType,\n getProductType,\n getProductTypeOptions,\n refetch,\n }\n\n return (\n <ProjectContext.Provider\n value={{\n ...emptyProject,\n ...project,\n projectName,\n productTypes,\n productBaseTypes,\n anatomy,\n isLoading: isLoading || isFetching,\n isSuccess: isSuccess,\n isUninitialized,\n error,\n ...functions,\n }}\n >\n {children}\n </ProjectContext.Provider>\n )\n}\n\nexport const useProjectContext = () => {\n const context = useContext(ProjectContext)\n if (context === undefined) {\n throw new Error('useProjectContext must be used within a ProjectProviderContext')\n }\n return context\n}\n"],"names":["emptyProject","getProductTypesData","sourceData","productTypes","baseTypesMap","item","ProjectContext","createContext","ProjectContextProvider","projectName","children","project","isLoading","isFetching","isSuccess","isUninitialized","error","refetchProject","useGetProjectQuery","anatomy","refetchAnatomy","useGetProjectAnatomyQuery","defaultProductType","productTypesAll","useGetProductTypesQuery","productBaseTypes","getFolderType","useCallback","name","type","getTaskType","getProductType","productType","t","getEntityTypeIcon","getProductTypeOptions","refetch","functions","jsx","useProjectContext","context","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,MAAMA,IAAyC;AAAA,EAC7C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,cAAc,CAAA;AAAA,EACd,aAAa,CAAA;AAAA,EACb,WAAW,CAAA;AAAA,EACX,MAAM,CAAA;AAAA,EACN,UAAU,CAAA;AAAA,EACV,WAAW;AAAA,EACX,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ,CAAA;AAAA,EACR,MAAM,CAAA;AAAA,EACN,QAAQ,CAAA;AAAA,EACR,SAAS;AAAA,EACT,WAAW,CAAA;AAAA,EACX,WAAW,CAAA;AACb;AAEA,SAASC,EAAoBC,GAA0C;AACrE,MAAI,CAACA;AACH,WAAO,EAAE,cAAc,IAAI,kBAAkB,CAAA,EAAC;AAEhD,QAAMC,IAAeD,EAAW,gBAAgB,CAAA,GAG1CE,wBAAmB,IAAA;AAEzB,SAAAD,EAAa,QAAQ,CAACE,MAAc;AAClC,IAAKD,EAAa,IAAIC,EAAK,QAAQ,KACjCD,EAAa,IAAIC,EAAK,UAAU;AAAA,MAC9B,MAAMA,EAAK;AAAA,MACX,MAAMA,EAAK;AAAA,MACX,OAAOA,EAAK;AAAA,IAAA,CACb;AAAA,EAEL,CAAC,GAEM;AAAA,IACL,cAAAF;AAAA,IACA,kBAAkB,MAAM,KAAKC,EAAa,QAAQ;AAAA,EAAA;AAEtD;AAqBA,MAAME,IAAiBC,EAA+C,MAAS,GAWlEC,KAAyD,CAAC;AAAA,EACrE,aAAAC;AAAA,EACA,UAAAC;AACF,MAA4B;AAE1B,QAAM;AAAA,IACJ,MAAMC;AAAA,IACN,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAASC;AAAA,EAAA,IACPC,EAAmB,EAAE,aAAAT,EAAA,GAAe,EAAE,MAAM,CAACA,GAAa,GAExD,EAAE,MAAMU,IAAU,CAAA,GAAI,SAASC,MAAmBC;AAAA,IACtD,EAAE,aAAAZ,EAAA;AAAA,IACF,EAAE,MAAM,CAACA,EAAA;AAAA,EAAY,GAMjBa,IAAqBH,EAAQ,oBAAqB,SAElD,EAAE,MAAMI,EAAA,IAAoBC;AAAA,IAChC,EAAE,aAAAf,EAAA;AAAA,IACF;AAAA,MACE,MAAM,CAACA;AAAA,IAAA;AAAA,EACT,GAGI,EAAE,cAAAN,GAAc,kBAAAsB,MAAqBxB,EAAoBsB,CAAe,GAOxEG,IAAgBC;AAAA,IACpB,CAACC,MACQjB,GAAS,aAAa,KAAK,CAACkB,MAAqBA,EAAK,SAASD,CAAI;AAAA,IAE5E,CAACjB,CAAO;AAAA,EAAA,GAIJmB,IAAcH;AAAA,IAClB,CAACC,MACQjB,GAAS,WAAW,KAAK,CAACkB,MAAmBA,EAAK,SAASD,CAAI;AAAA,IAExE,CAACjB,CAAO;AAAA,EAAA,GAIJoB,IAAiBJ;AAAA,IACrB,CAACK,MAAwB;AACvB,YAAMH,IAAO1B,EAAa,KAAK,CAAC8B,MAAMA,EAAE,SAASD,CAAW;AAC5D,aAAO;AAAA,QACL,MAAMH,GAAM,QAAQP,GAAoB,QAAQY,EAAkB,SAAS;AAAA,QAC3E,OAAOL,GAAM,SAASP,GAAoB;AAAA,MAAA;AAAA,IAE9C;AAAA,IACA,CAACnB,GAAcmB,CAAkB;AAAA,EAAA,GAG7Ba,IAAwBR,EAAY,MAMzBxB,EAAa,IAAI,CAAC0B,OAAU;AAAA,IACzC,OAAOA,EAAK;AAAA,IACZ,OAAOA,EAAK;AAAA,IACZ,MAAMA,EAAK,QAAQP,GAAoB,QAAQY,EAAkB,SAAS;AAAA,IAC1E,OAAOL,EAAK,SAASP,GAAoB,SAAS;AAAA,EAAA,EAClD,GAED,CAACnB,GAAcmB,CAAkB,CAAC,GAE/Bc,IAAUT,EAAY,MAAM;AAChC,IAAAV,EAAA,GACAG,EAAA;AAAA,EACF,GAAG,CAACH,GAAgBG,CAAc,CAAC,GAM7BiB,IAAY;AAAA,IAChB,eAAAX;AAAA,IACA,aAAAI;AAAA,IACA,gBAAAC;AAAA,IACA,uBAAAI;AAAA,IACA,SAAAC;AAAA,EAAA;AAGF,SACEE,gBAAAA,EAAAA;AAAAA,IAAChC,EAAe;AAAA,IAAf;AAAA,MACC,OAAO;AAAA,QACL,GAAGN;AAAA,QACH,GAAGW;AAAA,QACH,aAAAF;AAAA,QACA,cAAAN;AAAA,QACA,kBAAAsB;AAAA,QACA,SAAAN;AAAA,QACA,WAAWP,KAAaC;AAAA,QACxB,WAAAC;AAAA,QACA,iBAAAC;AAAA,QACA,OAAAC;AAAA,QACA,GAAGqB;AAAA,MAAA;AAAA,MAGJ,UAAA3B;AAAA,IAAA;AAAA,EAAA;AAGP,GAEa6B,KAAoB,MAAM;AACrC,QAAMC,IAAUC,EAAWnC,CAAc;AACzC,MAAIkC,MAAY;AACd,UAAM,IAAI,MAAM,gEAAgE;AAElF,SAAOA;AACT;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("../../../_virtual/jsx-runtime.cjs.js"),e=require("react"),b=require("react-toastify"),w=require("lodash");require("uuid");const l=require("../util/pubsub.cjs.js"),x=require("../../../_virtual/index.cjs2.js"),W=require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/dataImport.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/projectFolders.cjs.js");require("../api/generated/reviewables.cjs.js");require("../api/generated/services.cjs.js");require("../api/generated/system.cjs.js");require("../api/generated/tasks.cjs.js");require("../api/generated/teams.cjs.js");require("../api/generated/thumbnails.cjs.js");require("../api/generated/uRIs.cjs.js");require("../api/generated/users.cjs.js");require("../api/generated/versions.cjs.js");require("../api/generated/workfiles.cjs.js");require("../api/generated/ynputCloud.cjs.js");require("../api/generated/grouping.cjs.js");require("../api/generated/views.cjs.js");require("../api/queries/actions/getActions.cjs.js");require("../api/queries/activities/getActivities.cjs.js");require("../api/queries/activities/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");const $=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("../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("../../../_virtual/index.cjs.js");require("../../../node_modules/refractor/lib/common.cjs.js");require("../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */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("../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../containers/Feed/components/CommentInput/modules/index.cjs.js");require("./RemoteModulesContext.cjs.js");require("../../../_virtual/runtime.cjs.js");require("../../../_virtual/semver.cjs.js");require("./PowerpackContextInstance.cjs.js");require("./UriContext.cjs.js");require("./DetailsPanelContextInstance.cjs.js");require("./SubtasksModulesContextInstance.cjs.js");require("./ThumbnailUploaderContext.cjs.js");require("./SettingsPanelContext.cjs.js");require("./pip/PiPProvider.cjs.js");require("./pip/PiPWrapper.cjs.js");require("./AddonProjectContext.cjs.js");require("./AddonContext.cjs.js");require("./MoveEntityContext.cjs.js");require("./MenuContext.cjs.js");require("./GlobalContext.cjs.js");require("./ProjectContext.cjs.js");require("./ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");require("../containers/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("../containers/ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../containers/Feed/context/FeedContext.cjs.js");require("../containers/Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../containers/Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("remark-emoji");require("remark-directive");require("remark-directive-rehype");require("../containers/Feed/components/CommentInput/CommentInput.cjs.js");require("../containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../containers/Feed/components/ActivityDate.cjs.js");require("../containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../containers/Feed/Feed.styled.cjs.js");require("../containers/Feed/components/FeedSearchFilter.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js");require("../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/LinksWidget.cjs.js");require("../components/LinksManager/LinksManager.styled.cjs.js");require("../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../containers/ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("../components/SearchFilter/filterDates.cjs.js");require("short-uuid");require("../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../containers/ProjectTreeTable/components/DeleteConfirmContent.cjs.js");require("../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../containers/ProjectTreeTable/components/TableFooterRow.cjs.js");require("../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../containers/Slicer/components/Slicer.cjs.js");require("../containers/Slicer/context/SlicerContext.cjs.js");require("../containers/Slicer/hooks/useTableDataBySlice.cjs.js");require("../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../components/PlayableIcon/PlayableIcon.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../containers/Actions/Actions.styled.cjs.js");require("../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../containers/Actions/ActionIcon.cjs.js");require("../containers/Views/ViewsMenu/ViewsMenu.cjs.js");require("../containers/Views/context/ViewsContextInstance.cjs.js");require("../containers/Views/Views.styled.cjs.js");require("../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../containers/ListTable/ListTableRow.cjs.js");require("../containers/ListTable/ListTable.styled.cjs.js");require("../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");const A=require("../components/RefreshToast/RefreshToast.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");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 k=require("./WebsocketContextInstance.cjs.js"),J=window.location.protocol.replace("http","ws"),N=`${J}//${window.location.host}/ws`,V=({children:q,userName:C,projectName:d,dispatch:m})=>{const[f,o]=e.useState(!1),[t,v]=e.useState([]),[R]=$.useLazyGetSiteInfoQuery(),y={shouldReconnect:()=>!C||!localStorage.getItem("accessToken")?!1:(R({full:!1}).unwrap(),!0)},{sendMessage:T,readyState:n,getWebSocket:c}=x.default(N,y),S=()=>{T(JSON.stringify({topic:"auth",token:localStorage.getItem("accessToken"),subscribe:t,project:d}))};e.useEffect(()=>{console.debug("Topics changed",t),S()},[t,d]);const E=w.debounce(r=>{w.isEqual(t,r)||(console.log("WS: Subscriptions changed"),v(r))},200);l.setOnSubscriptionsChange(r=>E(r));const[g,a]=e.useState(!1),[O,I]=e.useState(!1);e.useEffect(()=>(g&&(O||(b.toast.warning(h.jsxRuntimeExports.jsx(A.RefreshToast,{}),{autoClose:!1,closeButton:!1}),I(!0))),()=>{a(!1)}),[g,a]);const u=e.useRef({callCount:0,lastCall:Date.now()}),j=e.useCallback(r=>{if(u.current.callCount>1e3)return a(!0),console.log("Overload: Over 1000 messages per second. Ignoring subsequent messages.");let i;try{i=JSON.parse(r.data)}catch(M){console.error("Failed to parse websocket message:",M,r.data);return}const{topic:s,sender:P,summary:D}=i||{};if(s==="heartbeat"||(s==="server.restart_requested"&&o(!0),P===window.senderId))return;const p=Date.now();p-u.current.lastCall<1e3?u.current.callCount+=1:u.current.callCount=0,u.current.lastCall=p,s==="shout"&&i?.summary?.text&&b.toast.info(D.text),console.log("Event RX",i),l.publish(s,i)},[o]);return e.useEffect(()=>{n===x.distExports.ReadyState.OPEN&&(f&&(o(!1),m(W.api.util.resetApiState())),c().onmessage=j,S(),l.publish("client.connected",{topic:"client.connected"}))},[n,c]),h.jsxRuntimeExports.jsx(k.SocketContext.Provider,{value:{getWebSocket:c,readyState:n,serverRestartingVisible:f},children:q})},z=()=>{const q=e.useContext(k.SocketContext);if(q===void 0)throw new Error("useSocketContext must be used within a SocketProvider");return q};exports.SocketProvider=V;exports.useSocketContext=z;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("../../../_virtual/jsx-runtime.cjs.js"),e=require("react"),b=require("react-toastify"),w=require("lodash");require("uuid");const l=require("../util/pubsub.cjs.js"),x=require("../../../_virtual/index.cjs2.js"),W=require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/dataImport.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/projectFolders.cjs.js");require("../api/generated/reviewables.cjs.js");require("../api/generated/services.cjs.js");require("../api/generated/system.cjs.js");require("../api/generated/tasks.cjs.js");require("../api/generated/teams.cjs.js");require("../api/generated/thumbnails.cjs.js");require("../api/generated/uRIs.cjs.js");require("../api/generated/users.cjs.js");require("../api/generated/versions.cjs.js");require("../api/generated/workfiles.cjs.js");require("../api/generated/ynputCloud.cjs.js");require("../api/generated/grouping.cjs.js");require("../api/generated/views.cjs.js");require("../api/queries/actions/getActions.cjs.js");require("../api/queries/activities/getActivities.cjs.js");require("../api/queries/activities/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");const $=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("../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("../../../_virtual/index.cjs.js");require("../../../node_modules/refractor/lib/common.cjs.js");require("../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */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("../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../containers/Feed/components/CommentInput/modules/index.cjs.js");require("./RemoteModulesContext.cjs.js");require("../../../_virtual/runtime.cjs.js");require("../../../_virtual/semver.cjs.js");require("./PowerpackContextInstance.cjs.js");require("./UriContext.cjs.js");require("./DetailsPanelContextInstance.cjs.js");require("./SubtasksModulesContextInstance.cjs.js");require("./ThumbnailUploaderContext.cjs.js");require("./SettingsPanelContext.cjs.js");require("./pip/PiPProvider.cjs.js");require("./pip/PiPWrapper.cjs.js");require("./AddonProjectContext.cjs.js");require("./AddonContext.cjs.js");require("./MoveEntityContext.cjs.js");require("./MenuContext.cjs.js");require("./GlobalContext.cjs.js");require("./ProjectContext.cjs.js");require("./ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");require("../containers/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("../containers/ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../containers/Feed/context/FeedContext.cjs.js");require("../containers/Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../containers/Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("remark-emoji");require("remark-directive");require("remark-directive-rehype");require("../containers/Feed/components/CommentInput/CommentInput.cjs.js");require("../containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../containers/Feed/components/ActivityDate.cjs.js");require("../containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../containers/Feed/Feed.styled.cjs.js");require("../containers/Feed/components/FeedSearchFilter.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js");require("../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/LinksWidget.cjs.js");require("../components/LinksManager/LinksManager.styled.cjs.js");require("../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../containers/ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("../components/SearchFilter/filterDates.cjs.js");require("short-uuid");require("../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../containers/ProjectTreeTable/components/DeleteConfirmContent.cjs.js");require("../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../containers/ProjectTreeTable/components/TableFooterRow.cjs.js");require("../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../containers/Slicer/components/Slicer.cjs.js");require("../containers/Slicer/context/SlicerContext.cjs.js");require("../containers/Slicer/hooks/useTableDataBySlice.cjs.js");require("../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../components/PlayableIcon/PlayableIcon.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../containers/Actions/Actions.styled.cjs.js");require("../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../containers/Actions/ActionIcon.cjs.js");require("../containers/Views/ViewsMenu/ViewsMenu.cjs.js");require("../containers/Views/context/ViewsContextInstance.cjs.js");require("../containers/Views/Views.styled.cjs.js");require("../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../containers/ListTable/ListTableRow.cjs.js");require("../containers/ListTable/ListTable.styled.cjs.js");require("../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");const A=require("../components/RefreshToast/RefreshToast.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");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 k=require("./WebsocketContextInstance.cjs.js"),J=window.location.protocol.replace("http","ws"),N=`${J}//${window.location.host}/ws`,V=({children:q,userName:C,projectName:d,dispatch:m})=>{const[f,o]=e.useState(!1),[t,v]=e.useState([]),[R]=$.useLazyGetSiteInfoQuery(),y={shouldReconnect:()=>!C||!localStorage.getItem("accessToken")?!1:(R({full:!1}).unwrap(),!0)},{sendMessage:T,readyState:n,getWebSocket:c}=x.default(N,y),S=()=>{T(JSON.stringify({topic:"auth",token:localStorage.getItem("accessToken"),subscribe:t,project:d}))};e.useEffect(()=>{console.debug("Topics changed",t),S()},[t,d]);const E=w.debounce(r=>{w.isEqual(t,r)||(console.log("WS: Subscriptions changed"),v(r))},200);l.setOnSubscriptionsChange(r=>E(r));const[g,a]=e.useState(!1),[O,I]=e.useState(!1);e.useEffect(()=>(g&&(O||(b.toast.warning(h.jsxRuntimeExports.jsx(A.RefreshToast,{}),{autoClose:!1,closeButton:!1}),I(!0))),()=>{a(!1)}),[g,a]);const u=e.useRef({callCount:0,lastCall:Date.now()}),j=e.useCallback(r=>{if(u.current.callCount>1e3)return a(!0),console.log("Overload: Over 1000 messages per second. Ignoring subsequent messages.");let i;try{i=JSON.parse(r.data)}catch(M){console.error("Failed to parse websocket message:",M,r.data);return}const{topic:s,sender:P,summary:D}=i||{};if(s==="heartbeat"||(s==="server.restart_requested"&&o(!0),P===window.senderId))return;const p=Date.now();p-u.current.lastCall<1e3?u.current.callCount+=1:u.current.callCount=0,u.current.lastCall=p,s==="shout"&&i?.summary?.text&&b.toast.info(D.text),console.log("Event RX",i),l.publish(s,i)},[o]);return e.useEffect(()=>{n===x.distExports.ReadyState.OPEN&&(f&&(o(!1),m(W.api.util.resetApiState())),c().onmessage=j,S(),l.publish("client.connected",{topic:"client.connected"}))},[n,c]),h.jsxRuntimeExports.jsx(k.SocketContext.Provider,{value:{getWebSocket:c,readyState:n,serverRestartingVisible:f},children:q})},z=()=>{const q=e.useContext(k.SocketContext);if(q===void 0)throw new Error("useSocketContext must be used within a SocketProvider");return q};exports.SocketProvider=V;exports.useSocketContext=z;
|
|
2
2
|
//# sourceMappingURL=WebsocketContext.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebsocketContext.cjs.js","sources":["../../../../src/context/WebsocketContext.tsx"],"sourcesContent":["import { useEffect, useState, useCallback, useRef, useContext } from 'react'\nimport { toast } from 'react-toastify'\nimport { PubSub } from '@shared/util'\nimport useWebSocket, { ReadyState } from 'react-use-websocket'\nimport { debounce, isEqual } from 'lodash'\nimport api from '@shared/api'\nimport { RefreshToast } from '@shared/components'\nimport { useLazyGetSiteInfoQuery } from '@shared/api'\nimport { WebSocketLike } from 'react-use-websocket/dist/lib/types'\nimport { SocketContext } from './WebsocketContextInstance'\n\nexport type WebsocketContextType = {\n getWebSocket: () => WebSocketLike | null\n readyState: ReadyState\n serverRestartingVisible: boolean\n}\n\nconst proto = window.location.protocol.replace('http', 'ws')\nconst wsAddress = `${proto}//${window.location.host}/ws`\n\n// define global window senderId type\ndeclare global {\n interface Window {\n senderId: string\n }\n}\n\nexport type SocketProviderProps = {\n children: React.ReactNode\n userName?: string\n projectName?: string\n dispatch: any\n}\n\nexport const SocketProvider = ({\n children,\n userName,\n projectName,\n dispatch,\n}: SocketProviderProps) => {\n // get user logged in\n const [serverRestartingVisible, setServerRestartingVisible] = useState(false)\n const [topics, setTopics] = useState([])\n const [getInfo] = useLazyGetSiteInfoQuery()\n\n const wsOpts = {\n shouldReconnect: () => {\n if (!userName) return false\n // check if there is a token\n const accessToken = localStorage.getItem('accessToken')\n if (!accessToken) return false\n\n // test if the token is valid\n // if it's not then this will automatically log out the user\n getInfo({ full: false }).unwrap()\n\n return true\n },\n }\n\n const { sendMessage, readyState, getWebSocket } = useWebSocket(wsAddress, wsOpts)\n\n const subscribe = () => {\n sendMessage(\n JSON.stringify({\n topic: 'auth',\n token: localStorage.getItem('accessToken'),\n subscribe: topics,\n project: projectName,\n }),\n )\n }\n\n useEffect(() => {\n console.debug('Topics changed', topics)\n subscribe()\n }, [topics, projectName])\n\n const updateTopicsDebounce = debounce((newTopics) => {\n if (isEqual(topics, newTopics)) return\n console.log('WS: Subscriptions changed')\n setTopics(newTopics)\n }, 200)\n\n PubSub.setOnSubscriptionsChange((newTopics: string[]) => updateTopicsDebounce(newTopics))\n\n const [overloaded, setOverloaded] = useState(false)\n const [toastShown, setToastShown] = useState(false)\n\n // when overloaded is true, activate toast\n useEffect(() => {\n if (overloaded)\n if (!toastShown) {\n toast.warning(<RefreshToast />, {\n autoClose: false,\n closeButton: false,\n })\n setToastShown(true)\n }\n\n return () => {\n setOverloaded(false)\n }\n }, [overloaded, setOverloaded])\n\n // onMessage is a function that is called when a message comes in from the websocket\n // it is a closure that keeps track of the number of calls and the last call time\n // Using useRef to persist the closure state across renders\n const messageStatsRef = useRef({ callCount: 0, lastCall: Date.now() })\n\n const onMessage = useCallback(\n (message: any) => {\n // If the function is called more than 100 times per second, return early.\n const threshold = 1000\n if (messageStatsRef.current.callCount > threshold) {\n setOverloaded(true)\n return console.log(\n `Overload: Over ${threshold} messages per second. Ignoring subsequent messages.`,\n )\n }\n\n let data\n try {\n data = JSON.parse(message.data)\n } catch (error) {\n console.error('Failed to parse websocket message:', error, message.data)\n return\n }\n\n const { topic, sender, summary } = data || {}\n if (topic === 'heartbeat') return\n\n if (topic === 'server.restart_requested') setServerRestartingVisible(true)\n\n if (sender === window.senderId) {\n return // my own message. ignore\n }\n\n const now = Date.now()\n if (now - messageStatsRef.current.lastCall < 1000) {\n messageStatsRef.current.callCount += 1\n } else {\n messageStatsRef.current.callCount = 0\n }\n\n messageStatsRef.current.lastCall = now\n\n if (topic === 'shout' && data?.summary?.text) toast.info(summary.text)\n\n console.log('Event RX', data)\n PubSub.publish(topic, data)\n },\n [setServerRestartingVisible],\n )\n\n useEffect(() => {\n if (readyState === ReadyState.OPEN) {\n if (serverRestartingVisible) {\n setServerRestartingVisible(false)\n // clear ayonApi\n dispatch(api.util.resetApiState())\n }\n // @ts-ignore\n getWebSocket().onmessage = onMessage\n subscribe()\n // Dispatch a fake event to the frontend components\n // in case they depend on the event stream and may\n // miss some messages - this should force reloading\n // events using graphql\n PubSub.publish('client.connected', {\n topic: 'client.connected',\n })\n }\n }, [readyState, getWebSocket])\n\n return (\n <SocketContext.Provider\n value={{\n getWebSocket,\n readyState,\n serverRestartingVisible,\n }}\n >\n {children}\n </SocketContext.Provider>\n )\n}\n\nexport const useSocketContext = () => {\n const context = useContext(SocketContext)\n if (context === undefined) {\n throw new Error('useSocketContext must be used within a SocketProvider')\n }\n return context\n}\n"],"names":["proto","wsAddress","SocketProvider","children","userName","projectName","dispatch","serverRestartingVisible","setServerRestartingVisible","useState","topics","setTopics","getInfo","useLazyGetSiteInfoQuery","wsOpts","sendMessage","readyState","getWebSocket","useWebSocket","subscribe","useEffect","updateTopicsDebounce","debounce","newTopics","isEqual","PubSub","overloaded","setOverloaded","toastShown","setToastShown","toast","jsx","RefreshToast","messageStatsRef","useRef","onMessage","useCallback","message","data","error","topic","sender","summary","now","ReadyState","api","SocketContext","useSocketContext","context","useContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"WebsocketContext.cjs.js","sources":["../../../../src/context/WebsocketContext.tsx"],"sourcesContent":["import { useEffect, useState, useCallback, useRef, useContext } from 'react'\nimport { toast } from 'react-toastify'\nimport { PubSub } from '@shared/util'\nimport useWebSocket, { ReadyState } from 'react-use-websocket'\nimport { debounce, isEqual } from 'lodash'\nimport api from '@shared/api'\nimport { RefreshToast } from '@shared/components'\nimport { useLazyGetSiteInfoQuery } from '@shared/api'\nimport { WebSocketLike } from 'react-use-websocket/dist/lib/types'\nimport { SocketContext } from './WebsocketContextInstance'\n\nexport type WebsocketContextType = {\n getWebSocket: () => WebSocketLike | null\n readyState: ReadyState\n serverRestartingVisible: boolean\n}\n\nconst proto = window.location.protocol.replace('http', 'ws')\nconst wsAddress = `${proto}//${window.location.host}/ws`\n\n// define global window senderId type\ndeclare global {\n interface Window {\n senderId: string\n }\n}\n\nexport type SocketProviderProps = {\n children: React.ReactNode\n userName?: string\n projectName?: string\n dispatch: any\n}\n\nexport const SocketProvider = ({\n children,\n userName,\n projectName,\n dispatch,\n}: SocketProviderProps) => {\n // get user logged in\n const [serverRestartingVisible, setServerRestartingVisible] = useState(false)\n const [topics, setTopics] = useState([])\n const [getInfo] = useLazyGetSiteInfoQuery()\n\n const wsOpts = {\n shouldReconnect: () => {\n if (!userName) return false\n // check if there is a token\n const accessToken = localStorage.getItem('accessToken')\n if (!accessToken) return false\n\n // test if the token is valid\n // if it's not then this will automatically log out the user\n getInfo({ full: false }).unwrap()\n\n return true\n },\n }\n\n const { sendMessage, readyState, getWebSocket } = useWebSocket(wsAddress, wsOpts)\n\n const subscribe = () => {\n sendMessage(\n JSON.stringify({\n topic: 'auth',\n token: localStorage.getItem('accessToken'),\n subscribe: topics,\n project: projectName,\n }),\n )\n }\n\n useEffect(() => {\n console.debug('Topics changed', topics)\n subscribe()\n }, [topics, projectName])\n\n const updateTopicsDebounce = debounce((newTopics) => {\n if (isEqual(topics, newTopics)) return\n console.log('WS: Subscriptions changed')\n setTopics(newTopics)\n }, 200)\n\n PubSub.setOnSubscriptionsChange((newTopics: string[]) => updateTopicsDebounce(newTopics))\n\n const [overloaded, setOverloaded] = useState(false)\n const [toastShown, setToastShown] = useState(false)\n\n // when overloaded is true, activate toast\n useEffect(() => {\n if (overloaded)\n if (!toastShown) {\n toast.warning(<RefreshToast />, {\n autoClose: false,\n closeButton: false,\n })\n setToastShown(true)\n }\n\n return () => {\n setOverloaded(false)\n }\n }, [overloaded, setOverloaded])\n\n // onMessage is a function that is called when a message comes in from the websocket\n // it is a closure that keeps track of the number of calls and the last call time\n // Using useRef to persist the closure state across renders\n const messageStatsRef = useRef({ callCount: 0, lastCall: Date.now() })\n\n const onMessage = useCallback(\n (message: any) => {\n // If the function is called more than 100 times per second, return early.\n const threshold = 1000\n if (messageStatsRef.current.callCount > threshold) {\n setOverloaded(true)\n return console.log(\n `Overload: Over ${threshold} messages per second. Ignoring subsequent messages.`,\n )\n }\n\n let data\n try {\n data = JSON.parse(message.data)\n } catch (error) {\n console.error('Failed to parse websocket message:', error, message.data)\n return\n }\n\n const { topic, sender, summary } = data || {}\n if (topic === 'heartbeat') return\n\n if (topic === 'server.restart_requested') setServerRestartingVisible(true)\n\n if (sender === window.senderId) {\n return // my own message. ignore\n }\n\n const now = Date.now()\n if (now - messageStatsRef.current.lastCall < 1000) {\n messageStatsRef.current.callCount += 1\n } else {\n messageStatsRef.current.callCount = 0\n }\n\n messageStatsRef.current.lastCall = now\n\n if (topic === 'shout' && data?.summary?.text) toast.info(summary.text)\n\n console.log('Event RX', data)\n PubSub.publish(topic, data)\n },\n [setServerRestartingVisible],\n )\n\n useEffect(() => {\n if (readyState === ReadyState.OPEN) {\n if (serverRestartingVisible) {\n setServerRestartingVisible(false)\n // clear ayonApi\n dispatch(api.util.resetApiState())\n }\n // @ts-ignore\n getWebSocket().onmessage = onMessage\n subscribe()\n // Dispatch a fake event to the frontend components\n // in case they depend on the event stream and may\n // miss some messages - this should force reloading\n // events using graphql\n PubSub.publish('client.connected', {\n topic: 'client.connected',\n })\n }\n }, [readyState, getWebSocket])\n\n return (\n <SocketContext.Provider\n value={{\n getWebSocket,\n readyState,\n serverRestartingVisible,\n }}\n >\n {children}\n </SocketContext.Provider>\n )\n}\n\nexport const useSocketContext = () => {\n const context = useContext(SocketContext)\n if (context === undefined) {\n throw new Error('useSocketContext must be used within a SocketProvider')\n }\n return context\n}\n"],"names":["proto","wsAddress","SocketProvider","children","userName","projectName","dispatch","serverRestartingVisible","setServerRestartingVisible","useState","topics","setTopics","getInfo","useLazyGetSiteInfoQuery","wsOpts","sendMessage","readyState","getWebSocket","useWebSocket","subscribe","useEffect","updateTopicsDebounce","debounce","newTopics","isEqual","PubSub","overloaded","setOverloaded","toastShown","setToastShown","toast","jsx","RefreshToast","messageStatsRef","useRef","onMessage","useCallback","message","data","error","topic","sender","summary","now","ReadyState","api","SocketContext","useSocketContext","context","useContext"],"mappings":"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"}
|
|
@@ -234,6 +234,7 @@ import "../containers/Slicer/context/SlicerContext.es.js";
|
|
|
234
234
|
import "../containers/Slicer/hooks/useTableDataBySlice.es.js";
|
|
235
235
|
import "../containers/DetailsPanel/DetailsPanel.styled.es.js";
|
|
236
236
|
import "../containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.es.js";
|
|
237
|
+
import "../containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js";
|
|
237
238
|
import "../containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js";
|
|
238
239
|
import "../components/PlayableIcon/PlayableIcon.es.js";
|
|
239
240
|
import "../containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js";
|
|
@@ -290,7 +291,7 @@ import "../components/Menu/MenuItem.es.js";
|
|
|
290
291
|
import "../components/ReviewablesSelector/ReviewablesSelector.es.js";
|
|
291
292
|
import "../components/ColumnHeaderMenuUI.es.js";
|
|
292
293
|
import { SocketContext as k } from "./WebsocketContextInstance.es.js";
|
|
293
|
-
const G = window.location.protocol.replace("http", "ws"), L = `${G}//${window.location.host}/ws`,
|
|
294
|
+
const G = window.location.protocol.replace("http", "ws"), L = `${G}//${window.location.host}/ws`, hm = ({
|
|
294
295
|
children: i,
|
|
295
296
|
userName: C,
|
|
296
297
|
projectName: f,
|
|
@@ -358,14 +359,14 @@ const G = window.location.protocol.replace("http", "ws"), L = `${G}//${window.lo
|
|
|
358
359
|
children: i
|
|
359
360
|
}
|
|
360
361
|
);
|
|
361
|
-
},
|
|
362
|
+
}, bm = () => {
|
|
362
363
|
const i = A(k);
|
|
363
364
|
if (i === void 0)
|
|
364
365
|
throw new Error("useSocketContext must be used within a SocketProvider");
|
|
365
366
|
return i;
|
|
366
367
|
};
|
|
367
368
|
export {
|
|
368
|
-
|
|
369
|
-
|
|
369
|
+
hm as SocketProvider,
|
|
370
|
+
bm as useSocketContext
|
|
370
371
|
};
|
|
371
372
|
//# sourceMappingURL=WebsocketContext.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebsocketContext.es.js","sources":["../../../../src/context/WebsocketContext.tsx"],"sourcesContent":["import { useEffect, useState, useCallback, useRef, useContext } from 'react'\nimport { toast } from 'react-toastify'\nimport { PubSub } from '@shared/util'\nimport useWebSocket, { ReadyState } from 'react-use-websocket'\nimport { debounce, isEqual } from 'lodash'\nimport api from '@shared/api'\nimport { RefreshToast } from '@shared/components'\nimport { useLazyGetSiteInfoQuery } from '@shared/api'\nimport { WebSocketLike } from 'react-use-websocket/dist/lib/types'\nimport { SocketContext } from './WebsocketContextInstance'\n\nexport type WebsocketContextType = {\n getWebSocket: () => WebSocketLike | null\n readyState: ReadyState\n serverRestartingVisible: boolean\n}\n\nconst proto = window.location.protocol.replace('http', 'ws')\nconst wsAddress = `${proto}//${window.location.host}/ws`\n\n// define global window senderId type\ndeclare global {\n interface Window {\n senderId: string\n }\n}\n\nexport type SocketProviderProps = {\n children: React.ReactNode\n userName?: string\n projectName?: string\n dispatch: any\n}\n\nexport const SocketProvider = ({\n children,\n userName,\n projectName,\n dispatch,\n}: SocketProviderProps) => {\n // get user logged in\n const [serverRestartingVisible, setServerRestartingVisible] = useState(false)\n const [topics, setTopics] = useState([])\n const [getInfo] = useLazyGetSiteInfoQuery()\n\n const wsOpts = {\n shouldReconnect: () => {\n if (!userName) return false\n // check if there is a token\n const accessToken = localStorage.getItem('accessToken')\n if (!accessToken) return false\n\n // test if the token is valid\n // if it's not then this will automatically log out the user\n getInfo({ full: false }).unwrap()\n\n return true\n },\n }\n\n const { sendMessage, readyState, getWebSocket } = useWebSocket(wsAddress, wsOpts)\n\n const subscribe = () => {\n sendMessage(\n JSON.stringify({\n topic: 'auth',\n token: localStorage.getItem('accessToken'),\n subscribe: topics,\n project: projectName,\n }),\n )\n }\n\n useEffect(() => {\n console.debug('Topics changed', topics)\n subscribe()\n }, [topics, projectName])\n\n const updateTopicsDebounce = debounce((newTopics) => {\n if (isEqual(topics, newTopics)) return\n console.log('WS: Subscriptions changed')\n setTopics(newTopics)\n }, 200)\n\n PubSub.setOnSubscriptionsChange((newTopics: string[]) => updateTopicsDebounce(newTopics))\n\n const [overloaded, setOverloaded] = useState(false)\n const [toastShown, setToastShown] = useState(false)\n\n // when overloaded is true, activate toast\n useEffect(() => {\n if (overloaded)\n if (!toastShown) {\n toast.warning(<RefreshToast />, {\n autoClose: false,\n closeButton: false,\n })\n setToastShown(true)\n }\n\n return () => {\n setOverloaded(false)\n }\n }, [overloaded, setOverloaded])\n\n // onMessage is a function that is called when a message comes in from the websocket\n // it is a closure that keeps track of the number of calls and the last call time\n // Using useRef to persist the closure state across renders\n const messageStatsRef = useRef({ callCount: 0, lastCall: Date.now() })\n\n const onMessage = useCallback(\n (message: any) => {\n // If the function is called more than 100 times per second, return early.\n const threshold = 1000\n if (messageStatsRef.current.callCount > threshold) {\n setOverloaded(true)\n return console.log(\n `Overload: Over ${threshold} messages per second. Ignoring subsequent messages.`,\n )\n }\n\n let data\n try {\n data = JSON.parse(message.data)\n } catch (error) {\n console.error('Failed to parse websocket message:', error, message.data)\n return\n }\n\n const { topic, sender, summary } = data || {}\n if (topic === 'heartbeat') return\n\n if (topic === 'server.restart_requested') setServerRestartingVisible(true)\n\n if (sender === window.senderId) {\n return // my own message. ignore\n }\n\n const now = Date.now()\n if (now - messageStatsRef.current.lastCall < 1000) {\n messageStatsRef.current.callCount += 1\n } else {\n messageStatsRef.current.callCount = 0\n }\n\n messageStatsRef.current.lastCall = now\n\n if (topic === 'shout' && data?.summary?.text) toast.info(summary.text)\n\n console.log('Event RX', data)\n PubSub.publish(topic, data)\n },\n [setServerRestartingVisible],\n )\n\n useEffect(() => {\n if (readyState === ReadyState.OPEN) {\n if (serverRestartingVisible) {\n setServerRestartingVisible(false)\n // clear ayonApi\n dispatch(api.util.resetApiState())\n }\n // @ts-ignore\n getWebSocket().onmessage = onMessage\n subscribe()\n // Dispatch a fake event to the frontend components\n // in case they depend on the event stream and may\n // miss some messages - this should force reloading\n // events using graphql\n PubSub.publish('client.connected', {\n topic: 'client.connected',\n })\n }\n }, [readyState, getWebSocket])\n\n return (\n <SocketContext.Provider\n value={{\n getWebSocket,\n readyState,\n serverRestartingVisible,\n }}\n >\n {children}\n </SocketContext.Provider>\n )\n}\n\nexport const useSocketContext = () => {\n const context = useContext(SocketContext)\n if (context === undefined) {\n throw new Error('useSocketContext must be used within a SocketProvider')\n }\n return context\n}\n"],"names":["proto","wsAddress","SocketProvider","children","userName","projectName","dispatch","serverRestartingVisible","setServerRestartingVisible","useState","topics","setTopics","getInfo","useLazyGetSiteInfoQuery","wsOpts","sendMessage","readyState","getWebSocket","useWebSocket","subscribe","useEffect","updateTopicsDebounce","debounce","newTopics","isEqual","PubSub","overloaded","setOverloaded","toastShown","setToastShown","toast","jsx","RefreshToast","messageStatsRef","useRef","onMessage","useCallback","message","data","error","topic","sender","summary","now","ReadyState","api","SocketContext","useSocketContext","context","useContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"WebsocketContext.es.js","sources":["../../../../src/context/WebsocketContext.tsx"],"sourcesContent":["import { useEffect, useState, useCallback, useRef, useContext } from 'react'\nimport { toast } from 'react-toastify'\nimport { PubSub } from '@shared/util'\nimport useWebSocket, { ReadyState } from 'react-use-websocket'\nimport { debounce, isEqual } from 'lodash'\nimport api from '@shared/api'\nimport { RefreshToast } from '@shared/components'\nimport { useLazyGetSiteInfoQuery } from '@shared/api'\nimport { WebSocketLike } from 'react-use-websocket/dist/lib/types'\nimport { SocketContext } from './WebsocketContextInstance'\n\nexport type WebsocketContextType = {\n getWebSocket: () => WebSocketLike | null\n readyState: ReadyState\n serverRestartingVisible: boolean\n}\n\nconst proto = window.location.protocol.replace('http', 'ws')\nconst wsAddress = `${proto}//${window.location.host}/ws`\n\n// define global window senderId type\ndeclare global {\n interface Window {\n senderId: string\n }\n}\n\nexport type SocketProviderProps = {\n children: React.ReactNode\n userName?: string\n projectName?: string\n dispatch: any\n}\n\nexport const SocketProvider = ({\n children,\n userName,\n projectName,\n dispatch,\n}: SocketProviderProps) => {\n // get user logged in\n const [serverRestartingVisible, setServerRestartingVisible] = useState(false)\n const [topics, setTopics] = useState([])\n const [getInfo] = useLazyGetSiteInfoQuery()\n\n const wsOpts = {\n shouldReconnect: () => {\n if (!userName) return false\n // check if there is a token\n const accessToken = localStorage.getItem('accessToken')\n if (!accessToken) return false\n\n // test if the token is valid\n // if it's not then this will automatically log out the user\n getInfo({ full: false }).unwrap()\n\n return true\n },\n }\n\n const { sendMessage, readyState, getWebSocket } = useWebSocket(wsAddress, wsOpts)\n\n const subscribe = () => {\n sendMessage(\n JSON.stringify({\n topic: 'auth',\n token: localStorage.getItem('accessToken'),\n subscribe: topics,\n project: projectName,\n }),\n )\n }\n\n useEffect(() => {\n console.debug('Topics changed', topics)\n subscribe()\n }, [topics, projectName])\n\n const updateTopicsDebounce = debounce((newTopics) => {\n if (isEqual(topics, newTopics)) return\n console.log('WS: Subscriptions changed')\n setTopics(newTopics)\n }, 200)\n\n PubSub.setOnSubscriptionsChange((newTopics: string[]) => updateTopicsDebounce(newTopics))\n\n const [overloaded, setOverloaded] = useState(false)\n const [toastShown, setToastShown] = useState(false)\n\n // when overloaded is true, activate toast\n useEffect(() => {\n if (overloaded)\n if (!toastShown) {\n toast.warning(<RefreshToast />, {\n autoClose: false,\n closeButton: false,\n })\n setToastShown(true)\n }\n\n return () => {\n setOverloaded(false)\n }\n }, [overloaded, setOverloaded])\n\n // onMessage is a function that is called when a message comes in from the websocket\n // it is a closure that keeps track of the number of calls and the last call time\n // Using useRef to persist the closure state across renders\n const messageStatsRef = useRef({ callCount: 0, lastCall: Date.now() })\n\n const onMessage = useCallback(\n (message: any) => {\n // If the function is called more than 100 times per second, return early.\n const threshold = 1000\n if (messageStatsRef.current.callCount > threshold) {\n setOverloaded(true)\n return console.log(\n `Overload: Over ${threshold} messages per second. Ignoring subsequent messages.`,\n )\n }\n\n let data\n try {\n data = JSON.parse(message.data)\n } catch (error) {\n console.error('Failed to parse websocket message:', error, message.data)\n return\n }\n\n const { topic, sender, summary } = data || {}\n if (topic === 'heartbeat') return\n\n if (topic === 'server.restart_requested') setServerRestartingVisible(true)\n\n if (sender === window.senderId) {\n return // my own message. ignore\n }\n\n const now = Date.now()\n if (now - messageStatsRef.current.lastCall < 1000) {\n messageStatsRef.current.callCount += 1\n } else {\n messageStatsRef.current.callCount = 0\n }\n\n messageStatsRef.current.lastCall = now\n\n if (topic === 'shout' && data?.summary?.text) toast.info(summary.text)\n\n console.log('Event RX', data)\n PubSub.publish(topic, data)\n },\n [setServerRestartingVisible],\n )\n\n useEffect(() => {\n if (readyState === ReadyState.OPEN) {\n if (serverRestartingVisible) {\n setServerRestartingVisible(false)\n // clear ayonApi\n dispatch(api.util.resetApiState())\n }\n // @ts-ignore\n getWebSocket().onmessage = onMessage\n subscribe()\n // Dispatch a fake event to the frontend components\n // in case they depend on the event stream and may\n // miss some messages - this should force reloading\n // events using graphql\n PubSub.publish('client.connected', {\n topic: 'client.connected',\n })\n }\n }, [readyState, getWebSocket])\n\n return (\n <SocketContext.Provider\n value={{\n getWebSocket,\n readyState,\n serverRestartingVisible,\n }}\n >\n {children}\n </SocketContext.Provider>\n )\n}\n\nexport const useSocketContext = () => {\n const context = useContext(SocketContext)\n if (context === undefined) {\n throw new Error('useSocketContext must be used within a SocketProvider')\n }\n return context\n}\n"],"names":["proto","wsAddress","SocketProvider","children","userName","projectName","dispatch","serverRestartingVisible","setServerRestartingVisible","useState","topics","setTopics","getInfo","useLazyGetSiteInfoQuery","wsOpts","sendMessage","readyState","getWebSocket","useWebSocket","subscribe","useEffect","updateTopicsDebounce","debounce","newTopics","isEqual","PubSub","overloaded","setOverloaded","toastShown","setToastShown","toast","jsx","RefreshToast","messageStatsRef","useRef","onMessage","useCallback","message","data","error","topic","sender","summary","now","ReadyState","api","SocketContext","useSocketContext","context","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAMA,IAAQ,OAAO,SAAS,SAAS,QAAQ,QAAQ,IAAI,GACrDC,IAAY,GAAGD,CAAK,KAAK,OAAO,SAAS,IAAI,OAgBtCE,KAAiB,CAAC;AAAA,EAC7B,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AACF,MAA2B;AAEzB,QAAM,CAACC,GAAyBC,CAA0B,IAAIC,EAAS,EAAK,GACtE,CAACC,GAAQC,CAAS,IAAIF,EAAS,CAAA,CAAE,GACjC,CAACG,CAAO,IAAIC,EAAA,GAEZC,IAAS;AAAA,IACb,iBAAiB,MACX,CAACV,KAGD,CADgB,aAAa,QAAQ,aAAa,IAC7B,MAIzBQ,EAAQ,EAAE,MAAM,GAAA,CAAO,EAAE,OAAA,GAElB;AAAA,EACT,GAGI,EAAE,aAAAG,GAAa,YAAAC,GAAY,cAAAC,MAAiBC,EAAajB,GAAWa,CAAM,GAE1EK,IAAY,MAAM;AACtB,IAAAJ;AAAA,MACE,KAAK,UAAU;AAAA,QACb,OAAO;AAAA,QACP,OAAO,aAAa,QAAQ,aAAa;AAAA,QACzC,WAAWL;AAAA,QACX,SAASL;AAAA,MAAA,CACV;AAAA,IAAA;AAAA,EAEL;AAEA,EAAAe,EAAU,MAAM;AACd,YAAQ,MAAM,kBAAkBV,CAAM,GACtCS,EAAA;AAAA,EACF,GAAG,CAACT,GAAQL,CAAW,CAAC;AAExB,QAAMgB,IAAuBC,EAAS,CAACC,MAAc;AACnD,IAAIC,EAAQd,GAAQa,CAAS,MAC7B,QAAQ,IAAI,2BAA2B,GACvCZ,EAAUY,CAAS;AAAA,EACrB,GAAG,GAAG;AAEN,EAAAE,EAAO,yBAAyB,CAACF,MAAwBF,EAAqBE,CAAS,CAAC;AAExF,QAAM,CAACG,GAAYC,CAAa,IAAIlB,EAAS,EAAK,GAC5C,CAACmB,GAAYC,CAAa,IAAIpB,EAAS,EAAK;AAGlD,EAAAW,EAAU,OACJM,MACGE,MACHE,EAAM,QAAQC,gBAAAA,EAAAA,IAACC,GAAA,CAAA,CAAa,GAAI;AAAA,IAC9B,WAAW;AAAA,IACX,aAAa;AAAA,EAAA,CACd,GACDH,EAAc,EAAI,KAGf,MAAM;AACX,IAAAF,EAAc,EAAK;AAAA,EACrB,IACC,CAACD,GAAYC,CAAa,CAAC;AAK9B,QAAMM,IAAkBC,EAAO,EAAE,WAAW,GAAG,UAAU,KAAK,IAAA,GAAO,GAE/DC,IAAYC;AAAA,IAChB,CAACC,MAAiB;AAGhB,UAAIJ,EAAgB,QAAQ,YAAY;AACtC,eAAAN,EAAc,EAAI,GACX,QAAQ;AAAA,UACb;AAAA,QAA2B;AAI/B,UAAIW;AACJ,UAAI;AACF,QAAAA,IAAO,KAAK,MAAMD,EAAQ,IAAI;AAAA,MAChC,SAASE,GAAO;AACd,gBAAQ,MAAM,sCAAsCA,GAAOF,EAAQ,IAAI;AACvE;AAAA,MACF;AAEA,YAAM,EAAE,OAAAG,GAAO,QAAAC,GAAQ,SAAAC,EAAA,IAAYJ,KAAQ,CAAA;AAK3C,UAJIE,MAAU,gBAEVA,MAAU,8BAA4BhC,EAA2B,EAAI,GAErEiC,MAAW,OAAO;AACpB;AAGF,YAAME,IAAM,KAAK,IAAA;AACjB,MAAIA,IAAMV,EAAgB,QAAQ,WAAW,MAC3CA,EAAgB,QAAQ,aAAa,IAErCA,EAAgB,QAAQ,YAAY,GAGtCA,EAAgB,QAAQ,WAAWU,GAE/BH,MAAU,WAAWF,GAAM,SAAS,QAAMR,EAAM,KAAKY,EAAQ,IAAI,GAErE,QAAQ,IAAI,YAAYJ,CAAI,GAC5Bb,EAAO,QAAQe,GAAOF,CAAI;AAAA,IAC5B;AAAA,IACA,CAAC9B,CAA0B;AAAA,EAAA;AAG7B,SAAAY,EAAU,MAAM;AACd,IAAIJ,MAAe4B,EAAAA,WAAW,SACxBrC,MACFC,EAA2B,EAAK,GAEhCF,EAASuC,EAAI,KAAK,eAAe,IAGnC5B,EAAA,EAAe,YAAYkB,GAC3BhB,EAAA,GAKAM,EAAO,QAAQ,oBAAoB;AAAA,MACjC,OAAO;AAAA,IAAA,CACR;AAAA,EAEL,GAAG,CAACT,GAAYC,CAAY,CAAC,GAG3Bc,gBAAAA,EAAAA;AAAAA,IAACe,EAAc;AAAA,IAAd;AAAA,MACC,OAAO;AAAA,QACL,cAAA7B;AAAA,QACA,YAAAD;AAAA,QACA,yBAAAT;AAAA,MAAA;AAAA,MAGD,UAAAJ;AAAA,IAAA;AAAA,EAAA;AAGP,GAEa4C,KAAmB,MAAM;AACpC,QAAMC,IAAUC,EAAWH,CAAa;AACxC,MAAIE,MAAY;AACd,UAAM,IAAI,MAAM,uDAAuD;AAEzE,SAAOA;AACT;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnConfigConverter.cjs.js","sources":["../../../../src/util/columnConfigConverter.ts"],"sourcesContent":["import {\n VisibilityState,\n ColumnPinningState,\n ColumnOrderState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ColumnItemModel, OverviewSettings } from '@shared/api/generated/views'\nimport { ColumnsConfig, TableGroupBy } from '@shared/containers'\nimport { GroupByConfig } from '@shared/containers/ProjectTreeTable/components/GroupSettingsFallback'\nimport {\n SummaryCalc,\n SummaryFormat,\n RowScope,\n} from '@shared/containers/ProjectTreeTable/types/summaryTypes'\nimport {\n ROW_SELECTION_COLUMN_ID,\n DRAG_HANDLE_COLUMN_ID,\n} from '@shared/containers/ProjectTreeTable/constants'\n\n// These columns are always injected by ColumnSettingsProvider and must never be\n// persisted or loaded from saved view settings.\nconst INTERNAL_COLUMN_IDS = new Set([ROW_SELECTION_COLUMN_ID, DRAG_HANDLE_COLUMN_ID])\n\n// Backend doesn't store summary/summaryScope/summaryFormat on ColumnItemModel yet\ntype ColumnItem = ColumnItemModel & {\n summary?: SummaryCalc\n summaryScope?: RowScope\n summaryFormat?: SummaryFormat\n}\n\n/**\n * Converts ColumnItemModel array from OverviewSettings to TanStack table states\n */\nexport function convertColumnConfigToTanstackStates(settings: OverviewSettings): ColumnsConfig {\n const {\n columns = [],\n groupBy: groupByField,\n groupSortByDesc,\n showEmptyGroups,\n sortBy,\n sortDesc,\n rowHeight,\n } = settings || {}\n\n // Initialize state objects\n const columnVisibility: VisibilityState = {}\n const columnPinning: ColumnPinningState = { left: [], right: [] }\n const columnOrder: ColumnOrderState = []\n const columnSizing: ColumnSizingState = {}\n const columnSummaries: Record<string, SummaryCalc> = {}\n const columnSummaryScopes: Record<string, RowScope> = {}\n const columnSummaryFormats: Record<string, SummaryFormat> = {}\n\n // Process each column from the settings\n columns.forEach((column) => {\n const { name, visible, pinned, width, summary, summaryScope, summaryFormat } =\n column as ColumnItem\n\n // Skip internal columns — they are always injected by ColumnSettingsProvider\n if (INTERNAL_COLUMN_IDS.has(name)) return\n\n // Column visibility: undefined means hidden (opt-in model)\n columnVisibility[name] = visible ?? false\n\n // Column order: maintain the order from the settings\n columnOrder.push(name)\n\n // Column pinning: assuming pinned: true means left pinning\n if (pinned) {\n columnPinning.left?.push(name)\n }\n\n // Column sizing: set width if provided\n if (width !== undefined) {\n columnSizing[name] = width\n }\n\n // Column summary calc type\n if (summary) {\n columnSummaries[name] = summary\n }\n\n // Column summary row scope\n if (summaryScope) {\n columnSummaryScopes[name] = summaryScope\n }\n\n // Column summary display format\n if (summaryFormat) {\n columnSummaryFormats[name] = summaryFormat\n }\n })\n\n // Handle sorting\n const sorting: SortingState = sortBy ? [{ id: sortBy, desc: sortDesc || false }] : []\n\n // Handle grouping\n let groupBy: TableGroupBy | undefined\n if (typeof groupByField === 'string' && groupByField.length > 0) {\n groupBy = { id: groupByField, desc: groupSortByDesc ?? false }\n } else if (Array.isArray(groupByField)) {\n const first = groupByField.find((v) => typeof v === 'string' && v.length > 0)\n if (first) {\n groupBy = { id: first, desc: groupSortByDesc ?? false }\n } else {\n groupBy = undefined\n }\n } else {\n groupBy = undefined\n }\n\n const groupByConfig: GroupByConfig = {\n showEmpty: showEmptyGroups || false,\n entityType: '',\n }\n\n return {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n columnSummaries,\n columnSummaryScopes,\n columnSummaryFormats,\n sorting,\n groupBy,\n groupByConfig,\n rowHeight: rowHeight ?? 34,\n }\n}\n\n/**\n * Determines the final column order based on columnOrder and allColumnIds\n * - Columns in columnOrder come first (in their specified order)\n * - Remaining columns follow the order from allColumnIds\n */\nfunction determineColumnOrder(\n columnOrder: ColumnOrderState,\n allColumnIds: string[],\n columnsWithState: Set<string>,\n): string[] {\n // Start with columns from columnOrder (these have explicit positioning)\n const orderedColumns = [...columnOrder]\n\n // Add remaining columns from allColumnIds that aren't already in columnOrder\n const remainingColumns = allColumnIds.filter(\n (columnId) => !columnOrder.includes(columnId) && columnsWithState.has(columnId),\n )\n\n return [...orderedColumns, ...remainingColumns]\n}\n\n/**\n * Collects all columns that have any state (visibility, sizing, pinning, etc.)\n */\nfunction collectColumnsWithState(\n columnVisibility: VisibilityState,\n columnSizing: ColumnSizingState,\n columnPinning: ColumnPinningState,\n allColumnIds: string[],\n): Set<string> {\n const columnsWithState = new Set<string>()\n\n // Add columns with visibility state\n Object.keys(columnVisibility).forEach((col) => columnsWithState.add(col))\n\n // Add columns with sizing state\n Object.keys(columnSizing).forEach((col) => columnsWithState.add(col))\n\n // Add pinned columns\n columnPinning.left?.forEach((col) => columnsWithState.add(col))\n columnPinning.right?.forEach((col) => columnsWithState.add(col))\n\n // Add any additional columns from allColumnIds\n allColumnIds?.forEach((col) => columnsWithState.add(col))\n\n return columnsWithState\n}\n\n/**\n * Creates a ColumnItemModel for a given column name with all applicable state\n */\nfunction createColumnItem(\n columnName: string,\n columnVisibility: VisibilityState,\n columnPinning: ColumnPinningState,\n columnSizing: ColumnSizingState,\n columnSummaries: Record<string, SummaryCalc>,\n columnSummaryScopes: Record<string, RowScope>,\n columnSummaryFormats: Record<string, SummaryFormat>,\n): ColumnItem {\n const column: ColumnItem = {\n name: columnName,\n visible: !!columnVisibility[columnName],\n }\n\n // Set summary calc type if chosen for this column\n if (columnSummaries[columnName]) {\n column.summary = columnSummaries[columnName]\n }\n\n // Set summary row scope if chosen for this column\n if (columnSummaryScopes[columnName]) {\n column.summaryScope = columnSummaryScopes[columnName]\n }\n\n // Set summary display format if chosen for this column\n if (columnSummaryFormats[columnName]) {\n column.summaryFormat = columnSummaryFormats[columnName]\n }\n\n // Set visibility if defined in state\n if (columnVisibility.hasOwnProperty(columnName)) {\n column.visible = columnVisibility[columnName]\n }\n\n // Set pinning if column is pinned\n const isPinnedLeft = columnPinning.left?.includes(columnName)\n const isPinnedRight = columnPinning.right?.includes(columnName)\n\n if (isPinnedLeft || isPinnedRight) {\n column.pinned = true\n }\n\n // Set width if defined in state\n if (columnSizing[columnName] !== undefined) {\n column.width = columnSizing[columnName]\n }\n\n return column\n}\n\n/**\n * Converts TanStack table states back to OverviewSettings format\n *\n * Column ordering logic:\n * 1. Columns in columnOrder appear first (in their specified order)\n * 2. Remaining columns follow the order from allColumnIds\n * 3. Only columns with state (visibility, sizing, pinning) or in allColumnIds are included\n */\nexport function convertTanstackStatesToColumnConfig(\n states: ColumnsConfig,\n allColumnIds?: string[],\n): OverviewSettings {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n columnSummaries = {},\n columnSummaryScopes = {},\n columnSummaryFormats = {},\n sorting,\n groupBy,\n groupByConfig,\n rowHeight,\n } = states\n\n // Collect all columns that have any state\n const columnsWithState = collectColumnsWithState(\n columnVisibility,\n columnSizing,\n columnPinning,\n allColumnIds || [],\n )\n\n // Determine the final column order, excluding internal columns\n const finalColumnOrder = determineColumnOrder(\n columnOrder,\n allColumnIds || [],\n columnsWithState,\n ).filter((id) => !INTERNAL_COLUMN_IDS.has(id))\n\n // Create ColumnItemModel for each column in the determined order\n const columns: ColumnItem[] = finalColumnOrder.map((columnName) =>\n createColumnItem(\n columnName,\n columnVisibility,\n columnPinning,\n columnSizing,\n columnSummaries,\n columnSummaryScopes,\n columnSummaryFormats,\n ),\n )\n\n // Build the result object\n const result: OverviewSettings = {\n columns,\n }\n\n // Add grouping information if present\n if (groupBy) {\n const id = Array.isArray(groupBy.id) ? groupBy.id[0] : groupBy.id\n result.groupBy = id || undefined\n result.groupSortByDesc = groupBy.desc ?? false\n } else {\n result.groupBy = undefined\n result.groupSortByDesc = undefined\n }\n\n if (groupByConfig?.showEmpty !== undefined) {\n result.showEmptyGroups = groupByConfig.showEmpty\n }\n\n // Add sorting information if present\n if (sorting) {\n if (sorting.length > 0) {\n // find the column that is being sorted\n const firstSort = sorting[0]\n result.sortBy = firstSort.id\n result.sortDesc = firstSort.desc\n } else {\n // remove sorting\n result.sortBy = undefined\n result.sortDesc = undefined\n }\n }\n\n // Add row height if present\n if (rowHeight !== undefined) {\n result.rowHeight = rowHeight\n }\n\n return result\n}\n"],"names":["INTERNAL_COLUMN_IDS","ROW_SELECTION_COLUMN_ID","DRAG_HANDLE_COLUMN_ID","convertColumnConfigToTanstackStates","settings","columns","groupByField","groupSortByDesc","showEmptyGroups","sortBy","sortDesc","rowHeight","columnVisibility","columnPinning","columnOrder","columnSizing","columnSummaries","columnSummaryScopes","columnSummaryFormats","column","name","visible","pinned","width","summary","summaryScope","summaryFormat","sorting","groupBy","first","v","determineColumnOrder","allColumnIds","columnsWithState","orderedColumns","remainingColumns","columnId","collectColumnsWithState","col","createColumnItem","columnName","isPinnedLeft","isPinnedRight","convertTanstackStatesToColumnConfig","states","groupByConfig","result","id","firstSort"],"mappings":"mJAsBMA,EAAsB,IAAI,IAAI,CAACC,EAAAA,wBAAyBC,EAAAA,qBAAqB,CAAC,EAY7E,SAASC,EAAoCC,EAA2C,CAC7F,KAAM,CACJ,QAAAC,EAAU,CAAA,EACV,QAASC,EACT,gBAAAC,EACA,gBAAAC,EACA,OAAAC,EACA,SAAAC,EACA,UAAAC,CAAA,EACEP,GAAY,CAAA,EAGVQ,EAAoC,CAAA,EACpCC,EAAoC,CAAE,KAAM,CAAA,EAAI,MAAO,CAAA,CAAC,EACxDC,EAAgC,CAAA,EAChCC,EAAkC,CAAA,EAClCC,EAA+C,CAAA,EAC/CC,EAAgD,CAAA,EAChDC,EAAsD,CAAA,EAG5Db,EAAQ,QAASc,GAAW,CAC1B,KAAM,CAAE,KAAAC,EAAM,QAAAC,EAAS,OAAAC,EAAQ,MAAAC,EAAO,QAAAC,EAAS,aAAAC,EAAc,cAAAC,GAC3DP,EAGEnB,EAAoB,IAAIoB,CAAI,IAGhCR,EAAiBQ,CAAI,EAAIC,GAAW,GAGpCP,EAAY,KAAKM,CAAI,EAGjBE,GACFT,EAAc,MAAM,KAAKO,CAAI,EAI3BG,IAAU,SACZR,EAAaK,CAAI,EAAIG,GAInBC,IACFR,EAAgBI,CAAI,EAAII,GAItBC,IACFR,EAAoBG,CAAI,EAAIK,GAI1BC,IACFR,EAAqBE,CAAI,EAAIM,GAEjC,CAAC,EAGD,MAAMC,EAAwBlB,EAAS,CAAC,CAAE,GAAIA,EAAQ,KAAMC,GAAY,EAAA,CAAO,EAAI,CAAA,EAGnF,IAAIkB,EACJ,GAAI,OAAOtB,GAAiB,UAAYA,EAAa,OAAS,EAC5DsB,EAAU,CAAE,GAAItB,EAAc,KAAMC,GAAmB,EAAA,UAC9C,MAAM,QAAQD,CAAY,EAAG,CACtC,MAAMuB,EAAQvB,EAAa,KAAMwB,GAAM,OAAOA,GAAM,UAAYA,EAAE,OAAS,CAAC,EACxED,EACFD,EAAU,CAAE,GAAIC,EAAO,KAAMtB,GAAmB,EAAA,EAEhDqB,EAAU,MAEd,MACEA,EAAU,OAQZ,MAAO,CACL,iBAAAhB,EACA,cAAAC,EACA,YAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,oBAAAC,EACA,qBAAAC,EACA,QAAAS,EACA,QAAAC,EACA,cAfmC,CACnC,UAAWpB,GAAmB,GAC9B,WAAY,EAAA,EAcZ,UAAWG,GAAa,EAAA,CAE5B,CAOA,SAASoB,EACPjB,EACAkB,EACAC,EACU,CAEV,MAAMC,EAAiB,CAAC,GAAGpB,CAAW,EAGhCqB,EAAmBH,EAAa,OACnCI,GAAa,CAACtB,EAAY,SAASsB,CAAQ,GAAKH,EAAiB,IAAIG,CAAQ,CAAA,EAGhF,MAAO,CAAC,GAAGF,EAAgB,GAAGC,CAAgB,CAChD,CAKA,SAASE,EACPzB,EACAG,EACAF,EACAmB,EACa,CACb,MAAMC,MAAuB,IAG7B,cAAO,KAAKrB,CAAgB,EAAE,QAAS0B,GAAQL,EAAiB,IAAIK,CAAG,CAAC,EAGxE,OAAO,KAAKvB,CAAY,EAAE,QAASuB,GAAQL,EAAiB,IAAIK,CAAG,CAAC,EAGpEzB,EAAc,MAAM,QAASyB,GAAQL,EAAiB,IAAIK,CAAG,CAAC,EAC9DzB,EAAc,OAAO,QAASyB,GAAQL,EAAiB,IAAIK,CAAG,CAAC,EAG/DN,GAAc,QAASM,GAAQL,EAAiB,IAAIK,CAAG,CAAC,EAEjDL,CACT,CAKA,SAASM,EACPC,EACA5B,EACAC,EACAE,EACAC,EACAC,EACAC,EACY,CACZ,MAAMC,EAAqB,CACzB,KAAMqB,EACN,QAAS,CAAC,CAAC5B,EAAiB4B,CAAU,CAAA,EAIpCxB,EAAgBwB,CAAU,IAC5BrB,EAAO,QAAUH,EAAgBwB,CAAU,GAIzCvB,EAAoBuB,CAAU,IAChCrB,EAAO,aAAeF,EAAoBuB,CAAU,GAIlDtB,EAAqBsB,CAAU,IACjCrB,EAAO,cAAgBD,EAAqBsB,CAAU,GAIpD5B,EAAiB,eAAe4B,CAAU,IAC5CrB,EAAO,QAAUP,EAAiB4B,CAAU,GAI9C,MAAMC,EAAe5B,EAAc,MAAM,SAAS2B,CAAU,EACtDE,EAAgB7B,EAAc,OAAO,SAAS2B,CAAU,EAE9D,OAAIC,GAAgBC,KAClBvB,EAAO,OAAS,IAIdJ,EAAayB,CAAU,IAAM,SAC/BrB,EAAO,MAAQJ,EAAayB,CAAU,GAGjCrB,CACT,CAUO,SAASwB,EACdC,EACAZ,EACkB,CAClB,KAAM,CACJ,iBAAApB,EACA,cAAAC,EACA,YAAAC,EACA,aAAAC,EACA,gBAAAC,EAAkB,CAAA,EAClB,oBAAAC,EAAsB,CAAA,EACtB,qBAAAC,EAAuB,CAAA,EACvB,QAAAS,EACA,QAAAC,EACA,cAAAiB,EACA,UAAAlC,CAAA,EACEiC,EAGEX,EAAmBI,EACvBzB,EACAG,EACAF,EACAmB,GAAgB,CAAA,CAAC,EAwBbc,EAA2B,CAC/B,QArBuBf,EACvBjB,EACAkB,GAAgB,CAAA,EAChBC,CAAA,EACA,OAAQc,GAAO,CAAC/C,EAAoB,IAAI+C,CAAE,CAAC,EAGE,IAAKP,GAClDD,EACEC,EACA5B,EACAC,EACAE,EACAC,EACAC,EACAC,CAAA,CACF,CAKA,EAIF,GAAIU,EAAS,CACX,MAAMmB,EAAK,MAAM,QAAQnB,EAAQ,EAAE,EAAIA,EAAQ,GAAG,CAAC,EAAIA,EAAQ,GAC/DkB,EAAO,QAAUC,GAAM,OACvBD,EAAO,gBAAkBlB,EAAQ,MAAQ,EAC3C,MACEkB,EAAO,QAAU,OACjBA,EAAO,gBAAkB,OAQ3B,GALID,GAAe,YAAc,SAC/BC,EAAO,gBAAkBD,EAAc,WAIrClB,EACF,GAAIA,EAAQ,OAAS,EAAG,CAEtB,MAAMqB,EAAYrB,EAAQ,CAAC,EAC3BmB,EAAO,OAASE,EAAU,GAC1BF,EAAO,SAAWE,EAAU,IAC9B,MAEEF,EAAO,OAAS,OAChBA,EAAO,SAAW,OAKtB,OAAInC,IAAc,SAChBmC,EAAO,UAAYnC,GAGdmC,CACT"}
|
|
1
|
+
{"version":3,"file":"columnConfigConverter.cjs.js","sources":["../../../../src/util/columnConfigConverter.ts"],"sourcesContent":["import {\n VisibilityState,\n ColumnPinningState,\n ColumnOrderState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ColumnItemModel, OverviewSettings } from '@shared/api/generated/views'\nimport { ColumnsConfig, TableGroupBy } from '@shared/containers'\nimport { GroupByConfig } from '@shared/containers/ProjectTreeTable/components/GroupSettingsFallback'\nimport {\n SummaryCalc,\n SummaryFormat,\n RowScope,\n} from '@shared/containers/ProjectTreeTable/types/summaryTypes'\nimport {\n ROW_SELECTION_COLUMN_ID,\n DRAG_HANDLE_COLUMN_ID,\n} from '@shared/containers/ProjectTreeTable/constants'\n\n// These columns are always injected by ColumnSettingsProvider and must never be\n// persisted or loaded from saved view settings.\nconst INTERNAL_COLUMN_IDS = new Set([ROW_SELECTION_COLUMN_ID, DRAG_HANDLE_COLUMN_ID])\n\n// summary/summaryScope/summaryFormat persist in the view settings dict but aren't on the generated ColumnItemModel type\ntype ColumnItem = ColumnItemModel & {\n summary?: SummaryCalc\n summaryScope?: RowScope\n summaryFormat?: SummaryFormat\n}\n\n/**\n * Converts ColumnItemModel array from OverviewSettings to TanStack table states\n */\nexport function convertColumnConfigToTanstackStates(settings: OverviewSettings): ColumnsConfig {\n const {\n columns = [],\n groupBy: groupByField,\n groupSortByDesc,\n showEmptyGroups,\n sortBy,\n sortDesc,\n rowHeight,\n } = settings || {}\n\n // Initialize state objects\n const columnVisibility: VisibilityState = {}\n const columnPinning: ColumnPinningState = { left: [], right: [] }\n const columnOrder: ColumnOrderState = []\n const columnSizing: ColumnSizingState = {}\n const columnSummaries: Record<string, SummaryCalc> = {}\n const columnSummaryScopes: Record<string, RowScope> = {}\n const columnSummaryFormats: Record<string, SummaryFormat> = {}\n\n // Process each column from the settings\n columns.forEach((column) => {\n const { name, visible, pinned, width, summary, summaryScope, summaryFormat } =\n column as ColumnItem\n\n // Skip internal columns — they are always injected by ColumnSettingsProvider\n if (INTERNAL_COLUMN_IDS.has(name)) return\n\n // Column visibility: undefined means hidden (opt-in model)\n columnVisibility[name] = visible ?? false\n\n // Column order: maintain the order from the settings\n columnOrder.push(name)\n\n // Column pinning: assuming pinned: true means left pinning\n if (pinned) {\n columnPinning.left?.push(name)\n }\n\n // Column sizing: set width if provided\n if (width !== undefined) {\n columnSizing[name] = width\n }\n\n // Column summary calc type\n if (summary) {\n columnSummaries[name] = summary\n }\n\n // Column summary row scope\n if (summaryScope) {\n columnSummaryScopes[name] = summaryScope\n }\n\n // Column summary display format\n if (summaryFormat) {\n columnSummaryFormats[name] = summaryFormat\n }\n })\n\n // Handle sorting\n const sorting: SortingState = sortBy ? [{ id: sortBy, desc: sortDesc || false }] : []\n\n // Handle grouping\n let groupBy: TableGroupBy | undefined\n if (typeof groupByField === 'string' && groupByField.length > 0) {\n groupBy = { id: groupByField, desc: groupSortByDesc ?? false }\n } else if (Array.isArray(groupByField)) {\n const first = groupByField.find((v) => typeof v === 'string' && v.length > 0)\n if (first) {\n groupBy = { id: first, desc: groupSortByDesc ?? false }\n } else {\n groupBy = undefined\n }\n } else {\n groupBy = undefined\n }\n\n const groupByConfig: GroupByConfig = {\n showEmpty: showEmptyGroups || false,\n entityType: '',\n }\n\n return {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n columnSummaries,\n columnSummaryScopes,\n columnSummaryFormats,\n sorting,\n groupBy,\n groupByConfig,\n rowHeight: rowHeight ?? 34,\n }\n}\n\n/**\n * Determines the final column order based on columnOrder and allColumnIds\n * - Columns in columnOrder come first (in their specified order)\n * - Remaining columns follow the order from allColumnIds\n */\nfunction determineColumnOrder(\n columnOrder: ColumnOrderState,\n allColumnIds: string[],\n columnsWithState: Set<string>,\n): string[] {\n // Start with columns from columnOrder (these have explicit positioning)\n const orderedColumns = [...columnOrder]\n\n // Add remaining columns from allColumnIds that aren't already in columnOrder\n const remainingColumns = allColumnIds.filter(\n (columnId) => !columnOrder.includes(columnId) && columnsWithState.has(columnId),\n )\n\n return [...orderedColumns, ...remainingColumns]\n}\n\n/**\n * Collects all columns that have any state (visibility, sizing, pinning, etc.)\n */\nfunction collectColumnsWithState(\n columnVisibility: VisibilityState,\n columnSizing: ColumnSizingState,\n columnPinning: ColumnPinningState,\n allColumnIds: string[],\n): Set<string> {\n const columnsWithState = new Set<string>()\n\n // Add columns with visibility state\n Object.keys(columnVisibility).forEach((col) => columnsWithState.add(col))\n\n // Add columns with sizing state\n Object.keys(columnSizing).forEach((col) => columnsWithState.add(col))\n\n // Add pinned columns\n columnPinning.left?.forEach((col) => columnsWithState.add(col))\n columnPinning.right?.forEach((col) => columnsWithState.add(col))\n\n // Add any additional columns from allColumnIds\n allColumnIds?.forEach((col) => columnsWithState.add(col))\n\n return columnsWithState\n}\n\n/**\n * Creates a ColumnItemModel for a given column name with all applicable state\n */\nfunction createColumnItem(\n columnName: string,\n columnVisibility: VisibilityState,\n columnPinning: ColumnPinningState,\n columnSizing: ColumnSizingState,\n columnSummaries: Record<string, SummaryCalc>,\n columnSummaryScopes: Record<string, RowScope>,\n columnSummaryFormats: Record<string, SummaryFormat>,\n): ColumnItem {\n const column: ColumnItem = {\n name: columnName,\n visible: !!columnVisibility[columnName],\n }\n\n // Set summary calc type if chosen for this column\n if (columnSummaries[columnName]) {\n column.summary = columnSummaries[columnName]\n }\n\n // Set summary row scope if chosen for this column\n if (columnSummaryScopes[columnName]) {\n column.summaryScope = columnSummaryScopes[columnName]\n }\n\n // Set summary display format if chosen for this column\n if (columnSummaryFormats[columnName]) {\n column.summaryFormat = columnSummaryFormats[columnName]\n }\n\n // Set visibility if defined in state\n if (columnVisibility.hasOwnProperty(columnName)) {\n column.visible = columnVisibility[columnName]\n }\n\n // Set pinning if column is pinned\n const isPinnedLeft = columnPinning.left?.includes(columnName)\n const isPinnedRight = columnPinning.right?.includes(columnName)\n\n if (isPinnedLeft || isPinnedRight) {\n column.pinned = true\n }\n\n // Set width if defined in state\n if (columnSizing[columnName] !== undefined) {\n column.width = columnSizing[columnName]\n }\n\n return column\n}\n\n/**\n * Converts TanStack table states back to OverviewSettings format\n *\n * Column ordering logic:\n * 1. Columns in columnOrder appear first (in their specified order)\n * 2. Remaining columns follow the order from allColumnIds\n * 3. Only columns with state (visibility, sizing, pinning) or in allColumnIds are included\n */\nexport function convertTanstackStatesToColumnConfig(\n states: ColumnsConfig,\n allColumnIds?: string[],\n): OverviewSettings {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n columnSummaries = {},\n columnSummaryScopes = {},\n columnSummaryFormats = {},\n sorting,\n groupBy,\n groupByConfig,\n rowHeight,\n } = states\n\n // Collect all columns that have any state\n const columnsWithState = collectColumnsWithState(\n columnVisibility,\n columnSizing,\n columnPinning,\n allColumnIds || [],\n )\n\n // Determine the final column order, excluding internal columns\n const finalColumnOrder = determineColumnOrder(\n columnOrder,\n allColumnIds || [],\n columnsWithState,\n ).filter((id) => !INTERNAL_COLUMN_IDS.has(id))\n\n // Create ColumnItemModel for each column in the determined order\n const columns: ColumnItem[] = finalColumnOrder.map((columnName) =>\n createColumnItem(\n columnName,\n columnVisibility,\n columnPinning,\n columnSizing,\n columnSummaries,\n columnSummaryScopes,\n columnSummaryFormats,\n ),\n )\n\n // Build the result object\n const result: OverviewSettings = {\n columns,\n }\n\n // Add grouping information if present\n if (groupBy) {\n const id = Array.isArray(groupBy.id) ? groupBy.id[0] : groupBy.id\n result.groupBy = id || undefined\n result.groupSortByDesc = groupBy.desc ?? false\n } else {\n result.groupBy = undefined\n result.groupSortByDesc = undefined\n }\n\n if (groupByConfig?.showEmpty !== undefined) {\n result.showEmptyGroups = groupByConfig.showEmpty\n }\n\n // Add sorting information if present\n if (sorting) {\n if (sorting.length > 0) {\n // find the column that is being sorted\n const firstSort = sorting[0]\n result.sortBy = firstSort.id\n result.sortDesc = firstSort.desc\n } else {\n // remove sorting\n result.sortBy = undefined\n result.sortDesc = undefined\n }\n }\n\n // Add row height if present\n if (rowHeight !== undefined) {\n result.rowHeight = rowHeight\n }\n\n return result\n}\n"],"names":["INTERNAL_COLUMN_IDS","ROW_SELECTION_COLUMN_ID","DRAG_HANDLE_COLUMN_ID","convertColumnConfigToTanstackStates","settings","columns","groupByField","groupSortByDesc","showEmptyGroups","sortBy","sortDesc","rowHeight","columnVisibility","columnPinning","columnOrder","columnSizing","columnSummaries","columnSummaryScopes","columnSummaryFormats","column","name","visible","pinned","width","summary","summaryScope","summaryFormat","sorting","groupBy","first","v","determineColumnOrder","allColumnIds","columnsWithState","orderedColumns","remainingColumns","columnId","collectColumnsWithState","col","createColumnItem","columnName","isPinnedLeft","isPinnedRight","convertTanstackStatesToColumnConfig","states","groupByConfig","result","id","firstSort"],"mappings":"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"}
|