@ynput/ayon-frontend-shared 0.2.17 → 0.2.19

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 (519) hide show
  1. package/dist/DetailsPanel.cjs.js +12 -9
  2. package/dist/DetailsPanel.cjs.js.map +1 -1
  3. package/dist/DetailsPanel.es.js +13 -10
  4. package/dist/DetailsPanel.es.js.map +1 -1
  5. package/dist/ProjectTreeTable.cjs.js +6 -0
  6. package/dist/ProjectTreeTable.cjs.js.map +1 -1
  7. package/dist/ProjectTreeTable.es.js +6 -0
  8. package/dist/ProjectTreeTable.es.js.map +1 -1
  9. package/dist/_virtual/index.cjs10.js +4 -4
  10. package/dist/_virtual/index.cjs5.js +3 -5
  11. package/dist/_virtual/index.cjs5.js.map +1 -1
  12. package/dist/_virtual/index.cjs6.js +5 -3
  13. package/dist/_virtual/index.cjs6.js.map +1 -1
  14. package/dist/_virtual/index.cjs8.js +4 -4
  15. package/dist/_virtual/index.cjs9.js +4 -4
  16. package/dist/_virtual/index.es10.js +4 -4
  17. package/dist/_virtual/index.es5.js +2 -5
  18. package/dist/_virtual/index.es5.js.map +1 -1
  19. package/dist/_virtual/index.es6.js +5 -2
  20. package/dist/_virtual/index.es6.js.map +1 -1
  21. package/dist/_virtual/index.es8.js +4 -4
  22. package/dist/_virtual/index.es9.js +4 -4
  23. package/dist/api.cjs.js +13 -0
  24. package/dist/api.cjs.js.map +1 -1
  25. package/dist/api.es.js +17 -4
  26. package/dist/api.es.js.map +1 -1
  27. package/dist/components.cjs.js +9 -4
  28. package/dist/components.cjs.js.map +1 -1
  29. package/dist/components.es.js +10 -5
  30. package/dist/components.es.js.map +1 -1
  31. package/dist/index.cjs.js +12 -8
  32. package/dist/index.cjs.js.map +1 -1
  33. package/dist/index.es.js +12 -8
  34. package/dist/index.es.js.map +1 -1
  35. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +2 -2
  36. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  37. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  38. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  39. package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
  40. package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
  41. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  42. package/dist/node_modules/remove-accents/index.es.js +1 -1
  43. package/dist/node_modules/vfile/lib/index.cjs.js +1 -1
  44. package/dist/node_modules/vfile/lib/index.es.js +1 -1
  45. package/dist/shared/src/api/generated/folders.cjs.js.map +1 -1
  46. package/dist/shared/src/api/generated/folders.es.js.map +1 -1
  47. package/dist/shared/src/api/generated/graphql.cjs.js +64 -23
  48. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  49. package/dist/shared/src/api/generated/graphql.es.js +64 -23
  50. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  51. package/dist/shared/src/api/queries/actions/getActions.cjs.js +9 -1
  52. package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
  53. package/dist/shared/src/api/queries/actions/getActions.es.js +9 -1
  54. package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
  55. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +5 -1
  56. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  57. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +5 -1
  58. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  59. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +24 -8
  60. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  61. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +24 -8
  62. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  63. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +2 -0
  64. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  65. package/dist/shared/src/api/queries/entities/updateEntity.es.js +2 -0
  66. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  67. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +67 -0
  68. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  69. package/dist/shared/src/api/queries/entityLists/getLists.es.js +68 -1
  70. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  71. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +19 -3
  72. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  73. package/dist/shared/src/api/queries/entityLists/updateLists.es.js +19 -3
  74. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  75. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +15 -0
  76. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  77. package/dist/shared/src/api/queries/overview/updateOverview.es.js +15 -0
  78. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  79. package/dist/shared/src/api/queries/products/createProduct.cjs.js +54 -0
  80. package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -0
  81. package/dist/shared/src/api/queries/products/createProduct.es.js +54 -0
  82. package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -0
  83. package/dist/shared/src/api/queries/users/getUsers.cjs.js +4 -0
  84. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  85. package/dist/shared/src/api/queries/users/getUsers.es.js +4 -0
  86. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  87. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js +82 -0
  88. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -0
  89. package/dist/shared/src/api/queries/versions/updateVersions.es.js +82 -0
  90. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -0
  91. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +2 -0
  92. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  93. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +2 -0
  94. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  95. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +7 -5
  96. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
  97. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +7 -5
  98. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
  99. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +2 -2
  100. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  101. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +2 -2
  102. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  103. package/dist/shared/src/components/EntityPanelUploader/Dropzone.cjs.js +13 -0
  104. package/dist/shared/src/components/EntityPanelUploader/Dropzone.cjs.js.map +1 -0
  105. package/dist/shared/src/components/EntityPanelUploader/Dropzone.es.js +14 -0
  106. package/dist/shared/src/components/EntityPanelUploader/Dropzone.es.js.map +1 -0
  107. package/dist/shared/src/components/{EntityThumbnailUploader/EntityThumbnailUploader.cjs.js → EntityPanelUploader/EntityPanelUploader.cjs.js} +374 -114
  108. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -0
  109. package/dist/shared/src/components/{EntityThumbnailUploader/EntityThumbnailUploader.es.js → EntityPanelUploader/EntityPanelUploader.es.js} +374 -114
  110. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -0
  111. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js +95 -0
  112. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js.map +1 -0
  113. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.es.js +95 -0
  114. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.es.js.map +1 -0
  115. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +76 -0
  116. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -0
  117. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +77 -0
  118. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -0
  119. package/dist/shared/src/components/PlayableIcon/PlayableIcon.cjs.js +43 -0
  120. package/dist/shared/src/components/PlayableIcon/PlayableIcon.cjs.js.map +1 -0
  121. package/dist/shared/src/components/PlayableIcon/PlayableIcon.es.js +43 -0
  122. package/dist/shared/src/components/PlayableIcon/PlayableIcon.es.js.map +1 -0
  123. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
  124. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  125. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +1 -1
  126. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  127. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js +1 -1
  128. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js.map +1 -1
  129. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js +1 -1
  130. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js.map +1 -1
  131. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +17 -15
  132. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  133. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +17 -15
  134. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  135. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +2 -0
  136. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  137. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +2 -0
  138. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  139. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +12 -8
  140. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  141. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +12 -8
  142. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  143. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +35 -107
  144. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  145. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +35 -107
  146. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  147. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +12 -8
  148. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  149. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +12 -8
  150. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  151. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +212 -0
  152. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -0
  153. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +212 -0
  154. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -0
  155. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +2 -0
  156. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  157. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +2 -0
  158. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  159. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +12 -8
  160. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  161. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +12 -8
  162. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  163. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.cjs.js +85 -0
  164. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.cjs.js.map +1 -0
  165. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.es.js +85 -0
  166. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.es.js.map +1 -0
  167. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +402 -0
  168. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -0
  169. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +402 -0
  170. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -0
  171. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +308 -0
  172. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -0
  173. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +308 -0
  174. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -0
  175. package/dist/shared/src/components/Watchers/Watchers.cjs.js +2 -0
  176. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  177. package/dist/shared/src/components/Watchers/Watchers.es.js +2 -0
  178. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  179. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +12 -8
  180. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  181. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +12 -8
  182. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  183. package/dist/shared/src/containers/Actions/Actions.cjs.js +10 -2
  184. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  185. package/dist/shared/src/containers/Actions/Actions.es.js +10 -2
  186. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  187. package/dist/shared/src/containers/Actions/Actions.styled.cjs.js +1 -1
  188. package/dist/shared/src/containers/Actions/Actions.styled.cjs.js.map +1 -1
  189. package/dist/shared/src/containers/Actions/Actions.styled.es.js +1 -1
  190. package/dist/shared/src/containers/Actions/Actions.styled.es.js.map +1 -1
  191. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +10 -3
  192. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  193. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +10 -3
  194. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  195. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js +14 -0
  196. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js.map +1 -1
  197. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js +14 -0
  198. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js.map +1 -1
  199. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +12 -8
  200. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  201. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +12 -8
  202. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  203. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +14 -9
  204. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  205. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +14 -9
  206. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  207. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +12 -8
  208. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  209. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +12 -8
  210. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  211. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +12 -8
  212. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  213. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +12 -8
  214. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  215. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +16 -9
  216. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  217. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +17 -10
  218. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  219. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js +0 -30
  220. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js.map +1 -1
  221. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js +0 -30
  222. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js.map +1 -1
  223. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +2 -0
  224. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  225. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +2 -0
  226. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  227. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +2 -0
  228. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  229. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -0
  230. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  231. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +2 -0
  232. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  233. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +2 -0
  234. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  235. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +2 -0
  236. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  237. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +2 -0
  238. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  239. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +51 -5
  240. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  241. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +53 -7
  242. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  243. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +47 -11
  244. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  245. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +47 -11
  246. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  247. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +11 -7
  248. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  249. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +11 -7
  250. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  251. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js +6 -4
  252. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js.map +1 -1
  253. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js +6 -4
  254. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js.map +1 -1
  255. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js +106 -2
  256. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.cjs.js.map +1 -1
  257. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js +106 -2
  258. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingContext.es.js.map +1 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +14 -2
  260. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  261. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +14 -2
  262. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  263. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +2 -0
  264. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +2 -0
  266. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  267. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  268. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  269. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +22 -4
  270. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
  271. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +22 -4
  272. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +106 -0
  274. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +106 -0
  276. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  277. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +2 -0
  278. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  279. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +2 -0
  280. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  281. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +4 -2
  282. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  283. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +4 -2
  284. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  285. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +28 -4
  286. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  287. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +28 -4
  288. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  289. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +135 -0
  290. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -0
  291. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +135 -0
  292. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -0
  293. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +8 -6
  294. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  295. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +8 -6
  296. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  297. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +2 -0
  298. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  299. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +2 -0
  300. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  301. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js +1 -1
  302. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js.map +1 -1
  303. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js +1 -1
  304. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js.map +1 -1
  305. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +88 -0
  306. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  307. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +88 -0
  308. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  309. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +2 -0
  310. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
  311. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +2 -0
  312. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js +1 -1
  314. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.cjs.js.map +1 -1
  315. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js +1 -1
  316. package/dist/shared/src/containers/ProjectTreeTable/hooks/useHistory.es.js.map +1 -1
  317. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +35 -4
  318. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  319. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +35 -4
  320. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  321. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +2 -0
  322. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
  323. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +2 -0
  324. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
  325. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +88 -0
  326. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  327. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +88 -0
  328. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  329. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  330. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  331. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +1 -1
  332. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  333. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +90 -0
  334. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  335. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +90 -0
  336. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  337. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js +19 -0
  338. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js.map +1 -0
  339. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js +19 -0
  340. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js.map +1 -0
  341. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +3 -2
  342. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
  343. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +3 -2
  344. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
  345. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js +26 -0
  346. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js.map +1 -0
  347. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js +26 -0
  348. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js.map +1 -0
  349. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +9 -8
  350. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  351. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +10 -9
  352. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  353. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js +8 -2
  354. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
  355. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js +8 -2
  356. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
  357. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js +190 -0
  358. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -0
  359. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js +190 -0
  360. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -0
  361. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +4 -147
  362. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  363. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +2 -145
  364. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  365. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js +1 -1
  366. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js.map +1 -1
  367. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js +1 -1
  368. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js.map +1 -1
  369. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +12 -2
  370. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  371. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +12 -2
  372. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  373. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +12 -8
  374. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  375. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +12 -8
  376. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  377. package/dist/shared/src/context/AddonProjectContext.cjs.js +2 -0
  378. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  379. package/dist/shared/src/context/AddonProjectContext.es.js +2 -0
  380. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  381. package/dist/shared/src/context/DetailsPanelContext.cjs.js +7 -1
  382. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  383. package/dist/shared/src/context/DetailsPanelContext.es.js +7 -1
  384. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  385. package/dist/shared/src/context/PowerpackContext.cjs.js +2 -0
  386. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  387. package/dist/shared/src/context/PowerpackContext.es.js +2 -0
  388. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  389. package/dist/shared/src/context/RemoteModulesContext.cjs.js +2 -0
  390. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  391. package/dist/shared/src/context/RemoteModulesContext.es.js +2 -0
  392. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  393. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js +15 -4
  394. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js.map +1 -1
  395. package/dist/shared/src/context/ThumbnailUploaderContext.es.js +15 -4
  396. package/dist/shared/src/context/ThumbnailUploaderContext.es.js.map +1 -1
  397. package/dist/shared/src/context/pip/PiPWrapper.cjs.js +1 -1
  398. package/dist/shared/src/context/pip/PiPWrapper.cjs.js.map +1 -1
  399. package/dist/shared/src/context/pip/PiPWrapper.es.js +1 -1
  400. package/dist/shared/src/context/pip/PiPWrapper.es.js.map +1 -1
  401. package/dist/shared/src/hooks/useActionTriggers.cjs.js +2 -0
  402. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  403. package/dist/shared/src/hooks/useActionTriggers.es.js +2 -0
  404. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  405. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +2 -0
  406. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  407. package/dist/shared/src/hooks/useEntityUpdate.es.js +2 -0
  408. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  409. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +2 -0
  410. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  411. package/dist/shared/src/hooks/useScopedStatuses.es.js +2 -0
  412. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  413. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +2 -0
  414. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  415. package/dist/shared/src/hooks/useUserProjectConfig.es.js +2 -0
  416. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  417. package/dist/shared/src/util/confirmDelete.cjs.js +1 -0
  418. package/dist/shared/src/util/confirmDelete.cjs.js.map +1 -1
  419. package/dist/shared/src/util/confirmDelete.es.js +2 -0
  420. package/dist/shared/src/util/confirmDelete.es.js.map +1 -1
  421. package/dist/shared/src/util/productTypes.cjs.js +1 -0
  422. package/dist/shared/src/util/productTypes.cjs.js.map +1 -1
  423. package/dist/shared/src/util/productTypes.es.js +1 -0
  424. package/dist/shared/src/util/productTypes.es.js.map +1 -1
  425. package/dist/shared/src/utils/extractVersionFromFilename.cjs.js +32 -0
  426. package/dist/shared/src/utils/extractVersionFromFilename.cjs.js.map +1 -0
  427. package/dist/shared/src/utils/extractVersionFromFilename.es.js +32 -0
  428. package/dist/shared/src/utils/extractVersionFromFilename.es.js.map +1 -0
  429. package/dist/shared/src/utils/versionUploadHelpers.cjs.js +121 -0
  430. package/dist/shared/src/utils/versionUploadHelpers.cjs.js.map +1 -0
  431. package/dist/shared/src/utils/versionUploadHelpers.es.js +121 -0
  432. package/dist/shared/src/utils/versionUploadHelpers.es.js.map +1 -0
  433. package/dist/types/SimpleTable/SimpleTable.d.ts +1 -0
  434. package/dist/types/SimpleTable/SimpleTableRowTemplate.d.ts +1 -1
  435. package/dist/types/SimpleTable/context/SimpleTableContext.d.ts +5 -1
  436. package/dist/types/api/generated/folders.d.ts +1 -0
  437. package/dist/types/api/generated/graphql.d.ts +113 -41
  438. package/dist/types/api/queries/actions/getActions.d.ts +132 -1
  439. package/dist/types/api/queries/activities/getActivities.d.ts +10 -4
  440. package/dist/types/api/queries/activities/updateActivities.d.ts +20 -8
  441. package/dist/types/api/queries/entities/getEntity.d.ts +10 -4
  442. package/dist/types/api/queries/entities/getEntityPanel.d.ts +10 -4
  443. package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +1 -0
  444. package/dist/types/api/queries/entities/updateEntity.d.ts +10 -4
  445. package/dist/types/api/queries/entityLists/getLists.d.ts +1521 -6
  446. package/dist/types/api/queries/entityLists/types.d.ts +30 -1
  447. package/dist/types/api/queries/entityLists/updateLists.d.ts +166 -3
  448. package/dist/types/api/queries/index.d.ts +2 -0
  449. package/dist/types/api/queries/overview/getOverview.d.ts +10 -4
  450. package/dist/types/api/queries/products/createProduct.d.ts +161 -0
  451. package/dist/types/api/queries/products/index.d.ts +1 -0
  452. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +10 -4
  453. package/dist/types/api/queries/users/getUsers.d.ts +10 -4
  454. package/dist/types/api/queries/versions/index.d.ts +1 -0
  455. package/dist/types/api/queries/versions/updateVersions.d.ts +685 -0
  456. package/dist/types/components/EntityPanelUploader/Dropzone.d.ts +11 -0
  457. package/dist/types/components/{EntityThumbnailUploader/EntityThumbnailUploader.d.ts → EntityPanelUploader/EntityPanelUploader.d.ts} +3 -3
  458. package/dist/types/components/EntityPanelUploader/EntityPanelUploader.styled.d.ts +8 -0
  459. package/dist/types/components/EntityPanelUploader/EntityPanelUploaderDialog.d.ts +10 -0
  460. package/dist/types/components/EntityPanelUploader/index.d.ts +1 -0
  461. package/dist/types/components/PlayableIcon/PlayableIcon.d.ts +4 -0
  462. package/dist/types/components/ReviewablesList/index.d.ts +1 -0
  463. package/dist/types/components/ReviewablesList/useReviewablesUpload.d.ts +19 -0
  464. package/dist/types/components/VersionUploader/components/UploadVersionDialog.d.ts +5 -0
  465. package/dist/types/components/VersionUploader/components/UploadVersionForm.d.ts +18 -0
  466. package/dist/types/components/VersionUploader/context/VersionUploadContext.d.ts +54 -0
  467. package/dist/types/components/VersionUploader/index.d.ts +2 -0
  468. package/dist/types/components/index.d.ts +2 -2
  469. package/dist/types/containers/Actions/Actions.d.ts +7 -1
  470. package/dist/types/containers/Actions/ActionsDropdown/ActionsDropdown.d.ts +5 -3
  471. package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +2 -1
  472. package/dist/types/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.d.ts +3 -1
  473. package/dist/types/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.d.ts +0 -1
  474. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +6 -2
  475. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +5 -1
  476. package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +12 -2
  477. package/dist/types/containers/ProjectTreeTable/hooks/index.d.ts +1 -0
  478. package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +3 -2
  479. package/dist/types/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.d.ts +9 -0
  480. package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +2 -2
  481. package/dist/types/containers/ProjectTreeTable/hooks/useKeyboardNavigation.d.ts +3 -3
  482. package/dist/types/containers/ProjectTreeTable/hooks/useUpdateTableData.d.ts +1 -1
  483. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +10 -1
  484. package/dist/types/containers/ProjectTreeTable/utils/getEntityViewerIds.d.ts +4 -0
  485. package/dist/types/containers/ProjectTreeTable/utils/getTableFieldOptions.d.ts +2 -1
  486. package/dist/types/containers/ProjectTreeTable/utils/getTypeDefaultValue.d.ts +2 -0
  487. package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +2 -0
  488. package/dist/types/containers/ProjectTreeTable/widgets/CellWidget.d.ts +2 -1
  489. package/dist/types/containers/ProjectTreeTable/widgets/EnumCellValue.d.ts +20 -0
  490. package/dist/types/containers/ProjectTreeTable/widgets/EnumWidget.d.ts +1 -11
  491. package/dist/types/containers/ProjectTreeTable/widgets/ThumbnailWidget.d.ts +1 -0
  492. package/dist/types/context/DetailsPanelContext.d.ts +1 -0
  493. package/dist/types/context/ThumbnailUploaderContext.d.ts +3 -2
  494. package/dist/types/util/confirmDelete.d.ts +2 -1
  495. package/dist/types/utils/versionUploadHelpers.d.ts +63 -0
  496. package/dist/util.cjs.js +2 -0
  497. package/dist/util.cjs.js.map +1 -1
  498. package/dist/util.es.js +2 -0
  499. package/dist/util.es.js.map +1 -1
  500. package/package.json +1 -1
  501. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js.map +0 -1
  502. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js.map +0 -1
  503. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.cjs.js +0 -12
  504. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.cjs.js.map +0 -1
  505. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.es.js +0 -12
  506. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.es.js.map +0 -1
  507. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.cjs.js +0 -112
  508. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.cjs.js.map +0 -1
  509. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.es.js +0 -112
  510. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.es.js.map +0 -1
  511. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.cjs.js +0 -104
  512. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.cjs.js.map +0 -1
  513. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.es.js +0 -104
  514. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.es.js.map +0 -1
  515. package/dist/types/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.d.ts +0 -1
  516. package/dist/types/components/EntityThumbnailUploader/index.d.ts +0 -1
  517. package/dist/types/components/ThumbnailUploader/ThumbnailUploader.d.ts +0 -17
  518. package/dist/types/components/ThumbnailUploader/ThumbnailUploader.styled.d.ts +0 -4
  519. package/dist/types/components/ThumbnailUploader/index.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useFolderRelationships.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFolderRelationships.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport {\n EditorTaskNode,\n EMapResult,\n EntitiesMap,\n FolderNodeMap,\n MatchingFolder,\n TaskNodeMap,\n} from '../types/table'\nimport { ProjectAttribModel2 } from '../types/project'\nimport { ProjectTableAttribute } from '../types'\nimport { getEntityDataById } from '../utils/cellUtils'\n\nexport interface InheritedDependent {\n entityId: string\n entityType: 'task' | 'folder'\n attrib: Record<string, any> // all attribs that are inherited from the parent and their new value\n}\nexport type GetInheritedDependents = (entities: InheritedDependent[]) => InheritedDependent[]\nexport type FindInheritedValueFromAncestors = (\n entityId: string,\n entityType: 'folder' | 'task',\n attribName: string,\n) => any\nexport type FindNonInheritedValues = (\n folderId: string,\n attribNames: string[],\n) => Record<string, any>\nexport type GetAncestorsOf = (id: string) => string[]\ninterface UseFolderRelationshipsProps {\n tasksMap?: TaskNodeMap\n entitiesMap?: EntitiesMap\n tasksByFolderMap?: Map<string, string[]>\n getEntityById: (id: string) => any\n projectAttrib: ProjectAttribModel2 | undefined\n attribFields: ProjectTableAttribute[] | undefined\n}\n\nexport default function useFolderRelationships({\n tasksMap,\n entitiesMap,\n tasksByFolderMap,\n getEntityById,\n projectAttrib,\n attribFields,\n}: UseFolderRelationshipsProps) {\n // Pre-compute folder-children relationships\n const folderChildrenMap = useMemo(() => {\n const map = new Map<string, string[]>()\n if (!entitiesMap) return map\n for (const folder of entitiesMap.values()) {\n // Skip if not a folder\n if (folder.entityType !== 'folder') continue\n const parentId = folder.parentId\n if (!parentId) continue\n\n if (!map.has(parentId)) {\n map.set(parentId, [])\n }\n map.get(parentId)!.push(folder.id)\n }\n return map\n }, [entitiesMap])\n\n const getChildrenEntities = useCallback(\n (id: string) => {\n const descendants: (MatchingFolder | EditorTaskNode)[] = []\n const queue: string[] = [id]\n const visited = new Set<string>()\n\n while (queue.length > 0) {\n const currentId = queue.shift()!\n\n if (visited.has(currentId)) continue\n visited.add(currentId)\n\n // Skip adding the root folder to descendants\n if (currentId !== id && entitiesMap) {\n const folder = getEntityDataById<'folder'>(currentId, entitiesMap)\n if (folder) descendants.push({ ...folder, entityType: 'folder' })\n }\n\n // Add tasks efficiently with a single lookup\n const taskIds = tasksByFolderMap?.get(currentId)\n if (taskIds?.length && entitiesMap) {\n for (const taskId of taskIds) {\n const task = getEntityDataById<'task'>(taskId, entitiesMap)\n if (task) descendants.push({ ...task, entityType: 'task' })\n }\n }\n\n // Add folder children to queue\n const childFolderIds = folderChildrenMap.get(currentId)\n if (childFolderIds?.length) {\n queue.push(...childFolderIds)\n }\n }\n\n return descendants\n },\n [entitiesMap, tasksByFolderMap, entitiesMap, folderChildrenMap],\n )\n\n // Helper function to get ancestors of a folder\n const getAncestorsOf: GetAncestorsOf = useCallback(\n (id) => {\n const ancestors: string[] = []\n let currentId = id\n\n while (true) {\n const entity = entitiesMap && getEntityDataById<'folder'>(currentId, entitiesMap)\n if (!entity || !entity.parentId) break\n\n ancestors.push(entity.parentId)\n currentId = entity.parentId\n }\n\n return ancestors\n },\n [entitiesMap],\n )\n\n // Helper function to get all folder ancestors of a task\n const getTaskAncestors = useCallback(\n (taskId: string): string[] => {\n const task = tasksMap?.get(taskId) as EMapResult<'task'>\n if (!task || !task.folderId) return []\n\n // Start with the direct parent folder\n const ancestors = [task.folderId]\n\n // Add all ancestors of the parent folder\n const folderAncestors = getAncestorsOf(task.folderId)\n ancestors.push(...folderAncestors)\n\n return ancestors\n },\n [tasksMap, getAncestorsOf],\n )\n\n // Helper function to find non-inherited values for multiple attributes from ancestors\n const findNonInheritedValues: FindNonInheritedValues = useCallback(\n (folderId, attribNames) => {\n if (!attribNames.length) return {}\n\n const result: Record<string, any> = {}\n const pendingAttribs = new Set(attribNames)\n\n // Start with the provided folder and traverse upward\n let currentId = folderId\n\n // Traverse up the folder hierarchy until we've found values for all attributes\n // or we've reached the root folder\n while (pendingAttribs.size > 0) {\n const folder = getEntityById(currentId)\n if (!folder || !currentId) {\n // use the project attrib\n for (const attribName of pendingAttribs) {\n if (projectAttrib && attribName in projectAttrib) {\n // @ts-ignore\n result[attribName] = projectAttrib[attribName]\n pendingAttribs.delete(attribName)\n }\n }\n\n // end search\n break\n }\n\n // Check if this folder has non-inherited values for any of our pending attributes\n for (const attribName of Array.from(pendingAttribs)) {\n if (\n folder.ownAttrib?.includes(attribName) &&\n folder.attrib &&\n attribName in folder.attrib\n ) {\n // Found a non-inherited value, add to result and remove from pending\n result[attribName] = folder.attrib[attribName]\n pendingAttribs.delete(attribName)\n }\n }\n\n // Move up to the parent folder\n currentId = folder.parentId\n }\n\n // For any attributes without non-inherited values found, set to null\n for (const attribName of pendingAttribs) {\n result[attribName] = null\n }\n\n return result\n },\n [getEntityById],\n )\n\n // Optimized implementation of getInheritedDependents\n const getInheritedDependents: GetInheritedDependents = useCallback(\n (entities) => {\n // console.time('getInheritedDependents') // 40ms - TODO improve this\n if (!entities.length) return []\n\n // Process all entities in one batch for efficiency\n const result: InheritedDependent[] = []\n\n // Track attributes that are owned (not inherited) to block inheritance\n const blockedInheritanceMap = new Map<string, Set<string>>()\n\n for (const entity of entities) {\n // check entity is folder\n if (entity.entityType !== 'folder') continue\n\n const attribEntries = Object.entries(entity.attrib)\n if (!attribEntries.length) continue\n\n const children = getChildrenEntities(entity.entityId)\n\n // filter out children that are in entities as they are already processed\n const filteredChildren = children.filter(\n (child) => !entities.find((e) => e.entityId === child.id),\n )\n\n if (!filteredChildren.length) continue\n\n for (const child of filteredChildren) {\n // Find which attributes would be inherited by this child\n const inheritedAttribs = attribEntries.filter(\n ([attribName]) =>\n !child.ownAttrib?.includes(attribName) &&\n attribFields?.find((a) => a.name === attribName)?.data?.inherit,\n )\n\n // Record attributes that child owns (has its own value for)\n const ownedAttribs = attribEntries.filter(([attribName]) =>\n child.ownAttrib?.includes(attribName),\n )\n\n // If the child has its own value for some attributes, block inheritance for its descendants\n if (ownedAttribs.length) {\n if (!blockedInheritanceMap.has(child.id)) {\n blockedInheritanceMap.set(child.id, new Set())\n }\n ownedAttribs.forEach(([attribName]) => {\n blockedInheritanceMap.get(child.id)!.add(attribName)\n })\n }\n\n // Filter out attributes blocked by ancestors\n const filteredInheritedAttribs = inheritedAttribs.filter(([attribName]) => {\n // Get ancestors based on entity type\n const ancestors =\n child.entityType === 'task' ? getTaskAncestors(child.id) : getAncestorsOf(child.id)\n\n // Check if any ancestor blocks this attribute\n for (const ancestor of ancestors) {\n if (\n blockedInheritanceMap.has(ancestor) &&\n blockedInheritanceMap.get(ancestor)!.has(attribName)\n ) {\n return false\n }\n }\n return true\n })\n\n if (filteredInheritedAttribs.length) {\n // Check if entity already exists in the result\n const existingEntityIndex = result.findIndex((item) => item.entityId === child.id)\n\n if (existingEntityIndex !== -1) {\n // Merge attributes with existing entry\n result[existingEntityIndex].attrib = {\n ...result[existingEntityIndex].attrib,\n ...Object.fromEntries(filteredInheritedAttribs),\n }\n } else {\n // Add new entity\n result.push({\n entityId: child.id,\n entityType: child.entityType || ('parentId' in child ? 'folder' : 'task'),\n attrib: Object.fromEntries(filteredInheritedAttribs),\n })\n }\n }\n }\n }\n\n // console.timeEnd('getInheritedDependents')\n\n return result\n },\n [getChildrenEntities, tasksMap, getTaskAncestors, getAncestorsOf],\n )\n\n // Helper function to find the inherited value for an attribute from ancestors\n const findInheritedValueFromAncestors = useCallback<FindInheritedValueFromAncestors>(\n (entityId, entityType, attribName) => {\n const entity = getEntityById(entityId)\n if (!entity) return null\n\n // For tasks, start with their parent folder\n let currentId = entityType === 'task' ? entity.folderId : entity.parentId\n\n // Traverse up the folder hierarchy\n while (currentId) {\n const ancestor = getEntityById(currentId)\n if (!ancestor) break\n\n // If the ancestor has its own value for this attribute, return it\n if (\n ancestor.ownAttrib?.includes(attribName) &&\n ancestor.attrib &&\n attribName in ancestor.attrib\n ) {\n return ancestor.attrib[attribName]\n }\n\n // Move up to the next parent\n currentId = ancestor.parentId\n }\n\n // If no ancestor has its own value, return null (will use the default)\n return null\n },\n [getEntityById],\n )\n\n return {\n folderChildrenMap,\n getChildrenEntities,\n getInheritedDependents,\n findInheritedValueFromAncestors,\n findNonInheritedValues,\n getAncestorsOf,\n }\n}\n"],"names":[],"mappings":";;AAsCA,SAAwB,uBAAuB;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAgC;AAExB,QAAA,oBAAoB,QAAQ,MAAM;AAChC,UAAA,0BAAU,IAAsB;AAClC,QAAA,CAAC,YAAoB,QAAA;AACd,eAAA,UAAU,YAAY,UAAU;AAErC,UAAA,OAAO,eAAe,SAAU;AACpC,YAAM,WAAW,OAAO;AACxB,UAAI,CAAC,SAAU;AAEf,UAAI,CAAC,IAAI,IAAI,QAAQ,GAAG;AAClB,YAAA,IAAI,UAAU,EAAE;AAAA,MAAA;AAEtB,UAAI,IAAI,QAAQ,EAAG,KAAK,OAAO,EAAE;AAAA,IAAA;AAE5B,WAAA;AAAA,EAAA,GACN,CAAC,WAAW,CAAC;AAEhB,QAAM,sBAAsB;AAAA,IAC1B,CAAC,OAAe;AACd,YAAM,cAAmD,CAAC;AACpD,YAAA,QAAkB,CAAC,EAAE;AACrB,YAAA,8BAAc,IAAY;AAEzB,aAAA,MAAM,SAAS,GAAG;AACjB,cAAA,YAAY,MAAM,MAAM;AAE1B,YAAA,QAAQ,IAAI,SAAS,EAAG;AAC5B,gBAAQ,IAAI,SAAS;AAGjB,YAAA,cAAc,MAAM,aAAa;AAC7B,gBAAA,SAAS,kBAA4B,WAAW,WAAW;AAC7D,cAAA,oBAAoB,KAAK,EAAE,GAAG,QAAQ,YAAY,UAAU;AAAA,QAAA;AAI5D,cAAA,UAAU,qDAAkB,IAAI;AAClC,aAAA,mCAAS,WAAU,aAAa;AAClC,qBAAW,UAAU,SAAS;AACtB,kBAAA,OAAO,kBAA0B,QAAQ,WAAW;AACtD,gBAAA,kBAAkB,KAAK,EAAE,GAAG,MAAM,YAAY,QAAQ;AAAA,UAAA;AAAA,QAC5D;AAII,cAAA,iBAAiB,kBAAkB,IAAI,SAAS;AACtD,YAAI,iDAAgB,QAAQ;AACpB,gBAAA,KAAK,GAAG,cAAc;AAAA,QAAA;AAAA,MAC9B;AAGK,aAAA;AAAA,IACT;AAAA,IACA,CAAC,aAAa,kBAAkB,aAAa,iBAAiB;AAAA,EAChE;AAGA,QAAM,iBAAiC;AAAA,IACrC,CAAC,OAAO;AACN,YAAM,YAAsB,CAAC;AAC7B,UAAI,YAAY;AAEhB,aAAO,MAAM;AACX,cAAM,SAAS,eAAe,kBAA4B,WAAW,WAAW;AAChF,YAAI,CAAC,UAAU,CAAC,OAAO,SAAU;AAEvB,kBAAA,KAAK,OAAO,QAAQ;AAC9B,oBAAY,OAAO;AAAA,MAAA;AAGd,aAAA;AAAA,IACT;AAAA,IACA,CAAC,WAAW;AAAA,EACd;AAGA,QAAM,mBAAmB;AAAA,IACvB,CAAC,WAA6B;AACtB,YAAA,OAAO,qCAAU,IAAI;AAC3B,UAAI,CAAC,QAAQ,CAAC,KAAK,iBAAiB,CAAC;AAG/B,YAAA,YAAY,CAAC,KAAK,QAAQ;AAG1B,YAAA,kBAAkB,eAAe,KAAK,QAAQ;AAC1C,gBAAA,KAAK,GAAG,eAAe;AAE1B,aAAA;AAAA,IACT;AAAA,IACA,CAAC,UAAU,cAAc;AAAA,EAC3B;AAGA,QAAM,yBAAiD;AAAA,IACrD,CAAC,UAAU,gBAAgB;;AACzB,UAAI,CAAC,YAAY,OAAQ,QAAO,CAAC;AAEjC,YAAM,SAA8B,CAAC;AAC/B,YAAA,iBAAiB,IAAI,IAAI,WAAW;AAG1C,UAAI,YAAY;AAIT,aAAA,eAAe,OAAO,GAAG;AACxB,cAAA,SAAS,cAAc,SAAS;AAClC,YAAA,CAAC,UAAU,CAAC,WAAW;AAEzB,qBAAW,cAAc,gBAAgB;AACnC,gBAAA,iBAAiB,cAAc,eAAe;AAEzC,qBAAA,UAAU,IAAI,cAAc,UAAU;AAC7C,6BAAe,OAAO,UAAU;AAAA,YAAA;AAAA,UAClC;AAIF;AAAA,QAAA;AAIF,mBAAW,cAAc,MAAM,KAAK,cAAc,GAAG;AAEjD,gBAAA,YAAO,cAAP,mBAAkB,SAAS,gBAC3B,OAAO,UACP,cAAc,OAAO,QACrB;AAEA,mBAAO,UAAU,IAAI,OAAO,OAAO,UAAU;AAC7C,2BAAe,OAAO,UAAU;AAAA,UAAA;AAAA,QAClC;AAIF,oBAAY,OAAO;AAAA,MAAA;AAIrB,iBAAW,cAAc,gBAAgB;AACvC,eAAO,UAAU,IAAI;AAAA,MAAA;AAGhB,aAAA;AAAA,IACT;AAAA,IACA,CAAC,aAAa;AAAA,EAChB;AAGA,QAAM,yBAAiD;AAAA,IACrD,CAAC,aAAa;AAEZ,UAAI,CAAC,SAAS,OAAQ,QAAO,CAAC;AAG9B,YAAM,SAA+B,CAAC;AAGhC,YAAA,4CAA4B,IAAyB;AAE3D,iBAAW,UAAU,UAAU;AAEzB,YAAA,OAAO,eAAe,SAAU;AAEpC,cAAM,gBAAgB,OAAO,QAAQ,OAAO,MAAM;AAC9C,YAAA,CAAC,cAAc,OAAQ;AAErB,cAAA,WAAW,oBAAoB,OAAO,QAAQ;AAGpD,cAAM,mBAAmB,SAAS;AAAA,UAChC,CAAC,UAAU,CAAC,SAAS,KAAK,CAAC,MAAM,EAAE,aAAa,MAAM,EAAE;AAAA,QAC1D;AAEI,YAAA,CAAC,iBAAiB,OAAQ;AAE9B,mBAAW,SAAS,kBAAkB;AAEpC,gBAAM,mBAAmB,cAAc;AAAA,YACrC,CAAC,CAAC,UAAU,MACV;;AAAA,wBAAC,WAAM,cAAN,mBAAiB,SAAS,kBAC3B,wDAAc,KAAK,CAAC,MAAM,EAAE,SAAS,gBAArC,mBAAkD,SAAlD,mBAAwD;AAAA;AAAA,UAC5D;AAGA,gBAAM,eAAe,cAAc;AAAA,YAAO,CAAC,CAAC,UAAU;;AACpD,iCAAM,cAAN,mBAAiB,SAAS;AAAA;AAAA,UAC5B;AAGA,cAAI,aAAa,QAAQ;AACvB,gBAAI,CAAC,sBAAsB,IAAI,MAAM,EAAE,GAAG;AACxC,oCAAsB,IAAI,MAAM,IAAI,oBAAI,KAAK;AAAA,YAAA;AAE/C,yBAAa,QAAQ,CAAC,CAAC,UAAU,MAAM;AACrC,oCAAsB,IAAI,MAAM,EAAE,EAAG,IAAI,UAAU;AAAA,YAAA,CACpD;AAAA,UAAA;AAIH,gBAAM,2BAA2B,iBAAiB,OAAO,CAAC,CAAC,UAAU,MAAM;AAEnE,kBAAA,YACJ,MAAM,eAAe,SAAS,iBAAiB,MAAM,EAAE,IAAI,eAAe,MAAM,EAAE;AAGpF,uBAAW,YAAY,WAAW;AAE9B,kBAAA,sBAAsB,IAAI,QAAQ,KAClC,sBAAsB,IAAI,QAAQ,EAAG,IAAI,UAAU,GACnD;AACO,uBAAA;AAAA,cAAA;AAAA,YACT;AAEK,mBAAA;AAAA,UAAA,CACR;AAED,cAAI,yBAAyB,QAAQ;AAE7B,kBAAA,sBAAsB,OAAO,UAAU,CAAC,SAAS,KAAK,aAAa,MAAM,EAAE;AAEjF,gBAAI,wBAAwB,IAAI;AAEvB,qBAAA,mBAAmB,EAAE,SAAS;AAAA,gBACnC,GAAG,OAAO,mBAAmB,EAAE;AAAA,gBAC/B,GAAG,OAAO,YAAY,wBAAwB;AAAA,cAChD;AAAA,YAAA,OACK;AAEL,qBAAO,KAAK;AAAA,gBACV,UAAU,MAAM;AAAA,gBAChB,YAAY,MAAM,eAAe,cAAc,QAAQ,WAAW;AAAA,gBAClE,QAAQ,OAAO,YAAY,wBAAwB;AAAA,cAAA,CACpD;AAAA,YAAA;AAAA,UACH;AAAA,QACF;AAAA,MACF;AAKK,aAAA;AAAA,IACT;AAAA,IACA,CAAC,qBAAqB,UAAU,kBAAkB,cAAc;AAAA,EAClE;AAGA,QAAM,kCAAkC;AAAA,IACtC,CAAC,UAAU,YAAY,eAAe;;AAC9B,YAAA,SAAS,cAAc,QAAQ;AACjC,UAAA,CAAC,OAAe,QAAA;AAGpB,UAAI,YAAY,eAAe,SAAS,OAAO,WAAW,OAAO;AAGjE,aAAO,WAAW;AACV,cAAA,WAAW,cAAc,SAAS;AACxC,YAAI,CAAC,SAAU;AAIb,cAAA,cAAS,cAAT,mBAAoB,SAAS,gBAC7B,SAAS,UACT,cAAc,SAAS,QACvB;AACO,iBAAA,SAAS,OAAO,UAAU;AAAA,QAAA;AAInC,oBAAY,SAAS;AAAA,MAAA;AAIhB,aAAA;AAAA,IACT;AAAA,IACA,CAAC,aAAa;AAAA,EAChB;AAEO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"useFolderRelationships.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useFolderRelationships.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport {\n EditorTaskNode,\n EMapResult,\n EntitiesMap,\n FolderNodeMap,\n MatchingFolder,\n TaskNodeMap,\n} from '../types/table'\nimport { ProjectAttribModel2 } from '../types/project'\nimport { ProjectTableAttribute } from '../types'\nimport { getEntityDataById } from '../utils/cellUtils'\n\nexport interface InheritedDependent {\n entityId: string\n entityType: 'task' | 'folder'\n attrib: Record<string, any> // all attribs that are inherited from the parent and their new value\n}\nexport type GetInheritedDependents = (entities: InheritedDependent[]) => InheritedDependent[]\nexport type FindInheritedValueFromAncestors = (\n entityId: string,\n entityType: 'folder' | 'task',\n attribName: string,\n) => any\nexport type FindNonInheritedValues = (\n folderId: string | undefined,\n attribNames: string[],\n) => Record<string, any>\nexport type GetAncestorsOf = (id: string) => string[]\ninterface UseFolderRelationshipsProps {\n tasksMap?: TaskNodeMap\n entitiesMap?: EntitiesMap\n tasksByFolderMap?: Map<string, string[]>\n getEntityById: (id: string, field?: string) => any\n projectAttrib: ProjectAttribModel2 | undefined\n attribFields: ProjectTableAttribute[] | undefined\n}\n\nexport default function useFolderRelationships({\n tasksMap,\n entitiesMap,\n tasksByFolderMap,\n getEntityById,\n projectAttrib,\n attribFields,\n}: UseFolderRelationshipsProps) {\n // Pre-compute folder-children relationships\n const folderChildrenMap = useMemo(() => {\n const map = new Map<string, string[]>()\n if (!entitiesMap) return map\n for (const folder of entitiesMap.values()) {\n // Skip if not a folder\n if (folder.entityType !== 'folder') continue\n const parentId = folder.parentId\n if (!parentId) continue\n\n if (!map.has(parentId)) {\n map.set(parentId, [])\n }\n map.get(parentId)!.push(folder.id)\n }\n return map\n }, [entitiesMap])\n\n const getChildrenEntities = useCallback(\n (id: string) => {\n const descendants: (MatchingFolder | EditorTaskNode)[] = []\n const queue: string[] = [id]\n const visited = new Set<string>()\n\n while (queue.length > 0) {\n const currentId = queue.shift()!\n\n if (visited.has(currentId)) continue\n visited.add(currentId)\n\n // Skip adding the root folder to descendants\n if (currentId !== id && entitiesMap) {\n const folder = getEntityDataById<'folder'>(currentId, entitiesMap)\n if (folder) descendants.push({ ...folder, entityType: 'folder' })\n }\n\n // Add tasks efficiently with a single lookup\n const taskIds = tasksByFolderMap?.get(currentId)\n if (taskIds?.length && entitiesMap) {\n for (const taskId of taskIds) {\n const task = getEntityDataById<'task'>(taskId, entitiesMap)\n if (task) descendants.push({ ...task, entityType: 'task' })\n }\n }\n\n // Add folder children to queue\n const childFolderIds = folderChildrenMap.get(currentId)\n if (childFolderIds?.length) {\n queue.push(...childFolderIds)\n }\n }\n\n return descendants\n },\n [entitiesMap, tasksByFolderMap, entitiesMap, folderChildrenMap],\n )\n\n // Helper function to get ancestors of a folder\n const getAncestorsOf: GetAncestorsOf = useCallback(\n (id) => {\n const ancestors: string[] = []\n let currentId = id\n\n while (true) {\n const entity = entitiesMap && getEntityDataById<'folder'>(currentId, entitiesMap)\n if (!entity || !entity.parentId) break\n\n ancestors.push(entity.parentId)\n currentId = entity.parentId\n }\n\n return ancestors\n },\n [entitiesMap],\n )\n\n // Helper function to get all folder ancestors of a task\n const getTaskAncestors = useCallback(\n (taskId: string): string[] => {\n const task = tasksMap?.get(taskId) as EMapResult<'task'>\n if (!task || !task.folderId) return []\n\n // Start with the direct parent folder\n const ancestors = [task.folderId]\n\n // Add all ancestors of the parent folder\n const folderAncestors = getAncestorsOf(task.folderId)\n ancestors.push(...folderAncestors)\n\n return ancestors\n },\n [tasksMap, getAncestorsOf],\n )\n\n // Helper function to find non-inherited values for multiple attributes from ancestors\n const findNonInheritedValues: FindNonInheritedValues = useCallback(\n (folderId, attribNames) => {\n if (!attribNames.length) return {}\n\n const result: Record<string, any> = {}\n const pendingAttribs = new Set(attribNames)\n\n // Start with the provided folder and traverse upward\n let currentId = folderId\n\n // Traverse up the folder hierarchy until we've found values for all attributes\n // or we've reached the root folder\n while (pendingAttribs.size > 0) {\n const folder = getEntityById(currentId || '')\n if (!folder || !currentId) {\n // use the project attrib\n for (const attribName of pendingAttribs) {\n if (projectAttrib && attribName in projectAttrib) {\n // @ts-ignore\n result[attribName] = projectAttrib[attribName]\n pendingAttribs.delete(attribName)\n }\n }\n\n // end search\n break\n }\n\n // Check if this folder has non-inherited values for any of our pending attributes\n for (const attribName of Array.from(pendingAttribs)) {\n if (\n folder.ownAttrib?.includes(attribName) &&\n folder.attrib &&\n attribName in folder.attrib\n ) {\n // Found a non-inherited value, add to result and remove from pending\n result[attribName] = folder.attrib[attribName]\n pendingAttribs.delete(attribName)\n }\n }\n\n // Move up to the parent folder\n currentId = folder.parentId\n }\n\n // For any attributes without non-inherited values found, set to null\n for (const attribName of pendingAttribs) {\n result[attribName] = null\n }\n\n return result\n },\n [getEntityById],\n )\n\n // Optimized implementation of getInheritedDependents\n const getInheritedDependents: GetInheritedDependents = useCallback(\n (entities) => {\n // console.time('getInheritedDependents') // 40ms - TODO improve this\n if (!entities.length) return []\n\n // Process all entities in one batch for efficiency\n const result: InheritedDependent[] = []\n\n // Track attributes that are owned (not inherited) to block inheritance\n const blockedInheritanceMap = new Map<string, Set<string>>()\n\n for (const entity of entities) {\n // check entity is folder\n if (entity.entityType !== 'folder') continue\n\n const attribEntries = Object.entries(entity.attrib)\n if (!attribEntries.length) continue\n\n const children = getChildrenEntities(entity.entityId)\n\n // filter out children that are in entities as they are already processed\n const filteredChildren = children.filter(\n (child) => !entities.find((e) => e.entityId === child.id),\n )\n\n if (!filteredChildren.length) continue\n\n for (const child of filteredChildren) {\n // Find which attributes would be inherited by this child\n const inheritedAttribs = attribEntries.filter(\n ([attribName]) =>\n !child.ownAttrib?.includes(attribName) &&\n attribFields?.find((a) => a.name === attribName)?.data?.inherit,\n )\n\n // Record attributes that child owns (has its own value for)\n const ownedAttribs = attribEntries.filter(([attribName]) =>\n child.ownAttrib?.includes(attribName),\n )\n\n // If the child has its own value for some attributes, block inheritance for its descendants\n if (ownedAttribs.length) {\n if (!blockedInheritanceMap.has(child.id)) {\n blockedInheritanceMap.set(child.id, new Set())\n }\n ownedAttribs.forEach(([attribName]) => {\n blockedInheritanceMap.get(child.id)!.add(attribName)\n })\n }\n\n // Filter out attributes blocked by ancestors\n const filteredInheritedAttribs = inheritedAttribs.filter(([attribName]) => {\n // Get ancestors based on entity type\n const ancestors =\n child.entityType === 'task' ? getTaskAncestors(child.id) : getAncestorsOf(child.id)\n\n // Check if any ancestor blocks this attribute\n for (const ancestor of ancestors) {\n if (\n blockedInheritanceMap.has(ancestor) &&\n blockedInheritanceMap.get(ancestor)!.has(attribName)\n ) {\n return false\n }\n }\n return true\n })\n\n if (filteredInheritedAttribs.length) {\n // Check if entity already exists in the result\n const existingEntityIndex = result.findIndex((item) => item.entityId === child.id)\n\n if (existingEntityIndex !== -1) {\n // Merge attributes with existing entry\n result[existingEntityIndex].attrib = {\n ...result[existingEntityIndex].attrib,\n ...Object.fromEntries(filteredInheritedAttribs),\n }\n } else {\n // Add new entity\n result.push({\n entityId: child.id,\n entityType: child.entityType || ('parentId' in child ? 'folder' : 'task'),\n attrib: Object.fromEntries(filteredInheritedAttribs),\n })\n }\n }\n }\n }\n\n // console.timeEnd('getInheritedDependents')\n\n return result\n },\n [getChildrenEntities, tasksMap, getTaskAncestors, getAncestorsOf],\n )\n\n // Helper function to find the inherited value for an attribute from ancestors\n const findInheritedValueFromAncestors = useCallback<FindInheritedValueFromAncestors>(\n (entityId, entityType, attribName) => {\n const entity = getEntityById(entityId)\n if (!entity) return null\n\n // For tasks, start with their parent folder\n let currentId = entityType === 'task' ? entity.folderId : entity.parentId\n\n // Traverse up the folder hierarchy\n while (currentId) {\n const ancestor = getEntityById(currentId)\n if (!ancestor) break\n\n // If the ancestor has its own value for this attribute, return it\n if (\n ancestor.ownAttrib?.includes(attribName) &&\n ancestor.attrib &&\n attribName in ancestor.attrib\n ) {\n return ancestor.attrib[attribName]\n }\n\n // Move up to the next parent\n currentId = ancestor.parentId\n }\n\n // If no ancestor has its own value, return null (will use the default)\n return null\n },\n [getEntityById],\n )\n\n return {\n folderChildrenMap,\n getChildrenEntities,\n getInheritedDependents,\n findInheritedValueFromAncestors,\n findNonInheritedValues,\n getAncestorsOf,\n }\n}\n"],"names":[],"mappings":"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"}
@@ -15,6 +15,94 @@ const getAttributeIcon = require("../../../util/getAttributeIcon.cjs.js");
15
15
  require("../../../util/pubsub.cjs.js");
16
16
  require("../context/ProjectTableQueriesContext.cjs.js");
17
17
  require("../context/SelectedRowsContext.cjs.js");
18
+ require("@ynput/ayon-react-components");
19
+ ;/* empty css */
20
+ require("clsx");
21
+ require("../../ContextMenu/ContextMenuContext.cjs.js");
22
+ require("../../../api/base/client.cjs.js");
23
+ require("../../../api/generated/graphql.cjs.js");
24
+ require("../../../api/generated/access.cjs.js");
25
+ require("../../../api/generated/actions.cjs.js");
26
+ require("../../../api/generated/activityFeed.cjs.js");
27
+ require("../../../api/generated/addons.cjs.js");
28
+ require("../../../api/generated/anatomy.cjs.js");
29
+ require("../../../api/generated/attributes.cjs.js");
30
+ require("../../../api/generated/authentication.cjs.js");
31
+ require("../../../api/generated/bundles.cjs.js");
32
+ require("../../../api/generated/configuration.cjs.js");
33
+ require("../../../api/generated/desktop.cjs.js");
34
+ require("../../../api/generated/entityLists.cjs.js");
35
+ require("../../../api/generated/events.cjs.js");
36
+ require("../../../api/generated/files.cjs.js");
37
+ require("../../../api/generated/folders.cjs.js");
38
+ require("../../../api/generated/inbox.cjs.js");
39
+ require("../../../api/generated/links.cjs.js");
40
+ require("../../../api/generated/market.cjs.js");
41
+ require("../../../api/generated/onboarding.cjs.js");
42
+ require("../../../api/generated/operations.cjs.js");
43
+ require("../../../api/generated/products.cjs.js");
44
+ require("../../../api/generated/projectDashboard.cjs.js");
45
+ require("../../../api/generated/projects.cjs.js");
46
+ require("../../../api/generated/reviewables.cjs.js");
47
+ require("../../../api/generated/services.cjs.js");
48
+ require("../../../api/generated/system.cjs.js");
49
+ require("../../../api/generated/tasks.cjs.js");
50
+ require("../../../api/generated/teams.cjs.js");
51
+ require("../../../api/generated/thumbnails.cjs.js");
52
+ require("../../../api/generated/uRIs.cjs.js");
53
+ require("../../../api/generated/users.cjs.js");
54
+ require("../../../api/generated/versions.cjs.js");
55
+ require("../../../api/generated/workfiles.cjs.js");
56
+ require("../../../api/generated/ynputCloud.cjs.js");
57
+ require("../../../api/generated/grouping.cjs.js");
58
+ require("../../../api/queries/actions/getActions.cjs.js");
59
+ require("../../../api/queries/activities/getActivities.cjs.js");
60
+ require("../../../api/queries/activities/updateActivities.cjs.js");
61
+ require("../../../api/queries/activities/updateReaction.cjs.js");
62
+ require("../../../api/queries/activities/getMentions.cjs.js");
63
+ require("../../../api/queries/addons/getAddons.cjs.js");
64
+ require("../../../api/queries/addons/updateAddons.cjs.js");
65
+ require("../../../api/queries/attributes/getAttributes.cjs.js");
66
+ require("../../../api/queries/attributes/updateAttributes.cjs.js");
67
+ require("../../../api/queries/authentication/getAuthentication.cjs.js");
68
+ require("../../../api/queries/entities/getEntity.cjs.js");
69
+ require("../../../api/queries/entities/getEntityPanel.cjs.js");
70
+ require("../../../api/queries/entities/updateEntity.cjs.js");
71
+ require("../../../api/queries/entityLists/getLists.cjs.js");
72
+ require("../../../api/queries/entityLists/updateLists.cjs.js");
73
+ require("../../../api/queries/entityLists/getListsAttributes.cjs.js");
74
+ require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");
75
+ require("../../../api/queries/folders/getFolders.cjs.js");
76
+ require("../../../api/queries/overview/getOverview.cjs.js");
77
+ require("../../../api/queries/overview/updateOverview.cjs.js");
78
+ require("../../../api/queries/project/getProject.cjs.js");
79
+ require("../../../api/queries/project/updateProject.cjs.js");
80
+ require("../../../api/queries/review/getReview.cjs.js");
81
+ require("../../../api/queries/review/updateReview.cjs.js");
82
+ require("../../../api/queries/system/getSystem.cjs.js");
83
+ require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");
84
+ require("../../../api/queries/users/getUsers.cjs.js");
85
+ require("../../../api/queries/users/updateUsers.cjs.js");
86
+ require("../../../api/queries/watchers/getWatchers.cjs.js");
87
+ require("../../../api/queries/permissions/getPermissions.cjs.js");
88
+ require("../../../api/queries/grouping/getGrouping.cjs.js");
89
+ require("../../../api/queries/versions/updateVersions.cjs.js");
90
+ require("../../../api/queries/products/createProduct.cjs.js");
91
+ require("../../../context/RemoteModulesContext.cjs.js");
92
+ require("../../../../../_virtual/runtime.cjs.js");
93
+ require("../../../../../_virtual/semver.cjs.js");
94
+ require("../../../context/DetailsPanelContext.cjs.js");
95
+ require("../../../context/ThumbnailUploaderContext.cjs.js");
96
+ require("../../../context/SettingsPanelContext.cjs.js");
97
+ require("../../../context/pip/PiPProvider.cjs.js");
98
+ require("react-dom");
99
+ require("../../../context/pip/PiPWrapper.cjs.js");
100
+ require("../../../context/AddonProjectContext.cjs.js");
101
+ require("../../../context/AddonContext.cjs.js");
102
+ require("../../../context/PowerpackContext.cjs.js");
103
+ require("react-redux");
104
+ require("custom-protocol-check");
105
+ require("../components/GroupSettingsFallback.cjs.js");
18
106
  require("../context/ProjectDataContext.cjs.js");
19
107
  const allowedGroupByFields = ["string", "integer", "float"];
20
108
  const isAttribGroupable = (attrib, entityType, allowedTypes, enumOnly) => {
@@ -1 +1 @@
1
- {"version":3,"file":"useGetGroupedFields.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetGroupedFields.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { ProjectTableAttribute } from '../types'\nimport { useColumnSettingsContext, useProjectTableContext } from '../context'\nimport { getAttributeIcon } from '@shared/util'\nimport { EntityGrouping } from '@shared/api'\n\n// @martastain says list_of_* is a pita to implement, so we are not supporting it for now\nexport const allowedGroupByFields = ['string', 'integer', 'float']\nexport const isAttribGroupable = (\n attrib: ProjectTableAttribute,\n entityType: EntityGrouping['entityType'],\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const typesToCheck = allowedTypes || allowedGroupByFields\n const hasValidType = typesToCheck.includes(attrib.data.type) && attrib.scope?.includes(entityType)\n\n if (!hasValidType) return false\n if (enumOnly) return !!attrib.data.enum && attrib.data.enum.length > 0\n\n return true\n}\n\nexport const useGetGroupedFields = (\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const { columnOrder } = useColumnSettingsContext()\n const { attribFields } = useProjectTableContext()\n\n return useMemo(\n () =>\n [\n {\n value: 'taskType',\n label: 'Task Type',\n icon: getAttributeIcon('task'),\n },\n {\n value: 'assignees',\n label: 'Assignees',\n icon: getAttributeIcon('assignees'),\n },\n {\n value: 'status',\n label: 'Status',\n icon: getAttributeIcon('status'),\n },\n {\n value: 'tags',\n label: 'Tags',\n icon: getAttributeIcon('tags'),\n },\n ...attribFields\n .filter((attrib) => isAttribGroupable(attrib, 'task', allowedTypes, enumOnly))\n .map((field) => ({\n value: 'attrib.' + field.name,\n label: field.data.title || field.name,\n icon: getAttributeIcon(field.name),\n })),\n ].sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n if (indexA === -1 && indexB === -1) return 0\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n return indexA - indexB\n }),\n [attribFields, columnOrder, allowedTypes, enumOnly],\n )\n}\n"],"names":["useColumnSettingsContext","useProjectTableContext","useMemo","getAttributeIcon"],"mappings":";;;;;;;;;;;;;;;;;;AAOO,MAAM,uBAAuB,CAAC,UAAU,WAAW,OAAO;AAC1D,MAAM,oBAAoB,CAC/B,QACA,YACA,cACA,aACG;;AACH,QAAM,eAAe,gBAAgB;AAC/B,QAAA,eAAe,aAAa,SAAS,OAAO,KAAK,IAAI,OAAK,YAAO,UAAP,mBAAc,SAAS;AAEnF,MAAA,CAAC,aAAqB,QAAA;AACtB,MAAA,SAAiB,QAAA,CAAC,CAAC,OAAO,KAAK,QAAQ,OAAO,KAAK,KAAK,SAAS;AAE9D,SAAA;AACT;AAEa,MAAA,sBAAsB,CACjC,cACA,aACG;AACG,QAAA,EAAE,YAAY,IAAIA,+CAAyB;AAC3C,QAAA,EAAE,aAAa,IAAIC,2CAAuB;AAEzC,SAAAC,MAAA;AAAA,IACL,MACE;AAAA,MACE;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMC,kCAAiB,MAAM;AAAA,MAC/B;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,kCAAiB,WAAW;AAAA,MACpC;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,kCAAiB,QAAQ;AAAA,MACjC;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,kCAAiB,MAAM;AAAA,MAC/B;AAAA,MACA,GAAG,aACA,OAAO,CAAC,WAAW,kBAAkB,QAAQ,QAAQ,cAAc,QAAQ,CAAC,EAC5E,IAAI,CAAC,WAAW;AAAA,QACf,OAAO,YAAY,MAAM;AAAA,QACzB,OAAO,MAAM,KAAK,SAAS,MAAM;AAAA,QACjC,MAAMA,iBAAAA,iBAAiB,MAAM,IAAI;AAAA,MAAA,EACjC;AAAA,IAAA,EACJ,KAAK,CAAC,GAAG,MAAM;AACf,YAAM,SAAS,YAAY,QAAQ,EAAE,KAAK;AAC1C,YAAM,SAAS,YAAY,QAAQ,EAAE,KAAK;AAC1C,UAAI,WAAW,MAAM,WAAW,GAAW,QAAA;AACvC,UAAA,WAAW,GAAW,QAAA;AACtB,UAAA,WAAW,GAAW,QAAA;AAC1B,aAAO,SAAS;AAAA,IAAA,CACjB;AAAA,IACH,CAAC,cAAc,aAAa,cAAc,QAAQ;AAAA,EACpD;AACF;;;;"}
1
+ {"version":3,"file":"useGetGroupedFields.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetGroupedFields.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { ProjectTableAttribute } from '../types'\nimport { useColumnSettingsContext, useProjectTableContext } from '../context'\nimport { getAttributeIcon } from '@shared/util'\nimport { EntityGrouping } from '@shared/api'\n\n// @martastain says list_of_* is a pita to implement, so we are not supporting it for now\nexport const allowedGroupByFields = ['string', 'integer', 'float']\nexport const isAttribGroupable = (\n attrib: ProjectTableAttribute,\n entityType: EntityGrouping['entityType'],\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const typesToCheck = allowedTypes || allowedGroupByFields\n const hasValidType = typesToCheck.includes(attrib.data.type) && attrib.scope?.includes(entityType)\n\n if (!hasValidType) return false\n if (enumOnly) return !!attrib.data.enum && attrib.data.enum.length > 0\n\n return true\n}\n\nexport const useGetGroupedFields = (\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const { columnOrder } = useColumnSettingsContext()\n const { attribFields } = useProjectTableContext()\n\n return useMemo(\n () =>\n [\n {\n value: 'taskType',\n label: 'Task Type',\n icon: getAttributeIcon('task'),\n },\n {\n value: 'assignees',\n label: 'Assignees',\n icon: getAttributeIcon('assignees'),\n },\n {\n value: 'status',\n label: 'Status',\n icon: getAttributeIcon('status'),\n },\n {\n value: 'tags',\n label: 'Tags',\n icon: getAttributeIcon('tags'),\n },\n ...attribFields\n .filter((attrib) => isAttribGroupable(attrib, 'task', allowedTypes, enumOnly))\n .map((field) => ({\n value: 'attrib.' + field.name,\n label: field.data.title || field.name,\n icon: getAttributeIcon(field.name),\n })),\n ].sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n if (indexA === -1 && indexB === -1) return 0\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n return indexA - indexB\n }),\n [attribFields, columnOrder, allowedTypes, enumOnly],\n )\n}\n"],"names":["useColumnSettingsContext","useProjectTableContext","useMemo","getAttributeIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,MAAM,uBAAuB,CAAC,UAAU,WAAW,OAAO;AAC1D,MAAM,oBAAoB,CAC/B,QACA,YACA,cACA,aACG;;AACH,QAAM,eAAe,gBAAgB;AAC/B,QAAA,eAAe,aAAa,SAAS,OAAO,KAAK,IAAI,OAAK,YAAO,UAAP,mBAAc,SAAS;AAEnF,MAAA,CAAC,aAAqB,QAAA;AACtB,MAAA,SAAiB,QAAA,CAAC,CAAC,OAAO,KAAK,QAAQ,OAAO,KAAK,KAAK,SAAS;AAE9D,SAAA;AACT;AAEa,MAAA,sBAAsB,CACjC,cACA,aACG;AACG,QAAA,EAAE,YAAY,IAAIA,+CAAyB;AAC3C,QAAA,EAAE,aAAa,IAAIC,2CAAuB;AAEzC,SAAAC,MAAA;AAAA,IACL,MACE;AAAA,MACE;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMC,kCAAiB,MAAM;AAAA,MAC/B;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,kCAAiB,WAAW;AAAA,MACpC;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,kCAAiB,QAAQ;AAAA,MACjC;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAMA,kCAAiB,MAAM;AAAA,MAC/B;AAAA,MACA,GAAG,aACA,OAAO,CAAC,WAAW,kBAAkB,QAAQ,QAAQ,cAAc,QAAQ,CAAC,EAC5E,IAAI,CAAC,WAAW;AAAA,QACf,OAAO,YAAY,MAAM;AAAA,QACzB,OAAO,MAAM,KAAK,SAAS,MAAM;AAAA,QACjC,MAAMA,iBAAAA,iBAAiB,MAAM,IAAI;AAAA,MAAA,EACjC;AAAA,IAAA,EACJ,KAAK,CAAC,GAAG,MAAM;AACf,YAAM,SAAS,YAAY,QAAQ,EAAE,KAAK;AAC1C,YAAM,SAAS,YAAY,QAAQ,EAAE,KAAK;AAC1C,UAAI,WAAW,MAAM,WAAW,GAAW,QAAA;AACvC,UAAA,WAAW,GAAW,QAAA;AACtB,UAAA,WAAW,GAAW,QAAA;AAC1B,aAAO,SAAS;AAAA,IAAA,CACjB;AAAA,IACH,CAAC,cAAc,aAAa,cAAc,QAAQ;AAAA,EACpD;AACF;;;;"}
@@ -13,6 +13,94 @@ import { getAttributeIcon } from "../../../util/getAttributeIcon.es.js";
13
13
  import "../../../util/pubsub.es.js";
14
14
  import "../context/ProjectTableQueriesContext.es.js";
15
15
  import "../context/SelectedRowsContext.es.js";
16
+ import "@ynput/ayon-react-components";
17
+ /* empty css */
18
+ import "clsx";
19
+ import "../../ContextMenu/ContextMenuContext.es.js";
20
+ import "../../../api/base/client.es.js";
21
+ import "../../../api/generated/graphql.es.js";
22
+ import "../../../api/generated/access.es.js";
23
+ import "../../../api/generated/actions.es.js";
24
+ import "../../../api/generated/activityFeed.es.js";
25
+ import "../../../api/generated/addons.es.js";
26
+ import "../../../api/generated/anatomy.es.js";
27
+ import "../../../api/generated/attributes.es.js";
28
+ import "../../../api/generated/authentication.es.js";
29
+ import "../../../api/generated/bundles.es.js";
30
+ import "../../../api/generated/configuration.es.js";
31
+ import "../../../api/generated/desktop.es.js";
32
+ import "../../../api/generated/entityLists.es.js";
33
+ import "../../../api/generated/events.es.js";
34
+ import "../../../api/generated/files.es.js";
35
+ import "../../../api/generated/folders.es.js";
36
+ import "../../../api/generated/inbox.es.js";
37
+ import "../../../api/generated/links.es.js";
38
+ import "../../../api/generated/market.es.js";
39
+ import "../../../api/generated/onboarding.es.js";
40
+ import "../../../api/generated/operations.es.js";
41
+ import "../../../api/generated/products.es.js";
42
+ import "../../../api/generated/projectDashboard.es.js";
43
+ import "../../../api/generated/projects.es.js";
44
+ import "../../../api/generated/reviewables.es.js";
45
+ import "../../../api/generated/services.es.js";
46
+ import "../../../api/generated/system.es.js";
47
+ import "../../../api/generated/tasks.es.js";
48
+ import "../../../api/generated/teams.es.js";
49
+ import "../../../api/generated/thumbnails.es.js";
50
+ import "../../../api/generated/uRIs.es.js";
51
+ import "../../../api/generated/users.es.js";
52
+ import "../../../api/generated/versions.es.js";
53
+ import "../../../api/generated/workfiles.es.js";
54
+ import "../../../api/generated/ynputCloud.es.js";
55
+ import "../../../api/generated/grouping.es.js";
56
+ import "../../../api/queries/actions/getActions.es.js";
57
+ import "../../../api/queries/activities/getActivities.es.js";
58
+ import "../../../api/queries/activities/updateActivities.es.js";
59
+ import "../../../api/queries/activities/updateReaction.es.js";
60
+ import "../../../api/queries/activities/getMentions.es.js";
61
+ import "../../../api/queries/addons/getAddons.es.js";
62
+ import "../../../api/queries/addons/updateAddons.es.js";
63
+ import "../../../api/queries/attributes/getAttributes.es.js";
64
+ import "../../../api/queries/attributes/updateAttributes.es.js";
65
+ import "../../../api/queries/authentication/getAuthentication.es.js";
66
+ import "../../../api/queries/entities/getEntity.es.js";
67
+ import "../../../api/queries/entities/getEntityPanel.es.js";
68
+ import "../../../api/queries/entities/updateEntity.es.js";
69
+ import "../../../api/queries/entityLists/getLists.es.js";
70
+ import "../../../api/queries/entityLists/updateLists.es.js";
71
+ import "../../../api/queries/entityLists/getListsAttributes.es.js";
72
+ import "../../../api/queries/entityLists/updateListsAttributes.es.js";
73
+ import "../../../api/queries/folders/getFolders.es.js";
74
+ import "../../../api/queries/overview/getOverview.es.js";
75
+ import "../../../api/queries/overview/updateOverview.es.js";
76
+ import "../../../api/queries/project/getProject.es.js";
77
+ import "../../../api/queries/project/updateProject.es.js";
78
+ import "../../../api/queries/review/getReview.es.js";
79
+ import "../../../api/queries/review/updateReview.es.js";
80
+ import "../../../api/queries/system/getSystem.es.js";
81
+ import "../../../api/queries/userDashboard/getUserDashboard.es.js";
82
+ import "../../../api/queries/users/getUsers.es.js";
83
+ import "../../../api/queries/users/updateUsers.es.js";
84
+ import "../../../api/queries/watchers/getWatchers.es.js";
85
+ import "../../../api/queries/permissions/getPermissions.es.js";
86
+ import "../../../api/queries/grouping/getGrouping.es.js";
87
+ import "../../../api/queries/versions/updateVersions.es.js";
88
+ import "../../../api/queries/products/createProduct.es.js";
89
+ import "../../../context/RemoteModulesContext.es.js";
90
+ import "../../../../../_virtual/runtime.es.js";
91
+ import "../../../../../_virtual/semver.es.js";
92
+ import "../../../context/DetailsPanelContext.es.js";
93
+ import "../../../context/ThumbnailUploaderContext.es.js";
94
+ import "../../../context/SettingsPanelContext.es.js";
95
+ import "../../../context/pip/PiPProvider.es.js";
96
+ import "react-dom";
97
+ import "../../../context/pip/PiPWrapper.es.js";
98
+ import "../../../context/AddonProjectContext.es.js";
99
+ import "../../../context/AddonContext.es.js";
100
+ import "../../../context/PowerpackContext.es.js";
101
+ import "react-redux";
102
+ import "custom-protocol-check";
103
+ import "../components/GroupSettingsFallback.es.js";
16
104
  import "../context/ProjectDataContext.es.js";
17
105
  const allowedGroupByFields = ["string", "integer", "float"];
18
106
  const isAttribGroupable = (attrib, entityType, allowedTypes, enumOnly) => {
@@ -1 +1 @@
1
- {"version":3,"file":"useGetGroupedFields.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetGroupedFields.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { ProjectTableAttribute } from '../types'\nimport { useColumnSettingsContext, useProjectTableContext } from '../context'\nimport { getAttributeIcon } from '@shared/util'\nimport { EntityGrouping } from '@shared/api'\n\n// @martastain says list_of_* is a pita to implement, so we are not supporting it for now\nexport const allowedGroupByFields = ['string', 'integer', 'float']\nexport const isAttribGroupable = (\n attrib: ProjectTableAttribute,\n entityType: EntityGrouping['entityType'],\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const typesToCheck = allowedTypes || allowedGroupByFields\n const hasValidType = typesToCheck.includes(attrib.data.type) && attrib.scope?.includes(entityType)\n\n if (!hasValidType) return false\n if (enumOnly) return !!attrib.data.enum && attrib.data.enum.length > 0\n\n return true\n}\n\nexport const useGetGroupedFields = (\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const { columnOrder } = useColumnSettingsContext()\n const { attribFields } = useProjectTableContext()\n\n return useMemo(\n () =>\n [\n {\n value: 'taskType',\n label: 'Task Type',\n icon: getAttributeIcon('task'),\n },\n {\n value: 'assignees',\n label: 'Assignees',\n icon: getAttributeIcon('assignees'),\n },\n {\n value: 'status',\n label: 'Status',\n icon: getAttributeIcon('status'),\n },\n {\n value: 'tags',\n label: 'Tags',\n icon: getAttributeIcon('tags'),\n },\n ...attribFields\n .filter((attrib) => isAttribGroupable(attrib, 'task', allowedTypes, enumOnly))\n .map((field) => ({\n value: 'attrib.' + field.name,\n label: field.data.title || field.name,\n icon: getAttributeIcon(field.name),\n })),\n ].sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n if (indexA === -1 && indexB === -1) return 0\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n return indexA - indexB\n }),\n [attribFields, columnOrder, allowedTypes, enumOnly],\n )\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAOO,MAAM,uBAAuB,CAAC,UAAU,WAAW,OAAO;AAC1D,MAAM,oBAAoB,CAC/B,QACA,YACA,cACA,aACG;;AACH,QAAM,eAAe,gBAAgB;AAC/B,QAAA,eAAe,aAAa,SAAS,OAAO,KAAK,IAAI,OAAK,YAAO,UAAP,mBAAc,SAAS;AAEnF,MAAA,CAAC,aAAqB,QAAA;AACtB,MAAA,SAAiB,QAAA,CAAC,CAAC,OAAO,KAAK,QAAQ,OAAO,KAAK,KAAK,SAAS;AAE9D,SAAA;AACT;AAEa,MAAA,sBAAsB,CACjC,cACA,aACG;AACG,QAAA,EAAE,YAAY,IAAI,yBAAyB;AAC3C,QAAA,EAAE,aAAa,IAAI,uBAAuB;AAEzC,SAAA;AAAA,IACL,MACE;AAAA,MACE;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM,iBAAiB,MAAM;AAAA,MAC/B;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM,iBAAiB,WAAW;AAAA,MACpC;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM,iBAAiB,QAAQ;AAAA,MACjC;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM,iBAAiB,MAAM;AAAA,MAC/B;AAAA,MACA,GAAG,aACA,OAAO,CAAC,WAAW,kBAAkB,QAAQ,QAAQ,cAAc,QAAQ,CAAC,EAC5E,IAAI,CAAC,WAAW;AAAA,QACf,OAAO,YAAY,MAAM;AAAA,QACzB,OAAO,MAAM,KAAK,SAAS,MAAM;AAAA,QACjC,MAAM,iBAAiB,MAAM,IAAI;AAAA,MAAA,EACjC;AAAA,IAAA,EACJ,KAAK,CAAC,GAAG,MAAM;AACf,YAAM,SAAS,YAAY,QAAQ,EAAE,KAAK;AAC1C,YAAM,SAAS,YAAY,QAAQ,EAAE,KAAK;AAC1C,UAAI,WAAW,MAAM,WAAW,GAAW,QAAA;AACvC,UAAA,WAAW,GAAW,QAAA;AACtB,UAAA,WAAW,GAAW,QAAA;AAC1B,aAAO,SAAS;AAAA,IAAA,CACjB;AAAA,IACH,CAAC,cAAc,aAAa,cAAc,QAAQ;AAAA,EACpD;AACF;"}
1
+ {"version":3,"file":"useGetGroupedFields.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetGroupedFields.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { ProjectTableAttribute } from '../types'\nimport { useColumnSettingsContext, useProjectTableContext } from '../context'\nimport { getAttributeIcon } from '@shared/util'\nimport { EntityGrouping } from '@shared/api'\n\n// @martastain says list_of_* is a pita to implement, so we are not supporting it for now\nexport const allowedGroupByFields = ['string', 'integer', 'float']\nexport const isAttribGroupable = (\n attrib: ProjectTableAttribute,\n entityType: EntityGrouping['entityType'],\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const typesToCheck = allowedTypes || allowedGroupByFields\n const hasValidType = typesToCheck.includes(attrib.data.type) && attrib.scope?.includes(entityType)\n\n if (!hasValidType) return false\n if (enumOnly) return !!attrib.data.enum && attrib.data.enum.length > 0\n\n return true\n}\n\nexport const useGetGroupedFields = (\n allowedTypes?: ('string' | 'integer' | 'float')[],\n enumOnly?: boolean,\n) => {\n const { columnOrder } = useColumnSettingsContext()\n const { attribFields } = useProjectTableContext()\n\n return useMemo(\n () =>\n [\n {\n value: 'taskType',\n label: 'Task Type',\n icon: getAttributeIcon('task'),\n },\n {\n value: 'assignees',\n label: 'Assignees',\n icon: getAttributeIcon('assignees'),\n },\n {\n value: 'status',\n label: 'Status',\n icon: getAttributeIcon('status'),\n },\n {\n value: 'tags',\n label: 'Tags',\n icon: getAttributeIcon('tags'),\n },\n ...attribFields\n .filter((attrib) => isAttribGroupable(attrib, 'task', allowedTypes, enumOnly))\n .map((field) => ({\n value: 'attrib.' + field.name,\n label: field.data.title || field.name,\n icon: getAttributeIcon(field.name),\n })),\n ].sort((a, b) => {\n const indexA = columnOrder.indexOf(a.value)\n const indexB = columnOrder.indexOf(b.value)\n if (indexA === -1 && indexB === -1) return 0\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n return indexA - indexB\n }),\n [attribFields, columnOrder, allowedTypes, enumOnly],\n )\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,MAAM,uBAAuB,CAAC,UAAU,WAAW,OAAO;AAC1D,MAAM,oBAAoB,CAC/B,QACA,YACA,cACA,aACG;;AACH,QAAM,eAAe,gBAAgB;AAC/B,QAAA,eAAe,aAAa,SAAS,OAAO,KAAK,IAAI,OAAK,YAAO,UAAP,mBAAc,SAAS;AAEnF,MAAA,CAAC,aAAqB,QAAA;AACtB,MAAA,SAAiB,QAAA,CAAC,CAAC,OAAO,KAAK,QAAQ,OAAO,KAAK,KAAK,SAAS;AAE9D,SAAA;AACT;AAEa,MAAA,sBAAsB,CACjC,cACA,aACG;AACG,QAAA,EAAE,YAAY,IAAI,yBAAyB;AAC3C,QAAA,EAAE,aAAa,IAAI,uBAAuB;AAEzC,SAAA;AAAA,IACL,MACE;AAAA,MACE;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM,iBAAiB,MAAM;AAAA,MAC/B;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM,iBAAiB,WAAW;AAAA,MACpC;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM,iBAAiB,QAAQ;AAAA,MACjC;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM,iBAAiB,MAAM;AAAA,MAC/B;AAAA,MACA,GAAG,aACA,OAAO,CAAC,WAAW,kBAAkB,QAAQ,QAAQ,cAAc,QAAQ,CAAC,EAC5E,IAAI,CAAC,WAAW;AAAA,QACf,OAAO,YAAY,MAAM;AAAA,QACzB,OAAO,MAAM,KAAK,SAAS,MAAM;AAAA,QACjC,MAAM,iBAAiB,MAAM,IAAI;AAAA,MAAA,EACjC;AAAA,IAAA,EACJ,KAAK,CAAC,GAAG,MAAM;AACf,YAAM,SAAS,YAAY,QAAQ,EAAE,KAAK;AAC1C,YAAM,SAAS,YAAY,QAAQ,EAAE,KAAK;AAC1C,UAAI,WAAW,MAAM,WAAW,GAAW,QAAA;AACvC,UAAA,WAAW,GAAW,QAAA;AACtB,UAAA,WAAW,GAAW,QAAA;AAC1B,aAAO,SAAS;AAAA,IAAA,CACjB;AAAA,IACH,CAAC,cAAc,aAAa,cAAc,QAAQ;AAAA,EACpD;AACF;"}
@@ -67,6 +67,8 @@ require("../../../api/queries/users/updateUsers.cjs.js");
67
67
  require("../../../api/queries/watchers/getWatchers.cjs.js");
68
68
  require("../../../api/queries/permissions/getPermissions.cjs.js");
69
69
  const getGrouping = require("../../../api/queries/grouping/getGrouping.cjs.js");
70
+ require("../../../api/queries/versions/updateVersions.cjs.js");
71
+ require("../../../api/queries/products/createProduct.cjs.js");
70
72
  const useGetTaskGroups = ({ groupBy, projectName }) => {
71
73
  const groupingKey = (groupBy == null ? void 0 : groupBy.id) || "";
72
74
  const { data: { groups: taskGroups = [] } = {}, error } = getGrouping.useGetEntityGroupsQuery(
@@ -1 +1 @@
1
- {"version":3,"file":"useGetTaskGroups.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetTaskGroups.ts"],"sourcesContent":["import { useGetEntityGroupsQuery } from '@shared/api'\nimport { TableGroupBy } from '../context'\n\ntype GetTaskGroupsProps = {\n groupBy?: TableGroupBy\n projectName: string\n}\n\nexport const useGetTaskGroups = ({ groupBy, projectName }: GetTaskGroupsProps) => {\n // GROUPING\n // 1. get groups data\n // 2. add that filter to the combined filter\n // 3. sort by that filter\n const groupingKey = groupBy?.id || ''\n const { data: { groups: taskGroups = [] } = {}, error } = useGetEntityGroupsQuery(\n { projectName, entityType: 'task', groupingKey: groupingKey, empty: true },\n { skip: !groupBy?.id },\n )\n\n return {\n taskGroups,\n error,\n }\n}\n"],"names":["useGetEntityGroupsQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,MAAM,mBAAmB,CAAC,EAAE,SAAS,kBAAsC;AAK1E,QAAA,eAAc,mCAAS,OAAM;AAC7B,QAAA,EAAE,MAAM,EAAE,QAAQ,aAAa,CAAA,MAAO,CAAA,GAAI,MAAA,IAAUA,YAAA;AAAA,IACxD,EAAE,aAAa,YAAY,QAAQ,aAA0B,OAAO,KAAK;AAAA,IACzE,EAAE,MAAM,EAAC,mCAAS,IAAG;AAAA,EACvB;AAEO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;;"}
1
+ {"version":3,"file":"useGetTaskGroups.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetTaskGroups.ts"],"sourcesContent":["import { useGetEntityGroupsQuery } from '@shared/api'\nimport { TableGroupBy } from '../context'\n\ntype GetTaskGroupsProps = {\n groupBy?: TableGroupBy\n projectName: string\n}\n\nexport const useGetTaskGroups = ({ groupBy, projectName }: GetTaskGroupsProps) => {\n // GROUPING\n // 1. get groups data\n // 2. add that filter to the combined filter\n // 3. sort by that filter\n const groupingKey = groupBy?.id || ''\n const { data: { groups: taskGroups = [] } = {}, error } = useGetEntityGroupsQuery(\n { projectName, entityType: 'task', groupingKey: groupingKey, empty: true },\n { skip: !groupBy?.id },\n )\n\n return {\n taskGroups,\n error,\n }\n}\n"],"names":["useGetEntityGroupsQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,MAAM,mBAAmB,CAAC,EAAE,SAAS,kBAAsC;AAK1E,QAAA,eAAc,mCAAS,OAAM;AAC7B,QAAA,EAAE,MAAM,EAAE,QAAQ,aAAa,CAAA,MAAO,CAAA,GAAI,MAAA,IAAUA,YAAA;AAAA,IACxD,EAAE,aAAa,YAAY,QAAQ,aAA0B,OAAO,KAAK;AAAA,IACzE,EAAE,MAAM,EAAC,mCAAS,IAAG;AAAA,EACvB;AAEO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;;"}
@@ -65,6 +65,8 @@ import "../../../api/queries/users/updateUsers.es.js";
65
65
  import "../../../api/queries/watchers/getWatchers.es.js";
66
66
  import "../../../api/queries/permissions/getPermissions.es.js";
67
67
  import { useGetEntityGroupsQuery } from "../../../api/queries/grouping/getGrouping.es.js";
68
+ import "../../../api/queries/versions/updateVersions.es.js";
69
+ import "../../../api/queries/products/createProduct.es.js";
68
70
  const useGetTaskGroups = ({ groupBy, projectName }) => {
69
71
  const groupingKey = (groupBy == null ? void 0 : groupBy.id) || "";
70
72
  const { data: { groups: taskGroups = [] } = {}, error } = useGetEntityGroupsQuery(
@@ -1 +1 @@
1
- {"version":3,"file":"useGetTaskGroups.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetTaskGroups.ts"],"sourcesContent":["import { useGetEntityGroupsQuery } from '@shared/api'\nimport { TableGroupBy } from '../context'\n\ntype GetTaskGroupsProps = {\n groupBy?: TableGroupBy\n projectName: string\n}\n\nexport const useGetTaskGroups = ({ groupBy, projectName }: GetTaskGroupsProps) => {\n // GROUPING\n // 1. get groups data\n // 2. add that filter to the combined filter\n // 3. sort by that filter\n const groupingKey = groupBy?.id || ''\n const { data: { groups: taskGroups = [] } = {}, error } = useGetEntityGroupsQuery(\n { projectName, entityType: 'task', groupingKey: groupingKey, empty: true },\n { skip: !groupBy?.id },\n )\n\n return {\n taskGroups,\n error,\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,MAAM,mBAAmB,CAAC,EAAE,SAAS,kBAAsC;AAK1E,QAAA,eAAc,mCAAS,OAAM;AAC7B,QAAA,EAAE,MAAM,EAAE,QAAQ,aAAa,CAAA,MAAO,CAAA,GAAI,MAAA,IAAU;AAAA,IACxD,EAAE,aAAa,YAAY,QAAQ,aAA0B,OAAO,KAAK;AAAA,IACzE,EAAE,MAAM,EAAC,mCAAS,IAAG;AAAA,EACvB;AAEO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"useGetTaskGroups.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useGetTaskGroups.ts"],"sourcesContent":["import { useGetEntityGroupsQuery } from '@shared/api'\nimport { TableGroupBy } from '../context'\n\ntype GetTaskGroupsProps = {\n groupBy?: TableGroupBy\n projectName: string\n}\n\nexport const useGetTaskGroups = ({ groupBy, projectName }: GetTaskGroupsProps) => {\n // GROUPING\n // 1. get groups data\n // 2. add that filter to the combined filter\n // 3. sort by that filter\n const groupingKey = groupBy?.id || ''\n const { data: { groups: taskGroups = [] } = {}, error } = useGetEntityGroupsQuery(\n { projectName, entityType: 'task', groupingKey: groupingKey, empty: true },\n { skip: !groupBy?.id },\n )\n\n return {\n taskGroups,\n error,\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,MAAM,mBAAmB,CAAC,EAAE,SAAS,kBAAsC;AAK1E,QAAA,eAAc,mCAAS,OAAM;AAC7B,QAAA,EAAE,MAAM,EAAE,QAAQ,aAAa,CAAA,MAAO,CAAA,GAAI,MAAA,IAAU;AAAA,IACxD,EAAE,aAAa,YAAY,QAAQ,aAA0B,OAAO,KAAK;AAAA,IACzE,EAAE,MAAM,EAAC,mCAAS,IAAG;AAAA,EACvB;AAEO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;"}
@@ -19,7 +19,7 @@ const useHistory = (maxHistorySize = 50) => {
19
19
  (acc, entity) => {
20
20
  if (typeof entity === "function") {
21
21
  acc[2].push(entity);
22
- } else if (entity.wasInherited && entity.folderId) {
22
+ } else if (entity.wasInherited) {
23
23
  acc[1].push({
24
24
  entityId: entity.id,
25
25
  entityType: entity.type,
@@ -1 +1 @@
1
- {"version":3,"file":"useHistory.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useHistory.ts"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport { EntityUpdate, InheritFromParentEntity } from './useUpdateTableData'\n\nexport interface HistoryEntityUpdate extends EntityUpdate {\n ownAttrib: string[]\n folderId?: string\n wasInherited?: boolean\n}\n\ninterface HistoryEntry {\n undo: (HistoryEntityUpdate | HistoryCustomCallback)[]\n redo: (HistoryEntityUpdate | HistoryCustomCallback)[]\n timestamp: number\n}\n\ntype SplitEntitiesByInherited = [EntityUpdate[], InheritFromParentEntity[], HistoryCustomCallback[]]\n\ntype HistoryCustomCallback = () => void\n\nexport interface UseHistoryReturn {\n pushHistory: (\n undo: (HistoryEntityUpdate | HistoryCustomCallback)[],\n redo: (HistoryEntityUpdate | HistoryCustomCallback)[],\n ) => void\n undo: () => SplitEntitiesByInherited | null\n redo: () => SplitEntitiesByInherited | null\n canUndo: boolean\n canRedo: boolean\n clearHistory: () => void\n removeHistoryEntries: (count: number) => void\n}\n\nconst useHistory = (maxHistorySize = 50): UseHistoryReturn => {\n const [past, setPast] = useState<HistoryEntry[]>([])\n const [future, setFuture] = useState<HistoryEntry[]>([])\n\n const pushHistory: UseHistoryReturn['pushHistory'] = useCallback(\n (undo, redo) => {\n if (!undo.length) return\n setPast((prev) => {\n const updated = [...prev, { undo, redo, timestamp: Date.now() }]\n return updated.length > maxHistorySize\n ? updated.slice(updated.length - maxHistorySize)\n : updated\n })\n setFuture([])\n },\n [maxHistorySize],\n )\n\n // Process actions by type: regular updates, inheritance, and custom callbacks\n const processHistoryActions = (\n entities: (HistoryEntityUpdate | HistoryCustomCallback)[],\n ): SplitEntitiesByInherited => {\n return entities.reduce(\n (acc, entity) => {\n if (typeof entity === 'function') {\n acc[2].push(entity)\n } else if (entity.wasInherited && entity.folderId) {\n acc[1].push({\n entityId: entity.id,\n entityType: entity.type,\n folderId: entity.folderId,\n attribs: [entity.field],\n ownAttrib: entity.ownAttrib,\n rowId: entity.rowId,\n })\n } else {\n acc[0].push(entity)\n }\n return acc\n },\n [[], [], []] as SplitEntitiesByInherited,\n )\n }\n\n const undo = useCallback(() => {\n if (past.length === 0) return null\n const newPast = [...past]\n const last = newPast.pop()!\n setPast(newPast)\n setFuture((f) => [...f, last])\n\n return processHistoryActions(last.undo)\n }, [past])\n\n const redo = useCallback(() => {\n if (future.length === 0) return null\n const newFuture = [...future]\n const next = newFuture.pop()!\n setFuture(newFuture)\n setPast((p) => [...p, next])\n return processHistoryActions(next.redo)\n }, [future])\n\n // function to remove x number of entries from the history undo/redo stacks\n const removeHistoryEntries = useCallback((count: number) => {\n setPast((prev) => prev.slice(0, Math.max(0, prev.length - count)))\n setFuture((prev) => prev.slice(0, Math.max(0, prev.length - count)))\n }, [])\n\n const clearHistory = useCallback(() => {\n setPast([])\n setFuture([])\n }, [])\n\n return {\n pushHistory,\n undo,\n redo,\n canUndo: past.length > 0,\n canRedo: future.length > 0,\n clearHistory,\n removeHistoryEntries,\n }\n}\n\nexport default useHistory\n"],"names":["useState","useCallback","undo","redo"],"mappings":";;AAgCM,MAAA,aAAa,CAAC,iBAAiB,OAAyB;AAC5D,QAAM,CAAC,MAAM,OAAO,IAAIA,MAAAA,SAAyB,CAAA,CAAE;AACnD,QAAM,CAAC,QAAQ,SAAS,IAAIA,MAAAA,SAAyB,CAAA,CAAE;AAEvD,QAAM,cAA+CC,MAAA;AAAA,IACnD,CAACC,OAAMC,UAAS;AACV,UAAA,CAACD,MAAK,OAAQ;AAClB,cAAQ,CAAC,SAAS;AAChB,cAAM,UAAU,CAAC,GAAG,MAAM,EAAE,MAAAA,OAAM,MAAAC,OAAM,WAAW,KAAK,OAAO;AACxD,eAAA,QAAQ,SAAS,iBACpB,QAAQ,MAAM,QAAQ,SAAS,cAAc,IAC7C;AAAA,MAAA,CACL;AACD,gBAAU,CAAA,CAAE;AAAA,IACd;AAAA,IACA,CAAC,cAAc;AAAA,EACjB;AAGM,QAAA,wBAAwB,CAC5B,aAC6B;AAC7B,WAAO,SAAS;AAAA,MACd,CAAC,KAAK,WAAW;AACX,YAAA,OAAO,WAAW,YAAY;AAC5B,cAAA,CAAC,EAAE,KAAK,MAAM;AAAA,QACT,WAAA,OAAO,gBAAgB,OAAO,UAAU;AAC7C,cAAA,CAAC,EAAE,KAAK;AAAA,YACV,UAAU,OAAO;AAAA,YACjB,YAAY,OAAO;AAAA,YACnB,UAAU,OAAO;AAAA,YACjB,SAAS,CAAC,OAAO,KAAK;AAAA,YACtB,WAAW,OAAO;AAAA,YAClB,OAAO,OAAO;AAAA,UAAA,CACf;AAAA,QAAA,OACI;AACD,cAAA,CAAC,EAAE,KAAK,MAAM;AAAA,QAAA;AAEb,eAAA;AAAA,MACT;AAAA,MACA,CAAC,CAAA,GAAI,CAAA,GAAI,CAAE,CAAA;AAAA,IACb;AAAA,EACF;AAEM,QAAA,OAAOF,MAAAA,YAAY,MAAM;AACzB,QAAA,KAAK,WAAW,EAAU,QAAA;AACxB,UAAA,UAAU,CAAC,GAAG,IAAI;AAClB,UAAA,OAAO,QAAQ,IAAI;AACzB,YAAQ,OAAO;AACf,cAAU,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;AAEtB,WAAA,sBAAsB,KAAK,IAAI;AAAA,EAAA,GACrC,CAAC,IAAI,CAAC;AAEH,QAAA,OAAOA,MAAAA,YAAY,MAAM;AACzB,QAAA,OAAO,WAAW,EAAU,QAAA;AAC1B,UAAA,YAAY,CAAC,GAAG,MAAM;AACtB,UAAA,OAAO,UAAU,IAAI;AAC3B,cAAU,SAAS;AACnB,YAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;AACpB,WAAA,sBAAsB,KAAK,IAAI;AAAA,EAAA,GACrC,CAAC,MAAM,CAAC;AAGL,QAAA,uBAAuBA,kBAAY,CAAC,UAAkB;AAC1D,YAAQ,CAAC,SAAS,KAAK,MAAM,GAAG,KAAK,IAAI,GAAG,KAAK,SAAS,KAAK,CAAC,CAAC;AACjE,cAAU,CAAC,SAAS,KAAK,MAAM,GAAG,KAAK,IAAI,GAAG,KAAK,SAAS,KAAK,CAAC,CAAC;AAAA,EACrE,GAAG,EAAE;AAEC,QAAA,eAAeA,MAAAA,YAAY,MAAM;AACrC,YAAQ,CAAA,CAAE;AACV,cAAU,CAAA,CAAE;AAAA,EACd,GAAG,EAAE;AAEE,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,KAAK,SAAS;AAAA,IACvB,SAAS,OAAO,SAAS;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AACF;;"}
1
+ {"version":3,"file":"useHistory.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useHistory.ts"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport { EntityUpdate, InheritFromParentEntity } from './useUpdateTableData'\n\nexport interface HistoryEntityUpdate extends EntityUpdate {\n ownAttrib: string[]\n folderId?: string\n wasInherited?: boolean\n}\n\ninterface HistoryEntry {\n undo: (HistoryEntityUpdate | HistoryCustomCallback)[]\n redo: (HistoryEntityUpdate | HistoryCustomCallback)[]\n timestamp: number\n}\n\ntype SplitEntitiesByInherited = [EntityUpdate[], InheritFromParentEntity[], HistoryCustomCallback[]]\n\ntype HistoryCustomCallback = () => void\n\nexport interface UseHistoryReturn {\n pushHistory: (\n undo: (HistoryEntityUpdate | HistoryCustomCallback)[],\n redo: (HistoryEntityUpdate | HistoryCustomCallback)[],\n ) => void\n undo: () => SplitEntitiesByInherited | null\n redo: () => SplitEntitiesByInherited | null\n canUndo: boolean\n canRedo: boolean\n clearHistory: () => void\n removeHistoryEntries: (count: number) => void\n}\n\nconst useHistory = (maxHistorySize = 50): UseHistoryReturn => {\n const [past, setPast] = useState<HistoryEntry[]>([])\n const [future, setFuture] = useState<HistoryEntry[]>([])\n\n const pushHistory: UseHistoryReturn['pushHistory'] = useCallback(\n (undo, redo) => {\n if (!undo.length) return\n setPast((prev) => {\n const updated = [...prev, { undo, redo, timestamp: Date.now() }]\n return updated.length > maxHistorySize\n ? updated.slice(updated.length - maxHistorySize)\n : updated\n })\n setFuture([])\n },\n [maxHistorySize],\n )\n\n // Process actions by type: regular updates, inheritance, and custom callbacks\n const processHistoryActions = (\n entities: (HistoryEntityUpdate | HistoryCustomCallback)[],\n ): SplitEntitiesByInherited => {\n return entities.reduce(\n (acc, entity) => {\n if (typeof entity === 'function') {\n acc[2].push(entity)\n } else if (entity.wasInherited) {\n acc[1].push({\n entityId: entity.id,\n entityType: entity.type,\n folderId: entity.folderId,\n attribs: [entity.field],\n ownAttrib: entity.ownAttrib,\n rowId: entity.rowId,\n })\n } else {\n acc[0].push(entity)\n }\n return acc\n },\n [[], [], []] as SplitEntitiesByInherited,\n )\n }\n\n const undo = useCallback(() => {\n if (past.length === 0) return null\n const newPast = [...past]\n const last = newPast.pop()!\n setPast(newPast)\n setFuture((f) => [...f, last])\n\n return processHistoryActions(last.undo)\n }, [past])\n\n const redo = useCallback(() => {\n if (future.length === 0) return null\n const newFuture = [...future]\n const next = newFuture.pop()!\n setFuture(newFuture)\n setPast((p) => [...p, next])\n return processHistoryActions(next.redo)\n }, [future])\n\n // function to remove x number of entries from the history undo/redo stacks\n const removeHistoryEntries = useCallback((count: number) => {\n setPast((prev) => prev.slice(0, Math.max(0, prev.length - count)))\n setFuture((prev) => prev.slice(0, Math.max(0, prev.length - count)))\n }, [])\n\n const clearHistory = useCallback(() => {\n setPast([])\n setFuture([])\n }, [])\n\n return {\n pushHistory,\n undo,\n redo,\n canUndo: past.length > 0,\n canRedo: future.length > 0,\n clearHistory,\n removeHistoryEntries,\n }\n}\n\nexport default useHistory\n"],"names":["useState","useCallback","undo","redo"],"mappings":";;AAgCM,MAAA,aAAa,CAAC,iBAAiB,OAAyB;AAC5D,QAAM,CAAC,MAAM,OAAO,IAAIA,MAAAA,SAAyB,CAAA,CAAE;AACnD,QAAM,CAAC,QAAQ,SAAS,IAAIA,MAAAA,SAAyB,CAAA,CAAE;AAEvD,QAAM,cAA+CC,MAAA;AAAA,IACnD,CAACC,OAAMC,UAAS;AACV,UAAA,CAACD,MAAK,OAAQ;AAClB,cAAQ,CAAC,SAAS;AAChB,cAAM,UAAU,CAAC,GAAG,MAAM,EAAE,MAAAA,OAAM,MAAAC,OAAM,WAAW,KAAK,OAAO;AACxD,eAAA,QAAQ,SAAS,iBACpB,QAAQ,MAAM,QAAQ,SAAS,cAAc,IAC7C;AAAA,MAAA,CACL;AACD,gBAAU,CAAA,CAAE;AAAA,IACd;AAAA,IACA,CAAC,cAAc;AAAA,EACjB;AAGM,QAAA,wBAAwB,CAC5B,aAC6B;AAC7B,WAAO,SAAS;AAAA,MACd,CAAC,KAAK,WAAW;AACX,YAAA,OAAO,WAAW,YAAY;AAC5B,cAAA,CAAC,EAAE,KAAK,MAAM;AAAA,QAAA,WACT,OAAO,cAAc;AAC1B,cAAA,CAAC,EAAE,KAAK;AAAA,YACV,UAAU,OAAO;AAAA,YACjB,YAAY,OAAO;AAAA,YACnB,UAAU,OAAO;AAAA,YACjB,SAAS,CAAC,OAAO,KAAK;AAAA,YACtB,WAAW,OAAO;AAAA,YAClB,OAAO,OAAO;AAAA,UAAA,CACf;AAAA,QAAA,OACI;AACD,cAAA,CAAC,EAAE,KAAK,MAAM;AAAA,QAAA;AAEb,eAAA;AAAA,MACT;AAAA,MACA,CAAC,CAAA,GAAI,CAAA,GAAI,CAAE,CAAA;AAAA,IACb;AAAA,EACF;AAEM,QAAA,OAAOF,MAAAA,YAAY,MAAM;AACzB,QAAA,KAAK,WAAW,EAAU,QAAA;AACxB,UAAA,UAAU,CAAC,GAAG,IAAI;AAClB,UAAA,OAAO,QAAQ,IAAI;AACzB,YAAQ,OAAO;AACf,cAAU,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;AAEtB,WAAA,sBAAsB,KAAK,IAAI;AAAA,EAAA,GACrC,CAAC,IAAI,CAAC;AAEH,QAAA,OAAOA,MAAAA,YAAY,MAAM;AACzB,QAAA,OAAO,WAAW,EAAU,QAAA;AAC1B,UAAA,YAAY,CAAC,GAAG,MAAM;AACtB,UAAA,OAAO,UAAU,IAAI;AAC3B,cAAU,SAAS;AACnB,YAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;AACpB,WAAA,sBAAsB,KAAK,IAAI;AAAA,EAAA,GACrC,CAAC,MAAM,CAAC;AAGL,QAAA,uBAAuBA,kBAAY,CAAC,UAAkB;AAC1D,YAAQ,CAAC,SAAS,KAAK,MAAM,GAAG,KAAK,IAAI,GAAG,KAAK,SAAS,KAAK,CAAC,CAAC;AACjE,cAAU,CAAC,SAAS,KAAK,MAAM,GAAG,KAAK,IAAI,GAAG,KAAK,SAAS,KAAK,CAAC,CAAC;AAAA,EACrE,GAAG,EAAE;AAEC,QAAA,eAAeA,MAAAA,YAAY,MAAM;AACrC,YAAQ,CAAA,CAAE;AACV,cAAU,CAAA,CAAE;AAAA,EACd,GAAG,EAAE;AAEE,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,KAAK,SAAS;AAAA,IACvB,SAAS,OAAO,SAAS;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AACF;;"}
@@ -18,7 +18,7 @@ const useHistory = (maxHistorySize = 50) => {
18
18
  (acc, entity) => {
19
19
  if (typeof entity === "function") {
20
20
  acc[2].push(entity);
21
- } else if (entity.wasInherited && entity.folderId) {
21
+ } else if (entity.wasInherited) {
22
22
  acc[1].push({
23
23
  entityId: entity.id,
24
24
  entityType: entity.type,
@@ -1 +1 @@
1
- {"version":3,"file":"useHistory.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useHistory.ts"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport { EntityUpdate, InheritFromParentEntity } from './useUpdateTableData'\n\nexport interface HistoryEntityUpdate extends EntityUpdate {\n ownAttrib: string[]\n folderId?: string\n wasInherited?: boolean\n}\n\ninterface HistoryEntry {\n undo: (HistoryEntityUpdate | HistoryCustomCallback)[]\n redo: (HistoryEntityUpdate | HistoryCustomCallback)[]\n timestamp: number\n}\n\ntype SplitEntitiesByInherited = [EntityUpdate[], InheritFromParentEntity[], HistoryCustomCallback[]]\n\ntype HistoryCustomCallback = () => void\n\nexport interface UseHistoryReturn {\n pushHistory: (\n undo: (HistoryEntityUpdate | HistoryCustomCallback)[],\n redo: (HistoryEntityUpdate | HistoryCustomCallback)[],\n ) => void\n undo: () => SplitEntitiesByInherited | null\n redo: () => SplitEntitiesByInherited | null\n canUndo: boolean\n canRedo: boolean\n clearHistory: () => void\n removeHistoryEntries: (count: number) => void\n}\n\nconst useHistory = (maxHistorySize = 50): UseHistoryReturn => {\n const [past, setPast] = useState<HistoryEntry[]>([])\n const [future, setFuture] = useState<HistoryEntry[]>([])\n\n const pushHistory: UseHistoryReturn['pushHistory'] = useCallback(\n (undo, redo) => {\n if (!undo.length) return\n setPast((prev) => {\n const updated = [...prev, { undo, redo, timestamp: Date.now() }]\n return updated.length > maxHistorySize\n ? updated.slice(updated.length - maxHistorySize)\n : updated\n })\n setFuture([])\n },\n [maxHistorySize],\n )\n\n // Process actions by type: regular updates, inheritance, and custom callbacks\n const processHistoryActions = (\n entities: (HistoryEntityUpdate | HistoryCustomCallback)[],\n ): SplitEntitiesByInherited => {\n return entities.reduce(\n (acc, entity) => {\n if (typeof entity === 'function') {\n acc[2].push(entity)\n } else if (entity.wasInherited && entity.folderId) {\n acc[1].push({\n entityId: entity.id,\n entityType: entity.type,\n folderId: entity.folderId,\n attribs: [entity.field],\n ownAttrib: entity.ownAttrib,\n rowId: entity.rowId,\n })\n } else {\n acc[0].push(entity)\n }\n return acc\n },\n [[], [], []] as SplitEntitiesByInherited,\n )\n }\n\n const undo = useCallback(() => {\n if (past.length === 0) return null\n const newPast = [...past]\n const last = newPast.pop()!\n setPast(newPast)\n setFuture((f) => [...f, last])\n\n return processHistoryActions(last.undo)\n }, [past])\n\n const redo = useCallback(() => {\n if (future.length === 0) return null\n const newFuture = [...future]\n const next = newFuture.pop()!\n setFuture(newFuture)\n setPast((p) => [...p, next])\n return processHistoryActions(next.redo)\n }, [future])\n\n // function to remove x number of entries from the history undo/redo stacks\n const removeHistoryEntries = useCallback((count: number) => {\n setPast((prev) => prev.slice(0, Math.max(0, prev.length - count)))\n setFuture((prev) => prev.slice(0, Math.max(0, prev.length - count)))\n }, [])\n\n const clearHistory = useCallback(() => {\n setPast([])\n setFuture([])\n }, [])\n\n return {\n pushHistory,\n undo,\n redo,\n canUndo: past.length > 0,\n canRedo: future.length > 0,\n clearHistory,\n removeHistoryEntries,\n }\n}\n\nexport default useHistory\n"],"names":["undo","redo"],"mappings":";AAgCM,MAAA,aAAa,CAAC,iBAAiB,OAAyB;AAC5D,QAAM,CAAC,MAAM,OAAO,IAAI,SAAyB,CAAA,CAAE;AACnD,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAyB,CAAA,CAAE;AAEvD,QAAM,cAA+C;AAAA,IACnD,CAACA,OAAMC,UAAS;AACV,UAAA,CAACD,MAAK,OAAQ;AAClB,cAAQ,CAAC,SAAS;AAChB,cAAM,UAAU,CAAC,GAAG,MAAM,EAAE,MAAAA,OAAM,MAAAC,OAAM,WAAW,KAAK,OAAO;AACxD,eAAA,QAAQ,SAAS,iBACpB,QAAQ,MAAM,QAAQ,SAAS,cAAc,IAC7C;AAAA,MAAA,CACL;AACD,gBAAU,CAAA,CAAE;AAAA,IACd;AAAA,IACA,CAAC,cAAc;AAAA,EACjB;AAGM,QAAA,wBAAwB,CAC5B,aAC6B;AAC7B,WAAO,SAAS;AAAA,MACd,CAAC,KAAK,WAAW;AACX,YAAA,OAAO,WAAW,YAAY;AAC5B,cAAA,CAAC,EAAE,KAAK,MAAM;AAAA,QACT,WAAA,OAAO,gBAAgB,OAAO,UAAU;AAC7C,cAAA,CAAC,EAAE,KAAK;AAAA,YACV,UAAU,OAAO;AAAA,YACjB,YAAY,OAAO;AAAA,YACnB,UAAU,OAAO;AAAA,YACjB,SAAS,CAAC,OAAO,KAAK;AAAA,YACtB,WAAW,OAAO;AAAA,YAClB,OAAO,OAAO;AAAA,UAAA,CACf;AAAA,QAAA,OACI;AACD,cAAA,CAAC,EAAE,KAAK,MAAM;AAAA,QAAA;AAEb,eAAA;AAAA,MACT;AAAA,MACA,CAAC,CAAA,GAAI,CAAA,GAAI,CAAE,CAAA;AAAA,IACb;AAAA,EACF;AAEM,QAAA,OAAO,YAAY,MAAM;AACzB,QAAA,KAAK,WAAW,EAAU,QAAA;AACxB,UAAA,UAAU,CAAC,GAAG,IAAI;AAClB,UAAA,OAAO,QAAQ,IAAI;AACzB,YAAQ,OAAO;AACf,cAAU,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;AAEtB,WAAA,sBAAsB,KAAK,IAAI;AAAA,EAAA,GACrC,CAAC,IAAI,CAAC;AAEH,QAAA,OAAO,YAAY,MAAM;AACzB,QAAA,OAAO,WAAW,EAAU,QAAA;AAC1B,UAAA,YAAY,CAAC,GAAG,MAAM;AACtB,UAAA,OAAO,UAAU,IAAI;AAC3B,cAAU,SAAS;AACnB,YAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;AACpB,WAAA,sBAAsB,KAAK,IAAI;AAAA,EAAA,GACrC,CAAC,MAAM,CAAC;AAGL,QAAA,uBAAuB,YAAY,CAAC,UAAkB;AAC1D,YAAQ,CAAC,SAAS,KAAK,MAAM,GAAG,KAAK,IAAI,GAAG,KAAK,SAAS,KAAK,CAAC,CAAC;AACjE,cAAU,CAAC,SAAS,KAAK,MAAM,GAAG,KAAK,IAAI,GAAG,KAAK,SAAS,KAAK,CAAC,CAAC;AAAA,EACrE,GAAG,EAAE;AAEC,QAAA,eAAe,YAAY,MAAM;AACrC,YAAQ,CAAA,CAAE;AACV,cAAU,CAAA,CAAE;AAAA,EACd,GAAG,EAAE;AAEE,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,KAAK,SAAS;AAAA,IACvB,SAAS,OAAO,SAAS;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"useHistory.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useHistory.ts"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport { EntityUpdate, InheritFromParentEntity } from './useUpdateTableData'\n\nexport interface HistoryEntityUpdate extends EntityUpdate {\n ownAttrib: string[]\n folderId?: string\n wasInherited?: boolean\n}\n\ninterface HistoryEntry {\n undo: (HistoryEntityUpdate | HistoryCustomCallback)[]\n redo: (HistoryEntityUpdate | HistoryCustomCallback)[]\n timestamp: number\n}\n\ntype SplitEntitiesByInherited = [EntityUpdate[], InheritFromParentEntity[], HistoryCustomCallback[]]\n\ntype HistoryCustomCallback = () => void\n\nexport interface UseHistoryReturn {\n pushHistory: (\n undo: (HistoryEntityUpdate | HistoryCustomCallback)[],\n redo: (HistoryEntityUpdate | HistoryCustomCallback)[],\n ) => void\n undo: () => SplitEntitiesByInherited | null\n redo: () => SplitEntitiesByInherited | null\n canUndo: boolean\n canRedo: boolean\n clearHistory: () => void\n removeHistoryEntries: (count: number) => void\n}\n\nconst useHistory = (maxHistorySize = 50): UseHistoryReturn => {\n const [past, setPast] = useState<HistoryEntry[]>([])\n const [future, setFuture] = useState<HistoryEntry[]>([])\n\n const pushHistory: UseHistoryReturn['pushHistory'] = useCallback(\n (undo, redo) => {\n if (!undo.length) return\n setPast((prev) => {\n const updated = [...prev, { undo, redo, timestamp: Date.now() }]\n return updated.length > maxHistorySize\n ? updated.slice(updated.length - maxHistorySize)\n : updated\n })\n setFuture([])\n },\n [maxHistorySize],\n )\n\n // Process actions by type: regular updates, inheritance, and custom callbacks\n const processHistoryActions = (\n entities: (HistoryEntityUpdate | HistoryCustomCallback)[],\n ): SplitEntitiesByInherited => {\n return entities.reduce(\n (acc, entity) => {\n if (typeof entity === 'function') {\n acc[2].push(entity)\n } else if (entity.wasInherited) {\n acc[1].push({\n entityId: entity.id,\n entityType: entity.type,\n folderId: entity.folderId,\n attribs: [entity.field],\n ownAttrib: entity.ownAttrib,\n rowId: entity.rowId,\n })\n } else {\n acc[0].push(entity)\n }\n return acc\n },\n [[], [], []] as SplitEntitiesByInherited,\n )\n }\n\n const undo = useCallback(() => {\n if (past.length === 0) return null\n const newPast = [...past]\n const last = newPast.pop()!\n setPast(newPast)\n setFuture((f) => [...f, last])\n\n return processHistoryActions(last.undo)\n }, [past])\n\n const redo = useCallback(() => {\n if (future.length === 0) return null\n const newFuture = [...future]\n const next = newFuture.pop()!\n setFuture(newFuture)\n setPast((p) => [...p, next])\n return processHistoryActions(next.redo)\n }, [future])\n\n // function to remove x number of entries from the history undo/redo stacks\n const removeHistoryEntries = useCallback((count: number) => {\n setPast((prev) => prev.slice(0, Math.max(0, prev.length - count)))\n setFuture((prev) => prev.slice(0, Math.max(0, prev.length - count)))\n }, [])\n\n const clearHistory = useCallback(() => {\n setPast([])\n setFuture([])\n }, [])\n\n return {\n pushHistory,\n undo,\n redo,\n canUndo: past.length > 0,\n canRedo: future.length > 0,\n clearHistory,\n removeHistoryEntries,\n }\n}\n\nexport default useHistory\n"],"names":["undo","redo"],"mappings":";AAgCM,MAAA,aAAa,CAAC,iBAAiB,OAAyB;AAC5D,QAAM,CAAC,MAAM,OAAO,IAAI,SAAyB,CAAA,CAAE;AACnD,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAyB,CAAA,CAAE;AAEvD,QAAM,cAA+C;AAAA,IACnD,CAACA,OAAMC,UAAS;AACV,UAAA,CAACD,MAAK,OAAQ;AAClB,cAAQ,CAAC,SAAS;AAChB,cAAM,UAAU,CAAC,GAAG,MAAM,EAAE,MAAAA,OAAM,MAAAC,OAAM,WAAW,KAAK,OAAO;AACxD,eAAA,QAAQ,SAAS,iBACpB,QAAQ,MAAM,QAAQ,SAAS,cAAc,IAC7C;AAAA,MAAA,CACL;AACD,gBAAU,CAAA,CAAE;AAAA,IACd;AAAA,IACA,CAAC,cAAc;AAAA,EACjB;AAGM,QAAA,wBAAwB,CAC5B,aAC6B;AAC7B,WAAO,SAAS;AAAA,MACd,CAAC,KAAK,WAAW;AACX,YAAA,OAAO,WAAW,YAAY;AAC5B,cAAA,CAAC,EAAE,KAAK,MAAM;AAAA,QAAA,WACT,OAAO,cAAc;AAC1B,cAAA,CAAC,EAAE,KAAK;AAAA,YACV,UAAU,OAAO;AAAA,YACjB,YAAY,OAAO;AAAA,YACnB,UAAU,OAAO;AAAA,YACjB,SAAS,CAAC,OAAO,KAAK;AAAA,YACtB,WAAW,OAAO;AAAA,YAClB,OAAO,OAAO;AAAA,UAAA,CACf;AAAA,QAAA,OACI;AACD,cAAA,CAAC,EAAE,KAAK,MAAM;AAAA,QAAA;AAEb,eAAA;AAAA,MACT;AAAA,MACA,CAAC,CAAA,GAAI,CAAA,GAAI,CAAE,CAAA;AAAA,IACb;AAAA,EACF;AAEM,QAAA,OAAO,YAAY,MAAM;AACzB,QAAA,KAAK,WAAW,EAAU,QAAA;AACxB,UAAA,UAAU,CAAC,GAAG,IAAI;AAClB,UAAA,OAAO,QAAQ,IAAI;AACzB,YAAQ,OAAO;AACf,cAAU,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;AAEtB,WAAA,sBAAsB,KAAK,IAAI;AAAA,EAAA,GACrC,CAAC,IAAI,CAAC;AAEH,QAAA,OAAO,YAAY,MAAM;AACzB,QAAA,OAAO,WAAW,EAAU,QAAA;AAC1B,UAAA,YAAY,CAAC,GAAG,MAAM;AACtB,UAAA,OAAO,UAAU,IAAI;AAC3B,cAAU,SAAS;AACnB,YAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;AACpB,WAAA,sBAAsB,KAAK,IAAI;AAAA,EAAA,GACrC,CAAC,MAAM,CAAC;AAGL,QAAA,uBAAuB,YAAY,CAAC,UAAkB;AAC1D,YAAQ,CAAC,SAAS,KAAK,MAAM,GAAG,KAAK,IAAI,GAAG,KAAK,SAAS,KAAK,CAAC,CAAC;AACjE,cAAU,CAAC,SAAS,KAAK,MAAM,GAAG,KAAK,IAAI,GAAG,KAAK,SAAS,KAAK,CAAC,CAAC;AAAA,EACrE,GAAG,EAAE;AAEC,QAAA,eAAe,YAAY,MAAM;AACrC,YAAQ,CAAA,CAAE;AACV,cAAU,CAAA,CAAE;AAAA,EACd,GAAG,EAAE;AAEE,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,KAAK,SAAS;AAAA,IACvB,SAAS,OAAO,SAAS;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AACF;"}
@@ -4,18 +4,27 @@ const SelectionCellsContext = require("../context/SelectionCellsContext.cjs.js")
4
4
  const CellEditingContext = require("../context/CellEditingContext.cjs.js");
5
5
  const cellUtils = require("../utils/cellUtils.cjs.js");
6
6
  const ProjectTableContext = require("../context/ProjectTableContext.cjs.js");
7
+ require("@ynput/ayon-react-components");
8
+ require("lodash");
9
+ require("react-toastify");
10
+ require("../../../util/pubsub.cjs.js");
11
+ const getEntityViewerIds = require("../utils/getEntityViewerIds.cjs.js");
7
12
  function useKeyboardNavigation() {
8
- const { attribFields } = ProjectTableContext.useProjectTableContext();
13
+ const { attribFields, getEntityById, onOpenPlayer, playerOpen } = ProjectTableContext.useProjectTableContext();
9
14
  const { focusedCellId, gridMap, selectCell, focusCell, clearSelection, setFocusedCellId } = SelectionCellsContext.useSelectionCellsContext();
10
15
  const { setEditingCellId, editingCellId } = CellEditingContext.useCellEditing();
11
16
  const handleKeyDown = React.useCallback(
12
17
  (e) => {
13
18
  var _a;
14
19
  const target = e.target;
15
- if (!(target == null ? void 0 : target.closest("table"))) return;
20
+ if (!(target == null ? void 0 : target.closest("table"))) {
21
+ console.log("Cell key event: target is not inside a table");
22
+ return;
23
+ }
16
24
  if (target.tagName === "INPUT" || target.tagName === "TEXTAREA" || target.isContentEditable || target.getAttribute("role") === "textbox" || target.tagName === "LI") {
17
25
  return;
18
26
  }
27
+ if (playerOpen && e.key !== "ArrowDown" && e.key !== "ArrowUp") return;
19
28
  if (editingCellId) return;
20
29
  if (!focusedCellId) return;
21
30
  const position = cellUtils.parseCellId(focusedCellId);
@@ -25,6 +34,15 @@ function useKeyboardNavigation() {
25
34
  const colIndex = gridMap.colIdToIndex.get(colId);
26
35
  if (rowIndex === void 0 || colIndex === void 0) return;
27
36
  const isReadOnly = colId.startsWith("attrib_") && ((_a = attribFields.find((a) => a.name === colId.replace("attrib_", ""))) == null ? void 0 : _a.readOnly);
37
+ const openPlayer = (entityId) => {
38
+ if (onOpenPlayer) {
39
+ const entity = getEntityById(entityId);
40
+ if (entity) {
41
+ const targetIds = getEntityViewerIds.getEntityViewierIds(entity);
42
+ onOpenPlayer(targetIds, { quickView: true });
43
+ }
44
+ }
45
+ };
28
46
  switch (e.key) {
29
47
  case "ArrowUp": {
30
48
  e.preventDefault();
@@ -34,6 +52,9 @@ function useKeyboardNavigation() {
34
52
  const newCellId = cellUtils.getCellId(newRowId, colId);
35
53
  selectCell(newCellId, e.shiftKey, e.shiftKey);
36
54
  focusCell(newCellId);
55
+ if (playerOpen) {
56
+ openPlayer(newRowId);
57
+ }
37
58
  }
38
59
  }
39
60
  break;
@@ -45,6 +66,9 @@ function useKeyboardNavigation() {
45
66
  const newCellId = cellUtils.getCellId(newRowId, colId);
46
67
  selectCell(newCellId, e.shiftKey, e.shiftKey);
47
68
  focusCell(newCellId);
69
+ if (playerOpen) {
70
+ openPlayer(newRowId);
71
+ }
48
72
  }
49
73
  break;
50
74
  }
@@ -110,6 +134,10 @@ function useKeyboardNavigation() {
110
134
  }
111
135
  break;
112
136
  }
137
+ case " ": {
138
+ e.preventDefault();
139
+ openPlayer(rowId);
140
+ }
113
141
  }
114
142
  },
115
143
  [
@@ -119,7 +147,9 @@ function useKeyboardNavigation() {
119
147
  focusCell,
120
148
  clearSelection,
121
149
  setEditingCellId,
122
- editingCellId
150
+ editingCellId,
151
+ getEntityById,
152
+ playerOpen
123
153
  ]
124
154
  );
125
155
  React.useEffect(() => {
@@ -135,7 +165,8 @@ function useKeyboardNavigation() {
135
165
  focusCell,
136
166
  clearSelection,
137
167
  setEditingCellId,
138
- editingCellId
168
+ editingCellId,
169
+ playerOpen
139
170
  ]);
140
171
  return {
141
172
  handleKeyDown,
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyboardNavigation.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react'\nimport { useSelectionCellsContext } from '../context/SelectionCellsContext'\nimport { useCellEditing } from '../context/CellEditingContext' // keep for editingCellId/setEditingCellId\nimport { parseCellId, getCellId } from '../utils/cellUtils'\nimport { useProjectTableContext } from '../context/ProjectTableContext'\n\nexport default function useKeyboardNavigation() {\n const { attribFields } = useProjectTableContext()\n\n const { focusedCellId, gridMap, selectCell, focusCell, clearSelection, setFocusedCellId } =\n useSelectionCellsContext()\n\n const { setEditingCellId, editingCellId } = useCellEditing()\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n if (!target?.closest('table')) return\n\n // Skip if event target is an input element or contentEditable\n if (\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.isContentEditable ||\n target.getAttribute('role') === 'textbox' ||\n target.tagName === 'LI'\n ) {\n return\n }\n\n if (editingCellId) return\n\n // Don't handle keyboard events if we don't have a focused cell\n if (!focusedCellId) return\n\n const position = parseCellId(focusedCellId)\n if (!position) return\n\n const { rowId, colId } = position\n const rowIndex = gridMap.rowIdToIndex.get(rowId)\n const colIndex = gridMap.colIdToIndex.get(colId)\n\n if (rowIndex === undefined || colIndex === undefined) return\n\n const isReadOnly =\n colId.startsWith('attrib_') &&\n attribFields.find((a) => a.name === colId.replace('attrib_', ''))?.readOnly\n\n // Handle different keys\n switch (e.key) {\n case 'ArrowUp': {\n e.preventDefault()\n if (rowIndex > 0) {\n const newRowId = gridMap.indexToRowId.get(rowIndex - 1)\n if (newRowId) {\n const newCellId = getCellId(newRowId, colId)\n selectCell(newCellId, e.shiftKey, e.shiftKey)\n focusCell(newCellId)\n }\n }\n break\n }\n case 'ArrowDown': {\n e.preventDefault()\n const newRowId = gridMap.indexToRowId.get(rowIndex + 1)\n if (newRowId) {\n const newCellId = getCellId(newRowId, colId)\n selectCell(newCellId, e.shiftKey, e.shiftKey)\n focusCell(newCellId)\n }\n break\n }\n case 'ArrowLeft': {\n e.preventDefault()\n if (colIndex > 0) {\n const newColId = gridMap.indexToColId.get(colIndex - 1)\n if (newColId) {\n const newCellId = getCellId(rowId, newColId)\n selectCell(newCellId, e.shiftKey, e.shiftKey)\n focusCell(newCellId)\n }\n }\n break\n }\n case 'ArrowRight': {\n e.preventDefault()\n const newColId = gridMap.indexToColId.get(colIndex + 1)\n if (newColId) {\n const newCellId = getCellId(rowId, newColId)\n selectCell(newCellId, e.shiftKey, e.shiftKey)\n focusCell(newCellId)\n }\n break\n }\n case 'Enter': {\n e.preventDefault()\n if (isReadOnly) return\n // Start editing the currently focused cell\n setEditingCellId(focusedCellId)\n break\n }\n case 'Escape': {\n e.preventDefault()\n // Clear selection and stop editing\n clearSelection()\n setEditingCellId(null)\n setFocusedCellId(null)\n break\n }\n case 'Tab': {\n e.preventDefault()\n // Move to next cell (right if no shift, left if shift)\n const nextColIndex = e.shiftKey ? colIndex - 1 : colIndex + 1\n const nextColId = gridMap.indexToColId.get(nextColIndex)\n\n if (nextColId) {\n // Move to next/prev column in same row\n const newCellId = getCellId(rowId, nextColId)\n selectCell(newCellId, false, false)\n focusCell(newCellId)\n } else if (!e.shiftKey && rowIndex < gridMap.rowIdToIndex.size - 1) {\n // Move to first column of next row\n const newRowId = gridMap.indexToRowId.get(rowIndex + 1)\n const firstColId = gridMap.indexToColId.get(0)\n if (newRowId && firstColId) {\n const newCellId = getCellId(newRowId, firstColId)\n selectCell(newCellId, false, false)\n focusCell(newCellId)\n }\n } else if (e.shiftKey && rowIndex > 0) {\n // Move to last column of previous row\n const newRowId = gridMap.indexToRowId.get(rowIndex - 1)\n const lastColId = gridMap.indexToColId.get(gridMap.colIdToIndex.size - 1)\n if (newRowId && lastColId) {\n const newCellId = getCellId(newRowId, lastColId)\n selectCell(newCellId, false, false)\n focusCell(newCellId)\n }\n }\n break\n }\n }\n },\n [\n focusedCellId,\n gridMap,\n selectCell,\n focusCell,\n clearSelection,\n setEditingCellId,\n editingCellId,\n ],\n )\n\n // Attach the keydown event handler to the document\n useEffect(() => {\n document.addEventListener('keydown', handleKeyDown)\n\n // Cleanup the event listener on component unmount\n return () => {\n document.removeEventListener('keydown', handleKeyDown)\n }\n }, [\n handleKeyDown,\n focusedCellId,\n gridMap,\n selectCell,\n focusCell,\n clearSelection,\n setEditingCellId,\n editingCellId,\n ])\n return {\n handleKeyDown,\n focusedCellId,\n gridMap,\n selectCell,\n focusCell,\n clearSelection,\n setEditingCellId,\n editingCellId,\n }\n}\n"],"names":["useProjectTableContext","useSelectionCellsContext","useCellEditing","useCallback","parseCellId","getCellId","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"useKeyboardNavigation.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react'\nimport { useSelectionCellsContext } from '../context/SelectionCellsContext'\nimport { useCellEditing } from '../context/CellEditingContext' // keep for editingCellId/setEditingCellId\nimport { parseCellId, getCellId } from '../utils/cellUtils'\nimport { useProjectTableContext } from '../context/ProjectTableContext'\nimport { getEntityViewierIds } from '../utils'\n\nexport default function useKeyboardNavigation() {\n const { attribFields, getEntityById, onOpenPlayer, playerOpen } = useProjectTableContext()\n\n const { focusedCellId, gridMap, selectCell, focusCell, clearSelection, setFocusedCellId } =\n useSelectionCellsContext()\n\n const { setEditingCellId, editingCellId } = useCellEditing()\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n if (!target?.closest('table')) {\n console.log('Cell key event: target is not inside a table')\n return\n }\n\n // Skip if event target is an input element or contentEditable\n if (\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.isContentEditable ||\n target.getAttribute('role') === 'textbox' ||\n target.tagName === 'LI'\n ) {\n return\n }\n\n // allow keyboard and up and down only if the player is open\n if (playerOpen && e.key !== 'ArrowDown' && e.key !== 'ArrowUp') return\n\n if (editingCellId) return\n\n // Don't handle keyboard events if we don't have a focused cell\n if (!focusedCellId) return\n\n const position = parseCellId(focusedCellId)\n if (!position) return\n\n const { rowId, colId } = position\n const rowIndex = gridMap.rowIdToIndex.get(rowId)\n const colIndex = gridMap.colIdToIndex.get(colId)\n\n if (rowIndex === undefined || colIndex === undefined) return\n\n const isReadOnly =\n colId.startsWith('attrib_') &&\n attribFields.find((a) => a.name === colId.replace('attrib_', ''))?.readOnly\n\n const openPlayer = (entityId: string) => {\n // try to open the player if onOpenPlayer is defined\n if (onOpenPlayer) {\n const entity = getEntityById(entityId)\n if (entity) {\n const targetIds = getEntityViewierIds(entity)\n onOpenPlayer(targetIds, { quickView: true })\n }\n }\n }\n\n // Handle different keys\n switch (e.key) {\n case 'ArrowUp': {\n e.preventDefault()\n if (rowIndex > 0) {\n const newRowId = gridMap.indexToRowId.get(rowIndex - 1)\n if (newRowId) {\n const newCellId = getCellId(newRowId, colId)\n selectCell(newCellId, e.shiftKey, e.shiftKey)\n focusCell(newCellId)\n\n // if the player is open, update with new selected cell\n if (playerOpen) {\n openPlayer(newRowId)\n }\n }\n }\n break\n }\n case 'ArrowDown': {\n e.preventDefault()\n const newRowId = gridMap.indexToRowId.get(rowIndex + 1)\n if (newRowId) {\n const newCellId = getCellId(newRowId, colId)\n selectCell(newCellId, e.shiftKey, e.shiftKey)\n focusCell(newCellId)\n\n // if the player is open, update with new selected cell\n if (playerOpen) {\n openPlayer(newRowId)\n }\n }\n break\n }\n case 'ArrowLeft': {\n e.preventDefault()\n if (colIndex > 0) {\n const newColId = gridMap.indexToColId.get(colIndex - 1)\n if (newColId) {\n const newCellId = getCellId(rowId, newColId)\n selectCell(newCellId, e.shiftKey, e.shiftKey)\n focusCell(newCellId)\n }\n }\n break\n }\n case 'ArrowRight': {\n e.preventDefault()\n const newColId = gridMap.indexToColId.get(colIndex + 1)\n if (newColId) {\n const newCellId = getCellId(rowId, newColId)\n selectCell(newCellId, e.shiftKey, e.shiftKey)\n focusCell(newCellId)\n }\n break\n }\n case 'Enter': {\n e.preventDefault()\n if (isReadOnly) return\n // Start editing the currently focused cell\n setEditingCellId(focusedCellId)\n break\n }\n case 'Escape': {\n e.preventDefault()\n // Clear selection and stop editing\n clearSelection()\n setEditingCellId(null)\n setFocusedCellId(null)\n break\n }\n case 'Tab': {\n e.preventDefault()\n // Move to next cell (right if no shift, left if shift)\n const nextColIndex = e.shiftKey ? colIndex - 1 : colIndex + 1\n const nextColId = gridMap.indexToColId.get(nextColIndex)\n\n if (nextColId) {\n // Move to next/prev column in same row\n const newCellId = getCellId(rowId, nextColId)\n selectCell(newCellId, false, false)\n focusCell(newCellId)\n } else if (!e.shiftKey && rowIndex < gridMap.rowIdToIndex.size - 1) {\n // Move to first column of next row\n const newRowId = gridMap.indexToRowId.get(rowIndex + 1)\n const firstColId = gridMap.indexToColId.get(0)\n if (newRowId && firstColId) {\n const newCellId = getCellId(newRowId, firstColId)\n selectCell(newCellId, false, false)\n focusCell(newCellId)\n }\n } else if (e.shiftKey && rowIndex > 0) {\n // Move to last column of previous row\n const newRowId = gridMap.indexToRowId.get(rowIndex - 1)\n const lastColId = gridMap.indexToColId.get(gridMap.colIdToIndex.size - 1)\n if (newRowId && lastColId) {\n const newCellId = getCellId(newRowId, lastColId)\n selectCell(newCellId, false, false)\n focusCell(newCellId)\n }\n }\n break\n }\n case ' ': {\n e.preventDefault()\n // attempt to open the player\n openPlayer(rowId)\n }\n }\n },\n [\n focusedCellId,\n gridMap,\n selectCell,\n focusCell,\n clearSelection,\n setEditingCellId,\n editingCellId,\n getEntityById,\n playerOpen,\n ],\n )\n\n // Attach the keydown event handler to the document\n useEffect(() => {\n document.addEventListener('keydown', handleKeyDown)\n\n // Cleanup the event listener on component unmount\n return () => {\n document.removeEventListener('keydown', handleKeyDown)\n }\n }, [\n handleKeyDown,\n focusedCellId,\n gridMap,\n selectCell,\n focusCell,\n clearSelection,\n setEditingCellId,\n editingCellId,\n playerOpen,\n ])\n return {\n handleKeyDown,\n focusedCellId,\n gridMap,\n selectCell,\n focusCell,\n clearSelection,\n setEditingCellId,\n editingCellId,\n }\n}\n"],"names":["useProjectTableContext","useSelectionCellsContext","useCellEditing","useCallback","parseCellId","getEntityViewierIds","getCellId","useEffect"],"mappings":"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"}