@ynput/ayon-frontend-shared 0.2.13 → 0.2.15

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 (382) hide show
  1. package/dist/DetailsPanel.cjs.js +8 -0
  2. package/dist/DetailsPanel.cjs.js.map +1 -1
  3. package/dist/DetailsPanel.es.js +8 -0
  4. package/dist/DetailsPanel.es.js.map +1 -1
  5. package/dist/ProjectTreeTable.cjs.js +5 -0
  6. package/dist/ProjectTreeTable.cjs.js.map +1 -1
  7. package/dist/ProjectTreeTable.es.js +5 -0
  8. package/dist/ProjectTreeTable.es.js.map +1 -1
  9. package/dist/Slicer.cjs.js +2 -0
  10. package/dist/Slicer.cjs.js.map +1 -1
  11. package/dist/Slicer.es.js +3 -1
  12. package/dist/Slicer.es.js.map +1 -1
  13. package/dist/_virtual/index.cjs10.js +3 -5
  14. package/dist/_virtual/index.cjs10.js.map +1 -1
  15. package/dist/_virtual/index.cjs7.js +5 -3
  16. package/dist/_virtual/index.cjs7.js.map +1 -1
  17. package/dist/_virtual/index.cjs8.js +4 -4
  18. package/dist/_virtual/index.cjs9.js +4 -4
  19. package/dist/_virtual/index.es10.js +2 -5
  20. package/dist/_virtual/index.es10.js.map +1 -1
  21. package/dist/_virtual/index.es7.js +5 -2
  22. package/dist/_virtual/index.es7.js.map +1 -1
  23. package/dist/_virtual/index.es8.js +4 -4
  24. package/dist/_virtual/index.es9.js +4 -4
  25. package/dist/api.cjs.js +2 -0
  26. package/dist/api.cjs.js.map +1 -1
  27. package/dist/api.es.js +3 -1
  28. package/dist/components.cjs.js +15 -0
  29. package/dist/components.cjs.js.map +1 -1
  30. package/dist/components.es.js +16 -1
  31. package/dist/components.es.js.map +1 -1
  32. package/dist/context.cjs.js +4 -0
  33. package/dist/context.cjs.js.map +1 -1
  34. package/dist/context.es.js +4 -0
  35. package/dist/context.es.js.map +1 -1
  36. package/dist/index.cjs.js +8 -0
  37. package/dist/index.cjs.js.map +1 -1
  38. package/dist/index.es.js +8 -0
  39. package/dist/index.es.js.map +1 -1
  40. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +2 -2
  41. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  42. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  43. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  44. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  45. package/dist/node_modules/remove-accents/index.es.js +1 -1
  46. package/dist/node_modules/vfile/lib/index.cjs.js +1 -1
  47. package/dist/node_modules/vfile/lib/index.es.js +1 -1
  48. package/dist/shared/src/api/generated/actions.cjs.js.map +1 -1
  49. package/dist/shared/src/api/generated/actions.es.js.map +1 -1
  50. package/dist/shared/src/api/generated/addons.cjs.js.map +1 -1
  51. package/dist/shared/src/api/generated/addons.es.js.map +1 -1
  52. package/dist/shared/src/api/generated/anatomy.cjs.js.map +1 -1
  53. package/dist/shared/src/api/generated/anatomy.es.js.map +1 -1
  54. package/dist/shared/src/api/generated/attributes.cjs.js.map +1 -1
  55. package/dist/shared/src/api/generated/attributes.es.js.map +1 -1
  56. package/dist/shared/src/api/generated/configuration.cjs.js.map +1 -1
  57. package/dist/shared/src/api/generated/configuration.es.js.map +1 -1
  58. package/dist/shared/src/api/generated/entityLists.cjs.js.map +1 -1
  59. package/dist/shared/src/api/generated/entityLists.es.js.map +1 -1
  60. package/dist/shared/src/api/generated/events.cjs.js.map +1 -1
  61. package/dist/shared/src/api/generated/events.es.js.map +1 -1
  62. package/dist/shared/src/api/generated/files.cjs.js +5 -0
  63. package/dist/shared/src/api/generated/files.cjs.js.map +1 -1
  64. package/dist/shared/src/api/generated/files.es.js +5 -0
  65. package/dist/shared/src/api/generated/files.es.js.map +1 -1
  66. package/dist/shared/src/api/generated/operations.cjs.js.map +1 -1
  67. package/dist/shared/src/api/generated/operations.es.js.map +1 -1
  68. package/dist/shared/src/api/generated/projects.cjs.js +16 -0
  69. package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
  70. package/dist/shared/src/api/generated/projects.es.js +16 -0
  71. package/dist/shared/src/api/generated/projects.es.js.map +1 -1
  72. package/dist/shared/src/api/generated/reviewables.cjs.js.map +1 -1
  73. package/dist/shared/src/api/generated/reviewables.es.js.map +1 -1
  74. package/dist/shared/src/api/generated/system.cjs.js.map +1 -1
  75. package/dist/shared/src/api/generated/system.es.js.map +1 -1
  76. package/dist/shared/src/api/generated/tasks.cjs.js +8 -0
  77. package/dist/shared/src/api/generated/tasks.cjs.js.map +1 -1
  78. package/dist/shared/src/api/generated/tasks.es.js +8 -0
  79. package/dist/shared/src/api/generated/tasks.es.js.map +1 -1
  80. package/dist/shared/src/api/generated/users.cjs.js.map +1 -1
  81. package/dist/shared/src/api/generated/users.es.js.map +1 -1
  82. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +66 -4
  83. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  84. package/dist/shared/src/api/queries/overview/getOverview.es.js +66 -4
  85. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  86. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -0
  87. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  88. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +1 -0
  89. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  90. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js +8 -0
  91. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js.map +1 -1
  92. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js +8 -0
  93. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js.map +1 -1
  94. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +69 -0
  95. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -0
  96. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +69 -0
  97. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -0
  98. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +48 -0
  99. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -0
  100. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +48 -0
  101. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -0
  102. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js +102 -0
  103. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js.map +1 -0
  104. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js +102 -0
  105. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js.map +1 -0
  106. package/dist/shared/src/components/Powerpack/PricingLink.cjs.js +13 -0
  107. package/dist/shared/src/components/Powerpack/PricingLink.cjs.js.map +1 -0
  108. package/dist/shared/src/components/Powerpack/PricingLink.es.js +13 -0
  109. package/dist/shared/src/components/Powerpack/PricingLink.es.js.map +1 -0
  110. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +4 -10
  111. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  112. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +1 -7
  113. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  114. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +5 -1
  115. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  116. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +5 -1
  117. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  118. package/dist/shared/src/components/ProjectTableSettings/TableSettings.styled.cjs.js +13 -0
  119. package/dist/shared/src/components/ProjectTableSettings/TableSettings.styled.cjs.js.map +1 -0
  120. package/dist/shared/src/components/ProjectTableSettings/TableSettings.styled.es.js +13 -0
  121. package/dist/shared/src/components/ProjectTableSettings/TableSettings.styled.es.js.map +1 -0
  122. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +50 -0
  123. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -0
  124. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +50 -0
  125. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -0
  126. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +8 -0
  127. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  128. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +8 -0
  129. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  130. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +8 -0
  131. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  132. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +8 -0
  133. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  134. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +8 -0
  135. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  136. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +8 -0
  137. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  138. package/dist/shared/src/components/SearchFilter/filterDates.cjs.js +167 -0
  139. package/dist/shared/src/components/SearchFilter/filterDates.cjs.js.map +1 -0
  140. package/dist/shared/src/components/SearchFilter/filterDates.es.js +167 -0
  141. package/dist/shared/src/components/SearchFilter/filterDates.es.js.map +1 -0
  142. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +547 -0
  143. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -0
  144. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +547 -0
  145. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -0
  146. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +6 -2
  147. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  148. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +6 -2
  149. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  150. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +19 -3
  151. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  152. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +20 -4
  153. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  154. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -0
  155. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  156. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +1 -0
  157. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  158. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +8 -0
  159. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  160. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +8 -0
  161. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  162. package/dist/shared/src/containers/Actions/Actions.cjs.js +2 -0
  163. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  164. package/dist/shared/src/containers/Actions/Actions.es.js +2 -0
  165. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  166. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +8 -0
  167. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  168. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +8 -0
  169. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  170. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +8 -0
  171. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  172. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +8 -0
  173. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  174. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +8 -0
  175. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  176. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +8 -0
  177. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  178. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +8 -0
  179. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  180. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +8 -0
  181. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  182. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +9 -1
  183. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  184. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +9 -1
  185. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  186. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -0
  187. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  188. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +1 -0
  189. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  190. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -0
  191. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
  192. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +1 -0
  193. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
  194. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -0
  195. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  196. package/dist/shared/src/containers/Feed/Feed.es.js +1 -0
  197. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  198. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +2 -1
  199. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  200. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +2 -1
  201. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  202. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -0
  203. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  204. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +1 -0
  205. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  206. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +5 -1
  207. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  208. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +5 -1
  209. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  210. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.cjs.js.map +1 -1
  211. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.es.js.map +1 -1
  212. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -0
  213. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  214. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +1 -0
  215. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  216. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +22 -11
  217. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  218. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +22 -11
  219. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  220. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js +6 -0
  221. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js.map +1 -1
  222. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.es.js +6 -0
  223. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.es.js.map +1 -1
  224. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.cjs.js +3 -3
  225. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.cjs.js.map +1 -1
  226. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.es.js +3 -3
  227. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.es.js.map +1 -1
  228. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -0
  229. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  230. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +1 -0
  231. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  232. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -0
  233. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  234. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +1 -0
  235. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  236. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.cjs.js +2 -1
  237. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.cjs.js.map +1 -1
  238. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.es.js +2 -1
  239. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.es.js.map +1 -1
  240. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +45 -16
  241. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  242. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +45 -16
  243. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  244. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +45 -7
  245. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  246. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +45 -7
  247. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  248. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +202 -0
  249. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -0
  250. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +202 -0
  251. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -0
  252. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +14 -6
  253. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  254. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +14 -6
  255. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  256. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js +11 -1
  257. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
  258. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js +11 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
  260. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +22 -2
  261. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  262. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +22 -2
  263. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  264. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.cjs.js +116 -0
  265. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.cjs.js.map +1 -0
  266. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.es.js +116 -0
  267. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.es.js.map +1 -0
  268. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js +1 -0
  269. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js.map +1 -1
  270. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js +1 -0
  271. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js.map +1 -1
  272. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  274. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  276. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +137 -0
  277. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -0
  278. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +137 -0
  279. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -0
  280. package/dist/shared/src/containers/ProjectTreeTable/hooks/{useOverviewTable.cjs.js → useBuildProjectDataTable.cjs.js} +3 -3
  281. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -0
  282. package/dist/shared/src/containers/ProjectTreeTable/hooks/{useOverviewTable.es.js → useBuildProjectDataTable.es.js} +3 -3
  283. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -0
  284. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +39 -19
  285. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  286. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +39 -19
  287. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  288. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js +108 -0
  289. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js.map +1 -0
  290. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js +108 -0
  291. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js.map +1 -0
  292. package/dist/shared/src/containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js +29 -0
  293. package/dist/shared/src/containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js.map +1 -0
  294. package/dist/shared/src/containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js +30 -0
  295. package/dist/shared/src/containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js.map +1 -0
  296. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +8 -0
  297. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  298. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +8 -0
  299. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  300. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.cjs.js +37 -0
  301. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.cjs.js.map +1 -0
  302. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.es.js +37 -0
  303. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.es.js.map +1 -0
  304. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -0
  305. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  306. package/dist/shared/src/context/DetailsPanelContext.es.js +1 -0
  307. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  308. package/dist/shared/src/context/PowerpackContext.cjs.js +65 -0
  309. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -0
  310. package/dist/shared/src/context/PowerpackContext.es.js +65 -0
  311. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -0
  312. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -0
  313. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  314. package/dist/shared/src/hooks/useEntityUpdate.es.js +1 -0
  315. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  316. package/dist/shared/src/util/getAttributeIcon.cjs.js +7 -1
  317. package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -1
  318. package/dist/shared/src/util/getAttributeIcon.es.js +7 -1
  319. package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -1
  320. package/dist/shared/src/util/getEntityTypeIcon.cjs.js +9 -0
  321. package/dist/shared/src/util/getEntityTypeIcon.cjs.js.map +1 -1
  322. package/dist/shared/src/util/getEntityTypeIcon.es.js +9 -0
  323. package/dist/shared/src/util/getEntityTypeIcon.es.js.map +1 -1
  324. package/dist/types/api/generated/actions.d.ts +3 -2
  325. package/dist/types/api/generated/addons.d.ts +8 -1
  326. package/dist/types/api/generated/anatomy.d.ts +1 -14
  327. package/dist/types/api/generated/attributes.d.ts +4 -2
  328. package/dist/types/api/generated/configuration.d.ts +6 -0
  329. package/dist/types/api/generated/entityLists.d.ts +2 -0
  330. package/dist/types/api/generated/events.d.ts +1 -1
  331. package/dist/types/api/generated/files.d.ts +11 -0
  332. package/dist/types/api/generated/operations.d.ts +1 -1
  333. package/dist/types/api/generated/projects.d.ts +59 -0
  334. package/dist/types/api/generated/reviewables.d.ts +1 -0
  335. package/dist/types/api/generated/system.d.ts +5 -2
  336. package/dist/types/api/generated/tasks.d.ts +48 -9
  337. package/dist/types/api/generated/users.d.ts +1 -4
  338. package/dist/types/api/queries/overview/getOverview.d.ts +350 -482
  339. package/dist/types/api/queries/project/getProject.d.ts +6 -0
  340. package/dist/types/components/Powerpack/PowerpackButton.d.ts +7 -0
  341. package/dist/types/components/Powerpack/PowerpackDialog.d.ts +4 -0
  342. package/dist/types/components/Powerpack/PowerpackDialog.styled.d.ts +8 -0
  343. package/dist/types/components/Powerpack/PricingLink.d.ts +4 -0
  344. package/dist/types/components/Powerpack/index.d.ts +3 -0
  345. package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +2 -1
  346. package/dist/types/components/ProjectTableSettings/TableSettings.styled.d.ts +1 -0
  347. package/dist/types/components/ProjectTableSettings/TableSettingsFallback.d.ts +10 -0
  348. package/dist/types/components/ProjectTableSettings/index.d.ts +1 -0
  349. package/dist/types/components/SearchFilter/filterDates.d.ts +56 -0
  350. package/dist/types/components/SearchFilter/index.d.ts +2 -0
  351. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +30 -0
  352. package/dist/types/components/index.d.ts +2 -0
  353. package/dist/types/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.d.ts +1 -1
  354. package/dist/types/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.d.ts +1 -1
  355. package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.d.ts +4 -3
  356. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +5 -1
  357. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +3 -1
  358. package/dist/types/containers/ProjectTreeTable/components/GroupSettingsFallback.d.ts +11 -0
  359. package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +7 -0
  360. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +11 -5
  361. package/dist/types/containers/ProjectTreeTable/context/ProjectTableModulesContext.d.ts +12 -0
  362. package/dist/types/containers/ProjectTreeTable/context/index.d.ts +1 -0
  363. package/dist/types/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.d.ts +25 -0
  364. package/dist/types/containers/ProjectTreeTable/hooks/{useOverviewTable.d.ts → useBuildProjectDataTable.d.ts} +3 -1
  365. package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +2 -0
  366. package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +1 -1
  367. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +13 -5
  368. package/dist/types/containers/ProjectTreeTable/widgets/GroupHeaderWidget.d.ts +13 -0
  369. package/dist/types/containers/ProjectTreeTable/widgets/LoadMoreWidget.d.ts +8 -0
  370. package/dist/types/containers/ProjectTreeTable/widgets/index.d.ts +1 -0
  371. package/dist/types/containers/Slicer/index.d.ts +1 -0
  372. package/dist/types/containers/Slicer/useFiltersWithHierarchy.d.ts +10 -0
  373. package/dist/types/context/PowerpackContext.d.ts +20 -0
  374. package/dist/types/context/index.d.ts +1 -0
  375. package/dist/types/util/getAttributeIcon.d.ts +1 -1
  376. package/dist/types/util/getEntityTypeIcon.d.ts +1 -0
  377. package/dist/util.cjs.js +1 -0
  378. package/dist/util.cjs.js.map +1 -1
  379. package/dist/util.es.js +2 -1
  380. package/package.json +1 -1
  381. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.cjs.js.map +0 -1
  382. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.es.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnsSettings.es.js","sources":["../../../../../src/components/ProjectTableSettings/ColumnsSettings.tsx"],"sourcesContent":["// React and Styling imports\nimport { FC, useEffect, useMemo, useRef, useState } from 'react'\nimport styled from 'styled-components'\n\n// Context and Components imports\nimport {\n ColumnsConfig,\n useColumnSettingsContext,\n} from '@shared/containers/ProjectTreeTable/context/ColumnSettingsContext'\nimport ColumnItem from './ColumnItem'\nimport SortableColumnItem from './SortableColumnItem'\n\n// DND (Drag and Drop) imports\nimport {\n DndContext,\n closestCenter,\n DragEndEvent,\n DragStartEvent,\n useSensor,\n useSensors,\n PointerSensor,\n DragOverlay,\n DragOverEvent,\n} from '@dnd-kit/core'\nimport { SortableContext, verticalListSortingStrategy, arrayMove } from '@dnd-kit/sortable'\n\n// Notification imports\nimport { toast } from 'react-toastify'\nimport { SettingsPanelItem } from '../SettingsPanel/SettingsPanelItemTemplate'\nimport { SettingHighlightedId } from '@shared/context'\n\ninterface ColumnsSettingsProps {\n columns: SettingsPanelItem[]\n highlighted?: SettingHighlightedId\n}\n\nconst ColumnsSettings: FC<ColumnsSettingsProps> = ({ columns, highlighted }) => {\n const {\n columnVisibility,\n updateColumnVisibility,\n columnPinning,\n updateColumnPinning,\n columnOrder,\n setColumnsConfig,\n columnSizing,\n } = useColumnSettingsContext()\n\n // State for the currently dragged column\n const [activeId, setActiveId] = useState<string | null>(null)\n const [isHiddenOverVisible, setIsHiddenOverVisible] = useState(false)\n const [isDraggingOverPinned, setIsDraggingOverPinned] = useState(false)\n const [isDraggingFromPinned, setIsDraggingFromPinned] = useState(false)\n // Add a new state to track if we're hovering over the visible section\n const [isHoveringVisibleSection, setIsHoveringVisibleSection] = useState(false)\n // Add state to track if dragging over the hidden section\n const [isDraggingOverHidden, setIsDraggingOverHidden] = useState(false)\n\n // Setup sensors for dnd-kit\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n )\n\n const menuRef = useRef<HTMLUListElement | null>(null)\n\n // if highlighted is set, scroll to the highlighted column\n useEffect(() => {\n if (menuRef.current && highlighted) {\n const highlightedElement = menuRef.current.querySelector(`#column-settings-${highlighted}`)\n if (highlightedElement) {\n highlightedElement.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n })\n }\n }\n }, [highlighted])\n\n // Separate columns into visible, hidden, and pinned\n const { visibleColumns, hiddenColumns, pinnedColumns } = useMemo(() => {\n // First filter columns by visibility\n const visible = columns.filter((col) => columnVisibility[col.value] !== false)\n const hidden = columns.filter((col) => columnVisibility[col.value] === false)\n\n // Then separate out pinned columns from visible\n const pinned = visible.filter((col) => columnPinning.left?.includes(col.value))\n const unpinnedVisible = visible.filter((col) => !columnPinning.left?.includes(col.value))\n\n return {\n visibleColumns: unpinnedVisible,\n hiddenColumns: hidden,\n pinnedColumns: pinned,\n }\n }, [columns, columnVisibility, columnPinning])\n\n // Sort columns based on columnOrder\n const sortedVisibleColumns = useMemo(() => {\n // Create a copy of visible columns\n const visibleCopy = [...visibleColumns]\n\n // If we have a column order, use it to sort\n if (columnOrder.length > 0) {\n visibleCopy.sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n\n // If column is not in order array, place at end\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n\n return indexA - indexB\n })\n }\n\n return visibleCopy\n }, [visibleColumns, columnOrder])\n\n // Sort pinned columns based on columnOrder\n const sortedPinnedColumns = useMemo(() => {\n // Create a copy of pinned columns\n const pinnedCopy = [...pinnedColumns]\n\n // If we have a column order, use it to sort\n if (columnOrder.length > 0) {\n pinnedCopy.sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n\n // If column is not in order array, place at end\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n\n return indexA - indexB\n })\n }\n\n return pinnedCopy\n }, [pinnedColumns, columnOrder])\n\n const sortedVisibleColumnsIds = useMemo(\n () => sortedVisibleColumns.map((col) => col.value),\n [sortedVisibleColumns],\n )\n\n const sortedPinnedColumnsIds = useMemo(\n () => sortedPinnedColumns.map((col) => col.value),\n [sortedPinnedColumns],\n )\n\n // Toggle column visibility\n const toggleVisibility = (columnId: string) => {\n const newState = { ...columnVisibility }\n // If column is currently visible, hide it\n if (newState[columnId] !== false) {\n newState[columnId] = false\n } else {\n // If column is currently hidden, show it\n newState[columnId] = true\n }\n updateColumnVisibility(newState)\n }\n\n // Toggle column pinning\n const togglePinning = (columnId: string) => {\n const newState = { ...columnPinning }\n const newVisibility = { ...columnVisibility }\n\n // If column is currently pinned, unpin it\n if (newState.left?.includes(columnId)) {\n newState.left = newState.left.filter((id) => id !== columnId)\n } else {\n // If column is currently unpinned, pin it\n newState.left = [...(newState.left || []), columnId]\n // If column is hidden, show it\n if (newVisibility[columnId] === false) {\n newVisibility[columnId] = true\n updateColumnVisibility(newVisibility)\n }\n }\n updateColumnPinning(newState)\n }\n\n // When drag starts\n const handleDragStart = (event: DragStartEvent) => {\n const id = event.active.id as string\n setActiveId(id)\n setIsDraggingFromPinned(columnPinning.left?.includes(id) || false)\n }\n\n // Track when dragging over different sections\n const handleDragOver = (event: DragOverEvent) => {\n const { active, over } = event\n\n if (over && active.id !== over.id) {\n // Check if we're dragging a hidden column over a visible column\n const isActiveHidden = columnVisibility[active.id as string] === false\n const isOverVisible = columnVisibility[over.id as string] !== false\n const isOverPinned = columnPinning.left?.includes(over.id as string) || false\n const isOverHidden = columnVisibility[over.id as string] === false\n\n setIsHiddenOverVisible(isActiveHidden && isOverVisible && !isOverPinned)\n setIsDraggingOverPinned(isOverVisible && isOverPinned)\n setIsDraggingOverHidden(isOverHidden)\n\n // Set if we're hovering over the visible (unpinned) section\n setIsHoveringVisibleSection(isOverVisible && !isOverPinned)\n } else {\n // Reset when not over any column\n setIsHoveringVisibleSection(false)\n setIsDraggingOverHidden(false)\n }\n }\n\n // When drag ends, reset all states\n const handleDragEnd = (event: DragEndEvent) => {\n // Reset states\n setIsHiddenOverVisible(false)\n setIsDraggingOverPinned(false)\n setIsDraggingFromPinned(false)\n setIsHoveringVisibleSection(false)\n setIsDraggingOverHidden(false)\n\n const { active, over } = event\n\n if (over && active.id !== over.id) {\n // Find the dragged column and target column\n const activeColumn = [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find(\n (col) => col.value === active.id,\n )\n const overColumn = [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find(\n (col) => col.value === over.id,\n )\n\n if (activeColumn && overColumn) {\n const activeId = active.id as string\n const overId = over.id as string\n const isActiveVisible = columnVisibility[activeId] !== false\n const isOverVisible = columnVisibility[overId] !== false\n const isActivePinned = columnPinning.left?.includes(activeId) || false\n const isOverPinned = columnPinning.left?.includes(overId) || false\n const isOverHidden = columnVisibility[overId] === false\n\n // Create a new config object that we'll update and apply at the end\n const newConfig: ColumnsConfig = {\n columnVisibility: { ...columnVisibility },\n columnOrder: [...columnOrder],\n columnPinning: { ...columnPinning },\n columnSizing: { ...columnSizing },\n }\n\n // If we're moving a column between visible columns (including pinned)\n if (isActiveVisible && isOverVisible) {\n let newPinningLeft = [...(newConfig.columnPinning.left || [])]\n\n // Handle pinning/unpinning based on target section\n if (isActivePinned !== isOverPinned) {\n if (isActivePinned && !isOverPinned) {\n // Moving from pinned to unpinned section\n newPinningLeft = newPinningLeft.filter((id) => id !== activeId)\n } else if (!isActivePinned && isOverPinned) {\n // Moving from unpinned to pinned section\n newPinningLeft = [...newPinningLeft, activeId]\n }\n }\n\n // Update order within the appropriate section\n const allVisibleIds = [...sortedPinnedColumnsIds, ...sortedVisibleColumnsIds]\n const oldIndex = allVisibleIds.indexOf(activeId)\n const newIndex = allVisibleIds.indexOf(overId)\n\n if (oldIndex === -1 || newIndex === -1) {\n console.error('Invalid column order state')\n toast.error('Invalid column order state')\n return\n }\n\n const newOrder = arrayMove(allVisibleIds, oldIndex, newIndex)\n\n // new pinning left should be ordered by the new order\n const newPinningLeftOrdered = newOrder.filter((id) => newPinningLeft.includes(id))\n\n // Update config object\n newConfig.columnOrder = newOrder\n newConfig.columnPinning = {\n ...newConfig.columnPinning,\n left: newPinningLeftOrdered,\n }\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n\n // If we're dragging from hidden to visible\n else if (!isActiveVisible && isOverVisible) {\n // Make the column visible\n newConfig.columnVisibility[activeId] = true\n\n // If dropping into pinned section, also pin the column\n if (isOverPinned) {\n const newPinningLeft = [...(newConfig.columnPinning.left || []), activeId]\n newConfig.columnPinning.left = newPinningLeft\n }\n\n // Update order to place it near the over column\n const allVisibleIds = [...sortedPinnedColumnsIds, ...sortedVisibleColumnsIds]\n\n // Add the column to order if not already there\n if (!allVisibleIds.includes(activeId)) {\n const overIndex = allVisibleIds.indexOf(overId)\n allVisibleIds.splice(overIndex, 0, activeId)\n }\n\n newConfig.columnOrder = allVisibleIds\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n\n // If we're dragging from visible to hidden\n else if (isActiveVisible && isOverHidden) {\n // Make the active column hidden\n newConfig.columnVisibility[activeId] = false\n\n // If the column was pinned, remove it from pinned\n if (isActivePinned) {\n const newPinningLeft = (newConfig.columnPinning.left || []).filter(\n (id) => id !== activeId,\n )\n newConfig.columnPinning.left = newPinningLeft\n }\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n }\n }\n\n setActiveId(null)\n }\n\n // Find the active column for the drag overlay\n const activeColumn = activeId\n ? [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find((col) => col.value === activeId)\n : null\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragOver={handleDragOver}\n onDragEnd={handleDragEnd}\n >\n <ColumnsContainer>\n {/* Pinned Columns Section */}\n {pinnedColumns.length > 0 && (\n <Section className={isDraggingOverPinned && !isDraggingFromPinned ? 'drop-target' : ''}>\n <SectionTitle>Pinned Columns</SectionTitle>\n <SortableContext\n items={sortedPinnedColumns.map((col) => col.value)}\n strategy={verticalListSortingStrategy}\n >\n <Menu>\n {sortedPinnedColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={true}\n isHidden={false}\n isHighlighted={highlighted === column.value}\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Menu>\n </SortableContext>\n </Section>\n )}\n\n {/* Visible Columns Section */}\n <Section\n className={\n isHiddenOverVisible || (isDraggingFromPinned && isHoveringVisibleSection)\n ? 'drop-target'\n : ''\n }\n >\n <SectionTitle>Visible Columns</SectionTitle>\n <SortableContext\n items={sortedVisibleColumns.map((col) => col.value)}\n strategy={verticalListSortingStrategy}\n >\n <Menu>\n {sortedVisibleColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={false}\n isHidden={false}\n isHighlighted={highlighted === column.value}\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Menu>\n </SortableContext>\n </Section>\n\n {/* Hidden Columns Section */}\n {hiddenColumns.length > 0 && (\n <Section className={isDraggingOverHidden ? 'drop-target' : ''}>\n <SectionTitle>Hidden Columns</SectionTitle>\n <Menu ref={menuRef}>\n {hiddenColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={columnPinning.left?.includes(column.value) || false}\n isHidden={true}\n isHighlighted={highlighted === column.value}\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Menu>\n </Section>\n )}\n\n {/* Drag Overlay */}\n <DragOverlay>\n {activeColumn && (\n <ColumnItem\n column={activeColumn}\n isPinned={columnPinning.left?.includes(activeColumn.value) || false}\n isHidden={columnVisibility[activeColumn.value] === false}\n isHighlighted={highlighted === activeColumn.value}\n dragOverlay={true}\n />\n )}\n </DragOverlay>\n </ColumnsContainer>\n </DndContext>\n )\n}\n\n// Styled components\nconst ColumnsContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: var(--base-gap-large);\n`\n\nconst Section = styled.section`\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: background-color 0.2s ease;\n border-radius: 4px;\n\n &.drop-target {\n background-color: var(--md-sys-color-surface-container);\n box-shadow: 0 0 0 1px var(--md-sys-color-outline);\n }\n`\n\nconst SectionTitle = styled.div`\n font-weight: 500;\n color: var(--md-sys-color-outline);\n padding: 4px 0;\n`\n\nconst Menu = styled.ul`\n display: flex;\n flex-direction: column;\n list-style-type: none;\n margin: 0;\n padding: 0;\n`\n\nexport default ColumnsSettings\n"],"names":["_a","activeColumn","activeId","jsx","jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnsSettings.es.js","sources":["../../../../../src/components/ProjectTableSettings/ColumnsSettings.tsx"],"sourcesContent":["// React and Styling imports\nimport { FC, useEffect, useMemo, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport * as Styled from './TableSettings.styled'\n\n// Context and Components imports\nimport {\n ColumnsConfig,\n useColumnSettingsContext,\n} from '@shared/containers/ProjectTreeTable/context/ColumnSettingsContext'\nimport ColumnItem from './ColumnItem'\nimport SortableColumnItem from './SortableColumnItem'\n\n// DND (Drag and Drop) imports\nimport {\n DndContext,\n closestCenter,\n DragEndEvent,\n DragStartEvent,\n useSensor,\n useSensors,\n PointerSensor,\n DragOverlay,\n DragOverEvent,\n} from '@dnd-kit/core'\nimport { SortableContext, verticalListSortingStrategy, arrayMove } from '@dnd-kit/sortable'\n\n// Notification imports\nimport { toast } from 'react-toastify'\nimport { SettingsPanelItem } from '../SettingsPanel/SettingsPanelItemTemplate'\nimport { SettingHighlightedId } from '@shared/context'\n\ninterface ColumnsSettingsProps {\n columns: SettingsPanelItem[]\n highlighted?: SettingHighlightedId\n}\n\nconst ColumnsSettings: FC<ColumnsSettingsProps> = ({ columns, highlighted }) => {\n const {\n columnVisibility,\n updateColumnVisibility,\n columnPinning,\n updateColumnPinning,\n columnOrder,\n setColumnsConfig,\n columnSizing,\n } = useColumnSettingsContext()\n\n // State for the currently dragged column\n const [activeId, setActiveId] = useState<string | null>(null)\n const [isHiddenOverVisible, setIsHiddenOverVisible] = useState(false)\n const [isDraggingOverPinned, setIsDraggingOverPinned] = useState(false)\n const [isDraggingFromPinned, setIsDraggingFromPinned] = useState(false)\n // Add a new state to track if we're hovering over the visible section\n const [isHoveringVisibleSection, setIsHoveringVisibleSection] = useState(false)\n // Add state to track if dragging over the hidden section\n const [isDraggingOverHidden, setIsDraggingOverHidden] = useState(false)\n\n // Setup sensors for dnd-kit\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n )\n\n const menuRef = useRef<HTMLUListElement | null>(null)\n\n // if highlighted is set, scroll to the highlighted column\n useEffect(() => {\n if (menuRef.current && highlighted) {\n const highlightedElement = menuRef.current.querySelector(`#column-settings-${highlighted}`)\n if (highlightedElement) {\n highlightedElement.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n })\n }\n }\n }, [highlighted])\n\n // Separate columns into visible, hidden, and pinned\n const { visibleColumns, hiddenColumns, pinnedColumns } = useMemo(() => {\n // First filter columns by visibility\n const visible = columns.filter((col) => columnVisibility[col.value] !== false)\n const hidden = columns.filter((col) => columnVisibility[col.value] === false)\n\n // Then separate out pinned columns from visible\n const pinned = visible.filter((col) => columnPinning.left?.includes(col.value))\n const unpinnedVisible = visible.filter((col) => !columnPinning.left?.includes(col.value))\n\n return {\n visibleColumns: unpinnedVisible,\n hiddenColumns: hidden,\n pinnedColumns: pinned,\n }\n }, [columns, columnVisibility, columnPinning])\n\n // Sort columns based on columnOrder\n const sortedVisibleColumns = useMemo(() => {\n // Create a copy of visible columns\n const visibleCopy = [...visibleColumns]\n\n // If we have a column order, use it to sort\n if (columnOrder.length > 0) {\n visibleCopy.sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n\n // If column is not in order array, place at end\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n\n return indexA - indexB\n })\n }\n\n return visibleCopy\n }, [visibleColumns, columnOrder])\n\n // Sort pinned columns based on columnOrder\n const sortedPinnedColumns = useMemo(() => {\n // Create a copy of pinned columns\n const pinnedCopy = [...pinnedColumns]\n\n // If we have a column order, use it to sort\n if (columnOrder.length > 0) {\n pinnedCopy.sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n\n // If column is not in order array, place at end\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n\n return indexA - indexB\n })\n }\n\n return pinnedCopy\n }, [pinnedColumns, columnOrder])\n\n const sortedVisibleColumnsIds = useMemo(\n () => sortedVisibleColumns.map((col) => col.value),\n [sortedVisibleColumns],\n )\n\n const sortedPinnedColumnsIds = useMemo(\n () => sortedPinnedColumns.map((col) => col.value),\n [sortedPinnedColumns],\n )\n\n // Toggle column visibility\n const toggleVisibility = (columnId: string) => {\n const newState = { ...columnVisibility }\n // If column is currently visible, hide it\n if (newState[columnId] !== false) {\n newState[columnId] = false\n } else {\n // If column is currently hidden, show it\n newState[columnId] = true\n }\n updateColumnVisibility(newState)\n }\n\n // Toggle column pinning\n const togglePinning = (columnId: string) => {\n const newState = { ...columnPinning }\n const newVisibility = { ...columnVisibility }\n\n // If column is currently pinned, unpin it\n if (newState.left?.includes(columnId)) {\n newState.left = newState.left.filter((id) => id !== columnId)\n } else {\n // If column is currently unpinned, pin it\n newState.left = [...(newState.left || []), columnId]\n // If column is hidden, show it\n if (newVisibility[columnId] === false) {\n newVisibility[columnId] = true\n updateColumnVisibility(newVisibility)\n }\n }\n updateColumnPinning(newState)\n }\n\n // When drag starts\n const handleDragStart = (event: DragStartEvent) => {\n const id = event.active.id as string\n setActiveId(id)\n setIsDraggingFromPinned(columnPinning.left?.includes(id) || false)\n }\n\n // Track when dragging over different sections\n const handleDragOver = (event: DragOverEvent) => {\n const { active, over } = event\n\n if (over && active.id !== over.id) {\n // Check if we're dragging a hidden column over a visible column\n const isActiveHidden = columnVisibility[active.id as string] === false\n const isOverVisible = columnVisibility[over.id as string] !== false\n const isOverPinned = columnPinning.left?.includes(over.id as string) || false\n const isOverHidden = columnVisibility[over.id as string] === false\n\n setIsHiddenOverVisible(isActiveHidden && isOverVisible && !isOverPinned)\n setIsDraggingOverPinned(isOverVisible && isOverPinned)\n setIsDraggingOverHidden(isOverHidden)\n\n // Set if we're hovering over the visible (unpinned) section\n setIsHoveringVisibleSection(isOverVisible && !isOverPinned)\n } else {\n // Reset when not over any column\n setIsHoveringVisibleSection(false)\n setIsDraggingOverHidden(false)\n }\n }\n\n // When drag ends, reset all states\n const handleDragEnd = (event: DragEndEvent) => {\n // Reset states\n setIsHiddenOverVisible(false)\n setIsDraggingOverPinned(false)\n setIsDraggingFromPinned(false)\n setIsHoveringVisibleSection(false)\n setIsDraggingOverHidden(false)\n\n const { active, over } = event\n\n if (over && active.id !== over.id) {\n // Find the dragged column and target column\n const activeColumn = [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find(\n (col) => col.value === active.id,\n )\n const overColumn = [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find(\n (col) => col.value === over.id,\n )\n\n if (activeColumn && overColumn) {\n const activeId = active.id as string\n const overId = over.id as string\n const isActiveVisible = columnVisibility[activeId] !== false\n const isOverVisible = columnVisibility[overId] !== false\n const isActivePinned = columnPinning.left?.includes(activeId) || false\n const isOverPinned = columnPinning.left?.includes(overId) || false\n const isOverHidden = columnVisibility[overId] === false\n\n // Create a new config object that we'll update and apply at the end\n const newConfig: ColumnsConfig = {\n columnVisibility: { ...columnVisibility },\n columnOrder: [...columnOrder],\n columnPinning: { ...columnPinning },\n columnSizing: { ...columnSizing },\n }\n\n // If we're moving a column between visible columns (including pinned)\n if (isActiveVisible && isOverVisible) {\n let newPinningLeft = [...(newConfig.columnPinning.left || [])]\n\n // Handle pinning/unpinning based on target section\n if (isActivePinned !== isOverPinned) {\n if (isActivePinned && !isOverPinned) {\n // Moving from pinned to unpinned section\n newPinningLeft = newPinningLeft.filter((id) => id !== activeId)\n } else if (!isActivePinned && isOverPinned) {\n // Moving from unpinned to pinned section\n newPinningLeft = [...newPinningLeft, activeId]\n }\n }\n\n // Update order within the appropriate section\n const allVisibleIds = [...sortedPinnedColumnsIds, ...sortedVisibleColumnsIds]\n const oldIndex = allVisibleIds.indexOf(activeId)\n const newIndex = allVisibleIds.indexOf(overId)\n\n if (oldIndex === -1 || newIndex === -1) {\n console.error('Invalid column order state')\n toast.error('Invalid column order state')\n return\n }\n\n const newOrder = arrayMove(allVisibleIds, oldIndex, newIndex)\n\n // new pinning left should be ordered by the new order\n const newPinningLeftOrdered = newOrder.filter((id) => newPinningLeft.includes(id))\n\n // Update config object\n newConfig.columnOrder = newOrder\n newConfig.columnPinning = {\n ...newConfig.columnPinning,\n left: newPinningLeftOrdered,\n }\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n\n // If we're dragging from hidden to visible\n else if (!isActiveVisible && isOverVisible) {\n // Make the column visible\n newConfig.columnVisibility[activeId] = true\n\n // If dropping into pinned section, also pin the column\n if (isOverPinned) {\n const newPinningLeft = [...(newConfig.columnPinning.left || []), activeId]\n newConfig.columnPinning.left = newPinningLeft\n }\n\n // Update order to place it near the over column\n const allVisibleIds = [...sortedPinnedColumnsIds, ...sortedVisibleColumnsIds]\n\n // Add the column to order if not already there\n if (!allVisibleIds.includes(activeId)) {\n const overIndex = allVisibleIds.indexOf(overId)\n allVisibleIds.splice(overIndex, 0, activeId)\n }\n\n newConfig.columnOrder = allVisibleIds\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n\n // If we're dragging from visible to hidden\n else if (isActiveVisible && isOverHidden) {\n // Make the active column hidden\n newConfig.columnVisibility[activeId] = false\n\n // If the column was pinned, remove it from pinned\n if (isActivePinned) {\n const newPinningLeft = (newConfig.columnPinning.left || []).filter(\n (id) => id !== activeId,\n )\n newConfig.columnPinning.left = newPinningLeft\n }\n\n // Apply all changes at once\n setColumnsConfig(newConfig)\n }\n }\n }\n\n setActiveId(null)\n }\n\n // Find the active column for the drag overlay\n const activeColumn = activeId\n ? [...visibleColumns, ...hiddenColumns, ...pinnedColumns].find((col) => col.value === activeId)\n : null\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragOver={handleDragOver}\n onDragEnd={handleDragEnd}\n >\n <ColumnsContainer>\n {/* Pinned Columns Section */}\n {pinnedColumns.length > 0 && (\n <Section className={isDraggingOverPinned && !isDraggingFromPinned ? 'drop-target' : ''}>\n <SectionTitle>Pinned Columns</SectionTitle>\n <SortableContext\n items={sortedPinnedColumns.map((col) => col.value)}\n strategy={verticalListSortingStrategy}\n >\n <Styled.Menu>\n {sortedPinnedColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={true}\n isHidden={false}\n isHighlighted={highlighted === column.value}\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Styled.Menu>\n </SortableContext>\n </Section>\n )}\n\n {/* Visible Columns Section */}\n <Section\n className={\n isHiddenOverVisible || (isDraggingFromPinned && isHoveringVisibleSection)\n ? 'drop-target'\n : ''\n }\n >\n <SectionTitle>Visible Columns</SectionTitle>\n <SortableContext\n items={sortedVisibleColumns.map((col) => col.value)}\n strategy={verticalListSortingStrategy}\n >\n <Styled.Menu>\n {sortedVisibleColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={false}\n isHidden={false}\n isHighlighted={highlighted === column.value}\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Styled.Menu>\n </SortableContext>\n </Section>\n\n {/* Hidden Columns Section */}\n {hiddenColumns.length > 0 && (\n <Section className={isDraggingOverHidden ? 'drop-target' : ''}>\n <SectionTitle>Hidden Columns</SectionTitle>\n <Styled.Menu ref={menuRef}>\n {hiddenColumns.map((column) => (\n <SortableColumnItem\n key={column.value}\n id={column.value}\n column={column}\n isPinned={columnPinning.left?.includes(column.value) || false}\n isHidden={true}\n isHighlighted={highlighted === column.value}\n onTogglePinning={togglePinning}\n onToggleVisibility={toggleVisibility}\n />\n ))}\n </Styled.Menu>\n </Section>\n )}\n\n {/* Drag Overlay */}\n <DragOverlay>\n {activeColumn && (\n <ColumnItem\n column={activeColumn}\n isPinned={columnPinning.left?.includes(activeColumn.value) || false}\n isHidden={columnVisibility[activeColumn.value] === false}\n isHighlighted={highlighted === activeColumn.value}\n dragOverlay={true}\n />\n )}\n </DragOverlay>\n </ColumnsContainer>\n </DndContext>\n )\n}\n\n// Styled components\nconst ColumnsContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: var(--base-gap-large);\n`\n\nconst Section = styled.section`\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: background-color 0.2s ease;\n border-radius: 4px;\n\n &.drop-target {\n background-color: var(--md-sys-color-surface-container);\n box-shadow: 0 0 0 1px var(--md-sys-color-outline);\n }\n`\n\nconst SectionTitle = styled.div`\n font-weight: 500;\n color: var(--md-sys-color-outline);\n padding: 4px 0;\n`\n\nexport default ColumnsSettings\n"],"names":["_a","activeColumn","activeId","jsx","jsxs","Styled.Menu"],"mappings":"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"}
