@ynput/ayon-frontend-shared 0.3.27 → 0.3.28

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 (721) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +25 -23
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +404 -190
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +19 -18
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/_virtual/index.cjs14.js +1 -1
  11. package/dist/_virtual/index.cjs15.js +1 -1
  12. package/dist/_virtual/index.cjs19.js +1 -1
  13. package/dist/_virtual/index.cjs22.js +1 -1
  14. package/dist/_virtual/index.cjs23.js +1 -1
  15. package/dist/_virtual/index.cjs24.js +1 -1
  16. package/dist/_virtual/index.cjs4.js +1 -1
  17. package/dist/_virtual/index.cjs5.js +1 -1
  18. package/dist/_virtual/index.cjs9.js +1 -1
  19. package/dist/_virtual/index.es10.js +2 -2
  20. package/dist/_virtual/index.es11.js +2 -2
  21. package/dist/_virtual/index.es13.js +2 -2
  22. package/dist/_virtual/index.es14.js +5 -2
  23. package/dist/_virtual/index.es14.js.map +1 -1
  24. package/dist/_virtual/index.es15.js +2 -2
  25. package/dist/_virtual/index.es16.js +2 -2
  26. package/dist/_virtual/index.es17.js +2 -2
  27. package/dist/_virtual/index.es18.js +2 -2
  28. package/dist/_virtual/index.es19.js +2 -2
  29. package/dist/_virtual/index.es22.js +3 -3
  30. package/dist/_virtual/index.es23.js +5 -5
  31. package/dist/_virtual/index.es24.js +5 -5
  32. package/dist/_virtual/index.es4.js +2 -5
  33. package/dist/_virtual/index.es4.js.map +1 -1
  34. package/dist/_virtual/index.es5.js +5 -2
  35. package/dist/_virtual/index.es5.js.map +1 -1
  36. package/dist/_virtual/index.es9.js +2 -5
  37. package/dist/_virtual/index.es9.js.map +1 -1
  38. package/dist/api.cjs.js +1 -1
  39. package/dist/api.es.js +406 -402
  40. package/dist/api.es.js.map +1 -1
  41. package/dist/hooks.cjs.js +1 -1
  42. package/dist/hooks.es.js +15 -13
  43. package/dist/hooks.es.js.map +1 -1
  44. package/dist/index.cjs.js +1 -1
  45. package/dist/index.es.js +12 -10
  46. package/dist/index.es.js.map +1 -1
  47. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  48. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  49. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  50. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  51. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  52. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  53. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  54. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  55. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  56. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  57. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  58. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  59. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js +1 -1
  60. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.es.js +1 -1
  61. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  62. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  63. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  64. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  65. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  66. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  67. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.cjs.js +1 -1
  68. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.es.js +1 -1
  69. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  70. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  71. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js +1 -1
  72. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.es.js +1 -1
  73. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js +1 -1
  74. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js.map +1 -1
  75. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.es.js +1 -1
  76. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.cjs.js +1 -1
  77. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.es.js +1 -1
  78. package/dist/shared/node_modules/@module-federation/sdk/dist/index.cjs.js +1 -1
  79. package/dist/shared/node_modules/@module-federation/sdk/dist/index.es.js +1 -1
  80. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.cjs.js +1 -1
  81. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.es.js +1 -1
  82. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  83. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  84. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  85. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  86. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  87. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js.map +1 -1
  88. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  89. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  90. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js.map +1 -1
  91. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  92. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  93. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js.map +1 -1
  94. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  95. package/dist/shared/src/api/base/client.cjs.js +1 -1
  96. package/dist/shared/src/api/base/client.cjs.js.map +1 -1
  97. package/dist/shared/src/api/base/client.es.js +1 -0
  98. package/dist/shared/src/api/base/client.es.js.map +1 -1
  99. package/dist/shared/src/api/generated/graphql.cjs.js +58 -36
  100. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  101. package/dist/shared/src/api/generated/graphql.es.js +125 -99
  102. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  103. package/dist/shared/src/api/generated/graphqlLinks.cjs.js +69 -9
  104. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  105. package/dist/shared/src/api/generated/graphqlLinks.es.js +95 -35
  106. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  107. package/dist/shared/src/api/generated/projectFolders.cjs.js.map +1 -1
  108. package/dist/shared/src/api/generated/projectFolders.es.js.map +1 -1
  109. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js +1 -1
  110. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js.map +1 -1
  111. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js +20 -19
  112. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js.map +1 -1
  113. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
  114. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  115. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +4 -3
  116. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  117. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.cjs.js +2 -0
  118. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.cjs.js.map +1 -0
  119. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.es.js +64 -0
  120. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.es.js.map +1 -0
  121. package/dist/shared/src/api/queries/links/getLinks.cjs.js +1 -1
  122. package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -1
  123. package/dist/shared/src/api/queries/links/getLinks.es.js +27 -26
  124. package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -1
  125. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  126. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  127. package/dist/shared/src/api/queries/overview/getOverview.es.js +104 -103
  128. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  129. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  130. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  131. package/dist/shared/src/api/queries/overview/updateOverview.es.js +118 -111
  132. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  133. package/dist/shared/src/api/queries/project/updateProject.cjs.js +1 -1
  134. package/dist/shared/src/api/queries/project/updateProject.cjs.js.map +1 -1
  135. package/dist/shared/src/api/queries/project/updateProject.es.js +43 -19
  136. package/dist/shared/src/api/queries/project/updateProject.es.js.map +1 -1
  137. package/dist/shared/src/api/queries/users/getUsers.cjs.js +1 -1
  138. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  139. package/dist/shared/src/api/queries/users/getUsers.es.js +22 -21
  140. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  141. package/dist/shared/src/api/queries/views/getViews.cjs.js +1 -1
  142. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
  143. package/dist/shared/src/api/queries/views/getViews.es.js +24 -20
  144. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
  145. package/dist/shared/src/components/DateRangePicker/DateRangePicker.cjs.js +1 -1
  146. package/dist/shared/src/components/DateRangePicker/DateRangePicker.cjs.js.map +1 -1
  147. package/dist/shared/src/components/DateRangePicker/DateRangePicker.es.js +89 -88
  148. package/dist/shared/src/components/DateRangePicker/DateRangePicker.es.js.map +1 -1
  149. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
  150. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  151. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +3 -2
  152. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  153. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  154. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  155. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +6 -2
  156. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  157. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  158. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  159. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +3 -2
  160. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  161. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
  162. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  163. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +3 -2
  164. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  165. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  166. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  167. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +5 -2
  168. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  169. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  170. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  171. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +9 -7
  172. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  173. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  174. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  175. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +5 -3
  176. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  177. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  178. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  179. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +5 -4
  180. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  181. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  182. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  183. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +3 -2
  184. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  185. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  186. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  187. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +3 -2
  188. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  189. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  190. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  191. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +9 -7
  192. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  193. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  194. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  195. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +3 -2
  196. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  197. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  198. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  199. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +5 -3
  200. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  201. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  202. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  203. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +46 -43
  204. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  205. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  206. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  207. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +5 -3
  208. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  209. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  210. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  211. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +5 -3
  212. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  213. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  214. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  215. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +9 -7
  216. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  217. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  218. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  219. package/dist/shared/src/components/RenameForm/RenameForm.es.js +9 -7
  220. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  221. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
  222. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  223. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +3 -2
  224. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  225. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  226. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  227. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +5 -3
  228. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  229. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  230. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  231. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +6 -4
  232. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  233. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  234. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  235. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +5 -3
  236. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  237. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  238. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  239. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +3 -2
  240. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  241. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  242. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  243. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +5 -2
  244. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  245. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js +1 -1
  246. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js.map +1 -1
  247. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js +67 -77
  248. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js.map +1 -1
  249. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  250. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  251. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +192 -141
  252. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  253. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  254. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  255. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +7 -5
  256. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  257. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  258. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  259. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +5 -3
  260. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  261. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js +1 -1
  262. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js.map +1 -1
  263. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js +3 -2
  264. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
  265. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
  266. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
  267. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +41 -44
  268. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
  269. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +4 -4
  270. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  271. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +5 -3
  272. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  273. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  274. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  275. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +7 -5
  276. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  277. package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
  278. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  279. package/dist/shared/src/components/Watchers/Watchers.es.js +3 -2
  280. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  281. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  282. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  283. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +5 -3
  284. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  285. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  286. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  287. package/dist/shared/src/containers/Actions/Actions.es.js +5 -2
  288. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  289. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  290. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  291. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +5 -3
  292. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  293. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  294. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  295. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +5 -3
  296. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  297. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  298. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  299. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +5 -3
  300. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  301. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  302. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  303. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +5 -3
  304. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  305. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  306. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  307. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +5 -3
  308. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  309. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  310. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  311. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +3 -2
  312. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  313. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  314. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  315. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +20 -18
  316. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  317. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  318. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  319. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +5 -3
  320. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  321. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  322. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  323. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +5 -3
  324. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  325. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  326. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  327. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +5 -2
  328. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  329. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  330. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  331. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +5 -2
  332. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  333. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
  334. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  335. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +67 -64
  336. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  337. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  338. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  339. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +5 -3
  340. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  341. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  342. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  343. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +5 -3
  344. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  345. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  346. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  347. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +5 -3
  348. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  349. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  350. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  351. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +5 -2
  352. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  353. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  354. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  355. package/dist/shared/src/containers/Feed/Feed.es.js +5 -4
  356. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  357. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  358. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  359. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +5 -3
  360. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  361. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  362. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  363. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +5 -3
  364. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  365. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  366. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  367. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +5 -3
  368. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  369. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  370. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  371. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +5 -3
  372. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  373. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  374. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  375. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +9 -7
  376. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  377. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  378. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  379. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +5 -3
  380. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  381. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js +1 -1
  382. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js.map +1 -1
  383. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.es.js +3 -2
  384. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.es.js.map +1 -1
  385. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  386. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  387. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +6 -5
  388. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  389. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  390. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  391. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +3 -2
  392. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  393. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  394. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  395. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +565 -563
  396. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  397. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  398. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  399. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +61 -50
  400. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  401. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  402. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  403. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +9 -7
  404. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  405. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +2 -2
  406. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  407. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +104 -102
  408. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  409. package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.cjs.js +10 -0
  410. package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.cjs.js.map +1 -0
  411. package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.es.js +25 -0
  412. package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.es.js.map +1 -0
  413. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  414. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +5 -3
  416. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  417. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  418. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +114 -112
  420. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  421. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +3 -3
  422. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  423. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +5 -4
  424. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  425. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  426. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  427. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +8 -8
  428. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  429. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  430. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  431. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +5 -4
  432. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  433. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  434. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +21 -19
  436. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  437. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  438. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +113 -111
  440. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  441. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  442. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  443. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +109 -107
  444. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  445. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  446. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  447. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +106 -105
  448. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  449. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  450. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  451. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +107 -105
  452. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  453. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  454. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  455. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +101 -99
  456. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  457. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  458. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  459. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +337 -40
  460. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  461. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  462. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  463. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +123 -119
  464. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  465. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  466. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  467. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +100 -98
  468. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  469. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  470. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  471. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +125 -120
  472. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  473. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  474. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +103 -101
  476. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  477. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  478. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  479. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +9 -7
  480. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  481. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  482. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  483. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +9 -7
  484. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  485. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  486. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +112 -110
  488. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  489. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  490. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  491. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +100 -98
  492. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  493. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  494. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  495. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +110 -108
  496. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  497. package/dist/shared/src/containers/ProjectTreeTable/utils/expandRelativeDates.cjs.js.map +1 -1
  498. package/dist/shared/src/containers/ProjectTreeTable/utils/expandRelativeDates.es.js.map +1 -1
  499. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +1 -1
  500. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
  501. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +89 -356
  502. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
  503. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  504. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  505. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +41 -39
  506. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  507. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js +1 -1
  508. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js.map +1 -1
  509. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js +29 -28
  510. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js.map +1 -1
  511. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.cjs.js +2 -2
  512. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.cjs.js.map +1 -1
  513. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.es.js +31 -32
  514. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.es.js.map +1 -1
  515. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  516. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  517. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +7 -5
  518. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  519. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  520. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  521. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +98 -96
  522. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  523. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  524. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  525. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +5 -3
  526. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  527. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +1 -1
  528. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  529. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +3 -2
  530. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  531. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  532. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  533. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +5 -3
  534. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  535. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  536. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  537. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +5 -3
  538. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  539. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  540. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  541. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +5 -3
  542. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  543. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  544. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  545. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +53 -49
  546. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  547. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  548. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  549. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +3 -2
  550. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  551. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  552. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  553. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +9 -7
  554. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  555. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js +1 -1
  556. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js.map +1 -1
  557. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js +21 -149
  558. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js.map +1 -1
  559. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  560. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  561. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +54 -53
  562. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  563. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js +1 -1
  564. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
  565. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js +3 -2
  566. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
  567. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  568. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  569. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +5 -2
  570. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  571. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  572. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  573. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +10 -8
  574. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  575. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  576. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  577. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +23 -20
  578. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  579. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
  580. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
  581. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +3 -2
  582. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js.map +1 -1
  583. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  584. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  585. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +8 -5
  586. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  587. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
  588. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  589. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +3 -2
  590. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  591. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
  592. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  593. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +3 -2
  594. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  595. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  596. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  597. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +3 -2
  598. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  599. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  600. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  601. package/dist/shared/src/context/AddonProjectContext.es.js +5 -4
  602. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  603. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  604. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  605. package/dist/shared/src/context/DetailsPanelContext.es.js +7 -4
  606. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  607. package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
  608. package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
  609. package/dist/shared/src/context/GlobalContext.es.js +5 -4
  610. package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
  611. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  612. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  613. package/dist/shared/src/context/PowerpackContext.es.js +9 -6
  614. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  615. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  616. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  617. package/dist/shared/src/context/ProjectContext.es.js +5 -4
  618. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  619. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  620. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  621. package/dist/shared/src/context/ProjectFoldersContext.es.js +7 -4
  622. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  623. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  624. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  625. package/dist/shared/src/context/RemoteModulesContext.es.js +5 -4
  626. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  627. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  628. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  629. package/dist/shared/src/context/SubtasksModulesContext.es.js +7 -4
  630. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  631. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  632. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  633. package/dist/shared/src/context/UriContext.es.js +6 -5
  634. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  635. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  636. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  637. package/dist/shared/src/context/WebsocketContext.es.js +7 -5
  638. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  639. package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
  640. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  641. package/dist/shared/src/hooks/useActionTriggers.es.js +3 -2
  642. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  643. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  644. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  645. package/dist/shared/src/hooks/useEntityUpdate.es.js +3 -2
  646. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  647. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
  648. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
  649. package/dist/shared/src/hooks/useGetEntityGroups.es.js +3 -2
  650. package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
  651. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  652. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  653. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +5 -2
  654. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  655. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +2 -0
  656. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -0
  657. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +31 -0
  658. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js.map +1 -0
  659. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
  660. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  661. package/dist/shared/src/hooks/useScopedStatuses.es.js +5 -4
  662. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  663. package/dist/shared/src/hooks/useScopedTypes.cjs.js +1 -1
  664. package/dist/shared/src/hooks/useScopedTypes.cjs.js.map +1 -1
  665. package/dist/shared/src/hooks/useScopedTypes.es.js +3 -2
  666. package/dist/shared/src/hooks/useScopedTypes.es.js.map +1 -1
  667. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  668. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  669. package/dist/shared/src/hooks/useUserProjectConfig.es.js +3 -2
  670. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  671. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js +1 -1
  672. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js.map +1 -1
  673. package/dist/shared/src/util/buildHierarchicalTableRows.es.js +43 -44
  674. package/dist/shared/src/util/buildHierarchicalTableRows.es.js.map +1 -1
  675. package/dist/shared/src/util/confirmDelete.cjs.js.map +1 -1
  676. package/dist/shared/src/util/confirmDelete.es.js.map +1 -1
  677. package/dist/shared/src/util/formatUTCDate.cjs.js +2 -0
  678. package/dist/shared/src/util/formatUTCDate.cjs.js.map +1 -0
  679. package/dist/shared/src/util/formatUTCDate.es.js +9 -0
  680. package/dist/shared/src/util/formatUTCDate.es.js.map +1 -0
  681. package/dist/shared/src/util/getProjectDisplayName.cjs.js +2 -0
  682. package/dist/shared/src/util/getProjectDisplayName.cjs.js.map +1 -0
  683. package/dist/shared/src/util/getProjectDisplayName.es.js +5 -0
  684. package/dist/shared/src/util/getProjectDisplayName.es.js.map +1 -0
  685. package/dist/types/api/generated/graphql.d.ts +38 -0
  686. package/dist/types/api/generated/graphqlLinks.d.ts +10 -4
  687. package/dist/types/api/generated/projectFolders.d.ts +1 -0
  688. package/dist/types/api/queries/activities/getActivities.d.ts +7 -0
  689. package/dist/types/api/queries/activities/updateActivities.d.ts +14 -0
  690. package/dist/types/api/queries/entities/getEntity.d.ts +7 -0
  691. package/dist/types/api/queries/entities/getEntityPanel.d.ts +7 -0
  692. package/dist/types/api/queries/entities/updateEntity.d.ts +7 -0
  693. package/dist/types/api/queries/entityLists/getLists.d.ts +7 -0
  694. package/dist/types/api/queries/folders/getFolderDeleteInfo.d.ts +566 -0
  695. package/dist/types/api/queries/folders/index.d.ts +1 -0
  696. package/dist/types/api/queries/links/getLinks.d.ts +1 -0
  697. package/dist/types/api/queries/overview/getOverview.d.ts +7 -0
  698. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +7 -0
  699. package/dist/types/api/queries/users/getUsers.d.ts +7 -0
  700. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +14 -0
  701. package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +1 -0
  702. package/dist/types/components/ReviewablesSelector/ReviewablesSelector.d.ts +7 -2
  703. package/dist/types/components/ReviewablesSelector/index.d.ts +1 -0
  704. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +2 -1
  705. package/dist/types/containers/EntityPickerDialog/EntityPickerDialog.d.ts +1 -0
  706. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +2 -1
  707. package/dist/types/containers/ProjectTreeTable/components/DeleteConfirmContent.d.ts +6 -0
  708. package/dist/types/containers/ProjectTreeTable/utils/expandRelativeDates.d.ts +1 -1
  709. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +1 -0
  710. package/dist/types/containers/Slicer/hooks/useSlicerViewSync.d.ts +3 -7
  711. package/dist/types/hooks/index.d.ts +1 -0
  712. package/dist/types/hooks/useReviewablesKeyboardNavigation.d.ts +13 -0
  713. package/dist/types/util/buildHierarchicalTableRows.d.ts +2 -0
  714. package/dist/types/util/confirmDelete.d.ts +1 -1
  715. package/dist/types/util/formatUTCDate.d.ts +1 -0
  716. package/dist/types/util/getProjectDisplayName.d.ts +6 -0
  717. package/dist/types/util/index.d.ts +1 -0
  718. package/dist/util.cjs.js +1 -1
  719. package/dist/util.es.js +23 -21
  720. package/dist/util.es.js.map +1 -1
  721. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react"),z=require("axios"),x=require("react-toastify"),w=require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/dataImport.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/projectFolders.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/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");const A=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");const c=a=>{const u=a.replace(/[^\x00-\xFF]/g,"").trim(),p=u.replace(/\.[^/.]+$/,""),o=u.split(".").pop();return p.length===0?"unnamed"+(o?`.${o}`:""):u},C=({projectName:a,versionId:u,taskId:p,folderId:o,productId:b,dispatch:l,onUpload:y,onProgress:$})=>{const[m,g]=f.useState({}),U=f.useCallback(F=>{u&&g(v=>({...v,[u]:v[u]?.filter(r=>r.name!==F)||[]}))},[u]);return{handleFileUpload:f.useCallback(async(F,v)=>{const r=v||u;if(!r||!a)return;const h=Array.from(F),R=h.map(i=>({name:c(i.name),size:i.size,progress:0})),T=[...m[r]||[],...R];g({...m,[r]:T});const P=i=>e=>{if(!r)return;console.log(`Upload successful for ${i.name}`);const t=e.data;a&&(l(A.reviewablesQueries.util.updateQueryData("getReviewablesForVersion",{projectName:a,versionId:r},n=>{n.reviewables||(n.reviewables=[]),n.reviewables.push(t)})),b&&l(w.api.util.invalidateTags([{type:"viewer",id:b}])),l(w.api.util.invalidateTags([{type:"viewer",id:r}])),o&&l(w.api.util.invalidateTags([{type:"viewer",id:o}])),p&&l(w.api.util.invalidateTags([{type:"viewer",id:p}])),U(c(i.name)))},H=i=>e=>{r&&(console.error(`Upload failed for ${i.name}: ${e}`),x.toast.error(`Failed to upload file: ${i.name}`),g(t=>{const s=(t[r]||[]).map(q=>q.name!==c(i.name)?q:(console.log(e),{...q,error:e.response||e.message}));return{...t,[r]:s}}))},M=i=>r?e=>g(t=>{const s=(t[r]||[]).map(d=>d.name!==c(i.name)?d:{...d,progress:e.total?Math.round(e.loaded/e.total*100):0}),q=s.reduce((d,V)=>d+(V.progress||0),0),S=Math.round(q/s.length);return $?.(S),{...t,[r]:s}}):()=>{};try{const i=h.map(e=>{const t=c(e.name),n=t.split(".").slice(0,-1).join(".")||"unnamed",s=`/api/projects/${a}/versions/${r}/reviewables?label=${n}`,q={"content-type":e.type,"x-file-name":t};return z.post(s,e,{headers:q,onUploadProgress:M(e)}).then(P(e)).catch(H(e))});await Promise.all(i),y&&y()}catch(i){console.error(i),x.toast.error("Failed to upload file/s")}},[u,a,m,l,b,o,p,U,y,$]),handleRemoveUpload:U,uploading:m}};exports.parseFilename=c;exports.useReviewablesUpload=C;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react"),z=require("axios"),x=require("react-toastify"),w=require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/dataImport.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/projectFolders.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/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/folders/getFolderDeleteInfo.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");require("../../api/queries/links/getLinks.cjs.js");require("../../api/queries/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");const A=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");const c=a=>{const u=a.replace(/[^\x00-\xFF]/g,"").trim(),p=u.replace(/\.[^/.]+$/,""),o=u.split(".").pop();return p.length===0?"unnamed"+(o?`.${o}`:""):u},C=({projectName:a,versionId:u,taskId:p,folderId:o,productId:b,dispatch:l,onUpload:y,onProgress:$})=>{const[m,g]=f.useState({}),U=f.useCallback(F=>{u&&g(v=>({...v,[u]:v[u]?.filter(r=>r.name!==F)||[]}))},[u]);return{handleFileUpload:f.useCallback(async(F,v)=>{const r=v||u;if(!r||!a)return;const h=Array.from(F),R=h.map(i=>({name:c(i.name),size:i.size,progress:0})),T=[...m[r]||[],...R];g({...m,[r]:T});const P=i=>e=>{if(!r)return;console.log(`Upload successful for ${i.name}`);const t=e.data;a&&(l(A.reviewablesQueries.util.updateQueryData("getReviewablesForVersion",{projectName:a,versionId:r},n=>{n.reviewables||(n.reviewables=[]),n.reviewables.push(t)})),b&&l(w.api.util.invalidateTags([{type:"viewer",id:b}])),l(w.api.util.invalidateTags([{type:"viewer",id:r}])),o&&l(w.api.util.invalidateTags([{type:"viewer",id:o}])),p&&l(w.api.util.invalidateTags([{type:"viewer",id:p}])),U(c(i.name)))},H=i=>e=>{r&&(console.error(`Upload failed for ${i.name}: ${e}`),x.toast.error(`Failed to upload file: ${i.name}`),g(t=>{const s=(t[r]||[]).map(q=>q.name!==c(i.name)?q:(console.log(e),{...q,error:e.response||e.message}));return{...t,[r]:s}}))},M=i=>r?e=>g(t=>{const s=(t[r]||[]).map(d=>d.name!==c(i.name)?d:{...d,progress:e.total?Math.round(e.loaded/e.total*100):0}),q=s.reduce((d,V)=>d+(V.progress||0),0),S=Math.round(q/s.length);return $?.(S),{...t,[r]:s}}):()=>{};try{const i=h.map(e=>{const t=c(e.name),n=t.split(".").slice(0,-1).join(".")||"unnamed",s=`/api/projects/${a}/versions/${r}/reviewables?label=${n}`,q={"content-type":e.type,"x-file-name":t};return z.post(s,e,{headers:q,onUploadProgress:M(e)}).then(P(e)).catch(H(e))});await Promise.all(i),y&&y()}catch(i){console.error(i),x.toast.error("Failed to upload file/s")}},[u,a,m,l,b,o,p,U,y,$]),handleRemoveUpload:U,uploading:m}};exports.parseFilename=c;exports.useReviewablesUpload=C;
