@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
@@ -191,7 +191,7 @@ import "../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled
191
191
  import "../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js";
192
192
  import "../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js";
193
193
  import "../../Feed/Feed.styled.es.js";
194
- import "../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
194
+ import "../../Feed/components/FeedSearchFilter.es.js";
195
195
  import "@tanstack/react-virtual";
196
196
  import "@tanstack/react-table";
197
197
  import "../widgets/CollapsedWidget.es.js";
@@ -236,6 +236,8 @@ import "../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styl
236
236
  import "../../../components/PlayableIcon/PlayableIcon.es.js";
237
237
  import "../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js";
238
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";
239
241
  import "../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.es.js";
240
242
  import "../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.es.js";
241
243
  import "../../Actions/Actions.styled.es.js";
@@ -268,6 +270,7 @@ import { TableSettingsFallback as n } from "../../../components/ProjectTableSett
268
270
  import "../../../components/SizeSlider/SizeSlider.es.js";
269
271
  import "../../../components/ReviewableCard/ReviewableCard.es.js";
270
272
  import "../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js";
273
+ import "../../../components/SearchFilter/CustomDateRangeDialog.es.js";
271
274
  import "../../../components/SettingsPanel/SettingsPanel.es.js";
272
275
  import "../../../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
273
276
  import "../../../components/ShareOptionIcon/ShareOptionIcon.es.js";
@@ -293,7 +296,7 @@ const s = o.li`
293
296
  `, a = o(p)`
294
297
  width: 100%;
295
298
  justify-content: start;
296
- `, Am = ({
299
+ `, Lm = ({
297
300
  requiredVersion: r,
298
301
  fields: m
299
302
  }) => /* @__PURE__ */ t.jsx(n, { feature: "groupAttributes", requiredVersion: r, children: m.map((i) => /* @__PURE__ */ t.jsx(s, { children: /* @__PURE__ */ t.jsxs(a, { variant: "text", icon: i.icon, children: [
@@ -301,6 +304,6 @@ const s = o.li`
301
304
  /* @__PURE__ */ t.jsx(e, { icon: "bolt", style: { marginLeft: "auto" } })
302
305
  ] }) }, i.value)) });
303
306
  export {
304
- Am as GroupSettingsFallback
307
+ Lm as GroupSettingsFallback
305
308
  };
306
309
  //# sourceMappingURL=GroupSettingsFallback.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GroupSettingsFallback.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/components/GroupSettingsFallback.tsx"],"sourcesContent":["import { SettingsPanelItem, TableSettingsFallback } from '../../../components'\nimport { FC } from 'react'\nimport { ColumnSettingsContextType } from '../context'\nimport styled from 'styled-components'\nimport { Button, Icon } from '@ynput/ayon-react-components'\n\nconst FieldItem = styled.li`\n display: flex;\n align-items: center;\n padding: 0;\n margin: 0;\n`\n\nconst FieldButton = styled(Button)`\n width: 100%;\n justify-content: start;\n`\n\nexport type GroupByConfig = {\n showEmpty?: boolean\n entityType: string\n}\n\nexport interface GroupSettingsProps {\n fields: SettingsPanelItem[]\n config: GroupByConfig\n onChange?: ColumnSettingsContextType['updateGroupBy']\n groupBy?: ColumnSettingsContextType['groupBy']\n updateGroupBy?: ColumnSettingsContextType['updateGroupBy']\n onConfigChange?: (config: GroupByConfig) => void\n}\n\nexport interface GroupSettingsFallbackProps extends GroupSettingsProps {\n requiredVersion?: string\n}\n\nexport const GroupSettingsFallback: FC<GroupSettingsFallbackProps> = ({\n requiredVersion,\n fields,\n}) => (\n <TableSettingsFallback feature={'groupAttributes'} requiredVersion={requiredVersion}>\n {fields.map((field) => (\n <FieldItem key={field.value}>\n <FieldButton variant=\"text\" icon={field.icon}>\n {field.label}\n <Icon icon={'bolt'} style={{ marginLeft: 'auto' }} />\n </FieldButton>\n </FieldItem>\n ))}\n </TableSettingsFallback>\n)\n"],"names":["FieldItem","styled","FieldButton","Button","GroupSettingsFallback","requiredVersion","fields","TableSettingsFallback","field","jsx","jsxs","Icon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAMA,IAAYC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOnBC,IAAcD,EAAOE,CAAM;AAAA;AAAA;AAAA,GAuBpBC,KAAwD,CAAC;AAAA,EACpE,iBAAAC;AAAA,EACA,QAAAC;AACF,4BACGC,GAAA,EAAsB,SAAS,mBAAmB,iBAAAF,GAChD,YAAO,IAAI,CAACG,MACXC,gBAAAA,EAAAA,IAACT,KACC,UAAAU,gBAAAA,OAACR,GAAA,EAAY,SAAQ,QAAO,MAAMM,EAAM,MACrC,UAAA;AAAA,EAAAA,EAAM;AAAA,EACPC,gBAAAA,MAACE,KAAK,MAAM,QAAQ,OAAO,EAAE,YAAY,SAAO,CAAG;AAAA,EAAA,CACrD,EAAA,GAJcH,EAAM,KAKtB,CACD,EAAA,CACH;"}