@@ -15,6 +15,7 @@ require("../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");
15
15
  require("../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");
16
16
  require("../../containers/ProjectTreeTable/context/ProjectTableSelectionContext.cjs.js");
17
17
  require("../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");
18
+ require("../../containers/ProjectTreeTable/context/ProjectTableModulesContext.cjs.js");
18
19
  require("@tanstack/react-table");
19
20
  require("../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");
20
21
  require("../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");
@@ -23,12 +24,14 @@ require("../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");
23
24
  require("../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");
24
25
  require("../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");
25
26
  require("../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");
27
+ require("../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");
26
28
  require("../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");
27
29
  require("../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");
28
30
  require("clsx");
29
31
  require("../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");
30
32
  require("../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");
31
33
  require("react");
34
+ require("../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");
32
35
  ;/* empty css */
33
36
  require("../../containers/ContextMenu/ContextMenuContext.cjs.js");
34
37
  const styled = require("styled-components");
@@ -41,13 +44,14 @@ require("react-dom");
41
44
  require("../../context/pip/PiPWrapper.cjs.js");
42
45
  require("../../context/AddonProjectContext.cjs.js");
43
46
  require("../../context/AddonContext.cjs.js");
47
+ require("../../context/PowerpackContext.cjs.js");
44
48
  const SettingsPanel = require("../SettingsPanel/SettingsPanel.cjs.js");
