@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.
Files changed (522) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +24 -23
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +222 -215
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/_virtual/index.cjs22.js +1 -1
  8. package/dist/_virtual/index.cjs23.js +1 -1
  9. package/dist/_virtual/index.cjs24.js +1 -1
  10. package/dist/_virtual/index.cjs6.js +1 -1
  11. package/dist/_virtual/index.cjs8.js +1 -1
  12. package/dist/_virtual/index.es22.js +3 -3
  13. package/dist/_virtual/index.es23.js +5 -5
  14. package/dist/_virtual/index.es24.js +5 -5
  15. package/dist/_virtual/index.es6.js +2 -2
  16. package/dist/_virtual/index.es8.js +2 -2
  17. package/dist/components.cjs.js +1 -1
  18. package/dist/components.es.js +77 -73
  19. package/dist/components.es.js.map +1 -1
  20. package/dist/context.cjs.js +1 -1
  21. package/dist/context.es.js +50 -49
  22. package/dist/hooks.cjs.js +1 -1
  23. package/dist/hooks.es.js +33 -29
  24. package/dist/hooks.es.js.map +1 -1
  25. package/dist/index.cjs.js +1 -1
  26. package/dist/index.es.js +13 -10
  27. package/dist/index.es.js.map +1 -1
  28. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  29. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  30. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  31. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  32. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  33. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  34. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  35. package/dist/node_modules/remove-accents/index.es.js +1 -1
  36. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  37. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  38. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  39. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  40. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.cjs.js +1 -1
  41. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.es.js +1 -1
  42. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.cjs.js +1 -1
  43. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.es.js +1 -1
  44. package/dist/shared/src/api/generated/graphql.cjs.js +108 -23
  45. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  46. package/dist/shared/src/api/generated/graphql.es.js +138 -53
  47. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  48. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  49. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  50. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  51. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  52. package/dist/shared/src/api/queries/activities/getActivities.es.js +42 -42
  53. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  54. package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js +2 -0
  55. package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js.map +1 -0
  56. package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js +68 -0
  57. package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js.map +1 -0
  58. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js +1 -1
  59. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js.map +1 -1
  60. package/dist/shared/src/api/queries/activities/updateActivities.es.js +69 -62
  61. package/dist/shared/src/api/queries/activities/updateActivities.es.js.map +1 -1
  62. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js +1 -1
  63. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  64. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js +64 -56
  65. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  66. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js +1 -1
  67. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
  68. package/dist/shared/src/api/queries/columnStats/columnStats.es.js +57 -53
  69. package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
  70. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js +1 -1
  71. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -1
  72. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js +27 -25
  73. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -1
  74. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +1 -1
  75. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.cjs.js +1 -1
  76. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.cjs.js.map +1 -1
  77. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.es.js +4 -4
  78. package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.es.js.map +1 -1
  79. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  80. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  81. package/dist/shared/src/api/queries/overview/getOverview.es.js +212 -187
  82. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  83. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  84. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  85. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +6 -3
  86. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  87. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  88. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  89. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +6 -3
  90. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  91. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  92. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  93. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +6 -3
  94. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  95. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  96. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  97. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +6 -3
  98. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  99. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  100. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  101. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +102 -99
  102. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  103. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  104. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  105. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +95 -87
  106. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  107. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  108. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  109. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +6 -3
  110. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  111. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  112. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  113. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +6 -3
  114. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  115. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  116. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  117. package/dist/shared/src/components/RenameForm/RenameForm.es.js +6 -3
  118. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  119. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  120. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  121. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +6 -3
  122. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  123. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  124. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  125. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +7 -4
  126. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  127. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  128. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  129. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +6 -3
  130. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  131. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  132. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  133. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +6 -3
  134. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  135. package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.cjs.js +6 -0
  136. package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.cjs.js.map +1 -0
  137. package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.es.js +58 -0
  138. package/dist/shared/src/components/SearchFilter/CustomDateRangeDialog.es.js.map +1 -0
  139. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  140. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  141. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +1 -4
  142. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  143. package/dist/shared/src/components/SearchFilter/useDateRangeFilter.cjs.js +2 -0
  144. package/dist/shared/src/components/SearchFilter/useDateRangeFilter.cjs.js.map +1 -0
  145. package/dist/shared/src/components/SearchFilter/useDateRangeFilter.es.js +106 -0
  146. package/dist/shared/src/components/SearchFilter/useDateRangeFilter.es.js.map +1 -0
  147. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  148. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  149. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +8 -5
  150. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  151. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  152. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  153. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +6 -3
  154. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  155. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  156. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  157. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +6 -3
  158. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  159. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  160. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  161. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +10 -7
  162. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  163. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  164. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  165. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +6 -3
  166. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  167. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  168. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  169. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +6 -3
  170. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  171. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  172. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  173. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -3
  174. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  175. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  176. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  177. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +6 -3
  178. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  179. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  180. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  181. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +6 -3
  182. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  183. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  184. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  185. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +6 -3
  186. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  187. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  188. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  189. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +6 -3
  190. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  191. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  192. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  193. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +6 -3
  194. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  195. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js +10 -0
  196. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js.map +1 -0
  197. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js +135 -0
  198. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js.map +1 -0
  199. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.cjs.js.map +1 -1
  200. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.es.js.map +1 -1
  201. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  202. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  203. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +20 -17
  204. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  205. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  206. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  207. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +41 -44
  208. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  209. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  210. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  211. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +5 -2
  212. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  213. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  214. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  215. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +19 -25
  216. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  217. package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.cjs.js +2 -0
  218. package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.cjs.js.map +1 -0
  219. package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.es.js +91 -0
  220. package/dist/shared/src/containers/DetailsPanel/helpers/subtasksFilterAdapter.es.js.map +1 -0
  221. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  222. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  223. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +6 -3
  224. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  225. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  226. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  227. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +6 -3
  228. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  229. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  230. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  231. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +6 -3
  232. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  233. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  234. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  235. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +6 -3
  236. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  237. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  238. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  239. package/dist/shared/src/containers/Feed/Feed.es.js +156 -164
  240. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  241. package/dist/shared/src/containers/Feed/Feed.styled.cjs.js +25 -3
  242. package/dist/shared/src/containers/Feed/Feed.styled.cjs.js.map +1 -1
  243. package/dist/shared/src/containers/Feed/Feed.styled.es.js +30 -8
  244. package/dist/shared/src/containers/Feed/Feed.styled.es.js.map +1 -1
  245. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  246. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  247. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +6 -3
  248. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  249. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  250. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  251. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +6 -3
  252. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  253. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  254. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  255. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +6 -3
  256. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  257. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js +3 -3
  258. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js.map +1 -1
  259. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js +1 -0
  260. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js.map +1 -1
  261. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  262. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
  263. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +8 -5
  264. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
  265. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  266. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  267. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +5 -2
  268. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  269. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  270. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  271. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +10 -7
  272. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  273. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js +1 -1
  274. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js.map +1 -1
  275. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js +5 -5
  276. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js.map +1 -1
  277. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +17 -0
  278. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -0
  279. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +279 -0
  280. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -0
  281. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  282. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  283. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +5 -2
  284. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  285. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  286. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  287. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +62 -50
  288. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  289. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js +2 -0
  290. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js.map +1 -0
  291. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js +141 -0
  292. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js.map +1 -0
  293. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js +2 -0
  294. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js.map +1 -0
  295. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js +81 -0
  296. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js.map +1 -0
  297. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  298. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  299. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +20 -18
  300. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  301. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  302. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  303. package/dist/shared/src/containers/ListTable/ListTable.es.js +106 -103
  304. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  305. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  306. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  307. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +7 -4
  308. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  309. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  310. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  311. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +6 -3
  312. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  314. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  315. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +127 -123
  316. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  317. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  318. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  319. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +158 -130
  320. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  321. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  322. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  323. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +6 -3
  324. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  325. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  326. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  327. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +36 -33
  328. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  329. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  330. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  331. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +6 -3
  332. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  333. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  334. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  335. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +6 -3
  336. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  337. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +5 -4
  338. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  339. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +228 -222
  340. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  341. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  342. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  343. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +103 -100
  344. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  345. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  346. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  347. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +6 -3
  348. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  349. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js +3 -0
  350. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js.map +1 -0
  351. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js +22 -0
  352. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js.map +1 -0
  353. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  354. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  355. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +113 -109
  356. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  357. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  358. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  359. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +125 -121
  360. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  361. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  362. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  363. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +6 -3
  364. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  365. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  366. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  367. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +6 -3
  368. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  369. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  370. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  371. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +36 -33
  372. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  373. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  374. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  375. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +6 -3
  376. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  377. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  378. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  379. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +107 -103
  380. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  381. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  382. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  383. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +36 -33
  384. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  385. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  386. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  387. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +36 -33
  388. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  389. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  390. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  391. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +6 -3
  392. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  393. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  394. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  395. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +6 -3
  396. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  397. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  398. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  399. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +6 -3
  400. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  401. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  402. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  403. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +105 -102
  404. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  405. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  406. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  407. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +37 -34
  408. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  409. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  410. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  411. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +48 -45
  412. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  413. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js +1 -1
  414. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js +61 -61
  416. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map +1 -1
  417. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +1 -1
  418. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +15 -6
  420. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
  421. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  422. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  423. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +6 -3
  424. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  425. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +4 -3
  426. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  427. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +108 -101
  428. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  429. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +82 -0
  430. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -0
  431. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +416 -0
  432. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -0
  433. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  434. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +8 -5
  436. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  437. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  438. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +37 -34
  440. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  441. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  442. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  443. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +6 -3
  444. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  445. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  446. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  447. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +6 -3
  448. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  449. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  450. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  451. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +6 -3
  452. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  453. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  454. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  455. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +6 -3
  456. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  457. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  458. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  459. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +6 -3
  460. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  461. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  462. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  463. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +6 -3
  464. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  465. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  466. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  467. package/dist/shared/src/context/DetailsPanelContext.es.js +92 -94
  468. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  469. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  470. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  471. package/dist/shared/src/context/WebsocketContext.es.js +8 -5
  472. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  473. package/dist/shared/src/hooks/useGetProductionAddon.cjs.js +2 -0
  474. package/dist/shared/src/hooks/useGetProductionAddon.cjs.js.map +1 -0
  475. package/dist/shared/src/hooks/useGetProductionAddon.es.js +124 -0
  476. package/dist/shared/src/hooks/useGetProductionAddon.es.js.map +1 -0
  477. package/dist/shared/src/hooks/useLocalStorage.cjs.js +1 -1
  478. package/dist/shared/src/hooks/useLocalStorage.cjs.js.map +1 -1
  479. package/dist/shared/src/hooks/useLocalStorage.es.js +43 -27
  480. package/dist/shared/src/hooks/useLocalStorage.es.js.map +1 -1
  481. package/dist/types/api/generated/graphql.d.ts +122 -0
  482. package/dist/types/api/generated/graphqlLinks.d.ts +10 -0
  483. package/dist/types/api/queries/activities/getActivities.d.ts +83 -0
  484. package/dist/types/api/queries/activities/patchTableLatestComments.d.ts +1 -0
  485. package/dist/types/api/queries/activities/updateActivities.d.ts +16 -0
  486. package/dist/types/api/queries/activities/util/activitiesHelpers.d.ts +1 -0
  487. package/dist/types/api/queries/entities/getEntity.d.ts +7 -0
  488. package/dist/types/api/queries/entities/getEntityPanel.d.ts +7 -0
  489. package/dist/types/api/queries/entities/updateEntity.d.ts +7 -0
  490. package/dist/types/api/queries/entityLists/getLists.d.ts +84 -0
  491. package/dist/types/api/queries/entityLists/types.d.ts +2 -1
  492. package/dist/types/api/queries/overview/getOverview.d.ts +58 -0
  493. package/dist/types/api/queries/project/getProject.d.ts +7 -0
  494. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +7 -0
  495. package/dist/types/api/queries/users/getUsers.d.ts +7 -0
  496. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +30 -0
  497. package/dist/types/components/SearchFilter/CustomDateRangeDialog.d.ts +13 -0
  498. package/dist/types/components/SearchFilter/index.d.ts +2 -0
  499. package/dist/types/components/SearchFilter/useDateRangeFilter.d.ts +36 -0
  500. package/dist/types/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.d.ts +13 -0
  501. package/dist/types/containers/DetailsPanel/helpers/subtasksFilterAdapter.d.ts +5 -0
  502. package/dist/types/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.d.ts +1 -0
  503. package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.styled.d.ts +2 -2
  504. package/dist/types/containers/Feed/components/FeedSearchFilter.d.ts +15 -0
  505. package/dist/types/containers/Feed/context/FeedContext.d.ts +5 -1
  506. package/dist/types/containers/Feed/helpers/buildBackendFilter.d.ts +3 -0
  507. package/dist/types/containers/Feed/helpers/feedFilterAdapter.d.ts +5 -0
  508. package/dist/types/containers/Feed/hooks/useGetFeedActivitiesData.d.ts +5 -1
  509. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +1 -1
  510. package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardComments.d.ts +6 -0
  511. package/dist/types/containers/ProjectTreeTable/context/clipboard/index.d.ts +1 -0
  512. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +2 -1
  513. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +2 -1
  514. package/dist/types/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.d.ts +9 -0
  515. package/dist/types/containers/ProjectTreeTable/utils/queryFilterToClientFilter.d.ts +5 -0
  516. package/dist/types/containers/ProjectTreeTable/widgets/CellWidget.d.ts +1 -1
  517. package/dist/types/containers/ProjectTreeTable/widgets/CommentsWidget.d.ts +7 -0
  518. package/dist/types/context/DetailsPanelContext.d.ts +1 -0
  519. package/dist/types/hooks/index.d.ts +1 -0
  520. package/dist/types/hooks/useGetProductionAddon.d.ts +10 -0
  521. package/dist/types/hooks/useLocalStorage.d.ts +2 -0
  522. 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 "react";