2
2
  //# sourceMappingURL=useReviewablesUpload.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useReviewablesUpload.cjs.js","sources":["../../../../../src/components/ReviewablesList/useReviewablesUpload.ts"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport axios, { AxiosProgressEvent, AxiosResponse } from 'axios'\nimport { toast } from 'react-toastify'\n\nimport api, { reviewablesQueries } from '@shared/api'\nimport type { UploadReviewableApiResponse } from '@shared/api'\nimport type { ReviewableProgress } from '@shared/components'\n\n// strip out non-ISO-8859-1 characters like Narrow No-Break Space and emojis\n// then check it is not an empty string without extension, if so replace with \"unnamed\"\nexport const parseFilename = (filename: string) => {\n const parsed = filename.replace(/[^\\x00-\\xFF]/g, '').trim()\n // without extension\n const nameWithoutExtension = parsed.replace(/\\.[^/.]+$/, '')\n const extension = parsed.split('.').pop()\n if (nameWithoutExtension.length === 0) {\n return 'unnamed' + (extension ? `.${extension}` : '')\n } else {\n return parsed\n }\n}\n\nexport interface UseReviewablesUploadProps {\n projectName: string | null\n versionId?: string | null\n taskId?: string | null\n folderId?: string | null\n productId?: string | null\n dispatch: any\n onUpload?: () => void\n onProgress?: (progress: number) => void\n}\n\nexport interface UploadHandlers {\n handleFileUpload: (files: FileList | File[], versionId?: string) => Promise<void>\n handleRemoveUpload: (name: string) => void\n uploading: { [key: string]: ReviewableProgress[] }\n}\n\nexport const useReviewablesUpload = ({\n projectName,\n versionId,\n taskId,\n folderId,\n productId,\n dispatch,\n onUpload,\n onProgress,\n}: UseReviewablesUploadProps): UploadHandlers => {\n const [uploading, setUploads] = useState<{ [key: string]: ReviewableProgress[] }>({})\n\n const handleRemoveUpload = useCallback(\n (name: string) => {\n if (!versionId) return\n setUploads((uploads) => ({\n ...uploads,\n [versionId]: uploads[versionId]?.filter((upload) => upload.name !== name) || [],\n }))\n },\n [versionId],\n )\n\n const handleFileUpload = useCallback(\n async (files: FileList | File[], fileVersionId?: string) => {\n // use the passed versionId or the one from props\n const reviewableVersionId = fileVersionId || versionId\n if (!reviewableVersionId || !projectName) return\n\n const fileArray = Array.from(files)\n\n const uploadingFiles = fileArray.map((file) => ({\n name: parseFilename(file.name),\n size: file.size,\n progress: 0,\n }))\n\n const newUploadsForVersion = [...(uploading[reviewableVersionId] || []), ...uploadingFiles]\n\n setUploads({ ...uploading, [reviewableVersionId]: newUploadsForVersion })\n\n const successHandler = (file: File) => (response: AxiosResponse) => {\n if (!reviewableVersionId) return\n // Handle successful upload\n console.log(`Upload successful for ${file.name}`)\n // patch the new data into the reviewables cache\n const data = response.data as UploadReviewableApiResponse\n\n if (!projectName) return\n\n dispatch(\n // @ts-ignore\n reviewablesQueries.util.updateQueryData(\n 'getReviewablesForVersion',\n { projectName, versionId: reviewableVersionId },\n (draft) => {\n if (!draft.reviewables) {\n draft.reviewables = []\n }\n // @ts-ignore\n draft.reviewables.push(data)\n },\n ),\n )\n\n // also invalidate the viewer cache\n productId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: productId }]))\n dispatch(api.util.invalidateTags([{ type: 'viewer', id: reviewableVersionId }]))\n folderId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: folderId }]))\n taskId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: taskId }]))\n // remove the file from the list\n handleRemoveUpload(parseFilename(file.name))\n }\n\n const errorHandler = (file: File) => (error: any) => {\n if (!reviewableVersionId) return\n console.error(`Upload failed for ${file.name}: ${error}`)\n toast.error(`Failed to upload file: ${file.name}`)\n // add error to the file\n setUploads((uploads) => {\n // current uploads for reviewableVersionId\n const currentUploads = uploads[reviewableVersionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== parseFilename(file.name)) return upload\n console.log(error)\n return {\n ...upload,\n error: error.response || error.message,\n }\n })\n\n // update state\n return {\n ...uploads,\n [reviewableVersionId]: updatedUploads,\n }\n })\n }\n\n const progressHandler = (file: File) => {\n if (!reviewableVersionId) return () => {}\n return (progressEvent: AxiosProgressEvent) =>\n setUploads((uploads) => {\n // current uploads for reviewableVersionId\n const currentUploads = uploads[reviewableVersionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== parseFilename(file.name)) return upload\n return {\n ...upload,\n progress: progressEvent.total\n ? Math.round((progressEvent.loaded / progressEvent.total) * 100)\n : 0,\n }\n })\n\n // Calculate overall progress across all files\n const totalProgress = updatedUploads.reduce(\n (sum, upload) => sum + (upload.progress || 0),\n 0,\n )\n const overallProgress = Math.round(totalProgress / updatedUploads.length)\n\n // Call the onProgress callback with overall progress\n onProgress?.(overallProgress)\n\n // update state\n return {\n ...uploads,\n [reviewableVersionId]: updatedUploads,\n }\n })\n }\n\n try {\n // upload the files\n const uploadPromises = fileArray.map((file) => {\n const fileName = parseFilename(file.name)\n const autoLabel = fileName.split('.').slice(0, -1).join('.') || 'unnamed'\n\n const url = `/api/projects/${projectName}/versions/${reviewableVersionId}/reviewables?label=${autoLabel}`\n const headers = { 'content-type': file.type, 'x-file-name': fileName }\n return axios\n .post(url, file, { headers, onUploadProgress: progressHandler(file) })\n .then(successHandler(file))\n .catch(errorHandler(file))\n })\n\n // Wait for all uploads to complete\n await Promise.all(uploadPromises)\n\n // Callback after all uploads are finished\n onUpload && onUpload()\n } catch (error) {\n // something went wrong with everything, EEEEK!\n console.error(error)\n toast.error('Failed to upload file/s')\n }\n },\n [\n versionId,\n projectName,\n uploading,\n dispatch,\n productId,\n folderId,\n taskId,\n handleRemoveUpload,\n onUpload,\n onProgress,\n ],\n )\n\n return {\n handleFileUpload,\n handleRemoveUpload,\n uploading,\n }\n}\n"],"names":["parseFilename","filename","parsed","nameWithoutExtension","extension","useReviewablesUpload","projectName","versionId","taskId","folderId","productId","dispatch","onUpload","onProgress","uploading","setUploads","useState","handleRemoveUpload","useCallback","name","uploads","upload","files","fileVersionId","reviewableVersionId","fileArray","uploadingFiles","file","newUploadsForVersion","successHandler","response","data","reviewablesQueries","draft","api","errorHandler","error","toast","updatedUploads","progressHandler","progressEvent","totalProgress","sum","overallProgress","uploadPromises","fileName","autoLabel","url","headers","axios"],"mappings":"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"}