45
49
  require("../SettingsPanel/SettingsPanelItemTemplate.cjs.js");
46
50
  const ColumnsSettings = require("./ColumnsSettings.cjs.js");
47
51
  const StyledCustomizeButton = styled(ayonReactComponents.Button)`
48
52
  min-width: 120px;
49
53
  `;
50
- const CustomizeButton = ({ defaultSelected = "columns", ...props }) => {
54
+ const CustomizeButton = ({ defaultSelected, ...props }) => {
51
55
  const { togglePanel, isPanelOpen } = SettingsPanelContext.useSettingsPanel();
52
56
  return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
53
57
  StyledCustomizeButton,
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectTableSettings.cjs.js","sources":["../../../../../src/components/ProjectTableSettings/ProjectTableSettings.tsx"],"sourcesContent":["import {\n useColumnSettingsContext,\n useProjectTableContext,\n} from '@shared/containers/ProjectTreeTable'\nimport { Button, ButtonProps } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport styled from 'styled-components'\nimport { SettingHighlightedId, useSettingsPanel } from '@shared/context'\nimport { SettingsPanel, SettingConfig } from '@shared/components/SettingsPanel'\nimport ColumnsSettings from './ColumnsSettings'\n\nconst StyledCustomizeButton = styled(Button)`\n min-width: 120px;\n`\n\ninterface Props extends ButtonProps {\n defaultSelected?: string | null\n}\n\nexport const CustomizeButton = ({ defaultSelected = 'columns', ...props }: Props) => {\n const { togglePanel, isPanelOpen } = useSettingsPanel()\n\n return (\n <StyledCustomizeButton\n onClick={() => togglePanel(defaultSelected)}\n icon=\"settings\"\n selected={isPanelOpen}\n {...props}\n >\n Customize\n </StyledCustomizeButton>\n )\n}\n\ntype ProjectTableSettingsProps = {\n settings?: SettingConfig[]\n extraColumns?: { value: string; label: string }[]\n highlighted?: SettingHighlightedId\n}\n\nexport const ProjectTableSettings: FC<ProjectTableSettingsProps> = ({\n settings = [],\n extraColumns = [],\n highlighted,\n}) => {\n const { attribFields } = useProjectTableContext()\n const { columnVisibility } = useColumnSettingsContext()\n\n const columns = [\n {\n value: 'thumbnail',\n label: 'Thumbnail',\n },\n {\n value: 'name',\n label: 'Folder / Task',\n },\n {\n value: 'status',\n label: 'Status',\n },\n {\n value: 'subType',\n label: 'Type',\n },\n {\n value: 'assignees',\n label: 'Assignees',\n },\n {\n value: 'tags',\n label: 'Tags',\n },\n ...attribFields.map((field) => ({\n value: 'attrib_' + field.name,\n label: field.data.title || field.name,\n })),\n ...extraColumns,\n ]\n\n const visibleCount = columns.filter(\n (column) => !(column.value in columnVisibility) || columnVisibility[column.value],\n ).length\n\n const defaultSettings: SettingConfig[] = [\n {\n id: 'columns',\n title: 'Columns',\n icon: 'view_column',\n preview: `${visibleCount}/${columns.length}`,\n component: <ColumnsSettings columns={columns} highlighted={highlighted} />,\n },\n ]\n\n settings.forEach((setting) => defaultSettings.push(setting))\n\n return <SettingsPanel settings={defaultSettings} />\n}\n"],"names":["Button","useSettingsPanel","jsx","useProjectTableContext","useColumnSettingsContext","SettingsPanel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,wBAAwB,OAAOA,0BAAM;AAAA;AAAA;AAQpC,MAAM,kBAAkB,CAAC,EAAE,kBAAkB,WAAW,GAAG,YAAmB;AACnF,QAAM,EAAE,aAAa,YAAY,IAAIC,sCAAiB;AAGpD,SAAAC,2BAAA,kBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAS,MAAM,YAAY,eAAe;AAAA,MAC1C,MAAK;AAAA,MACL,UAAU;AAAA,MACT,GAAG;AAAA,MACL,UAAA;AAAA,IAAA;AAAA,EAED;AAEJ;AAQO,MAAM,uBAAsD,CAAC;AAAA,EAClE,WAAW,CAAC;AAAA,EACZ,eAAe,CAAC;AAAA,EAChB;AACF,MAAM;AACE,QAAA,EAAE,aAAa,IAAIC,2CAAuB;AAC1C,QAAA,EAAE,iBAAiB,IAAIC,+CAAyB;AAEtD,QAAM,UAAU;AAAA,IACd;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA,GAAG,aAAa,IAAI,CAAC,WAAW;AAAA,MAC9B,OAAO,YAAY,MAAM;AAAA,MACzB,OAAO,MAAM,KAAK,SAAS,MAAM;AAAA,IAAA,EACjC;AAAA,IACF,GAAG;AAAA,EACL;AAEA,QAAM,eAAe,QAAQ;AAAA,IAC3B,CAAC,WAAW,EAAE,OAAO,SAAS,qBAAqB,iBAAiB,OAAO,KAAK;AAAA,EAAA,EAChF;AAEF,QAAM,kBAAmC;AAAA,IACvC;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS,GAAG,YAAY,IAAI,QAAQ,MAAM;AAAA,MAC1C,WAAWF,2BAAAA,kBAAAA,IAAC,iBAAgB,EAAA,SAAkB,YAA0B,CAAA;AAAA,IAAA;AAAA,EAE5E;AAEA,WAAS,QAAQ,CAAC,YAAY,gBAAgB,KAAK,OAAO,CAAC;AAEpD,SAAAA,2BAAA,kBAAA,IAACG,cAAc,eAAA,EAAA,UAAU,gBAAiB,CAAA;AACnD;;;"}
1
+ {"version":3,"file":"ProjectTableSettings.cjs.js","sources":["../../../../../src/components/ProjectTableSettings/ProjectTableSettings.tsx"],"sourcesContent":["import {\n useColumnSettingsContext,\n useProjectTableContext,\n useProjectTableModuleContext,\n} from '@shared/containers/ProjectTreeTable'\nimport { Button, ButtonProps } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport styled from 'styled-components'\nimport { SettingHighlightedId, useSettingsPanel } from '@shared/context'\nimport { SettingsPanel, SettingConfig } from '@shared/components/SettingsPanel'\nimport ColumnsSettings from './ColumnsSettings'\n\nconst StyledCustomizeButton = styled(Button)`\n min-width: 120px;\n`\n\ninterface Props extends ButtonProps {\n defaultSelected?: string | null\n}\n\nexport const CustomizeButton = ({ defaultSelected, ...props }: Props) => {\n const { togglePanel, isPanelOpen } = useSettingsPanel()\n\n return (\n <StyledCustomizeButton\n onClick={() => togglePanel(defaultSelected)}\n icon=\"settings\"\n selected={isPanelOpen}\n {...props}\n >\n Customize\n </StyledCustomizeButton>\n )\n}\n\nexport type OverviewSettingsChange = (setting: 'columns' | 'group-by', value: any) => void\n\nexport type ProjectTableSettingsProps = {\n settings?: SettingConfig[]\n extraColumns?: { value: string; label: string }[]\n highlighted?: SettingHighlightedId\n}\n\nexport const ProjectTableSettings: FC<ProjectTableSettingsProps> = ({\n settings = [],\n extraColumns = [],\n highlighted,\n}) => {\n const { attribFields } = useProjectTableContext()\n const { columnVisibility } = useColumnSettingsContext()\n\n const columns = [\n {\n value: 'thumbnail',\n label: 'Thumbnail',\n },\n {\n value: 'name',\n label: 'Folder / Task',\n },\n {\n value: 'status',\n label: 'Status',\n },\n {\n value: 'subType',\n label: 'Type',\n },\n {\n value: 'assignees',\n label: 'Assignees',\n },\n {\n value: 'tags',\n label: 'Tags',\n },\n ...attribFields.map((field) => ({\n value: 'attrib_' + field.name,\n label: field.data.title || field.name,\n })),\n ...extraColumns,\n ]\n\n const visibleCount = columns.filter(\n (column) => !(column.value in columnVisibility) || columnVisibility[column.value],\n ).length\n\n const defaultSettings: SettingConfig[] = [\n {\n id: 'columns',\n title: 'Columns',\n icon: 'view_column',\n preview: `${visibleCount}/${columns.length}`,\n component: <ColumnsSettings columns={columns} highlighted={highlighted} />,\n },\n ]\n\n settings.forEach((setting) => defaultSettings.push(setting))\n\n return <SettingsPanel settings={defaultSettings} />\n}\n"],"names":["Button","useSettingsPanel","jsx","useProjectTableContext","useColumnSettingsContext","SettingsPanel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,wBAAwB,OAAOA,0BAAM;AAAA;AAAA;AAQpC,MAAM,kBAAkB,CAAC,EAAE,iBAAiB,GAAG,YAAmB;AACvE,QAAM,EAAE,aAAa,YAAY,IAAIC,sCAAiB;AAGpD,SAAAC,2BAAA,kBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAS,MAAM,YAAY,eAAe;AAAA,MAC1C,MAAK;AAAA,MACL,UAAU;AAAA,MACT,GAAG;AAAA,MACL,UAAA;AAAA,IAAA;AAAA,EAED;AAEJ;AAUO,MAAM,uBAAsD,CAAC;AAAA,EAClE,WAAW,CAAC;AAAA,EACZ,eAAe,CAAC;AAAA,EAChB;AACF,MAAM;AACE,QAAA,EAAE,aAAa,IAAIC,2CAAuB;AAC1C,QAAA,EAAE,iBAAiB,IAAIC,+CAAyB;AAEtD,QAAM,UAAU;AAAA,IACd;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA,GAAG,aAAa,IAAI,CAAC,WAAW;AAAA,MAC9B,OAAO,YAAY,MAAM;AAAA,MACzB,OAAO,MAAM,KAAK,SAAS,MAAM;AAAA,IAAA,EACjC;AAAA,IACF,GAAG;AAAA,EACL;AAEA,QAAM,eAAe,QAAQ;AAAA,IAC3B,CAAC,WAAW,EAAE,OAAO,SAAS,qBAAqB,iBAAiB,OAAO,KAAK;AAAA,EAAA,EAChF;AAEF,QAAM,kBAAmC;AAAA,IACvC;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS,GAAG,YAAY,IAAI,QAAQ,MAAM;AAAA,MAC1C,WAAWF,2BAAAA,kBAAAA,IAAC,iBAAgB,EAAA,SAAkB,YAA0B,CAAA;AAAA,IAAA;AAAA,EAE5E;AAEA,WAAS,QAAQ,CAAC,YAAY,gBAAgB,KAAK,OAAO,CAAC;AAEpD,SAAAA,2BAAA,kBAAA,IAACG,cAAc,eAAA,EAAA,UAAU,gBAAiB,CAAA;AACnD;;;"}
@@ -13,6 +13,7 @@ import "../../containers/ProjectTreeTable/context/CellEditingContext.es.js";
13
13
  import "../../containers/ProjectTreeTable/context/ClipboardContext.es.js";
14
14
  import "../../containers/ProjectTreeTable/context/ProjectTableSelectionContext.es.js";
15
15
  import "../../containers/ProjectTreeTable/context/ProjectDataContext.es.js";
16
+ import "../../containers/ProjectTreeTable/context/ProjectTableModulesContext.es.js";
16
17
  import "@tanstack/react-table";
17
18
  import "../../containers/ProjectTreeTable/widgets/CollapsedWidget.es.js";
18
19
  import "../../containers/ProjectTreeTable/widgets/DateWidget.es.js";
@@ -21,12 +22,14 @@ import "../../containers/ProjectTreeTable/widgets/TextWidget.es.js";
21
22
  import "../../containers/ProjectTreeTable/widgets/BooleanWidget.es.js";
22
23
  import "../../containers/ProjectTreeTable/widgets/CellWidget.es.js";
23
24
  import "../../containers/ProjectTreeTable/widgets/EntityNameWidget.es.js";
25
+ import "../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js";
24
26
  import "../../containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js";
25
27
  import "../../containers/ProjectTreeTable/ProjectTreeTable.styled.es.js";
26
28
  import "clsx";
27
29
  import "../../containers/ProjectTreeTable/components/SelectionCell.es.js";
28
30
  import "../../containers/ProjectTreeTable/components/RowSelectionHeader.es.js";
29
31
  import "react";
32
+ import "../../containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js";
30
33
  /* empty css */
31
34
  import "../../containers/ContextMenu/ContextMenuContext.es.js";
32
35
  import styled from "styled-components";
@@ -39,13 +42,14 @@ import "react-dom";
39
42
  import "../../context/pip/PiPWrapper.es.js";
40
43
  import "../../context/AddonProjectContext.es.js";
41
44
  import "../../context/AddonContext.es.js";
45
+ import "../../context/PowerpackContext.es.js";
42
46
  import { SettingsPanel } from "../SettingsPanel/SettingsPanel.es.js";
43
47
  import "../SettingsPanel/SettingsPanelItemTemplate.es.js";
44
48
  import ColumnsSettings from "./ColumnsSettings.es.js";
45
49
  const StyledCustomizeButton = styled(Button)`
46
50
  min-width: 120px;
47
51
  `;
48
- const CustomizeButton = ({ defaultSelected = "columns", ...props }) => {
52
+ const CustomizeButton = ({ defaultSelected, ...props }) => {
49
53
  const { togglePanel, isPanelOpen } = useSettingsPanel();
50
54
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
51
55
  StyledCustomizeButton,
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectTableSettings.es.js","sources":["../../../../../src/components/ProjectTableSettings/ProjectTableSettings.tsx"],"sourcesContent":["import {\n useColumnSettingsContext,\n useProjectTableContext,\n} from '@shared/containers/ProjectTreeTable'\nimport { Button, ButtonProps } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport styled from 'styled-components'\nimport { SettingHighlightedId, useSettingsPanel } from '@shared/context'\nimport { SettingsPanel, SettingConfig } from '@shared/components/SettingsPanel'\nimport ColumnsSettings from './ColumnsSettings'\n\nconst StyledCustomizeButton = styled(Button)`\n min-width: 120px;\n`\n\ninterface Props extends ButtonProps {\n defaultSelected?: string | null\n}\n\nexport const CustomizeButton = ({ defaultSelected = 'columns', ...props }: Props) => {\n const { togglePanel, isPanelOpen } = useSettingsPanel()\n\n return (\n <StyledCustomizeButton\n onClick={() => togglePanel(defaultSelected)}\n icon=\"settings\"\n selected={isPanelOpen}\n {...props}\n >\n Customize\n </StyledCustomizeButton>\n )\n}\n\ntype ProjectTableSettingsProps = {\n settings?: SettingConfig[]\n extraColumns?: { value: string; label: string }[]\n highlighted?: SettingHighlightedId\n}\n\nexport const ProjectTableSettings: FC<ProjectTableSettingsProps> = ({\n settings = [],\n extraColumns = [],\n highlighted,\n}) => {\n const { attribFields } = useProjectTableContext()\n const { columnVisibility } = useColumnSettingsContext()\n\n const columns = [\n {\n value: 'thumbnail',\n label: 'Thumbnail',\n },\n {\n value: 'name',\n label: 'Folder / Task',\n },\n {\n value: 'status',\n label: 'Status',\n },\n {\n value: 'subType',\n label: 'Type',\n },\n {\n value: 'assignees',\n label: 'Assignees',\n },\n {\n value: 'tags',\n label: 'Tags',\n },\n ...attribFields.map((field) => ({\n value: 'attrib_' + field.name,\n label: field.data.title || field.name,\n })),\n ...extraColumns,\n ]\n\n const visibleCount = columns.filter(\n (column) => !(column.value in columnVisibility) || columnVisibility[column.value],\n ).length\n\n const defaultSettings: SettingConfig[] = [\n {\n id: 'columns',\n title: 'Columns',\n icon: 'view_column',\n preview: `${visibleCount}/${columns.length}`,\n component: <ColumnsSettings columns={columns} highlighted={highlighted} />,\n },\n ]\n\n settings.forEach((setting) => defaultSettings.push(setting))\n\n return <SettingsPanel settings={defaultSettings} />\n}\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,wBAAwB,OAAO,MAAM;AAAA;AAAA;AAQpC,MAAM,kBAAkB,CAAC,EAAE,kBAAkB,WAAW,GAAG,YAAmB;AACnF,QAAM,EAAE,aAAa,YAAY,IAAI,iBAAiB;AAGpD,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAS,MAAM,YAAY,eAAe;AAAA,MAC1C,MAAK;AAAA,MACL,UAAU;AAAA,MACT,GAAG;AAAA,MACL,UAAA;AAAA,IAAA;AAAA,EAED;AAEJ;AAQO,MAAM,uBAAsD,CAAC;AAAA,EAClE,WAAW,CAAC;AAAA,EACZ,eAAe,CAAC;AAAA,EAChB;AACF,MAAM;AACE,QAAA,EAAE,aAAa,IAAI,uBAAuB;AAC1C,QAAA,EAAE,iBAAiB,IAAI,yBAAyB;AAEtD,QAAM,UAAU;AAAA,IACd;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA,GAAG,aAAa,IAAI,CAAC,WAAW;AAAA,MAC9B,OAAO,YAAY,MAAM;AAAA,MACzB,OAAO,MAAM,KAAK,SAAS,MAAM;AAAA,IAAA,EACjC;AAAA,IACF,GAAG;AAAA,EACL;AAEA,QAAM,eAAe,QAAQ;AAAA,IAC3B,CAAC,WAAW,EAAE,OAAO,SAAS,qBAAqB,iBAAiB,OAAO,KAAK;AAAA,EAAA,EAChF;AAEF,QAAM,kBAAmC;AAAA,IACvC;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS,GAAG,YAAY,IAAI,QAAQ,MAAM;AAAA,MAC1C,WAAWA,kCAAAA,IAAC,iBAAgB,EAAA,SAAkB,YAA0B,CAAA;AAAA,IAAA;AAAA,EAE5E;AAEA,WAAS,QAAQ,CAAC,YAAY,gBAAgB,KAAK,OAAO,CAAC;AAEpD,SAAAA,kCAAA,IAAC,eAAc,EAAA,UAAU,gBAAiB,CAAA;AACnD;"}
1
+ {"version":3,"file":"ProjectTableSettings.es.js","sources":["../../../../../src/components/ProjectTableSettings/ProjectTableSettings.tsx"],"sourcesContent":["import {\n useColumnSettingsContext,\n useProjectTableContext,\n useProjectTableModuleContext,\n} from '@shared/containers/ProjectTreeTable'\nimport { Button, ButtonProps } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport styled from 'styled-components'\nimport { SettingHighlightedId, useSettingsPanel } from '@shared/context'\nimport { SettingsPanel, SettingConfig } from '@shared/components/SettingsPanel'\nimport ColumnsSettings from './ColumnsSettings'\n\nconst StyledCustomizeButton = styled(Button)`\n min-width: 120px;\n`\n\ninterface Props extends ButtonProps {\n defaultSelected?: string | null\n}\n\nexport const CustomizeButton = ({ defaultSelected, ...props }: Props) => {\n const { togglePanel, isPanelOpen } = useSettingsPanel()\n\n return (\n <StyledCustomizeButton\n onClick={() => togglePanel(defaultSelected)}\n icon=\"settings\"\n selected={isPanelOpen}\n {...props}\n >\n Customize\n </StyledCustomizeButton>\n )\n}\n\nexport type OverviewSettingsChange = (setting: 'columns' | 'group-by', value: any) => void\n\nexport type ProjectTableSettingsProps = {\n settings?: SettingConfig[]\n extraColumns?: { value: string; label: string }[]\n highlighted?: SettingHighlightedId\n}\n\nexport const ProjectTableSettings: FC<ProjectTableSettingsProps> = ({\n settings = [],\n extraColumns = [],\n highlighted,\n}) => {\n const { attribFields } = useProjectTableContext()\n const { columnVisibility } = useColumnSettingsContext()\n\n const columns = [\n {\n value: 'thumbnail',\n label: 'Thumbnail',\n },\n {\n value: 'name',\n label: 'Folder / Task',\n },\n {\n value: 'status',\n label: 'Status',\n },\n {\n value: 'subType',\n label: 'Type',\n },\n {\n value: 'assignees',\n label: 'Assignees',\n },\n {\n value: 'tags',\n label: 'Tags',\n },\n ...attribFields.map((field) => ({\n value: 'attrib_' + field.name,\n label: field.data.title || field.name,\n })),\n ...extraColumns,\n ]\n\n const visibleCount = columns.filter(\n (column) => !(column.value in columnVisibility) || columnVisibility[column.value],\n ).length\n\n const defaultSettings: SettingConfig[] = [\n {\n id: 'columns',\n title: 'Columns',\n icon: 'view_column',\n preview: `${visibleCount}/${columns.length}`,\n component: <ColumnsSettings columns={columns} highlighted={highlighted} />,\n },\n ]\n\n settings.forEach((setting) => defaultSettings.push(setting))\n\n return <SettingsPanel settings={defaultSettings} />\n}\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,wBAAwB,OAAO,MAAM;AAAA;AAAA;AAQpC,MAAM,kBAAkB,CAAC,EAAE,iBAAiB,GAAG,YAAmB;AACvE,QAAM,EAAE,aAAa,YAAY,IAAI,iBAAiB;AAGpD,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAS,MAAM,YAAY,eAAe;AAAA,MAC1C,MAAK;AAAA,MACL,UAAU;AAAA,MACT,GAAG;AAAA,MACL,UAAA;AAAA,IAAA;AAAA,EAED;AAEJ;AAUO,MAAM,uBAAsD,CAAC;AAAA,EAClE,WAAW,CAAC;AAAA,EACZ,eAAe,CAAC;AAAA,EAChB;AACF,MAAM;AACE,QAAA,EAAE,aAAa,IAAI,uBAAuB;AAC1C,QAAA,EAAE,iBAAiB,IAAI,yBAAyB;AAEtD,QAAM,UAAU;AAAA,IACd;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA,GAAG,aAAa,IAAI,CAAC,WAAW;AAAA,MAC9B,OAAO,YAAY,MAAM;AAAA,MACzB,OAAO,MAAM,KAAK,SAAS,MAAM;AAAA,IAAA,EACjC;AAAA,IACF,GAAG;AAAA,EACL;AAEA,QAAM,eAAe,QAAQ;AAAA,IAC3B,CAAC,WAAW,EAAE,OAAO,SAAS,qBAAqB,iBAAiB,OAAO,KAAK;AAAA,EAAA,EAChF;AAEF,QAAM,kBAAmC;AAAA,IACvC;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS,GAAG,YAAY,IAAI,QAAQ,MAAM;AAAA,MAC1C,WAAWA,kCAAAA,IAAC,iBAAgB,EAAA,SAAkB,YAA0B,CAAA;AAAA,IAAA;AAAA,EAE5E;AAEA,WAAS,QAAQ,CAAC,YAAY,gBAAgB,KAAK,OAAO,CAAC;AAEpD,SAAAA,kCAAA,IAAC,eAAc,EAAA,UAAU,gBAAiB,CAAA;AACnD;"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const styled = require("styled-components");
4
+ const Menu = styled.ul`
5
+ display: flex;
6
+ flex-direction: column;
7
+ gap: 2px;
8
+ list-style-type: none;
9
+ margin: 0;
10
+ padding: 0;
11
+ `;
12
+ exports.Menu = Menu;
13
+ //# sourceMappingURL=TableSettings.styled.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSettings.styled.cjs.js","sources":["../../../../../src/components/ProjectTableSettings/TableSettings.styled.ts"],"sourcesContent":["import styled from 'styled-components'\n\nexport const Menu = styled.ul`\n display: flex;\n flex-direction: column;\n gap: 2px;\n list-style-type: none;\n margin: 0;\n padding: 0;\n`\n"],"names":[],"mappings":";;;AAEO,MAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;"}
@@ -0,0 +1,13 @@
1
+ import styled from "styled-components";
2
+ const Menu = styled.ul`
3
+ display: flex;
4
+ flex-direction: column;
5
+ gap: 2px;
6
+ list-style-type: none;
7
+ margin: 0;
8
+ padding: 0;
9
+ `;
10
+ export {
11
+ Menu
12
+ };
13
+ //# sourceMappingURL=TableSettings.styled.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSettings.styled.es.js","sources":["../../../../../src/components/ProjectTableSettings/TableSettings.styled.ts"],"sourcesContent":["import styled from 'styled-components'\n\nexport const Menu = styled.ul`\n display: flex;\n flex-direction: column;\n gap: 2px;\n list-style-type: none;\n margin: 0;\n padding: 0;\n`\n"],"names":[],"mappings":";AAEO,MAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("../../../../_virtual/jsx-runtime.cjs.js");
4
+ const ayonReactComponents = require("@ynput/ayon-react-components");
5
+ const reactRouterDom = require("react-router-dom");
6
+ const PowerpackButton = require("../Powerpack/PowerpackButton.cjs.js");
7
+ require("../Powerpack/PricingLink.cjs.js");
8
+ require("../Powerpack/PowerpackDialog.styled.cjs.js");
9
+ require("../../context/RemoteModulesContext.cjs.js");
10
+ require("../../context/DetailsPanelContext.cjs.js");
11
+ require("../../context/ThumbnailUploaderContext.cjs.js");
12
+ require("../../context/SettingsPanelContext.cjs.js");
13
+ require("../../context/pip/PiPProvider.cjs.js");
14
+ require("react-dom");
15
+ require("../../context/pip/PiPWrapper.cjs.js");
16
+ require("../../context/AddonProjectContext.cjs.js");
17
+ require("../../context/AddonContext.cjs.js");
18
+ const PowerpackContext = require("../../context/PowerpackContext.cjs.js");
19
+ const TableSettingsFallback = ({
20
+ requiredVersion,
21
+ feature,
22
+ button,
23
+ children
24
+ }) => {
25
+ const { setPowerpackDialog } = PowerpackContext.usePowerpack();
26
+ if (requiredVersion) {
27
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(jsxRuntime.jsxRuntimeExports.Fragment, { children: [
28
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("span", { children: `Powerpack version ${requiredVersion} is required to use this feature.` }),
29
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(reactRouterDom.Link, { to: `/market?selected=powerpack`, style: { marginLeft: "8px" }, children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(ayonReactComponents.Button, { variant: "tertiary", children: [
30
+ "Install Powerpack ",
31
+ requiredVersion
32
+ ] }) })
33
+ ] });
34
+ }
35
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(jsxRuntime.jsxRuntimeExports.Fragment, { children: [
36
+ !!button && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
37
+ PowerpackButton.PowerpackButton,
38
+ {
39
+ style: { width: "100%" },
40
+ icon: "add",
41
+ filled: true,
42
+ ...button,
43
+ feature
44
+ }
45
+ ),
46
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("div", { onClick: () => setPowerpackDialog(feature), children })
47
+ ] });
48
+ };
49
+ exports.TableSettingsFallback = TableSettingsFallback;
50
+ //# sourceMappingURL=TableSettingsFallback.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSettingsFallback.cjs.js","sources":["../../../../../src/components/ProjectTableSettings/TableSettingsFallback.tsx"],"sourcesContent":["import { Button } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport { Link } from 'react-router-dom'\nimport { PowerpackButton, PowerpackButtonProps } from '../Powerpack'\nimport { PowerpackFeature, usePowerpack } from '@shared/context'\n\nexport interface TableSettingsFallbackProps {\n requiredVersion: string | undefined\n feature: PowerpackFeature\n button?: Omit<PowerpackButtonProps, 'feature'>\n children?: React.ReactNode\n}\n\nexport const TableSettingsFallback: FC<TableSettingsFallbackProps> = ({\n requiredVersion,\n feature,\n button,\n children,\n}) => {\n const { setPowerpackDialog } = usePowerpack()\n if (requiredVersion) {\n return (\n <>\n <span>{`Powerpack version ${requiredVersion} is required to use this feature.`}</span>\n <Link to={`/market?selected=powerpack`} style={{ marginLeft: '8px' }}>\n <Button variant=\"tertiary\">Install Powerpack {requiredVersion}</Button>\n </Link>\n </>\n )\n }\n\n return (\n <>\n {!!button && (\n <PowerpackButton\n style={{ width: '100%' }}\n icon={'add'}\n filled\n {...button}\n feature={feature}\n />\n )}\n {/* press anything inside children and we get powerpack popup */}\n <div onClick={() => setPowerpackDialog(feature)}>{children}</div>\n </>\n )\n}\n"],"names":["usePowerpack","jsxs","Fragment","jsx","Link","Button","PowerpackButton"],"mappings":";;;;;;;;;;;;;;;;;;AAaO,MAAM,wBAAwD,CAAC;AAAA,EACpE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,EAAE,mBAAmB,IAAIA,8BAAa;AAC5C,MAAI,iBAAiB;AACnB,WAEIC,2BAAA,kBAAA,KAAAC,uCAAA,EAAA,UAAA;AAAA,MAACC,2BAAA,kBAAA,IAAA,QAAA,EAAM,UAAqB,qBAAA,eAAe,qCAAoC;AAAA,MAC9EA,2BAAA,kBAAA,IAAAC,eAAA,MAAA,EAAK,IAAI,8BAA8B,OAAO,EAAE,YAAY,MAC3D,GAAA,UAAAH,kDAACI,oBAAAA,QAAO,EAAA,SAAQ,YAAW,UAAA;AAAA,QAAA;AAAA,QAAmB;AAAA,MAAA,EAAA,CAAgB,EAChE,CAAA;AAAA,IAAA,GACF;AAAA,EAAA;AAIJ,SAEKJ,2BAAA,kBAAA,KAAAC,uCAAA,EAAA,UAAA;AAAA,IAAA,CAAC,CAAC,UACDC,2BAAA,kBAAA;AAAA,MAACG,gBAAA;AAAA,MAAA;AAAA,QACC,OAAO,EAAE,OAAO,OAAO;AAAA,QACvB,MAAM;AAAA,QACN,QAAM;AAAA,QACL,GAAG;AAAA,QACJ;AAAA,MAAA;AAAA,IACF;AAAA,qDAGD,OAAI,EAAA,SAAS,MAAM,mBAAmB,OAAO,GAAI,SAAS,CAAA;AAAA,EAAA,GAC7D;AAEJ;;"}
@@ -0,0 +1,50 @@
1
+ import { j as jsxRuntimeExports } from "../../../../_virtual/jsx-runtime.es.js";
2
+ import { Button } from "@ynput/ayon-react-components";
3
+ import { Link } from "react-router-dom";
4
+ import { PowerpackButton } from "../Powerpack/PowerpackButton.es.js";
5
+ import "../Powerpack/PricingLink.es.js";
6
+ import "../Powerpack/PowerpackDialog.styled.es.js";
7
+ import "../../context/RemoteModulesContext.es.js";
8
+ import "../../context/DetailsPanelContext.es.js";
9
+ import "../../context/ThumbnailUploaderContext.es.js";
10
+ import "../../context/SettingsPanelContext.es.js";
11
+ import "../../context/pip/PiPProvider.es.js";
12
+ import "react-dom";
13
+ import "../../context/pip/PiPWrapper.es.js";
14
+ import "../../context/AddonProjectContext.es.js";
15
+ import "../../context/AddonContext.es.js";
16
+ import { usePowerpack } from "../../context/PowerpackContext.es.js";
17
+ const TableSettingsFallback = ({
18
+ requiredVersion,
19
+ feature,
20
+ button,
21
+ children
22
+ }) => {
23
+ const { setPowerpackDialog } = usePowerpack();
24
+ if (requiredVersion) {
25
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
26
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: `Powerpack version ${requiredVersion} is required to use this feature.` }),
27
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: `/market?selected=powerpack`, style: { marginLeft: "8px" }, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Button, { variant: "tertiary", children: [
28
+ "Install Powerpack ",
29
+ requiredVersion
30
+ ] }) })
31
+ ] });
32
+ }
33
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
34
+ !!button && /* @__PURE__ */ jsxRuntimeExports.jsx(
35
+ PowerpackButton,
36
+ {
37
+ style: { width: "100%" },
38
+ icon: "add",
39
+ filled: true,
40
+ ...button,
41
+ feature
42
+ }
43
+ ),
44
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { onClick: () => setPowerpackDialog(feature), children })
45
+ ] });
46
+ };
47
+ export {
48
+ TableSettingsFallback
49
+ };
50
+ //# sourceMappingURL=TableSettingsFallback.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSettingsFallback.es.js","sources":["../../../../../src/components/ProjectTableSettings/TableSettingsFallback.tsx"],"sourcesContent":["import { Button } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport { Link } from 'react-router-dom'\nimport { PowerpackButton, PowerpackButtonProps } from '../Powerpack'\nimport { PowerpackFeature, usePowerpack } from '@shared/context'\n\nexport interface TableSettingsFallbackProps {\n requiredVersion: string | undefined\n feature: PowerpackFeature\n button?: Omit<PowerpackButtonProps, 'feature'>\n children?: React.ReactNode\n}\n\nexport const TableSettingsFallback: FC<TableSettingsFallbackProps> = ({\n requiredVersion,\n feature,\n button,\n children,\n}) => {\n const { setPowerpackDialog } = usePowerpack()\n if (requiredVersion) {\n return (\n <>\n <span>{`Powerpack version ${requiredVersion} is required to use this feature.`}</span>\n <Link to={`/market?selected=powerpack`} style={{ marginLeft: '8px' }}>\n <Button variant=\"tertiary\">Install Powerpack {requiredVersion}</Button>\n </Link>\n </>\n )\n }\n\n return (\n <>\n {!!button && (\n <PowerpackButton\n style={{ width: '100%' }}\n icon={'add'}\n filled\n {...button}\n feature={feature}\n />\n )}\n {/* press anything inside children and we get powerpack popup */}\n <div onClick={() => setPowerpackDialog(feature)}>{children}</div>\n </>\n )\n}\n"],"names":["jsxs","Fragment","jsx"],"mappings":";;;;;;;;;;;;;;;;AAaO,MAAM,wBAAwD,CAAC;AAAA,EACpE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACE,QAAA,EAAE,mBAAmB,IAAI,aAAa;AAC5C,MAAI,iBAAiB;AACnB,WAEIA,kCAAA,KAAAC,4BAAA,EAAA,UAAA;AAAA,MAACC,kCAAA,IAAA,QAAA,EAAM,UAAqB,qBAAA,eAAe,qCAAoC;AAAA,MAC9EA,kCAAA,IAAA,MAAA,EAAK,IAAI,8BAA8B,OAAO,EAAE,YAAY,MAC3D,GAAA,UAAAF,uCAAC,QAAO,EAAA,SAAQ,YAAW,UAAA;AAAA,QAAA;AAAA,QAAmB;AAAA,MAAA,EAAA,CAAgB,EAChE,CAAA;AAAA,IAAA,GACF;AAAA,EAAA;AAIJ,SAEKA,kCAAA,KAAAC,4BAAA,EAAA,UAAA;AAAA,IAAA,CAAC,CAAC,UACDC,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO,EAAE,OAAO,OAAO;AAAA,QACvB,MAAM;AAAA,QACN,QAAM;AAAA,QACL,GAAG;AAAA,QACJ;AAAA,MAAA;AAAA,IACF;AAAA,0CAGD,OAAI,EAAA,SAAS,MAAM,mBAAmB,OAAO,GAAI,SAAS,CAAA;AAAA,EAAA,GAC7D;AAEJ;"}
@@ -93,6 +93,7 @@ require("react-dom");
93
93
  require("../../context/pip/PiPWrapper.cjs.js");