8
- import "@ynput/ayon-react-components";
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 "../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
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 jm = (t, p) => `cell-${t}-${p}`, wm = (t) => {
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
- }, Dm = (t, p) => {
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
- }, Vm = (t, p) => {
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
- }, qm = (t, p, r) => {
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
- }, zm = (t) => {
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
- }, Fm = (t, p) => p.get(u(t));
318
+ }, Jm = (t, p) => p.get(u(t));
316
319
  export {
317
320
  l as BorderPosition,
318
- zm as getBorderClasses,
319
- qm as getCellBorders,
320
- jm as getCellId,
321
- Dm as getCellValue,
322
- Fm as getEntityDataById,
323
- Vm as getLinkEntityIdsByColumnId,
324
- wm as parseCellId
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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
+ {"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 q=require("@ynput/ayon-react-components"),A=require("../../../components/SearchFilter/filterDates.cjs.js"),h=require("./expandRelativeDates.cjs.js"),l="no-date",D=e=>!e||e.length===0?{}:{conditions:e.filter(o=>!!o.values?.length).filter(o=>o.id!=="hierarchy").flatMap(o=>S(o)),operator:"and"},S=e=>{const t=q.getFilterFromId(e.id);let o;const y=Array.isArray(e.values)&&e.values.map(n=>n.id)?.includes("hasValue"),g=Array.isArray(e.values)&&e.values.map(n=>n.id)?.includes("noValue");e.values&&e.values.length>0&&(e.singleSelect?o=p(e.values[0].id,e.type):o=e.values.map(n=>p(n.id,e.type)));const u=e.type?.startsWith("list_of_")||t.includes("tags")||t.includes("assignees"),m=e.type==="datetime",F=e.type==="boolean",V=t.endsWith("version")||e.type==="integer"||e.type==="float",C=e.values&&e.values.some(n=>n.isCustom===!0);let a="eq";if(o===void 0)return a=e.inverted?"notnull":"isnull",{key:t,operator:a};if(y)o=u?[]:void 0,a=u?e.inverted?"eq":"ne":e.inverted?"isnull":"notnull";else if(g)o=u?[]:void 0,a=u?e.inverted?"ne":"eq":e.inverted?"notnull":"isnull";else if(u)e.inverted?a=e.operator==="AND"?"excludesall":"excludesany":a=e.operator==="AND"?"includesall":"includesany";else if(m){if(e.values&&e.values.length>0){const n=e.values.flatMap(r=>{const i=[],s=r.values,c=s?.[0]?.id,v=s?.[1]?.id,d=c&&v&&c!==l&&v!==l?A.detectRelativeDatePattern(c,v):null;return s?.[0]!==void 0&&s?.[0].id!==l&&i.push({key:t,operator:e.inverted?"lte":"gte",value:d?h.createRelativeValue(d.id,0):s[0].id}),s?.[1]!==void 0&&s?.[1].id!==l&&i.push({key:t,operator:e.inverted?"gte":"lte",value:d?h.createRelativeValue(d.id,1):s[1].id}),i});if(n.length>0)return{conditions:n,operator:e.inverted?"or":"and"}}a=e.inverted?"ne":"eq"}else if(F)a=e.inverted?"ne":"eq";else if(C&&!u&&!V)if(!e.values||e.values.length===0)a=e.inverted?"notin":"in";else{const n=e.values.filter(i=>i.isCustom===!0),r=e.values.filter(i=>!i.isCustom);if(r.length===0)if(n.length===1)a="like",o=`%${n[0].id}%`;else return{conditions:n.map(s=>({key:t,operator:"like",value:`%${s.id}%`})),operator:e.inverted?"and":"or"};else{const i=[];return r.length>0&&i.push({key:t,operator:e.inverted?"notin":"in",value:r.map(s=>p(s.id,e.type))}),n.forEach(s=>{i.push({key:t,operator:"like",value:`%${s.id}%`})}),{conditions:i,operator:e.inverted?"and":"or"}}}else a=e.inverted?"notin":"in";return{key:t,value:o,operator:a}},p=(e,t)=>{if(!t)return e;switch(t){case"integer":return parseInt(e,10);case"float":return parseFloat(e);case"boolean":return e.toLowerCase()==="true";default:return e}};exports.clientFilterToQueryFilter=D;
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
@@ -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 A } from "@ynput/ayon-react-components";
2
- import { detectRelativeDatePattern as q } from "../../../components/SearchFilter/filterDates.es.js";
3
- import { createRelativeValue as h } from "./expandRelativeDates.es.js";
4
- const l = "no-date", S = (e) => !e || e.length === 0 ? {} : {
5
- conditions: e.filter((s) => !!s.values?.length).filter((s) => s.id !== "hierarchy").flatMap((s) => D(s)),
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
- }, D = (e) => {
8
- const t = A(e.id);
9
- let s;
10
- const m = Array.isArray(e.values) && e.values.map((n) => n.id)?.includes("hasValue"), y = Array.isArray(e.values) && e.values.map((n) => n.id)?.includes("noValue");
11
- e.values && e.values.length > 0 && (e.singleSelect ? s = p(e.values[0].id, e.type) : s = e.values.map((n) => p(n.id, e.type)));
12
- const u = e.type?.startsWith("list_of_") || t.includes("tags") || t.includes("assignees"), g = e.type === "datetime", F = e.type === "boolean", V = t.endsWith("version") || e.type === "integer" || e.type === "float", C = e.values && e.values.some((n) => n.isCustom === !0);
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 (s === void 0)
15
- return a = e.inverted ? "notnull" : "isnull", { key: t, operator: a };
16
- if (m)
17
- s = u ? [] : void 0, a = u ? e.inverted ? "eq" : "ne" : e.inverted ? "isnull" : "notnull";
18
- else if (y)
19
- s = u ? [] : void 0, a = u ? e.inverted ? "ne" : "eq" : e.inverted ? "notnull" : "isnull";
20
- else if (u)
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 (g) {
23
- if (e.values && e.values.length > 0) {
24
- const n = e.values.flatMap(
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 (F)
44
+ } else if (l)
46
45
  a = e.inverted ? "ne" : "eq";
47
- else if (C && !u && !V)
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 n = e.values.filter((i) => i.isCustom === !0), d = e.values.filter((i) => !i.isCustom);
52
- if (d.length === 0)
53
- if (n.length === 1)
54
- a = "like", s = `%${n[0].id}%`;
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: n.map((o) => ({
58
- key: t,
56
+ conditions: s.map((c) => ({
57
+ key: n,
59
58
  operator: "like",
60
- value: `%${o.id}%`
59
+ value: `%${c.id}%`
61
60
  })),
62
61
  operator: e.inverted ? "and" : "or"
63
62
  };
64
63
  else {
65
64
  const i = [];
66
- return d.length > 0 && i.push({
67
- key: t,
65
+ return h.length > 0 && i.push({
66
+ key: n,
68
67
  operator: e.inverted ? "notin" : "in",
69
- value: d.map(
70
- (o) => p(o.id, e.type)
68
+ value: h.map(
69
+ (c) => m(c.id, e.type)
71
70
  )
72
- }), n.forEach((o) => {
71
+ }), s.forEach((c) => {
73
72
  i.push({
74
- key: t,
73
+ key: n,
75
74
  operator: "like",
76
- value: `%${o.id}%`
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: t, value: s, operator: a };
87
- }, p = (e, t) => {
88
- if (!t) return e;
89
- switch (t) {
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
- S as clientFilterToQueryFilter
100
+ T as clientFilterToQueryFilter,
101
+ C as convertDateFilterToQueryFilter
102
102
  };
103
103
  //# sourceMappingURL=clientFilterToQueryFilter.es.js.map
@@ -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"),C=require("../../../components/SearchFilter/filterDates.cjs.js"),g=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=I(n,l,s);i&&t.push(i)}else{const i=O(n,l);if(i)t.push(i);else{const r=M(n,l);t.push(...r)}}}),t},O=(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=b(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&&g.isRelativeDateValue(o)?g.resolveRelativeValue(o):o,c=d&&g.isRelativeDateValue(d)?g.resolveRelativeValue(d):d;let p="Custom range";if(f&&c){const u=C.detectRelativeDatePattern(f,c);if(u)p=u.label;else{const V=a.parseISO(f),y=a.parseISO(c);if(a.isValid(V)&&a.isValid(y)){const h=new Date().getFullYear(),v=y.getFullYear()===h?"MMM d":"MMM d, yyyy";p=`${a.format(V,"MMM d")} – ${a.format(y,v)}`}}}const S={id:`custom-${f||""}-${c||""}`,label:p,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}},I=(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=b(s,l);if(!r)return null;const o=`${s}_${i}_${JSON.stringify(n)}`;if(t.has(o))return null;t.add(o);const d=R(n,i,r),c=d.length===1&&["hasValue","noValue"].includes(String(d[0].id))?!1:D(i,r.type),p=A(i,r.type);return{id:r.id,type:r.type,label:r.label,inverted:c,operator:p,icon:r.icon,values:d,isCustom:r.allowsCustomValues,singleSelect:r.singleSelect}},b=(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},R=(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}})},D=(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;
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