@ynput/ayon-frontend-shared 0.3.21 → 0.3.23

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 (360) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +23 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/_virtual/index.cjs15.js +1 -1
  5. package/dist/_virtual/index.cjs19.js +1 -1
  6. package/dist/_virtual/index.cjs6.js +1 -1
  7. package/dist/_virtual/index.cjs8.js +1 -1
  8. package/dist/_virtual/index.es15.js +2 -2
  9. package/dist/_virtual/index.es16.js +2 -2
  10. package/dist/_virtual/index.es17.js +2 -2
  11. package/dist/_virtual/index.es18.js +2 -2
  12. package/dist/_virtual/index.es19.js +2 -2
  13. package/dist/_virtual/index.es6.js +2 -2
  14. package/dist/_virtual/index.es8.js +2 -2
  15. package/dist/components.cjs.js +1 -1
  16. package/dist/components.es.js +157 -155
  17. package/dist/components.es.js.map +1 -1
  18. package/dist/index.cjs.js +1 -1
  19. package/dist/index.es.js +10 -9
  20. package/dist/index.es.js.map +1 -1
  21. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  22. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  23. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  24. package/dist/node_modules/remove-accents/index.es.js +1 -1
  25. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  26. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  27. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  28. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  29. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  30. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  31. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  32. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  33. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  34. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  35. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  36. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  37. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  38. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  39. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  40. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  41. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
  42. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
  43. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +155 -175
  44. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
  45. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js +2 -0
  46. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js.map +1 -0
  47. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js +77 -0
  48. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js.map +1 -0
  49. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  50. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  51. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +3 -2
  52. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  53. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  54. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  55. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +3 -2
  56. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  57. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js +1 -1
  58. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js.map +1 -1
  59. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js +26 -24
  60. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js.map +1 -1
  61. package/dist/shared/src/components/EnumEditor/EnumEditor.cjs.js +1 -1
  62. package/dist/shared/src/components/EnumEditor/EnumEditor.cjs.js.map +1 -1
  63. package/dist/shared/src/components/EnumEditor/EnumEditor.es.js +63 -60
  64. package/dist/shared/src/components/EnumEditor/EnumEditor.es.js.map +1 -1
  65. package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js +1 -1
  66. package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js.map +1 -1
  67. package/dist/shared/src/components/EnumEditor/EnumEditorItem.es.js +110 -89
  68. package/dist/shared/src/components/EnumEditor/EnumEditorItem.es.js.map +1 -1
  69. package/dist/shared/src/components/EnumEditor/hooks/useDraggable.cjs.js +1 -1
  70. package/dist/shared/src/components/EnumEditor/hooks/useDraggable.cjs.js.map +1 -1
  71. package/dist/shared/src/components/EnumEditor/hooks/useDraggable.es.js +36 -28
  72. package/dist/shared/src/components/EnumEditor/hooks/useDraggable.es.js.map +1 -1
  73. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  74. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  75. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +3 -2
  76. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  77. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  78. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  79. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +3 -2
  80. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  81. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  82. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  83. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +5 -4
  84. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  85. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  86. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  87. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +3 -2
  88. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  89. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  90. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  91. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +3 -2
  92. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  93. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  94. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  95. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +3 -2
  96. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  97. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  98. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  99. package/dist/shared/src/components/RenameForm/RenameForm.es.js +3 -2
  100. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  101. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  102. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  103. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +3 -2
  104. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  105. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  106. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  107. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +4 -3
  108. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  109. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  110. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  111. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +3 -2
  112. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  113. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +2 -0
  114. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -0
  115. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +307 -0
  116. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -0
  117. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js +1 -1
  118. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js.map +1 -1
  119. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js +64 -322
  120. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js.map +1 -1
  121. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.styled.cjs.js +22 -5
  122. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.styled.cjs.js.map +1 -1
  123. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.styled.es.js +27 -9
  124. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.styled.es.js.map +1 -1
  125. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  126. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  127. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +5 -4
  128. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  129. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  130. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  131. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +3 -2
  132. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  133. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  134. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  135. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +3 -2
  136. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  137. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  138. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  139. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +5 -4
  140. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  141. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  142. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  143. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +3 -2
  144. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  145. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  146. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  147. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +3 -2
  148. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  149. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  150. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  151. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +3 -2
  152. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  153. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  154. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  155. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +3 -2
  156. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  157. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  158. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  159. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +3 -2
  160. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  161. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  162. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  163. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +3 -2
  164. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  165. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  166. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  167. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +17 -16
  168. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  169. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  170. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  171. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +3 -2
  172. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  173. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  174. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  175. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +3 -2
  176. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  177. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  178. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  179. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +3 -2
  180. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  181. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  182. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  183. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +3 -2
  184. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  185. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  186. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  187. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +3 -2
  188. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  189. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  190. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  191. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +3 -2
  192. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  193. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  194. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  195. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +3 -2
  196. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  197. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  198. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  199. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +3 -2
  200. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  201. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  202. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  203. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +3 -2
  204. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  205. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  206. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  207. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +3 -2
  208. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  209. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  210. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  211. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +7 -6
  212. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  213. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  214. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  215. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +3 -2
  216. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  217. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  218. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  219. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +3 -2
  220. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  221. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  222. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  223. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +3 -2
  224. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  225. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  226. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  227. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +3 -2
  228. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  229. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  230. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  231. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +3 -2
  232. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  233. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  234. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  235. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +3 -2
  236. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  237. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  238. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  239. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +3 -2
  240. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  241. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  242. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  243. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +3 -2
  244. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  245. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  246. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  247. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +6 -5
  248. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  249. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  250. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  251. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +3 -2
  252. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  253. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  254. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  255. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +3 -2
  256. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  257. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  258. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +3 -2
  260. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  261. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  262. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  263. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +3 -2
  264. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  266. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  267. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +3 -2
  268. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  269. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  270. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  271. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +3 -2
  272. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  274. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +3 -2
  276. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  277. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  278. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  279. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +3 -2
  280. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  281. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  282. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  283. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +3 -2
  284. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  285. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  286. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  287. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +3 -2
  288. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  289. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  290. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  291. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +9 -8
  292. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  293. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  294. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  295. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +14 -13
  296. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  297. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +1 -1
  298. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
  299. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +1 -0
  300. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
  301. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  302. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  303. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +4 -3
  304. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  305. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  306. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  307. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +5 -4
  308. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  309. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  310. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  311. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +3 -2
  312. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  314. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  315. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +3 -2
  316. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  317. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  318. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  319. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +3 -2
  320. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  321. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  322. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  323. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +3 -2
  324. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  325. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  326. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  327. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +3 -2
  328. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  329. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  330. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  331. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +3 -2
  332. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  333. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  334. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  335. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +4 -4
  336. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  337. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  338. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  339. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +3 -2
  340. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  341. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  342. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  343. package/dist/shared/src/context/WebsocketContext.es.js +5 -4
  344. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  345. package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
  346. package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
  347. package/dist/shared/src/util/getAttributeIcon.cjs.js +1 -1
  348. package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -1
  349. package/dist/shared/src/util/getAttributeIcon.es.js +5 -5
  350. package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -1
  351. package/dist/types/components/AttributeEditor/attributeTypeMap.d.ts +13 -0
  352. package/dist/types/components/AttributeEditor/index.d.ts +1 -0
  353. package/dist/types/components/EnumEditor/DraggableEnumEditorItem.d.ts +2 -1
  354. package/dist/types/components/EnumEditor/EnumEditor.d.ts +2 -1
  355. package/dist/types/components/EnumEditor/EnumEditorItem.d.ts +2 -1
  356. package/dist/types/components/EnumEditor/hooks/useDraggable.d.ts +3 -1
  357. package/dist/types/components/ReviewablesSelector/Card.d.ts +18 -0
  358. package/dist/types/components/ReviewablesSelector/ReviewablesSelector.d.ts +1 -2
  359. package/dist/types/components/ReviewablesSelector/ReviewablesSelector.styled.d.ts +1 -0
  360. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";const n=require("../../../../_virtual/jsx-runtime.cjs.js"),s=require("react"),l=require("./ReviewablesSelector.styled.cjs.js"),h=require("clsx");require("../AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("@ynput/ayon-react-components");require("../AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../AccessUser/AccessUser.cjs.js");require("lodash");require("../AttributeEditor/components/MinMaxField.cjs.js");require("react-dom");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../EnumEditor/EnumEditor.styled.cjs.js");require("../Badge/Badge.cjs.js");require("../Chips/Chips.cjs.js");require("date-fns");require("../DateRangePicker/DateRangePicker.styled.cjs.js");require("../LinksManager/CellEditingDialog.cjs.js");require("react-toastify");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/projectFolders.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/config/getConfig.cjs.js");require("../../api/queries/config/updateConfig.cjs.js");require("../../api/queries/entities/getEntity.cjs.js");require("../../api/queries/entities/getEntityPanel.cjs.js");require("../../api/queries/entities/updateEntity.cjs.js");require("../../api/queries/entityLists/getLists.cjs.js");require("../../api/queries/entityLists/updateLists.cjs.js");require("../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/entityLists/listFolders.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");require("../../api/queries/links/getLinks.cjs.js");require("../../api/queries/links/getEntityLinks.cjs.js");require("../../api/queries/overview/getOverview.cjs.js");require("../../api/queries/overview/updateOverview.cjs.js");require("../../api/queries/versions/getVersionsProducts.cjs.js");require("../../api/queries/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/products/getFolderProducts.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/projectFolders/projectFolders.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/tasks/getTasks.cjs.js");require("../../api/queries/tasks/updateTasks.cjs.js");require("../../api/queries/teams/getTeams.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/users/guests.cjs.js");require("../../api/queries/versions/updateVersions.cjs.js");require("../../api/queries/views/getViews.cjs.js");require("../../api/queries/views/updateViews.cjs.js");require("../../api/queries/watchers/getWatchers.cjs.js");require("../../api/queries/uris/getUris.cjs.js");require("../../../../_virtual/index.cjs.js");require("../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("uuid");const k=require("../../util/isHTMLElement.cjs.js");require("../../util/pubsub.cjs.js");require("../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../DetailsPanelDetails/DetailsSection.cjs.js");require("../DetailsPanelDetails/FieldLabel.cjs.js");require("../DoneCheckbox/DoneCheckbox.cjs.js");require("../EarlyPreview/EarlyPreview.cjs.js");require("../EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../containers/ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../containers/Feed/context/FeedContext.cjs.js");require("../../containers/Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../context/RemoteModulesContext.cjs.js");require("../../context/DetailsPanelContext.cjs.js");require("../../context/SubtasksModulesContext.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("../../context/pip/PiPWrapper.cjs.js");require("../../context/AddonProjectContext.cjs.js");require("../../context/AddonContext.cjs.js");require("../../context/PowerpackContext.cjs.js");require("../../context/MoveEntityContext.cjs.js");require("../../context/MenuContext.cjs.js");require("../../context/WebsocketContext.cjs.js");require("../../context/GlobalContext.cjs.js");require("../../context/ProjectContext.cjs.js");require("../../context/ProjectFoldersContext.cjs.js");require("../../context/UriContext.cjs.js");require("../../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../containers/Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../containers/Feed/components/CommentInput/CommentInput.cjs.js");require("../../containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../containers/Feed/components/ActivityDate.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("rehype-raw");require("../../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../containers/Feed/Feed.styled.cjs.js");require("../../containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js");require("../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../LinksManager/LinksManager.styled.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../containers/ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../../containers/ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("../SearchFilter/filterDates.cjs.js");require("short-uuid");require("../../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../../containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../containers/Slicer/components/Slicer.cjs.js");require("../../containers/Slicer/context/SlicerContext.cjs.js");require("../../containers/Slicer/hooks/useTableDataBySlice.cjs.js");require("../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../PlayableIcon/PlayableIcon.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../containers/Actions/Actions.styled.cjs.js");require("../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../containers/Actions/ActionIcon.cjs.js");require("../../containers/Views/context/ViewsContext.cjs.js");require("../../containers/Views/Views.styled.cjs.js");require("../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");require("../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../ReviewablesList/ReviewablesList.styled.cjs.js");require("../ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../EntityPath/EntityPath.styled.cjs.js");require("../EntityPath/SegmentProvider.cjs.js");require("../FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../Feedback/FeedbackContext.cjs.js");require("../Feedback/SupportBubble.cjs.js");const L=require("../FileThumbnail/FileThumbnail.cjs.js");require("../LegacyBadge/LegacyBadge.cjs.js");require("../Powerpack/PowerpackButton.cjs.js");require("../Powerpack/PricingLink.cjs.js");require("../Powerpack/PowerpackDialog.styled.cjs.js");require("../Powerpack/CTAButton.cjs.js");require("../Powerpack/RequiredAddonVersion.cjs.js");require("../ProjectTableSettings/ProjectTableSettings.cjs.js");require("../SizeSlider/SizeSlider.cjs.js");require("../ReviewableCard/ReviewableCard.cjs.js");require("../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../SettingsPanel/SettingsPanel.cjs.js");require("../SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../ShareOptionIcon/ShareOptionIcon.cjs.js");require("../SimpleFormDialog/SimpleFormDialog.cjs.js");require("../StyledLink/StyledLink.cjs.js");require("../TableGridSwitch/TableGridSwitch.cjs.js");require("../Thumbnail/Thumbnail.styled.cjs.js");require("../Thumbnail/StackedThumbnails.cjs.js");require("../ThumbnailSimple/ThumbnailSimple.cjs.js");require("../VersionUploader/components/UploadVersionDialog.cjs.js");require("../VersionUploader/context/VersionUploadContext.cjs.js");require("../Watchers/Watchers.cjs.js");require("../Menu/Menu.styled.cjs.js");require("../Menu/MenuItem.cjs.js");const S=({reviewables:q=[],selected:a=[],projectName:g,onChange:t,onUpload:x})=>{const w=s.useRef(null),d=s.useRef(null),[R,c]=s.useState(null),[E,b]=s.useState(null),v=()=>d.current?.scrollTop||0,j=e=>{const r=d.current,i=document.getElementById("preview-"+e);if(!r||!i)return;const u=r.getBoundingClientRect(),o=i.getBoundingClientRect();o.top<u.top?r.scrollTop-=u.top-o.top:o.bottom>u.bottom&&(r.scrollTop+=o.bottom-u.bottom),w.current?.updateScroll?.()};s.useEffect(()=>{if(q.length===1)return;const e=r=>{if(["w","s","ArrowUp","ArrowDown"].includes(r.key)){if(k(r.target)&&(r.target.tagName==="INPUT"||r.target.tagName==="TEXTAREA"||r.target.isContentEditable))return;const i=q.findIndex(({fileId:f})=>a.includes(f)),u=r.key==="w"||r.key==="ArrowUp"?i-1:i+1,o=q[u<0?q.length-1:u%q.length],p=o.fileId;t&&t(p),requestAnimationFrame(()=>j(p)),c(o.label??null);const m=document.getElementById("preview-"+p);if(m){const f=m.offsetTop+m.offsetHeight/2-v();b(f)}}};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[a,q,t]),s.useEffect(()=>{const e=r=>{r.target.closest(".reviewables")||c(null)};return window.addEventListener("mousemove",e),()=>{window.removeEventListener("mousemove",e)}},[]);const T=(e,{label:r})=>{const i=e.target.closest(".reviewable-card");if(!i)return;c(r??null);const u=i.offsetTop+i.offsetHeight/2-v();b(u)},y=e=>{if(e.key==="Enter"||e.key===" "){const r=e.target.closest(".reviewable-card");if(!r)return;const i=r.id.replace("preview-","");t&&t(i)}};return q.length?n.jsxRuntimeExports.jsxs(l.ReviewablesSelector,{children:[n.jsxRuntimeExports.jsxs(l.Scrollable,{className:"reviewables",ref:w,containerRef:e=>{d.current=e},children:[q.map(({fileId:e,label:r})=>n.jsxRuntimeExports.jsx(l.ReviewableCard,{id:"preview-"+e,onClick:()=>t&&t(e),className:h("reviewable-card",{selected:a.includes(e)}),onMouseOver:i=>T(i,{label:r}),onKeyDown:y,tabIndex:0,children:n.jsxRuntimeExports.jsx(L.FileThumbnail,{src:`/api/projects/${g}/files/${e}/thumbnail`})},e)),!!x&&n.jsxRuntimeExports.jsx(l.AddButton,{icon:"add",onClick:x,onMouseEnter:()=>c(null)})]}),R&&E&&n.jsxRuntimeExports.jsx(l.Label,{style:{top:E},children:R})]}):n.jsxRuntimeExports.jsx("div",{})};module.exports=S;
1
+ "use strict";const c=require("../../../../_virtual/jsx-runtime.cjs.js"),i=require("react"),d=require("./ReviewablesSelector.styled.cjs.js");require("lodash");require("react-toastify");require("uuid");const I=require("../../util/isHTMLElement.cjs.js");require("../../util/pubsub.cjs.js");const h=require("./Card.cjs.js"),k=({reviewables:r=[],selected:a=[],projectName:y,onChange:l,onUpload:w})=>{const R=i.useRef(null),f=i.useRef(null),[E,u]=i.useState(null),[g,v]=i.useState(null),b=()=>f.current?.scrollTop||0,T=t=>{const e=f.current,o=document.getElementById("preview-"+t);if(!e||!o)return;const n=e.getBoundingClientRect(),s=o.getBoundingClientRect();s.top<n.top?e.scrollTop-=n.top-s.top:s.bottom>n.bottom&&(e.scrollTop+=s.bottom-n.bottom),R.current?.updateScroll?.()};i.useEffect(()=>{if(r.length===1)return;const t=e=>{if(["w","s","ArrowUp","ArrowDown"].includes(e.key)){if(I(e.target)&&(e.target.tagName==="INPUT"||e.target.tagName==="TEXTAREA"||e.target.isContentEditable))return;const o=r.findIndex(({fileId:x})=>a.includes(x)),n=e.key==="w"||e.key==="ArrowUp"?o-1:o+1,s=r[n<0?r.length-1:n%r.length],p=s.fileId;l&&l(p),requestAnimationFrame(()=>T(p)),u(s.label??null);const m=document.getElementById("preview-"+p);if(m){const x=m.offsetTop+m.offsetHeight/2-b();v(x)}}};return window.addEventListener("keydown",t),()=>{window.removeEventListener("keydown",t)}},[a,r,l]),i.useEffect(()=>{const t=e=>{e.target.closest(".reviewables")||u(null)};return window.addEventListener("mousemove",t),()=>{window.removeEventListener("mousemove",t)}},[]);const j=(t,{label:e})=>{const o=t.target.closest(".reviewable-card");if(!o)return;u(e??null);const n=o.offsetTop+o.offsetHeight/2-b();v(n)},q=t=>{if(t.key==="Enter"||t.key===" "){const e=t.target.closest(".reviewable-card");if(!e)return;const o=e.id.replace("preview-","");l&&l(o)}};return r.length?c.jsxRuntimeExports.jsxs(d.ReviewablesSelector,{children:[c.jsxRuntimeExports.jsxs(d.Scrollable,{className:"reviewables",ref:R,containerRef:t=>{f.current=t},children:[r.map(({fileId:t,label:e,tag:o,selectionVariant:n,contextMenuItems:s})=>c.jsxRuntimeExports.jsx(h,{projectName:y,fileId:t,label:e,selected:a.includes(t),selectionVariant:n,tag:o,contextMenuItems:s,onChange:l,onKeyDown:q,onMouseOver:j})),!!w&&c.jsxRuntimeExports.jsx(d.AddButton,{icon:"add",onClick:w,onMouseEnter:()=>u(null)})]}),E&&g&&c.jsxRuntimeExports.jsx(d.Label,{style:{top:g},children:E})]}):c.jsxRuntimeExports.jsx("div",{})};module.exports=k;
2
2
  //# sourceMappingURL=ReviewablesSelector.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReviewablesSelector.cjs.js","sources":["../../../../../src/components/ReviewablesSelector/ReviewablesSelector.tsx"],"sourcesContent":["import { FC, useEffect, useRef, useState } from 'react'\nimport * as Styled from './ReviewablesSelector.styled'\nimport clsx from 'clsx'\nimport { FileThumbnail } from '@shared/components'\nimport { ReviewableModel } from '@shared/api'\nimport { isHTMLElement } from '@shared/util'\nimport ScrollBar from 'react-perfect-scrollbar'\n\ntype ReviewableCard = Pick<ReviewableModel, 'fileId' | 'label' | 'fileId'>\n\ninterface ReviewablesSelectorProps {\n reviewables: ReviewableCard[]\n selected: string[]\n projectName: string | null\n onChange?: (fileId: string) => void\n onUpload?: () => void\n}\n\nconst ReviewablesSelector: FC<ReviewablesSelectorProps> = ({\n reviewables = [],\n selected = [],\n projectName,\n onChange,\n onUpload,\n}) => {\n const scrollRef = useRef<ScrollBar>(null)\n const scrollContainerRef = useRef<HTMLElement | null>(null)\n const [labelTooltip, setLabelTooltip] = useState<null | string>(null)\n const [labelTooltipYPos, setLabelTooltipYPos] = useState<null | number>(null)\n\n const getScrollTop = (): number => {\n return scrollContainerRef.current?.scrollTop || 0\n }\n\n const scrollReviewableIntoView = (fileId: string) => {\n const container = scrollContainerRef.current\n const el = document.getElementById('preview-' + fileId)\n if (!container || !el) return\n\n const containerRect = container.getBoundingClientRect()\n const itemRect = el.getBoundingClientRect()\n\n if (itemRect.top < containerRect.top) {\n container.scrollTop -= containerRect.top - itemRect.top\n } else if (itemRect.bottom > containerRect.bottom) {\n container.scrollTop += itemRect.bottom - containerRect.bottom\n }\n\n // keep the custom scrollbar thumb in sync with manual scrollTop updates\n // @ts-ignore\n scrollRef.current?.updateScroll?.()\n }\n\n // add keyboard support\n // use up and down arrow keys to navigate through the reviewables\n // if at top and press up, go to bottom, if at bottom and press down, go to top\n useEffect(() => {\n if (reviewables.length === 1) return\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (['w', 's', 'ArrowUp', 'ArrowDown'].includes(e.key)) {\n // Check if e.target is an HTMLElement before accessing tagName or isContentEditable\n if (isHTMLElement(e.target)) {\n if (e.target.tagName === 'INPUT' || e.target.tagName === 'TEXTAREA') return\n if (e.target.isContentEditable) return\n }\n\n const currentIndex = reviewables.findIndex(({ fileId }) => selected.includes(fileId))\n const nextIndex = e.key === 'w' || e.key === 'ArrowUp' ? currentIndex - 1 : currentIndex + 1\n const nextReviewable =\n reviewables[nextIndex < 0 ? reviewables.length - 1 : nextIndex % reviewables.length]\n const nextFileId = nextReviewable.fileId\n\n onChange && onChange(nextFileId)\n requestAnimationFrame(() => scrollReviewableIntoView(nextFileId))\n // also set new label for the tooltip\n setLabelTooltip(nextReviewable.label ?? null)\n // set label tooltip position\n const el = document.getElementById('preview-' + nextFileId)\n\n if (el) {\n const top = el.offsetTop + el.offsetHeight / 2 - getScrollTop()\n setLabelTooltipYPos(top)\n }\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown)\n }\n }, [selected, reviewables, onChange])\n\n // keep track of when NOT hovering over the reviewable cards\n useEffect(() => {\n const handleMouseMove = (event: MouseEvent) => {\n // check if the mouse is over a reviewable card\n const closest = (event.target as HTMLElement).closest('.reviewables')\n if (!closest) {\n setLabelTooltip(null)\n }\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove)\n }\n }, [])\n\n const handleMouseOver = (\n event: React.MouseEvent<HTMLDivElement>,\n { label }: Pick<ReviewableCard, 'label'>,\n ) => {\n // check event is coming from a reviewable card\n const closest = (event.target as HTMLElement).closest('.reviewable-card') as HTMLElement\n if (!closest) return\n setLabelTooltip(label ?? null)\n // set label tooltip position\n const top = closest.offsetTop + closest.offsetHeight / 2 - getScrollTop()\n setLabelTooltipYPos(top)\n }\n\n // select with enter or space key when focused on a reviewable card\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Enter' || event.key === ' ') {\n const closest = (event.target as HTMLElement).closest('.reviewable-card') as HTMLElement\n if (!closest) return\n const fileId = closest.id.replace('preview-', '')\n onChange && onChange(fileId)\n }\n }\n\n // if no reviewables, return null\n if (!reviewables.length) return <div />\n\n return (\n <Styled.ReviewablesSelector>\n <Styled.Scrollable\n className=\"reviewables\"\n ref={scrollRef}\n containerRef={(ref) => {\n scrollContainerRef.current = ref\n }}\n >\n {reviewables.map(({ fileId, label }) => (\n <Styled.ReviewableCard\n key={fileId}\n id={'preview-' + fileId}\n onClick={() => onChange && onChange(fileId)}\n className={clsx('reviewable-card', { selected: selected.includes(fileId) })}\n onMouseOver={(e) => handleMouseOver(e, { label })}\n onKeyDown={handleKeyDown}\n tabIndex={0}\n >\n <FileThumbnail src={`/api/projects/${projectName}/files/${fileId}/thumbnail`} />\n </Styled.ReviewableCard>\n ))}\n {!!onUpload && (\n <Styled.AddButton\n icon=\"add\"\n onClick={onUpload}\n onMouseEnter={() => setLabelTooltip(null)}\n />\n )}\n </Styled.Scrollable>\n {labelTooltip && labelTooltipYPos && (\n <Styled.Label style={{ top: labelTooltipYPos }}>{labelTooltip}</Styled.Label>\n )}\n </Styled.ReviewablesSelector>\n )\n}\n\nexport default ReviewablesSelector\n"],"names":["ReviewablesSelector","reviewables","selected","projectName","onChange","onUpload","scrollRef","useRef","scrollContainerRef","labelTooltip","setLabelTooltip","useState","labelTooltipYPos","setLabelTooltipYPos","getScrollTop","scrollReviewableIntoView","fileId","container","el","containerRect","itemRect","useEffect","handleKeyDown","e","isHTMLElement","currentIndex","nextIndex","nextReviewable","nextFileId","top","handleMouseMove","event","handleMouseOver","label","closest","jsxs","Styled.ReviewablesSelector","Styled.Scrollable","ref","jsx","Styled.ReviewableCard","clsx","FileThumbnail","Styled.AddButton","Styled.Label"],"mappings":"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"}
1
+ {"version":3,"file":"ReviewablesSelector.cjs.js","sources":["../../../../../src/components/ReviewablesSelector/ReviewablesSelector.tsx"],"sourcesContent":["import { FC, useEffect, useRef, useState } from 'react'\nimport * as Styled from './ReviewablesSelector.styled'\nimport { isHTMLElement } from '@shared/util'\nimport ScrollBar from 'react-perfect-scrollbar'\nimport Card, { ReviewableCard, ReviewableCardProps } from './Card'\n\ninterface ReviewablesSelectorProps {\n reviewables: ReviewableCard[]\n selected: string[]\n projectName: string | null\n onChange?: (fileId: string) => void\n onUpload?: () => void\n}\n\nconst ReviewablesSelector: FC<ReviewablesSelectorProps> = ({\n reviewables = [],\n selected = [],\n projectName,\n onChange,\n onUpload,\n}) => {\n const scrollRef = useRef<ScrollBar>(null)\n const scrollContainerRef = useRef<HTMLElement | null>(null)\n const [labelTooltip, setLabelTooltip] = useState<null | string>(null)\n const [labelTooltipYPos, setLabelTooltipYPos] = useState<null | number>(null)\n\n const getScrollTop = (): number => {\n return scrollContainerRef.current?.scrollTop || 0\n }\n\n const scrollReviewableIntoView = (fileId: string) => {\n const container = scrollContainerRef.current\n const el = document.getElementById('preview-' + fileId)\n if (!container || !el) return\n\n const containerRect = container.getBoundingClientRect()\n const itemRect = el.getBoundingClientRect()\n\n if (itemRect.top < containerRect.top) {\n container.scrollTop -= containerRect.top - itemRect.top\n } else if (itemRect.bottom > containerRect.bottom) {\n container.scrollTop += itemRect.bottom - containerRect.bottom\n }\n\n // keep the custom scrollbar thumb in sync with manual scrollTop updates\n // @ts-ignore\n scrollRef.current?.updateScroll?.()\n }\n\n // add keyboard support\n // use up and down arrow keys to navigate through the reviewables\n // if at top and press up, go to bottom, if at bottom and press down, go to top\n useEffect(() => {\n if (reviewables.length === 1) return\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (['w', 's', 'ArrowUp', 'ArrowDown'].includes(e.key)) {\n // Check if e.target is an HTMLElement before accessing tagName or isContentEditable\n if (isHTMLElement(e.target)) {\n if (e.target.tagName === 'INPUT' || e.target.tagName === 'TEXTAREA') return\n if (e.target.isContentEditable) return\n }\n\n const currentIndex = reviewables.findIndex(({ fileId }) => selected.includes(fileId))\n const nextIndex = e.key === 'w' || e.key === 'ArrowUp' ? currentIndex - 1 : currentIndex + 1\n const nextReviewable =\n reviewables[nextIndex < 0 ? reviewables.length - 1 : nextIndex % reviewables.length]\n const nextFileId = nextReviewable.fileId\n\n onChange && onChange(nextFileId)\n requestAnimationFrame(() => scrollReviewableIntoView(nextFileId))\n // also set new label for the tooltip\n setLabelTooltip(nextReviewable.label ?? null)\n // set label tooltip position\n const el = document.getElementById('preview-' + nextFileId)\n\n if (el) {\n const top = el.offsetTop + el.offsetHeight / 2 - getScrollTop()\n setLabelTooltipYPos(top)\n }\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown)\n }\n }, [selected, reviewables, onChange])\n\n // keep track of when NOT hovering over the reviewable cards\n useEffect(() => {\n const handleMouseMove = (event: MouseEvent) => {\n // check if the mouse is over a reviewable card\n const closest = (event.target as HTMLElement).closest('.reviewables')\n if (!closest) {\n setLabelTooltip(null)\n }\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove)\n }\n }, [])\n\n const handleMouseOver = (\n event: React.MouseEvent<HTMLDivElement>,\n { label }: Pick<ReviewableCardProps, 'label'>,\n ) => {\n // check event is coming from a reviewable card\n const closest = (event.target as HTMLElement).closest('.reviewable-card') as HTMLElement\n if (!closest) return\n setLabelTooltip(label ?? null)\n // set label tooltip position\n const top = closest.offsetTop + closest.offsetHeight / 2 - getScrollTop()\n setLabelTooltipYPos(top)\n }\n\n // select with enter or space key when focused on a reviewable card\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Enter' || event.key === ' ') {\n const closest = (event.target as HTMLElement).closest('.reviewable-card') as HTMLElement\n if (!closest) return\n const fileId = closest.id.replace('preview-', '')\n onChange && onChange(fileId)\n }\n }\n\n // if no reviewables, return null\n if (!reviewables.length) return <div />\n\n return (\n <Styled.ReviewablesSelector>\n <Styled.Scrollable\n className=\"reviewables\"\n ref={scrollRef}\n containerRef={(ref) => {\n scrollContainerRef.current = ref\n }}\n >\n {reviewables.map(({ fileId, label, tag, selectionVariant, contextMenuItems }) => (\n <Card\n projectName={projectName}\n fileId={fileId}\n label={label}\n selected={selected.includes(fileId)}\n selectionVariant={selectionVariant}\n tag={tag}\n contextMenuItems={contextMenuItems}\n onChange={onChange}\n onKeyDown={handleKeyDown}\n onMouseOver={handleMouseOver}\n />\n ))}\n {!!onUpload && (\n <Styled.AddButton\n icon=\"add\"\n onClick={onUpload}\n onMouseEnter={() => setLabelTooltip(null)}\n />\n )}\n </Styled.Scrollable>\n {labelTooltip && labelTooltipYPos && (\n <Styled.Label style={{ top: labelTooltipYPos }}>{labelTooltip}</Styled.Label>\n )}\n </Styled.ReviewablesSelector>\n )\n}\n\nexport default ReviewablesSelector\n"],"names":["ReviewablesSelector","reviewables","selected","projectName","onChange","onUpload","scrollRef","useRef","scrollContainerRef","labelTooltip","setLabelTooltip","useState","labelTooltipYPos","setLabelTooltipYPos","getScrollTop","scrollReviewableIntoView","fileId","container","el","containerRect","itemRect","useEffect","handleKeyDown","isHTMLElement","currentIndex","nextIndex","nextReviewable","nextFileId","top","handleMouseMove","event","handleMouseOver","label","closest","jsxs","Styled.ReviewablesSelector","Styled.Scrollable","ref","tag","selectionVariant","contextMenuItems","jsx","Card","Styled.AddButton","Styled.Label"],"mappings":"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"}
@@ -1,363 +1,105 @@
1
- import { j as n } from "../../../../_virtual/jsx-runtime.es.js";
2
- import { useRef as R, useState as T, useEffect as E } from "react";
3
- import { ReviewablesSelector as L, Scrollable as A, ReviewableCard as I, AddButton as S, Label as M } from "./ReviewablesSelector.styled.es.js";
4
- import B from "clsx";
5
- import "../AddonLoadingScreen/AddonLoadingScreen.es.js";
6
- import "../../../../node_modules/match-sorter/dist/match-sorter.esm.es.js";
7
- import "@ynput/ayon-react-components";
8
- import "../AccessSearchInput/AccessSearchInput.styled.es.js";
9
- import "../AccessUser/AccessUser.es.js";
1
+ import { j as c } from "../../../../_virtual/jsx-runtime.es.js";
2
+ import { useRef as b, useState as E, useEffect as T } from "react";
3
+ import { ReviewablesSelector as k, Scrollable as L, AddButton as A, Label as S } from "./ReviewablesSelector.styled.es.js";
10
4
  import "lodash";
11
- import "../AttributeEditor/components/MinMaxField.es.js";
12
- import "react-dom";
13
- import "@dnd-kit/core";
14
- import "@dnd-kit/sortable";
15
- import "../EnumEditor/EnumEditor.styled.es.js";
16
- import "../Badge/Badge.es.js";
17
- import "../Chips/Chips.es.js";
18
- import "date-fns";
19
- import "../DateRangePicker/DateRangePicker.styled.es.js";
20
- import "../LinksManager/CellEditingDialog.es.js";
21
5
  import "react-toastify";
22
- import "../../api/base/client.es.js";
23
- import "../../api/generated/graphql.es.js";
24
- import "../../api/generated/graphqlLinks.es.js";
25
- import "../../api/generated/access.es.js";
26
- import "../../api/generated/actions.es.js";
27
- import "../../api/generated/activityFeed.es.js";
28
- import "../../api/generated/addons.es.js";
29
- import "../../api/generated/anatomy.es.js";
30
- import "../../api/generated/attributes.es.js";
31
- import "../../api/generated/authentication.es.js";
32
- import "../../api/generated/bundles.es.js";
33
- import "../../api/generated/configuration.es.js";
34
- import "../../api/generated/desktop.es.js";
35
- import "../../api/generated/entityLists.es.js";
36
- import "../../api/generated/events.es.js";
37
- import "../../api/generated/files.es.js";
38
- import "../../api/generated/folders.es.js";
39
- import "../../api/generated/inbox.es.js";
40
- import "../../api/generated/links.es.js";
41
- import "../../api/generated/market.es.js";
42
- import "../../api/generated/onboarding.es.js";
43
- import "../../api/generated/operations.es.js";
44
- import "../../api/generated/products.es.js";
45
- import "../../api/generated/projectDashboard.es.js";
46
- import "../../api/generated/projects.es.js";
47
- import "../../api/generated/projectFolders.es.js";
48
- import "../../api/generated/reviewables.es.js";
49
- import "../../api/generated/services.es.js";
50
- import "../../api/generated/system.es.js";
51
- import "../../api/generated/tasks.es.js";
52
- import "../../api/generated/teams.es.js";
53
- import "../../api/generated/thumbnails.es.js";
54
- import "../../api/generated/uRIs.es.js";
55
- import "../../api/generated/users.es.js";
56
- import "../../api/generated/versions.es.js";
57
- import "../../api/generated/workfiles.es.js";
58
- import "../../api/generated/ynputCloud.es.js";
59
- import "../../api/generated/grouping.es.js";
60
- import "../../api/generated/views.es.js";
61
- import "../../api/queries/actions/getActions.es.js";
62
- import "../../api/queries/activities/getActivities.es.js";
63
- import "../../api/queries/activities/updateActivities.es.js";
64
- import "../../api/queries/activities/updateReaction.es.js";
65
- import "../../api/queries/activities/getMentions.es.js";
66
- import "../../api/queries/activities/getCategories.es.js";
67
- import "../../api/queries/addons/getAddons.es.js";
68
- import "../../api/queries/addons/updateAddons.es.js";
69
- import "../../api/queries/attributes/getAttributes.es.js";
70
- import "../../api/queries/attributes/updateAttributes.es.js";
71
- import "../../api/queries/authentication/getAuthentication.es.js";
72
- import "../../api/queries/cloud/cloud.es.js";
73
- import "../../api/queries/config/getConfig.es.js";
74
- import "../../api/queries/config/updateConfig.es.js";
75
- import "../../api/queries/entities/getEntity.es.js";
76
- import "../../api/queries/entities/getEntityPanel.es.js";
77
- import "../../api/queries/entities/updateEntity.es.js";
78
- import "../../api/queries/entityLists/getLists.es.js";
79
- import "../../api/queries/entityLists/updateLists.es.js";
80
- import "../../api/queries/entityLists/getListsAttributes.es.js";
81
- import "../../api/queries/entityLists/updateListsAttributes.es.js";
82
- import "../../api/queries/entityLists/listFolders.es.js";
83
- import "../../api/queries/folders/getFolders.es.js";
84
- import "../../api/queries/grouping/getGrouping.es.js";
85
- import "../../api/queries/links/updateLinks.es.js";
86
- import "../../api/queries/links/getLinks.es.js";
87
- import "../../api/queries/links/getEntityLinks.es.js";
88
- import "../../api/queries/overview/getOverview.es.js";
89
- import "../../api/queries/overview/updateOverview.es.js";
90
- import "../../api/queries/versions/getVersionsProducts.es.js";
91
- import "../../api/queries/permissions/getPermissions.es.js";
92
- import "../../api/queries/products/createProduct.es.js";
93
- import "../../api/queries/products/getFolderProducts.es.js";
94
- import "../../api/queries/project/getProject.es.js";
95
- import "../../api/queries/project/updateProject.es.js";
96
- import "../../api/queries/projectFolders/projectFolders.es.js";
97
- import "../../api/queries/review/getReview.es.js";
98
- import "../../api/queries/review/updateReview.es.js";
99
- import "../../api/queries/share/share.es.js";
100
- import "../../api/queries/system/getSystem.es.js";
101
- import "../../api/queries/tasks/getTasks.es.js";
102
- import "../../api/queries/tasks/updateTasks.es.js";
103
- import "../../api/queries/teams/getTeams.es.js";
104
- import "../../api/queries/userDashboard/getUserDashboard.es.js";
105
- import "../../api/queries/users/getUsers.es.js";
106
- import "../../api/queries/users/updateUsers.es.js";
107
- import "../../api/queries/users/guests.es.js";
108
- import "../../api/queries/versions/updateVersions.es.js";
109
- import "../../api/queries/views/getViews.es.js";
110
- import "../../api/queries/views/updateViews.es.js";
111
- import "../../api/queries/watchers/getWatchers.es.js";
112
- import "../../api/queries/uris/getUris.es.js";
113
- import "../../../../_virtual/index.es.js";
114
- import "../../../../node_modules/refractor/lib/common.es.js";
115
- import "../../../../node_modules/refractor/lib/all.es.js";
116
- /* empty css */
117
6
  import "uuid";
118
- import N from "../../util/isHTMLElement.es.js";
7
+ import M from "../../util/isHTMLElement.es.js";
119
8
  import "../../util/pubsub.es.js";
120
- import "../DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js";
121
- import "../DetailsPanelDetails/DetailsPanelDetails.es.js";
122
- import "../DetailsPanelDetails/DetailsSection.es.js";
123
- import "../DetailsPanelDetails/FieldLabel.es.js";
124
- import "../DoneCheckbox/DoneCheckbox.es.js";
125
- import "../EarlyPreview/EarlyPreview.es.js";
126
- import "../EmptyPlaceholder/EmptyPlaceholder.es.js";
127
- import "../EmptyPlaceholder/EmptyPlaceholderFlex.styled.es.js";
128
- import "../../containers/ContextMenu/ContextMenuContext.es.js";
129
- /* empty css */
130
- import "../../containers/Feed/context/FeedContext.es.js";
131
- import "../../containers/Feed/components/Tooltips/UserTooltipItem.es.js";
132
- import "../../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.es.js";
133
- import "../../containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.es.js";
134
- import "../../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.es.js";
135
- import "../../context/RemoteModulesContext.es.js";
136
- import "../../context/DetailsPanelContext.es.js";
137
- import "../../context/SubtasksModulesContext.es.js";
138
- import "../../context/ThumbnailUploaderContext.es.js";
139
- import "../../context/SettingsPanelContext.es.js";
140
- import "../../context/pip/PiPProvider.es.js";
141
- import "../../context/pip/PiPWrapper.es.js";
142
- import "../../context/AddonProjectContext.es.js";
143
- import "../../context/AddonContext.es.js";
144
- import "../../context/PowerpackContext.es.js";
145
- import "../../context/MoveEntityContext.es.js";
146
- import "../../context/MenuContext.es.js";
147
- import "../../context/WebsocketContext.es.js";
148
- import "../../context/GlobalContext.es.js";
149
- import "../../context/ProjectContext.es.js";
150
- import "../../context/ProjectFoldersContext.es.js";
151
- import "../../context/UriContext.es.js";
152
- import "../../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.es.js";
153
- import "../../containers/Feed/components/FileUploadPreview/Mimes/TextMime.es.js";
154
- import "react-markdown";
155
- import "remark-emoji";
156
- import "remark-gfm";
157
- import "remark-directive";
158
- import "remark-directive-rehype";
159
- import "../../containers/Feed/components/CommentInput/CommentInput.es.js";
160
- import "../../containers/Feed/components/ReactionContainer/Reactions.styled.es.js";
161
- import "../../containers/Feed/components/FilesGrid/FilesGrid.styled.es.js";
162
- import "../../containers/Feed/components/FileUploadCard/FileUploadCard.styled.es.js";
163
- import "../../containers/Feed/components/CommentInput/quillToMarkdown.es.js";
164
- import "../../containers/Feed/components/ActivityComment/ActivityComment.styled.es.js";
165
- import "../../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.es.js";
166
- import "../../containers/Feed/components/ActivityReference/ActivityReference.styled.es.js";
167
- import "react-router-dom";
168
- import "../../containers/Feed/components/ActivityStatus/ActivityStatus.es.js";
169
- import "../../containers/Feed/components/ActivityHeader/ActivityHeader.styled.es.js";
170
- import "../../containers/Feed/components/ActivityDate.es.js";
171
- import "../../containers/Feed/components/ActivityCategorySelect/CategoryTag.es.js";
172
- import "rehype-raw";
173
- import "../../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.es.js";
174
- import "../../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.es.js";
175
- import "../../containers/Feed/components/ActivityVersions/ActivityVersions.styled.es.js";
176
- import "../../containers/Feed/components/ActivityGroup/ActivityGroup.styled.es.js";
177
- import "../../containers/Feed/Feed.styled.es.js";
178
- import "../../containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js";
179
- import "../../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js";
180
- import "../../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js";
181
- import "@tanstack/react-virtual";
182
- import "@tanstack/react-table";
183
- import "../../containers/ProjectTreeTable/widgets/CollapsedWidget.es.js";
184
- import "../../containers/ProjectTreeTable/widgets/DateWidget.es.js";
185
- import "../../containers/ProjectTreeTable/widgets/EnumWidget.es.js";
186
- import "../../containers/ProjectTreeTable/widgets/EnumCellValue.es.js";
187
- import "../../containers/ProjectTreeTable/widgets/TextWidget.es.js";
188
- import "../../containers/ProjectTreeTable/widgets/BooleanWidget.es.js";
189
- import "../../containers/ProjectTreeTable/widgets/CellWidget.es.js";
190
- import "../../containers/ProjectTreeTable/widgets/EntityNameWidget.es.js";
191
- import "../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js";
192
- import "../../containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js";
193
- import "../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.es.js";
194
- import "../../containers/ProjectTreeTable/context/SelectedRowsContext.es.js";
195
- import "../LinksManager/LinksManager.styled.es.js";
196
- import "../../containers/ProjectTreeTable/context/ProjectTableContext.es.js";
197
- import "../../containers/ProjectTreeTable/widgets/EmptyWidget.es.js";
198
- import "../../containers/ProjectTreeTable/widgets/ErrorWidget.es.js";
199
- import "../../containers/ProjectTreeTable/context/CellEditingContext.es.js";
200
- import "../SearchFilter/filterDates.es.js";
201
- import "short-uuid";
202
- import "../../containers/ProjectTreeTable/context/SelectionCellsContext.es.js";
203
- import "../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.es.js";
204
- import "../../containers/ProjectTreeTable/context/ClipboardContext.es.js";
205
- import "../../containers/ProjectTreeTable/context/ColumnSettingsContext.es.js";
206
- import "../../containers/ProjectTreeTable/context/ProjectDataContext.es.js";
207
- import "../../../../_virtual/runtime.es.js";
208
- import "../../../../_virtual/semver.es.js";
209
- import "react-redux";
210
- import "custom-protocol-check";
211
- import "../../containers/ProjectTreeTable/components/GroupSettingsFallback.es.js";
212
- import "../../containers/ProjectTreeTable/ProjectTreeTable.styled.es.js";
213
- import "../../containers/ProjectTreeTable/components/SelectionCell.es.js";
214
- import "../../containers/ProjectTreeTable/components/RowSelectionHeader.es.js";
215
- import "../../containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js";
216
- import "../../containers/ProjectTreeTable/components/HeaderActionButton.es.js";
217
- import "../../containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js";
218
- import "../../containers/EntityPickerDialog/EntityPickerDialog.es.js";
219
- import "../../containers/Slicer/components/Slicer.es.js";
220
- import "../../containers/Slicer/context/SlicerContext.es.js";
221
- import "../../containers/Slicer/hooks/useTableDataBySlice.es.js";
222
- import "../../containers/DetailsPanel/DetailsPanel.styled.es.js";
223
- import "../../containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.es.js";
224
- import "../../containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js";
225
- import "../PlayableIcon/PlayableIcon.es.js";
226
- import "../../containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js";
227
- import "../../containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.es.js";
228
- import "../../containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.es.js";
229
- import "../../containers/Actions/Actions.styled.es.js";
230
- import "../../containers/Actions/ActionsDropdown/ActionsDropdown.es.js";
231
- import "../../containers/Actions/ActionIcon.es.js";
232
- import "../../containers/Views/context/ViewsContext.es.js";
233
- import "../../containers/Views/Views.styled.es.js";
234
- import "../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
235
- import "../../containers/Views/ViewsMenu/ViewsMenu.es.js";
236
- import "../EntityPanelUploader/EntityPanelUploader.styled.es.js";
237
- import "axios";
238
- import "../ReviewablesList/ReviewablesList.styled.es.js";
239
- import "../ReviewablesList/ReviewablesUpload.styled.es.js";
240
- import "../EntityPath/EntityPath.styled.es.js";
241
- import "../EntityPath/SegmentProvider.es.js";
242
- import "../FeaturedVersionOrder/FeaturedVersionOrder.es.js";
243
- import "../Feedback/FeedbackContext.es.js";
244
- import "../Feedback/SupportBubble.es.js";
245
- import { FileThumbnail as D } from "../FileThumbnail/FileThumbnail.es.js";
246
- import "../LegacyBadge/LegacyBadge.es.js";
247
- import "../Powerpack/PowerpackButton.es.js";
248
- import "../Powerpack/PricingLink.es.js";
249
- import "../Powerpack/PowerpackDialog.styled.es.js";
250
- import "../Powerpack/CTAButton.es.js";
251
- import "../Powerpack/RequiredAddonVersion.es.js";
252
- import "../ProjectTableSettings/ProjectTableSettings.es.js";
253
- import "../SizeSlider/SizeSlider.es.js";
254
- import "../ReviewableCard/ReviewableCard.es.js";
255
- import "../ReviewableProgressCard/ReviewableProgressCard.styled.es.js";
256
- import "../SettingsPanel/SettingsPanel.es.js";
257
- import "../SettingsPanel/SettingsPanelItemTemplate.es.js";
258
- import "../ShareOptionIcon/ShareOptionIcon.es.js";
259
- import "../SimpleFormDialog/SimpleFormDialog.es.js";
260
- import "../StyledLink/StyledLink.es.js";
261
- import "../TableGridSwitch/TableGridSwitch.es.js";
262
- import "../Thumbnail/Thumbnail.styled.es.js";
263
- import "../Thumbnail/StackedThumbnails.es.js";
264
- import "../ThumbnailSimple/ThumbnailSimple.es.js";
265
- import "../VersionUploader/components/UploadVersionDialog.es.js";
266
- import "../VersionUploader/context/VersionUploadContext.es.js";
267
- import "../Watchers/Watchers.es.js";
268
- import "../Menu/Menu.styled.es.js";
269
- import "../Menu/MenuItem.es.js";
270
- const Fm = ({
271
- reviewables: m = [],
272
- selected: s = [],
9
+ import B from "./Card.es.js";
10
+ const q = ({
11
+ reviewables: l = [],
12
+ selected: u = [],
273
13
  projectName: y,
274
- onChange: p,
275
- onUpload: f
14
+ onChange: s,
15
+ onUpload: p
276
16
  }) => {
277
- const w = R(null), c = R(null), [b, l] = T(null), [v, x] = T(null), g = () => c.current?.scrollTop || 0, h = (t) => {
278
- const o = c.current, r = document.getElementById("preview-" + t);
279
- if (!o || !r) return;
280
- const i = o.getBoundingClientRect(), e = r.getBoundingClientRect();
281
- e.top < i.top ? o.scrollTop -= i.top - e.top : e.bottom > i.bottom && (o.scrollTop += e.bottom - i.bottom), w.current?.updateScroll?.();
17
+ const w = b(null), d = b(null), [g, i] = E(null), [v, x] = E(null), R = () => d.current?.scrollTop || 0, I = (t) => {
18
+ const e = d.current, o = document.getElementById("preview-" + t);
19
+ if (!e || !o) return;
20
+ const n = e.getBoundingClientRect(), r = o.getBoundingClientRect();
21
+ r.top < n.top ? e.scrollTop -= n.top - r.top : r.bottom > n.bottom && (e.scrollTop += r.bottom - n.bottom), w.current?.updateScroll?.();
282
22
  };
283
- E(() => {
284
- if (m.length === 1) return;
285
- const t = (o) => {
286
- if (["w", "s", "ArrowUp", "ArrowDown"].includes(o.key)) {
287
- if (N(o.target) && (o.target.tagName === "INPUT" || o.target.tagName === "TEXTAREA" || o.target.isContentEditable))
23
+ T(() => {
24
+ if (l.length === 1) return;
25
+ const t = (e) => {
26
+ if (["w", "s", "ArrowUp", "ArrowDown"].includes(e.key)) {
27
+ if (M(e.target) && (e.target.tagName === "INPUT" || e.target.tagName === "TEXTAREA" || e.target.isContentEditable))
288
28
  return;
289
- const r = m.findIndex(({ fileId: d }) => s.includes(d)), i = o.key === "w" || o.key === "ArrowUp" ? r - 1 : r + 1, e = m[i < 0 ? m.length - 1 : i % m.length], a = e.fileId;
290
- p && p(a), requestAnimationFrame(() => h(a)), l(e.label ?? null);
291
- const u = document.getElementById("preview-" + a);
292
- if (u) {
293
- const d = u.offsetTop + u.offsetHeight / 2 - g();
294
- x(d);
29
+ const o = l.findIndex(({ fileId: m }) => u.includes(m)), n = e.key === "w" || e.key === "ArrowUp" ? o - 1 : o + 1, r = l[n < 0 ? l.length - 1 : n % l.length], a = r.fileId;
30
+ s && s(a), requestAnimationFrame(() => I(a)), i(r.label ?? null);
31
+ const f = document.getElementById("preview-" + a);
32
+ if (f) {
33
+ const m = f.offsetTop + f.offsetHeight / 2 - R();
34
+ x(m);
295
35
  }
296
36
  }
297
37
  };
298
38
  return window.addEventListener("keydown", t), () => {
299
39
  window.removeEventListener("keydown", t);
300
40
  };
301
- }, [s, m, p]), E(() => {
302
- const t = (o) => {
303
- o.target.closest(".reviewables") || l(null);
41
+ }, [u, l, s]), T(() => {
42
+ const t = (e) => {
43
+ e.target.closest(".reviewables") || i(null);
304
44
  };
305
45
  return window.addEventListener("mousemove", t), () => {
306
46
  window.removeEventListener("mousemove", t);
307
47
  };
308
48
  }, []);
309
- const j = (t, { label: o }) => {
310
- const r = t.target.closest(".reviewable-card");
311
- if (!r) return;
312
- l(o ?? null);
313
- const i = r.offsetTop + r.offsetHeight / 2 - g();
314
- x(i);
315
- }, k = (t) => {
49
+ const h = (t, { label: e }) => {
50
+ const o = t.target.closest(".reviewable-card");
51
+ if (!o) return;
52
+ i(e ?? null);
53
+ const n = o.offsetTop + o.offsetHeight / 2 - R();
54
+ x(n);
55
+ }, j = (t) => {
316
56
  if (t.key === "Enter" || t.key === " ") {
317
- const o = t.target.closest(".reviewable-card");
318
- if (!o) return;
319
- const r = o.id.replace("preview-", "");
320
- p && p(r);
57
+ const e = t.target.closest(".reviewable-card");
58
+ if (!e) return;
59
+ const o = e.id.replace("preview-", "");
60
+ s && s(o);
321
61
  }
322
62
  };
323
- return m.length ? /* @__PURE__ */ n.jsxs(L, { children: [
324
- /* @__PURE__ */ n.jsxs(
325
- A,
63
+ return l.length ? /* @__PURE__ */ c.jsxs(k, { children: [
64
+ /* @__PURE__ */ c.jsxs(
65
+ L,
326
66
  {
327
67
  className: "reviewables",
328
68
  ref: w,
329
69
  containerRef: (t) => {
330
- c.current = t;
70
+ d.current = t;
331
71
  },
332
72
  children: [
333
- m.map(({ fileId: t, label: o }) => /* @__PURE__ */ n.jsx(
334
- I,
73
+ l.map(({ fileId: t, label: e, tag: o, selectionVariant: n, contextMenuItems: r }) => /* @__PURE__ */ c.jsx(
74
+ B,
335
75
  {
336
- id: "preview-" + t,
337
- onClick: () => p && p(t),
338
- className: B("reviewable-card", { selected: s.includes(t) }),
339
- onMouseOver: (r) => j(r, { label: o }),
340
- onKeyDown: k,
341
- tabIndex: 0,
342
- children: /* @__PURE__ */ n.jsx(D, { src: `/api/projects/${y}/files/${t}/thumbnail` })
343
- },
344
- t
76
+ projectName: y,
77
+ fileId: t,
78
+ label: e,
79
+ selected: u.includes(t),
80
+ selectionVariant: n,
81
+ tag: o,
82
+ contextMenuItems: r,
83
+ onChange: s,
84
+ onKeyDown: j,
85
+ onMouseOver: h
86
+ }
345
87
  )),
346
- !!f && /* @__PURE__ */ n.jsx(
347
- S,
88
+ !!p && /* @__PURE__ */ c.jsx(
89
+ A,
348
90
  {
349
91
  icon: "add",
350
- onClick: f,
351
- onMouseEnter: () => l(null)
92
+ onClick: p,
93
+ onMouseEnter: () => i(null)
352
94
  }
353
95
  )
354
96
  ]
355
97
  }
356
98
  ),
357
- b && v && /* @__PURE__ */ n.jsx(M, { style: { top: v }, children: b })
358
- ] }) : /* @__PURE__ */ n.jsx("div", {});
99
+ g && v && /* @__PURE__ */ c.jsx(S, { style: { top: v }, children: g })
100
+ ] }) : /* @__PURE__ */ c.jsx("div", {});
359
101
  };
360
102
  export {
361
- Fm as default
103
+ q as default
362
104
  };
363
105
  //# sourceMappingURL=ReviewablesSelector.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReviewablesSelector.es.js","sources":["../../../../../src/components/ReviewablesSelector/ReviewablesSelector.tsx"],"sourcesContent":["import { FC, useEffect, useRef, useState } from 'react'\nimport * as Styled from './ReviewablesSelector.styled'\nimport clsx from 'clsx'\nimport { FileThumbnail } from '@shared/components'\nimport { ReviewableModel } from '@shared/api'\nimport { isHTMLElement } from '@shared/util'\nimport ScrollBar from 'react-perfect-scrollbar'\n\ntype ReviewableCard = Pick<ReviewableModel, 'fileId' | 'label' | 'fileId'>\n\ninterface ReviewablesSelectorProps {\n reviewables: ReviewableCard[]\n selected: string[]\n projectName: string | null\n onChange?: (fileId: string) => void\n onUpload?: () => void\n}\n\nconst ReviewablesSelector: FC<ReviewablesSelectorProps> = ({\n reviewables = [],\n selected = [],\n projectName,\n onChange,\n onUpload,\n}) => {\n const scrollRef = useRef<ScrollBar>(null)\n const scrollContainerRef = useRef<HTMLElement | null>(null)\n const [labelTooltip, setLabelTooltip] = useState<null | string>(null)\n const [labelTooltipYPos, setLabelTooltipYPos] = useState<null | number>(null)\n\n const getScrollTop = (): number => {\n return scrollContainerRef.current?.scrollTop || 0\n }\n\n const scrollReviewableIntoView = (fileId: string) => {\n const container = scrollContainerRef.current\n const el = document.getElementById('preview-' + fileId)\n if (!container || !el) return\n\n const containerRect = container.getBoundingClientRect()\n const itemRect = el.getBoundingClientRect()\n\n if (itemRect.top < containerRect.top) {\n container.scrollTop -= containerRect.top - itemRect.top\n } else if (itemRect.bottom > containerRect.bottom) {\n container.scrollTop += itemRect.bottom - containerRect.bottom\n }\n\n // keep the custom scrollbar thumb in sync with manual scrollTop updates\n // @ts-ignore\n scrollRef.current?.updateScroll?.()\n }\n\n // add keyboard support\n // use up and down arrow keys to navigate through the reviewables\n // if at top and press up, go to bottom, if at bottom and press down, go to top\n useEffect(() => {\n if (reviewables.length === 1) return\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (['w', 's', 'ArrowUp', 'ArrowDown'].includes(e.key)) {\n // Check if e.target is an HTMLElement before accessing tagName or isContentEditable\n if (isHTMLElement(e.target)) {\n if (e.target.tagName === 'INPUT' || e.target.tagName === 'TEXTAREA') return\n if (e.target.isContentEditable) return\n }\n\n const currentIndex = reviewables.findIndex(({ fileId }) => selected.includes(fileId))\n const nextIndex = e.key === 'w' || e.key === 'ArrowUp' ? currentIndex - 1 : currentIndex + 1\n const nextReviewable =\n reviewables[nextIndex < 0 ? reviewables.length - 1 : nextIndex % reviewables.length]\n const nextFileId = nextReviewable.fileId\n\n onChange && onChange(nextFileId)\n requestAnimationFrame(() => scrollReviewableIntoView(nextFileId))\n // also set new label for the tooltip\n setLabelTooltip(nextReviewable.label ?? null)\n // set label tooltip position\n const el = document.getElementById('preview-' + nextFileId)\n\n if (el) {\n const top = el.offsetTop + el.offsetHeight / 2 - getScrollTop()\n setLabelTooltipYPos(top)\n }\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown)\n }\n }, [selected, reviewables, onChange])\n\n // keep track of when NOT hovering over the reviewable cards\n useEffect(() => {\n const handleMouseMove = (event: MouseEvent) => {\n // check if the mouse is over a reviewable card\n const closest = (event.target as HTMLElement).closest('.reviewables')\n if (!closest) {\n setLabelTooltip(null)\n }\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove)\n }\n }, [])\n\n const handleMouseOver = (\n event: React.MouseEvent<HTMLDivElement>,\n { label }: Pick<ReviewableCard, 'label'>,\n ) => {\n // check event is coming from a reviewable card\n const closest = (event.target as HTMLElement).closest('.reviewable-card') as HTMLElement\n if (!closest) return\n setLabelTooltip(label ?? null)\n // set label tooltip position\n const top = closest.offsetTop + closest.offsetHeight / 2 - getScrollTop()\n setLabelTooltipYPos(top)\n }\n\n // select with enter or space key when focused on a reviewable card\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Enter' || event.key === ' ') {\n const closest = (event.target as HTMLElement).closest('.reviewable-card') as HTMLElement\n if (!closest) return\n const fileId = closest.id.replace('preview-', '')\n onChange && onChange(fileId)\n }\n }\n\n // if no reviewables, return null\n if (!reviewables.length) return <div />\n\n return (\n <Styled.ReviewablesSelector>\n <Styled.Scrollable\n className=\"reviewables\"\n ref={scrollRef}\n containerRef={(ref) => {\n scrollContainerRef.current = ref\n }}\n >\n {reviewables.map(({ fileId, label }) => (\n <Styled.ReviewableCard\n key={fileId}\n id={'preview-' + fileId}\n onClick={() => onChange && onChange(fileId)}\n className={clsx('reviewable-card', { selected: selected.includes(fileId) })}\n onMouseOver={(e) => handleMouseOver(e, { label })}\n onKeyDown={handleKeyDown}\n tabIndex={0}\n >\n <FileThumbnail src={`/api/projects/${projectName}/files/${fileId}/thumbnail`} />\n </Styled.ReviewableCard>\n ))}\n {!!onUpload && (\n <Styled.AddButton\n icon=\"add\"\n onClick={onUpload}\n onMouseEnter={() => setLabelTooltip(null)}\n />\n )}\n </Styled.Scrollable>\n {labelTooltip && labelTooltipYPos && (\n <Styled.Label style={{ top: labelTooltipYPos }}>{labelTooltip}</Styled.Label>\n )}\n </Styled.ReviewablesSelector>\n )\n}\n\nexport default ReviewablesSelector\n"],"names":["ReviewablesSelector","reviewables","selected","projectName","onChange","onUpload","scrollRef","useRef","scrollContainerRef","labelTooltip","setLabelTooltip","useState","labelTooltipYPos","setLabelTooltipYPos","getScrollTop","scrollReviewableIntoView","fileId","container","el","containerRect","itemRect","useEffect","handleKeyDown","e","isHTMLElement","currentIndex","nextIndex","nextReviewable","nextFileId","top","handleMouseMove","event","handleMouseOver","label","closest","jsxs","Styled.ReviewablesSelector","Styled.Scrollable","ref","jsx","Styled.ReviewableCard","clsx","FileThumbnail","Styled.AddButton","Styled.Label"],"mappings":"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"}
1
+ {"version":3,"file":"ReviewablesSelector.es.js","sources":["../../../../../src/components/ReviewablesSelector/ReviewablesSelector.tsx"],"sourcesContent":["import { FC, useEffect, useRef, useState } from 'react'\nimport * as Styled from './ReviewablesSelector.styled'\nimport { isHTMLElement } from '@shared/util'\nimport ScrollBar from 'react-perfect-scrollbar'\nimport Card, { ReviewableCard, ReviewableCardProps } from './Card'\n\ninterface ReviewablesSelectorProps {\n reviewables: ReviewableCard[]\n selected: string[]\n projectName: string | null\n onChange?: (fileId: string) => void\n onUpload?: () => void\n}\n\nconst ReviewablesSelector: FC<ReviewablesSelectorProps> = ({\n reviewables = [],\n selected = [],\n projectName,\n onChange,\n onUpload,\n}) => {\n const scrollRef = useRef<ScrollBar>(null)\n const scrollContainerRef = useRef<HTMLElement | null>(null)\n const [labelTooltip, setLabelTooltip] = useState<null | string>(null)\n const [labelTooltipYPos, setLabelTooltipYPos] = useState<null | number>(null)\n\n const getScrollTop = (): number => {\n return scrollContainerRef.current?.scrollTop || 0\n }\n\n const scrollReviewableIntoView = (fileId: string) => {\n const container = scrollContainerRef.current\n const el = document.getElementById('preview-' + fileId)\n if (!container || !el) return\n\n const containerRect = container.getBoundingClientRect()\n const itemRect = el.getBoundingClientRect()\n\n if (itemRect.top < containerRect.top) {\n container.scrollTop -= containerRect.top - itemRect.top\n } else if (itemRect.bottom > containerRect.bottom) {\n container.scrollTop += itemRect.bottom - containerRect.bottom\n }\n\n // keep the custom scrollbar thumb in sync with manual scrollTop updates\n // @ts-ignore\n scrollRef.current?.updateScroll?.()\n }\n\n // add keyboard support\n // use up and down arrow keys to navigate through the reviewables\n // if at top and press up, go to bottom, if at bottom and press down, go to top\n useEffect(() => {\n if (reviewables.length === 1) return\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (['w', 's', 'ArrowUp', 'ArrowDown'].includes(e.key)) {\n // Check if e.target is an HTMLElement before accessing tagName or isContentEditable\n if (isHTMLElement(e.target)) {\n if (e.target.tagName === 'INPUT' || e.target.tagName === 'TEXTAREA') return\n if (e.target.isContentEditable) return\n }\n\n const currentIndex = reviewables.findIndex(({ fileId }) => selected.includes(fileId))\n const nextIndex = e.key === 'w' || e.key === 'ArrowUp' ? currentIndex - 1 : currentIndex + 1\n const nextReviewable =\n reviewables[nextIndex < 0 ? reviewables.length - 1 : nextIndex % reviewables.length]\n const nextFileId = nextReviewable.fileId\n\n onChange && onChange(nextFileId)\n requestAnimationFrame(() => scrollReviewableIntoView(nextFileId))\n // also set new label for the tooltip\n setLabelTooltip(nextReviewable.label ?? null)\n // set label tooltip position\n const el = document.getElementById('preview-' + nextFileId)\n\n if (el) {\n const top = el.offsetTop + el.offsetHeight / 2 - getScrollTop()\n setLabelTooltipYPos(top)\n }\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown)\n }\n }, [selected, reviewables, onChange])\n\n // keep track of when NOT hovering over the reviewable cards\n useEffect(() => {\n const handleMouseMove = (event: MouseEvent) => {\n // check if the mouse is over a reviewable card\n const closest = (event.target as HTMLElement).closest('.reviewables')\n if (!closest) {\n setLabelTooltip(null)\n }\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove)\n }\n }, [])\n\n const handleMouseOver = (\n event: React.MouseEvent<HTMLDivElement>,\n { label }: Pick<ReviewableCardProps, 'label'>,\n ) => {\n // check event is coming from a reviewable card\n const closest = (event.target as HTMLElement).closest('.reviewable-card') as HTMLElement\n if (!closest) return\n setLabelTooltip(label ?? null)\n // set label tooltip position\n const top = closest.offsetTop + closest.offsetHeight / 2 - getScrollTop()\n setLabelTooltipYPos(top)\n }\n\n // select with enter or space key when focused on a reviewable card\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Enter' || event.key === ' ') {\n const closest = (event.target as HTMLElement).closest('.reviewable-card') as HTMLElement\n if (!closest) return\n const fileId = closest.id.replace('preview-', '')\n onChange && onChange(fileId)\n }\n }\n\n // if no reviewables, return null\n if (!reviewables.length) return <div />\n\n return (\n <Styled.ReviewablesSelector>\n <Styled.Scrollable\n className=\"reviewables\"\n ref={scrollRef}\n containerRef={(ref) => {\n scrollContainerRef.current = ref\n }}\n >\n {reviewables.map(({ fileId, label, tag, selectionVariant, contextMenuItems }) => (\n <Card\n projectName={projectName}\n fileId={fileId}\n label={label}\n selected={selected.includes(fileId)}\n selectionVariant={selectionVariant}\n tag={tag}\n contextMenuItems={contextMenuItems}\n onChange={onChange}\n onKeyDown={handleKeyDown}\n onMouseOver={handleMouseOver}\n />\n ))}\n {!!onUpload && (\n <Styled.AddButton\n icon=\"add\"\n onClick={onUpload}\n onMouseEnter={() => setLabelTooltip(null)}\n />\n )}\n </Styled.Scrollable>\n {labelTooltip && labelTooltipYPos && (\n <Styled.Label style={{ top: labelTooltipYPos }}>{labelTooltip}</Styled.Label>\n )}\n </Styled.ReviewablesSelector>\n )\n}\n\nexport default ReviewablesSelector\n"],"names":["ReviewablesSelector","reviewables","selected","projectName","onChange","onUpload","scrollRef","useRef","scrollContainerRef","labelTooltip","setLabelTooltip","useState","labelTooltipYPos","setLabelTooltipYPos","getScrollTop","scrollReviewableIntoView","fileId","container","el","containerRect","itemRect","useEffect","handleKeyDown","isHTMLElement","currentIndex","nextIndex","nextReviewable","nextFileId","top","handleMouseMove","event","handleMouseOver","label","closest","jsxs","Styled.ReviewablesSelector","Styled.Scrollable","ref","tag","selectionVariant","contextMenuItems","jsx","Card","Styled.AddButton","Styled.Label"],"mappings":"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"}