94
94
  require("../../context/AddonProjectContext.cjs.js");
95
95
  require("../../context/AddonContext.cjs.js");
96
+ require("../../context/PowerpackContext.cjs.js");
96
97
  const ReviewableCard = require("../ReviewableCard/ReviewableCard.cjs.js");
97
98
  const ReviewableProgressCard = require("../ReviewableProgressCard/ReviewableProgressCard.cjs.js");
98
99
  require("../FileThumbnail/FileThumbnail.cjs.js");
@@ -137,6 +138,7 @@ require("../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");
137
138
  require("../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");
138
139
  require("../../containers/ProjectTreeTable/context/ProjectTableSelectionContext.cjs.js");
139
140
  require("../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");
141
+ require("../../containers/ProjectTreeTable/context/ProjectTableModulesContext.cjs.js");
140
142
  require("@tanstack/react-table");
141
143
  require("../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");
142
144
  require("../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");
@@ -145,10 +147,12 @@ require("../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");
145
147
  require("../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");
146
148
  require("../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");
147
149
  require("../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");
150
+ require("../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");
148
151
  require("../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");
149
152
  require("../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");
150
153
  require("../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");
151
154
  require("../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");
155
+ require("../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");
152
156
  require("../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");
153
157
  require("../../../../_virtual/runtime.cjs.js");
