@ynput/ayon-frontend-shared 0.3.35 → 0.3.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DetailsPanel.cjs.js +1 -1
- package/dist/DetailsPanel.es.js +24 -23
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +222 -215
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/_virtual/index.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/components.cjs.js +1 -1
- package/dist/components.es.js +77 -73
- package/dist/components.es.js.map +1 -1
- package/dist/context.cjs.js +1 -1
- package/dist/context.es.js +50 -49
- package/dist/hooks.cjs.js +1 -1
- package/dist/hooks.es.js +33 -29
- package/dist/hooks.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +13 -10
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/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/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/sdk/dist/utils.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/sdk/dist/utils.es.js +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +108 -23
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +138 -53
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.es.js +42 -42
- package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js +2 -0
- package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js +68 -0
- package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js.map +1 -0
- package/dist/shared/src/api/queries/activities/updateActivities.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/updateActivities.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateActivities.es.js +69 -62
- package/dist/shared/src/api/queries/activities/updateActivities.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js +64 -56
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js +1 -1
- package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/columnStats.es.js +57 -53
- package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js +1 -1
- package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/metricTargets.es.js +27 -25
- package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +1 -1
- package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.es.js +4 -4
- package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.es.js +212 -187
- package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +6 -3
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +6 -3
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +6 -3
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +6 -3
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +102 -99
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +95 -87
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +6 -3
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +6 -3
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.es.js +6 -3
- package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +6 -3
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +7 -4
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +6 -3
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.es.js +6 -3
- package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.cjs.js +6 -0
- package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.cjs.js.map +1 -0
- package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.es.js +58 -0
- package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.es.js.map +1 -0
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +1 -4
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useDateRangeFilter.cjs.js +2 -0
- package/dist/shared/src/components/SearchFilter/useDateRangeFilter.cjs.js.map +1 -0
- package/dist/shared/src/components/SearchFilter/useDateRangeFilter.es.js +106 -0
- package/dist/shared/src/components/SearchFilter/useDateRangeFilter.es.js.map +1 -0
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +8 -5
- package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +6 -3
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +6 -3
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +10 -7
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +6 -3
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +6 -3
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +6 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +6 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +6 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +6 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +6 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js +10 -0
- package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js +135 -0
- package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +20 -17
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +41 -44
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +5 -2
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +19 -25
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.cjs.js +2 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.cjs.js.map +1 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.es.js +91 -0
- package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.es.js.map +1 -0
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +6 -3
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +6 -3
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +6 -3
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +6 -3
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.es.js +156 -164
- package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.styled.cjs.js +25 -3
- package/dist/shared/src/containers/Feed/Feed.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.styled.es.js +30 -8
- package/dist/shared/src/containers/Feed/Feed.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +6 -3
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +6 -3
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +6 -3
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js +3 -3
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +8 -5
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +5 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +10 -7
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js +5 -5
- package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +17 -0
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +279 -0
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +5 -2
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +62 -50
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js +141 -0
- package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js +81 -0
- package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +20 -18
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.es.js +106 -103
- package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.es.js +7 -4
- package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +6 -3
- package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +127 -123
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +158 -130
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +36 -33
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +5 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +228 -222
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +103 -100
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js +3 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js +22 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +113 -109
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +125 -121
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +36 -33
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +107 -103
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +36 -33
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +36 -33
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +105 -102
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +37 -34
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +48 -45
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js +61 -61
- package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +15 -6
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +108 -101
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +82 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +416 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +8 -5
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +37 -34
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +6 -3
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +6 -3
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +6 -3
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +6 -3
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +6 -3
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +92 -94
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.es.js +8 -5
- package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useGetProductionAddon.cjs.js +2 -0
- package/dist/shared/src/hooks/useGetProductionAddon.cjs.js.map +1 -0
- package/dist/shared/src/hooks/useGetProductionAddon.es.js +124 -0
- package/dist/shared/src/hooks/useGetProductionAddon.es.js.map +1 -0
- package/dist/shared/src/hooks/useLocalStorage.cjs.js +1 -1
- package/dist/shared/src/hooks/useLocalStorage.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useLocalStorage.es.js +43 -27
- package/dist/shared/src/hooks/useLocalStorage.es.js.map +1 -1
- package/dist/types/api/generated/graphql.d.ts +122 -0
- package/dist/types/api/generated/graphqlLinks.d.ts +10 -0
- package/dist/types/api/queries/activities/getActivities.d.ts +83 -0
- package/dist/types/api/queries/activities/patchTableLatestComments.d.ts +1 -0
- package/dist/types/api/queries/activities/updateActivities.d.ts +16 -0
- package/dist/types/api/queries/activities/util/activitiesHelpers.d.ts +1 -0
- package/dist/types/api/queries/entities/getEntity.d.ts +7 -0
- package/dist/types/api/queries/entities/getEntityPanel.d.ts +7 -0
- package/dist/types/api/queries/entities/updateEntity.d.ts +7 -0
- package/dist/types/api/queries/entityLists/getLists.d.ts +84 -0
- package/dist/types/api/queries/entityLists/types.d.ts +2 -1
- package/dist/types/api/queries/overview/getOverview.d.ts +58 -0
- package/dist/types/api/queries/project/getProject.d.ts +7 -0
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +7 -0
- package/dist/types/api/queries/users/getUsers.d.ts +7 -0
- package/dist/types/api/queries/versions/getVersionsProducts.d.ts +30 -0
- package/dist/types/components/SearchFilter/CustomDateRangeDialog.d.ts +13 -0
- package/dist/types/components/SearchFilter/index.d.ts +2 -0
- package/dist/types/components/SearchFilter/useDateRangeFilter.d.ts +36 -0
- package/dist/types/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.d.ts +13 -0
- package/dist/types/containers/DetailsPanel/helpers/subtasksFilterAdapter.d.ts +5 -0
- package/dist/types/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.d.ts +1 -0
- package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.styled.d.ts +2 -2
- package/dist/types/containers/Feed/components/FeedSearchFilter.d.ts +15 -0
- package/dist/types/containers/Feed/context/FeedContext.d.ts +5 -1
- package/dist/types/containers/Feed/helpers/buildBackendFilter.d.ts +3 -0
- package/dist/types/containers/Feed/helpers/feedFilterAdapter.d.ts +5 -0
- package/dist/types/containers/Feed/hooks/useGetFeedActivitiesData.d.ts +5 -1
- package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardComments.d.ts +6 -0
- package/dist/types/containers/ProjectTreeTable/context/clipboard/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/types/table.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.d.ts +9 -0
- package/dist/types/containers/ProjectTreeTable/utils/queryFilterToClientFilter.d.ts +5 -0
- package/dist/types/containers/ProjectTreeTable/widgets/CellWidget.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/widgets/CommentsWidget.d.ts +7 -0
- package/dist/types/context/DetailsPanelContext.d.ts +1 -0
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/useGetProductionAddon.d.ts +10 -0
- package/dist/types/hooks/useLocalStorage.d.ts +2 -0
- package/package.json +3 -2
|
@@ -1,104 +1,111 @@
|
|
|
1
|
-
import { getActivitiesGQLApi as
|
|
2
|
-
import { toast as
|
|
3
|
-
import { filterActivityTypes as
|
|
4
|
-
|
|
1
|
+
import { getActivitiesGQLApi as u } from "./getActivities.es.js";
|
|
2
|
+
import { toast as E } from "react-toastify";
|
|
3
|
+
import { filterActivityTypes as S, filterKey as x } from "./util/activitiesHelpers.es.js";
|
|
4
|
+
import { patchTableLatestComments as F } from "./patchTableLatestComments.es.js";
|
|
5
|
+
const Q = (t, e, a) => {
|
|
5
6
|
if (a)
|
|
6
|
-
for (const i of
|
|
7
|
-
const
|
|
8
|
-
if (
|
|
9
|
-
i.activities.splice(
|
|
7
|
+
for (const i of t.pages) {
|
|
8
|
+
const s = i.activities.findIndex((r) => r.activityId === e.activityId);
|
|
9
|
+
if (s !== -1) {
|
|
10
|
+
i.activities.splice(s, 1);
|
|
10
11
|
return;
|
|
11
12
|
}
|
|
12
13
|
}
|
|
13
14
|
else {
|
|
14
15
|
let i = !1;
|
|
15
|
-
for (const
|
|
16
|
-
const
|
|
17
|
-
if (
|
|
18
|
-
|
|
16
|
+
for (const s of t.pages) {
|
|
17
|
+
const r = s.activities.findIndex((o) => o.activityId === e.activityId);
|
|
18
|
+
if (r !== -1) {
|
|
19
|
+
s.activities[r] = { ...s.activities[r], ...e }, i = !0;
|
|
19
20
|
break;
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
|
-
!i &&
|
|
23
|
+
!i && t.pages.length > 0 && t.pages[0].activities.unshift(e);
|
|
23
24
|
}
|
|
24
|
-
},
|
|
25
|
-
const p = i.map((
|
|
25
|
+
}, h = (t) => t == null ? "" : typeof t == "string" ? t : JSON.stringify(t), d = async ({ patch: t, entityIds: e = [], filter: a, refs: i = [], ...s }, r, o) => {
|
|
26
|
+
const { dispatch: v, queryFulfilled: l, getState: p } = r, g = i.map((n) => n.id) || [];
|
|
27
|
+
h(a);
|
|
28
|
+
const f = [...e, ...g].map((n) => ({
|
|
26
29
|
type: "entityActivities",
|
|
27
|
-
id:
|
|
28
|
-
})),
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
({ originalArgs:
|
|
32
|
-
|
|
30
|
+
id: n + "-" + x(a)
|
|
31
|
+
})), m = p(), A = u.util.selectInvalidatedBy(m, f);
|
|
32
|
+
o !== "delete" && t.data && (t.activityData = { ...t.activityData, ...t.data });
|
|
33
|
+
const T = A.map(
|
|
34
|
+
({ originalArgs: n }) => v(
|
|
35
|
+
u.util.updateQueryData(
|
|
33
36
|
"getActivitiesInfinite",
|
|
34
|
-
|
|
35
|
-
(
|
|
37
|
+
n,
|
|
38
|
+
(c) => Q(c, t, o === "delete")
|
|
36
39
|
)
|
|
37
40
|
)
|
|
41
|
+
), I = F(
|
|
42
|
+
{ patch: t, ...s },
|
|
43
|
+
r,
|
|
44
|
+
o
|
|
38
45
|
);
|
|
39
46
|
try {
|
|
40
|
-
await
|
|
41
|
-
} catch (
|
|
42
|
-
const
|
|
43
|
-
console.error(
|
|
44
|
-
for (const
|
|
45
|
-
|
|
47
|
+
await l;
|
|
48
|
+
} catch (n) {
|
|
49
|
+
const c = `Error: ${n?.error?.data?.detail || `Failed to ${o} activity`}`;
|
|
50
|
+
console.error(c, n), E.error(c);
|
|
51
|
+
for (const $ of [...T, ...I])
|
|
52
|
+
$?.undo();
|
|
46
53
|
}
|
|
47
|
-
},
|
|
48
|
-
const i = Object.keys(
|
|
54
|
+
}, y = ({ entityId: t, filter: e }) => {
|
|
55
|
+
const i = Object.keys(S).filter((s) => s !== e).map((s) => ({
|
|
49
56
|
type: "entityActivities",
|
|
50
|
-
id:
|
|
57
|
+
id: t + "-" + s
|
|
51
58
|
}));
|
|
52
|
-
return i.push({ type: "activity", id: "LIST" }), i.push({ type: "watchers", id:
|
|
53
|
-
},
|
|
54
|
-
endpoints: (
|
|
55
|
-
createEntityActivity:
|
|
56
|
-
query: ({ projectName:
|
|
57
|
-
url: `/api/projects/${
|
|
59
|
+
return i.push({ type: "activity", id: "LIST" }), i.push({ type: "watchers", id: t }), i;
|
|
60
|
+
}, j = u.injectEndpoints({
|
|
61
|
+
endpoints: (t) => ({
|
|
62
|
+
createEntityActivity: t.mutation({
|
|
63
|
+
query: ({ projectName: e, entityType: a, entityId: i, data: s = {} }) => ({
|
|
64
|
+
url: `/api/projects/${e}/${a}/${i}/activities`,
|
|
58
65
|
method: "POST",
|
|
59
66
|
// generate a new activityId if this is a new activity
|
|
60
|
-
body:
|
|
67
|
+
body: s
|
|
61
68
|
}),
|
|
62
|
-
async onQueryStarted(
|
|
63
|
-
|
|
69
|
+
async onQueryStarted(e, a) {
|
|
70
|
+
d(e, a, "create");
|
|
64
71
|
},
|
|
65
72
|
// invalidate other filters that might be affected by this new activity (comments, checklists, etc)
|
|
66
|
-
invalidatesTags: (
|
|
73
|
+
invalidatesTags: (e, a, { entityId: i, filter: s }) => y({ entityId: i, filter: s })
|
|
67
74
|
}),
|
|
68
|
-
updateActivity:
|
|
69
|
-
query: ({ projectName:
|
|
70
|
-
url: `/api/projects/${
|
|
75
|
+
updateActivity: t.mutation({
|
|
76
|
+
query: ({ projectName: e, activityId: a, data: i }) => ({
|
|
77
|
+
url: `/api/projects/${e}/activities/${a}`,
|
|
71
78
|
method: "PATCH",
|
|
72
79
|
body: i
|
|
73
80
|
}),
|
|
74
|
-
async onQueryStarted(
|
|
75
|
-
|
|
81
|
+
async onQueryStarted(e, a) {
|
|
82
|
+
d(e, a, "update");
|
|
76
83
|
},
|
|
77
84
|
// invalidate other filters that might be affected by this new activity (comments, checklists, etc)
|
|
78
|
-
invalidatesTags: (
|
|
85
|
+
invalidatesTags: (e, a, { entityId: i, filter: s }) => y({ entityId: i, filter: s })
|
|
79
86
|
}),
|
|
80
|
-
deleteActivity:
|
|
81
|
-
query: ({ projectName:
|
|
82
|
-
url: `/api/projects/${
|
|
87
|
+
deleteActivity: t.mutation({
|
|
88
|
+
query: ({ projectName: e, activityId: a }) => ({
|
|
89
|
+
url: `/api/projects/${e}/activities/${a}`,
|
|
83
90
|
method: "DELETE"
|
|
84
91
|
}),
|
|
85
|
-
async onQueryStarted(
|
|
86
|
-
|
|
92
|
+
async onQueryStarted(e, a) {
|
|
93
|
+
d(e, a, "delete");
|
|
87
94
|
},
|
|
88
95
|
// invalidate other filters that might be affected by this new activity (comments, checklists, etc)
|
|
89
|
-
invalidatesTags: (
|
|
96
|
+
invalidatesTags: (e, a, { entityId: i, filter: s }) => y({ entityId: i, filter: s })
|
|
90
97
|
})
|
|
91
98
|
}),
|
|
92
99
|
overrideExisting: !0
|
|
93
100
|
}), {
|
|
94
|
-
useCreateEntityActivityMutation:
|
|
95
|
-
useDeleteActivityMutation:
|
|
96
|
-
useUpdateActivityMutation:
|
|
97
|
-
} =
|
|
101
|
+
useCreateEntityActivityMutation: M,
|
|
102
|
+
useDeleteActivityMutation: O,
|
|
103
|
+
useUpdateActivityMutation: P
|
|
104
|
+
} = j;
|
|
98
105
|
export {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
106
|
+
j as activitiesQueries,
|
|
107
|
+
M as useCreateEntityActivityMutation,
|
|
108
|
+
O as useDeleteActivityMutation,
|
|
109
|
+
P as useUpdateActivityMutation
|
|
103
110
|
};
|
|
104
111
|
//# sourceMappingURL=updateActivities.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateActivities.es.js","sources":["../../../../../../src/api/queries/activities/updateActivities.ts"],"sourcesContent":["import { getActivitiesGQLApi } from './getActivities'\nimport { toast } from 'react-toastify'\nimport { filterActivityTypes } from './util/activitiesHelpers'\n\nconst updateCache = (activitiesDraft: any, patch: any, isDelete: boolean) => {\n // Handle paginated structure\n if (isDelete) {\n // Remove from any page where it exists\n for (const page of activitiesDraft.pages) {\n const index = page.activities.findIndex((a: any) => a.activityId === patch.activityId)\n if (index !== -1) {\n page.activities.splice(index, 1)\n return\n }\n }\n } else {\n // Try to update existing activity\n let activityFound = false\n\n for (const page of activitiesDraft.pages) {\n const index = page.activities.findIndex((a: any) => a.activityId === patch.activityId)\n if (index !== -1) {\n // Update the activity\n page.activities[index] = { ...page.activities[index], ...patch }\n activityFound = true\n break\n }\n }\n\n // If activity doesn't exist and this is not a delete operation, add to first page\n if (!activityFound && activitiesDraft.pages.length > 0) {\n activitiesDraft.pages[0].activities.unshift(patch)\n }\n }\n}\n\nconst patchActivities = async (\n { patch, entityIds = [], filter, refs = [] }: any,\n
|
|
1
|
+
{"version":3,"file":"updateActivities.es.js","sources":["../../../../../../src/api/queries/activities/updateActivities.ts"],"sourcesContent":["import { getActivitiesGQLApi } from './getActivities'\nimport { toast } from 'react-toastify'\nimport { filterActivityTypes, filterKey } from './util/activitiesHelpers'\nimport { patchTableLatestComments } from './patchTableLatestComments'\n\nconst updateCache = (activitiesDraft: any, patch: any, isDelete: boolean) => {\n // Handle paginated structure\n if (isDelete) {\n // Remove from any page where it exists\n for (const page of activitiesDraft.pages) {\n const index = page.activities.findIndex((a: any) => a.activityId === patch.activityId)\n if (index !== -1) {\n page.activities.splice(index, 1)\n return\n }\n }\n } else {\n // Try to update existing activity\n let activityFound = false\n\n for (const page of activitiesDraft.pages) {\n const index = page.activities.findIndex((a: any) => a.activityId === patch.activityId)\n if (index !== -1) {\n // Update the activity\n page.activities[index] = { ...page.activities[index], ...patch }\n activityFound = true\n break\n }\n }\n\n // If activity doesn't exist and this is not a delete operation, add to first page\n if (!activityFound && activitiesDraft.pages.length > 0) {\n activitiesDraft.pages[0].activities.unshift(patch)\n }\n }\n}\n\nconst serializeFilter = (filter: unknown): string => {\n if (filter === undefined || filter === null) return ''\n return typeof filter === 'string' ? filter : JSON.stringify(filter)\n}\n\nconst patchActivities = async (\n { patch, entityIds = [], filter, refs = [], ...rest }: any,\n api: any,\n method: 'create' | 'update' | 'delete',\n) => {\n const { dispatch, queryFulfilled, getState } = api\n const refIds = refs.map((ref: any) => ref.id) || []\n const serializedFilter = serializeFilter(filter)\n // build tags that would be affected by this activity\n const invalidatingTags = [...entityIds, ...refIds].map((id) => ({\n type: 'entityActivities',\n id: id + '-' + filterKey(filter),\n }))\n\n const state = getState()\n // get caches that would be affected by this activity\n const entries = getActivitiesGQLApi.util.selectInvalidatedBy(state, invalidatingTags)\n\n // ensure that data is mapped to activityData\n if (method !== 'delete' && patch.data) {\n patch.activityData = { ...patch.activityData, ...patch.data }\n }\n\n // now patch all the caches with the update\n const patches = entries.map(({ originalArgs }) =>\n dispatch(\n getActivitiesGQLApi.util.updateQueryData('getActivitiesInfinite', originalArgs, (draft) =>\n updateCache(draft, patch, method === 'delete'),\n ),\n ),\n )\n\n // patch latestComments in the table caches too (instead of refetching them)\n const tablePatches = patchTableLatestComments(\n { patch, entityIds, filter, refs, ...rest },\n api,\n method,\n )\n\n try {\n await queryFulfilled\n } catch (error: any) {\n const message = `Error: ${error?.error?.data?.detail || `Failed to ${method} activity`}`\n console.error(message, error)\n toast.error(message)\n for (const patchResult of [...patches, ...tablePatches]) {\n patchResult?.undo()\n }\n }\n}\n\n// get tags for other filter types\nconst getTags = ({ entityId, filter }: { entityId: string; filter: string }) => {\n const invalidateFilters = Object.keys(filterActivityTypes).filter((key) => key !== filter)\n\n const tags = invalidateFilters.map((filter) => ({\n type: 'entityActivities',\n id: entityId + '-' + filter,\n }))\n\n tags.push({ type: 'activity', id: 'LIST' })\n\n tags.push({ type: 'watchers', id: entityId })\n\n return tags\n}\n\nconst updateActivitiesApi = getActivitiesGQLApi.injectEndpoints({\n endpoints: (build) => ({\n createEntityActivity: build.mutation({\n query: ({ projectName, entityType, entityId, data = {} }) => ({\n url: `/api/projects/${projectName}/${entityType}/${entityId}/activities`,\n method: 'POST',\n // generate a new activityId if this is a new activity\n body: data,\n }),\n async onQueryStarted(args, api) {\n patchActivities(args, api, 'create')\n },\n // invalidate other filters that might be affected by this new activity (comments, checklists, etc)\n invalidatesTags: (result, error, { entityId, filter }) => getTags({ entityId, filter }),\n }),\n\n updateActivity: build.mutation({\n query: ({ projectName, activityId, data }) => ({\n url: `/api/projects/${projectName}/activities/${activityId}`,\n method: 'PATCH',\n body: data,\n }),\n async onQueryStarted(args, api) {\n patchActivities(args, api, 'update')\n },\n // invalidate other filters that might be affected by this new activity (comments, checklists, etc)\n invalidatesTags: (result, error, { entityId, filter }) => getTags({ entityId, filter }),\n }),\n deleteActivity: build.mutation({\n query: ({ projectName, activityId }) => ({\n url: `/api/projects/${projectName}/activities/${activityId}`,\n method: 'DELETE',\n }),\n async onQueryStarted(args, api) {\n patchActivities(args, api, 'delete')\n },\n // invalidate other filters that might be affected by this new activity (comments, checklists, etc)\n invalidatesTags: (result, error, { entityId, filter }) => getTags({ entityId, filter }),\n }),\n }),\n overrideExisting: true,\n})\n\nexport const {\n useCreateEntityActivityMutation,\n useDeleteActivityMutation,\n useUpdateActivityMutation,\n} = updateActivitiesApi\nexport { updateActivitiesApi as activitiesQueries }\n"],"names":["updateCache","activitiesDraft","patch","isDelete","page","index","a","activityFound","serializeFilter","filter","patchActivities","entityIds","refs","rest","api","method","dispatch","queryFulfilled","getState","refIds","ref","invalidatingTags","id","filterKey","state","entries","getActivitiesGQLApi","patches","originalArgs","draft","tablePatches","patchTableLatestComments","error","message","toast","patchResult","getTags","entityId","tags","filterActivityTypes","key","updateActivitiesApi","build","projectName","entityType","data","args","result","activityId","useCreateEntityActivityMutation","useDeleteActivityMutation","useUpdateActivityMutation"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=(
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=(t,a)=>a.split(".").reduce((e,s)=>e&&e[s]!==void 0?e[s]:void 0,t),m=(t,a)=>{const e=a.split("."),s=e.pop(),o=e.reduce((r,i)=>r&&r[i]!==void 0?r[i]:void 0,t);o&&s&&delete o[s]};function h(t,a){const e={...t};for(const[s,o]of Object.entries(a)){const r=v(e,s);r!==void 0&&(e[o]=r,m(e,s))}return e}const y=(t=[],a)=>{const e=[];return t.forEach(s=>{const o=s.node;if(!o)return;const r=o,n=h(r,{"author.name":"authorName","author.attrib.fullName":"authorFullName","author.attrib.avatarUrl":"authorAvatarUrl"});if(typeof r.activityData=="string")try{n.activityData=JSON.parse(r.activityData)}catch{console.error("Error parsing JSON field activityData",r.activityData)}e.push(n)}),{activities:e,pageInfo:a}},f=t=>{const{id:a,label:e,name:s,status:o,thumbnailId:r,thumbnailHash:i,assignees:n,taskType:c,updatedAt:d,folder:p}=t||{};return{id:a,name:s,title:e||s,type:"task",subTitle:p?.label||p?.name||"",status:o,thumbnailId:r,thumbnailHash:i,updatedAt:d,taskType:c,users:n?.map(l=>({name:l,avatarUrl:`/api/users/${l}/avatar`}))||[],path:p?.path.split("/").splice(-2,1).join("")}},g=t=>{const{id:a,name:e,status:s,thumbnailId:o,author:r,updatedAt:i,product:n}=t;return{id:a,type:"version",name:e,title:e,subTitle:n?.name||"",status:s,thumbnailId:o,updatedAt:i,users:[{name:r||"",avatarUrl:`/api/users/${r}/avatar`}],productType:n?.productType,path:n?.folder?.path?.split("/").pop()}},k=(t,a)=>{switch(a){case"task":return f(t.task);case"version":return g(t.version);default:return{}}},b=t=>{const a=t?.project?.activities?.edges?.map(i=>i?.node),e=a.map(i=>i.body),s=a.map(i=>i.activityId),o=e.reduce((i,n)=>{if(!n)return i;const c=n.match(/\*\s\[\s\]/g);return i+(c?c.length:0)},0),r=e.reduce((i,n)=>{if(!n)return i;const c=n.match(/\*\s\[x\]/g);return i+(c?c.length:0)},0);return{total:o+r,checked:r,unChecked:o,ids:s}},T=(t,a="task",e="task")=>t?.length?[...t.map(({id:s})=>({type:a,id:s})),{type:a,id:e.toUpperCase()+"S"},{type:`kanBan${e.charAt(0).toUpperCase()+e.slice(1)}`,id:e.toUpperCase()+"S"}]:[{type:a,id:e.toUpperCase()+"S"}],A=t=>{if(typeof t=="string")return t;try{return JSON.stringify(t)??""}catch{return""}},u={activity:["comment","version.publish","status.change","assignee.add","assignee.remove","version.review"],comments:["comment"],versions:["version.publish"],updates:["status.change","assignee.add","assignee.remove"],checklists:["checklist"]},N=t=>{if(typeof t=="string")return t in u?u[t]:null;if(t&&typeof t=="object"&&t.conditions){const a=[];let e=!1;return t.conditions.forEach(s=>{s&&s.key&&s.value===!0&&s.key in u&&(a.push(...u[s.key]),e=!0)}),e?Array.from(new Set(a)):u.activity}return u.activity};exports.countChecklists=b;exports.filterActivityTypes=u;exports.filterKey=A;exports.getFilterActivityTypes=N;exports.taskProvideTags=T;exports.transformActivityData=y;exports.transformTooltipData=k;
|
|
2
2
|
//# sourceMappingURL=activitiesHelpers.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activitiesHelpers.cjs.js","sources":["../../../../../../../src/api/queries/activities/util/activitiesHelpers.ts"],"sourcesContent":["import type {\n ActivityFragmentFragment,\n GetEntitiesChecklistsQuery,\n PageInfo,\n} from '@shared/api/generated'\nimport { ChecklistCount, FeedActivity, FeedActivityData } from '../types'\nimport { BaseTypes, EntityTooltipQuery, TaskTypes, VersionTypes } from '../activityQueries'\nimport { FeedFilter } from '@shared/context'\n\n// Helper function to get a nested property of an object using a string path\nconst getNestedProperty = <T extends Record<string, any>, R = any>(\n obj: T,\n path: string,\n): R | undefined =>\n path.split('.').reduce<any>((o, p) => (o && o[p] !== undefined ? o[p] : undefined), obj)\n\n// Helper function to delete a nested property of an object using a string path\nconst deleteNestedProperty = <T extends Record<string, any>>(obj: T, path: string): void => {\n const pathParts = path.split('.')\n const lastPart = pathParts.pop()\n const target = pathParts.reduce<any>((o, p) => (o && o[p] !== undefined ? o[p] : undefined), obj)\n if (target && lastPart) {\n delete target[lastPart]\n }\n}\n\nfunction remapNestedProperties<T extends Record<string, any>>(\n object: T,\n remappingItems: Record<string, string>,\n): T {\n const transformedObject = { ...object }\n\n for (const [key, newKey] of Object.entries(remappingItems)) {\n const value = getNestedProperty(transformedObject, key)\n if (value !== undefined) {\n // Get deeply nested value from key using \".\" notation\n // @ts-expect-error\n transformedObject[newKey] = value\n // Delete the old key from the object\n deleteNestedProperty(transformedObject, key)\n }\n }\n\n return transformedObject\n}\n\nexport type ActivitiesResult = { activities: FeedActivity[]; pageInfo: PageInfo }\n\ntype TransFormActivityData = (\n edges: { node: ActivityFragmentFragment }[],\n pageInfo: PageInfo,\n) => ActivitiesResult\n\n// we flatten the activity object a little bit\nexport const transformActivityData: TransFormActivityData = (edges = [], pageInfo) => {\n const activities: FeedActivity[] = []\n\n // loop over each activity and remap the nested properties\n edges.forEach((edge) => {\n // remapping keys are the fields path in the object\n // and the values are the new keys to assign the values to\n const data = edge.node\n\n if (!data) {\n return\n }\n\n const activityNode = data\n\n // remapping of nested properties to flat properties\n const remappingItems = {\n 'author.name': 'authorName',\n 'author.attrib.fullName': 'authorFullName',\n 'author.attrib.avatarUrl': 'authorAvatarUrl',\n }\n\n const transformedActivity = remapNestedProperties(\n activityNode,\n remappingItems,\n ) as unknown as FeedActivity\n\n // parse activityData if it's a JSON string\n if (typeof activityNode.activityData === 'string') {\n try {\n transformedActivity.activityData = JSON.parse(activityNode.activityData) as FeedActivityData\n } catch (e) {\n console.error('Error parsing JSON field activityData', activityNode.activityData)\n }\n }\n\n activities.push(transformedActivity)\n })\n\n // when there are no activities and hasPreviousPage is false, add an \"createdAt\" activity as the last activity\n // if (pageInfo.hasPreviousPage === false) {\n // activities.push({ hasPreviousPage: false, activityType: 'end', activityId: 'end' })\n // }\n\n return { activities, pageInfo }\n}\n\nexport type EntityTooltip = {\n id: string\n name: string\n title: string\n type: string\n subTitle: string\n status?: string\n thumbnailId?: string\n thumbnailHash?: string\n updatedAt?: string\n taskType?: string\n users?: { name: string; avatarUrl: string }[]\n path?: string\n}\ntype TransformTaskTooltip = (data: BaseTypes & TaskTypes) => EntityTooltip\n\nconst transformTaskTooltip: TransformTaskTooltip = (data) => {\n const {\n id,\n label,\n name,\n status,\n thumbnailId,\n thumbnailHash,\n assignees,\n taskType,\n updatedAt,\n folder,\n } = data || {}\n const tooltip = {\n id,\n name,\n title: label || name,\n type: 'task',\n subTitle: folder?.label || folder?.name || '',\n status,\n thumbnailId,\n thumbnailHash,\n updatedAt,\n taskType,\n users: assignees?.map((name) => ({ name, avatarUrl: `/api/users/${name}/avatar` })) || [],\n path: folder?.path.split('/').splice(-2, 1).join(''),\n }\n\n return tooltip\n}\n\ntype TransformVersionTooltip = (data: BaseTypes & VersionTypes) => EntityTooltip\n\nconst transformVersionTooltip: TransformVersionTooltip = (data) => {\n const { id, name, status, thumbnailId, author, updatedAt, product } = data\n const tooltip = {\n id,\n type: 'version',\n name: name,\n title: name,\n subTitle: product?.name || '',\n status,\n thumbnailId,\n updatedAt,\n users: [{ name: author || '', avatarUrl: `/api/users/${author}/avatar` }],\n productType: product?.productType,\n path: product?.folder?.path?.split('/').pop(),\n }\n\n return tooltip\n}\n\n// different types have different tooltip data, we need to create a single data model\nexport const transformTooltipData = (data: EntityTooltipQuery['data']['project'], type: string) => {\n switch (type) {\n case 'task':\n // @ts-ignore\n return transformTaskTooltip(data.task)\n case 'version':\n // @ts-ignore\n return transformVersionTooltip(data.version)\n default:\n return {}\n }\n}\n\ntype CountCheckLists = (data: GetEntitiesChecklistsQuery) => ChecklistCount\n\nexport const countChecklists: CountCheckLists = (data) => {\n const activities = data?.project?.activities?.edges?.map((edge) => edge?.node)\n // get all bodies from each activity\n const bodies = activities.map((a) => a.body)\n const ids = activities.map((a) => a.activityId)\n\n // count how many checklists are in each body\n\n // count unchecked * [ ] items\n const unChecked = bodies.reduce((acc, body) => {\n if (!body) return acc\n const matches = body.match(/\\*\\s\\[\\s\\]/g)\n return acc + (matches ? matches.length : 0)\n }, 0)\n\n // count checked * [x] items\n const checked = bodies.reduce((acc, body) => {\n if (!body) return acc\n const matches = body.match(/\\*\\s\\[x\\]/g)\n return acc + (matches ? matches.length : 0)\n }, 0)\n\n return { total: unChecked + checked, checked, unChecked, ids }\n}\n\ntype Task = { id: string }\n\nexport const taskProvideTags = (result: Task[], type = 'task', entityType = 'task') =>\n result?.length\n ? [\n ...result.map(({ id }: Task) => ({ type, id })),\n { type, id: entityType.toUpperCase() + 'S' },\n {\n type: `kanBan${entityType.charAt(0).toUpperCase() + entityType.slice(1)}`,\n id: entityType.toUpperCase() + 'S',\n },\n ]\n : [{ type, id: entityType.toUpperCase() + 'S' }]\n\nexport const filterActivityTypes: Record<string, string[]> = {\n activity: ['comment', 'version.publish', 'status.change', 'assignee.add', 'assignee.remove', 'version.review'],\n comments: ['comment'],\n versions: ['version.publish'],\n updates: ['status.change', 'assignee.add', 'assignee.remove'],\n checklists: ['checklist'],\n}\n\nexport const getFilterActivityTypes = (filter: any): string[] | null => {\n // If it's a string, it's one of the legacy pre-set filters\n if (typeof filter === 'string') {\n if (filter in filterActivityTypes) {\n return filterActivityTypes[filter]\n }\n return null\n }\n\n // Handle QueryFilter object\n if (filter && typeof filter === 'object' && filter.conditions) {\n const activeTypes: string[] = []\n let hasExplicitTypeFilter = false\n\n filter.conditions.forEach((condition: any) => {\n // Check if it's a simple condition for one of our known activity types\n if (condition && condition.key && condition.value === true) {\n if (condition.key in filterActivityTypes) {\n activeTypes.push(...filterActivityTypes[condition.key])\n hasExplicitTypeFilter = true\n }\n }\n })\n\n // If no specific activity type filters are selected, return \"activity\" (all)\n if (!hasExplicitTypeFilter) {\n return filterActivityTypes.activity\n }\n\n // Return unique set of activity types\n return Array.from(new Set(activeTypes))\n }\n\n // fallback to all activity\n return filterActivityTypes.activity\n}\n"],"names":["getNestedProperty","obj","path","o","p","deleteNestedProperty","pathParts","lastPart","target","remapNestedProperties","object","remappingItems","transformedObject","key","newKey","value","transformActivityData","edges","pageInfo","activities","edge","data","activityNode","transformedActivity","transformTaskTooltip","id","label","name","status","thumbnailId","thumbnailHash","assignees","taskType","updatedAt","folder","transformVersionTooltip","author","product","transformTooltipData","type","countChecklists","bodies","a","ids","unChecked","acc","body","matches","checked","taskProvideTags","result","entityType","filterActivityTypes","getFilterActivityTypes","filter","activeTypes","hasExplicitTypeFilter","condition"],"mappings":"gFAUA,MAAMA,EAAoB,CACxBC,EACAC,IAEAA,EAAK,MAAM,GAAG,EAAE,OAAY,CAACC,EAAGC,IAAOD,GAAKA,EAAEC,CAAC,IAAM,OAAYD,EAAEC,CAAC,EAAI,OAAYH,CAAG,EAGnFI,EAAuB,CAAgCJ,EAAQC,IAAuB,CAC1F,MAAMI,EAAYJ,EAAK,MAAM,GAAG,EAC1BK,EAAWD,EAAU,IAAA,EACrBE,EAASF,EAAU,OAAY,CAACH,EAAGC,IAAOD,GAAKA,EAAEC,CAAC,IAAM,OAAYD,EAAEC,CAAC,EAAI,OAAYH,CAAG,EAC5FO,GAAUD,GACZ,OAAOC,EAAOD,CAAQ,CAE1B,EAEA,SAASE,EACPC,EACAC,EACG,CACH,MAAMC,EAAoB,CAAE,GAAGF,CAAA,EAE/B,SAAW,CAACG,EAAKC,CAAM,IAAK,OAAO,QAAQH,CAAc,EAAG,CAC1D,MAAMI,EAAQf,EAAkBY,EAAmBC,CAAG,EAClDE,IAAU,SAGZH,EAAkBE,CAAM,EAAIC,EAE5BV,EAAqBO,EAAmBC,CAAG,EAE/C,CAEA,OAAOD,CACT,CAUO,MAAMI,EAA+C,CAACC,EAAQ,CAAA,EAAIC,IAAa,CACpF,MAAMC,EAA6B,CAAA,EAGnC,OAAAF,EAAM,QAASG,GAAS,CAGtB,MAAMC,EAAOD,EAAK,KAElB,GAAI,CAACC,EACH,OAGF,MAAMC,EAAeD,EASfE,EAAsBd,EAC1Ba,EAPqB,CACrB,cAAe,aACf,yBAA0B,iBAC1B,0BAA2B,iBAAA,CAK3B,EAIF,GAAI,OAAOA,EAAa,cAAiB,SACvC,GAAI,CACFC,EAAoB,aAAe,KAAK,MAAMD,EAAa,YAAY,CACzE,MAAY,CACV,QAAQ,MAAM,wCAAyCA,EAAa,YAAY,CAClF,CAGFH,EAAW,KAAKI,CAAmB,CACrC,CAAC,EAOM,CAAE,WAAAJ,EAAY,SAAAD,CAAA,CACvB,EAkBMM,EAA8CH,GAAS,CAC3D,KAAM,CACJ,GAAAI,EACA,MAAAC,EACA,KAAAC,EACA,OAAAC,EACA,YAAAC,EACA,cAAAC,EACA,UAAAC,EACA,SAAAC,EACA,UAAAC,EACA,OAAAC,CAAA,EACEb,GAAQ,CAAA,EAgBZ,MAfgB,CACd,GAAAI,EACA,KAAAE,EACA,MAAOD,GAASC,EAChB,KAAM,OACN,SAAUO,GAAQ,OAASA,GAAQ,MAAQ,GAC3C,OAAAN,EACA,YAAAC,EACA,cAAAC,EACA,UAAAG,EACA,SAAAD,EACA,MAAOD,GAAW,IAAKJ,IAAU,CAAE,KAAAA,EAAM,UAAW,cAAcA,CAAI,SAAA,EAAY,GAAK,CAAA,EACvF,KAAMO,GAAQ,KAAK,MAAM,GAAG,EAAE,OAAO,GAAI,CAAC,EAAE,KAAK,EAAE,CAAA,CAIvD,EAIMC,EAAoDd,GAAS,CACjE,KAAM,CAAE,GAAAI,EAAI,KAAAE,EAAM,OAAAC,EAAQ,YAAAC,EAAa,OAAAO,EAAQ,UAAAH,EAAW,QAAAI,GAAYhB,EAetE,MAdgB,CACd,GAAAI,EACA,KAAM,UACN,KAAAE,EACA,MAAOA,EACP,SAAUU,GAAS,MAAQ,GAC3B,OAAAT,EACA,YAAAC,EACA,UAAAI,EACA,MAAO,CAAC,CAAE,KAAMG,GAAU,GAAI,UAAW,cAAcA,CAAM,UAAW,EACxE,YAAaC,GAAS,YACtB,KAAMA,GAAS,QAAQ,MAAM,MAAM,GAAG,EAAE,IAAA,CAAI,CAIhD,EAGaC,EAAuB,CAACjB,EAA6CkB,IAAiB,CACjG,OAAQA,EAAA,CACN,IAAK,OAEH,OAAOf,EAAqBH,EAAK,IAAI,EACvC,IAAK,UAEH,OAAOc,EAAwBd,EAAK,OAAO,EAC7C,QACE,MAAO,CAAA,CAAC,CAEd,EAIamB,EAAoCnB,GAAS,CACxD,MAAMF,EAAaE,GAAM,SAAS,YAAY,OAAO,IAAKD,GAASA,GAAM,IAAI,EAEvEqB,EAAStB,EAAW,IAAKuB,GAAMA,EAAE,IAAI,EACrCC,EAAMxB,EAAW,IAAKuB,GAAMA,EAAE,UAAU,EAKxCE,EAAYH,EAAO,OAAO,CAACI,EAAKC,IAAS,CAC7C,GAAI,CAACA,EAAM,OAAOD,EAClB,MAAME,EAAUD,EAAK,MAAM,aAAa,EACxC,OAAOD,GAAOE,EAAUA,EAAQ,OAAS,EAC3C,EAAG,CAAC,EAGEC,EAAUP,EAAO,OAAO,CAACI,EAAKC,IAAS,CAC3C,GAAI,CAACA,EAAM,OAAOD,EAClB,MAAME,EAAUD,EAAK,MAAM,YAAY,EACvC,OAAOD,GAAOE,EAAUA,EAAQ,OAAS,EAC3C,EAAG,CAAC,EAEJ,MAAO,CAAE,MAAOH,EAAYI,EAAS,QAAAA,EAAS,UAAAJ,EAAW,IAAAD,CAAA,CAC3D,EAIaM,EAAkB,CAACC,EAAgBX,EAAO,OAAQY,EAAa,SAC1ED,GAAQ,OACJ,CACE,GAAGA,EAAO,IAAI,CAAC,CAAE,GAAAzB,MAAgB,CAAE,KAAAc,EAAM,GAAAd,CAAA,EAAK,EAC9C,CAAE,KAAAc,EAAM,GAAIY,EAAW,YAAA,EAAgB,GAAA,EACvC,CACE,KAAM,SAASA,EAAW,OAAO,CAAC,EAAE,YAAA,EAAgBA,EAAW,MAAM,CAAC,CAAC,GACvE,GAAIA,EAAW,cAAgB,GAAA,CAEnC,EACA,CAAC,CAAE,KAAAZ,EAAM,GAAIY,EAAW,YAAA,EAAgB,IAAK,EAEtCC,EAAgD,CAC3D,SAAU,CAAC,UAAW,kBAAmB,gBAAiB,eAAgB,kBAAmB,gBAAgB,EAC7G,SAAU,CAAC,SAAS,EACpB,SAAU,CAAC,iBAAiB,EAC5B,QAAS,CAAC,gBAAiB,eAAgB,iBAAiB,EAC5D,WAAY,CAAC,WAAW,CAC1B,EAEaC,EAA0BC,GAAiC,CAEtE,GAAI,OAAOA,GAAW,SACpB,OAAIA,KAAUF,EACLA,EAAoBE,CAAM,EAE5B,KAIT,GAAIA,GAAU,OAAOA,GAAW,UAAYA,EAAO,WAAY,CAC7D,MAAMC,EAAwB,CAAA,EAC9B,IAAIC,EAAwB,GAa5B,OAXAF,EAAO,WAAW,QAASG,GAAmB,CAExCA,GAAaA,EAAU,KAAOA,EAAU,QAAU,IAChDA,EAAU,OAAOL,IACnBG,EAAY,KAAK,GAAGH,EAAoBK,EAAU,GAAG,CAAC,EACtDD,EAAwB,GAG9B,CAAC,EAGIA,EAKE,MAAM,KAAK,IAAI,IAAID,CAAW,CAAC,EAJ7BH,EAAoB,QAK/B,CAGA,OAAOA,EAAoB,QAC7B"}
|
|
1
|
+
{"version":3,"file":"activitiesHelpers.cjs.js","sources":["../../../../../../../src/api/queries/activities/util/activitiesHelpers.ts"],"sourcesContent":["import type {\n ActivityFragmentFragment,\n GetEntitiesChecklistsQuery,\n PageInfo,\n} from '@shared/api/generated'\nimport { ChecklistCount, FeedActivity, FeedActivityData } from '../types'\nimport { BaseTypes, EntityTooltipQuery, TaskTypes, VersionTypes } from '../activityQueries'\nimport { FeedFilter } from '@shared/context'\n\n// Helper function to get a nested property of an object using a string path\nconst getNestedProperty = <T extends Record<string, any>, R = any>(\n obj: T,\n path: string,\n): R | undefined =>\n path.split('.').reduce<any>((o, p) => (o && o[p] !== undefined ? o[p] : undefined), obj)\n\n// Helper function to delete a nested property of an object using a string path\nconst deleteNestedProperty = <T extends Record<string, any>>(obj: T, path: string): void => {\n const pathParts = path.split('.')\n const lastPart = pathParts.pop()\n const target = pathParts.reduce<any>((o, p) => (o && o[p] !== undefined ? o[p] : undefined), obj)\n if (target && lastPart) {\n delete target[lastPart]\n }\n}\n\nfunction remapNestedProperties<T extends Record<string, any>>(\n object: T,\n remappingItems: Record<string, string>,\n): T {\n const transformedObject = { ...object }\n\n for (const [key, newKey] of Object.entries(remappingItems)) {\n const value = getNestedProperty(transformedObject, key)\n if (value !== undefined) {\n // Get deeply nested value from key using \".\" notation\n // @ts-expect-error\n transformedObject[newKey] = value\n // Delete the old key from the object\n deleteNestedProperty(transformedObject, key)\n }\n }\n\n return transformedObject\n}\n\nexport type ActivitiesResult = { activities: FeedActivity[]; pageInfo: PageInfo }\n\ntype TransFormActivityData = (\n edges: { node: ActivityFragmentFragment }[],\n pageInfo: PageInfo,\n) => ActivitiesResult\n\n// we flatten the activity object a little bit\nexport const transformActivityData: TransFormActivityData = (edges = [], pageInfo) => {\n const activities: FeedActivity[] = []\n\n // loop over each activity and remap the nested properties\n edges.forEach((edge) => {\n // remapping keys are the fields path in the object\n // and the values are the new keys to assign the values to\n const data = edge.node\n\n if (!data) {\n return\n }\n\n const activityNode = data\n\n // remapping of nested properties to flat properties\n const remappingItems = {\n 'author.name': 'authorName',\n 'author.attrib.fullName': 'authorFullName',\n 'author.attrib.avatarUrl': 'authorAvatarUrl',\n }\n\n const transformedActivity = remapNestedProperties(\n activityNode,\n remappingItems,\n ) as unknown as FeedActivity\n\n // parse activityData if it's a JSON string\n if (typeof activityNode.activityData === 'string') {\n try {\n transformedActivity.activityData = JSON.parse(activityNode.activityData) as FeedActivityData\n } catch (e) {\n console.error('Error parsing JSON field activityData', activityNode.activityData)\n }\n }\n\n activities.push(transformedActivity)\n })\n\n // when there are no activities and hasPreviousPage is false, add an \"createdAt\" activity as the last activity\n // if (pageInfo.hasPreviousPage === false) {\n // activities.push({ hasPreviousPage: false, activityType: 'end', activityId: 'end' })\n // }\n\n return { activities, pageInfo }\n}\n\nexport type EntityTooltip = {\n id: string\n name: string\n title: string\n type: string\n subTitle: string\n status?: string\n thumbnailId?: string\n thumbnailHash?: string\n updatedAt?: string\n taskType?: string\n users?: { name: string; avatarUrl: string }[]\n path?: string\n}\ntype TransformTaskTooltip = (data: BaseTypes & TaskTypes) => EntityTooltip\n\nconst transformTaskTooltip: TransformTaskTooltip = (data) => {\n const {\n id,\n label,\n name,\n status,\n thumbnailId,\n thumbnailHash,\n assignees,\n taskType,\n updatedAt,\n folder,\n } = data || {}\n const tooltip = {\n id,\n name,\n title: label || name,\n type: 'task',\n subTitle: folder?.label || folder?.name || '',\n status,\n thumbnailId,\n thumbnailHash,\n updatedAt,\n taskType,\n users: assignees?.map((name) => ({ name, avatarUrl: `/api/users/${name}/avatar` })) || [],\n path: folder?.path.split('/').splice(-2, 1).join(''),\n }\n\n return tooltip\n}\n\ntype TransformVersionTooltip = (data: BaseTypes & VersionTypes) => EntityTooltip\n\nconst transformVersionTooltip: TransformVersionTooltip = (data) => {\n const { id, name, status, thumbnailId, author, updatedAt, product } = data\n const tooltip = {\n id,\n type: 'version',\n name: name,\n title: name,\n subTitle: product?.name || '',\n status,\n thumbnailId,\n updatedAt,\n users: [{ name: author || '', avatarUrl: `/api/users/${author}/avatar` }],\n productType: product?.productType,\n path: product?.folder?.path?.split('/').pop(),\n }\n\n return tooltip\n}\n\n// different types have different tooltip data, we need to create a single data model\nexport const transformTooltipData = (data: EntityTooltipQuery['data']['project'], type: string) => {\n switch (type) {\n case 'task':\n // @ts-ignore\n return transformTaskTooltip(data.task)\n case 'version':\n // @ts-ignore\n return transformVersionTooltip(data.version)\n default:\n return {}\n }\n}\n\ntype CountCheckLists = (data: GetEntitiesChecklistsQuery) => ChecklistCount\n\nexport const countChecklists: CountCheckLists = (data) => {\n const activities = data?.project?.activities?.edges?.map((edge) => edge?.node)\n // get all bodies from each activity\n const bodies = activities.map((a) => a.body)\n const ids = activities.map((a) => a.activityId)\n\n // count how many checklists are in each body\n\n // count unchecked * [ ] items\n const unChecked = bodies.reduce((acc, body) => {\n if (!body) return acc\n const matches = body.match(/\\*\\s\\[\\s\\]/g)\n return acc + (matches ? matches.length : 0)\n }, 0)\n\n // count checked * [x] items\n const checked = bodies.reduce((acc, body) => {\n if (!body) return acc\n const matches = body.match(/\\*\\s\\[x\\]/g)\n return acc + (matches ? matches.length : 0)\n }, 0)\n\n return { total: unChecked + checked, checked, unChecked, ids }\n}\n\ntype Task = { id: string }\n\nexport const taskProvideTags = (result: Task[], type = 'task', entityType = 'task') =>\n result?.length\n ? [\n ...result.map(({ id }: Task) => ({ type, id })),\n { type, id: entityType.toUpperCase() + 'S' },\n {\n type: `kanBan${entityType.charAt(0).toUpperCase() + entityType.slice(1)}`,\n id: entityType.toUpperCase() + 'S',\n },\n ]\n : [{ type, id: entityType.toUpperCase() + 'S' }]\n\nexport const filterKey = (filter: any): string => {\n if (typeof filter === 'string') return filter\n try {\n return JSON.stringify(filter) ?? ''\n } catch {\n return ''\n }\n}\n\nexport const filterActivityTypes: Record<string, string[]> = {\n activity: ['comment', 'version.publish', 'status.change', 'assignee.add', 'assignee.remove', 'version.review'],\n comments: ['comment'],\n versions: ['version.publish'],\n updates: ['status.change', 'assignee.add', 'assignee.remove'],\n checklists: ['checklist'],\n}\n\nexport const getFilterActivityTypes = (filter: any): string[] | null => {\n // If it's a string, it's one of the legacy pre-set filters\n if (typeof filter === 'string') {\n if (filter in filterActivityTypes) {\n return filterActivityTypes[filter]\n }\n return null\n }\n\n // Handle QueryFilter object\n if (filter && typeof filter === 'object' && filter.conditions) {\n const activeTypes: string[] = []\n let hasExplicitTypeFilter = false\n\n filter.conditions.forEach((condition: any) => {\n // Check if it's a simple condition for one of our known activity types\n if (condition && condition.key && condition.value === true) {\n if (condition.key in filterActivityTypes) {\n activeTypes.push(...filterActivityTypes[condition.key])\n hasExplicitTypeFilter = true\n }\n }\n })\n\n // If no specific activity type filters are selected, return \"activity\" (all)\n if (!hasExplicitTypeFilter) {\n return filterActivityTypes.activity\n }\n\n // Return unique set of activity types\n return Array.from(new Set(activeTypes))\n }\n\n // fallback to all activity\n return filterActivityTypes.activity\n}\n"],"names":["getNestedProperty","obj","path","o","p","deleteNestedProperty","pathParts","lastPart","target","remapNestedProperties","object","remappingItems","transformedObject","key","newKey","value","transformActivityData","edges","pageInfo","activities","edge","data","activityNode","transformedActivity","transformTaskTooltip","id","label","name","status","thumbnailId","thumbnailHash","assignees","taskType","updatedAt","folder","transformVersionTooltip","author","product","transformTooltipData","type","countChecklists","bodies","a","ids","unChecked","acc","body","matches","checked","taskProvideTags","result","entityType","filterKey","filter","filterActivityTypes","getFilterActivityTypes","activeTypes","hasExplicitTypeFilter","condition"],"mappings":"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"}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
const v = (
|
|
2
|
-
const
|
|
3
|
-
o &&
|
|
1
|
+
const v = (t, a) => a.split(".").reduce((e, s) => e && e[s] !== void 0 ? e[s] : void 0, t), h = (t, a) => {
|
|
2
|
+
const e = a.split("."), s = e.pop(), o = e.reduce((r, i) => r && r[i] !== void 0 ? r[i] : void 0, t);
|
|
3
|
+
o && s && delete o[s];
|
|
4
4
|
};
|
|
5
|
-
function
|
|
6
|
-
const
|
|
7
|
-
for (const [
|
|
8
|
-
const r = v(
|
|
9
|
-
r !== void 0 && (
|
|
5
|
+
function m(t, a) {
|
|
6
|
+
const e = { ...t };
|
|
7
|
+
for (const [s, o] of Object.entries(a)) {
|
|
8
|
+
const r = v(e, s);
|
|
9
|
+
r !== void 0 && (e[o] = r, h(e, s));
|
|
10
10
|
}
|
|
11
|
-
return
|
|
11
|
+
return e;
|
|
12
12
|
}
|
|
13
|
-
const k = (
|
|
14
|
-
const
|
|
15
|
-
return
|
|
16
|
-
const o =
|
|
13
|
+
const k = (t = [], a) => {
|
|
14
|
+
const e = [];
|
|
15
|
+
return t.forEach((s) => {
|
|
16
|
+
const o = s.node;
|
|
17
17
|
if (!o)
|
|
18
18
|
return;
|
|
19
|
-
const r = o, n =
|
|
19
|
+
const r = o, n = m(
|
|
20
20
|
r,
|
|
21
21
|
{
|
|
22
22
|
"author.name": "authorName",
|
|
@@ -30,13 +30,13 @@ const k = (e = [], s) => {
|
|
|
30
30
|
} catch {
|
|
31
31
|
console.error("Error parsing JSON field activityData", r.activityData);
|
|
32
32
|
}
|
|
33
|
-
|
|
34
|
-
}), { activities:
|
|
35
|
-
}, f = (
|
|
33
|
+
e.push(n);
|
|
34
|
+
}), { activities: e, pageInfo: a };
|
|
35
|
+
}, f = (t) => {
|
|
36
36
|
const {
|
|
37
|
-
id:
|
|
38
|
-
label:
|
|
39
|
-
name:
|
|
37
|
+
id: a,
|
|
38
|
+
label: e,
|
|
39
|
+
name: s,
|
|
40
40
|
status: o,
|
|
41
41
|
thumbnailId: r,
|
|
42
42
|
thumbnailHash: i,
|
|
@@ -44,11 +44,11 @@ const k = (e = [], s) => {
|
|
|
44
44
|
taskType: c,
|
|
45
45
|
updatedAt: d,
|
|
46
46
|
folder: u
|
|
47
|
-
} =
|
|
47
|
+
} = t || {};
|
|
48
48
|
return {
|
|
49
|
-
id:
|
|
50
|
-
name:
|
|
51
|
-
title:
|
|
49
|
+
id: a,
|
|
50
|
+
name: s,
|
|
51
|
+
title: e || s,
|
|
52
52
|
type: "task",
|
|
53
53
|
subTitle: u?.label || u?.name || "",
|
|
54
54
|
status: o,
|
|
@@ -59,71 +59,79 @@ const k = (e = [], s) => {
|
|
|
59
59
|
users: n?.map((l) => ({ name: l, avatarUrl: `/api/users/${l}/avatar` })) || [],
|
|
60
60
|
path: u?.path.split("/").splice(-2, 1).join("")
|
|
61
61
|
};
|
|
62
|
-
}, y = (
|
|
63
|
-
const { id:
|
|
62
|
+
}, y = (t) => {
|
|
63
|
+
const { id: a, name: e, status: s, thumbnailId: o, author: r, updatedAt: i, product: n } = t;
|
|
64
64
|
return {
|
|
65
|
-
id:
|
|
65
|
+
id: a,
|
|
66
66
|
type: "version",
|
|
67
|
-
name:
|
|
68
|
-
title:
|
|
67
|
+
name: e,
|
|
68
|
+
title: e,
|
|
69
69
|
subTitle: n?.name || "",
|
|
70
|
-
status:
|
|
70
|
+
status: s,
|
|
71
71
|
thumbnailId: o,
|
|
72
72
|
updatedAt: i,
|
|
73
73
|
users: [{ name: r || "", avatarUrl: `/api/users/${r}/avatar` }],
|
|
74
74
|
productType: n?.productType,
|
|
75
75
|
path: n?.folder?.path?.split("/").pop()
|
|
76
76
|
};
|
|
77
|
-
}, b = (
|
|
78
|
-
switch (
|
|
77
|
+
}, b = (t, a) => {
|
|
78
|
+
switch (a) {
|
|
79
79
|
case "task":
|
|
80
|
-
return f(
|
|
80
|
+
return f(t.task);
|
|
81
81
|
case "version":
|
|
82
|
-
return y(
|
|
82
|
+
return y(t.version);
|
|
83
83
|
default:
|
|
84
84
|
return {};
|
|
85
85
|
}
|
|
86
|
-
},
|
|
87
|
-
const
|
|
86
|
+
}, N = (t) => {
|
|
87
|
+
const a = t?.project?.activities?.edges?.map((i) => i?.node), e = a.map((i) => i.body), s = a.map((i) => i.activityId), o = e.reduce((i, n) => {
|
|
88
88
|
if (!n) return i;
|
|
89
89
|
const c = n.match(/\*\s\[\s\]/g);
|
|
90
90
|
return i + (c ? c.length : 0);
|
|
91
|
-
}, 0), r =
|
|
91
|
+
}, 0), r = e.reduce((i, n) => {
|
|
92
92
|
if (!n) return i;
|
|
93
93
|
const c = n.match(/\*\s\[x\]/g);
|
|
94
94
|
return i + (c ? c.length : 0);
|
|
95
95
|
}, 0);
|
|
96
|
-
return { total: o + r, checked: r, unChecked: o, ids:
|
|
97
|
-
},
|
|
98
|
-
...
|
|
99
|
-
{ type:
|
|
96
|
+
return { total: o + r, checked: r, unChecked: o, ids: s };
|
|
97
|
+
}, T = (t, a = "task", e = "task") => t?.length ? [
|
|
98
|
+
...t.map(({ id: s }) => ({ type: a, id: s })),
|
|
99
|
+
{ type: a, id: e.toUpperCase() + "S" },
|
|
100
100
|
{
|
|
101
|
-
type: `kanBan${
|
|
102
|
-
id:
|
|
101
|
+
type: `kanBan${e.charAt(0).toUpperCase() + e.slice(1)}`,
|
|
102
|
+
id: e.toUpperCase() + "S"
|
|
103
103
|
}
|
|
104
|
-
] : [{ type:
|
|
104
|
+
] : [{ type: a, id: e.toUpperCase() + "S" }], A = (t) => {
|
|
105
|
+
if (typeof t == "string") return t;
|
|
106
|
+
try {
|
|
107
|
+
return JSON.stringify(t) ?? "";
|
|
108
|
+
} catch {
|
|
109
|
+
return "";
|
|
110
|
+
}
|
|
111
|
+
}, p = {
|
|
105
112
|
activity: ["comment", "version.publish", "status.change", "assignee.add", "assignee.remove", "version.review"],
|
|
106
113
|
comments: ["comment"],
|
|
107
114
|
versions: ["version.publish"],
|
|
108
115
|
updates: ["status.change", "assignee.add", "assignee.remove"],
|
|
109
116
|
checklists: ["checklist"]
|
|
110
|
-
},
|
|
111
|
-
if (typeof
|
|
112
|
-
return
|
|
113
|
-
if (
|
|
114
|
-
const
|
|
115
|
-
let
|
|
116
|
-
return
|
|
117
|
-
|
|
118
|
-
}),
|
|
117
|
+
}, U = (t) => {
|
|
118
|
+
if (typeof t == "string")
|
|
119
|
+
return t in p ? p[t] : null;
|
|
120
|
+
if (t && typeof t == "object" && t.conditions) {
|
|
121
|
+
const a = [];
|
|
122
|
+
let e = !1;
|
|
123
|
+
return t.conditions.forEach((s) => {
|
|
124
|
+
s && s.key && s.value === !0 && s.key in p && (a.push(...p[s.key]), e = !0);
|
|
125
|
+
}), e ? Array.from(new Set(a)) : p.activity;
|
|
119
126
|
}
|
|
120
127
|
return p.activity;
|
|
121
128
|
};
|
|
122
129
|
export {
|
|
123
|
-
|
|
130
|
+
N as countChecklists,
|
|
124
131
|
p as filterActivityTypes,
|
|
125
|
-
|
|
126
|
-
|
|
132
|
+
A as filterKey,
|
|
133
|
+
U as getFilterActivityTypes,
|
|
134
|
+
T as taskProvideTags,
|
|
127
135
|
k as transformActivityData,
|
|
128
136
|
b as transformTooltipData
|
|
129
137
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activitiesHelpers.es.js","sources":["../../../../../../../src/api/queries/activities/util/activitiesHelpers.ts"],"sourcesContent":["import type {\n ActivityFragmentFragment,\n GetEntitiesChecklistsQuery,\n PageInfo,\n} from '@shared/api/generated'\nimport { ChecklistCount, FeedActivity, FeedActivityData } from '../types'\nimport { BaseTypes, EntityTooltipQuery, TaskTypes, VersionTypes } from '../activityQueries'\nimport { FeedFilter } from '@shared/context'\n\n// Helper function to get a nested property of an object using a string path\nconst getNestedProperty = <T extends Record<string, any>, R = any>(\n obj: T,\n path: string,\n): R | undefined =>\n path.split('.').reduce<any>((o, p) => (o && o[p] !== undefined ? o[p] : undefined), obj)\n\n// Helper function to delete a nested property of an object using a string path\nconst deleteNestedProperty = <T extends Record<string, any>>(obj: T, path: string): void => {\n const pathParts = path.split('.')\n const lastPart = pathParts.pop()\n const target = pathParts.reduce<any>((o, p) => (o && o[p] !== undefined ? o[p] : undefined), obj)\n if (target && lastPart) {\n delete target[lastPart]\n }\n}\n\nfunction remapNestedProperties<T extends Record<string, any>>(\n object: T,\n remappingItems: Record<string, string>,\n): T {\n const transformedObject = { ...object }\n\n for (const [key, newKey] of Object.entries(remappingItems)) {\n const value = getNestedProperty(transformedObject, key)\n if (value !== undefined) {\n // Get deeply nested value from key using \".\" notation\n // @ts-expect-error\n transformedObject[newKey] = value\n // Delete the old key from the object\n deleteNestedProperty(transformedObject, key)\n }\n }\n\n return transformedObject\n}\n\nexport type ActivitiesResult = { activities: FeedActivity[]; pageInfo: PageInfo }\n\ntype TransFormActivityData = (\n edges: { node: ActivityFragmentFragment }[],\n pageInfo: PageInfo,\n) => ActivitiesResult\n\n// we flatten the activity object a little bit\nexport const transformActivityData: TransFormActivityData = (edges = [], pageInfo) => {\n const activities: FeedActivity[] = []\n\n // loop over each activity and remap the nested properties\n edges.forEach((edge) => {\n // remapping keys are the fields path in the object\n // and the values are the new keys to assign the values to\n const data = edge.node\n\n if (!data) {\n return\n }\n\n const activityNode = data\n\n // remapping of nested properties to flat properties\n const remappingItems = {\n 'author.name': 'authorName',\n 'author.attrib.fullName': 'authorFullName',\n 'author.attrib.avatarUrl': 'authorAvatarUrl',\n }\n\n const transformedActivity = remapNestedProperties(\n activityNode,\n remappingItems,\n ) as unknown as FeedActivity\n\n // parse activityData if it's a JSON string\n if (typeof activityNode.activityData === 'string') {\n try {\n transformedActivity.activityData = JSON.parse(activityNode.activityData) as FeedActivityData\n } catch (e) {\n console.error('Error parsing JSON field activityData', activityNode.activityData)\n }\n }\n\n activities.push(transformedActivity)\n })\n\n // when there are no activities and hasPreviousPage is false, add an \"createdAt\" activity as the last activity\n // if (pageInfo.hasPreviousPage === false) {\n // activities.push({ hasPreviousPage: false, activityType: 'end', activityId: 'end' })\n // }\n\n return { activities, pageInfo }\n}\n\nexport type EntityTooltip = {\n id: string\n name: string\n title: string\n type: string\n subTitle: string\n status?: string\n thumbnailId?: string\n thumbnailHash?: string\n updatedAt?: string\n taskType?: string\n users?: { name: string; avatarUrl: string }[]\n path?: string\n}\ntype TransformTaskTooltip = (data: BaseTypes & TaskTypes) => EntityTooltip\n\nconst transformTaskTooltip: TransformTaskTooltip = (data) => {\n const {\n id,\n label,\n name,\n status,\n thumbnailId,\n thumbnailHash,\n assignees,\n taskType,\n updatedAt,\n folder,\n } = data || {}\n const tooltip = {\n id,\n name,\n title: label || name,\n type: 'task',\n subTitle: folder?.label || folder?.name || '',\n status,\n thumbnailId,\n thumbnailHash,\n updatedAt,\n taskType,\n users: assignees?.map((name) => ({ name, avatarUrl: `/api/users/${name}/avatar` })) || [],\n path: folder?.path.split('/').splice(-2, 1).join(''),\n }\n\n return tooltip\n}\n\ntype TransformVersionTooltip = (data: BaseTypes & VersionTypes) => EntityTooltip\n\nconst transformVersionTooltip: TransformVersionTooltip = (data) => {\n const { id, name, status, thumbnailId, author, updatedAt, product } = data\n const tooltip = {\n id,\n type: 'version',\n name: name,\n title: name,\n subTitle: product?.name || '',\n status,\n thumbnailId,\n updatedAt,\n users: [{ name: author || '', avatarUrl: `/api/users/${author}/avatar` }],\n productType: product?.productType,\n path: product?.folder?.path?.split('/').pop(),\n }\n\n return tooltip\n}\n\n// different types have different tooltip data, we need to create a single data model\nexport const transformTooltipData = (data: EntityTooltipQuery['data']['project'], type: string) => {\n switch (type) {\n case 'task':\n // @ts-ignore\n return transformTaskTooltip(data.task)\n case 'version':\n // @ts-ignore\n return transformVersionTooltip(data.version)\n default:\n return {}\n }\n}\n\ntype CountCheckLists = (data: GetEntitiesChecklistsQuery) => ChecklistCount\n\nexport const countChecklists: CountCheckLists = (data) => {\n const activities = data?.project?.activities?.edges?.map((edge) => edge?.node)\n // get all bodies from each activity\n const bodies = activities.map((a) => a.body)\n const ids = activities.map((a) => a.activityId)\n\n // count how many checklists are in each body\n\n // count unchecked * [ ] items\n const unChecked = bodies.reduce((acc, body) => {\n if (!body) return acc\n const matches = body.match(/\\*\\s\\[\\s\\]/g)\n return acc + (matches ? matches.length : 0)\n }, 0)\n\n // count checked * [x] items\n const checked = bodies.reduce((acc, body) => {\n if (!body) return acc\n const matches = body.match(/\\*\\s\\[x\\]/g)\n return acc + (matches ? matches.length : 0)\n }, 0)\n\n return { total: unChecked + checked, checked, unChecked, ids }\n}\n\ntype Task = { id: string }\n\nexport const taskProvideTags = (result: Task[], type = 'task', entityType = 'task') =>\n result?.length\n ? [\n ...result.map(({ id }: Task) => ({ type, id })),\n { type, id: entityType.toUpperCase() + 'S' },\n {\n type: `kanBan${entityType.charAt(0).toUpperCase() + entityType.slice(1)}`,\n id: entityType.toUpperCase() + 'S',\n },\n ]\n : [{ type, id: entityType.toUpperCase() + 'S' }]\n\nexport const filterActivityTypes: Record<string, string[]> = {\n activity: ['comment', 'version.publish', 'status.change', 'assignee.add', 'assignee.remove', 'version.review'],\n comments: ['comment'],\n versions: ['version.publish'],\n updates: ['status.change', 'assignee.add', 'assignee.remove'],\n checklists: ['checklist'],\n}\n\nexport const getFilterActivityTypes = (filter: any): string[] | null => {\n // If it's a string, it's one of the legacy pre-set filters\n if (typeof filter === 'string') {\n if (filter in filterActivityTypes) {\n return filterActivityTypes[filter]\n }\n return null\n }\n\n // Handle QueryFilter object\n if (filter && typeof filter === 'object' && filter.conditions) {\n const activeTypes: string[] = []\n let hasExplicitTypeFilter = false\n\n filter.conditions.forEach((condition: any) => {\n // Check if it's a simple condition for one of our known activity types\n if (condition && condition.key && condition.value === true) {\n if (condition.key in filterActivityTypes) {\n activeTypes.push(...filterActivityTypes[condition.key])\n hasExplicitTypeFilter = true\n }\n }\n })\n\n // If no specific activity type filters are selected, return \"activity\" (all)\n if (!hasExplicitTypeFilter) {\n return filterActivityTypes.activity\n }\n\n // Return unique set of activity types\n return Array.from(new Set(activeTypes))\n }\n\n // fallback to all activity\n return filterActivityTypes.activity\n}\n"],"names":["getNestedProperty","obj","path","o","p","deleteNestedProperty","pathParts","lastPart","target","remapNestedProperties","object","remappingItems","transformedObject","key","newKey","value","transformActivityData","edges","pageInfo","activities","edge","data","activityNode","transformedActivity","transformTaskTooltip","id","label","name","status","thumbnailId","thumbnailHash","assignees","taskType","updatedAt","folder","transformVersionTooltip","author","product","transformTooltipData","type","countChecklists","bodies","a","ids","unChecked","acc","body","matches","checked","taskProvideTags","result","entityType","filterActivityTypes","getFilterActivityTypes","filter","activeTypes","hasExplicitTypeFilter","condition"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"activitiesHelpers.es.js","sources":["../../../../../../../src/api/queries/activities/util/activitiesHelpers.ts"],"sourcesContent":["import type {\n ActivityFragmentFragment,\n GetEntitiesChecklistsQuery,\n PageInfo,\n} from '@shared/api/generated'\nimport { ChecklistCount, FeedActivity, FeedActivityData } from '../types'\nimport { BaseTypes, EntityTooltipQuery, TaskTypes, VersionTypes } from '../activityQueries'\nimport { FeedFilter } from '@shared/context'\n\n// Helper function to get a nested property of an object using a string path\nconst getNestedProperty = <T extends Record<string, any>, R = any>(\n obj: T,\n path: string,\n): R | undefined =>\n path.split('.').reduce<any>((o, p) => (o && o[p] !== undefined ? o[p] : undefined), obj)\n\n// Helper function to delete a nested property of an object using a string path\nconst deleteNestedProperty = <T extends Record<string, any>>(obj: T, path: string): void => {\n const pathParts = path.split('.')\n const lastPart = pathParts.pop()\n const target = pathParts.reduce<any>((o, p) => (o && o[p] !== undefined ? o[p] : undefined), obj)\n if (target && lastPart) {\n delete target[lastPart]\n }\n}\n\nfunction remapNestedProperties<T extends Record<string, any>>(\n object: T,\n remappingItems: Record<string, string>,\n): T {\n const transformedObject = { ...object }\n\n for (const [key, newKey] of Object.entries(remappingItems)) {\n const value = getNestedProperty(transformedObject, key)\n if (value !== undefined) {\n // Get deeply nested value from key using \".\" notation\n // @ts-expect-error\n transformedObject[newKey] = value\n // Delete the old key from the object\n deleteNestedProperty(transformedObject, key)\n }\n }\n\n return transformedObject\n}\n\nexport type ActivitiesResult = { activities: FeedActivity[]; pageInfo: PageInfo }\n\ntype TransFormActivityData = (\n edges: { node: ActivityFragmentFragment }[],\n pageInfo: PageInfo,\n) => ActivitiesResult\n\n// we flatten the activity object a little bit\nexport const transformActivityData: TransFormActivityData = (edges = [], pageInfo) => {\n const activities: FeedActivity[] = []\n\n // loop over each activity and remap the nested properties\n edges.forEach((edge) => {\n // remapping keys are the fields path in the object\n // and the values are the new keys to assign the values to\n const data = edge.node\n\n if (!data) {\n return\n }\n\n const activityNode = data\n\n // remapping of nested properties to flat properties\n const remappingItems = {\n 'author.name': 'authorName',\n 'author.attrib.fullName': 'authorFullName',\n 'author.attrib.avatarUrl': 'authorAvatarUrl',\n }\n\n const transformedActivity = remapNestedProperties(\n activityNode,\n remappingItems,\n ) as unknown as FeedActivity\n\n // parse activityData if it's a JSON string\n if (typeof activityNode.activityData === 'string') {\n try {\n transformedActivity.activityData = JSON.parse(activityNode.activityData) as FeedActivityData\n } catch (e) {\n console.error('Error parsing JSON field activityData', activityNode.activityData)\n }\n }\n\n activities.push(transformedActivity)\n })\n\n // when there are no activities and hasPreviousPage is false, add an \"createdAt\" activity as the last activity\n // if (pageInfo.hasPreviousPage === false) {\n // activities.push({ hasPreviousPage: false, activityType: 'end', activityId: 'end' })\n // }\n\n return { activities, pageInfo }\n}\n\nexport type EntityTooltip = {\n id: string\n name: string\n title: string\n type: string\n subTitle: string\n status?: string\n thumbnailId?: string\n thumbnailHash?: string\n updatedAt?: string\n taskType?: string\n users?: { name: string; avatarUrl: string }[]\n path?: string\n}\ntype TransformTaskTooltip = (data: BaseTypes & TaskTypes) => EntityTooltip\n\nconst transformTaskTooltip: TransformTaskTooltip = (data) => {\n const {\n id,\n label,\n name,\n status,\n thumbnailId,\n thumbnailHash,\n assignees,\n taskType,\n updatedAt,\n folder,\n } = data || {}\n const tooltip = {\n id,\n name,\n title: label || name,\n type: 'task',\n subTitle: folder?.label || folder?.name || '',\n status,\n thumbnailId,\n thumbnailHash,\n updatedAt,\n taskType,\n users: assignees?.map((name) => ({ name, avatarUrl: `/api/users/${name}/avatar` })) || [],\n path: folder?.path.split('/').splice(-2, 1).join(''),\n }\n\n return tooltip\n}\n\ntype TransformVersionTooltip = (data: BaseTypes & VersionTypes) => EntityTooltip\n\nconst transformVersionTooltip: TransformVersionTooltip = (data) => {\n const { id, name, status, thumbnailId, author, updatedAt, product } = data\n const tooltip = {\n id,\n type: 'version',\n name: name,\n title: name,\n subTitle: product?.name || '',\n status,\n thumbnailId,\n updatedAt,\n users: [{ name: author || '', avatarUrl: `/api/users/${author}/avatar` }],\n productType: product?.productType,\n path: product?.folder?.path?.split('/').pop(),\n }\n\n return tooltip\n}\n\n// different types have different tooltip data, we need to create a single data model\nexport const transformTooltipData = (data: EntityTooltipQuery['data']['project'], type: string) => {\n switch (type) {\n case 'task':\n // @ts-ignore\n return transformTaskTooltip(data.task)\n case 'version':\n // @ts-ignore\n return transformVersionTooltip(data.version)\n default:\n return {}\n }\n}\n\ntype CountCheckLists = (data: GetEntitiesChecklistsQuery) => ChecklistCount\n\nexport const countChecklists: CountCheckLists = (data) => {\n const activities = data?.project?.activities?.edges?.map((edge) => edge?.node)\n // get all bodies from each activity\n const bodies = activities.map((a) => a.body)\n const ids = activities.map((a) => a.activityId)\n\n // count how many checklists are in each body\n\n // count unchecked * [ ] items\n const unChecked = bodies.reduce((acc, body) => {\n if (!body) return acc\n const matches = body.match(/\\*\\s\\[\\s\\]/g)\n return acc + (matches ? matches.length : 0)\n }, 0)\n\n // count checked * [x] items\n const checked = bodies.reduce((acc, body) => {\n if (!body) return acc\n const matches = body.match(/\\*\\s\\[x\\]/g)\n return acc + (matches ? matches.length : 0)\n }, 0)\n\n return { total: unChecked + checked, checked, unChecked, ids }\n}\n\ntype Task = { id: string }\n\nexport const taskProvideTags = (result: Task[], type = 'task', entityType = 'task') =>\n result?.length\n ? [\n ...result.map(({ id }: Task) => ({ type, id })),\n { type, id: entityType.toUpperCase() + 'S' },\n {\n type: `kanBan${entityType.charAt(0).toUpperCase() + entityType.slice(1)}`,\n id: entityType.toUpperCase() + 'S',\n },\n ]\n : [{ type, id: entityType.toUpperCase() + 'S' }]\n\nexport const filterKey = (filter: any): string => {\n if (typeof filter === 'string') return filter\n try {\n return JSON.stringify(filter) ?? ''\n } catch {\n return ''\n }\n}\n\nexport const filterActivityTypes: Record<string, string[]> = {\n activity: ['comment', 'version.publish', 'status.change', 'assignee.add', 'assignee.remove', 'version.review'],\n comments: ['comment'],\n versions: ['version.publish'],\n updates: ['status.change', 'assignee.add', 'assignee.remove'],\n checklists: ['checklist'],\n}\n\nexport const getFilterActivityTypes = (filter: any): string[] | null => {\n // If it's a string, it's one of the legacy pre-set filters\n if (typeof filter === 'string') {\n if (filter in filterActivityTypes) {\n return filterActivityTypes[filter]\n }\n return null\n }\n\n // Handle QueryFilter object\n if (filter && typeof filter === 'object' && filter.conditions) {\n const activeTypes: string[] = []\n let hasExplicitTypeFilter = false\n\n filter.conditions.forEach((condition: any) => {\n // Check if it's a simple condition for one of our known activity types\n if (condition && condition.key && condition.value === true) {\n if (condition.key in filterActivityTypes) {\n activeTypes.push(...filterActivityTypes[condition.key])\n hasExplicitTypeFilter = true\n }\n }\n })\n\n // If no specific activity type filters are selected, return \"activity\" (all)\n if (!hasExplicitTypeFilter) {\n return filterActivityTypes.activity\n }\n\n // Return unique set of activity types\n return Array.from(new Set(activeTypes))\n }\n\n // fallback to all activity\n return filterActivityTypes.activity\n}\n"],"names":["getNestedProperty","obj","path","o","p","deleteNestedProperty","pathParts","lastPart","target","remapNestedProperties","object","remappingItems","transformedObject","key","newKey","value","transformActivityData","edges","pageInfo","activities","edge","data","activityNode","transformedActivity","transformTaskTooltip","id","label","name","status","thumbnailId","thumbnailHash","assignees","taskType","updatedAt","folder","transformVersionTooltip","author","product","transformTooltipData","type","countChecklists","bodies","a","ids","unChecked","acc","body","matches","checked","taskProvideTags","result","entityType","filterKey","filter","filterActivityTypes","getFilterActivityTypes","activeTypes","hasExplicitTypeFilter","condition"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=t=>t.replace(/_([a-z0-9])/g,(e,o)=>o.toUpperCase()),f={task_type:"subType",folder_type:"subType",product_type:"subType"},
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=t=>t.replace(/_([a-z0-9])/g,(e,o)=>o.toUpperCase()),f={task_type:"subType",folder_type:"subType",product_type:"subType"},a=t=>t in f?f[t]:t.startsWith("project_attributes_")?"attrib_"+t.slice(19):t.startsWith("inherited_attributes_")?"attrib_"+t.slice(21):t.startsWith("attrib_")?t:C(t),g=t=>{if(t==null)return;let e=t;if(typeof e=="string")try{e=JSON.parse(e)}catch{return}if(Array.isArray(e)){const o=new Map;for(const n of e){if(!n||n.value==null)continue;const l=Array.isArray(n.value)?n.value:[n.value];for(const i of l){const u=String(i),c=o.get(u);o.set(u,{...n,value:u,count:(c?.count??0)+(Number(n.count)||0)})}}return[...o.values()]}if(typeof e=="object")return Object.entries(e).map(([o,n])=>({value:o,count:Number(n)||0}))},d=(t,e)=>t==null&&e==null?void 0:(t??0)+(e??0),p=(t,e)=>t==null?e??void 0:e==null||t<e?t:e,h=(t,e)=>t==null?e??void 0:e==null||t>e?t:e,v=(t,e)=>t!=null&&e!=null&&t+e>0?Math.round(t/(t+e)*1e4)/100:void 0,y=(t,e)=>{const o=d(t.valueFilledCount,e.valueFilledCount),n=d(t.valueNotFilledCount,e.valueNotFilledCount),l=d(t.checkedCount,e.checkedCount),i=d(t.notCheckedCount,e.notCheckedCount);let u;if(t.avg!=null&&e.avg!=null){const r=t.valueFilledCount,s=e.valueFilledCount;u=r!=null&&s!=null&&r+s>0?(t.avg*r+e.avg*s)/(r+s):(t.avg+e.avg)/2,u=Math.round(u*100)/100}else u=t.avg??e.avg??void 0;let c;if(t.distribution?.length||e.distribution?.length){const r=new Map;for(const s of[...t.distribution??[],...e.distribution??[]]){const m=r.get(s.value);r.set(s.value,m?{...m,count:m.count+s.count}:{...s})}c=[...r.values()]}return{columnName:t.columnName,min:p(t.min,e.min),max:h(t.max,e.max),avg:u,sum:d(t.sum,e.sum),valueFilledCount:o,valueNotFilledCount:n,percentageFilled:v(o,n),percentageNotFilled:v(n,o),checkedCount:l,notCheckedCount:i,checkedPercentage:v(l,i),notCheckedPercentage:v(i,l),distribution:c,primaryCount:t.primaryCount??e.primaryCount,secondaryCount:t.secondaryCount??e.secondaryCount}},F=t=>t.map(e=>({...e,columnName:a(e.columnName),distribution:g(e.distribution)})),N=(t=[],e=[])=>{const o=new Map;for(const n of e)o.set(a(n.columnName),{...n});for(const n of t){const l=a(n.columnName),i={...o.get(l)||{columnName:n.columnName}};for(const[u,c]of Object.entries(n))c!=null&&(i[u]=c);o.set(l,i)}return[...o.values()]},_=t=>t.reduce((e,o)=>Math.max(e,(o.valueFilledCount??0)+(o.valueNotFilledCount??0)),0),S=(t,e=[])=>{const o=new Map;for(const l of t)o.set(a(l.columnName),l);const n=new Map(o);for(const l of e){const i=a(l.columnName),u=o.get(i);n.set(i,u?y(u,l):l)}return[...n.values()]};exports.canonicalColumnId=a;exports.combineFieldStats=S;exports.mergeFieldStats=N;exports.normalizeFieldStats=F;exports.totalRowsFromStats=_;
|
|
2
2
|
//# sourceMappingURL=columnStats.cjs.js.map
|