1
+ {"version":3,"file":"useReviewablesUpload.cjs.js","sources":["../../../../../src/components/ReviewablesList/useReviewablesUpload.ts"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport axios, { AxiosProgressEvent, AxiosResponse } from 'axios'\nimport { toast } from 'react-toastify'\n\nimport api, { reviewablesQueries } from '@shared/api'\nimport type { UploadReviewableApiResponse } from '@shared/api'\nimport type { ReviewableProgress } from '@shared/components'\n\n// strip out non-ISO-8859-1 characters like Narrow No-Break Space and emojis\n// then check it is not an empty string without extension, if so replace with \"unnamed\"\nexport const parseFilename = (filename: string) => {\n const parsed = filename.replace(/[^\\x00-\\xFF]/g, '').trim()\n // without extension\n const nameWithoutExtension = parsed.replace(/\\.[^/.]+$/, '')\n const extension = parsed.split('.').pop()\n if (nameWithoutExtension.length === 0) {\n return 'unnamed' + (extension ? `.${extension}` : '')\n } else {\n return parsed\n }\n}\n\nexport interface UseReviewablesUploadProps {\n projectName: string | null\n versionId?: string | null\n taskId?: string | null\n folderId?: string | null\n productId?: string | null\n dispatch: any\n onUpload?: () => void\n onProgress?: (progress: number) => void\n}\n\nexport interface UploadHandlers {\n handleFileUpload: (files: FileList | File[], versionId?: string) => Promise<void>\n handleRemoveUpload: (name: string) => void\n uploading: { [key: string]: ReviewableProgress[] }\n}\n\nexport const useReviewablesUpload = ({\n projectName,\n versionId,\n taskId,\n folderId,\n productId,\n dispatch,\n onUpload,\n onProgress,\n}: UseReviewablesUploadProps): UploadHandlers => {\n const [uploading, setUploads] = useState<{ [key: string]: ReviewableProgress[] }>({})\n\n const handleRemoveUpload = useCallback(\n (name: string) => {\n if (!versionId) return\n setUploads((uploads) => ({\n ...uploads,\n [versionId]: uploads[versionId]?.filter((upload) => upload.name !== name) || [],\n }))\n },\n [versionId],\n )\n\n const handleFileUpload = useCallback(\n async (files: FileList | File[], fileVersionId?: string) => {\n // use the passed versionId or the one from props\n const reviewableVersionId = fileVersionId || versionId\n if (!reviewableVersionId || !projectName) return\n\n const fileArray = Array.from(files)\n\n const uploadingFiles = fileArray.map((file) => ({\n name: parseFilename(file.name),\n size: file.size,\n progress: 0,\n }))\n\n const newUploadsForVersion = [...(uploading[reviewableVersionId] || []), ...uploadingFiles]\n\n setUploads({ ...uploading, [reviewableVersionId]: newUploadsForVersion })\n\n const successHandler = (file: File) => (response: AxiosResponse) => {\n if (!reviewableVersionId) return\n // Handle successful upload\n console.log(`Upload successful for ${file.name}`)\n // patch the new data into the reviewables cache\n const data = response.data as UploadReviewableApiResponse\n\n if (!projectName) return\n\n dispatch(\n // @ts-ignore\n reviewablesQueries.util.updateQueryData(\n 'getReviewablesForVersion',\n { projectName, versionId: reviewableVersionId },\n (draft) => {\n if (!draft.reviewables) {\n draft.reviewables = []\n }\n // @ts-ignore\n draft.reviewables.push(data)\n },\n ),\n )\n\n // also invalidate the viewer cache\n productId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: productId }]))\n dispatch(api.util.invalidateTags([{ type: 'viewer', id: reviewableVersionId }]))\n folderId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: folderId }]))\n taskId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: taskId }]))\n // remove the file from the list\n handleRemoveUpload(parseFilename(file.name))\n }\n\n const errorHandler = (file: File) => (error: any) => {\n if (!reviewableVersionId) return\n console.error(`Upload failed for ${file.name}: ${error}`)\n toast.error(`Failed to upload file: ${file.name}`)\n // add error to the file\n setUploads((uploads) => {\n // current uploads for reviewableVersionId\n const currentUploads = uploads[reviewableVersionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== parseFilename(file.name)) return upload\n console.log(error)\n return {\n ...upload,\n error: error.response || error.message,\n }\n })\n\n // update state\n return {\n ...uploads,\n [reviewableVersionId]: updatedUploads,\n }\n })\n }\n\n const progressHandler = (file: File) => {\n if (!reviewableVersionId) return () => {}\n return (progressEvent: AxiosProgressEvent) =>\n setUploads((uploads) => {\n // current uploads for reviewableVersionId\n const currentUploads = uploads[reviewableVersionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== parseFilename(file.name)) return upload\n return {\n ...upload,\n progress: progressEvent.total\n ? Math.round((progressEvent.loaded / progressEvent.total) * 100)\n : 0,\n }\n })\n\n // Calculate overall progress across all files\n const totalProgress = updatedUploads.reduce(\n (sum, upload) => sum + (upload.progress || 0),\n 0,\n )\n const overallProgress = Math.round(totalProgress / updatedUploads.length)\n\n // Call the onProgress callback with overall progress\n onProgress?.(overallProgress)\n\n // update state\n return {\n ...uploads,\n [reviewableVersionId]: updatedUploads,\n }\n })\n }\n\n try {\n // upload the files\n const uploadPromises = fileArray.map((file) => {\n const fileName = parseFilename(file.name)\n const autoLabel = fileName.split('.').slice(0, -1).join('.') || 'unnamed'\n\n const url = `/api/projects/${projectName}/versions/${reviewableVersionId}/reviewables?label=${autoLabel}`\n const headers = { 'content-type': file.type, 'x-file-name': fileName }\n return axios\n .post(url, file, { headers, onUploadProgress: progressHandler(file) })\n .then(successHandler(file))\n .catch(errorHandler(file))\n })\n\n // Wait for all uploads to complete\n await Promise.all(uploadPromises)\n\n // Callback after all uploads are finished\n onUpload && onUpload()\n } catch (error) {\n // something went wrong with everything, EEEEK!\n console.error(error)\n toast.error('Failed to upload file/s')\n }\n },\n [\n versionId,\n projectName,\n uploading,\n dispatch,\n productId,\n folderId,\n taskId,\n handleRemoveUpload,\n onUpload,\n onProgress,\n ],\n )\n\n return {\n handleFileUpload,\n handleRemoveUpload,\n uploading,\n }\n}\n"],"names":["parseFilename","filename","parsed","nameWithoutExtension","extension","useReviewablesUpload","projectName","versionId","taskId","folderId","productId","dispatch","onUpload","onProgress","uploading","setUploads","useState","handleRemoveUpload","useCallback","name","uploads","upload","files","fileVersionId","reviewableVersionId","fileArray","uploadingFiles","file","newUploadsForVersion","successHandler","response","data","reviewablesQueries","draft","api","errorHandler","error","toast","updatedUploads","progressHandler","progressEvent","totalProgress","sum","overallProgress","uploadPromises","fileName","autoLabel","url","headers","axios"],"mappings":"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"}
@@ -64,6 +64,7 @@ import "../../api/queries/entityLists/getListsAttributes.es.js";
64
64
  import "../../api/queries/entityLists/updateListsAttributes.es.js";
65
65
  import "../../api/queries/entityLists/listFolders.es.js";
66
66
  import "../../api/queries/folders/getFolders.es.js";
67
+ import "../../api/queries/folders/getFolderDeleteInfo.es.js";
67
68
  import "../../api/queries/grouping/getGrouping.es.js";
68
69
  import "../../api/queries/links/updateLinks.es.js";
69
70
  import "../../api/queries/links/getLinks.es.js";
@@ -96,7 +97,7 @@ import "../../api/queries/uris/getUris.es.js";
96
97
  const d = (p) => {
97
98
  const i = p.replace(/[^\x00-\xFF]/g, "").trim(), u = i.replace(/\.[^/.]+$/, ""), s = i.split(".").pop();
98
99
  return u.length === 0 ? "unnamed" + (s ? `.${s}` : "") : i;
99
- }, xt = ({
100
+ }, Pt = ({
100
101
  projectName: p,
101
102
  versionId: i,
102
103
  taskId: u,
@@ -194,6 +195,6 @@ const d = (p) => {
194
195
  };
195
196
  export {
196
197
  d as parseFilename,
197
- xt as useReviewablesUpload
198
+ Pt as useReviewablesUpload
198
199
  };
199
200
  //# sourceMappingURL=useReviewablesUpload.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useReviewablesUpload.es.js","sources":["../../../../../src/components/ReviewablesList/useReviewablesUpload.ts"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport axios, { AxiosProgressEvent, AxiosResponse } from 'axios'\nimport { toast } from 'react-toastify'\n\nimport api, { reviewablesQueries } from '@shared/api'\nimport type { UploadReviewableApiResponse } from '@shared/api'\nimport type { ReviewableProgress } from '@shared/components'\n\n// strip out non-ISO-8859-1 characters like Narrow No-Break Space and emojis\n// then check it is not an empty string without extension, if so replace with \"unnamed\"\nexport const parseFilename = (filename: string) => {\n const parsed = filename.replace(/[^\\x00-\\xFF]/g, '').trim()\n // without extension\n const nameWithoutExtension = parsed.replace(/\\.[^/.]+$/, '')\n const extension = parsed.split('.').pop()\n if (nameWithoutExtension.length === 0) {\n return 'unnamed' + (extension ? `.${extension}` : '')\n } else {\n return parsed\n }\n}\n\nexport interface UseReviewablesUploadProps {\n projectName: string | null\n versionId?: string | null\n taskId?: string | null\n folderId?: string | null\n productId?: string | null\n dispatch: any\n onUpload?: () => void\n onProgress?: (progress: number) => void\n}\n\nexport interface UploadHandlers {\n handleFileUpload: (files: FileList | File[], versionId?: string) => Promise<void>\n handleRemoveUpload: (name: string) => void\n uploading: { [key: string]: ReviewableProgress[] }\n}\n\nexport const useReviewablesUpload = ({\n projectName,\n versionId,\n taskId,\n folderId,\n productId,\n dispatch,\n onUpload,\n onProgress,\n}: UseReviewablesUploadProps): UploadHandlers => {\n const [uploading, setUploads] = useState<{ [key: string]: ReviewableProgress[] }>({})\n\n const handleRemoveUpload = useCallback(\n (name: string) => {\n if (!versionId) return\n setUploads((uploads) => ({\n ...uploads,\n [versionId]: uploads[versionId]?.filter((upload) => upload.name !== name) || [],\n }))\n },\n [versionId],\n )\n\n const handleFileUpload = useCallback(\n async (files: FileList | File[], fileVersionId?: string) => {\n // use the passed versionId or the one from props\n const reviewableVersionId = fileVersionId || versionId\n if (!reviewableVersionId || !projectName) return\n\n const fileArray = Array.from(files)\n\n const uploadingFiles = fileArray.map((file) => ({\n name: parseFilename(file.name),\n size: file.size,\n progress: 0,\n }))\n\n const newUploadsForVersion = [...(uploading[reviewableVersionId] || []), ...uploadingFiles]\n\n setUploads({ ...uploading, [reviewableVersionId]: newUploadsForVersion })\n\n const successHandler = (file: File) => (response: AxiosResponse) => {\n if (!reviewableVersionId) return\n // Handle successful upload\n console.log(`Upload successful for ${file.name}`)\n // patch the new data into the reviewables cache\n const data = response.data as UploadReviewableApiResponse\n\n if (!projectName) return\n\n dispatch(\n // @ts-ignore\n reviewablesQueries.util.updateQueryData(\n 'getReviewablesForVersion',\n { projectName, versionId: reviewableVersionId },\n (draft) => {\n if (!draft.reviewables) {\n draft.reviewables = []\n }\n // @ts-ignore\n draft.reviewables.push(data)\n },\n ),\n )\n\n // also invalidate the viewer cache\n productId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: productId }]))\n dispatch(api.util.invalidateTags([{ type: 'viewer', id: reviewableVersionId }]))\n folderId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: folderId }]))\n taskId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: taskId }]))\n // remove the file from the list\n handleRemoveUpload(parseFilename(file.name))\n }\n\n const errorHandler = (file: File) => (error: any) => {\n if (!reviewableVersionId) return\n console.error(`Upload failed for ${file.name}: ${error}`)\n toast.error(`Failed to upload file: ${file.name}`)\n // add error to the file\n setUploads((uploads) => {\n // current uploads for reviewableVersionId\n const currentUploads = uploads[reviewableVersionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== parseFilename(file.name)) return upload\n console.log(error)\n return {\n ...upload,\n error: error.response || error.message,\n }\n })\n\n // update state\n return {\n ...uploads,\n [reviewableVersionId]: updatedUploads,\n }\n })\n }\n\n const progressHandler = (file: File) => {\n if (!reviewableVersionId) return () => {}\n return (progressEvent: AxiosProgressEvent) =>\n setUploads((uploads) => {\n // current uploads for reviewableVersionId\n const currentUploads = uploads[reviewableVersionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== parseFilename(file.name)) return upload\n return {\n ...upload,\n progress: progressEvent.total\n ? Math.round((progressEvent.loaded / progressEvent.total) * 100)\n : 0,\n }\n })\n\n // Calculate overall progress across all files\n const totalProgress = updatedUploads.reduce(\n (sum, upload) => sum + (upload.progress || 0),\n 0,\n )\n const overallProgress = Math.round(totalProgress / updatedUploads.length)\n\n // Call the onProgress callback with overall progress\n onProgress?.(overallProgress)\n\n // update state\n return {\n ...uploads,\n [reviewableVersionId]: updatedUploads,\n }\n })\n }\n\n try {\n // upload the files\n const uploadPromises = fileArray.map((file) => {\n const fileName = parseFilename(file.name)\n const autoLabel = fileName.split('.').slice(0, -1).join('.') || 'unnamed'\n\n const url = `/api/projects/${projectName}/versions/${reviewableVersionId}/reviewables?label=${autoLabel}`\n const headers = { 'content-type': file.type, 'x-file-name': fileName }\n return axios\n .post(url, file, { headers, onUploadProgress: progressHandler(file) })\n .then(successHandler(file))\n .catch(errorHandler(file))\n })\n\n // Wait for all uploads to complete\n await Promise.all(uploadPromises)\n\n // Callback after all uploads are finished\n onUpload && onUpload()\n } catch (error) {\n // something went wrong with everything, EEEEK!\n console.error(error)\n toast.error('Failed to upload file/s')\n }\n },\n [\n versionId,\n projectName,\n uploading,\n dispatch,\n productId,\n folderId,\n taskId,\n handleRemoveUpload,\n onUpload,\n onProgress,\n ],\n )\n\n return {\n handleFileUpload,\n handleRemoveUpload,\n uploading,\n }\n}\n"],"names":["parseFilename","filename","parsed","nameWithoutExtension","extension","useReviewablesUpload","projectName","versionId","taskId","folderId","productId","dispatch","onUpload","onProgress","uploading","setUploads","useState","handleRemoveUpload","useCallback","name","uploads","upload","files","fileVersionId","reviewableVersionId","fileArray","uploadingFiles","file","newUploadsForVersion","successHandler","response","data","reviewablesQueries","draft","api","errorHandler","error","toast","updatedUploads","progressHandler","progressEvent","totalProgress","sum","overallProgress","uploadPromises","fileName","autoLabel","url","headers","axios"],"mappings":"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"}
1
+ {"version":3,"file":"useReviewablesUpload.es.js","sources":["../../../../../src/components/ReviewablesList/useReviewablesUpload.ts"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport axios, { AxiosProgressEvent, AxiosResponse } from 'axios'\nimport { toast } from 'react-toastify'\n\nimport api, { reviewablesQueries } from '@shared/api'\nimport type { UploadReviewableApiResponse } from '@shared/api'\nimport type { ReviewableProgress } from '@shared/components'\n\n// strip out non-ISO-8859-1 characters like Narrow No-Break Space and emojis\n// then check it is not an empty string without extension, if so replace with \"unnamed\"\nexport const parseFilename = (filename: string) => {\n const parsed = filename.replace(/[^\\x00-\\xFF]/g, '').trim()\n // without extension\n const nameWithoutExtension = parsed.replace(/\\.[^/.]+$/, '')\n const extension = parsed.split('.').pop()\n if (nameWithoutExtension.length === 0) {\n return 'unnamed' + (extension ? `.${extension}` : '')\n } else {\n return parsed\n }\n}\n\nexport interface UseReviewablesUploadProps {\n projectName: string | null\n versionId?: string | null\n taskId?: string | null\n folderId?: string | null\n productId?: string | null\n dispatch: any\n onUpload?: () => void\n onProgress?: (progress: number) => void\n}\n\nexport interface UploadHandlers {\n handleFileUpload: (files: FileList | File[], versionId?: string) => Promise<void>\n handleRemoveUpload: (name: string) => void\n uploading: { [key: string]: ReviewableProgress[] }\n}\n\nexport const useReviewablesUpload = ({\n projectName,\n versionId,\n taskId,\n folderId,\n productId,\n dispatch,\n onUpload,\n onProgress,\n}: UseReviewablesUploadProps): UploadHandlers => {\n const [uploading, setUploads] = useState<{ [key: string]: ReviewableProgress[] }>({})\n\n const handleRemoveUpload = useCallback(\n (name: string) => {\n if (!versionId) return\n setUploads((uploads) => ({\n ...uploads,\n [versionId]: uploads[versionId]?.filter((upload) => upload.name !== name) || [],\n }))\n },\n [versionId],\n )\n\n const handleFileUpload = useCallback(\n async (files: FileList | File[], fileVersionId?: string) => {\n // use the passed versionId or the one from props\n const reviewableVersionId = fileVersionId || versionId\n if (!reviewableVersionId || !projectName) return\n\n const fileArray = Array.from(files)\n\n const uploadingFiles = fileArray.map((file) => ({\n name: parseFilename(file.name),\n size: file.size,\n progress: 0,\n }))\n\n const newUploadsForVersion = [...(uploading[reviewableVersionId] || []), ...uploadingFiles]\n\n setUploads({ ...uploading, [reviewableVersionId]: newUploadsForVersion })\n\n const successHandler = (file: File) => (response: AxiosResponse) => {\n if (!reviewableVersionId) return\n // Handle successful upload\n console.log(`Upload successful for ${file.name}`)\n // patch the new data into the reviewables cache\n const data = response.data as UploadReviewableApiResponse\n\n if (!projectName) return\n\n dispatch(\n // @ts-ignore\n reviewablesQueries.util.updateQueryData(\n 'getReviewablesForVersion',\n { projectName, versionId: reviewableVersionId },\n (draft) => {\n if (!draft.reviewables) {\n draft.reviewables = []\n }\n // @ts-ignore\n draft.reviewables.push(data)\n },\n ),\n )\n\n // also invalidate the viewer cache\n productId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: productId }]))\n dispatch(api.util.invalidateTags([{ type: 'viewer', id: reviewableVersionId }]))\n folderId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: folderId }]))\n taskId && dispatch(api.util.invalidateTags([{ type: 'viewer', id: taskId }]))\n // remove the file from the list\n handleRemoveUpload(parseFilename(file.name))\n }\n\n const errorHandler = (file: File) => (error: any) => {\n if (!reviewableVersionId) return\n console.error(`Upload failed for ${file.name}: ${error}`)\n toast.error(`Failed to upload file: ${file.name}`)\n // add error to the file\n setUploads((uploads) => {\n // current uploads for reviewableVersionId\n const currentUploads = uploads[reviewableVersionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== parseFilename(file.name)) return upload\n console.log(error)\n return {\n ...upload,\n error: error.response || error.message,\n }\n })\n\n // update state\n return {\n ...uploads,\n [reviewableVersionId]: updatedUploads,\n }\n })\n }\n\n const progressHandler = (file: File) => {\n if (!reviewableVersionId) return () => {}\n return (progressEvent: AxiosProgressEvent) =>\n setUploads((uploads) => {\n // current uploads for reviewableVersionId\n const currentUploads = uploads[reviewableVersionId] || []\n const updatedUploads = currentUploads.map((upload) => {\n if (upload.name !== parseFilename(file.name)) return upload\n return {\n ...upload,\n progress: progressEvent.total\n ? Math.round((progressEvent.loaded / progressEvent.total) * 100)\n : 0,\n }\n })\n\n // Calculate overall progress across all files\n const totalProgress = updatedUploads.reduce(\n (sum, upload) => sum + (upload.progress || 0),\n 0,\n )\n const overallProgress = Math.round(totalProgress / updatedUploads.length)\n\n // Call the onProgress callback with overall progress\n onProgress?.(overallProgress)\n\n // update state\n return {\n ...uploads,\n [reviewableVersionId]: updatedUploads,\n }\n })\n }\n\n try {\n // upload the files\n const uploadPromises = fileArray.map((file) => {\n const fileName = parseFilename(file.name)\n const autoLabel = fileName.split('.').slice(0, -1).join('.') || 'unnamed'\n\n const url = `/api/projects/${projectName}/versions/${reviewableVersionId}/reviewables?label=${autoLabel}`\n const headers = { 'content-type': file.type, 'x-file-name': fileName }\n return axios\n .post(url, file, { headers, onUploadProgress: progressHandler(file) })\n .then(successHandler(file))\n .catch(errorHandler(file))\n })\n\n // Wait for all uploads to complete\n await Promise.all(uploadPromises)\n\n // Callback after all uploads are finished\n onUpload && onUpload()\n } catch (error) {\n // something went wrong with everything, EEEEK!\n console.error(error)\n toast.error('Failed to upload file/s')\n }\n },\n [\n versionId,\n projectName,\n uploading,\n dispatch,\n productId,\n folderId,\n taskId,\n handleRemoveUpload,\n onUpload,\n onProgress,\n ],\n )\n\n return {\n handleFileUpload,\n handleRemoveUpload,\n uploading,\n }\n}\n"],"names":["parseFilename","filename","parsed","nameWithoutExtension","extension","useReviewablesUpload","projectName","versionId","taskId","folderId","productId","dispatch","onUpload","onProgress","uploading","setUploads","useState","handleRemoveUpload","useCallback","name","uploads","upload","files","fileVersionId","reviewableVersionId","fileArray","uploadingFiles","file","newUploadsForVersion","successHandler","response","data","reviewablesQueries","draft","api","errorHandler","error","toast","updatedUploads","progressHandler","progressEvent","totalProgress","sum","overallProgress","uploadPromises","fileName","autoLabel","url","headers","axios"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const i=require("../../../../_virtual/jsx-runtime.cjs.js"),p=require("clsx");require("../AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("react");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("../AttributeEditor/attributeTypeMap.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/dataImport.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/projectFolders.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/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");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 */const j=require("../../containers/ContextMenu/useCreateContextMenu.cjs.js");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 C=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 t=require("./ReviewablesSelector.styled.cjs.js");function b({fileId:r,label:s,selected:n,projectName:o,onKeyDown:a,onMouseOver:c,onChange:x,tag:u,contextMenuItems:q,selectionVariant:l="primary"}){const[m]=j.useCreateContextMenu();return i.jsxRuntimeExports.jsxs(t.ReviewableCard,{id:"preview-"+r,onClick:e=>x?.(r,e.metaKey||e.ctrlKey),className:p("reviewable-card",{selected:n},l),onMouseOver:e=>c(e,{label:s}),onKeyDown:a,onContextMenu:e=>{q&&(e.preventDefault(),m(e,q))},tabIndex:0,children:[i.jsxRuntimeExports.jsx(C.FileThumbnail,{src:`/api/projects/${o}/files/${r}/thumbnail`}),u&&i.jsxRuntimeExports.jsx(t.Tag,{children:u})]},r)}module.exports=b;
1
+ "use strict";const i=require("../../../../_virtual/jsx-runtime.cjs.js"),p=require("clsx");require("../AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("react");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("../AttributeEditor/attributeTypeMap.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/dataImport.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/projectFolders.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/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/folders/getFolderDeleteInfo.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");require("../../api/queries/links/getLinks.cjs.js");require("../../api/queries/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");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 */const j=require("../../containers/ContextMenu/useCreateContextMenu.cjs.js");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/components/DeleteConfirmContent.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 C=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");require("./ReviewablesSelector.cjs.js");const t=require("./ReviewablesSelector.styled.cjs.js");function b({fileId:r,label:s,selected:n,projectName:o,onKeyDown:a,onMouseOver:c,onChange:x,tag:u,contextMenuItems:q,selectionVariant:l="primary"}){const[m]=j.useCreateContextMenu();return i.jsxRuntimeExports.jsxs(t.ReviewableCard,{id:"preview-"+r,onClick:e=>x?.(r,e.metaKey||e.ctrlKey),className:p("reviewable-card",{selected:n},l),onMouseOver:e=>c(e,{label:s}),onKeyDown:a,onContextMenu:e=>{q&&(e.preventDefault(),m(e,q))},tabIndex:0,children:[i.jsxRuntimeExports.jsx(C.FileThumbnail,{src:`/api/projects/${o}/files/${r}/thumbnail`}),u&&i.jsxRuntimeExports.jsx(t.Tag,{children:u})]},r)}module.exports=b;
2
2
  //# sourceMappingURL=Card.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Card.cjs.js","sources":["../../../../../src/components/ReviewablesSelector/Card.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { FileThumbnail } from '@shared/components'\nimport { ReviewableModel } from '@shared/api'\nimport { ContextMenuItemType, useCreateContextMenu } from '@shared/containers'\nimport * as Styled from './ReviewablesSelector.styled'\nimport { KeyboardEvent, MouseEvent } from 'react'\n\nexport type ReviewableCard = Pick<ReviewableModel, 'fileId' | 'label'> & {\n tag?: JSX.Element,\n contextMenuItems?: ContextMenuItemType[],\n selectionVariant?: 'primary' | 'tertiary',\n}\n\nexport type ReviewableCardProps = ReviewableCard & {\n projectName: string | null,\n selected: boolean,\n onChange?: (fileId: string, modifier?: boolean) => void,\n onKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void,\n onMouseOver: (event: MouseEvent<HTMLDivElement>, { label }: { label?: string }) => void,\n}\n\nexport default function Card({\n fileId,\n label,\n selected,\n projectName,\n onKeyDown,\n onMouseOver,\n onChange,\n tag,\n contextMenuItems,\n selectionVariant = 'primary',\n}: ReviewableCardProps) {\n const [contextMenuShow] = useCreateContextMenu()\n\n return (\n <Styled.ReviewableCard\n key={fileId}\n id={'preview-' + fileId}\n onClick={(event) => onChange?.(fileId, event.metaKey || event.ctrlKey)}\n className={clsx('reviewable-card', { selected }, selectionVariant)}\n onMouseOver={(e) => onMouseOver(e, { label })}\n onKeyDown={onKeyDown}\n onContextMenu={(event) => {\n if (!contextMenuItems) return\n\n event.preventDefault()\n contextMenuShow(event, contextMenuItems)\n }}\n tabIndex={0}\n >\n <FileThumbnail src={`/api/projects/${projectName}/files/${fileId}/thumbnail`} />\n {\n tag && <Styled.Tag>{tag}</Styled.Tag>\n }\n </Styled.ReviewableCard>\n )\n}\n"],"names":["Card","fileId","label","selected","projectName","onKeyDown","onMouseOver","onChange","tag","contextMenuItems","selectionVariant","contextMenuShow","useCreateContextMenu","jsxs","Styled.ReviewableCard","event","clsx","jsx","FileThumbnail","Styled.Tag"],"mappings":"y2eAqBA,SAAwBA,EAAK,CAC3B,OAAAC,EACA,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,UAAAC,EACA,YAAAC,EACA,SAAAC,EACA,IAAAC,EACA,iBAAAC,EACA,iBAAAC,EAAmB,SACrB,EAAwB,CACtB,KAAM,CAACC,CAAe,EAAIC,uBAAA,EAE1B,OACEC,EAAAA,kBAAAA,KAACC,EAAAA,eAAA,CAEC,GAAI,WAAab,EACjB,QAAUc,GAAUR,IAAWN,EAAQc,EAAM,SAAWA,EAAM,OAAO,EACrE,UAAWC,EAAK,kBAAmB,CAAE,SAAAb,CAAA,EAAYO,CAAgB,EACjE,YAAc,GAAMJ,EAAY,EAAG,CAAE,MAAAJ,EAAO,EAC5C,UAAAG,EACA,cAAgBU,GAAU,CACnBN,IAELM,EAAM,eAAA,EACNJ,EAAgBI,EAAON,CAAgB,EACzC,EACA,SAAU,EAEV,SAAA,CAAAQ,wBAACC,EAAAA,eAAc,IAAK,iBAAiBd,CAAW,UAAUH,CAAM,aAAc,EAE5EO,GAAOS,EAAAA,kBAAAA,IAACE,EAAAA,IAAA,CAAY,SAAAX,CAAA,CAAI,CAAA,CAAA,EAhBrBP,CAAA,CAoBX"}
1
+ {"version":3,"file":"Card.cjs.js","sources":["../../../../../src/components/ReviewablesSelector/Card.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { FileThumbnail } from '@shared/components'\nimport { ReviewableModel } from '@shared/api'\nimport { ContextMenuItemType, useCreateContextMenu } from '@shared/containers'\nimport * as Styled from './ReviewablesSelector.styled'\nimport { KeyboardEvent, MouseEvent } from 'react'\n\nexport type ReviewableCard = Pick<ReviewableModel, 'fileId' | 'label'> & {\n tag?: JSX.Element,\n contextMenuItems?: ContextMenuItemType[],\n selectionVariant?: 'primary' | 'tertiary',\n}\n\nexport type ReviewableCardProps = ReviewableCard & {\n projectName: string | null,\n selected: boolean,\n onChange?: (fileId: string, modifier?: boolean) => void,\n onKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void,\n onMouseOver: (event: MouseEvent<HTMLDivElement>, { label }: { label?: string }) => void,\n}\n\nexport default function Card({\n fileId,\n label,\n selected,\n projectName,\n onKeyDown,\n onMouseOver,\n onChange,\n tag,\n contextMenuItems,\n selectionVariant = 'primary',\n}: ReviewableCardProps) {\n const [contextMenuShow] = useCreateContextMenu()\n\n return (\n <Styled.ReviewableCard\n key={fileId}\n id={'preview-' + fileId}\n onClick={(event) => onChange?.(fileId, event.metaKey || event.ctrlKey)}\n className={clsx('reviewable-card', { selected }, selectionVariant)}\n onMouseOver={(e) => onMouseOver(e, { label })}\n onKeyDown={onKeyDown}\n onContextMenu={(event) => {\n if (!contextMenuItems) return\n\n event.preventDefault()\n contextMenuShow(event, contextMenuItems)\n }}\n tabIndex={0}\n >\n <FileThumbnail src={`/api/projects/${projectName}/files/${fileId}/thumbnail`} />\n {\n tag && <Styled.Tag>{tag}</Styled.Tag>\n }\n </Styled.ReviewableCard>\n )\n}\n"],"names":["Card","fileId","label","selected","projectName","onKeyDown","onMouseOver","onChange","tag","contextMenuItems","selectionVariant","contextMenuShow","useCreateContextMenu","jsxs","Styled.ReviewableCard","event","clsx","jsx","FileThumbnail","Styled.Tag"],"mappings":"qifAqBA,SAAwBA,EAAK,CAC3B,OAAAC,EACA,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,UAAAC,EACA,YAAAC,EACA,SAAAC,EACA,IAAAC,EACA,iBAAAC,EACA,iBAAAC,EAAmB,SACrB,EAAwB,CACtB,KAAM,CAACC,CAAe,EAAIC,uBAAA,EAE1B,OACEC,EAAAA,kBAAAA,KAACC,EAAAA,eAAA,CAEC,GAAI,WAAab,EACjB,QAAUc,GAAUR,IAAWN,EAAQc,EAAM,SAAWA,EAAM,OAAO,EACrE,UAAWC,EAAK,kBAAmB,CAAE,SAAAb,CAAA,EAAYO,CAAgB,EACjE,YAAc,GAAMJ,EAAY,EAAG,CAAE,MAAAJ,EAAO,EAC5C,UAAAG,EACA,cAAgBU,GAAU,CACnBN,IAELM,EAAM,eAAA,EACNJ,EAAgBI,EAAON,CAAgB,EACzC,EACA,SAAU,EAEV,SAAA,CAAAQ,wBAACC,EAAAA,eAAc,IAAK,iBAAiBd,CAAW,UAAUH,CAAM,aAAc,EAE5EO,GAAOS,EAAAA,kBAAAA,IAACE,EAAAA,IAAA,CAAY,SAAAX,CAAA,CAAI,CAAA,CAAA,EAhBrBP,CAAA,CAoBX"}
@@ -82,6 +82,7 @@ import "../../api/queries/entityLists/getListsAttributes.es.js";
82
82
  import "../../api/queries/entityLists/updateListsAttributes.es.js";
83
83
  import "../../api/queries/entityLists/listFolders.es.js";
84
84
  import "../../api/queries/folders/getFolders.es.js";
85
+ import "../../api/queries/folders/getFolderDeleteInfo.es.js";
85
86
  import "../../api/queries/grouping/getGrouping.es.js";
86
87
  import "../../api/queries/links/updateLinks.es.js";
87
88
  import "../../api/queries/links/getLinks.es.js";
@@ -204,6 +205,7 @@ import "../../containers/ProjectTreeTable/context/SelectionCellsContext.es.js";
204
205
  import "../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.es.js";
205
206
  import "../../containers/ProjectTreeTable/context/ClipboardContext.es.js";
206
207
  import "../../containers/ProjectTreeTable/context/ColumnSettingsContext.es.js";
208
+ import "../../containers/ProjectTreeTable/components/DeleteConfirmContent.es.js";
207
209
  import "../../containers/ProjectTreeTable/context/ProjectDataContext.es.js";
208
210
  import "../../../../_virtual/runtime.es.js";
209
211
  import "../../../../_virtual/semver.es.js";
@@ -268,8 +270,9 @@ import "../VersionUploader/context/VersionUploadContext.es.js";
268
270
  import "../Watchers/Watchers.es.js";
269
271
  import "../Menu/Menu.styled.es.js";
270
272
  import "../Menu/MenuItem.es.js";
273
+ import "./ReviewablesSelector.es.js";
271
274
  import { ReviewableCard as C, Tag as b } from "./ReviewablesSelector.styled.es.js";
272
- function wm({
275
+ function Mm({
273
276
  fileId: o,
274
277
  label: p,
275
278
  selected: e,
@@ -303,6 +306,6 @@ function wm({
303
306
  );
304
307
  }
305
308
  export {
306
- wm as default
309
+ Mm as default
307
310
  };
308
311
  //# sourceMappingURL=Card.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Card.es.js","sources":["../../../../../src/components/ReviewablesSelector/Card.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { FileThumbnail } from '@shared/components'\nimport { ReviewableModel } from '@shared/api'\nimport { ContextMenuItemType, useCreateContextMenu } from '@shared/containers'\nimport * as Styled from './ReviewablesSelector.styled'\nimport { KeyboardEvent, MouseEvent } from 'react'\n\nexport type ReviewableCard = Pick<ReviewableModel, 'fileId' | 'label'> & {\n tag?: JSX.Element,\n contextMenuItems?: ContextMenuItemType[],\n selectionVariant?: 'primary' | 'tertiary',\n}\n\nexport type ReviewableCardProps = ReviewableCard & {\n projectName: string | null,\n selected: boolean,\n onChange?: (fileId: string, modifier?: boolean) => void,\n onKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void,\n onMouseOver: (event: MouseEvent<HTMLDivElement>, { label }: { label?: string }) => void,\n}\n\nexport default function Card({\n fileId,\n label,\n selected,\n projectName,\n onKeyDown,\n onMouseOver,\n onChange,\n tag,\n contextMenuItems,\n selectionVariant = 'primary',\n}: ReviewableCardProps) {\n const [contextMenuShow] = useCreateContextMenu()\n\n return (\n <Styled.ReviewableCard\n key={fileId}\n id={'preview-' + fileId}\n onClick={(event) => onChange?.(fileId, event.metaKey || event.ctrlKey)}\n className={clsx('reviewable-card', { selected }, selectionVariant)}\n onMouseOver={(e) => onMouseOver(e, { label })}\n onKeyDown={onKeyDown}\n onContextMenu={(event) => {\n if (!contextMenuItems) return\n\n event.preventDefault()\n contextMenuShow(event, contextMenuItems)\n }}\n tabIndex={0}\n >\n <FileThumbnail src={`/api/projects/${projectName}/files/${fileId}/thumbnail`} />\n {\n tag && <Styled.Tag>{tag}</Styled.Tag>\n }\n </Styled.ReviewableCard>\n )\n}\n"],"names":["Card","fileId","label","selected","projectName","onKeyDown","onMouseOver","onChange","tag","contextMenuItems","selectionVariant","contextMenuShow","useCreateContextMenu","jsxs","Styled.ReviewableCard","event","clsx","e","jsx","FileThumbnail","Styled.Tag"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,SAAwBA,GAAK;AAAA,EAC3B,QAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,KAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,kBAAAC,IAAmB;AACrB,GAAwB;AACtB,QAAM,CAACC,CAAe,IAAIC,EAAA;AAE1B,SACEC,gBAAAA,EAAAA;AAAAA,IAACC;AAAAA,IAAA;AAAA,MAEC,IAAI,aAAab;AAAA,MACjB,SAAS,CAACc,MAAUR,IAAWN,GAAQc,EAAM,WAAWA,EAAM,OAAO;AAAA,MACrE,WAAWC,EAAK,mBAAmB,EAAE,UAAAb,EAAA,GAAYO,CAAgB;AAAA,MACjE,aAAa,CAACO,MAAMX,EAAYW,GAAG,EAAE,OAAAf,GAAO;AAAA,MAC5C,WAAAG;AAAA,MACA,eAAe,CAACU,MAAU;AACxB,QAAKN,MAELM,EAAM,eAAA,GACNJ,EAAgBI,GAAON,CAAgB;AAAA,MACzC;AAAA,MACA,UAAU;AAAA,MAEV,UAAA;AAAA,QAAAS,gBAAAA,MAACC,KAAc,KAAK,iBAAiBf,CAAW,UAAUH,CAAM,cAAc;AAAA,QAE5EO,KAAOU,gBAAAA,EAAAA,IAACE,GAAA,EAAY,UAAAZ,EAAA,CAAI;AAAA,MAAA;AAAA,IAAA;AAAA,IAhBrBP;AAAA,EAAA;AAoBX;"}
1
+ {"version":3,"file":"Card.es.js","sources":["../../../../../src/components/ReviewablesSelector/Card.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { FileThumbnail } from '@shared/components'\nimport { ReviewableModel } from '@shared/api'\nimport { ContextMenuItemType, useCreateContextMenu } from '@shared/containers'\nimport * as Styled from './ReviewablesSelector.styled'\nimport { KeyboardEvent, MouseEvent } from 'react'\n\nexport type ReviewableCard = Pick<ReviewableModel, 'fileId' | 'label'> & {\n tag?: JSX.Element,\n contextMenuItems?: ContextMenuItemType[],\n selectionVariant?: 'primary' | 'tertiary',\n}\n\nexport type ReviewableCardProps = ReviewableCard & {\n projectName: string | null,\n selected: boolean,\n onChange?: (fileId: string, modifier?: boolean) => void,\n onKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void,\n onMouseOver: (event: MouseEvent<HTMLDivElement>, { label }: { label?: string }) => void,\n}\n\nexport default function Card({\n fileId,\n label,\n selected,\n projectName,\n onKeyDown,\n onMouseOver,\n onChange,\n tag,\n contextMenuItems,\n selectionVariant = 'primary',\n}: ReviewableCardProps) {\n const [contextMenuShow] = useCreateContextMenu()\n\n return (\n <Styled.ReviewableCard\n key={fileId}\n id={'preview-' + fileId}\n onClick={(event) => onChange?.(fileId, event.metaKey || event.ctrlKey)}\n className={clsx('reviewable-card', { selected }, selectionVariant)}\n onMouseOver={(e) => onMouseOver(e, { label })}\n onKeyDown={onKeyDown}\n onContextMenu={(event) => {\n if (!contextMenuItems) return\n\n event.preventDefault()\n contextMenuShow(event, contextMenuItems)\n }}\n tabIndex={0}\n >\n <FileThumbnail src={`/api/projects/${projectName}/files/${fileId}/thumbnail`} />\n {\n tag && <Styled.Tag>{tag}</Styled.Tag>\n }\n </Styled.ReviewableCard>\n )\n}\n"],"names":["Card","fileId","label","selected","projectName","onKeyDown","onMouseOver","onChange","tag","contextMenuItems","selectionVariant","contextMenuShow","useCreateContextMenu","jsxs","Styled.ReviewableCard","event","clsx","e","jsx","FileThumbnail","Styled.Tag"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,SAAwBA,GAAK;AAAA,EAC3B,QAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,KAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,kBAAAC,IAAmB;AACrB,GAAwB;AACtB,QAAM,CAACC,CAAe,IAAIC,EAAA;AAE1B,SACEC,gBAAAA,EAAAA;AAAAA,IAACC;AAAAA,IAAA;AAAA,MAEC,IAAI,aAAab;AAAA,MACjB,SAAS,CAACc,MAAUR,IAAWN,GAAQc,EAAM,WAAWA,EAAM,OAAO;AAAA,MACrE,WAAWC,EAAK,mBAAmB,EAAE,UAAAb,EAAA,GAAYO,CAAgB;AAAA,MACjE,aAAa,CAACO,MAAMX,EAAYW,GAAG,EAAE,OAAAf,GAAO;AAAA,MAC5C,WAAAG;AAAA,MACA,eAAe,CAACU,MAAU;AACxB,QAAKN,MAELM,EAAM,eAAA,GACNJ,EAAgBI,GAAON,CAAgB;AAAA,MACzC;AAAA,MACA,UAAU;AAAA,MAEV,UAAA;AAAA,QAAAS,gBAAAA,MAACC,KAAc,KAAK,iBAAiBf,CAAW,UAAUH,CAAM,cAAc;AAAA,QAE5EO,KAAOU,gBAAAA,EAAAA,IAACE,GAAA,EAAY,UAAAZ,EAAA,CAAI;AAAA,MAAA;AAAA,IAAA;AAAA,IAhBrBP;AAAA,EAAA;AAoBX;"}
@@ -1,2 +1,2 @@
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;
1
+ "use strict";const r=require("../../../../_virtual/jsx-runtime.cjs.js"),n=require("react"),i=require("./ReviewablesSelector.styled.cjs.js"),y=require("./Card.cjs.js"),S=n.forwardRef(({reviewables:p=[],selected:w=[],projectName:b,onChange:u,onUpload:d},j)=>{const f=n.useRef(null),a=n.useRef(null),[m,c]=n.useState(null),[R,x]=n.useState(null),v=()=>a.current?.scrollTop||0,E=e=>{const t=a.current,o=document.getElementById("preview-"+e);if(!t||!o)return;const s=t.getBoundingClientRect(),l=o.getBoundingClientRect();l.top<s.top?t.scrollTop-=s.top-l.top:l.bottom>s.bottom&&(t.scrollTop+=l.bottom-s.bottom),f.current?.updateScroll?.()};n.useImperativeHandle(j,()=>({notifyNavigation:({fileId:e,label:t})=>{requestAnimationFrame(()=>E(e)),c(t??null);const o=document.getElementById("preview-"+e);if(o){const s=o.offsetTop+o.offsetHeight/2-v();x(s)}}}),[]),n.useEffect(()=>{const e=t=>{t.target.closest(".reviewables")||c(null)};return window.addEventListener("mousemove",e),()=>{window.removeEventListener("mousemove",e)}},[]);const g=(e,{label:t})=>{const o=e.target.closest(".reviewable-card");if(!o)return;c(t??null);const s=o.offsetTop+o.offsetHeight/2-v();x(s)},T=e=>{if(e.key==="Enter"||e.key===" "){const t=e.target.closest(".reviewable-card");if(!t)return;const o=t.id.replace("preview-","");u&&u(o)}};return p.length?r.jsxRuntimeExports.jsxs(i.ReviewablesSelector,{children:[r.jsxRuntimeExports.jsxs(i.Scrollable,{className:"reviewables",ref:f,containerRef:e=>{a.current=e},children:[p.map(({fileId:e,label:t,tag:o,selectionVariant:s,contextMenuItems:l})=>r.jsxRuntimeExports.jsx(y,{projectName:b,fileId:e,label:t,selected:w.includes(e),selectionVariant:s,tag:o,contextMenuItems:l,onChange:u,onKeyDown:T,onMouseOver:g})),!!d&&r.jsxRuntimeExports.jsx(i.AddButton,{icon:"add",onClick:d,onMouseEnter:()=>c(null)})]}),m&&R&&r.jsxRuntimeExports.jsx(i.Label,{style:{top:R},children:m})]}):r.jsxRuntimeExports.jsx("div",{})});module.exports=S;
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 { 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, modifier?: boolean) => 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
+ {"version":3,"file":"ReviewablesSelector.cjs.js","sources":["../../../../../src/components/ReviewablesSelector/ReviewablesSelector.tsx"],"sourcesContent":["import { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react'\nimport * as Styled from './ReviewablesSelector.styled'\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, modifier?: boolean) => void\n onUpload?: () => void\n}\n\nexport type ReviewablesSelectorHandle = {\n notifyNavigation: (next: { fileId: string; label?: string | null }) => void\n}\n\nconst ReviewablesSelector = forwardRef<ReviewablesSelectorHandle, ReviewablesSelectorProps>(({\n reviewables = [],\n selected = [],\n projectName,\n onChange,\n onUpload,\n}, ref) => {\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 // Imperative hook for the parent: keyboard nav lives upstream so it works\n // in theatre mode (where this component is unmounted). When nav happens,\n // we still update scroll + tooltip via this handle.\n useImperativeHandle(\n ref,\n () => ({\n notifyNavigation: ({ fileId, label }) => {\n requestAnimationFrame(() => scrollReviewableIntoView(fileId))\n setLabelTooltip(label ?? null)\n const el = document.getElementById('preview-' + fileId)\n if (el) {\n const top = el.offsetTop + el.offsetHeight / 2 - getScrollTop()\n setLabelTooltipYPos(top)\n }\n },\n }),\n [],\n )\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={(el) => {\n scrollContainerRef.current = el\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","forwardRef","reviewables","selected","projectName","onChange","onUpload","ref","scrollRef","useRef","scrollContainerRef","labelTooltip","setLabelTooltip","useState","labelTooltipYPos","setLabelTooltipYPos","getScrollTop","scrollReviewableIntoView","fileId","container","el","containerRect","itemRect","useImperativeHandle","label","top","useEffect","handleMouseMove","event","handleMouseOver","closest","handleKeyDown","jsxs","Styled.ReviewablesSelector","Styled.Scrollable","tag","selectionVariant","contextMenuItems","jsx","Card","Styled.AddButton","Styled.Label"],"mappings":"uKAiBMA,EAAsBC,EAAAA,WAAgE,CAAC,CAC3F,YAAAC,EAAc,CAAA,EACd,SAAAC,EAAW,CAAA,EACX,YAAAC,EACA,SAAAC,EACA,SAAAC,CACF,EAAGC,IAAQ,CACT,MAAMC,EAAYC,EAAAA,OAAkB,IAAI,EAClCC,EAAqBD,EAAAA,OAA2B,IAAI,EACpD,CAACE,EAAcC,CAAe,EAAIC,EAAAA,SAAwB,IAAI,EAC9D,CAACC,EAAkBC,CAAmB,EAAIF,EAAAA,SAAwB,IAAI,EAEtEG,EAAe,IACZN,EAAmB,SAAS,WAAa,EAG5CO,EAA4BC,GAAmB,CACnD,MAAMC,EAAYT,EAAmB,QAC/BU,EAAK,SAAS,eAAe,WAAaF,CAAM,EACtD,GAAI,CAACC,GAAa,CAACC,EAAI,OAEvB,MAAMC,EAAgBF,EAAU,sBAAA,EAC1BG,EAAWF,EAAG,sBAAA,EAEhBE,EAAS,IAAMD,EAAc,IAC/BF,EAAU,WAAaE,EAAc,IAAMC,EAAS,IAC3CA,EAAS,OAASD,EAAc,SACzCF,EAAU,WAAaG,EAAS,OAASD,EAAc,QAKzDb,EAAU,SAAS,eAAA,CACrB,EAKAe,EAAAA,oBACEhB,EACA,KAAO,CACL,iBAAkB,CAAC,CAAE,OAAAW,EAAQ,MAAAM,KAAY,CACvC,sBAAsB,IAAMP,EAAyBC,CAAM,CAAC,EAC5DN,EAAgBY,GAAS,IAAI,EAC7B,MAAMJ,EAAK,SAAS,eAAe,WAAaF,CAAM,EACtD,GAAIE,EAAI,CACN,MAAMK,EAAML,EAAG,UAAYA,EAAG,aAAe,EAAIJ,EAAA,EACjDD,EAAoBU,CAAG,CACzB,CACF,CAAA,GAEF,CAAA,CAAC,EAIHC,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAmBC,GAAsB,CAE5BA,EAAM,OAAuB,QAAQ,cAAc,GAElEhB,EAAgB,IAAI,CAExB,EAEA,cAAO,iBAAiB,YAAae,CAAe,EAE7C,IAAM,CACX,OAAO,oBAAoB,YAAaA,CAAe,CACzD,CACF,EAAG,CAAA,CAAE,EAEL,MAAME,EAAkB,CACtBD,EACA,CAAE,MAAAJ,KACC,CAEH,MAAMM,EAAWF,EAAM,OAAuB,QAAQ,kBAAkB,EACxE,GAAI,CAACE,EAAS,OACdlB,EAAgBY,GAAS,IAAI,EAE7B,MAAMC,EAAMK,EAAQ,UAAYA,EAAQ,aAAe,EAAId,EAAA,EAC3DD,EAAoBU,CAAG,CACzB,EAGMM,EAAiBH,GAA+C,CACpE,GAAIA,EAAM,MAAQ,SAAWA,EAAM,MAAQ,IAAK,CAC9C,MAAME,EAAWF,EAAM,OAAuB,QAAQ,kBAAkB,EACxE,GAAI,CAACE,EAAS,OACd,MAAMZ,EAASY,EAAQ,GAAG,QAAQ,WAAY,EAAE,EAChDzB,GAAYA,EAASa,CAAM,CAC7B,CACF,EAGA,OAAKhB,EAAY,OAGf8B,EAAAA,kBAAAA,KAACC,sBAAA,CACC,SAAA,CAAAD,EAAAA,kBAAAA,KAACE,EAAAA,WAAA,CACC,UAAU,cACV,IAAK1B,EACL,aAAeY,GAAO,CACpBV,EAAmB,QAAUU,CAC/B,EAEC,SAAA,CAAAlB,EAAY,IAAI,CAAC,CAAE,OAAAgB,EAAQ,MAAAM,EAAO,IAAAW,EAAK,iBAAAC,EAAkB,iBAAAC,KACxDC,EAAAA,kBAAAA,IAACC,EAAA,CACC,YAAAnC,EACA,OAAAc,EACA,MAAAM,EACA,SAAUrB,EAAS,SAASe,CAAM,EAClC,iBAAAkB,EACA,IAAAD,EACA,iBAAAE,EACA,SAAAhC,EACA,UAAW0B,EACX,YAAaF,CAAA,CAAA,CAEhB,EACA,CAAC,CAACvB,GACDgC,EAAAA,kBAAAA,IAACE,EAAAA,UAAA,CACC,KAAK,MACL,QAASlC,EACT,aAAc,IAAMM,EAAgB,IAAI,CAAA,CAAA,CAC1C,CAAA,CAAA,EAGHD,GAAgBG,GACfwB,wBAACG,EAAAA,MAAA,CAAa,MAAO,CAAE,IAAK3B,CAAA,EAAqB,SAAAH,CAAA,CAAa,CAAA,EAElE,0BApC+B,MAAA,CAAA,CAAI,CAsCvC,CAAC"}