1
+ {"version":3,"file":"GroupSettingsFallback.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/components/GroupSettingsFallback.tsx"],"sourcesContent":["import { SettingsPanelItem, TableSettingsFallback } from '../../../components'\nimport { FC } from 'react'\nimport { ColumnSettingsContextType } from '../context'\nimport styled from 'styled-components'\nimport { Button, Icon } from '@ynput/ayon-react-components'\n\nconst FieldItem = styled.li`\n display: flex;\n align-items: center;\n padding: 0;\n margin: 0;\n`\n\nconst FieldButton = styled(Button)`\n width: 100%;\n justify-content: start;\n`\n\nexport type GroupByConfig = {\n showEmpty?: boolean\n entityType: string\n}\n\nexport interface GroupSettingsProps {\n fields: SettingsPanelItem[]\n config: GroupByConfig\n onChange?: ColumnSettingsContextType['updateGroupBy']\n groupBy?: ColumnSettingsContextType['groupBy']\n updateGroupBy?: ColumnSettingsContextType['updateGroupBy']\n onConfigChange?: (config: GroupByConfig) => void\n}\n\nexport interface GroupSettingsFallbackProps extends GroupSettingsProps {\n requiredVersion?: string\n}\n\nexport const GroupSettingsFallback: FC<GroupSettingsFallbackProps> = ({\n requiredVersion,\n fields,\n}) => (\n <TableSettingsFallback feature={'groupAttributes'} requiredVersion={requiredVersion}>\n {fields.map((field) => (\n <FieldItem key={field.value}>\n <FieldButton variant=\"text\" icon={field.icon}>\n {field.label}\n <Icon icon={'bolt'} style={{ marginLeft: 'auto' }} />\n </FieldButton>\n </FieldItem>\n ))}\n </TableSettingsFallback>\n)\n"],"names":["FieldItem","styled","FieldButton","Button","GroupSettingsFallback","requiredVersion","fields","TableSettingsFallback","field","jsx","jsxs","Icon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAMA,IAAYC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOnBC,IAAcD,EAAOE,CAAM;AAAA;AAAA;AAAA,GAuBpBC,KAAwD,CAAC;AAAA,EACpE,iBAAAC;AAAA,EACA,QAAAC;AACF,4BACGC,GAAA,EAAsB,SAAS,mBAAmB,iBAAAF,GAChD,YAAO,IAAI,CAACG,MACXC,gBAAAA,EAAAA,IAACT,KACC,UAAAU,gBAAAA,OAACR,GAAA,EAAY,SAAQ,QAAO,MAAMM,EAAM,MACrC,UAAA;AAAA,EAAAA,EAAM;AAAA,EACPC,gBAAAA,MAACE,KAAK,MAAM,QAAQ,OAAO,EAAE,YAAY,SAAO,CAAG;AAAA,EAAA,CACrD,EAAA,GAJcH,EAAM,KAKtB,CACD,EAAA,CACH;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const z=require("../../../../../_virtual/jsx-runtime.cjs.js"),l=require("react");require("@ynput/ayon-react-components");require("../../../components/SearchFilter/filterDates.cjs.js");require("date-fns");require("short-uuid");const O=require("../utils/cellUtils.cjs.js"),D=require("../utils/getTypeDefaultValue.cjs.js");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/EnumCellValue.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/MarkdownWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("clsx");require("../../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("react-dom");require("../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");const a=require("react-toastify");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/listItemsColumnStats.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");const W=require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../../../../_virtual/index.cjs.js");require("../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("lodash");require("uuid");require("../../../util/pubsub.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../../components/QuillListStyles/QuillListStyles.cjs.js");require("../../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("react-markdown");require("remark-gfm");require("rehype-raw");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../Feed/components/CommentInput/modules/index.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");require("../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");const X=require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("remark-emoji");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("@tanstack/react-virtual");require("../ProjectTreeTable.styled.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../components/SelectionCell.cjs.js");const Z=require("./CellEditingContext.cjs.js"),G=require("../hooks/useHistory.cjs.js"),J=require("./SelectionCellsContext.cjs.js"),Q=require("../hooks/useUpdateTableData.cjs.js"),Y=require("./ProjectTableContext.cjs.js"),ee=require("../utils/validateUpdateEntities.cjs.js");require("./ClipboardContext.cjs.js");require("./ColumnSettingsContext.cjs.js");require("./ProjectTableQueriesContext.cjs.js");require("./SelectedRowsContext.cjs.js");require("./DetailsPanelEntityContext.cjs.js");require("../components/DeleteConfirmContent.cjs.js");require("./ProjectDataContext.cjs.js");require("../components/TableFooterRow.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../Views/context/ViewsContextInstance.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../ListTable/ListTableRow.cjs.js");require("../../ListTable/ListTable.styled.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../components/ColumnHeaderMenuUI.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");const re=({children:N})=>{const[g,K]=l.useState(null),I=l.useRef(null),F=l.useCallback(()=>I.current,[]),A=l.useCallback(i=>{I.current=i},[]),M=l.useCallback(i=>{I.current=null,K(i)},[]),P=l.useCallback(i=>i===g,[g]),T=G(),{pushHistory:h,undo:_,redo:H,canUndo:U,canRedo:j,removeHistoryEntries:V}=T,{selectedCells:w}=J.useSelectionCellsContext(),{updateEntities:x,inheritFromParent:f}=Q({pushHistory:h,removeHistoryEntries:V}),{attribFields:b,getEntityById:R}=Y.useProjectTableContext(),{projectName:p}=X.useProjectContext(),[k]=W.useUpdateSubtasksMutation(),y=l.useCallback(async(i=[],e=!0)=>{try{return ee(i,b),await x(i,e)}catch(r){return a.toast.error(r.message),Promise.reject(r)}},[x,b]),C=async()=>{const[i,e,r]=_()||[];if(i&&i.length>0)try{await y(i,!1)}catch{a.toast.error("Failed to undo changes")}if(e&&e.length>0)try{await f(e,!1)}catch{a.toast.error("Failed to inherit changes")}r&&r.length>0&&r.forEach(q=>{try{q()}catch{a.toast.error("Failed to execute custom undo action")}})},m=async()=>{const[i,e,r]=H()||[];if(i&&i.length>0)try{await y(i,!1)}catch{a.toast.error("Failed to redo changes")}if(e&&e.length>0)try{await f(e,!1)}catch{a.toast.error("Failed to inherit changes")}r&&r.length>0&&r.forEach(q=>{try{q()}catch{a.toast.error("Failed to execute custom redo action")}})},S=l.useCallback(async i=>{const e=[],r=[],q=[];for(const s of i){const{colId:u,rowId:o}=O.parseCellId(s)||{};if(!u||!o){console.warn(`Invalid cellId: ${s}`);continue}const t=R(o);if(!t)return;const n=u.replace("attrib_",""),c=u.startsWith("attrib_");if(!n){console.warn(`Invalid column ID: ${u}`);continue}if(u==="subtasks"){if(t.entityType==="task"){const d="subtasks"in t&&t.subtasks||[];q.push({taskId:o,previousSubtasks:d})}continue}let E=null;if(c){const d=b.find(v=>v.name===n);if(!d){console.warn(`Attribute field not found: ${n}`);continue}if(d.data.inherit){const v=r.find($=>$.entityId===t.entityId);v?v.attribs.push(n):r.push({entityId:t.entityId,attribs:[n],entityType:t.entityType,ownAttrib:t.ownAttrib||[],rowId:o,folderId:t.entityType==="folder"?t.parentId:t.entityType==="task"?t.folderId:void 0});continue}else E=d.data.default||D.getTypeDefaultValue(d.data.type)}else if(n==="assignees")E=D.getTypeDefaultValue("list_of_strings");else if(n==="tags")E=D.getTypeDefaultValue("list_of_strings");else{console.warn(`Field not editable: ${n}`);continue}const L={id:o,rowId:o,field:n,value:E,isAttrib:c,type:t.entityType};e.push(L)}if(e.length>0)try{await y(e,!0)}catch(s){a.toast.error("Failed to clear selected cells"),console.error("Error clearing selected cells:",s)}if(r.length>0)try{await f(r,!0)}catch(s){a.toast.error("Failed to inherit parent values for cleared cells"),console.error("Error clearing inherited cells:",s)}if(q.length>0)try{h&&q.forEach(({taskId:u,previousSubtasks:o})=>{const t=o||[];h([()=>{k({projectName:p,taskId:u,subtasks:t}).unwrap().catch(()=>{})}],[()=>{k({projectName:p,taskId:u,subtasks:[]}).unwrap().catch(()=>{})}])});const s=q.map(({taskId:u})=>k({projectName:p,taskId:u,subtasks:[]}).unwrap());await Promise.all(s)}catch(s){a.toast.error("Failed to clear subtasks"),console.error("Error clearing subtasks:",s)}e.length===0&&r.length===0&&q.length===0&&a.toast.warn("No valid cells selected to clear")},[b,x,p,k,h,R]),B=l.useMemo(()=>({editingCellId:g,setEditingCellId:M,isEditing:P,updateEntities:y,inheritFromParent:f,undo:C,redo:m,history:T,getEditingDraft:F,setEditingDraft:A}),[g,P,y,f,C,m,T,F,A]);return l.useEffect(()=>{const i=e=>{const r=e.target;if(r.tagName==="INPUT"||r.tagName==="TEXTAREA"||r.isContentEditable||r.getAttribute("role")==="textbox"||r.tagName==="LI"||!(r?.closest("table")!==null||r===document.body))return;const u=typeof navigator<"u"&&(navigator.userAgentData&&navigator.userAgentData.platform.toUpperCase().includes("MAC")||navigator.userAgent.toUpperCase().includes("MAC"))?e.metaKey:e.ctrlKey;if(u&&e.key==="z"&&(e.preventDefault(),U&&C()),(u&&e.key==="y"||u&&e.shiftKey&&e.key==="z"||u&&e.key==="Z")&&(e.preventDefault(),j&&m()),e.key==="Backspace"&&!(e.ctrlKey||e.metaKey)||e.key==="Delete"){if(!w.size)return;e.preventDefault();const o=Array.from(w).map(c=>document.getElementById(c)),t=c=>c?.classList.contains("editable"),n=o.filter(t);if(n.length===0){a.toast.warn("No editable cells selected to clear");return}S(n.map(c=>c?.id).filter(Boolean))}};return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[U,j,C,m,w,S]),z.jsxRuntimeExports.jsx(Z.CellEditingContext.Provider,{value:B,children:N})};exports.CellEditingProvider=re;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const z=require("../../../../../_virtual/jsx-runtime.cjs.js"),l=require("react");require("@ynput/ayon-react-components");require("../../../components/SearchFilter/filterDates.cjs.js");require("date-fns");require("short-uuid");const O=require("../utils/cellUtils.cjs.js"),D=require("../utils/getTypeDefaultValue.cjs.js");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/EnumCellValue.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/MarkdownWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("clsx");require("../../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("react-dom");require("../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");const a=require("react-toastify");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/listItemsColumnStats.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");const W=require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../../../../_virtual/index.cjs.js");require("../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("lodash");require("uuid");require("../../../util/pubsub.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../../components/QuillListStyles/QuillListStyles.cjs.js");require("../../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("react-markdown");require("remark-gfm");require("rehype-raw");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../Feed/components/CommentInput/modules/index.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");require("../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");const X=require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("remark-emoji");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../Feed/components/FeedSearchFilter.cjs.js");require("@tanstack/react-virtual");require("../ProjectTreeTable.styled.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../components/SelectionCell.cjs.js");const Z=require("./CellEditingContext.cjs.js"),G=require("../hooks/useHistory.cjs.js"),J=require("./SelectionCellsContext.cjs.js"),Q=require("../hooks/useUpdateTableData.cjs.js"),Y=require("./ProjectTableContext.cjs.js"),ee=require("../utils/validateUpdateEntities.cjs.js");require("./ClipboardContext.cjs.js");require("./ColumnSettingsContext.cjs.js");require("./ProjectTableQueriesContext.cjs.js");require("./SelectedRowsContext.cjs.js");require("./DetailsPanelEntityContext.cjs.js");require("../components/DeleteConfirmContent.cjs.js");require("./ProjectDataContext.cjs.js");require("../components/TableFooterRow.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../Views/context/ViewsContextInstance.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../ListTable/ListTableRow.cjs.js");require("../../ListTable/ListTable.styled.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/CustomDateRangeDialog.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../components/ColumnHeaderMenuUI.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");const re=({children:N})=>{const[g,K]=l.useState(null),I=l.useRef(null),F=l.useCallback(()=>I.current,[]),A=l.useCallback(i=>{I.current=i},[]),M=l.useCallback(i=>{I.current=null,K(i)},[]),P=l.useCallback(i=>i===g,[g]),T=G(),{pushHistory:h,undo:_,redo:H,canUndo:U,canRedo:j,removeHistoryEntries:V}=T,{selectedCells:w}=J.useSelectionCellsContext(),{updateEntities:x,inheritFromParent:f}=Q({pushHistory:h,removeHistoryEntries:V}),{attribFields:b,getEntityById:R}=Y.useProjectTableContext(),{projectName:p}=X.useProjectContext(),[k]=W.useUpdateSubtasksMutation(),y=l.useCallback(async(i=[],e=!0)=>{try{return ee(i,b),await x(i,e)}catch(r){return a.toast.error(r.message),Promise.reject(r)}},[x,b]),C=async()=>{const[i,e,r]=_()||[];if(i&&i.length>0)try{await y(i,!1)}catch{a.toast.error("Failed to undo changes")}if(e&&e.length>0)try{await f(e,!1)}catch{a.toast.error("Failed to inherit changes")}r&&r.length>0&&r.forEach(q=>{try{q()}catch{a.toast.error("Failed to execute custom undo action")}})},m=async()=>{const[i,e,r]=H()||[];if(i&&i.length>0)try{await y(i,!1)}catch{a.toast.error("Failed to redo changes")}if(e&&e.length>0)try{await f(e,!1)}catch{a.toast.error("Failed to inherit changes")}r&&r.length>0&&r.forEach(q=>{try{q()}catch{a.toast.error("Failed to execute custom redo action")}})},S=l.useCallback(async i=>{const e=[],r=[],q=[];for(const s of i){const{colId:u,rowId:o}=O.parseCellId(s)||{};if(!u||!o){console.warn(`Invalid cellId: ${s}`);continue}const t=R(o);if(!t)return;const n=u.replace("attrib_",""),c=u.startsWith("attrib_");if(!n){console.warn(`Invalid column ID: ${u}`);continue}if(u==="subtasks"){if(t.entityType==="task"){const d="subtasks"in t&&t.subtasks||[];q.push({taskId:o,previousSubtasks:d})}continue}let E=null;if(c){const d=b.find(v=>v.name===n);if(!d){console.warn(`Attribute field not found: ${n}`);continue}if(d.data.inherit){const v=r.find($=>$.entityId===t.entityId);v?v.attribs.push(n):r.push({entityId:t.entityId,attribs:[n],entityType:t.entityType,ownAttrib:t.ownAttrib||[],rowId:o,folderId:t.entityType==="folder"?t.parentId:t.entityType==="task"?t.folderId:void 0});continue}else E=d.data.default||D.getTypeDefaultValue(d.data.type)}else if(n==="assignees")E=D.getTypeDefaultValue("list_of_strings");else if(n==="tags")E=D.getTypeDefaultValue("list_of_strings");else{console.warn(`Field not editable: ${n}`);continue}const L={id:o,rowId:o,field:n,value:E,isAttrib:c,type:t.entityType};e.push(L)}if(e.length>0)try{await y(e,!0)}catch(s){a.toast.error("Failed to clear selected cells"),console.error("Error clearing selected cells:",s)}if(r.length>0)try{await f(r,!0)}catch(s){a.toast.error("Failed to inherit parent values for cleared cells"),console.error("Error clearing inherited cells:",s)}if(q.length>0)try{h&&q.forEach(({taskId:u,previousSubtasks:o})=>{const t=o||[];h([()=>{k({projectName:p,taskId:u,subtasks:t}).unwrap().catch(()=>{})}],[()=>{k({projectName:p,taskId:u,subtasks:[]}).unwrap().catch(()=>{})}])});const s=q.map(({taskId:u})=>k({projectName:p,taskId:u,subtasks:[]}).unwrap());await Promise.all(s)}catch(s){a.toast.error("Failed to clear subtasks"),console.error("Error clearing subtasks:",s)}e.length===0&&r.length===0&&q.length===0&&a.toast.warn("No valid cells selected to clear")},[b,x,p,k,h,R]),B=l.useMemo(()=>({editingCellId:g,setEditingCellId:M,isEditing:P,updateEntities:y,inheritFromParent:f,undo:C,redo:m,history:T,getEditingDraft:F,setEditingDraft:A}),[g,P,y,f,C,m,T,F,A]);return l.useEffect(()=>{const i=e=>{const r=e.target;if(r.tagName==="INPUT"||r.tagName==="TEXTAREA"||r.isContentEditable||r.getAttribute("role")==="textbox"||r.tagName==="LI"||!(r?.closest("table")!==null||r===document.body))return;const u=typeof navigator<"u"&&(navigator.userAgentData&&navigator.userAgentData.platform.toUpperCase().includes("MAC")||navigator.userAgent.toUpperCase().includes("MAC"))?e.metaKey:e.ctrlKey;if(u&&e.key==="z"&&(e.preventDefault(),U&&C()),(u&&e.key==="y"||u&&e.shiftKey&&e.key==="z"||u&&e.key==="Z")&&(e.preventDefault(),j&&m()),e.key==="Backspace"&&!(e.ctrlKey||e.metaKey)||e.key==="Delete"){if(!w.size)return;e.preventDefault();const o=Array.from(w).map(c=>document.getElementById(c)),t=c=>c?.classList.contains("editable"),n=o.filter(t);if(n.length===0){a.toast.warn("No editable cells selected to clear");return}S(n.map(c=>c?.id).filter(Boolean))}};return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[U,j,C,m,w,S]),z.jsxRuntimeExports.jsx(Z.CellEditingContext.Provider,{value:B,children:N})};exports.CellEditingProvider=re;
2
2
  //# sourceMappingURL=CellEditingProvider.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CellEditingProvider.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/CellEditingProvider.tsx"],"sourcesContent":["import { ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { CellId, getTypeDefaultValue, parseCellId } from '../utils'\nimport useHistory from '../hooks/useHistory'\nimport { useSelectionCellsContext } from './SelectionCellsContext'\nimport useUpdateTableData, {\n EntityUpdate,\n InheritFromParentEntity,\n UpdateTableEntities,\n} from '../hooks/useUpdateTableData'\nimport { useProjectTableContext } from './ProjectTableContext'\nimport { useProjectContext } from '@shared/context'\nimport { useUpdateSubtasksMutation } from '@shared/api'\nimport validateUpdateEntities from '../utils/validateUpdateEntities'\nimport { toast } from 'react-toastify'\nimport { CellEditingContext } from './CellEditingContext'\n\nexport const CellEditingProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n const [editingCellId, setEditingCellIdRaw] = useState<CellId | null>(null)\n\n // Ref-based draft storage to persist editing content across unmount/remount cycles\n const editingDraftRef = useRef<string | null>(null)\n const getEditingDraft = useCallback(() => editingDraftRef.current, [])\n const setEditingDraft = useCallback((value: string | null) => {\n editingDraftRef.current = value\n }, [])\n\n // Wrap setEditingCellId to clear draft synchronously (before next render reads it)\n const setEditingCellId = useCallback((id: CellId | null) => {\n editingDraftRef.current = null\n setEditingCellIdRaw(id)\n }, [])\n\n // Memoize these functions to prevent unnecessary re-renders\n const isEditing = useCallback((id: CellId) => id === editingCellId, [editingCellId])\n\n // Get history functions\n const history = useHistory()\n const {\n pushHistory,\n undo: undoHistory,\n redo: redoHistory,\n canUndo,\n canRedo,\n removeHistoryEntries,\n } = history\n\n const { selectedCells } = useSelectionCellsContext()\n const { updateEntities: updateOverviewEntities, inheritFromParent } = useUpdateTableData({\n pushHistory,\n removeHistoryEntries,\n })\n const { attribFields, getEntityById } = useProjectTableContext()\n const { projectName } = useProjectContext()\n const [updateSubtasks] = useUpdateSubtasksMutation()\n\n const handleUpdateEntities: UpdateTableEntities = useCallback(\n async (entities = [], pushToHistory = true) => {\n try {\n // validate the entities before updating\n validateUpdateEntities(entities, attribFields)\n\n // if validation passes, update the entities\n return await updateOverviewEntities(entities, pushToHistory)\n } catch (error: any) {\n // if validation fails, show a toast and return\n toast.error(error.message)\n\n return Promise.reject(error)\n }\n },\n [updateOverviewEntities, attribFields],\n )\n\n // Handle undo\n const handleUndo = async () => {\n const [entitiesToUndo, entitiesToInherit, callbacks] = undoHistory() || []\n\n if (entitiesToUndo && entitiesToUndo.length > 0) {\n try {\n await handleUpdateEntities(entitiesToUndo, false)\n } catch (error) {\n toast.error('Failed to undo changes')\n }\n }\n if (entitiesToInherit && entitiesToInherit.length > 0) {\n try {\n await inheritFromParent(entitiesToInherit, false)\n } catch (error) {\n toast.error('Failed to inherit changes')\n }\n }\n // Execute custom callbacks if any\n if (callbacks && callbacks.length > 0) {\n callbacks.forEach((callback) => {\n try {\n callback()\n } catch (error) {\n toast.error('Failed to execute custom undo action')\n }\n })\n }\n }\n\n // Handle redo\n const handleRedo = async () => {\n const [entitiesToRedo, entitiesToInherit, callbacks] = redoHistory() || []\n\n if (entitiesToRedo && entitiesToRedo.length > 0) {\n try {\n await handleUpdateEntities(entitiesToRedo, false)\n } catch (error) {\n toast.error('Failed to redo changes')\n }\n }\n if (entitiesToInherit && entitiesToInherit.length > 0) {\n try {\n await inheritFromParent(entitiesToInherit, false)\n } catch (error) {\n toast.error('Failed to inherit changes')\n }\n }\n // Execute custom callbacks if any\n if (callbacks && callbacks.length > 0) {\n callbacks.forEach((callback) => {\n try {\n callback()\n } catch (error) {\n toast.error('Failed to execute custom redo action')\n }\n })\n }\n }\n\n // Handle clearing cells\n const handleClear = useCallback(\n async (cells: CellId[]) => {\n // we explicity update the value of the cells to their default values\n const entityUpdates: EntityUpdate[] = []\n // of if they are inheritable, we inherit from the parent entity\n const entityInheriting: InheritFromParentEntity[] = []\n // Track subtasks to clear (include previous subtasks for history)\n const subtasksToClear: Array<{ taskId: string; previousSubtasks?: any[] }> = []\n\n for (const cellId of cells) {\n const { colId, rowId } = parseCellId(cellId) || {}\n if (!colId || !rowId) {\n console.warn(`Invalid cellId: ${cellId}`)\n continue\n }\n\n // get the entity from the rowId\n const entity = getEntityById(rowId)\n\n if (!entity) return\n\n // get the field name and check if it is an attribute\n const fieldName = colId.replace('attrib_', '')\n const isAttrib = colId.startsWith('attrib_')\n\n if (!fieldName) {\n console.warn(`Invalid column ID: ${colId}`)\n continue\n }\n\n // Special handling for subtasks\n if (colId === 'subtasks') {\n // Only clear subtasks for tasks\n if (entity.entityType === 'task') {\n const existingSubtasks = ('subtasks' in entity && entity.subtasks) || []\n subtasksToClear.push({ taskId: rowId, previousSubtasks: existingSubtasks })\n }\n continue\n }\n\n let defaultValue: any = null\n if (isAttrib) {\n // find default value for the attribute\n const attribField = attribFields.find((f) => f.name === fieldName)\n if (!attribField) {\n console.warn(`Attribute field not found: ${fieldName}`)\n continue\n }\n // check if the attribute is inheritable\n if (attribField.data.inherit) {\n // inherit from parent entity\n // check if this entity has already been added to the inheriting list\n const existingInherit = entityInheriting.find((e) => e.entityId === entity.entityId)\n if (existingInherit) {\n // add the attrib to the existing entity\n existingInherit.attribs.push(fieldName)\n } else {\n // add a new entity to the inheriting list\n entityInheriting.push({\n entityId: entity.entityId,\n attribs: [fieldName],\n entityType: entity.entityType,\n ownAttrib: entity.ownAttrib || [],\n rowId: rowId,\n folderId:\n entity.entityType === 'folder'\n ? entity.parentId\n : entity.entityType === 'task'\n ? entity.folderId\n : undefined,\n })\n }\n continue\n } else {\n // set explicit default value\n defaultValue = attribField.data.default || getTypeDefaultValue(attribField.data.type)\n }\n } else if (fieldName === 'assignees') {\n // for assignees, we set it to an empty array\n defaultValue = getTypeDefaultValue('list_of_strings')\n } else if (fieldName === 'tags') {\n // for tags, we set it to an empty array\n defaultValue = getTypeDefaultValue('list_of_strings')\n } else {\n // we ignore other fields\n console.warn(`Field not editable: ${fieldName}`)\n continue\n }\n\n // create the entity update\n const update: EntityUpdate = {\n id: rowId,\n rowId: rowId,\n field: fieldName,\n value: defaultValue,\n isAttrib,\n type: entity.entityType,\n }\n\n entityUpdates.push(update)\n }\n\n // if we have updates, call the updateEntities function\n if (entityUpdates.length > 0) {\n try {\n await handleUpdateEntities(entityUpdates, true)\n } catch (error) {\n toast.error('Failed to clear selected cells')\n console.error('Error clearing selected cells:', error)\n }\n }\n\n // if we have inheritable attributes, call inheritFromParent\n if (entityInheriting.length > 0) {\n try {\n await inheritFromParent(entityInheriting, true)\n } catch (error) {\n toast.error('Failed to inherit parent values for cleared cells')\n console.error('Error clearing inherited cells:', error)\n }\n }\n\n // Clear subtasks by calling updateSubtasks with empty array\n if (subtasksToClear.length > 0) {\n try {\n // push undo/redo history entries for clearing subtasks\n if (pushHistory) {\n subtasksToClear.forEach(({ taskId, previousSubtasks }) => {\n const prev = previousSubtasks || []\n const undoCallback = () => {\n updateSubtasks({ projectName, taskId, subtasks: prev })\n .unwrap()\n .catch(() => {})\n }\n const redoCallback = () => {\n updateSubtasks({ projectName, taskId, subtasks: [] })\n .unwrap()\n .catch(() => {})\n }\n pushHistory([undoCallback], [redoCallback])\n })\n }\n\n const subtasksPromises = subtasksToClear.map(({ taskId }) =>\n updateSubtasks({ projectName, taskId, subtasks: [] }).unwrap(),\n )\n await Promise.all(subtasksPromises)\n } catch (error) {\n toast.error('Failed to clear subtasks')\n console.error('Error clearing subtasks:', error)\n }\n }\n\n // if nothing was done, warn the user\n if (\n entityUpdates.length === 0 &&\n entityInheriting.length === 0 &&\n subtasksToClear.length === 0\n ) {\n toast.warn('No valid cells selected to clear')\n }\n },\n [attribFields, updateOverviewEntities, projectName, updateSubtasks, pushHistory, getEntityById],\n )\n\n const value = useMemo(\n () => ({\n editingCellId,\n setEditingCellId,\n isEditing,\n updateEntities: handleUpdateEntities,\n inheritFromParent,\n undo: handleUndo,\n redo: handleRedo,\n history,\n getEditingDraft,\n setEditingDraft,\n }),\n [\n editingCellId,\n isEditing,\n handleUpdateEntities,\n inheritFromParent,\n handleUndo,\n handleRedo,\n history,\n getEditingDraft,\n setEditingDraft,\n ],\n )\n\n // Listen for shortcuts\n // undo - ctrl + z\n // redo - ctrl + y or ctrl + shift + z\n // clear - backspace or delete\n useEffect(() => {\n const onKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n if (\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.isContentEditable ||\n target.getAttribute('role') === 'textbox' ||\n target.tagName === 'LI'\n ) {\n return\n }\n\n // check focus is on table or body\n const isTableFocused = target?.closest('table') !== null || target === document.body\n\n if (!isTableFocused) return\n\n const isMac =\n typeof navigator !== 'undefined' &&\n // @ts-expect-error\n ((navigator.userAgentData &&\n // @ts-expect-error\n navigator.userAgentData.platform.toUpperCase().includes('MAC')) ||\n navigator.userAgent.toUpperCase().includes('MAC'))\n const ctrlKey = isMac ? e.metaKey : e.ctrlKey\n\n // undo\n if (ctrlKey && e.key === 'z') {\n e.preventDefault()\n if (canUndo) handleUndo()\n }\n // redo\n if (\n (ctrlKey && e.key === 'y') ||\n (ctrlKey && e.shiftKey && e.key === 'z') ||\n (ctrlKey && e.key === 'Z')\n ) {\n e.preventDefault()\n if (canRedo) handleRedo()\n }\n // clear\n if ((e.key === 'Backspace' && !(e.ctrlKey || e.metaKey)) || e.key === 'Delete') {\n // check we have cells selected\n if (!selectedCells.size) return\n e.preventDefault()\n\n // find selected cells elements\n const selectedCellElements = Array.from(selectedCells).map((cellId) =>\n document.getElementById(cellId),\n )\n\n // check the cell is editable from the classnames\n const isEditable = (cell: HTMLElement | null) => cell?.classList.contains('editable')\n\n // filter out non-editable cells\n const editableCells = selectedCellElements.filter(isEditable)\n if (editableCells.length === 0) {\n toast.warn('No editable cells selected to clear')\n return\n }\n // clear the selected cells\n handleClear(editableCells.map((cell) => cell?.id).filter(Boolean) as CellId[])\n }\n }\n\n document.addEventListener('keydown', onKeyDown)\n return () => document.removeEventListener('keydown', onKeyDown)\n }, [canUndo, canRedo, handleUndo, handleRedo, selectedCells, handleClear])\n\n return <CellEditingContext.Provider value={value}>{children}</CellEditingContext.Provider>\n}\n"],"names":["CellEditingProvider","children","editingCellId","setEditingCellIdRaw","useState","editingDraftRef","useRef","getEditingDraft","useCallback","setEditingDraft","value","setEditingCellId","id","isEditing","history","useHistory","pushHistory","undoHistory","redoHistory","canUndo","canRedo","removeHistoryEntries","selectedCells","useSelectionCellsContext","updateOverviewEntities","inheritFromParent","useUpdateTableData","attribFields","getEntityById","useProjectTableContext","projectName","useProjectContext","updateSubtasks","useUpdateSubtasksMutation","handleUpdateEntities","entities","pushToHistory","validateUpdateEntities","error","toast","handleUndo","entitiesToUndo","entitiesToInherit","callbacks","callback","handleRedo","entitiesToRedo","handleClear","cells","entityUpdates","entityInheriting","subtasksToClear","cellId","colId","rowId","parseCellId","entity","fieldName","isAttrib","existingSubtasks","defaultValue","attribField","f","existingInherit","e","getTypeDefaultValue","update","taskId","previousSubtasks","prev","subtasksPromises","useMemo","useEffect","onKeyDown","target","ctrlKey","selectedCellElements","isEditable","cell","editableCells","jsx","CellEditingContext"],"mappings":"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"}
1
+ {"version":3,"file":"CellEditingProvider.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/CellEditingProvider.tsx"],"sourcesContent":["import { ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { CellId, getTypeDefaultValue, parseCellId } from '../utils'\nimport useHistory from '../hooks/useHistory'\nimport { useSelectionCellsContext } from './SelectionCellsContext'\nimport useUpdateTableData, {\n EntityUpdate,\n InheritFromParentEntity,\n UpdateTableEntities,\n} from '../hooks/useUpdateTableData'\nimport { useProjectTableContext } from './ProjectTableContext'\nimport { useProjectContext } from '@shared/context'\nimport { useUpdateSubtasksMutation } from '@shared/api'\nimport validateUpdateEntities from '../utils/validateUpdateEntities'\nimport { toast } from 'react-toastify'\nimport { CellEditingContext } from './CellEditingContext'\n\nexport const CellEditingProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n const [editingCellId, setEditingCellIdRaw] = useState<CellId | null>(null)\n\n // Ref-based draft storage to persist editing content across unmount/remount cycles\n const editingDraftRef = useRef<string | null>(null)\n const getEditingDraft = useCallback(() => editingDraftRef.current, [])\n const setEditingDraft = useCallback((value: string | null) => {\n editingDraftRef.current = value\n }, [])\n\n // Wrap setEditingCellId to clear draft synchronously (before next render reads it)\n const setEditingCellId = useCallback((id: CellId | null) => {\n editingDraftRef.current = null\n setEditingCellIdRaw(id)\n }, [])\n\n // Memoize these functions to prevent unnecessary re-renders\n const isEditing = useCallback((id: CellId) => id === editingCellId, [editingCellId])\n\n // Get history functions\n const history = useHistory()\n const {\n pushHistory,\n undo: undoHistory,\n redo: redoHistory,\n canUndo,\n canRedo,\n removeHistoryEntries,\n } = history\n\n const { selectedCells } = useSelectionCellsContext()\n const { updateEntities: updateOverviewEntities, inheritFromParent } = useUpdateTableData({\n pushHistory,\n removeHistoryEntries,\n })\n const { attribFields, getEntityById } = useProjectTableContext()\n const { projectName } = useProjectContext()\n const [updateSubtasks] = useUpdateSubtasksMutation()\n\n const handleUpdateEntities: UpdateTableEntities = useCallback(\n async (entities = [], pushToHistory = true) => {\n try {\n // validate the entities before updating\n validateUpdateEntities(entities, attribFields)\n\n // if validation passes, update the entities\n return await updateOverviewEntities(entities, pushToHistory)\n } catch (error: any) {\n // if validation fails, show a toast and return\n toast.error(error.message)\n\n return Promise.reject(error)\n }\n },\n [updateOverviewEntities, attribFields],\n )\n\n // Handle undo\n const handleUndo = async () => {\n const [entitiesToUndo, entitiesToInherit, callbacks] = undoHistory() || []\n\n if (entitiesToUndo && entitiesToUndo.length > 0) {\n try {\n await handleUpdateEntities(entitiesToUndo, false)\n } catch (error) {\n toast.error('Failed to undo changes')\n }\n }\n if (entitiesToInherit && entitiesToInherit.length > 0) {\n try {\n await inheritFromParent(entitiesToInherit, false)\n } catch (error) {\n toast.error('Failed to inherit changes')\n }\n }\n // Execute custom callbacks if any\n if (callbacks && callbacks.length > 0) {\n callbacks.forEach((callback) => {\n try {\n callback()\n } catch (error) {\n toast.error('Failed to execute custom undo action')\n }\n })\n }\n }\n\n // Handle redo\n const handleRedo = async () => {\n const [entitiesToRedo, entitiesToInherit, callbacks] = redoHistory() || []\n\n if (entitiesToRedo && entitiesToRedo.length > 0) {\n try {\n await handleUpdateEntities(entitiesToRedo, false)\n } catch (error) {\n toast.error('Failed to redo changes')\n }\n }\n if (entitiesToInherit && entitiesToInherit.length > 0) {\n try {\n await inheritFromParent(entitiesToInherit, false)\n } catch (error) {\n toast.error('Failed to inherit changes')\n }\n }\n // Execute custom callbacks if any\n if (callbacks && callbacks.length > 0) {\n callbacks.forEach((callback) => {\n try {\n callback()\n } catch (error) {\n toast.error('Failed to execute custom redo action')\n }\n })\n }\n }\n\n // Handle clearing cells\n const handleClear = useCallback(\n async (cells: CellId[]) => {\n // we explicity update the value of the cells to their default values\n const entityUpdates: EntityUpdate[] = []\n // of if they are inheritable, we inherit from the parent entity\n const entityInheriting: InheritFromParentEntity[] = []\n // Track subtasks to clear (include previous subtasks for history)\n const subtasksToClear: Array<{ taskId: string; previousSubtasks?: any[] }> = []\n\n for (const cellId of cells) {\n const { colId, rowId } = parseCellId(cellId) || {}\n if (!colId || !rowId) {\n console.warn(`Invalid cellId: ${cellId}`)\n continue\n }\n\n // get the entity from the rowId\n const entity = getEntityById(rowId)\n\n if (!entity) return\n\n // get the field name and check if it is an attribute\n const fieldName = colId.replace('attrib_', '')\n const isAttrib = colId.startsWith('attrib_')\n\n if (!fieldName) {\n console.warn(`Invalid column ID: ${colId}`)\n continue\n }\n\n // Special handling for subtasks\n if (colId === 'subtasks') {\n // Only clear subtasks for tasks\n if (entity.entityType === 'task') {\n const existingSubtasks = ('subtasks' in entity && entity.subtasks) || []\n subtasksToClear.push({ taskId: rowId, previousSubtasks: existingSubtasks })\n }\n continue\n }\n\n let defaultValue: any = null\n if (isAttrib) {\n // find default value for the attribute\n const attribField = attribFields.find((f) => f.name === fieldName)\n if (!attribField) {\n console.warn(`Attribute field not found: ${fieldName}`)\n continue\n }\n // check if the attribute is inheritable\n if (attribField.data.inherit) {\n // inherit from parent entity\n // check if this entity has already been added to the inheriting list\n const existingInherit = entityInheriting.find((e) => e.entityId === entity.entityId)\n if (existingInherit) {\n // add the attrib to the existing entity\n existingInherit.attribs.push(fieldName)\n } else {\n // add a new entity to the inheriting list\n entityInheriting.push({\n entityId: entity.entityId,\n attribs: [fieldName],\n entityType: entity.entityType,\n ownAttrib: entity.ownAttrib || [],\n rowId: rowId,\n folderId:\n entity.entityType === 'folder'\n ? entity.parentId\n : entity.entityType === 'task'\n ? entity.folderId\n : undefined,\n })\n }\n continue\n } else {\n // set explicit default value\n defaultValue = attribField.data.default || getTypeDefaultValue(attribField.data.type)\n }\n } else if (fieldName === 'assignees') {\n // for assignees, we set it to an empty array\n defaultValue = getTypeDefaultValue('list_of_strings')\n } else if (fieldName === 'tags') {\n // for tags, we set it to an empty array\n defaultValue = getTypeDefaultValue('list_of_strings')\n } else {\n // we ignore other fields\n console.warn(`Field not editable: ${fieldName}`)\n continue\n }\n\n // create the entity update\n const update: EntityUpdate = {\n id: rowId,\n rowId: rowId,\n field: fieldName,\n value: defaultValue,\n isAttrib,\n type: entity.entityType,\n }\n\n entityUpdates.push(update)\n }\n\n // if we have updates, call the updateEntities function\n if (entityUpdates.length > 0) {\n try {\n await handleUpdateEntities(entityUpdates, true)\n } catch (error) {\n toast.error('Failed to clear selected cells')\n console.error('Error clearing selected cells:', error)\n }\n }\n\n // if we have inheritable attributes, call inheritFromParent\n if (entityInheriting.length > 0) {\n try {\n await inheritFromParent(entityInheriting, true)\n } catch (error) {\n toast.error('Failed to inherit parent values for cleared cells')\n console.error('Error clearing inherited cells:', error)\n }\n }\n\n // Clear subtasks by calling updateSubtasks with empty array\n if (subtasksToClear.length > 0) {\n try {\n // push undo/redo history entries for clearing subtasks\n if (pushHistory) {\n subtasksToClear.forEach(({ taskId, previousSubtasks }) => {\n const prev = previousSubtasks || []\n const undoCallback = () => {\n updateSubtasks({ projectName, taskId, subtasks: prev })\n .unwrap()\n .catch(() => {})\n }\n const redoCallback = () => {\n updateSubtasks({ projectName, taskId, subtasks: [] })\n .unwrap()\n .catch(() => {})\n }\n pushHistory([undoCallback], [redoCallback])\n })\n }\n\n const subtasksPromises = subtasksToClear.map(({ taskId }) =>\n updateSubtasks({ projectName, taskId, subtasks: [] }).unwrap(),\n )\n await Promise.all(subtasksPromises)\n } catch (error) {\n toast.error('Failed to clear subtasks')\n console.error('Error clearing subtasks:', error)\n }\n }\n\n // if nothing was done, warn the user\n if (\n entityUpdates.length === 0 &&\n entityInheriting.length === 0 &&\n subtasksToClear.length === 0\n ) {\n toast.warn('No valid cells selected to clear')\n }\n },\n [attribFields, updateOverviewEntities, projectName, updateSubtasks, pushHistory, getEntityById],\n )\n\n const value = useMemo(\n () => ({\n editingCellId,\n setEditingCellId,\n isEditing,\n updateEntities: handleUpdateEntities,\n inheritFromParent,\n undo: handleUndo,\n redo: handleRedo,\n history,\n getEditingDraft,\n setEditingDraft,\n }),\n [\n editingCellId,\n isEditing,\n handleUpdateEntities,\n inheritFromParent,\n handleUndo,\n handleRedo,\n history,\n getEditingDraft,\n setEditingDraft,\n ],\n )\n\n // Listen for shortcuts\n // undo - ctrl + z\n // redo - ctrl + y or ctrl + shift + z\n // clear - backspace or delete\n useEffect(() => {\n const onKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n if (\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.isContentEditable ||\n target.getAttribute('role') === 'textbox' ||\n target.tagName === 'LI'\n ) {\n return\n }\n\n // check focus is on table or body\n const isTableFocused = target?.closest('table') !== null || target === document.body\n\n if (!isTableFocused) return\n\n const isMac =\n typeof navigator !== 'undefined' &&\n // @ts-expect-error\n ((navigator.userAgentData &&\n // @ts-expect-error\n navigator.userAgentData.platform.toUpperCase().includes('MAC')) ||\n navigator.userAgent.toUpperCase().includes('MAC'))\n const ctrlKey = isMac ? e.metaKey : e.ctrlKey\n\n // undo\n if (ctrlKey && e.key === 'z') {\n e.preventDefault()\n if (canUndo) handleUndo()\n }\n // redo\n if (\n (ctrlKey && e.key === 'y') ||\n (ctrlKey && e.shiftKey && e.key === 'z') ||\n (ctrlKey && e.key === 'Z')\n ) {\n e.preventDefault()\n if (canRedo) handleRedo()\n }\n // clear\n if ((e.key === 'Backspace' && !(e.ctrlKey || e.metaKey)) || e.key === 'Delete') {\n // check we have cells selected\n if (!selectedCells.size) return\n e.preventDefault()\n\n // find selected cells elements\n const selectedCellElements = Array.from(selectedCells).map((cellId) =>\n document.getElementById(cellId),\n )\n\n // check the cell is editable from the classnames\n const isEditable = (cell: HTMLElement | null) => cell?.classList.contains('editable')\n\n // filter out non-editable cells\n const editableCells = selectedCellElements.filter(isEditable)\n if (editableCells.length === 0) {\n toast.warn('No editable cells selected to clear')\n return\n }\n // clear the selected cells\n handleClear(editableCells.map((cell) => cell?.id).filter(Boolean) as CellId[])\n }\n }\n\n document.addEventListener('keydown', onKeyDown)\n return () => document.removeEventListener('keydown', onKeyDown)\n }, [canUndo, canRedo, handleUndo, handleRedo, selectedCells, handleClear])\n\n return <CellEditingContext.Provider value={value}>{children}</CellEditingContext.Provider>\n}\n"],"names":["CellEditingProvider","children","editingCellId","setEditingCellIdRaw","useState","editingDraftRef","useRef","getEditingDraft","useCallback","setEditingDraft","value","setEditingCellId","id","isEditing","history","useHistory","pushHistory","undoHistory","redoHistory","canUndo","canRedo","removeHistoryEntries","selectedCells","useSelectionCellsContext","updateOverviewEntities","inheritFromParent","useUpdateTableData","attribFields","getEntityById","useProjectTableContext","projectName","useProjectContext","updateSubtasks","useUpdateSubtasksMutation","handleUpdateEntities","entities","pushToHistory","validateUpdateEntities","error","toast","handleUndo","entitiesToUndo","entitiesToInherit","callbacks","callback","handleRedo","entitiesToRedo","handleClear","cells","entityUpdates","entityInheriting","subtasksToClear","cellId","colId","rowId","parseCellId","entity","fieldName","isAttrib","existingSubtasks","defaultValue","attribField","f","existingInherit","e","getTypeDefaultValue","update","taskId","previousSubtasks","prev","subtasksPromises","useMemo","useEffect","onKeyDown","target","ctrlKey","selectedCellElements","isEditable","cell","editableCells","jsx","CellEditingContext"],"mappings":"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"}
@@ -208,7 +208,7 @@ import "../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled
208
208
  import "../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js";
