@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
|
@@ -2,35 +2,21 @@ import "react-toastify";
|
|
|
2
2
|
import "lodash";
|
|
3
3
|
import "uuid";
|
|
4
4
|
import "../../../util/pubsub.es.js";
|
|
5
|
-
import "../context/CellEditingContext.es.js";
|
|
6
5
|
import "../../../../../_virtual/jsx-runtime.es.js";
|
|
7
|
-
import "
|
|
8
|
-
import "
|
|
9
|
-
import "../../../components/SearchFilter/filterDates.es.js";
|
|
10
|
-
import "date-fns";
|
|
11
|
-
import "short-uuid";
|
|
12
|
-
import "@tanstack/react-table";
|
|
13
|
-
import "../widgets/CollapsedWidget.es.js";
|
|
14
|
-
import "../widgets/DateWidget.es.js";
|
|
15
|
-
import "../widgets/EnumWidget.es.js";
|
|
16
|
-
import "../widgets/EnumCellValue.es.js";
|
|
17
|
-
import "../widgets/TextWidget.es.js";
|
|
18
|
-
import "../widgets/MarkdownWidget.es.js";
|
|
19
|
-
import "../widgets/BooleanWidget.es.js";
|
|
20
|
-
import "../widgets/CellWidget.es.js";
|
|
21
|
-
import "../widgets/EntityNameWidget.es.js";
|
|
22
|
-
import "../widgets/GroupHeaderWidget.es.js";
|
|
23
|
-
import "../widgets/ThumbnailWidget.es.js";
|
|
6
|
+
import "clsx";
|
|
7
|
+
import "../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.es.js";
|
|
24
8
|
import "../../../components/AddonLoadingScreen/AddonLoadingScreen.es.js";
|
|
9
|
+
import "react";
|
|
25
10
|
import "../../../../../node_modules/match-sorter/dist/match-sorter.esm.es.js";
|
|
11
|
+
import "@ynput/ayon-react-components";
|
|
26
12
|
import "../../../components/AccessSearchInput/AccessSearchInput.styled.es.js";
|
|
27
13
|
import "../../../components/AccessUser/AccessUser.es.js";
|
|
28
|
-
import "clsx";
|
|
29
14
|
import "../../../components/AttributeEditor/AttributeEditor.es.js";
|
|
30
15
|
import "../../../components/AttributeEditor/attributeTypeMap.es.js";
|
|
31
16
|
import "../../../components/Badge/Badge.es.js";
|
|
32
17
|
import "../../../components/Chips/Chips.es.js";
|
|
33
18
|
import "react-dom";
|
|
19
|
+
import "date-fns";
|
|
34
20
|
import "../../../components/DateRangePicker/DateRangePicker.styled.es.js";
|
|
35
21
|
import "../../../components/LinksManager/CellEditingDialog.es.js";
|
|
36
22
|
import "../../../api/base/client.es.js";
|
|
@@ -192,11 +178,9 @@ import "../../Feed/components/ReactionContainer/Reactions.styled.es.js";
|
|
|
192
178
|
import "../../Feed/components/FilesGrid/FilesGrid.styled.es.js";
|
|
193
179
|
import "../../Feed/components/FileUploadCard/FileUploadCard.styled.es.js";
|
|
194
180
|
import "../../Feed/components/ActivityComment/ActivityComment.styled.es.js";
|
|
195
|
-
import "../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.es.js";
|
|
196
|
-
import "../../Feed/components/ActivityReference/ActivityReference.styled.es.js";
|
|
197
|
-
import "react-router-dom";
|
|
198
181
|
import "../../Feed/components/ActivityStatus/ActivityStatus.es.js";
|
|
199
182
|
import "../../Feed/components/ActivityHeader/ActivityHeader.styled.es.js";
|
|
183
|
+
import "../../Feed/components/ActivityReference/ActivityReference.styled.es.js";
|
|
200
184
|
import "../../Feed/components/ActivityDate.es.js";
|
|
201
185
|
import "../../Feed/components/ActivityCategorySelect/CategoryTag.es.js";
|
|
202
186
|
import "../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.es.js";
|
|
@@ -207,22 +191,41 @@ import "../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled
|
|
|
207
191
|
import "../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js";
|
|
208
192
|
import "../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js";
|
|
209
193
|
import "../../Feed/Feed.styled.es.js";
|
|
210
|
-
import "../../
|
|
194
|
+
import "../../Feed/components/FeedSearchFilter.es.js";
|
|
211
195
|
import "@tanstack/react-virtual";
|
|
196
|
+
import "@tanstack/react-table";
|
|
197
|
+
import "../widgets/CollapsedWidget.es.js";
|
|
198
|
+
import "../widgets/DateWidget.es.js";
|
|
199
|
+
import "../widgets/EnumWidget.es.js";
|
|
200
|
+
import "../widgets/EnumCellValue.es.js";
|
|
201
|
+
import "../widgets/TextWidget.es.js";
|
|
202
|
+
import "../widgets/MarkdownWidget.es.js";
|
|
203
|
+
import "../widgets/BooleanWidget.es.js";
|
|
204
|
+
import "../widgets/CellWidget.es.js";
|
|
205
|
+
import "../widgets/EntityNameWidget.es.js";
|
|
206
|
+
import "../widgets/GroupHeaderWidget.es.js";
|
|
207
|
+
import "../widgets/ThumbnailWidget.es.js";
|
|
208
|
+
import "../context/DetailsPanelEntityContext.es.js";
|
|
209
|
+
import "../context/SelectedRowsContext.es.js";
|
|
210
|
+
import "../../../components/LinksManager/LinksManager.styled.es.js";
|
|
211
|
+
import "../context/ProjectTableContext.es.js";
|
|
212
|
+
import "../widgets/EmptyWidget.es.js";
|
|
213
|
+
import "../widgets/ErrorWidget.es.js";
|
|
212
214
|
import "../ProjectTreeTable.styled.es.js";
|
|
213
|
-
import "../components/HeaderActionButton.es.js";
|
|
214
|
-
import "../components/RowSelectionHeader.es.js";
|
|
215
215
|
import "../components/SelectionCell.es.js";
|
|
216
|
+
import "../components/RowSelectionHeader.es.js";
|
|
217
|
+
import "../../../components/SearchFilter/filterDates.es.js";
|
|
218
|
+
import "short-uuid";
|
|
219
|
+
import "../widgets/LoadMoreWidget.es.js";
|
|
220
|
+
import "../components/HeaderActionButton.es.js";
|
|
216
221
|
import "../context/ProjectTableQueriesContext.es.js";
|
|
217
|
-
import "../context/ProjectTableContext.es.js";
|
|
218
222
|
import "../components/DeleteConfirmContent.es.js";
|
|
219
223
|
import "../context/ClipboardContext.es.js";
|
|
220
224
|
import "../context/SelectionCellsContext.es.js";
|
|
221
225
|
import "../context/ProjectDataContext.es.js";
|
|
226
|
+
import "../context/CellEditingContext.es.js";
|
|
222
227
|
import "../components/TableFooterRow.es.js";
|
|
223
|
-
import "../context/SelectedRowsContext.es.js";
|
|
224
228
|
import "../context/ColumnSettingsContext.es.js";
|
|
225
|
-
import "../context/DetailsPanelEntityContext.es.js";
|
|
226
229
|
import "../../EntityPickerDialog/EntityPickerDialog.es.js";
|
|
227
230
|
import "../../Slicer/components/Slicer.es.js";
|
|
228
231
|
import "../../Slicer/context/SlicerContext.es.js";
|
|
@@ -233,6 +236,8 @@ import "../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styl
|
|
|
233
236
|
import "../../../components/PlayableIcon/PlayableIcon.es.js";
|
|
234
237
|
import "../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js";
|
|
235
238
|
import "../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js";
|
|
239
|
+
import "../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
|
|
240
|
+
import "../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js";
|
|
236
241
|
import "../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.es.js";
|
|
237
242
|
import "../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.es.js";
|
|
238
243
|
import "../../Actions/Actions.styled.es.js";
|
|
@@ -255,7 +260,6 @@ import "../../../components/Feedback/FeedbackContextInstance.es.js";
|
|
|
255
260
|
import "../../../components/Feedback/SupportBubble.es.js";
|
|
256
261
|
import "../../../components/FileThumbnail/FileThumbnail.es.js";
|
|
257
262
|
import "../../../components/LegacyBadge/LegacyBadge.es.js";
|
|
258
|
-
import "../../../components/LinksManager/LinksManager.styled.es.js";
|
|
259
263
|
import "../../../components/Powerpack/PowerpackButton.es.js";
|
|
260
264
|
import "../../../components/Powerpack/FreeTrialLink.es.js";
|
|
261
265
|
import "../../../components/Powerpack/PowerpackDialog.styled.es.js";
|
|
@@ -263,8 +267,10 @@ import "../../../components/Powerpack/CTAButton.es.js";
|
|
|
263
267
|
import "../../../components/Powerpack/RequiredAddonVersion.es.js";
|
|
264
268
|
import "../../../components/ProjectTableSettings/ProjectTableSettings.es.js";
|
|
265
269
|
import "../../../components/SizeSlider/SizeSlider.es.js";
|
|
270
|
+
import "react-router-dom";
|
|
266
271
|
import "../../../components/ReviewableCard/ReviewableCard.es.js";
|
|
267
272
|
import "../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js";
|
|
273
|
+
import "../../../components/SearchFilter/CustomDateRangeDialog.es.js";
|
|
268
274
|
import "../../../components/SettingsPanel/SettingsPanel.es.js";
|
|
269
275
|
import "../../../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
|
|
270
276
|
import "../../../components/ShareOptionIcon/ShareOptionIcon.es.js";
|
|
@@ -281,15 +287,12 @@ import "../../../components/Menu/Menu.styled.es.js";
|
|
|
281
287
|
import "../../../components/Menu/MenuItem.es.js";
|
|
282
288
|
import "../../../components/ReviewablesSelector/ReviewablesSelector.es.js";
|
|
283
289
|
import "../../../components/ColumnHeaderMenuUI.es.js";
|
|
284
|
-
import "../widgets/EmptyWidget.es.js";
|
|
285
|
-
import "../widgets/ErrorWidget.es.js";
|
|
286
|
-
import "../widgets/LoadMoreWidget.es.js";
|
|
287
290
|
import { parseRowId as u } from "../context/ProjectTableProvider.es.js";
|
|
288
291
|
var l = /* @__PURE__ */ ((t) => (t[t.None = 0] = "None", t[t.Top = 1] = "Top", t[t.Right = 2] = "Right", t[t.Bottom = 4] = "Bottom", t[t.Left = 8] = "Left", t[t.All = 15] = "All", t))(l || {});
|
|
289
|
-
const
|
|
292
|
+
const Vm = (t, p) => `cell-${t}-${p}`, qm = (t) => {
|
|
290
293
|
const p = t.match(/^cell-(.+)-(.+)$/);
|
|
291
294
|
return p ? { rowId: p[1], colId: p[2] } : null;
|
|
292
|
-
},
|
|
295
|
+
}, zm = (t, p) => {
|
|
293
296
|
if (!t || !p) return;
|
|
294
297
|
const r = p.split("_");
|
|
295
298
|
let i = t;
|
|
@@ -299,28 +302,28 @@ const jm = (t, p) => `cell-${t}-${p}`, wm = (t) => {
|
|
|
299
302
|
else
|
|
300
303
|
return;
|
|
301
304
|
return i;
|
|
302
|
-
},
|
|
305
|
+
}, Fm = (t, p) => {
|
|
303
306
|
const [r, i, o, e, n] = p.split("_"), f = t.filter(
|
|
304
307
|
(m) => m.linkType === i && m.direction === n
|
|
305
308
|
);
|
|
306
309
|
return f.length ? f.map((m) => m.node.id).join(",") : "";
|
|
307
|
-
},
|
|
310
|
+
}, Gm = (t, p, r) => {
|
|
308
311
|
if (!r[t]?.[p])
|
|
309
312
|
return 0;
|
|
310
313
|
let i = 0;
|
|
311
314
|
return (t === 0 || !r[t - 1]?.[p]) && (i |= 1), r[t]?.[p + 1] || (i |= 2), r[t + 1]?.[p] || (i |= 4), (p === 0 || !r[t]?.[p - 1]) && (i |= 8), i;
|
|
312
|
-
},
|
|
315
|
+
}, Hm = (t) => {
|
|
313
316
|
const p = [];
|
|
314
317
|
return t & 1 && p.push("shadow-top"), t & 2 && p.push("shadow-right"), t & 4 && p.push("shadow-bottom"), t & 8 && p.push("shadow-left"), p;
|
|
315
|
-
},
|
|
318
|
+
}, Jm = (t, p) => p.get(u(t));
|
|
316
319
|
export {
|
|
317
320
|
l as BorderPosition,
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
321
|
+
Hm as getBorderClasses,
|
|
322
|
+
Gm as getCellBorders,
|
|
323
|
+
Vm as getCellId,
|
|
324
|
+
zm as getCellValue,
|
|
325
|
+
Jm as getEntityDataById,
|
|
326
|
+
Fm as getLinkEntityIdsByColumnId,
|
|
327
|
+
qm as parseCellId
|
|
325
328
|
};
|
|
326
329
|
//# sourceMappingURL=cellUtils.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cellUtils.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/cellUtils.ts"],"sourcesContent":["/**\n * Shared cell utilities for table operations\n */\n\nimport { TaskLink } from '@shared/api'\nimport { parseRowId } from '../context'\nimport { EMapResult, EntitiesMap } from '../types'\n\n// Type definitions for cell identifiers\nexport type CellId = string\nexport type RowId = string\nexport type ColId = string\n\n// Cell position in the grid\nexport interface CellPosition {\n rowId: RowId\n colId: ColId\n}\n\n// Cell border position flags - used for determining which borders to show\nexport enum BorderPosition {\n None = 0,\n Top = 1 << 0,\n Right = 1 << 1,\n Bottom = 1 << 2,\n Left = 1 << 3,\n All = Top | Right | Bottom | Left,\n}\n\n/**\n * Create a standardized cell ID from row and column IDs\n */\nexport const getCellId = (rowId: RowId, colId: ColId): CellId => `cell-${rowId}-${colId}`\n\n/**\n * Parse a cell ID to extract row and column IDs\n * @returns CellPosition or null if invalid format\n */\nexport const parseCellId = (cellId: CellId): CellPosition | null => {\n const match = cellId.match(/^cell-(.+)-(.+)$/)\n if (!match) return null\n return { rowId: match[1], colId: match[2] }\n}\n\nexport const getCellValue = (obj: any, path: string): any => {\n if (!obj || !path) return undefined\n\n const parts = path.split('_')\n let current = obj\n\n for (const part of parts) {\n if (current && typeof current === 'object' && part in current) {\n current = current[part]\n } else {\n return undefined // Return undefined if any part of the path is invalid\n }\n }\n\n return current\n}\n\n// return the link entity ids for a given column id\nexport const getLinkEntityIdsByColumnId = (links: TaskLink[], columnId: CellId): string => {\n // split the columnId\n const [_link, linkType, _inType, _outType, direction] = columnId.split('_')\n const cellLinks = links.filter(\n (link) => link.linkType === linkType && link.direction === direction,\n )\n if (cellLinks.length) {\n return cellLinks.map((link) => link.node.id).join(',')\n } else {\n return ''\n }\n}\n\n/**\n * Determines which borders to display for a selected cell\n * based on its position within the selection grid\n *\n * @param rowIndex Current cell's row index\n * @param colIndex Current cell's column index\n * @param selectedCells 2D array representing selection state (true = selected)\n * @returns BorderPosition flags indicating which borders to display\n */\nexport const getCellBorders = (\n rowIndex: number,\n colIndex: number,\n selectedCells: boolean[][],\n): BorderPosition => {\n if (!selectedCells[rowIndex]?.[colIndex]) {\n return BorderPosition.None\n }\n\n let borders = BorderPosition.None\n\n // Check top border\n if (rowIndex === 0 || !selectedCells[rowIndex - 1]?.[colIndex]) {\n borders |= BorderPosition.Top\n }\n\n // Check right border\n if (!selectedCells[rowIndex]?.[colIndex + 1]) {\n borders |= BorderPosition.Right\n }\n\n // Check bottom border\n if (!selectedCells[rowIndex + 1]?.[colIndex]) {\n borders |= BorderPosition.Bottom\n }\n\n // Check left border\n if (colIndex === 0 || !selectedCells[rowIndex]?.[colIndex - 1]) {\n borders |= BorderPosition.Left\n }\n\n return borders\n}\n\n/**\n * Converts border position flags to CSS classes for shadow styling\n */\nexport const getBorderClasses = (borders: BorderPosition): string[] => {\n const classes: string[] = []\n\n if (borders & BorderPosition.Top) classes.push('shadow-top')\n if (borders & BorderPosition.Right) classes.push('shadow-right')\n if (borders & BorderPosition.Bottom) classes.push('shadow-bottom')\n if (borders & BorderPosition.Left) classes.push('shadow-left')\n\n return classes\n}\n\n// get a entity from it's id\nexport const getEntityDataById = <T extends 'folder' | 'task' | 'product' | 'version'>(\n id: string,\n entitiesMap: EntitiesMap,\n) => entitiesMap.get(parseRowId(id)) as EMapResult<T> | undefined\n"],"names":["BorderPosition","getCellId","rowId","colId","parseCellId","cellId","match","getCellValue","obj","path","parts","current","part","getLinkEntityIdsByColumnId","links","columnId","_link","linkType","_inType","_outType","direction","cellLinks","link","getCellBorders","rowIndex","colIndex","selectedCells","borders","getBorderClasses","classes","getEntityDataById","id","entitiesMap","parseRowId"],"mappings":"
|
|
1
|
+
{"version":3,"file":"cellUtils.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/cellUtils.ts"],"sourcesContent":["/**\n * Shared cell utilities for table operations\n */\n\nimport { TaskLink } from '@shared/api'\nimport { parseRowId } from '../context'\nimport { EMapResult, EntitiesMap } from '../types'\n\n// Type definitions for cell identifiers\nexport type CellId = string\nexport type RowId = string\nexport type ColId = string\n\n// Cell position in the grid\nexport interface CellPosition {\n rowId: RowId\n colId: ColId\n}\n\n// Cell border position flags - used for determining which borders to show\nexport enum BorderPosition {\n None = 0,\n Top = 1 << 0,\n Right = 1 << 1,\n Bottom = 1 << 2,\n Left = 1 << 3,\n All = Top | Right | Bottom | Left,\n}\n\n/**\n * Create a standardized cell ID from row and column IDs\n */\nexport const getCellId = (rowId: RowId, colId: ColId): CellId => `cell-${rowId}-${colId}`\n\n/**\n * Parse a cell ID to extract row and column IDs\n * @returns CellPosition or null if invalid format\n */\nexport const parseCellId = (cellId: CellId): CellPosition | null => {\n const match = cellId.match(/^cell-(.+)-(.+)$/)\n if (!match) return null\n return { rowId: match[1], colId: match[2] }\n}\n\nexport const getCellValue = (obj: any, path: string): any => {\n if (!obj || !path) return undefined\n\n const parts = path.split('_')\n let current = obj\n\n for (const part of parts) {\n if (current && typeof current === 'object' && part in current) {\n current = current[part]\n } else {\n return undefined // Return undefined if any part of the path is invalid\n }\n }\n\n return current\n}\n\n// return the link entity ids for a given column id\nexport const getLinkEntityIdsByColumnId = (links: TaskLink[], columnId: CellId): string => {\n // split the columnId\n const [_link, linkType, _inType, _outType, direction] = columnId.split('_')\n const cellLinks = links.filter(\n (link) => link.linkType === linkType && link.direction === direction,\n )\n if (cellLinks.length) {\n return cellLinks.map((link) => link.node.id).join(',')\n } else {\n return ''\n }\n}\n\n/**\n * Determines which borders to display for a selected cell\n * based on its position within the selection grid\n *\n * @param rowIndex Current cell's row index\n * @param colIndex Current cell's column index\n * @param selectedCells 2D array representing selection state (true = selected)\n * @returns BorderPosition flags indicating which borders to display\n */\nexport const getCellBorders = (\n rowIndex: number,\n colIndex: number,\n selectedCells: boolean[][],\n): BorderPosition => {\n if (!selectedCells[rowIndex]?.[colIndex]) {\n return BorderPosition.None\n }\n\n let borders = BorderPosition.None\n\n // Check top border\n if (rowIndex === 0 || !selectedCells[rowIndex - 1]?.[colIndex]) {\n borders |= BorderPosition.Top\n }\n\n // Check right border\n if (!selectedCells[rowIndex]?.[colIndex + 1]) {\n borders |= BorderPosition.Right\n }\n\n // Check bottom border\n if (!selectedCells[rowIndex + 1]?.[colIndex]) {\n borders |= BorderPosition.Bottom\n }\n\n // Check left border\n if (colIndex === 0 || !selectedCells[rowIndex]?.[colIndex - 1]) {\n borders |= BorderPosition.Left\n }\n\n return borders\n}\n\n/**\n * Converts border position flags to CSS classes for shadow styling\n */\nexport const getBorderClasses = (borders: BorderPosition): string[] => {\n const classes: string[] = []\n\n if (borders & BorderPosition.Top) classes.push('shadow-top')\n if (borders & BorderPosition.Right) classes.push('shadow-right')\n if (borders & BorderPosition.Bottom) classes.push('shadow-bottom')\n if (borders & BorderPosition.Left) classes.push('shadow-left')\n\n return classes\n}\n\n// get a entity from it's id\nexport const getEntityDataById = <T extends 'folder' | 'task' | 'product' | 'version'>(\n id: string,\n entitiesMap: EntitiesMap,\n) => entitiesMap.get(parseRowId(id)) as EMapResult<T> | undefined\n"],"names":["BorderPosition","getCellId","rowId","colId","parseCellId","cellId","match","getCellValue","obj","path","parts","current","part","getLinkEntityIdsByColumnId","links","columnId","_link","linkType","_inType","_outType","direction","cellLinks","link","getCellBorders","rowIndex","colIndex","selectedCells","borders","getBorderClasses","classes","getEntityDataById","id","entitiesMap","parseRowId"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBO,IAAKA,sBAAAA,OACVA,EAAAA,EAAA,OAAO,CAAA,IAAP,QACAA,EAAAA,EAAA,MAAM,CAAA,IAAN,OACAA,EAAAA,EAAA,QAAQ,CAAA,IAAR,SACAA,EAAAA,EAAA,SAAS,CAAA,IAAT,UACAA,EAAAA,EAAA,OAAO,CAAA,IAAP,QACAA,EAAAA,EAAA,MAAM,EAAA,IAAN,OANUA,IAAAA,KAAA,CAAA,CAAA;AAYL,MAAMC,KAAY,CAACC,GAAcC,MAAyB,QAAQD,CAAK,IAAIC,CAAK,IAM1EC,KAAc,CAACC,MAAwC;AAClE,QAAMC,IAAQD,EAAO,MAAM,kBAAkB;AAC7C,SAAKC,IACE,EAAE,OAAOA,EAAM,CAAC,GAAG,OAAOA,EAAM,CAAC,EAAA,IADrB;AAErB,GAEaC,KAAe,CAACC,GAAUC,MAAsB;AAC3D,MAAI,CAACD,KAAO,CAACC,EAAM;AAEnB,QAAMC,IAAQD,EAAK,MAAM,GAAG;AAC5B,MAAIE,IAAUH;AAEd,aAAWI,KAAQF;AACjB,QAAIC,KAAW,OAAOA,KAAY,YAAYC,KAAQD;AACpD,MAAAA,IAAUA,EAAQC,CAAI;AAAA;AAEtB;AAIJ,SAAOD;AACT,GAGaE,KAA6B,CAACC,GAAmBC,MAA6B;AAEzF,QAAM,CAACC,GAAOC,GAAUC,GAASC,GAAUC,CAAS,IAAIL,EAAS,MAAM,GAAG,GACpEM,IAAYP,EAAM;AAAA,IACtB,CAACQ,MAASA,EAAK,aAAaL,KAAYK,EAAK,cAAcF;AAAA,EAAA;AAE7D,SAAIC,EAAU,SACLA,EAAU,IAAI,CAACC,MAASA,EAAK,KAAK,EAAE,EAAE,KAAK,GAAG,IAE9C;AAEX,GAWaC,KAAiB,CAC5BC,GACAC,GACAC,MACmB;AACnB,MAAI,CAACA,EAAcF,CAAQ,IAAIC,CAAQ;AACrC,WAAO;AAGT,MAAIE,IAAU;AAGd,UAAIH,MAAa,KAAK,CAACE,EAAcF,IAAW,CAAC,IAAIC,CAAQ,OAC3DE,KAAW,IAIRD,EAAcF,CAAQ,IAAIC,IAAW,CAAC,MACzCE,KAAW,IAIRD,EAAcF,IAAW,CAAC,IAAIC,CAAQ,MACzCE,KAAW,KAITF,MAAa,KAAK,CAACC,EAAcF,CAAQ,IAAIC,IAAW,CAAC,OAC3DE,KAAW,IAGNA;AACT,GAKaC,KAAmB,CAACD,MAAsC;AACrE,QAAME,IAAoB,CAAA;AAE1B,SAAIF,IAAU,KAAoBE,EAAQ,KAAK,YAAY,GACvDF,IAAU,KAAsBE,EAAQ,KAAK,cAAc,GAC3DF,IAAU,KAAuBE,EAAQ,KAAK,eAAe,GAC7DF,IAAU,KAAqBE,EAAQ,KAAK,aAAa,GAEtDA;AACT,GAGaC,KAAoB,CAC/BC,GACAC,MACGA,EAAY,IAAIC,EAAWF,CAAE,CAAC;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const V=require("@ynput/ayon-react-components"),C=require("../../../components/SearchFilter/filterDates.cjs.js"),g=require("./expandRelativeDates.cjs.js"),v="no-date",m=(e,n)=>{if(!n.values||n.values.length===0)return null;const t=n.values.flatMap(p=>{const u=[],o=p.values,l=o?.[0]?.id,d=o?.[1]?.id,r=l&&d&&l!==v&&d!==v?C.detectRelativeDatePattern(l,d):null;return o?.[0]!==void 0&&o?.[0].id!==v&&u.push({key:e,operator:n.inverted?"lte":"gte",value:r?g.createRelativeValue(r.id,0):o[0].id}),o?.[1]!==void 0&&o?.[1].id!==v&&u.push({key:e,operator:n.inverted?"gte":"lte",value:r?g.createRelativeValue(r.id,1):o[1].id}),u});return t.length===0?null:{conditions:t,operator:n.inverted?"or":"and"}},D=e=>!e||e.length===0?{}:{conditions:e.filter(t=>!!t.values?.length).filter(t=>t.id!=="hierarchy").flatMap(t=>q(t)),operator:"and"},q=e=>{const n=V.getFilterFromId(e.id);let t;const p=Array.isArray(e.values)&&e.values.map(s=>s.id)?.includes("hasValue"),u=Array.isArray(e.values)&&e.values.map(s=>s.id)?.includes("noValue");e.values&&e.values.length>0&&(e.singleSelect?t=h(e.values[0].id,e.type):t=e.values.map(s=>h(s.id,e.type)));const o=e.type?.startsWith("list_of_")||n.includes("tags")||n.includes("assignees"),l=e.type==="datetime",d=e.type==="boolean",r=n.endsWith("version")||e.type==="integer"||e.type==="float",F=e.values&&e.values.some(s=>s.isCustom===!0);let a="eq";if(t===void 0)return a=e.inverted?"notnull":"isnull",{key:n,operator:a};if(p)t=o?[]:void 0,a=o?e.inverted?"eq":"ne":e.inverted?"isnull":"notnull";else if(u)t=o?[]:void 0,a=o?e.inverted?"ne":"eq":e.inverted?"notnull":"isnull";else if(o)e.inverted?a=e.operator==="AND"?"excludesall":"excludesany":a=e.operator==="AND"?"includesall":"includesany";else if(l){const s=m(n,e);if(s)return s;a=e.inverted?"ne":"eq"}else if(d)a=e.inverted?"ne":"eq";else if(F&&!o&&!r)if(!e.values||e.values.length===0)a=e.inverted?"notin":"in";else{const s=e.values.filter(i=>i.isCustom===!0),y=e.values.filter(i=>!i.isCustom);if(y.length===0)if(s.length===1)a="like",t=`%${s[0].id}%`;else return{conditions:s.map(c=>({key:n,operator:"like",value:`%${c.id}%`})),operator:e.inverted?"and":"or"};else{const i=[];return y.length>0&&i.push({key:n,operator:e.inverted?"notin":"in",value:y.map(c=>h(c.id,e.type))}),s.forEach(c=>{i.push({key:n,operator:"like",value:`%${c.id}%`})}),{conditions:i,operator:e.inverted?"and":"or"}}}else a=e.inverted?"notin":"in";return{key:n,value:t,operator:a}},h=(e,n)=>{if(!n)return e;switch(n){case"integer":return parseInt(e,10);case"float":return parseFloat(e);case"boolean":return e.toLowerCase()==="true";default:return e}};exports.clientFilterToQueryFilter=D;exports.convertDateFilterToQueryFilter=m;
|
|
2
2
|
//# sourceMappingURL=clientFilterToQueryFilter.cjs.js.map
|
package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientFilterToQueryFilter.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.ts"],"sourcesContent":["import { getFilterFromId } from '@ynput/ayon-react-components'\nimport { QueryCondition, QueryFilter } from '../types/operations'\nimport { detectRelativeDatePattern } from '@shared/components/SearchFilter/filterDates'\nimport { createRelativeValue } from './expandRelativeDates'\nconst NO_DATE = 'no-date'\n\n// New type that cherry picks only the needed fields from Filter\nexport type FilterForQuery = {\n id: string\n values?: { id: string; values?: { id: string }[]; isCustom?: boolean }[]\n type?: string\n singleSelect?: boolean\n inverted?: boolean\n operator?: string\n}\n\nexport const clientFilterToQueryFilter = (filters: FilterForQuery[]): QueryFilter => {\n // If there are no filters, return an empty filter\n if (!filters || filters.length === 0) {\n return {}\n }\n\n // Process each filter as its own condition\n const conditions: (QueryCondition | QueryFilter)[] = filters\n .filter((f) => !!f.values?.length)\n .filter((f) => f.id !== 'hierarchy') // remove hierarchy filter as it is handled separately\n .flatMap((filter) => convertFilterToCondition(filter))\n\n // Return the QueryFilter with all conditions combined with AND\n return {\n conditions,\n operator: 'and',\n }\n}\n\n// Helper function to convert a single Filter to a QueryCondition\nconst convertFilterToCondition = (filter: FilterForQuery): QueryCondition | QueryFilter => {\n // Extract key from filter ID (split by underscore if needed)\n const key = getFilterFromId(filter.id)\n\n // Handle values based on filter type\n let value: QueryCondition['value']\n\n // there is any value\n const hasSomeValue =\n Array.isArray(filter.values) && filter.values.map((v) => v.id)?.includes('hasValue')\n const hasNoValue =\n Array.isArray(filter.values) && filter.values.map((v) => v.id)?.includes('noValue')\n\n if (filter.values && filter.values.length > 0) {\n if (filter.singleSelect) {\n // @ts-expect-error\n value = convertValueByType(filter.values[0].id, filter.type)\n } else {\n // @ts-expect-error\n value = filter.values.map((v) => convertValueByType(v.id, filter.type))\n }\n }\n\n // Determine if this is likely a list field based on filter type\n const isListField =\n filter.type?.startsWith('list_of_') || key.includes('tags') || key.includes('assignees')\n const isDateField = filter.type === 'datetime'\n const isBooleanField = filter.type === 'boolean'\n // Version field is a special numeric field that should use exact matching\n const isNumberField =\n key.endsWith('version') || filter.type === 'integer' || filter.type === 'float'\n\n // Check if any of the values are custom (user-entered values)\n const hasCustomValues = filter.values && filter.values.some((v) => v.isCustom === true)\n\n // Determine the appropriate operator based on filter properties and type\n let operator: QueryCondition['operator'] = 'eq'\n\n // Handling NULL values\n if (value === undefined) {\n operator = filter.inverted ? 'notnull' : 'isnull'\n return { key, operator }\n }\n\n // Handle different filter types\n if (hasSomeValue) {\n // we set the value to the empty state and then say it should not be that\n value = isListField ? [] : undefined\n operator = isListField\n ? filter.inverted\n ? 'eq'\n : 'ne'\n : filter.inverted\n ? 'isnull'\n : 'notnull'\n } else if (hasNoValue) {\n // we set the value to the empty state and then say it should be that\n value = isListField ? [] : undefined\n operator = isListField\n ? filter.inverted\n ? 'ne'\n : 'eq'\n : filter.inverted\n ? 'notnull'\n : 'isnull'\n } else if (isListField) {\n if (filter.inverted) {\n operator = filter.operator === 'AND' ? 'excludesall' : 'excludesany'\n } else {\n operator = filter.operator === 'AND' ? 'includesall' : 'includesany'\n }\n } else if (isDateField) {\n // For date filters, we need to return a complete query filter with conditions\n if (filter.values && filter.values.length > 0) {\n // Create a flat list of all date conditions from all filter values\n const dateConditions: QueryCondition[] = filter.values.flatMap(\n (filterValue: FilterForQuery) => {\n const conditions: QueryCondition[] = []\n const dateValues = filterValue.values\n\n // Check if this date range matches a relative pattern (Today, This week, etc.)\n const startISO = dateValues?.[0]?.id\n const endISO = dateValues?.[1]?.id\n const relativePattern =\n startISO && endISO && startISO !== NO_DATE && endISO !== NO_DATE\n ? detectRelativeDatePattern(startISO, endISO)\n : null\n\n // First value is greater than (start date)\n if (dateValues?.[0] !== undefined && dateValues?.[0].id !== NO_DATE) {\n conditions.push({\n key,\n operator: filter.inverted ? 'lte' : 'gte',\n value: relativePattern\n ? createRelativeValue(relativePattern.id, 0)\n : dateValues[0].id,\n })\n }\n\n // Second value is less than (end date)\n if (dateValues?.[1] !== undefined && dateValues?.[1].id !== NO_DATE) {\n conditions.push({\n key,\n operator: filter.inverted ? 'gte' : 'lte',\n value: relativePattern\n ? createRelativeValue(relativePattern.id, 1)\n : dateValues[1].id,\n })\n }\n\n return conditions\n },\n )\n\n // If we have date conditions, return them as a nested filter instead of continuing\n if (dateConditions.length > 0) {\n return {\n conditions: dateConditions,\n operator: filter.inverted ? 'or' : 'and',\n } as QueryFilter\n }\n }\n\n // If no date conditions were created, fall back to a basic equality check\n operator = filter.inverted ? 'ne' : 'eq'\n } else if (isBooleanField) {\n operator = filter.inverted ? 'ne' : 'eq'\n } else if (hasCustomValues && !isListField && !isNumberField) {\n // Handle custom values with partial matching using LIKE operator\n // If we have custom values, we need to use LIKE operator with wildcards for partial matching\n // Note: Version fields and numeric fields use exact matching (eq/in) instead\n\n if (!filter.values || filter.values.length === 0) {\n // This shouldn't happen but handle it gracefully\n operator = filter.inverted ? 'notin' : 'in'\n } else {\n // Separate custom and non-custom values\n const customValues = filter.values.filter((v) => v.isCustom === true)\n const nonCustomValues = filter.values.filter((v) => !v.isCustom)\n\n // If we only have custom values\n if (nonCustomValues.length === 0) {\n if (customValues.length === 1) {\n // Single custom value - use simple LIKE operator\n operator = 'like'\n value = `%${customValues[0].id}%`\n } else {\n // Multiple custom values - create OR conditions for each\n const conditions: QueryCondition[] = customValues.map((v) => ({\n key,\n operator: 'like' as QueryCondition['operator'],\n value: `%${v.id}%`,\n }))\n\n return {\n conditions,\n operator: filter.inverted ? 'and' : 'or',\n } as QueryFilter\n }\n } else {\n // We have both custom and non-custom values\n // Create separate conditions for each type\n const conditions: QueryCondition[] = []\n\n // Add non-custom values condition\n if (nonCustomValues.length > 0) {\n conditions.push({\n key,\n operator: filter.inverted ? 'notin' : 'in',\n value: nonCustomValues.map((v) =>\n convertValueByType(v.id, filter.type),\n ) as QueryCondition['value'],\n })\n }\n\n // Add custom values conditions (each needs its own LIKE)\n customValues.forEach((v) => {\n conditions.push({\n key,\n operator: 'like' as QueryCondition['operator'],\n value: `%${v.id}%`,\n })\n })\n\n return {\n conditions,\n operator: filter.inverted ? 'and' : 'or',\n } as QueryFilter\n }\n }\n } else {\n // DEFAULT for other scalar fields\n operator = filter.inverted ? 'notin' : 'in'\n }\n\n return { key, value, operator }\n}\n\n// Helper function to convert values based on the filter type\nconst convertValueByType = (value: string, type?: string): string | number | boolean => {\n if (!type) return value\n\n switch (type) {\n case 'integer':\n return parseInt(value, 10)\n case 'float':\n return parseFloat(value)\n case 'boolean':\n return value.toLowerCase() === 'true'\n default:\n return value\n }\n}\n\nexport default clientFilterToQueryFilter\n"],"names":["NO_DATE","clientFilterToQueryFilter","filters","f","filter","convertFilterToCondition","key","getFilterFromId","value","hasSomeValue","v","hasNoValue","convertValueByType","isListField","isDateField","isBooleanField","isNumberField","hasCustomValues","operator","dateConditions","filterValue","conditions","dateValues","startISO","endISO","relativePattern","detectRelativeDatePattern","createRelativeValue","customValues","nonCustomValues","type"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"clientFilterToQueryFilter.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.ts"],"sourcesContent":["import { getFilterFromId } from '@ynput/ayon-react-components'\nimport { QueryCondition, QueryFilter } from '../types/operations'\nimport { detectRelativeDatePattern } from '@shared/components/SearchFilter/filterDates'\nimport { createRelativeValue } from './expandRelativeDates'\nconst NO_DATE = 'no-date'\n\n// New type that cherry picks only the needed fields from Filter\nexport type FilterForQuery = {\n id: string\n values?: { id: string; values?: { id: string }[]; isCustom?: boolean }[]\n type?: string\n singleSelect?: boolean\n inverted?: boolean\n operator?: string\n}\n\n/**\n * Converts a datetime Filter to a nested QueryFilter with gte/lte conditions.\n * Returns null if no date conditions could be created.\n * Shared with other filter adapters (e.g. subtasksFilterAdapter).\n */\nexport const convertDateFilterToQueryFilter = (\n key: string,\n filter: { values?: FilterForQuery['values']; inverted?: boolean },\n): QueryFilter | null => {\n if (!filter.values || filter.values.length === 0) return null\n\n const dateConditions: QueryCondition[] = filter.values.flatMap((filterValue) => {\n const conditions: QueryCondition[] = []\n const dateValues = filterValue.values\n\n const startISO = dateValues?.[0]?.id\n const endISO = dateValues?.[1]?.id\n const relativePattern =\n startISO && endISO && startISO !== NO_DATE && endISO !== NO_DATE\n ? detectRelativeDatePattern(startISO, endISO)\n : null\n\n if (dateValues?.[0] !== undefined && dateValues?.[0].id !== NO_DATE) {\n conditions.push({\n key,\n operator: filter.inverted ? 'lte' : 'gte',\n value: relativePattern ? createRelativeValue(relativePattern.id, 0) : dateValues[0].id,\n })\n }\n\n if (dateValues?.[1] !== undefined && dateValues?.[1].id !== NO_DATE) {\n conditions.push({\n key,\n operator: filter.inverted ? 'gte' : 'lte',\n value: relativePattern ? createRelativeValue(relativePattern.id, 1) : dateValues[1].id,\n })\n }\n\n return conditions\n })\n\n if (dateConditions.length === 0) return null\n\n return {\n conditions: dateConditions,\n operator: filter.inverted ? 'or' : 'and',\n } as QueryFilter\n}\n\nexport const clientFilterToQueryFilter = (filters: FilterForQuery[]): QueryFilter => {\n // If there are no filters, return an empty filter\n if (!filters || filters.length === 0) {\n return {}\n }\n\n // Process each filter as its own condition\n const conditions: (QueryCondition | QueryFilter)[] = filters\n .filter((f) => !!f.values?.length)\n .filter((f) => f.id !== 'hierarchy') // remove hierarchy filter as it is handled separately\n .flatMap((filter) => convertFilterToCondition(filter))\n\n // Return the QueryFilter with all conditions combined with AND\n return {\n conditions,\n operator: 'and',\n }\n}\n\n// Helper function to convert a single Filter to a QueryCondition\nconst convertFilterToCondition = (filter: FilterForQuery): QueryCondition | QueryFilter => {\n // Extract key from filter ID (split by underscore if needed)\n const key = getFilterFromId(filter.id)\n\n // Handle values based on filter type\n let value: QueryCondition['value']\n\n // there is any value\n const hasSomeValue =\n Array.isArray(filter.values) && filter.values.map((v) => v.id)?.includes('hasValue')\n const hasNoValue =\n Array.isArray(filter.values) && filter.values.map((v) => v.id)?.includes('noValue')\n\n if (filter.values && filter.values.length > 0) {\n if (filter.singleSelect) {\n // @ts-expect-error\n value = convertValueByType(filter.values[0].id, filter.type)\n } else {\n // @ts-expect-error\n value = filter.values.map((v) => convertValueByType(v.id, filter.type))\n }\n }\n\n // Determine if this is likely a list field based on filter type\n const isListField =\n filter.type?.startsWith('list_of_') || key.includes('tags') || key.includes('assignees')\n const isDateField = filter.type === 'datetime'\n const isBooleanField = filter.type === 'boolean'\n // Version field is a special numeric field that should use exact matching\n const isNumberField =\n key.endsWith('version') || filter.type === 'integer' || filter.type === 'float'\n\n // Check if any of the values are custom (user-entered values)\n const hasCustomValues = filter.values && filter.values.some((v) => v.isCustom === true)\n\n // Determine the appropriate operator based on filter properties and type\n let operator: QueryCondition['operator'] = 'eq'\n\n // Handling NULL values\n if (value === undefined) {\n operator = filter.inverted ? 'notnull' : 'isnull'\n return { key, operator }\n }\n\n // Handle different filter types\n if (hasSomeValue) {\n // we set the value to the empty state and then say it should not be that\n value = isListField ? [] : undefined\n operator = isListField\n ? filter.inverted\n ? 'eq'\n : 'ne'\n : filter.inverted\n ? 'isnull'\n : 'notnull'\n } else if (hasNoValue) {\n // we set the value to the empty state and then say it should be that\n value = isListField ? [] : undefined\n operator = isListField\n ? filter.inverted\n ? 'ne'\n : 'eq'\n : filter.inverted\n ? 'notnull'\n : 'isnull'\n } else if (isListField) {\n if (filter.inverted) {\n operator = filter.operator === 'AND' ? 'excludesall' : 'excludesany'\n } else {\n operator = filter.operator === 'AND' ? 'includesall' : 'includesany'\n }\n } else if (isDateField) {\n const dateQueryFilter = convertDateFilterToQueryFilter(key, filter)\n if (dateQueryFilter) return dateQueryFilter\n // If no date conditions were created, fall back to a basic equality check\n operator = filter.inverted ? 'ne' : 'eq'\n } else if (isBooleanField) {\n operator = filter.inverted ? 'ne' : 'eq'\n } else if (hasCustomValues && !isListField && !isNumberField) {\n // Handle custom values with partial matching using LIKE operator\n // If we have custom values, we need to use LIKE operator with wildcards for partial matching\n // Note: Version fields and numeric fields use exact matching (eq/in) instead\n\n if (!filter.values || filter.values.length === 0) {\n // This shouldn't happen but handle it gracefully\n operator = filter.inverted ? 'notin' : 'in'\n } else {\n // Separate custom and non-custom values\n const customValues = filter.values.filter((v) => v.isCustom === true)\n const nonCustomValues = filter.values.filter((v) => !v.isCustom)\n\n // If we only have custom values\n if (nonCustomValues.length === 0) {\n if (customValues.length === 1) {\n // Single custom value - use simple LIKE operator\n operator = 'like'\n value = `%${customValues[0].id}%`\n } else {\n // Multiple custom values - create OR conditions for each\n const conditions: QueryCondition[] = customValues.map((v) => ({\n key,\n operator: 'like' as QueryCondition['operator'],\n value: `%${v.id}%`,\n }))\n\n return {\n conditions,\n operator: filter.inverted ? 'and' : 'or',\n } as QueryFilter\n }\n } else {\n // We have both custom and non-custom values\n // Create separate conditions for each type\n const conditions: QueryCondition[] = []\n\n // Add non-custom values condition\n if (nonCustomValues.length > 0) {\n conditions.push({\n key,\n operator: filter.inverted ? 'notin' : 'in',\n value: nonCustomValues.map((v) =>\n convertValueByType(v.id, filter.type),\n ) as QueryCondition['value'],\n })\n }\n\n // Add custom values conditions (each needs its own LIKE)\n customValues.forEach((v) => {\n conditions.push({\n key,\n operator: 'like' as QueryCondition['operator'],\n value: `%${v.id}%`,\n })\n })\n\n return {\n conditions,\n operator: filter.inverted ? 'and' : 'or',\n } as QueryFilter\n }\n }\n } else {\n // DEFAULT for other scalar fields\n operator = filter.inverted ? 'notin' : 'in'\n }\n\n return { key, value, operator }\n}\n\n// Helper function to convert values based on the filter type\nconst convertValueByType = (value: string, type?: string): string | number | boolean => {\n if (!type) return value\n\n switch (type) {\n case 'integer':\n return parseInt(value, 10)\n case 'float':\n return parseFloat(value)\n case 'boolean':\n return value.toLowerCase() === 'true'\n default:\n return value\n }\n}\n\nexport default clientFilterToQueryFilter\n"],"names":["NO_DATE","convertDateFilterToQueryFilter","key","filter","dateConditions","filterValue","conditions","dateValues","startISO","endISO","relativePattern","detectRelativeDatePattern","createRelativeValue","clientFilterToQueryFilter","filters","f","convertFilterToCondition","getFilterFromId","value","hasSomeValue","v","hasNoValue","convertValueByType","isListField","isDateField","isBooleanField","isNumberField","hasCustomValues","operator","dateQueryFilter","customValues","nonCustomValues","type"],"mappings":"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"}
|
|
@@ -1,79 +1,78 @@
|
|
|
1
|
-
import { getFilterFromId as
|
|
2
|
-
import { detectRelativeDatePattern as
|
|
3
|
-
import { createRelativeValue as
|
|
4
|
-
const
|
|
5
|
-
|
|
1
|
+
import { getFilterFromId as F } from "@ynput/ayon-react-components";
|
|
2
|
+
import { detectRelativeDatePattern as V } from "../../../components/SearchFilter/filterDates.es.js";
|
|
3
|
+
import { createRelativeValue as y } from "./expandRelativeDates.es.js";
|
|
4
|
+
const v = "no-date", C = (e, n) => {
|
|
5
|
+
if (!n.values || n.values.length === 0) return null;
|
|
6
|
+
const t = n.values.flatMap((p) => {
|
|
7
|
+
const r = [], o = p.values, d = o?.[0]?.id, l = o?.[1]?.id, u = d && l && d !== v && l !== v ? V(d, l) : null;
|
|
8
|
+
return o?.[0] !== void 0 && o?.[0].id !== v && r.push({
|
|
9
|
+
key: e,
|
|
10
|
+
operator: n.inverted ? "lte" : "gte",
|
|
11
|
+
value: u ? y(u.id, 0) : o[0].id
|
|
12
|
+
}), o?.[1] !== void 0 && o?.[1].id !== v && r.push({
|
|
13
|
+
key: e,
|
|
14
|
+
operator: n.inverted ? "gte" : "lte",
|
|
15
|
+
value: u ? y(u.id, 1) : o[1].id
|
|
16
|
+
}), r;
|
|
17
|
+
});
|
|
18
|
+
return t.length === 0 ? null : {
|
|
19
|
+
conditions: t,
|
|
20
|
+
operator: n.inverted ? "or" : "and"
|
|
21
|
+
};
|
|
22
|
+
}, T = (e) => !e || e.length === 0 ? {} : {
|
|
23
|
+
conditions: e.filter((t) => !!t.values?.length).filter((t) => t.id !== "hierarchy").flatMap((t) => A(t)),
|
|
6
24
|
operator: "and"
|
|
7
|
-
},
|
|
8
|
-
const
|
|
9
|
-
let
|
|
10
|
-
const
|
|
11
|
-
e.values && e.values.length > 0 && (e.singleSelect ?
|
|
12
|
-
const
|
|
25
|
+
}, A = (e) => {
|
|
26
|
+
const n = F(e.id);
|
|
27
|
+
let t;
|
|
28
|
+
const p = Array.isArray(e.values) && e.values.map((s) => s.id)?.includes("hasValue"), r = Array.isArray(e.values) && e.values.map((s) => s.id)?.includes("noValue");
|
|
29
|
+
e.values && e.values.length > 0 && (e.singleSelect ? t = m(e.values[0].id, e.type) : t = e.values.map((s) => m(s.id, e.type)));
|
|
30
|
+
const o = e.type?.startsWith("list_of_") || n.includes("tags") || n.includes("assignees"), d = e.type === "datetime", l = e.type === "boolean", u = n.endsWith("version") || e.type === "integer" || e.type === "float", g = e.values && e.values.some((s) => s.isCustom === !0);
|
|
13
31
|
let a = "eq";
|
|
14
|
-
if (
|
|
15
|
-
return a = e.inverted ? "notnull" : "isnull", { key:
|
|
16
|
-
if (
|
|
17
|
-
|
|
18
|
-
else if (
|
|
19
|
-
|
|
20
|
-
else if (
|
|
32
|
+
if (t === void 0)
|
|
33
|
+
return a = e.inverted ? "notnull" : "isnull", { key: n, operator: a };
|
|
34
|
+
if (p)
|
|
35
|
+
t = o ? [] : void 0, a = o ? e.inverted ? "eq" : "ne" : e.inverted ? "isnull" : "notnull";
|
|
36
|
+
else if (r)
|
|
37
|
+
t = o ? [] : void 0, a = o ? e.inverted ? "ne" : "eq" : e.inverted ? "notnull" : "isnull";
|
|
38
|
+
else if (o)
|
|
21
39
|
e.inverted ? a = e.operator === "AND" ? "excludesall" : "excludesany" : a = e.operator === "AND" ? "includesall" : "includesany";
|
|
22
|
-
else if (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
(d) => {
|
|
26
|
-
const i = [], o = d.values, c = o?.[0]?.id, v = o?.[1]?.id, r = c && v && c !== l && v !== l ? q(c, v) : null;
|
|
27
|
-
return o?.[0] !== void 0 && o?.[0].id !== l && i.push({
|
|
28
|
-
key: t,
|
|
29
|
-
operator: e.inverted ? "lte" : "gte",
|
|
30
|
-
value: r ? h(r.id, 0) : o[0].id
|
|
31
|
-
}), o?.[1] !== void 0 && o?.[1].id !== l && i.push({
|
|
32
|
-
key: t,
|
|
33
|
-
operator: e.inverted ? "gte" : "lte",
|
|
34
|
-
value: r ? h(r.id, 1) : o[1].id
|
|
35
|
-
}), i;
|
|
36
|
-
}
|
|
37
|
-
);
|
|
38
|
-
if (n.length > 0)
|
|
39
|
-
return {
|
|
40
|
-
conditions: n,
|
|
41
|
-
operator: e.inverted ? "or" : "and"
|
|
42
|
-
};
|
|
43
|
-
}
|
|
40
|
+
else if (d) {
|
|
41
|
+
const s = C(n, e);
|
|
42
|
+
if (s) return s;
|
|
44
43
|
a = e.inverted ? "ne" : "eq";
|
|
45
|
-
} else if (
|
|
44
|
+
} else if (l)
|
|
46
45
|
a = e.inverted ? "ne" : "eq";
|
|
47
|
-
else if (
|
|
46
|
+
else if (g && !o && !u)
|
|
48
47
|
if (!e.values || e.values.length === 0)
|
|
49
48
|
a = e.inverted ? "notin" : "in";
|
|
50
49
|
else {
|
|
51
|
-
const
|
|
52
|
-
if (
|
|
53
|
-
if (
|
|
54
|
-
a = "like",
|
|
50
|
+
const s = e.values.filter((i) => i.isCustom === !0), h = e.values.filter((i) => !i.isCustom);
|
|
51
|
+
if (h.length === 0)
|
|
52
|
+
if (s.length === 1)
|
|
53
|
+
a = "like", t = `%${s[0].id}%`;
|
|
55
54
|
else
|
|
56
55
|
return {
|
|
57
|
-
conditions:
|
|
58
|
-
key:
|
|
56
|
+
conditions: s.map((c) => ({
|
|
57
|
+
key: n,
|
|
59
58
|
operator: "like",
|
|
60
|
-
value: `%${
|
|
59
|
+
value: `%${c.id}%`
|
|
61
60
|
})),
|
|
62
61
|
operator: e.inverted ? "and" : "or"
|
|
63
62
|
};
|
|
64
63
|
else {
|
|
65
64
|
const i = [];
|
|
66
|
-
return
|
|
67
|
-
key:
|
|
65
|
+
return h.length > 0 && i.push({
|
|
66
|
+
key: n,
|
|
68
67
|
operator: e.inverted ? "notin" : "in",
|
|
69
|
-
value:
|
|
70
|
-
(
|
|
68
|
+
value: h.map(
|
|
69
|
+
(c) => m(c.id, e.type)
|
|
71
70
|
)
|
|
72
|
-
}),
|
|
71
|
+
}), s.forEach((c) => {
|
|
73
72
|
i.push({
|
|
74
|
-
key:
|
|
73
|
+
key: n,
|
|
75
74
|
operator: "like",
|
|
76
|
-
value: `%${
|
|
75
|
+
value: `%${c.id}%`
|
|
77
76
|
});
|
|
78
77
|
}), {
|
|
79
78
|
conditions: i,
|
|
@@ -83,10 +82,10 @@ const l = "no-date", S = (e) => !e || e.length === 0 ? {} : {
|
|
|
83
82
|
}
|
|
84
83
|
else
|
|
85
84
|
a = e.inverted ? "notin" : "in";
|
|
86
|
-
return { key:
|
|
87
|
-
},
|
|
88
|
-
if (!
|
|
89
|
-
switch (
|
|
85
|
+
return { key: n, value: t, operator: a };
|
|
86
|
+
}, m = (e, n) => {
|
|
87
|
+
if (!n) return e;
|
|
88
|
+
switch (n) {
|
|
90
89
|
case "integer":
|
|
91
90
|
return parseInt(e, 10);
|
|
92
91
|
case "float":
|
|
@@ -98,6 +97,7 @@ const l = "no-date", S = (e) => !e || e.length === 0 ? {} : {
|
|
|
98
97
|
}
|
|
99
98
|
};
|
|
100
99
|
export {
|
|
101
|
-
|
|
100
|
+
T as clientFilterToQueryFilter,
|
|
101
|
+
C as convertDateFilterToQueryFilter
|
|
102
102
|
};
|
|
103
103
|
//# sourceMappingURL=clientFilterToQueryFilter.es.js.map
|
package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientFilterToQueryFilter.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.ts"],"sourcesContent":["import { getFilterFromId } from '@ynput/ayon-react-components'\nimport { QueryCondition, QueryFilter } from '../types/operations'\nimport { detectRelativeDatePattern } from '@shared/components/SearchFilter/filterDates'\nimport { createRelativeValue } from './expandRelativeDates'\nconst NO_DATE = 'no-date'\n\n// New type that cherry picks only the needed fields from Filter\nexport type FilterForQuery = {\n id: string\n values?: { id: string; values?: { id: string }[]; isCustom?: boolean }[]\n type?: string\n singleSelect?: boolean\n inverted?: boolean\n operator?: string\n}\n\nexport const clientFilterToQueryFilter = (filters: FilterForQuery[]): QueryFilter => {\n // If there are no filters, return an empty filter\n if (!filters || filters.length === 0) {\n return {}\n }\n\n // Process each filter as its own condition\n const conditions: (QueryCondition | QueryFilter)[] = filters\n .filter((f) => !!f.values?.length)\n .filter((f) => f.id !== 'hierarchy') // remove hierarchy filter as it is handled separately\n .flatMap((filter) => convertFilterToCondition(filter))\n\n // Return the QueryFilter with all conditions combined with AND\n return {\n conditions,\n operator: 'and',\n }\n}\n\n// Helper function to convert a single Filter to a QueryCondition\nconst convertFilterToCondition = (filter: FilterForQuery): QueryCondition | QueryFilter => {\n // Extract key from filter ID (split by underscore if needed)\n const key = getFilterFromId(filter.id)\n\n // Handle values based on filter type\n let value: QueryCondition['value']\n\n // there is any value\n const hasSomeValue =\n Array.isArray(filter.values) && filter.values.map((v) => v.id)?.includes('hasValue')\n const hasNoValue =\n Array.isArray(filter.values) && filter.values.map((v) => v.id)?.includes('noValue')\n\n if (filter.values && filter.values.length > 0) {\n if (filter.singleSelect) {\n // @ts-expect-error\n value = convertValueByType(filter.values[0].id, filter.type)\n } else {\n // @ts-expect-error\n value = filter.values.map((v) => convertValueByType(v.id, filter.type))\n }\n }\n\n // Determine if this is likely a list field based on filter type\n const isListField =\n filter.type?.startsWith('list_of_') || key.includes('tags') || key.includes('assignees')\n const isDateField = filter.type === 'datetime'\n const isBooleanField = filter.type === 'boolean'\n // Version field is a special numeric field that should use exact matching\n const isNumberField =\n key.endsWith('version') || filter.type === 'integer' || filter.type === 'float'\n\n // Check if any of the values are custom (user-entered values)\n const hasCustomValues = filter.values && filter.values.some((v) => v.isCustom === true)\n\n // Determine the appropriate operator based on filter properties and type\n let operator: QueryCondition['operator'] = 'eq'\n\n // Handling NULL values\n if (value === undefined) {\n operator = filter.inverted ? 'notnull' : 'isnull'\n return { key, operator }\n }\n\n // Handle different filter types\n if (hasSomeValue) {\n // we set the value to the empty state and then say it should not be that\n value = isListField ? [] : undefined\n operator = isListField\n ? filter.inverted\n ? 'eq'\n : 'ne'\n : filter.inverted\n ? 'isnull'\n : 'notnull'\n } else if (hasNoValue) {\n // we set the value to the empty state and then say it should be that\n value = isListField ? [] : undefined\n operator = isListField\n ? filter.inverted\n ? 'ne'\n : 'eq'\n : filter.inverted\n ? 'notnull'\n : 'isnull'\n } else if (isListField) {\n if (filter.inverted) {\n operator = filter.operator === 'AND' ? 'excludesall' : 'excludesany'\n } else {\n operator = filter.operator === 'AND' ? 'includesall' : 'includesany'\n }\n } else if (isDateField) {\n // For date filters, we need to return a complete query filter with conditions\n if (filter.values && filter.values.length > 0) {\n // Create a flat list of all date conditions from all filter values\n const dateConditions: QueryCondition[] = filter.values.flatMap(\n (filterValue: FilterForQuery) => {\n const conditions: QueryCondition[] = []\n const dateValues = filterValue.values\n\n // Check if this date range matches a relative pattern (Today, This week, etc.)\n const startISO = dateValues?.[0]?.id\n const endISO = dateValues?.[1]?.id\n const relativePattern =\n startISO && endISO && startISO !== NO_DATE && endISO !== NO_DATE\n ? detectRelativeDatePattern(startISO, endISO)\n : null\n\n // First value is greater than (start date)\n if (dateValues?.[0] !== undefined && dateValues?.[0].id !== NO_DATE) {\n conditions.push({\n key,\n operator: filter.inverted ? 'lte' : 'gte',\n value: relativePattern\n ? createRelativeValue(relativePattern.id, 0)\n : dateValues[0].id,\n })\n }\n\n // Second value is less than (end date)\n if (dateValues?.[1] !== undefined && dateValues?.[1].id !== NO_DATE) {\n conditions.push({\n key,\n operator: filter.inverted ? 'gte' : 'lte',\n value: relativePattern\n ? createRelativeValue(relativePattern.id, 1)\n : dateValues[1].id,\n })\n }\n\n return conditions\n },\n )\n\n // If we have date conditions, return them as a nested filter instead of continuing\n if (dateConditions.length > 0) {\n return {\n conditions: dateConditions,\n operator: filter.inverted ? 'or' : 'and',\n } as QueryFilter\n }\n }\n\n // If no date conditions were created, fall back to a basic equality check\n operator = filter.inverted ? 'ne' : 'eq'\n } else if (isBooleanField) {\n operator = filter.inverted ? 'ne' : 'eq'\n } else if (hasCustomValues && !isListField && !isNumberField) {\n // Handle custom values with partial matching using LIKE operator\n // If we have custom values, we need to use LIKE operator with wildcards for partial matching\n // Note: Version fields and numeric fields use exact matching (eq/in) instead\n\n if (!filter.values || filter.values.length === 0) {\n // This shouldn't happen but handle it gracefully\n operator = filter.inverted ? 'notin' : 'in'\n } else {\n // Separate custom and non-custom values\n const customValues = filter.values.filter((v) => v.isCustom === true)\n const nonCustomValues = filter.values.filter((v) => !v.isCustom)\n\n // If we only have custom values\n if (nonCustomValues.length === 0) {\n if (customValues.length === 1) {\n // Single custom value - use simple LIKE operator\n operator = 'like'\n value = `%${customValues[0].id}%`\n } else {\n // Multiple custom values - create OR conditions for each\n const conditions: QueryCondition[] = customValues.map((v) => ({\n key,\n operator: 'like' as QueryCondition['operator'],\n value: `%${v.id}%`,\n }))\n\n return {\n conditions,\n operator: filter.inverted ? 'and' : 'or',\n } as QueryFilter\n }\n } else {\n // We have both custom and non-custom values\n // Create separate conditions for each type\n const conditions: QueryCondition[] = []\n\n // Add non-custom values condition\n if (nonCustomValues.length > 0) {\n conditions.push({\n key,\n operator: filter.inverted ? 'notin' : 'in',\n value: nonCustomValues.map((v) =>\n convertValueByType(v.id, filter.type),\n ) as QueryCondition['value'],\n })\n }\n\n // Add custom values conditions (each needs its own LIKE)\n customValues.forEach((v) => {\n conditions.push({\n key,\n operator: 'like' as QueryCondition['operator'],\n value: `%${v.id}%`,\n })\n })\n\n return {\n conditions,\n operator: filter.inverted ? 'and' : 'or',\n } as QueryFilter\n }\n }\n } else {\n // DEFAULT for other scalar fields\n operator = filter.inverted ? 'notin' : 'in'\n }\n\n return { key, value, operator }\n}\n\n// Helper function to convert values based on the filter type\nconst convertValueByType = (value: string, type?: string): string | number | boolean => {\n if (!type) return value\n\n switch (type) {\n case 'integer':\n return parseInt(value, 10)\n case 'float':\n return parseFloat(value)\n case 'boolean':\n return value.toLowerCase() === 'true'\n default:\n return value\n }\n}\n\nexport default clientFilterToQueryFilter\n"],"names":["NO_DATE","clientFilterToQueryFilter","filters","f","filter","convertFilterToCondition","key","getFilterFromId","value","hasSomeValue","v","hasNoValue","convertValueByType","isListField","isDateField","isBooleanField","isNumberField","hasCustomValues","operator","dateConditions","filterValue","conditions","dateValues","startISO","endISO","relativePattern","detectRelativeDatePattern","createRelativeValue","customValues","nonCustomValues","type"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"clientFilterToQueryFilter.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.ts"],"sourcesContent":["import { getFilterFromId } from '@ynput/ayon-react-components'\nimport { QueryCondition, QueryFilter } from '../types/operations'\nimport { detectRelativeDatePattern } from '@shared/components/SearchFilter/filterDates'\nimport { createRelativeValue } from './expandRelativeDates'\nconst NO_DATE = 'no-date'\n\n// New type that cherry picks only the needed fields from Filter\nexport type FilterForQuery = {\n id: string\n values?: { id: string; values?: { id: string }[]; isCustom?: boolean }[]\n type?: string\n singleSelect?: boolean\n inverted?: boolean\n operator?: string\n}\n\n/**\n * Converts a datetime Filter to a nested QueryFilter with gte/lte conditions.\n * Returns null if no date conditions could be created.\n * Shared with other filter adapters (e.g. subtasksFilterAdapter).\n */\nexport const convertDateFilterToQueryFilter = (\n key: string,\n filter: { values?: FilterForQuery['values']; inverted?: boolean },\n): QueryFilter | null => {\n if (!filter.values || filter.values.length === 0) return null\n\n const dateConditions: QueryCondition[] = filter.values.flatMap((filterValue) => {\n const conditions: QueryCondition[] = []\n const dateValues = filterValue.values\n\n const startISO = dateValues?.[0]?.id\n const endISO = dateValues?.[1]?.id\n const relativePattern =\n startISO && endISO && startISO !== NO_DATE && endISO !== NO_DATE\n ? detectRelativeDatePattern(startISO, endISO)\n : null\n\n if (dateValues?.[0] !== undefined && dateValues?.[0].id !== NO_DATE) {\n conditions.push({\n key,\n operator: filter.inverted ? 'lte' : 'gte',\n value: relativePattern ? createRelativeValue(relativePattern.id, 0) : dateValues[0].id,\n })\n }\n\n if (dateValues?.[1] !== undefined && dateValues?.[1].id !== NO_DATE) {\n conditions.push({\n key,\n operator: filter.inverted ? 'gte' : 'lte',\n value: relativePattern ? createRelativeValue(relativePattern.id, 1) : dateValues[1].id,\n })\n }\n\n return conditions\n })\n\n if (dateConditions.length === 0) return null\n\n return {\n conditions: dateConditions,\n operator: filter.inverted ? 'or' : 'and',\n } as QueryFilter\n}\n\nexport const clientFilterToQueryFilter = (filters: FilterForQuery[]): QueryFilter => {\n // If there are no filters, return an empty filter\n if (!filters || filters.length === 0) {\n return {}\n }\n\n // Process each filter as its own condition\n const conditions: (QueryCondition | QueryFilter)[] = filters\n .filter((f) => !!f.values?.length)\n .filter((f) => f.id !== 'hierarchy') // remove hierarchy filter as it is handled separately\n .flatMap((filter) => convertFilterToCondition(filter))\n\n // Return the QueryFilter with all conditions combined with AND\n return {\n conditions,\n operator: 'and',\n }\n}\n\n// Helper function to convert a single Filter to a QueryCondition\nconst convertFilterToCondition = (filter: FilterForQuery): QueryCondition | QueryFilter => {\n // Extract key from filter ID (split by underscore if needed)\n const key = getFilterFromId(filter.id)\n\n // Handle values based on filter type\n let value: QueryCondition['value']\n\n // there is any value\n const hasSomeValue =\n Array.isArray(filter.values) && filter.values.map((v) => v.id)?.includes('hasValue')\n const hasNoValue =\n Array.isArray(filter.values) && filter.values.map((v) => v.id)?.includes('noValue')\n\n if (filter.values && filter.values.length > 0) {\n if (filter.singleSelect) {\n // @ts-expect-error\n value = convertValueByType(filter.values[0].id, filter.type)\n } else {\n // @ts-expect-error\n value = filter.values.map((v) => convertValueByType(v.id, filter.type))\n }\n }\n\n // Determine if this is likely a list field based on filter type\n const isListField =\n filter.type?.startsWith('list_of_') || key.includes('tags') || key.includes('assignees')\n const isDateField = filter.type === 'datetime'\n const isBooleanField = filter.type === 'boolean'\n // Version field is a special numeric field that should use exact matching\n const isNumberField =\n key.endsWith('version') || filter.type === 'integer' || filter.type === 'float'\n\n // Check if any of the values are custom (user-entered values)\n const hasCustomValues = filter.values && filter.values.some((v) => v.isCustom === true)\n\n // Determine the appropriate operator based on filter properties and type\n let operator: QueryCondition['operator'] = 'eq'\n\n // Handling NULL values\n if (value === undefined) {\n operator = filter.inverted ? 'notnull' : 'isnull'\n return { key, operator }\n }\n\n // Handle different filter types\n if (hasSomeValue) {\n // we set the value to the empty state and then say it should not be that\n value = isListField ? [] : undefined\n operator = isListField\n ? filter.inverted\n ? 'eq'\n : 'ne'\n : filter.inverted\n ? 'isnull'\n : 'notnull'\n } else if (hasNoValue) {\n // we set the value to the empty state and then say it should be that\n value = isListField ? [] : undefined\n operator = isListField\n ? filter.inverted\n ? 'ne'\n : 'eq'\n : filter.inverted\n ? 'notnull'\n : 'isnull'\n } else if (isListField) {\n if (filter.inverted) {\n operator = filter.operator === 'AND' ? 'excludesall' : 'excludesany'\n } else {\n operator = filter.operator === 'AND' ? 'includesall' : 'includesany'\n }\n } else if (isDateField) {\n const dateQueryFilter = convertDateFilterToQueryFilter(key, filter)\n if (dateQueryFilter) return dateQueryFilter\n // If no date conditions were created, fall back to a basic equality check\n operator = filter.inverted ? 'ne' : 'eq'\n } else if (isBooleanField) {\n operator = filter.inverted ? 'ne' : 'eq'\n } else if (hasCustomValues && !isListField && !isNumberField) {\n // Handle custom values with partial matching using LIKE operator\n // If we have custom values, we need to use LIKE operator with wildcards for partial matching\n // Note: Version fields and numeric fields use exact matching (eq/in) instead\n\n if (!filter.values || filter.values.length === 0) {\n // This shouldn't happen but handle it gracefully\n operator = filter.inverted ? 'notin' : 'in'\n } else {\n // Separate custom and non-custom values\n const customValues = filter.values.filter((v) => v.isCustom === true)\n const nonCustomValues = filter.values.filter((v) => !v.isCustom)\n\n // If we only have custom values\n if (nonCustomValues.length === 0) {\n if (customValues.length === 1) {\n // Single custom value - use simple LIKE operator\n operator = 'like'\n value = `%${customValues[0].id}%`\n } else {\n // Multiple custom values - create OR conditions for each\n const conditions: QueryCondition[] = customValues.map((v) => ({\n key,\n operator: 'like' as QueryCondition['operator'],\n value: `%${v.id}%`,\n }))\n\n return {\n conditions,\n operator: filter.inverted ? 'and' : 'or',\n } as QueryFilter\n }\n } else {\n // We have both custom and non-custom values\n // Create separate conditions for each type\n const conditions: QueryCondition[] = []\n\n // Add non-custom values condition\n if (nonCustomValues.length > 0) {\n conditions.push({\n key,\n operator: filter.inverted ? 'notin' : 'in',\n value: nonCustomValues.map((v) =>\n convertValueByType(v.id, filter.type),\n ) as QueryCondition['value'],\n })\n }\n\n // Add custom values conditions (each needs its own LIKE)\n customValues.forEach((v) => {\n conditions.push({\n key,\n operator: 'like' as QueryCondition['operator'],\n value: `%${v.id}%`,\n })\n })\n\n return {\n conditions,\n operator: filter.inverted ? 'and' : 'or',\n } as QueryFilter\n }\n }\n } else {\n // DEFAULT for other scalar fields\n operator = filter.inverted ? 'notin' : 'in'\n }\n\n return { key, value, operator }\n}\n\n// Helper function to convert values based on the filter type\nconst convertValueByType = (value: string, type?: string): string | number | boolean => {\n if (!type) return value\n\n switch (type) {\n case 'integer':\n return parseInt(value, 10)\n case 'float':\n return parseFloat(value)\n case 'boolean':\n return value.toLowerCase() === 'true'\n default:\n return value\n }\n}\n\nexport default clientFilterToQueryFilter\n"],"names":["NO_DATE","convertDateFilterToQueryFilter","key","filter","dateConditions","filterValue","conditions","dateValues","startISO","endISO","relativePattern","detectRelativeDatePattern","createRelativeValue","clientFilterToQueryFilter","filters","f","convertFilterToCondition","getFilterFromId","value","hasSomeValue","v","hasNoValue","convertValueByType","isListField","isDateField","isBooleanField","isNumberField","hasCustomValues","operator","dateQueryFilter","customValues","nonCustomValues","type"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("@ynput/ayon-react-components"),a=require("date-fns"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("@ynput/ayon-react-components"),a=require("date-fns"),O=require("../../../components/SearchFilter/filterDates.cjs.js"),p=require("./expandRelativeDates.cjs.js"),M=(e,l)=>{if(!e?.conditions||e.conditions.length===0)return[];const t=[],s=new Set;return e.conditions.forEach(n=>{if("key"in n){const i=R(n,l,s);i&&t.push(i)}else{const i=b(n,l);if(i)t.push(i);else{const r=M(n,l);t.push(...r)}}}),t},b=(e,l)=>{if(!e.conditions||e.conditions.length<1)return null;const t=e.conditions.filter(u=>"key"in u);if(t.length!==e.conditions.length)return null;const s=t[0].key;if(!t.every(u=>u.key===s))return null;const n=h(s,l);if(!n||n.type!=="datetime")return null;const i=t.find(u=>u.operator==="gte"),r=t.find(u=>u.operator==="lte");if(!i&&!r)return null;const o=i?.value,d=r?.value,f=o&&p.isRelativeDateValue(o)?p.resolveRelativeValue(o):o,c=d&&p.isRelativeDateValue(d)?p.resolveRelativeValue(d):d;let g="Custom range";if(f&&c){const u=O.detectRelativeDatePattern(f,c);if(u)g=u.label;else{const V=a.parseISO(f),y=a.parseISO(c);if(a.isValid(V)&&a.isValid(y)){const v=new Date().getFullYear(),C=y.getFullYear()===v?"MMM d":"MMM d, yyyy";g=`${a.format(V,"MMM d")} – ${a.format(y,C)}`}}}const S={id:`custom-${f||""}-${c||""}`,label:g,values:[...f?[{id:f,label:a.isValid(a.parseISO(f))?a.format(a.parseISO(f),"MMM d, yyyy"):f}]:[],...c?[{id:c,label:a.isValid(a.parseISO(c))?a.format(a.parseISO(c),"MMM d, yyyy"):c}]:[]]};return{id:n.id,type:n.type,label:n.label,icon:n.icon,inverted:e.operator==="or",values:[S],singleSelect:n.singleSelect}},R=(e,l,t)=>{const{key:s,value:n,operator:i}=e;if(s===m.SEARCH_FILTER_ID){const u=Array.isArray(n)?n:[n||""];return{id:m.SEARCH_FILTER_ID,type:"string",label:"",values:u.map(y=>({id:String(y),label:String(y)}))}}const r=h(s,l);if(!r)return null;const o=`${s}_${i}_${JSON.stringify(n)}`;if(t.has(o))return null;t.add(o);const d=D(n,i,r),c=d.length===1&&["hasValue","noValue"].includes(String(d[0].id))?!1:I(i,r.type),g=A(i,r.type);return{id:r.id,type:r.type,label:r.label,inverted:c,operator:g,icon:r.icon,values:d,isCustom:r.allowsCustomValues,singleSelect:r.singleSelect}},h=(e,l)=>{let t=l.find(s=>s.id===e);return t||(t=l.find(s=>s.id.endsWith(e)||s.id.replace(/^[^.]*\./,"")===e||s.id.split("_").pop()===e),t)||(t=l.find(s=>s.label?.toLowerCase()===e.toLowerCase())),t},D=(e,l,t)=>{if(l==="isnull"||l==="notnull")return l==="isnull"?[{id:"noValue",label:"No Value"}]:[{id:"hasValue",label:"Has Value"}];if(Array.isArray(e)&&e.length===0){if(l==="eq")return[{id:"noValue",label:"No Value"}];if(l==="ne")return[{id:"hasValue",label:"Has Value"}]}return e==null?[]:(Array.isArray(e)?e:[e]).map(n=>{let i=String(n),r=!1;if(l==="like"&&typeof n=="string"&&(i=n.replace(/^%/,"").replace(/%$/,""),r=!0),!r){const o=t.values?.find(d=>d.id===i);if(o)return o}if(t.type==="datetime"&&typeof n=="string")try{const o=a.parseISO(n);if(a.isValid(o))return{id:i,label:a.format(o,"MMM d, yyyy"),isCustom:!0}}catch{}return{id:i,label:i,isCustom:!0}})},I=(e,l)=>e?["ne","notin","excludes","excludesall","excludesany","notnull"].includes(e):!1,A=(e,l)=>l?.startsWith("list_of_")&&(e==="includesall"||e==="excludesall")?"AND":"OR";exports.queryFilterToClientFilter=M;exports.tryMergeDatetimeRange=b;
|
|
2
2
|
//# sourceMappingURL=queryFilterToClientFilter.cjs.js.map
|