154
158
  require("../../../../_virtual/semver.cjs.js");
@@ -171,10 +175,14 @@ require("../EntityPath/SegmentProvider.cjs.js");
171
175
  require("../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");
172
176
  require("../Watchers/Watchers.cjs.js");
173
177
  require("../ProjectTableSettings/ProjectTableSettings.cjs.js");
178
+ require("../Powerpack/PowerpackButton.cjs.js");
179
+ require("../Powerpack/PricingLink.cjs.js");
180
+ require("../Powerpack/PowerpackDialog.styled.cjs.js");
174
181
  require("../SettingsPanel/SettingsPanel.cjs.js");
175
182
  require("../SettingsPanel/SettingsPanelItemTemplate.cjs.js");
176
183
  require("../AttributeEditor/components/MinMaxField.cjs.js");
177
184
  require("../EnumEditor/EnumEditor.styled.cjs.js");
185
+ require("../SearchFilter/filterDates.cjs.js");
178
186
  const ReviewablesList = ({
179
187
  projectName,
180
188
  versionId,
@@ -1 +1 @@
1
- {"version":3,"file":"ReviewablesList.cjs.js","sources":["../../../../../src/components/ReviewablesList/ReviewablesList.tsx"],"sourcesContent":["import { FC, MouseEvent, useState } from 'react'\n// queries\nimport { useGetReviewablesForVersionQuery, useHasTranscoderQuery } from '@shared/api'\nimport { useDeleteReviewableMutation, useSortVersionReviewablesMutation } from '@shared/api'\n\n// DND\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n UniqueIdentifier,\n DragEndEvent,\n DragOverlay,\n DragStartEvent,\n} from '@dnd-kit/core'\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable'\n\n// components\nimport { ReviewableCard, ReviewableProgressCard } from '@shared/components'\nimport SortableReviewableCard from './SortableReviewableCard'\nimport * as Styled from './ReviewablesList.styled'\nimport { toast } from 'react-toastify'\n\n// utils\nimport { getGroupedReviewables } from './getGroupedReviewables'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { confirmDelete } from '@shared/util'\nimport EditReviewableDialog from './EditReviewableDialog'\nimport ReviewableUpload from './ReviewablesUpload'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface ReviewablesListProps {\n projectName: string\n versionId: string\n productId: string\n isLoadingVersion: boolean\n scope: string\n}\n\nconst ReviewablesList: FC<ReviewablesListProps> = ({\n projectName,\n versionId,\n productId,\n isLoadingVersion,\n scope,\n}) => {\n const { onOpenViewer, user, viewer } = useDetailsPanelContext()\n // returns all reviewables for a product\n const {\n data: versionReviewables,\n isFetching: isFetchingReviewables,\n currentData,\n } = useGetReviewablesForVersionQuery(\n { projectName, versionId: versionId },\n { skip: !versionId || !projectName },\n )\n\n // do we have the premium transcoder?\n const { data: hasTranscoder } = useHasTranscoderQuery(undefined)\n\n // are we currently looking at review? (is it selected in the viewer)\n const reviewableIds = viewer?.reviewableIds || []\n const userName = user.name\n const currentIsUser = user.data?.isUser\n\n // either null or the reviewable id we are editing\n const [editActivityId, setEditActivityId] = useState<null | string>(null)\n\n // dragging activeId\n const [activeId, setActiveId] = useState<null | string>(null)\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n )\n\n const reviewables = versionReviewables?.reviewables || []\n const draggingReview = reviewables.find((reviewable) => reviewable.fileId === activeId)\n\n const currentVersionId = currentData?.id\n const queryingNewVersion = versionId !== currentVersionId\n\n const isLoading = (isFetchingReviewables && queryingNewVersion) || isLoadingVersion\n\n const handleReviewableClick = (event: MouseEvent<HTMLDivElement>) => {\n // check are not dragging\n if (activeId) return console.log('Dragging, cannot open review')\n\n // get the reviewable id\n const id = event.currentTarget.id\n if (!id || !productId) return console.error('No reviewable id or product id')\n\n const reviewable = reviewables.find((reviewable) => reviewable.fileId === id)\n console.debug(reviewable)\n console.debug(reviewable?.mediaInfo)\n\n // open the reviewable dialog\n onOpenViewer?.({\n projectName: projectName,\n productId: productId,\n versionIds: [versionId],\n reviewableIds: [id],\n })\n }\n\n const { optimized, unoptimized, incompatible, processing, queued } = getGroupedReviewables(\n reviewables,\n hasTranscoder,\n )\n\n const sortableReviewables = [...optimized, ...unoptimized]\n\n function handleDragStart(event: DragStartEvent) {\n const { active } = event\n\n setActiveId(active.id as string)\n }\n\n const [sortVersionReviewables] = useSortVersionReviewablesMutation()\n\n const handleDragEnd = async (event: DragEndEvent) => {\n const { active, over } = event\n\n if (over?.id && active.id !== over.id) {\n console.log('update review position')\n\n const oldIndex = sortableReviewables.findIndex(\n (reviewable) => reviewable.fileId === active.id,\n )\n const newIndex = sortableReviewables.findIndex((reviewable) => reviewable.fileId === over.id)\n\n // resort the reviewables\n const newReviewables = arrayMove(sortableReviewables, oldIndex, newIndex)\n\n const newOrder = newReviewables.map((reviewable) => reviewable.activityId)\n\n try {\n // update the reviewables\n sortVersionReviewables({\n projectName,\n versionId,\n sortReviewablesRequest: { sort: newOrder },\n }).unwrap()\n } catch (error) {\n toast.error('Error sorting reviewables')\n }\n }\n setActiveId(null)\n }\n\n const overlayModifiers = []\n // hack to make the dnd overlay pos work inside dialog\n if (scope === 'review') {\n overlayModifiers.push((args: any) => ({\n ...args.transform,\n x: args.transform.x - 32,\n y: args.transform.y - 32,\n }))\n }\n\n let incompatibleMessage = ''\n if (!hasTranscoder) {\n incompatibleMessage = `The conversion transcoder is only supported on [**Ynput Cloud**](https://ynput.cloud/subscribe/ayon). Please subscribe or [contact support](https://ynput.io/services/) for more information.`\n } else {\n incompatibleMessage = 'The file is not supported by the transcoder'\n }\n\n const handleDownloadFile = (fileId: string, fileName: string = '') => {\n let url = `/api/projects/${projectName}/files/${fileId}`\n\n // if (codec) url += `.${codec}`\n\n // Create an invisible anchor element\n const a = document.createElement('a')\n a.href = url\n a.download = fileName\n document.body.appendChild(a)\n\n // Trigger a click event on the anchor element\n a.click()\n\n // Remove the anchor element from the document\n document.body.removeChild(a)\n }\n\n const [deleteReviewable] = useDeleteReviewableMutation()\n\n const handleDelete = async (activityId: string, label: string) => {\n // @ts-ignore\n confirmDelete({\n header: 'Delete ' + label,\n message: 'Are you sure you want to delete this reviewable?',\n accept: async () => {\n try {\n await deleteReviewable({ activityId, projectName }).unwrap()\n } catch (error) {\n toast.error('Failed to delete reviewable')\n }\n },\n })\n }\n\n // create the ref and model\n const [ctxMenuShow] = useCreateContextMenu()\n\n const handleContextMenu = (event: MouseEvent<HTMLDivElement>) => {\n // get the reviewable by id\n const id = event.currentTarget.id\n\n if (!id) return\n\n const reviewable = reviewables.find((reviewable) => reviewable.fileId === id)\n\n if (!reviewable) return\n\n const originalFileId = reviewable.createdFrom || reviewable.fileId\n const originalReviewable = reviewables.find(\n (reviewable) => reviewable.fileId === originalFileId,\n )\n\n const items: {\n label: string\n icon: string\n onClick?: () => void\n disabled?: boolean\n danger?: boolean\n }[] = [\n {\n label: 'Download original',\n icon: 'download',\n onClick: () => handleDownloadFile(originalFileId, originalReviewable?.filename),\n disabled: !originalReviewable,\n },\n ]\n\n if (userName === reviewable.author.name || !currentIsUser) {\n items.push({\n label: 'Delete',\n icon: 'delete',\n onClick: () => handleDelete(reviewable.activityId, reviewable.label || reviewable.filename),\n danger: true,\n })\n }\n\n // add author\n items.push({\n label: `Author: ${reviewable.author.fullName || reviewable.author.name}`,\n icon: 'person',\n disabled: true,\n })\n\n ctxMenuShow(event, items)\n }\n\n return (\n <>\n <ReviewableUpload projectName={projectName} versionId={versionId} productId={productId}>\n {isLoading ? (\n Array.from({ length: 3 }).map((_, index) => (\n <Styled.LoadingCard key={index} className=\"loading\" />\n ))\n ) : (\n <>\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n onDragCancel={() => setActiveId(null)}\n >\n <SortableContext\n items={reviewables.map(({ fileId }) => fileId as UniqueIdentifier)}\n strategy={verticalListSortingStrategy}\n >\n {sortableReviewables.map((reviewable) => (\n <SortableReviewableCard\n key={reviewable.fileId}\n projectName={projectName}\n onClick={handleReviewableClick}\n isSelected={reviewableIds.includes(reviewable.fileId)}\n isDragging={!!activeId}\n onContextMenu={handleContextMenu}\n onEdit={(e) => {\n e.stopPropagation()\n setEditActivityId(reviewable.activityId)\n }}\n {...reviewable}\n />\n ))}\n </SortableContext>\n\n {/* drag overlay */}\n <DragOverlay modifiers={overlayModifiers}>\n {draggingReview ? (\n <ReviewableCard\n {...draggingReview}\n projectName={projectName}\n isDragOverlay\n isDragging\n isSelected={reviewableIds.includes(draggingReview.fileId)}\n />\n ) : null}\n </DragOverlay>\n </DndContext>\n {processing.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'processing'}\n progress={reviewable.processing?.progress}\n fileId={reviewable.fileId}\n />\n ))}\n\n {queued.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'queued'}\n fileId={reviewable.fileId}\n />\n ))}\n\n {incompatible.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'unsupported'}\n tooltip={incompatibleMessage}\n src={`/api/projects/${projectName}/files/${reviewable.fileId}/thumbnail`}\n onContextMenu={handleContextMenu}\n fileId={reviewable.fileId}\n />\n ))}\n </>\n )}\n </ReviewableUpload>\n\n {editActivityId && (\n <EditReviewableDialog\n isOpen\n onClose={() => setEditActivityId(null)}\n label={\n reviewables.find((reviewable) => reviewable.activityId === editActivityId)?.label || ''\n }\n projectName={projectName}\n versionId={versionId}\n activityId={editActivityId}\n />\n )}\n </>\n )\n}\n\nexport default ReviewablesList\n"],"names":["useDetailsPanelContext","useGetReviewablesForVersionQuery","useHasTranscoderQuery","useState","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","reviewable","getGroupedReviewables","useSortVersionReviewablesMutation","arrayMove","toast","useDeleteReviewableMutation","confirmDelete","useCreateContextMenu","jsxs","Fragment","jsx","ReviewableUpload","Styled.LoadingCard","DndContext","closestCenter","SortableContext","verticalListSortingStrategy","DragOverlay","ReviewableCard","ReviewableProgressCard","_a"],"mappings":"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"}
1
+ {"version":3,"file":"ReviewablesList.cjs.js","sources":["../../../../../src/components/ReviewablesList/ReviewablesList.tsx"],"sourcesContent":["import { FC, MouseEvent, useState } from 'react'\n// queries\nimport { useGetReviewablesForVersionQuery, useHasTranscoderQuery } from '@shared/api'\nimport { useDeleteReviewableMutation, useSortVersionReviewablesMutation } from '@shared/api'\n\n// DND\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n UniqueIdentifier,\n DragEndEvent,\n DragOverlay,\n DragStartEvent,\n} from '@dnd-kit/core'\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable'\n\n// components\nimport { ReviewableCard, ReviewableProgressCard } from '@shared/components'\nimport SortableReviewableCard from './SortableReviewableCard'\nimport * as Styled from './ReviewablesList.styled'\nimport { toast } from 'react-toastify'\n\n// utils\nimport { getGroupedReviewables } from './getGroupedReviewables'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { confirmDelete } from '@shared/util'\nimport EditReviewableDialog from './EditReviewableDialog'\nimport ReviewableUpload from './ReviewablesUpload'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface ReviewablesListProps {\n projectName: string\n versionId: string\n productId: string\n isLoadingVersion: boolean\n scope: string\n}\n\nconst ReviewablesList: FC<ReviewablesListProps> = ({\n projectName,\n versionId,\n productId,\n isLoadingVersion,\n scope,\n}) => {\n const { onOpenViewer, user, viewer } = useDetailsPanelContext()\n // returns all reviewables for a product\n const {\n data: versionReviewables,\n isFetching: isFetchingReviewables,\n currentData,\n } = useGetReviewablesForVersionQuery(\n { projectName, versionId: versionId },\n { skip: !versionId || !projectName },\n )\n\n // do we have the premium transcoder?\n const { data: hasTranscoder } = useHasTranscoderQuery(undefined)\n\n // are we currently looking at review? (is it selected in the viewer)\n const reviewableIds = viewer?.reviewableIds || []\n const userName = user.name\n const currentIsUser = user.data?.isUser\n\n // either null or the reviewable id we are editing\n const [editActivityId, setEditActivityId] = useState<null | string>(null)\n\n // dragging activeId\n const [activeId, setActiveId] = useState<null | string>(null)\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n )\n\n const reviewables = versionReviewables?.reviewables || []\n const draggingReview = reviewables.find((reviewable) => reviewable.fileId === activeId)\n\n const currentVersionId = currentData?.id\n const queryingNewVersion = versionId !== currentVersionId\n\n const isLoading = (isFetchingReviewables && queryingNewVersion) || isLoadingVersion\n\n const handleReviewableClick = (event: MouseEvent<HTMLDivElement>) => {\n // check are not dragging\n if (activeId) return console.log('Dragging, cannot open review')\n\n // get the reviewable id\n const id = event.currentTarget.id\n if (!id || !productId) return console.error('No reviewable id or product id')\n\n const reviewable = reviewables.find((reviewable) => reviewable.fileId === id)\n console.debug(reviewable)\n console.debug(reviewable?.mediaInfo)\n\n // open the reviewable dialog\n onOpenViewer?.({\n projectName: projectName,\n productId: productId,\n versionIds: [versionId],\n reviewableIds: [id],\n })\n }\n\n const { optimized, unoptimized, incompatible, processing, queued } = getGroupedReviewables(\n reviewables,\n hasTranscoder,\n )\n\n const sortableReviewables = [...optimized, ...unoptimized]\n\n function handleDragStart(event: DragStartEvent) {\n const { active } = event\n\n setActiveId(active.id as string)\n }\n\n const [sortVersionReviewables] = useSortVersionReviewablesMutation()\n\n const handleDragEnd = async (event: DragEndEvent) => {\n const { active, over } = event\n\n if (over?.id && active.id !== over.id) {\n console.log('update review position')\n\n const oldIndex = sortableReviewables.findIndex(\n (reviewable) => reviewable.fileId === active.id,\n )\n const newIndex = sortableReviewables.findIndex((reviewable) => reviewable.fileId === over.id)\n\n // resort the reviewables\n const newReviewables = arrayMove(sortableReviewables, oldIndex, newIndex)\n\n const newOrder = newReviewables.map((reviewable) => reviewable.activityId)\n\n try {\n // update the reviewables\n sortVersionReviewables({\n projectName,\n versionId,\n sortReviewablesRequest: { sort: newOrder },\n }).unwrap()\n } catch (error) {\n toast.error('Error sorting reviewables')\n }\n }\n setActiveId(null)\n }\n\n const overlayModifiers = []\n // hack to make the dnd overlay pos work inside dialog\n if (scope === 'review') {\n overlayModifiers.push((args: any) => ({\n ...args.transform,\n x: args.transform.x - 32,\n y: args.transform.y - 32,\n }))\n }\n\n let incompatibleMessage = ''\n if (!hasTranscoder) {\n incompatibleMessage = `The conversion transcoder is only supported on [**Ynput Cloud**](https://ynput.cloud/subscribe/ayon). Please subscribe or [contact support](https://ynput.io/services/) for more information.`\n } else {\n incompatibleMessage = 'The file is not supported by the transcoder'\n }\n\n const handleDownloadFile = (fileId: string, fileName: string = '') => {\n let url = `/api/projects/${projectName}/files/${fileId}`\n\n // if (codec) url += `.${codec}`\n\n // Create an invisible anchor element\n const a = document.createElement('a')\n a.href = url\n a.download = fileName\n document.body.appendChild(a)\n\n // Trigger a click event on the anchor element\n a.click()\n\n // Remove the anchor element from the document\n document.body.removeChild(a)\n }\n\n const [deleteReviewable] = useDeleteReviewableMutation()\n\n const handleDelete = async (activityId: string, label: string) => {\n // @ts-ignore\n confirmDelete({\n header: 'Delete ' + label,\n message: 'Are you sure you want to delete this reviewable?',\n accept: async () => {\n try {\n await deleteReviewable({ activityId, projectName }).unwrap()\n } catch (error) {\n toast.error('Failed to delete reviewable')\n }\n },\n })\n }\n\n // create the ref and model\n const [ctxMenuShow] = useCreateContextMenu()\n\n const handleContextMenu = (event: MouseEvent<HTMLDivElement>) => {\n // get the reviewable by id\n const id = event.currentTarget.id\n\n if (!id) return\n\n const reviewable = reviewables.find((reviewable) => reviewable.fileId === id)\n\n if (!reviewable) return\n\n const originalFileId = reviewable.createdFrom || reviewable.fileId\n const originalReviewable = reviewables.find(\n (reviewable) => reviewable.fileId === originalFileId,\n )\n\n const items: {\n label: string\n icon: string\n onClick?: () => void\n disabled?: boolean\n danger?: boolean\n }[] = [\n {\n label: 'Download original',\n icon: 'download',\n onClick: () => handleDownloadFile(originalFileId, originalReviewable?.filename),\n disabled: !originalReviewable,\n },\n ]\n\n if (userName === reviewable.author.name || !currentIsUser) {\n items.push({\n label: 'Delete',\n icon: 'delete',\n onClick: () => handleDelete(reviewable.activityId, reviewable.label || reviewable.filename),\n danger: true,\n })\n }\n\n // add author\n items.push({\n label: `Author: ${reviewable.author.fullName || reviewable.author.name}`,\n icon: 'person',\n disabled: true,\n })\n\n ctxMenuShow(event, items)\n }\n\n return (\n <>\n <ReviewableUpload projectName={projectName} versionId={versionId} productId={productId}>\n {isLoading ? (\n Array.from({ length: 3 }).map((_, index) => (\n <Styled.LoadingCard key={index} className=\"loading\" />\n ))\n ) : (\n <>\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n onDragCancel={() => setActiveId(null)}\n >\n <SortableContext\n items={reviewables.map(({ fileId }) => fileId as UniqueIdentifier)}\n strategy={verticalListSortingStrategy}\n >\n {sortableReviewables.map((reviewable) => (\n <SortableReviewableCard\n key={reviewable.fileId}\n projectName={projectName}\n onClick={handleReviewableClick}\n isSelected={reviewableIds.includes(reviewable.fileId)}\n isDragging={!!activeId}\n onContextMenu={handleContextMenu}\n onEdit={(e) => {\n e.stopPropagation()\n setEditActivityId(reviewable.activityId)\n }}\n {...reviewable}\n />\n ))}\n </SortableContext>\n\n {/* drag overlay */}\n <DragOverlay modifiers={overlayModifiers}>\n {draggingReview ? (\n <ReviewableCard\n {...draggingReview}\n projectName={projectName}\n isDragOverlay\n isDragging\n isSelected={reviewableIds.includes(draggingReview.fileId)}\n />\n ) : null}\n </DragOverlay>\n </DndContext>\n {processing.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'processing'}\n progress={reviewable.processing?.progress}\n fileId={reviewable.fileId}\n />\n ))}\n\n {queued.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'queued'}\n fileId={reviewable.fileId}\n />\n ))}\n\n {incompatible.map((reviewable) => (\n <ReviewableProgressCard\n key={reviewable.fileId}\n name={reviewable.filename}\n type={'unsupported'}\n tooltip={incompatibleMessage}\n src={`/api/projects/${projectName}/files/${reviewable.fileId}/thumbnail`}\n onContextMenu={handleContextMenu}\n fileId={reviewable.fileId}\n />\n ))}\n </>\n )}\n </ReviewableUpload>\n\n {editActivityId && (\n <EditReviewableDialog\n isOpen\n onClose={() => setEditActivityId(null)}\n label={\n reviewables.find((reviewable) => reviewable.activityId === editActivityId)?.label || ''\n }\n projectName={projectName}\n versionId={versionId}\n activityId={editActivityId}\n />\n )}\n </>\n )\n}\n\nexport default ReviewablesList\n"],"names":["useDetailsPanelContext","useGetReviewablesForVersionQuery","useHasTranscoderQuery","useState","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","reviewable","getGroupedReviewables","useSortVersionReviewablesMutation","arrayMove","toast","useDeleteReviewableMutation","confirmDelete","useCreateContextMenu","jsxs","Fragment","jsx","ReviewableUpload","Styled.LoadingCard","DndContext","closestCenter","SortableContext","verticalListSortingStrategy","DragOverlay","ReviewableCard","ReviewableProgressCard","_a"],"mappings":"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"}
@@ -92,6 +92,7 @@ import "react-dom";
92
92
  import "../../context/pip/PiPWrapper.es.js";
93
93
  import "../../context/AddonProjectContext.es.js";
94
94
  import "../../context/AddonContext.es.js";
95
+ import "../../context/PowerpackContext.es.js";
95
96
  import { ReviewableCard } from "../ReviewableCard/ReviewableCard.es.js";
96
97
  import { ReviewableProgressCard } from "../ReviewableProgressCard/ReviewableProgressCard.es.js";
97
98
  import "../FileThumbnail/FileThumbnail.es.js";
@@ -136,6 +137,7 @@ import "../../containers/ProjectTreeTable/context/CellEditingContext.es.js";
136
137
  import "../../containers/ProjectTreeTable/context/ClipboardContext.es.js";
137
138
  import "../../containers/ProjectTreeTable/context/ProjectTableSelectionContext.es.js";
138
139
  import "../../containers/ProjectTreeTable/context/ProjectDataContext.es.js";
140
+ import "../../containers/ProjectTreeTable/context/ProjectTableModulesContext.es.js";
139
141
  import "@tanstack/react-table";
140
142
  import "../../containers/ProjectTreeTable/widgets/CollapsedWidget.es.js";
141
143
  import "../../containers/ProjectTreeTable/widgets/DateWidget.es.js";
@@ -144,10 +146,12 @@ import "../../containers/ProjectTreeTable/widgets/TextWidget.es.js";
144
146
  import "../../containers/ProjectTreeTable/widgets/BooleanWidget.es.js";
145
147
  import "../../containers/ProjectTreeTable/widgets/CellWidget.es.js";
146
148
  import "../../containers/ProjectTreeTable/widgets/EntityNameWidget.es.js";
149
+ import "../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js";
147
150
  import "../../containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js";
148
151
  import "../../containers/ProjectTreeTable/ProjectTreeTable.styled.es.js";
149
152
  import "../../containers/ProjectTreeTable/components/SelectionCell.es.js";
150
153
  import "../../containers/ProjectTreeTable/components/RowSelectionHeader.es.js";
154
+ import "../../containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js";
151
155
  import "../../containers/DetailsPanel/DetailsPanel.styled.es.js";
152
156
  import "../../../../_virtual/runtime.es.js";
153
157
  import "../../../../_virtual/semver.es.js";
@@ -170,10 +174,14 @@ import "../EntityPath/SegmentProvider.es.js";
170
174
  import "../DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js";
171
175
  import "../Watchers/Watchers.es.js";
172
176
  import "../ProjectTableSettings/ProjectTableSettings.es.js";
177
+ import "../Powerpack/PowerpackButton.es.js";
178
+ import "../Powerpack/PricingLink.es.js";
179
+ import "../Powerpack/PowerpackDialog.styled.es.js";
173
180
  import "../SettingsPanel/SettingsPanel.es.js";
174
181
  import "../SettingsPanel/SettingsPanelItemTemplate.es.js";
175
182
  import "../AttributeEditor/components/MinMaxField.es.js";
176
183
  import "../EnumEditor/EnumEditor.styled.es.js";
184
+ import "../SearchFilter/filterDates.es.js";
177
185
  const ReviewablesList = ({
178
186
  projectName,
179
187
  versionId,