209
209
  import "../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js";
210
210
  import "../../Feed/Feed.styled.es.js";
211
- import "../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
211
+ import "../../Feed/components/FeedSearchFilter.es.js";
212
212
  import "@tanstack/react-virtual";
213
213
  import "../ProjectTreeTable.styled.es.js";
214
214
  import "../components/HeaderActionButton.es.js";
@@ -238,6 +238,8 @@ import "../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styl
238
238
  import "../../../components/PlayableIcon/PlayableIcon.es.js";
239
239
  import "../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js";
240
240
  import "../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js";
241
+ import "../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
242
+ import "../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js";
241
243
  import "../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.es.js";
242
244
  import "../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.es.js";
243
245
  import "../../Actions/Actions.styled.es.js";
@@ -270,6 +272,7 @@ import "../../../components/ProjectTableSettings/ProjectTableSettings.es.js";
270
272
  import "../../../components/SizeSlider/SizeSlider.es.js";
271
273
  import "../../../components/ReviewableCard/ReviewableCard.es.js";
272
274
  import "../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.es.js";
275
+ import "../../../components/SearchFilter/CustomDateRangeDialog.es.js";
273
276
  import "../../../components/SettingsPanel/SettingsPanel.es.js";
274
277
  import "../../../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
275
278
  import "../../../components/ShareOptionIcon/ShareOptionIcon.es.js";
@@ -289,7 +292,7 @@ import "../../../components/ColumnHeaderMenuUI.es.js";
289
292
  import "../widgets/EmptyWidget.es.js";
290
293
  import "../widgets/ErrorWidget.es.js";
291
294
  import "../widgets/LoadMoreWidget.es.js";
292
- const xp = ({ children: M }) => {
295
+ const Up = ({ children: M }) => {
293
296
  const [y, S] = W(null), w = X(null), D = d(() => w.current, []), U = d((o) => {
294
297
  w.current = o;
295
298
  }, []), _ = d((o) => {
@@ -499,6 +502,6 @@ const xp = ({ children: M }) => {
499
502
  }, [N, R, E, C, F, K]), /* @__PURE__ */ O.jsx(Y.Provider, { value: $, children: M });
500
503
  };
501
504
  export {
502
- xp as CellEditingProvider
505
+ Up as CellEditingProvider
503
506
  };
504
507
  //# sourceMappingURL=CellEditingProvider.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CellEditingProvider.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/CellEditingProvider.tsx"],"sourcesContent":["import { ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { CellId, getTypeDefaultValue, parseCellId } from '../utils'\nimport useHistory from '../hooks/useHistory'\nimport { useSelectionCellsContext } from './SelectionCellsContext'\nimport useUpdateTableData, {\n EntityUpdate,\n InheritFromParentEntity,\n UpdateTableEntities,\n} from '../hooks/useUpdateTableData'\nimport { useProjectTableContext } from './ProjectTableContext'\nimport { useProjectContext } from '@shared/context'\nimport { useUpdateSubtasksMutation } from '@shared/api'\nimport validateUpdateEntities from '../utils/validateUpdateEntities'\nimport { toast } from 'react-toastify'\nimport { CellEditingContext } from './CellEditingContext'\n\nexport const CellEditingProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n const [editingCellId, setEditingCellIdRaw] = useState<CellId | null>(null)\n\n // Ref-based draft storage to persist editing content across unmount/remount cycles\n const editingDraftRef = useRef<string | null>(null)\n const getEditingDraft = useCallback(() => editingDraftRef.current, [])\n const setEditingDraft = useCallback((value: string | null) => {\n editingDraftRef.current = value\n }, [])\n\n // Wrap setEditingCellId to clear draft synchronously (before next render reads it)\n const setEditingCellId = useCallback((id: CellId | null) => {\n editingDraftRef.current = null\n setEditingCellIdRaw(id)\n }, [])\n\n // Memoize these functions to prevent unnecessary re-renders\n const isEditing = useCallback((id: CellId) => id === editingCellId, [editingCellId])\n\n // Get history functions\n const history = useHistory()\n const {\n pushHistory,\n undo: undoHistory,\n redo: redoHistory,\n canUndo,\n canRedo,\n removeHistoryEntries,\n } = history\n\n const { selectedCells } = useSelectionCellsContext()\n const { updateEntities: updateOverviewEntities, inheritFromParent } = useUpdateTableData({\n pushHistory,\n removeHistoryEntries,\n })\n const { attribFields, getEntityById } = useProjectTableContext()\n const { projectName } = useProjectContext()\n const [updateSubtasks] = useUpdateSubtasksMutation()\n\n const handleUpdateEntities: UpdateTableEntities = useCallback(\n async (entities = [], pushToHistory = true) => {\n try {\n // validate the entities before updating\n validateUpdateEntities(entities, attribFields)\n\n // if validation passes, update the entities\n return await updateOverviewEntities(entities, pushToHistory)\n } catch (error: any) {\n // if validation fails, show a toast and return\n toast.error(error.message)\n\n return Promise.reject(error)\n }\n },\n [updateOverviewEntities, attribFields],\n )\n\n // Handle undo\n const handleUndo = async () => {\n const [entitiesToUndo, entitiesToInherit, callbacks] = undoHistory() || []\n\n if (entitiesToUndo && entitiesToUndo.length > 0) {\n try {\n await handleUpdateEntities(entitiesToUndo, false)\n } catch (error) {\n toast.error('Failed to undo changes')\n }\n }\n if (entitiesToInherit && entitiesToInherit.length > 0) {\n try {\n await inheritFromParent(entitiesToInherit, false)\n } catch (error) {\n toast.error('Failed to inherit changes')\n }\n }\n // Execute custom callbacks if any\n if (callbacks && callbacks.length > 0) {\n callbacks.forEach((callback) => {\n try {\n callback()\n } catch (error) {\n toast.error('Failed to execute custom undo action')\n }\n })\n }\n }\n\n // Handle redo\n const handleRedo = async () => {\n const [entitiesToRedo, entitiesToInherit, callbacks] = redoHistory() || []\n\n if (entitiesToRedo && entitiesToRedo.length > 0) {\n try {\n await handleUpdateEntities(entitiesToRedo, false)\n } catch (error) {\n toast.error('Failed to redo changes')\n }\n }\n if (entitiesToInherit && entitiesToInherit.length > 0) {\n try {\n await inheritFromParent(entitiesToInherit, false)\n } catch (error) {\n toast.error('Failed to inherit changes')\n }\n }\n // Execute custom callbacks if any\n if (callbacks && callbacks.length > 0) {\n callbacks.forEach((callback) => {\n try {\n callback()\n } catch (error) {\n toast.error('Failed to execute custom redo action')\n }\n })\n }\n }\n\n // Handle clearing cells\n const handleClear = useCallback(\n async (cells: CellId[]) => {\n // we explicity update the value of the cells to their default values\n const entityUpdates: EntityUpdate[] = []\n // of if they are inheritable, we inherit from the parent entity\n const entityInheriting: InheritFromParentEntity[] = []\n // Track subtasks to clear (include previous subtasks for history)\n const subtasksToClear: Array<{ taskId: string; previousSubtasks?: any[] }> = []\n\n for (const cellId of cells) {\n const { colId, rowId } = parseCellId(cellId) || {}\n if (!colId || !rowId) {\n console.warn(`Invalid cellId: ${cellId}`)\n continue\n }\n\n // get the entity from the rowId\n const entity = getEntityById(rowId)\n\n if (!entity) return\n\n // get the field name and check if it is an attribute\n const fieldName = colId.replace('attrib_', '')\n const isAttrib = colId.startsWith('attrib_')\n\n if (!fieldName) {\n console.warn(`Invalid column ID: ${colId}`)\n continue\n }\n\n // Special handling for subtasks\n if (colId === 'subtasks') {\n // Only clear subtasks for tasks\n if (entity.entityType === 'task') {\n const existingSubtasks = ('subtasks' in entity && entity.subtasks) || []\n subtasksToClear.push({ taskId: rowId, previousSubtasks: existingSubtasks })\n }\n continue\n }\n\n let defaultValue: any = null\n if (isAttrib) {\n // find default value for the attribute\n const attribField = attribFields.find((f) => f.name === fieldName)\n if (!attribField) {\n console.warn(`Attribute field not found: ${fieldName}`)\n continue\n }\n // check if the attribute is inheritable\n if (attribField.data.inherit) {\n // inherit from parent entity\n // check if this entity has already been added to the inheriting list\n const existingInherit = entityInheriting.find((e) => e.entityId === entity.entityId)\n if (existingInherit) {\n // add the attrib to the existing entity\n existingInherit.attribs.push(fieldName)\n } else {\n // add a new entity to the inheriting list\n entityInheriting.push({\n entityId: entity.entityId,\n attribs: [fieldName],\n entityType: entity.entityType,\n ownAttrib: entity.ownAttrib || [],\n rowId: rowId,\n folderId:\n entity.entityType === 'folder'\n ? entity.parentId\n : entity.entityType === 'task'\n ? entity.folderId\n : undefined,\n })\n }\n continue\n } else {\n // set explicit default value\n defaultValue = attribField.data.default || getTypeDefaultValue(attribField.data.type)\n }\n } else if (fieldName === 'assignees') {\n // for assignees, we set it to an empty array\n defaultValue = getTypeDefaultValue('list_of_strings')\n } else if (fieldName === 'tags') {\n // for tags, we set it to an empty array\n defaultValue = getTypeDefaultValue('list_of_strings')\n } else {\n // we ignore other fields\n console.warn(`Field not editable: ${fieldName}`)\n continue\n }\n\n // create the entity update\n const update: EntityUpdate = {\n id: rowId,\n rowId: rowId,\n field: fieldName,\n value: defaultValue,\n isAttrib,\n type: entity.entityType,\n }\n\n entityUpdates.push(update)\n }\n\n // if we have updates, call the updateEntities function\n if (entityUpdates.length > 0) {\n try {\n await handleUpdateEntities(entityUpdates, true)\n } catch (error) {\n toast.error('Failed to clear selected cells')\n console.error('Error clearing selected cells:', error)\n }\n }\n\n // if we have inheritable attributes, call inheritFromParent\n if (entityInheriting.length > 0) {\n try {\n await inheritFromParent(entityInheriting, true)\n } catch (error) {\n toast.error('Failed to inherit parent values for cleared cells')\n console.error('Error clearing inherited cells:', error)\n }\n }\n\n // Clear subtasks by calling updateSubtasks with empty array\n if (subtasksToClear.length > 0) {\n try {\n // push undo/redo history entries for clearing subtasks\n if (pushHistory) {\n subtasksToClear.forEach(({ taskId, previousSubtasks }) => {\n const prev = previousSubtasks || []\n const undoCallback = () => {\n updateSubtasks({ projectName, taskId, subtasks: prev })\n .unwrap()\n .catch(() => {})\n }\n const redoCallback = () => {\n updateSubtasks({ projectName, taskId, subtasks: [] })\n .unwrap()\n .catch(() => {})\n }\n pushHistory([undoCallback], [redoCallback])\n })\n }\n\n const subtasksPromises = subtasksToClear.map(({ taskId }) =>\n updateSubtasks({ projectName, taskId, subtasks: [] }).unwrap(),\n )\n await Promise.all(subtasksPromises)\n } catch (error) {\n toast.error('Failed to clear subtasks')\n console.error('Error clearing subtasks:', error)\n }\n }\n\n // if nothing was done, warn the user\n if (\n entityUpdates.length === 0 &&\n entityInheriting.length === 0 &&\n subtasksToClear.length === 0\n ) {\n toast.warn('No valid cells selected to clear')\n }\n },\n [attribFields, updateOverviewEntities, projectName, updateSubtasks, pushHistory, getEntityById],\n )\n\n const value = useMemo(\n () => ({\n editingCellId,\n setEditingCellId,\n isEditing,\n updateEntities: handleUpdateEntities,\n inheritFromParent,\n undo: handleUndo,\n redo: handleRedo,\n history,\n getEditingDraft,\n setEditingDraft,\n }),\n [\n editingCellId,\n isEditing,\n handleUpdateEntities,\n inheritFromParent,\n handleUndo,\n handleRedo,\n history,\n getEditingDraft,\n setEditingDraft,\n ],\n )\n\n // Listen for shortcuts\n // undo - ctrl + z\n // redo - ctrl + y or ctrl + shift + z\n // clear - backspace or delete\n useEffect(() => {\n const onKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n if (\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.isContentEditable ||\n target.getAttribute('role') === 'textbox' ||\n target.tagName === 'LI'\n ) {\n return\n }\n\n // check focus is on table or body\n const isTableFocused = target?.closest('table') !== null || target === document.body\n\n if (!isTableFocused) return\n\n const isMac =\n typeof navigator !== 'undefined' &&\n // @ts-expect-error\n ((navigator.userAgentData &&\n // @ts-expect-error\n navigator.userAgentData.platform.toUpperCase().includes('MAC')) ||\n navigator.userAgent.toUpperCase().includes('MAC'))\n const ctrlKey = isMac ? e.metaKey : e.ctrlKey\n\n // undo\n if (ctrlKey && e.key === 'z') {\n e.preventDefault()\n if (canUndo) handleUndo()\n }\n // redo\n if (\n (ctrlKey && e.key === 'y') ||\n (ctrlKey && e.shiftKey && e.key === 'z') ||\n (ctrlKey && e.key === 'Z')\n ) {\n e.preventDefault()\n if (canRedo) handleRedo()\n }\n // clear\n if ((e.key === 'Backspace' && !(e.ctrlKey || e.metaKey)) || e.key === 'Delete') {\n // check we have cells selected\n if (!selectedCells.size) return\n e.preventDefault()\n\n // find selected cells elements\n const selectedCellElements = Array.from(selectedCells).map((cellId) =>\n document.getElementById(cellId),\n )\n\n // check the cell is editable from the classnames\n const isEditable = (cell: HTMLElement | null) => cell?.classList.contains('editable')\n\n // filter out non-editable cells\n const editableCells = selectedCellElements.filter(isEditable)\n if (editableCells.length === 0) {\n toast.warn('No editable cells selected to clear')\n return\n }\n // clear the selected cells\n handleClear(editableCells.map((cell) => cell?.id).filter(Boolean) as CellId[])\n }\n }\n\n document.addEventListener('keydown', onKeyDown)\n return () => document.removeEventListener('keydown', onKeyDown)\n }, [canUndo, canRedo, handleUndo, handleRedo, selectedCells, handleClear])\n\n return <CellEditingContext.Provider value={value}>{children}</CellEditingContext.Provider>\n}\n"],"names":["CellEditingProvider","children","editingCellId","setEditingCellIdRaw","useState","editingDraftRef","useRef","getEditingDraft","useCallback","setEditingDraft","value","setEditingCellId","id","isEditing","history","useHistory","pushHistory","undoHistory","redoHistory","canUndo","canRedo","removeHistoryEntries","selectedCells","useSelectionCellsContext","updateOverviewEntities","inheritFromParent","useUpdateTableData","attribFields","getEntityById","useProjectTableContext","projectName","useProjectContext","updateSubtasks","useUpdateSubtasksMutation","handleUpdateEntities","entities","pushToHistory","validateUpdateEntities","error","toast","handleUndo","entitiesToUndo","entitiesToInherit","callbacks","callback","handleRedo","entitiesToRedo","handleClear","cells","entityUpdates","entityInheriting","subtasksToClear","cellId","colId","rowId","parseCellId","entity","fieldName","isAttrib","existingSubtasks","defaultValue","attribField","f","existingInherit","e","getTypeDefaultValue","update","taskId","previousSubtasks","prev","subtasksPromises","useMemo","useEffect","onKeyDown","target","ctrlKey","selectedCellElements","isEditable","cell","editableCells","jsx","CellEditingContext"],"mappings":"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"}
1
+ {"version":3,"file":"CellEditingProvider.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/CellEditingProvider.tsx"],"sourcesContent":["import { ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { CellId, getTypeDefaultValue, parseCellId } from '../utils'\nimport useHistory from '../hooks/useHistory'\nimport { useSelectionCellsContext } from './SelectionCellsContext'\nimport useUpdateTableData, {\n EntityUpdate,\n InheritFromParentEntity,\n UpdateTableEntities,\n} from '../hooks/useUpdateTableData'\nimport { useProjectTableContext } from './ProjectTableContext'\nimport { useProjectContext } from '@shared/context'\nimport { useUpdateSubtasksMutation } from '@shared/api'\nimport validateUpdateEntities from '../utils/validateUpdateEntities'\nimport { toast } from 'react-toastify'\nimport { CellEditingContext } from './CellEditingContext'\n\nexport const CellEditingProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n const [editingCellId, setEditingCellIdRaw] = useState<CellId | null>(null)\n\n // Ref-based draft storage to persist editing content across unmount/remount cycles\n const editingDraftRef = useRef<string | null>(null)\n const getEditingDraft = useCallback(() => editingDraftRef.current, [])\n const setEditingDraft = useCallback((value: string | null) => {\n editingDraftRef.current = value\n }, [])\n\n // Wrap setEditingCellId to clear draft synchronously (before next render reads it)\n const setEditingCellId = useCallback((id: CellId | null) => {\n editingDraftRef.current = null\n setEditingCellIdRaw(id)\n }, [])\n\n // Memoize these functions to prevent unnecessary re-renders\n const isEditing = useCallback((id: CellId) => id === editingCellId, [editingCellId])\n\n // Get history functions\n const history = useHistory()\n const {\n pushHistory,\n undo: undoHistory,\n redo: redoHistory,\n canUndo,\n canRedo,\n removeHistoryEntries,\n } = history\n\n const { selectedCells } = useSelectionCellsContext()\n const { updateEntities: updateOverviewEntities, inheritFromParent } = useUpdateTableData({\n pushHistory,\n removeHistoryEntries,\n })\n const { attribFields, getEntityById } = useProjectTableContext()\n const { projectName } = useProjectContext()\n const [updateSubtasks] = useUpdateSubtasksMutation()\n\n const handleUpdateEntities: UpdateTableEntities = useCallback(\n async (entities = [], pushToHistory = true) => {\n try {\n // validate the entities before updating\n validateUpdateEntities(entities, attribFields)\n\n // if validation passes, update the entities\n return await updateOverviewEntities(entities, pushToHistory)\n } catch (error: any) {\n // if validation fails, show a toast and return\n toast.error(error.message)\n\n return Promise.reject(error)\n }\n },\n [updateOverviewEntities, attribFields],\n )\n\n // Handle undo\n const handleUndo = async () => {\n const [entitiesToUndo, entitiesToInherit, callbacks] = undoHistory() || []\n\n if (entitiesToUndo && entitiesToUndo.length > 0) {\n try {\n await handleUpdateEntities(entitiesToUndo, false)\n } catch (error) {\n toast.error('Failed to undo changes')\n }\n }\n if (entitiesToInherit && entitiesToInherit.length > 0) {\n try {\n await inheritFromParent(entitiesToInherit, false)\n } catch (error) {\n toast.error('Failed to inherit changes')\n }\n }\n // Execute custom callbacks if any\n if (callbacks && callbacks.length > 0) {\n callbacks.forEach((callback) => {\n try {\n callback()\n } catch (error) {\n toast.error('Failed to execute custom undo action')\n }\n })\n }\n }\n\n // Handle redo\n const handleRedo = async () => {\n const [entitiesToRedo, entitiesToInherit, callbacks] = redoHistory() || []\n\n if (entitiesToRedo && entitiesToRedo.length > 0) {\n try {\n await handleUpdateEntities(entitiesToRedo, false)\n } catch (error) {\n toast.error('Failed to redo changes')\n }\n }\n if (entitiesToInherit && entitiesToInherit.length > 0) {\n try {\n await inheritFromParent(entitiesToInherit, false)\n } catch (error) {\n toast.error('Failed to inherit changes')\n }\n }\n // Execute custom callbacks if any\n if (callbacks && callbacks.length > 0) {\n callbacks.forEach((callback) => {\n try {\n callback()\n } catch (error) {\n toast.error('Failed to execute custom redo action')\n }\n })\n }\n }\n\n // Handle clearing cells\n const handleClear = useCallback(\n async (cells: CellId[]) => {\n // we explicity update the value of the cells to their default values\n const entityUpdates: EntityUpdate[] = []\n // of if they are inheritable, we inherit from the parent entity\n const entityInheriting: InheritFromParentEntity[] = []\n // Track subtasks to clear (include previous subtasks for history)\n const subtasksToClear: Array<{ taskId: string; previousSubtasks?: any[] }> = []\n\n for (const cellId of cells) {\n const { colId, rowId } = parseCellId(cellId) || {}\n if (!colId || !rowId) {\n console.warn(`Invalid cellId: ${cellId}`)\n continue\n }\n\n // get the entity from the rowId\n const entity = getEntityById(rowId)\n\n if (!entity) return\n\n // get the field name and check if it is an attribute\n const fieldName = colId.replace('attrib_', '')\n const isAttrib = colId.startsWith('attrib_')\n\n if (!fieldName) {\n console.warn(`Invalid column ID: ${colId}`)\n continue\n }\n\n // Special handling for subtasks\n if (colId === 'subtasks') {\n // Only clear subtasks for tasks\n if (entity.entityType === 'task') {\n const existingSubtasks = ('subtasks' in entity && entity.subtasks) || []\n subtasksToClear.push({ taskId: rowId, previousSubtasks: existingSubtasks })\n }\n continue\n }\n\n let defaultValue: any = null\n if (isAttrib) {\n // find default value for the attribute\n const attribField = attribFields.find((f) => f.name === fieldName)\n if (!attribField) {\n console.warn(`Attribute field not found: ${fieldName}`)\n continue\n }\n // check if the attribute is inheritable\n if (attribField.data.inherit) {\n // inherit from parent entity\n // check if this entity has already been added to the inheriting list\n const existingInherit = entityInheriting.find((e) => e.entityId === entity.entityId)\n if (existingInherit) {\n // add the attrib to the existing entity\n existingInherit.attribs.push(fieldName)\n } else {\n // add a new entity to the inheriting list\n entityInheriting.push({\n entityId: entity.entityId,\n attribs: [fieldName],\n entityType: entity.entityType,\n ownAttrib: entity.ownAttrib || [],\n rowId: rowId,\n folderId:\n entity.entityType === 'folder'\n ? entity.parentId\n : entity.entityType === 'task'\n ? entity.folderId\n : undefined,\n })\n }\n continue\n } else {\n // set explicit default value\n defaultValue = attribField.data.default || getTypeDefaultValue(attribField.data.type)\n }\n } else if (fieldName === 'assignees') {\n // for assignees, we set it to an empty array\n defaultValue = getTypeDefaultValue('list_of_strings')\n } else if (fieldName === 'tags') {\n // for tags, we set it to an empty array\n defaultValue = getTypeDefaultValue('list_of_strings')\n } else {\n // we ignore other fields\n console.warn(`Field not editable: ${fieldName}`)\n continue\n }\n\n // create the entity update\n const update: EntityUpdate = {\n id: rowId,\n rowId: rowId,\n field: fieldName,\n value: defaultValue,\n isAttrib,\n type: entity.entityType,\n }\n\n entityUpdates.push(update)\n }\n\n // if we have updates, call the updateEntities function\n if (entityUpdates.length > 0) {\n try {\n await handleUpdateEntities(entityUpdates, true)\n } catch (error) {\n toast.error('Failed to clear selected cells')\n console.error('Error clearing selected cells:', error)\n }\n }\n\n // if we have inheritable attributes, call inheritFromParent\n if (entityInheriting.length > 0) {\n try {\n await inheritFromParent(entityInheriting, true)\n } catch (error) {\n toast.error('Failed to inherit parent values for cleared cells')\n console.error('Error clearing inherited cells:', error)\n }\n }\n\n // Clear subtasks by calling updateSubtasks with empty array\n if (subtasksToClear.length > 0) {\n try {\n // push undo/redo history entries for clearing subtasks\n if (pushHistory) {\n subtasksToClear.forEach(({ taskId, previousSubtasks }) => {\n const prev = previousSubtasks || []\n const undoCallback = () => {\n updateSubtasks({ projectName, taskId, subtasks: prev })\n .unwrap()\n .catch(() => {})\n }\n const redoCallback = () => {\n updateSubtasks({ projectName, taskId, subtasks: [] })\n .unwrap()\n .catch(() => {})\n }\n pushHistory([undoCallback], [redoCallback])\n })\n }\n\n const subtasksPromises = subtasksToClear.map(({ taskId }) =>\n updateSubtasks({ projectName, taskId, subtasks: [] }).unwrap(),\n )\n await Promise.all(subtasksPromises)\n } catch (error) {\n toast.error('Failed to clear subtasks')\n console.error('Error clearing subtasks:', error)\n }\n }\n\n // if nothing was done, warn the user\n if (\n entityUpdates.length === 0 &&\n entityInheriting.length === 0 &&\n subtasksToClear.length === 0\n ) {\n toast.warn('No valid cells selected to clear')\n }\n },\n [attribFields, updateOverviewEntities, projectName, updateSubtasks, pushHistory, getEntityById],\n )\n\n const value = useMemo(\n () => ({\n editingCellId,\n setEditingCellId,\n isEditing,\n updateEntities: handleUpdateEntities,\n inheritFromParent,\n undo: handleUndo,\n redo: handleRedo,\n history,\n getEditingDraft,\n setEditingDraft,\n }),\n [\n editingCellId,\n isEditing,\n handleUpdateEntities,\n inheritFromParent,\n handleUndo,\n handleRedo,\n history,\n getEditingDraft,\n setEditingDraft,\n ],\n )\n\n // Listen for shortcuts\n // undo - ctrl + z\n // redo - ctrl + y or ctrl + shift + z\n // clear - backspace or delete\n useEffect(() => {\n const onKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n if (\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.isContentEditable ||\n target.getAttribute('role') === 'textbox' ||\n target.tagName === 'LI'\n ) {\n return\n }\n\n // check focus is on table or body\n const isTableFocused = target?.closest('table') !== null || target === document.body\n\n if (!isTableFocused) return\n\n const isMac =\n typeof navigator !== 'undefined' &&\n // @ts-expect-error\n ((navigator.userAgentData &&\n // @ts-expect-error\n navigator.userAgentData.platform.toUpperCase().includes('MAC')) ||\n navigator.userAgent.toUpperCase().includes('MAC'))\n const ctrlKey = isMac ? e.metaKey : e.ctrlKey\n\n // undo\n if (ctrlKey && e.key === 'z') {\n e.preventDefault()\n if (canUndo) handleUndo()\n }\n // redo\n if (\n (ctrlKey && e.key === 'y') ||\n (ctrlKey && e.shiftKey && e.key === 'z') ||\n (ctrlKey && e.key === 'Z')\n ) {\n e.preventDefault()\n if (canRedo) handleRedo()\n }\n // clear\n if ((e.key === 'Backspace' && !(e.ctrlKey || e.metaKey)) || e.key === 'Delete') {\n // check we have cells selected\n if (!selectedCells.size) return\n e.preventDefault()\n\n // find selected cells elements\n const selectedCellElements = Array.from(selectedCells).map((cellId) =>\n document.getElementById(cellId),\n )\n\n // check the cell is editable from the classnames\n const isEditable = (cell: HTMLElement | null) => cell?.classList.contains('editable')\n\n // filter out non-editable cells\n const editableCells = selectedCellElements.filter(isEditable)\n if (editableCells.length === 0) {\n toast.warn('No editable cells selected to clear')\n return\n }\n // clear the selected cells\n handleClear(editableCells.map((cell) => cell?.id).filter(Boolean) as CellId[])\n }\n }\n\n document.addEventListener('keydown', onKeyDown)\n return () => document.removeEventListener('keydown', onKeyDown)\n }, [canUndo, canRedo, handleUndo, handleRedo, selectedCells, handleClear])\n\n return <CellEditingContext.Provider value={value}>{children}</CellEditingContext.Provider>\n}\n"],"names":["CellEditingProvider","children","editingCellId","setEditingCellIdRaw","useState","editingDraftRef","useRef","getEditingDraft","useCallback","setEditingDraft","value","setEditingCellId","id","isEditing","history","useHistory","pushHistory","undoHistory","redoHistory","canUndo","canRedo","removeHistoryEntries","selectedCells","useSelectionCellsContext","updateOverviewEntities","inheritFromParent","useUpdateTableData","attribFields","getEntityById","useProjectTableContext","projectName","useProjectContext","updateSubtasks","useUpdateSubtasksMutation","handleUpdateEntities","entities","pushToHistory","validateUpdateEntities","error","toast","handleUndo","entitiesToUndo","entitiesToInherit","callbacks","callback","handleRedo","entitiesToRedo","handleClear","cells","entityUpdates","entityInheriting","subtasksToClear","cellId","colId","rowId","parseCellId","entity","fieldName","isAttrib","existingSubtasks","defaultValue","attribField","f","existingInherit","e","getTypeDefaultValue","update","taskId","previousSubtasks","prev","subtasksPromises","useMemo","useEffect","onKeyDown","target","ctrlKey","selectedCellElements","isEditable","cell","editableCells","jsx","CellEditingContext"],"mappings":"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"}