@ynput/ayon-frontend-shared 0.3.31 → 0.3.32

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 (877) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +24 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +213 -197
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +19 -18
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/_virtual/index.cjs22.js +1 -1
  11. package/dist/_virtual/index.cjs23.js +1 -1
  12. package/dist/_virtual/index.cjs24.js +1 -1
  13. package/dist/_virtual/index.cjs4.js +1 -1
  14. package/dist/_virtual/index.cjs5.js +1 -1
  15. package/dist/_virtual/index.cjs6.js +1 -1
  16. package/dist/_virtual/index.cjs8.js +1 -1
  17. package/dist/_virtual/index.es19.js +2 -2
  18. package/dist/_virtual/index.es20.js +2 -2
  19. package/dist/_virtual/index.es22.js +3 -3
  20. package/dist/_virtual/index.es23.js +5 -5
  21. package/dist/_virtual/index.es24.js +5 -5
  22. package/dist/_virtual/index.es4.js +2 -5
  23. package/dist/_virtual/index.es4.js.map +1 -1
  24. package/dist/_virtual/index.es5.js +5 -2
  25. package/dist/_virtual/index.es5.js.map +1 -1
  26. package/dist/_virtual/index.es6.js +2 -2
  27. package/dist/_virtual/index.es8.js +2 -2
  28. package/dist/api.cjs.js +1 -1
  29. package/dist/api.es.js +453 -434
  30. package/dist/api.es.js.map +1 -1
  31. package/dist/index.cjs.js +1 -1
  32. package/dist/index.es.js +11 -9
  33. package/dist/index.es.js.map +1 -1
  34. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  35. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  36. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  37. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  38. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  39. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  40. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  41. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  42. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  43. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  44. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  45. package/dist/node_modules/remove-accents/index.es.js +1 -1
  46. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  47. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  48. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  49. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  50. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  51. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  52. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  53. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  54. package/dist/shared/src/api/base/client.cjs.js +1 -1
  55. package/dist/shared/src/api/base/client.cjs.js.map +1 -1
  56. package/dist/shared/src/api/base/client.es.js +21 -17
  57. package/dist/shared/src/api/base/client.es.js.map +1 -1
  58. package/dist/shared/src/api/generated/folders.cjs.js +1 -1
  59. package/dist/shared/src/api/generated/folders.cjs.js.map +1 -1
  60. package/dist/shared/src/api/generated/folders.es.js +2 -14
  61. package/dist/shared/src/api/generated/folders.es.js.map +1 -1
  62. package/dist/shared/src/api/generated/graphql.cjs.js +237 -55
  63. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  64. package/dist/shared/src/api/generated/graphql.es.js +361 -161
  65. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  66. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  67. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  68. package/dist/shared/src/api/queries/activities/activityQueries.cjs.js +1 -0
  69. package/dist/shared/src/api/queries/activities/activityQueries.cjs.js.map +1 -1
  70. package/dist/shared/src/api/queries/activities/activityQueries.es.js +1 -0
  71. package/dist/shared/src/api/queries/activities/activityQueries.es.js.map +1 -1
  72. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js +1 -1
  73. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  74. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js +33 -21
  75. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  76. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  77. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  78. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +74 -60
  79. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  80. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js +2 -0
  81. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -0
  82. package/dist/shared/src/api/queries/columnStats/columnStats.es.js +96 -0
  83. package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -0
  84. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js +2 -0
  85. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -0
  86. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js +88 -0
  87. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -0
  88. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  89. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  90. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +62 -48
  91. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  92. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
  93. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  94. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +7 -3
  95. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  96. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  97. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  98. package/dist/shared/src/api/queries/entityLists/getLists.es.js +94 -79
  99. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  100. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  101. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  102. package/dist/shared/src/api/queries/folders/getFolders.es.js +104 -71
  103. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  104. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  105. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  106. package/dist/shared/src/api/queries/overview/getOverview.es.js +265 -216
  107. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  108. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  109. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  110. package/dist/shared/src/api/queries/overview/updateOverview.es.js +198 -183
  111. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  112. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  113. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  114. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +138 -107
  115. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  116. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  117. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  118. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +332 -239
  119. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  120. package/dist/shared/src/api/queries/views/updateViews.cjs.js +1 -1
  121. package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
  122. package/dist/shared/src/api/queries/views/updateViews.es.js +38 -38
  123. package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
  124. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +1 -1
  125. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
  126. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +3 -2
  127. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
  128. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
  129. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  130. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +3 -2
  131. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  132. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  133. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  134. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +4 -2
  135. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  136. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  137. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  138. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +3 -2
  139. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  140. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
  141. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  142. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +3 -2
  143. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  144. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  145. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  146. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +3 -2
  147. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  148. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
  149. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
  150. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +3 -2
  151. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
  152. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  153. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  154. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +137 -158
  155. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  156. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  157. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  158. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +4 -2
  159. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  160. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  161. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  162. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +3 -2
  163. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  164. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  165. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  166. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +5 -4
  167. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  168. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  169. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  170. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +3 -2
  171. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  172. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  173. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  174. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +3 -2
  175. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  176. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  177. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  178. package/dist/shared/src/components/LinksManager/LinksManager.es.js +3 -2
  179. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  180. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  181. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  182. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +4 -2
  183. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  184. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  185. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  186. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +3 -2
  187. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  188. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  189. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
  190. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +3 -2
  191. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
  192. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  193. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
  194. package/dist/shared/src/components/Menu/Menu.es.js +3 -2
  195. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
  196. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  197. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  198. package/dist/shared/src/components/Menu/MenuItem.es.js +1 -0
  199. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  200. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  201. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  202. package/dist/shared/src/components/Menu/MenuList.es.js +3 -2
  203. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  204. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
  205. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  206. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +3 -2
  207. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  208. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  209. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  210. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +3 -2
  211. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  212. package/dist/shared/src/components/Powerpack/useFreeTrialLink.cjs.js +1 -1
  213. package/dist/shared/src/components/Powerpack/useFreeTrialLink.cjs.js.map +1 -1
  214. package/dist/shared/src/components/Powerpack/useFreeTrialLink.es.js +3 -2
  215. package/dist/shared/src/components/Powerpack/useFreeTrialLink.es.js.map +1 -1
  216. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  217. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  218. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +79 -77
  219. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  220. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  221. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  222. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +6 -4
  223. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  224. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  225. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  226. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +3 -2
  227. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  228. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  229. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  230. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +4 -2
  231. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  232. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  233. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  234. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +4 -2
  235. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  236. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  237. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  238. package/dist/shared/src/components/RenameForm/RenameForm.es.js +4 -2
  239. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  240. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
  241. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  242. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +3 -2
  243. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  244. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  245. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  246. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +4 -2
  247. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  248. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  249. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  250. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +5 -3
  251. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  252. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  253. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  254. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -2
  255. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  256. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  257. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  258. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +3 -2
  259. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  260. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  261. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  262. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +4 -2
  263. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  264. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  265. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  266. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +7 -6
  267. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  268. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +1 -1
  269. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  270. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +3 -2
  271. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  272. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  273. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  274. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +6 -4
  275. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  276. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  277. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  278. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +4 -2
  279. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  280. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js +1 -1
  281. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js.map +1 -1
  282. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js +3 -2
  283. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
  284. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +2 -2
  285. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  286. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +11 -10
  287. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  288. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
  289. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
  290. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +49 -44
  291. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
  292. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +3 -3
  293. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
  294. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +32 -22
  295. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
  296. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  297. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  298. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +4 -2
  299. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  300. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  301. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  302. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +8 -6
  303. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  304. package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
  305. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  306. package/dist/shared/src/components/Watchers/Watchers.es.js +3 -2
  307. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  308. package/dist/shared/src/config/powerpackFeatures.cjs.js +1 -1
  309. package/dist/shared/src/config/powerpackFeatures.cjs.js.map +1 -1
  310. package/dist/shared/src/config/powerpackFeatures.es.js +7 -1
  311. package/dist/shared/src/config/powerpackFeatures.es.js.map +1 -1
  312. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  313. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  314. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -2
  315. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  316. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  317. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  318. package/dist/shared/src/containers/Actions/Actions.es.js +3 -2
  319. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  320. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  321. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  322. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -2
  323. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  324. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  325. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  326. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -2
  327. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  328. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  329. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  330. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -2
  331. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  332. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  333. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  334. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +41 -38
  335. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  336. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  337. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  338. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -2
  339. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  340. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  341. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  342. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +4 -2
  343. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  344. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  345. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  346. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +4 -2
  347. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  348. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  349. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  350. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +3 -2
  351. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  352. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  353. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  354. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +18 -16
  355. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  356. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  357. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  358. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +4 -2
  359. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  360. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  361. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  362. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +4 -2
  363. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  364. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  365. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  366. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +13 -11
  367. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  368. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
  369. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
  370. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +14 -14
  371. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
  372. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  373. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  374. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +13 -9
  375. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  376. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  377. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  378. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +4 -2
  379. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  380. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  381. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  382. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +4 -2
  383. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  384. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  385. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  386. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +4 -2
  387. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  388. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  389. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  390. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +4 -2
  391. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  392. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  393. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  394. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +3 -2
  395. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  396. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  397. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  398. package/dist/shared/src/containers/Feed/Feed.es.js +5 -4
  399. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  400. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  401. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  402. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +4 -2
  403. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  404. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  405. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  406. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +4 -2
  407. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  408. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  409. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  410. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +4 -2
  411. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  412. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  413. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  414. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +28 -27
  415. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  416. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  417. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  418. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +4 -2
  419. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  420. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  421. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  422. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +8 -6
  423. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  424. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  425. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  426. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +3 -2
  427. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  428. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  429. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  430. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +3 -2
  431. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  432. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  433. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  434. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +3 -2
  435. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  436. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  437. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  438. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +37 -44
  439. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  440. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js +1 -1
  441. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js.map +1 -1
  442. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.es.js +3 -2
  443. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.es.js.map +1 -1
  444. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  445. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  446. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +6 -5
  447. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  448. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.cjs.js +1 -1
  449. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.cjs.js.map +1 -1
  450. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.es.js +14 -13
  451. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.es.js.map +1 -1
  452. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  453. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  454. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +3 -2
  455. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  456. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  457. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  458. package/dist/shared/src/containers/ListTable/ListTable.es.js +212 -204
  459. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  460. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  461. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  462. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +4 -2
  463. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  464. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  465. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  466. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +4 -2
  467. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  468. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  469. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  470. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +729 -675
  471. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  472. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +32 -10
  473. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
  474. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +42 -18
  475. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
  476. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  477. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  478. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +17 -14
  479. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  480. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  481. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  482. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +57 -43
  483. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  484. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  485. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  486. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +4 -2
  487. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  488. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  489. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  490. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +4 -2
  491. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  492. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js +48 -0
  493. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js.map +1 -0
  494. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js +103 -0
  495. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js.map +1 -0
  496. package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js +2 -0
  497. package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js.map +1 -0
  498. package/dist/shared/src/containers/ProjectTreeTable/constants.es.js +6 -0
  499. package/dist/shared/src/containers/ProjectTreeTable/constants.es.js.map +1 -0
  500. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  501. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  502. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +4 -2
  503. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  504. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +4 -4
  505. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  506. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +7 -5
  507. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  508. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
  509. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
  510. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  511. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  512. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +215 -181
  513. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  514. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  515. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  516. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +5 -4
  517. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  518. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +1 -1
  519. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
  520. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +3 -2
  521. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
  522. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js +1 -1
  523. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -1
  524. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +21 -17
  525. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -1
  526. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js +1 -1
  527. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js.map +1 -1
  528. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js +1 -2
  529. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js.map +1 -1
  530. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  531. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  532. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +17 -11
  533. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  534. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  535. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  536. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +3 -2
  537. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  538. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  539. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  540. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +83 -81
  541. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  542. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  543. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  544. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +116 -111
  545. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  546. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  547. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  548. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +6 -3
  549. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  550. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  551. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  552. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +4 -2
  553. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  554. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  555. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  556. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +4 -2
  557. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  558. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  559. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  560. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +4 -2
  561. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  562. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  563. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  564. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +3 -2
  565. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  566. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js.map +1 -1
  567. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js.map +1 -1
  568. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  569. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  570. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +4 -2
  571. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  572. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  573. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  574. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +4 -2
  575. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  576. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  577. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  578. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +4 -2
  579. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  580. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  581. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  582. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +4 -2
  583. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  584. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  585. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  586. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +4 -2
  587. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  588. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  589. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  590. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +80 -78
  591. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  592. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  593. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  594. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +4 -2
  595. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  596. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  597. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  598. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +45 -44
  599. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  600. package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.cjs.js +2 -0
  601. package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.cjs.js.map +1 -0
  602. package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.es.js +16 -0
  603. package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.es.js.map +1 -0
  604. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  605. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  606. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +15 -13
  607. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  608. package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.cjs.js +1 -1
  609. package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.cjs.js.map +1 -1
  610. package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.es.js +29 -25
  611. package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.es.js.map +1 -1
  612. package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.cjs.js +2 -0
  613. package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.cjs.js.map +1 -0
  614. package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.es.js +17 -0
  615. package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.es.js.map +1 -0
  616. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  617. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  618. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +4 -2
  619. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  620. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  621. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  622. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +12 -10
  623. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  624. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  625. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  626. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +6 -4
  627. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  628. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +1 -1
  629. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
  630. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +3 -2
  631. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
  632. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  633. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  634. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +4 -2
  635. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  636. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  637. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  638. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +4 -2
  639. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  640. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +1 -1
  641. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  642. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +3 -2
  643. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  644. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +4 -4
  645. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  646. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +24 -19
  647. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  648. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  649. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  650. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +4 -2
  651. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  652. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  653. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  654. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +4 -2
  655. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  656. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +1 -1
  657. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
  658. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +3 -2
  659. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
  660. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  661. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  662. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +4 -2
  663. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  664. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  665. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  666. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +5 -4
  667. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  668. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  669. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  670. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +3 -2
  671. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  672. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
  673. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
  674. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +3 -2
  675. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
  676. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  677. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  678. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +4 -2
  679. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  680. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
  681. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
  682. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +3 -2
  683. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
  684. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  685. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  686. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +12 -11
  687. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  688. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js +1 -1
  689. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
  690. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js +3 -2
  691. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
  692. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  693. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  694. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +3 -2
  695. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  696. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  697. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  698. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +4 -2
  699. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  700. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +1 -1
  701. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  702. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +3 -2
  703. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  704. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  705. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  706. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +119 -118
  707. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  708. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -1
  709. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
  710. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +18 -16
  711. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
  712. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  713. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  714. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +79 -51
  715. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  716. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js +1 -1
  717. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js.map +1 -1
  718. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js +19 -17
  719. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js.map +1 -1
  720. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
  721. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
  722. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +3 -2
  723. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js.map +1 -1
  724. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  725. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  726. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +6 -5
  727. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  728. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
  729. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  730. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +12 -11
  731. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  732. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
  733. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  734. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +3 -2
  735. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  736. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  737. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  738. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +78 -65
  739. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  740. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  741. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  742. package/dist/shared/src/context/AddonProjectContext.es.js +5 -4
  743. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  744. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  745. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  746. package/dist/shared/src/context/DetailsPanelContext.es.js +5 -4
  747. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  748. package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
  749. package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
  750. package/dist/shared/src/context/GlobalContext.es.js +5 -4
  751. package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
  752. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  753. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  754. package/dist/shared/src/context/PowerpackContext.es.js +7 -6
  755. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  756. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  757. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  758. package/dist/shared/src/context/ProjectContext.es.js +5 -4
  759. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  760. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  761. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  762. package/dist/shared/src/context/ProjectFoldersContext.es.js +5 -4
  763. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  764. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  765. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  766. package/dist/shared/src/context/RemoteModulesContext.es.js +5 -4
  767. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  768. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  769. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  770. package/dist/shared/src/context/SubtasksModulesContext.es.js +5 -4
  771. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  772. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  773. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  774. package/dist/shared/src/context/UriContext.es.js +6 -5
  775. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  776. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  777. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  778. package/dist/shared/src/context/WebsocketContext.es.js +6 -4
  779. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  780. package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
  781. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  782. package/dist/shared/src/hooks/useActionTriggers.es.js +3 -2
  783. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  784. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  785. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  786. package/dist/shared/src/hooks/useEntityUpdate.es.js +3 -2
  787. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  788. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
  789. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
  790. package/dist/shared/src/hooks/useGetEntityGroups.es.js +3 -2
  791. package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
  792. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  793. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  794. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +3 -2
  795. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  796. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  797. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  798. package/dist/shared/src/hooks/useHierarchyTable.es.js +3 -2
  799. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  800. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
  801. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  802. package/dist/shared/src/hooks/useScopedStatuses.es.js +5 -4
  803. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  804. package/dist/shared/src/hooks/useScopedTypes.cjs.js +1 -1
  805. package/dist/shared/src/hooks/useScopedTypes.cjs.js.map +1 -1
  806. package/dist/shared/src/hooks/useScopedTypes.es.js +3 -2
  807. package/dist/shared/src/hooks/useScopedTypes.es.js.map +1 -1
  808. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  809. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  810. package/dist/shared/src/hooks/useUserProjectConfig.es.js +3 -2
  811. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  812. package/dist/shared/src/util/columnConfigConverter.cjs.js +1 -1
  813. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  814. package/dist/shared/src/util/columnConfigConverter.es.js +86 -65
  815. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  816. package/dist/shared/src/util/getThumbnailUrl.cjs.js +2 -0
  817. package/dist/shared/src/util/getThumbnailUrl.cjs.js.map +1 -0
  818. package/dist/shared/src/util/getThumbnailUrl.es.js +23 -0
  819. package/dist/shared/src/util/getThumbnailUrl.es.js.map +1 -0
  820. package/dist/shared/src/util/thumbnailWebsocket.cjs.js +2 -0
  821. package/dist/shared/src/util/thumbnailWebsocket.cjs.js.map +1 -0
  822. package/dist/shared/src/util/thumbnailWebsocket.es.js +54 -0
  823. package/dist/shared/src/util/thumbnailWebsocket.es.js.map +1 -0
  824. package/dist/types/api/generated/folders.d.ts +1 -6
  825. package/dist/types/api/generated/graphql.d.ts +275 -6
  826. package/dist/types/api/generated/graphqlLinks.d.ts +7 -4
  827. package/dist/types/api/queries/activities/activityQueries.d.ts +1 -0
  828. package/dist/types/api/queries/activities/getActivities.d.ts +47 -0
  829. package/dist/types/api/queries/activities/updateActivities.d.ts +94 -0
  830. package/dist/types/api/queries/activities/util/activitiesHelpers.d.ts +1 -0
  831. package/dist/types/api/queries/columnStats/columnStats.d.ts +28 -0
  832. package/dist/types/api/queries/columnStats/index.d.ts +2 -0
  833. package/dist/types/api/queries/columnStats/metricTargets.d.ts +31 -0
  834. package/dist/types/api/queries/entities/getEntity.d.ts +47 -0
  835. package/dist/types/api/queries/entities/getEntityPanel.d.ts +47 -0
  836. package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +1 -0
  837. package/dist/types/api/queries/entities/updateEntity.d.ts +47 -0
  838. package/dist/types/api/queries/entityLists/getLists.d.ts +47 -0
  839. package/dist/types/api/queries/index.d.ts +1 -0
  840. package/dist/types/api/queries/overview/getOverview.d.ts +733 -1
  841. package/dist/types/api/queries/project/getProject.d.ts +47 -0
  842. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +69 -0
  843. package/dist/types/api/queries/users/getUsers.d.ts +47 -0
  844. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +828 -1
  845. package/dist/types/components/EntityPanelUploader/EntityPanelUploader.d.ts +1 -11
  846. package/dist/types/components/Thumbnail/StackedThumbnails.d.ts +2 -2
  847. package/dist/types/components/Thumbnail/Thumbnail.d.ts +2 -2
  848. package/dist/types/components/ThumbnailSimple/ThumbnailSimple.d.ts +1 -1
  849. package/dist/types/config/powerpackFeatures.d.ts +1 -1
  850. package/dist/types/containers/DetailsPanel/containers/FeedWrapper.d.ts +1 -0
  851. package/dist/types/containers/DetailsPanel/helpers/getThumbnails.d.ts +2 -2
  852. package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.d.ts +1 -0
  853. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +8 -3
  854. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.styled.d.ts +2 -0
  855. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +1 -1
  856. package/dist/types/containers/ProjectTreeTable/components/TableFooterRow.d.ts +14 -0
  857. package/dist/types/containers/ProjectTreeTable/constants.d.ts +2 -0
  858. package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +10 -0
  859. package/dist/types/containers/ProjectTreeTable/context/SelectionCellsContext.d.ts +0 -1
  860. package/dist/types/containers/ProjectTreeTable/index.d.ts +1 -0
  861. package/dist/types/containers/ProjectTreeTable/types/index.d.ts +17 -1
  862. package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +2 -0
  863. package/dist/types/containers/ProjectTreeTable/types/summaryTypes.d.ts +50 -0
  864. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +3 -0
  865. package/dist/types/containers/ProjectTreeTable/utils/checkColumnVisibility.d.ts +2 -0
  866. package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +1 -0
  867. package/dist/types/containers/ProjectTreeTable/utils/pinningUtils.d.ts +6 -0
  868. package/dist/types/containers/ProjectTreeTable/widgets/ThumbnailWidget.d.ts +1 -1
  869. package/dist/types/containers/Views/hooks/useSelectedView.d.ts +2 -1
  870. package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +7 -3
  871. package/dist/types/util/getThumbnailUrl.d.ts +18 -0
  872. package/dist/types/util/index.d.ts +2 -0
  873. package/dist/types/util/thumbnailWebsocket.d.ts +21 -0
  874. package/dist/util.cjs.js +1 -1
  875. package/dist/util.es.js +35 -30
  876. package/dist/util.es.js.map +1 -1
  877. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/dataImport.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/projectFolders.cjs.js");require("../api/generated/reviewables.cjs.js");require("../api/generated/services.cjs.js");require("../api/generated/system.cjs.js");require("../api/generated/tasks.cjs.js");require("../api/generated/teams.cjs.js");require("../api/generated/thumbnails.cjs.js");require("../api/generated/uRIs.cjs.js");require("../api/generated/users.cjs.js");require("../api/generated/versions.cjs.js");require("../api/generated/workfiles.cjs.js");require("../api/generated/ynputCloud.cjs.js");require("../api/generated/grouping.cjs.js");require("../api/generated/views.cjs.js");require("../api/queries/actions/getActions.cjs.js");require("../api/queries/activities/getActivities.cjs.js");require("../api/queries/activities/updateActivities.cjs.js");require("../api/queries/activities/updateReaction.cjs.js");require("../api/queries/activities/getMentions.cjs.js");require("../api/queries/activities/getCategories.cjs.js");require("../api/queries/addons/getAddons.cjs.js");require("../api/queries/addons/updateAddons.cjs.js");require("../api/queries/attributes/getAttributes.cjs.js");require("../api/queries/attributes/updateAttributes.cjs.js");require("../api/queries/authentication/getAuthentication.cjs.js");require("../api/queries/cloud/cloud.cjs.js");require("../api/queries/config/getConfig.cjs.js");require("../api/queries/config/updateConfig.cjs.js");require("../api/queries/entities/getEntity.cjs.js");require("../api/queries/entities/getEntityPanel.cjs.js");require("../api/queries/overview/getOverview.cjs.js");require("../api/queries/overview/updateOverview.cjs.js");require("../api/queries/versions/getVersionsProducts.cjs.js");require("../api/queries/links/getEntityLinks.cjs.js");require("../api/queries/entities/updateEntity.cjs.js");require("../api/queries/entityLists/getLists.cjs.js");require("../api/queries/entityLists/updateLists.cjs.js");require("../api/queries/entityLists/getListsAttributes.cjs.js");require("../api/queries/entityLists/updateListsAttributes.cjs.js");require("../api/queries/entityLists/listFolders.cjs.js");require("../api/queries/folders/getFolders.cjs.js");require("../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../api/queries/grouping/getGrouping.cjs.js");require("../api/queries/links/updateLinks.cjs.js");require("../api/queries/links/getLinks.cjs.js");require("../api/queries/permissions/getPermissions.cjs.js");require("../api/queries/products/createProduct.cjs.js");require("../api/queries/products/getFolderProducts.cjs.js");require("../api/queries/project/getProject.cjs.js");require("../api/queries/project/updateProject.cjs.js");require("../api/queries/projectFolders/projectFolders.cjs.js");require("../api/queries/review/getReview.cjs.js");require("../api/queries/review/updateReview.cjs.js");require("../api/queries/share/share.cjs.js");require("../api/queries/system/getSystem.cjs.js");require("../api/queries/tasks/getTasks.cjs.js");require("../api/queries/tasks/updateTasks.cjs.js");require("../api/queries/teams/getTeams.cjs.js");require("../api/queries/userDashboard/getUserDashboard.cjs.js");require("../api/queries/users/getUsers.cjs.js");const P=require("../api/queries/users/updateUsers.cjs.js");require("../api/queries/users/guests.cjs.js");require("../api/queries/versions/updateVersions.cjs.js");require("../api/queries/views/getViews.cjs.js");require("../api/queries/views/updateViews.cjs.js");require("../api/queries/watchers/getWatchers.cjs.js");require("../api/queries/uris/getUris.cjs.js");require("../context/RemoteModulesContext.cjs.js");require("../../../_virtual/jsx-runtime.cjs.js");require("react");require("../../../_virtual/runtime.cjs.js");require("../../../_virtual/semver.cjs.js");require("lodash");const C=require("react-toastify");require("react-redux");require("custom-protocol-check");require("../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("uuid");require("../util/pubsub.cjs.js");require("../context/PowerpackContextInstance.cjs.js");require("../context/UriContext.cjs.js");require("../context/DetailsPanelContextInstance.cjs.js");require("../context/SubtasksModulesContextInstance.cjs.js");require("../context/ThumbnailUploaderContext.cjs.js");require("../context/SettingsPanelContext.cjs.js");require("../context/pip/PiPProvider.cjs.js");require("react-dom");require("../context/pip/PiPWrapper.cjs.js");require("../context/AddonProjectContext.cjs.js");require("../context/AddonContext.cjs.js");require("../context/MoveEntityContext.cjs.js");require("../context/MenuContext.cjs.js");require("../context/WebsocketContext.cjs.js");const m=require("../context/GlobalContext.cjs.js");require("../context/ProjectContext.cjs.js");require("../context/ProjectFoldersContext.cjs.js");const y=({selectors:d=[],init:f})=>{const{user:i}=m.useGlobalContext(),{data:{frontendPreferences:t={}}={}}=i||{},n=d.filter(e=>e!=null).map(e=>e.replace(/\s/g,""));let u=t;for(const e of n)u=u?.[e];u=u||f||{};const[l]=P.useSetFrontendPreferencesMutation();return[u,async e=>{try{if(!i?.name)throw{data:{detail:"User not found"}};let r={...t};const s=(q,o,a)=>{if(o.length===0)return{...q,...a};const[c,...g]=o,p=q?.[c]||{};return{...q,[c]:s(p,g,a)}};r=s(r,n,e),await l({userName:i.name,patchData:r,disableInvalidations:!0}).unwrap()}catch(r){console.error(r),C.toast.error(r.data?.detail)}},{isSuccess:!0}]};exports.useUserProjectConfig=y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/dataImport.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/projectFolders.cjs.js");require("../api/generated/reviewables.cjs.js");require("../api/generated/services.cjs.js");require("../api/generated/system.cjs.js");require("../api/generated/tasks.cjs.js");require("../api/generated/teams.cjs.js");require("../api/generated/thumbnails.cjs.js");require("../api/generated/uRIs.cjs.js");require("../api/generated/users.cjs.js");require("../api/generated/versions.cjs.js");require("../api/generated/workfiles.cjs.js");require("../api/generated/ynputCloud.cjs.js");require("../api/generated/grouping.cjs.js");require("../api/generated/views.cjs.js");require("../api/queries/actions/getActions.cjs.js");require("../api/queries/activities/getActivities.cjs.js");require("../api/queries/activities/updateActivities.cjs.js");require("../api/queries/activities/updateReaction.cjs.js");require("../api/queries/activities/getMentions.cjs.js");require("../api/queries/activities/getCategories.cjs.js");require("../api/queries/addons/getAddons.cjs.js");require("../api/queries/addons/updateAddons.cjs.js");require("../api/queries/attributes/getAttributes.cjs.js");require("../api/queries/attributes/updateAttributes.cjs.js");require("../api/queries/authentication/getAuthentication.cjs.js");require("../api/queries/cloud/cloud.cjs.js");require("../api/queries/columnStats/metricTargets.cjs.js");require("../api/queries/config/getConfig.cjs.js");require("../api/queries/config/updateConfig.cjs.js");require("../api/queries/entities/getEntity.cjs.js");require("../api/queries/entities/getEntityPanel.cjs.js");require("../api/queries/overview/getOverview.cjs.js");require("../api/queries/overview/updateOverview.cjs.js");require("../api/queries/versions/getVersionsProducts.cjs.js");require("../api/queries/links/getEntityLinks.cjs.js");require("../api/queries/entities/updateEntity.cjs.js");require("../api/queries/entityLists/getLists.cjs.js");require("../api/queries/entityLists/updateLists.cjs.js");require("../api/queries/entityLists/getListsAttributes.cjs.js");require("../api/queries/entityLists/updateListsAttributes.cjs.js");require("../api/queries/entityLists/listFolders.cjs.js");require("../api/queries/folders/getFolders.cjs.js");require("../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../api/queries/grouping/getGrouping.cjs.js");require("../api/queries/links/updateLinks.cjs.js");require("../api/queries/links/getLinks.cjs.js");require("../api/queries/permissions/getPermissions.cjs.js");require("../api/queries/products/createProduct.cjs.js");require("../api/queries/products/getFolderProducts.cjs.js");require("../api/queries/project/getProject.cjs.js");require("../api/queries/project/updateProject.cjs.js");require("../api/queries/projectFolders/projectFolders.cjs.js");require("../api/queries/review/getReview.cjs.js");require("../api/queries/review/updateReview.cjs.js");require("../api/queries/share/share.cjs.js");require("../api/queries/system/getSystem.cjs.js");require("../api/queries/tasks/getTasks.cjs.js");require("../api/queries/tasks/updateTasks.cjs.js");require("../api/queries/teams/getTeams.cjs.js");require("../api/queries/userDashboard/getUserDashboard.cjs.js");require("../api/queries/users/getUsers.cjs.js");const P=require("../api/queries/users/updateUsers.cjs.js");require("../api/queries/users/guests.cjs.js");require("../api/queries/versions/updateVersions.cjs.js");require("../api/queries/views/getViews.cjs.js");require("../api/queries/views/updateViews.cjs.js");require("../api/queries/watchers/getWatchers.cjs.js");require("../api/queries/uris/getUris.cjs.js");require("../context/RemoteModulesContext.cjs.js");require("../../../_virtual/jsx-runtime.cjs.js");require("react");require("../../../_virtual/runtime.cjs.js");require("../../../_virtual/semver.cjs.js");require("lodash");const C=require("react-toastify");require("react-redux");require("custom-protocol-check");require("../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("uuid");require("../util/pubsub.cjs.js");require("../context/PowerpackContextInstance.cjs.js");require("../context/UriContext.cjs.js");require("../context/DetailsPanelContextInstance.cjs.js");require("../context/SubtasksModulesContextInstance.cjs.js");require("../context/ThumbnailUploaderContext.cjs.js");require("../context/SettingsPanelContext.cjs.js");require("../context/pip/PiPProvider.cjs.js");require("react-dom");require("../context/pip/PiPWrapper.cjs.js");require("../context/AddonProjectContext.cjs.js");require("../context/AddonContext.cjs.js");require("../context/MoveEntityContext.cjs.js");require("../context/MenuContext.cjs.js");require("../context/WebsocketContext.cjs.js");const m=require("../context/GlobalContext.cjs.js");require("../context/ProjectContext.cjs.js");require("../context/ProjectFoldersContext.cjs.js");const y=({selectors:d=[],init:f})=>{const{user:i}=m.useGlobalContext(),{data:{frontendPreferences:t={}}={}}=i||{},n=d.filter(e=>e!=null).map(e=>e.replace(/\s/g,""));let u=t;for(const e of n)u=u?.[e];u=u||f||{};const[l]=P.useSetFrontendPreferencesMutation();return[u,async e=>{try{if(!i?.name)throw{data:{detail:"User not found"}};let r={...t};const s=(q,o,a)=>{if(o.length===0)return{...q,...a};const[c,...g]=o,p=q?.[c]||{};return{...q,[c]:s(p,g,a)}};r=s(r,n,e),await l({userName:i.name,patchData:r,disableInvalidations:!0}).unwrap()}catch(r){console.error(r),C.toast.error(r.data?.detail)}},{isSuccess:!0}]};exports.useUserProjectConfig=y;
2
2
  //# sourceMappingURL=useUserProjectConfig.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUserProjectConfig.cjs.js","sources":["../../../../src/hooks/useUserProjectConfig.ts"],"sourcesContent":["import { useSetFrontendPreferencesMutation } from '@shared/api'\nimport { useGlobalContext } from '@shared/context'\nimport { toast } from 'react-toastify'\n\ntype Props = {\n selectors?: (string | undefined | null)[]\n init?: any\n}\n\ntype Result = [\n Record<string, any>,\n (config: Record<string, any>) => Promise<void>,\n { isSuccess: boolean },\n]\n\nexport const useUserProjectConfig = ({ selectors = [], init }: Props): Result => {\n // GET CURRENT USER\n const { user } = useGlobalContext()\n // extract out columns config for project\n const { data: { frontendPreferences: preferences = {} } = {} } = user || {}\n\n const configPath = selectors\n .filter((selector) => selector !== undefined && selector !== null)\n .map((selector) => selector.replace(/\\s/g, ''))\n // Start with the root preferences\n let userConfig = preferences\n for (const selector of configPath) {\n userConfig = userConfig?.[selector]\n }\n\n userConfig = userConfig || init || {}\n\n const [updateUserPreferences] = useSetFrontendPreferencesMutation()\n\n // update the user preferences when the columns config changes\n const updateProjectConfig = async (config: Record<string, any>) => {\n try {\n if (!user?.name) throw { data: { detail: 'User not found' } }\n\n // Set the updated config at the correct nested path using only selectors\n let updatedPreferences = { ...preferences }\n\n // Helper function to set nested value\n const setNestedValue = (obj: any, path: string[], value: any): any => {\n if (path.length === 0) return { ...obj, ...value }\n\n const [first, ...rest] = path\n const nestedObj = obj?.[first] || {}\n\n return {\n ...obj,\n [first]: setNestedValue(nestedObj, rest, value),\n }\n }\n\n // Use the helper to set the value at the correct path\n updatedPreferences = setNestedValue(updatedPreferences, configPath, config)\n\n await updateUserPreferences({\n userName: user.name,\n patchData: updatedPreferences,\n // @ts-expect-error - disableInvalidations is not in the api\n disableInvalidations: true,\n }).unwrap()\n } catch (error: any) {\n console.error(error)\n toast.error(error.data?.detail)\n }\n }\n\n return [userConfig, updateProjectConfig, { isSuccess: true }]\n}\n"],"names":["useUserProjectConfig","selectors","init","user","useGlobalContext","preferences","configPath","selector","userConfig","updateUserPreferences","useSetFrontendPreferencesMutation","config","updatedPreferences","setNestedValue","obj","path","value","first","rest","nestedObj","error","toast"],"mappings":"61LAeO,MAAMA,EAAuB,CAAC,CAAE,UAAAC,EAAY,CAAA,EAAI,KAAAC,KAA0B,CAE/E,KAAM,CAAE,KAAAC,CAAA,EAASC,mBAAA,EAEX,CAAE,KAAM,CAAE,oBAAqBC,EAAc,CAAA,GAAO,CAAA,GAAOF,GAAQ,CAAA,EAEnEG,EAAaL,EAChB,OAAQM,GAAuCA,GAAa,IAAI,EAChE,IAAKA,GAAaA,EAAS,QAAQ,MAAO,EAAE,CAAC,EAEhD,IAAIC,EAAaH,EACjB,UAAWE,KAAYD,EACrBE,EAAaA,IAAaD,CAAQ,EAGpCC,EAAaA,GAAcN,GAAQ,CAAA,EAEnC,KAAM,CAACO,CAAqB,EAAIC,oCAAA,EAsChC,MAAO,CAACF,EAnCoB,MAAOG,GAAgC,CACjE,GAAI,CACF,GAAI,CAACR,GAAM,KAAM,KAAM,CAAE,KAAM,CAAE,OAAQ,iBAAiB,EAG1D,IAAIS,EAAqB,CAAE,GAAGP,CAAA,EAG9B,MAAMQ,EAAiB,CAACC,EAAUC,EAAgBC,IAAoB,CACpE,GAAID,EAAK,SAAW,EAAG,MAAO,CAAE,GAAGD,EAAK,GAAGE,CAAA,EAE3C,KAAM,CAACC,EAAO,GAAGC,CAAI,EAAIH,EACnBI,EAAYL,IAAMG,CAAK,GAAK,CAAA,EAElC,MAAO,CACL,GAAGH,EACH,CAACG,CAAK,EAAGJ,EAAeM,EAAWD,EAAMF,CAAK,CAAA,CAElD,EAGAJ,EAAqBC,EAAeD,EAAoBN,EAAYK,CAAM,EAE1E,MAAMF,EAAsB,CAC1B,SAAUN,EAAK,KACf,UAAWS,EAEX,qBAAsB,EAAA,CACvB,EAAE,OAAA,CACL,OAASQ,EAAY,CACnB,QAAQ,MAAMA,CAAK,EACnBC,EAAAA,MAAM,MAAMD,EAAM,MAAM,MAAM,CAChC,CACF,EAEyC,CAAE,UAAW,GAAM,CAC9D"}
1
+ {"version":3,"file":"useUserProjectConfig.cjs.js","sources":["../../../../src/hooks/useUserProjectConfig.ts"],"sourcesContent":["import { useSetFrontendPreferencesMutation } from '@shared/api'\nimport { useGlobalContext } from '@shared/context'\nimport { toast } from 'react-toastify'\n\ntype Props = {\n selectors?: (string | undefined | null)[]\n init?: any\n}\n\ntype Result = [\n Record<string, any>,\n (config: Record<string, any>) => Promise<void>,\n { isSuccess: boolean },\n]\n\nexport const useUserProjectConfig = ({ selectors = [], init }: Props): Result => {\n // GET CURRENT USER\n const { user } = useGlobalContext()\n // extract out columns config for project\n const { data: { frontendPreferences: preferences = {} } = {} } = user || {}\n\n const configPath = selectors\n .filter((selector) => selector !== undefined && selector !== null)\n .map((selector) => selector.replace(/\\s/g, ''))\n // Start with the root preferences\n let userConfig = preferences\n for (const selector of configPath) {\n userConfig = userConfig?.[selector]\n }\n\n userConfig = userConfig || init || {}\n\n const [updateUserPreferences] = useSetFrontendPreferencesMutation()\n\n // update the user preferences when the columns config changes\n const updateProjectConfig = async (config: Record<string, any>) => {\n try {\n if (!user?.name) throw { data: { detail: 'User not found' } }\n\n // Set the updated config at the correct nested path using only selectors\n let updatedPreferences = { ...preferences }\n\n // Helper function to set nested value\n const setNestedValue = (obj: any, path: string[], value: any): any => {\n if (path.length === 0) return { ...obj, ...value }\n\n const [first, ...rest] = path\n const nestedObj = obj?.[first] || {}\n\n return {\n ...obj,\n [first]: setNestedValue(nestedObj, rest, value),\n }\n }\n\n // Use the helper to set the value at the correct path\n updatedPreferences = setNestedValue(updatedPreferences, configPath, config)\n\n await updateUserPreferences({\n userName: user.name,\n patchData: updatedPreferences,\n // @ts-expect-error - disableInvalidations is not in the api\n disableInvalidations: true,\n }).unwrap()\n } catch (error: any) {\n console.error(error)\n toast.error(error.data?.detail)\n }\n }\n\n return [userConfig, updateProjectConfig, { isSuccess: true }]\n}\n"],"names":["useUserProjectConfig","selectors","init","user","useGlobalContext","preferences","configPath","selector","userConfig","updateUserPreferences","useSetFrontendPreferencesMutation","config","updatedPreferences","setNestedValue","obj","path","value","first","rest","nestedObj","error","toast"],"mappings":"w5LAeO,MAAMA,EAAuB,CAAC,CAAE,UAAAC,EAAY,CAAA,EAAI,KAAAC,KAA0B,CAE/E,KAAM,CAAE,KAAAC,CAAA,EAASC,mBAAA,EAEX,CAAE,KAAM,CAAE,oBAAqBC,EAAc,CAAA,GAAO,CAAA,GAAOF,GAAQ,CAAA,EAEnEG,EAAaL,EAChB,OAAQM,GAAuCA,GAAa,IAAI,EAChE,IAAKA,GAAaA,EAAS,QAAQ,MAAO,EAAE,CAAC,EAEhD,IAAIC,EAAaH,EACjB,UAAWE,KAAYD,EACrBE,EAAaA,IAAaD,CAAQ,EAGpCC,EAAaA,GAAcN,GAAQ,CAAA,EAEnC,KAAM,CAACO,CAAqB,EAAIC,oCAAA,EAsChC,MAAO,CAACF,EAnCoB,MAAOG,GAAgC,CACjE,GAAI,CACF,GAAI,CAACR,GAAM,KAAM,KAAM,CAAE,KAAM,CAAE,OAAQ,iBAAiB,EAG1D,IAAIS,EAAqB,CAAE,GAAGP,CAAA,EAG9B,MAAMQ,EAAiB,CAACC,EAAUC,EAAgBC,IAAoB,CACpE,GAAID,EAAK,SAAW,EAAG,MAAO,CAAE,GAAGD,EAAK,GAAGE,CAAA,EAE3C,KAAM,CAACC,EAAO,GAAGC,CAAI,EAAIH,EACnBI,EAAYL,IAAMG,CAAK,GAAK,CAAA,EAElC,MAAO,CACL,GAAGH,EACH,CAACG,CAAK,EAAGJ,EAAeM,EAAWD,EAAMF,CAAK,CAAA,CAElD,EAGAJ,EAAqBC,EAAeD,EAAoBN,EAAYK,CAAM,EAE1E,MAAMF,EAAsB,CAC1B,SAAUN,EAAK,KACf,UAAWS,EAEX,qBAAsB,EAAA,CACvB,EAAE,OAAA,CACL,OAASQ,EAAY,CACnB,QAAQ,MAAMA,CAAK,EACnBC,EAAAA,MAAM,MAAMD,EAAM,MAAM,MAAM,CAChC,CACF,EAEyC,CAAE,UAAW,GAAM,CAC9D"}
@@ -50,6 +50,7 @@ import "../api/queries/attributes/getAttributes.es.js";
50
50
  import "../api/queries/attributes/updateAttributes.es.js";
51
51
  import "../api/queries/authentication/getAuthentication.es.js";
52
52
  import "../api/queries/cloud/cloud.es.js";
53
+ import "../api/queries/columnStats/metricTargets.es.js";
53
54
  import "../api/queries/config/getConfig.es.js";
54
55
  import "../api/queries/config/updateConfig.es.js";
55
56
  import "../api/queries/entities/getEntity.es.js";
@@ -120,7 +121,7 @@ import "../context/WebsocketContext.es.js";
120
121
  import { useGlobalContext as h } from "../context/GlobalContext.es.js";
121
122
  import "../context/ProjectContext.es.js";
122
123
  import "../context/ProjectFoldersContext.es.js";
123
- const Vr = ({ selectors: f = [], init: u }) => {
124
+ const kr = ({ selectors: f = [], init: u }) => {
124
125
  const { user: i } = h(), { data: { frontendPreferences: m = {} } = {} } = i || {}, e = f.filter((t) => t != null).map((t) => t.replace(/\s/g, ""));
125
126
  let o = m;
126
127
  for (const t of e)
@@ -151,6 +152,6 @@ const Vr = ({ selectors: f = [], init: u }) => {
151
152
  }, { isSuccess: !0 }];
152
153
  };
153
154
  export {
154
- Vr as useUserProjectConfig
155
+ kr as useUserProjectConfig
155
156
  };
156
157
  //# sourceMappingURL=useUserProjectConfig.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUserProjectConfig.es.js","sources":["../../../../src/hooks/useUserProjectConfig.ts"],"sourcesContent":["import { useSetFrontendPreferencesMutation } from '@shared/api'\nimport { useGlobalContext } from '@shared/context'\nimport { toast } from 'react-toastify'\n\ntype Props = {\n selectors?: (string | undefined | null)[]\n init?: any\n}\n\ntype Result = [\n Record<string, any>,\n (config: Record<string, any>) => Promise<void>,\n { isSuccess: boolean },\n]\n\nexport const useUserProjectConfig = ({ selectors = [], init }: Props): Result => {\n // GET CURRENT USER\n const { user } = useGlobalContext()\n // extract out columns config for project\n const { data: { frontendPreferences: preferences = {} } = {} } = user || {}\n\n const configPath = selectors\n .filter((selector) => selector !== undefined && selector !== null)\n .map((selector) => selector.replace(/\\s/g, ''))\n // Start with the root preferences\n let userConfig = preferences\n for (const selector of configPath) {\n userConfig = userConfig?.[selector]\n }\n\n userConfig = userConfig || init || {}\n\n const [updateUserPreferences] = useSetFrontendPreferencesMutation()\n\n // update the user preferences when the columns config changes\n const updateProjectConfig = async (config: Record<string, any>) => {\n try {\n if (!user?.name) throw { data: { detail: 'User not found' } }\n\n // Set the updated config at the correct nested path using only selectors\n let updatedPreferences = { ...preferences }\n\n // Helper function to set nested value\n const setNestedValue = (obj: any, path: string[], value: any): any => {\n if (path.length === 0) return { ...obj, ...value }\n\n const [first, ...rest] = path\n const nestedObj = obj?.[first] || {}\n\n return {\n ...obj,\n [first]: setNestedValue(nestedObj, rest, value),\n }\n }\n\n // Use the helper to set the value at the correct path\n updatedPreferences = setNestedValue(updatedPreferences, configPath, config)\n\n await updateUserPreferences({\n userName: user.name,\n patchData: updatedPreferences,\n // @ts-expect-error - disableInvalidations is not in the api\n disableInvalidations: true,\n }).unwrap()\n } catch (error: any) {\n console.error(error)\n toast.error(error.data?.detail)\n }\n }\n\n return [userConfig, updateProjectConfig, { isSuccess: true }]\n}\n"],"names":["useUserProjectConfig","selectors","init","user","useGlobalContext","preferences","configPath","selector","userConfig","updateUserPreferences","useSetFrontendPreferencesMutation","config","updatedPreferences","setNestedValue","obj","path","value","first","rest","nestedObj","error","toast"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,MAAMA,KAAuB,CAAC,EAAE,WAAAC,IAAY,CAAA,GAAI,MAAAC,QAA0B;AAE/E,QAAM,EAAE,MAAAC,EAAA,IAASC,EAAA,GAEX,EAAE,MAAM,EAAE,qBAAqBC,IAAc,CAAA,MAAO,CAAA,MAAOF,KAAQ,CAAA,GAEnEG,IAAaL,EAChB,OAAO,CAACM,MAAuCA,KAAa,IAAI,EAChE,IAAI,CAACA,MAAaA,EAAS,QAAQ,OAAO,EAAE,CAAC;AAEhD,MAAIC,IAAaH;AACjB,aAAWE,KAAYD;AACrB,IAAAE,IAAaA,IAAaD,CAAQ;AAGpC,EAAAC,IAAaA,KAAcN,KAAQ,CAAA;AAEnC,QAAM,CAACO,CAAqB,IAAIC,EAAA;AAsChC,SAAO,CAACF,GAnCoB,OAAOG,MAAgC;AACjE,QAAI;AACF,UAAI,CAACR,GAAM,KAAM,OAAM,EAAE,MAAM,EAAE,QAAQ,mBAAiB;AAG1D,UAAIS,IAAqB,EAAE,GAAGP,EAAA;AAG9B,YAAMQ,IAAiB,CAACC,GAAUC,GAAgBC,MAAoB;AACpE,YAAID,EAAK,WAAW,EAAG,QAAO,EAAE,GAAGD,GAAK,GAAGE,EAAA;AAE3C,cAAM,CAACC,GAAO,GAAGC,CAAI,IAAIH,GACnBI,IAAYL,IAAMG,CAAK,KAAK,CAAA;AAElC,eAAO;AAAA,UACL,GAAGH;AAAA,UACH,CAACG,CAAK,GAAGJ,EAAeM,GAAWD,GAAMF,CAAK;AAAA,QAAA;AAAA,MAElD;AAGA,MAAAJ,IAAqBC,EAAeD,GAAoBN,GAAYK,CAAM,GAE1E,MAAMF,EAAsB;AAAA,QAC1B,UAAUN,EAAK;AAAA,QACf,WAAWS;AAAA;AAAA,QAEX,sBAAsB;AAAA,MAAA,CACvB,EAAE,OAAA;AAAA,IACL,SAASQ,GAAY;AACnB,cAAQ,MAAMA,CAAK,GACnBC,EAAM,MAAMD,EAAM,MAAM,MAAM;AAAA,IAChC;AAAA,EACF,GAEyC,EAAE,WAAW,IAAM;AAC9D;"}
1
+ {"version":3,"file":"useUserProjectConfig.es.js","sources":["../../../../src/hooks/useUserProjectConfig.ts"],"sourcesContent":["import { useSetFrontendPreferencesMutation } from '@shared/api'\nimport { useGlobalContext } from '@shared/context'\nimport { toast } from 'react-toastify'\n\ntype Props = {\n selectors?: (string | undefined | null)[]\n init?: any\n}\n\ntype Result = [\n Record<string, any>,\n (config: Record<string, any>) => Promise<void>,\n { isSuccess: boolean },\n]\n\nexport const useUserProjectConfig = ({ selectors = [], init }: Props): Result => {\n // GET CURRENT USER\n const { user } = useGlobalContext()\n // extract out columns config for project\n const { data: { frontendPreferences: preferences = {} } = {} } = user || {}\n\n const configPath = selectors\n .filter((selector) => selector !== undefined && selector !== null)\n .map((selector) => selector.replace(/\\s/g, ''))\n // Start with the root preferences\n let userConfig = preferences\n for (const selector of configPath) {\n userConfig = userConfig?.[selector]\n }\n\n userConfig = userConfig || init || {}\n\n const [updateUserPreferences] = useSetFrontendPreferencesMutation()\n\n // update the user preferences when the columns config changes\n const updateProjectConfig = async (config: Record<string, any>) => {\n try {\n if (!user?.name) throw { data: { detail: 'User not found' } }\n\n // Set the updated config at the correct nested path using only selectors\n let updatedPreferences = { ...preferences }\n\n // Helper function to set nested value\n const setNestedValue = (obj: any, path: string[], value: any): any => {\n if (path.length === 0) return { ...obj, ...value }\n\n const [first, ...rest] = path\n const nestedObj = obj?.[first] || {}\n\n return {\n ...obj,\n [first]: setNestedValue(nestedObj, rest, value),\n }\n }\n\n // Use the helper to set the value at the correct path\n updatedPreferences = setNestedValue(updatedPreferences, configPath, config)\n\n await updateUserPreferences({\n userName: user.name,\n patchData: updatedPreferences,\n // @ts-expect-error - disableInvalidations is not in the api\n disableInvalidations: true,\n }).unwrap()\n } catch (error: any) {\n console.error(error)\n toast.error(error.data?.detail)\n }\n }\n\n return [userConfig, updateProjectConfig, { isSuccess: true }]\n}\n"],"names":["useUserProjectConfig","selectors","init","user","useGlobalContext","preferences","configPath","selector","userConfig","updateUserPreferences","useSetFrontendPreferencesMutation","config","updatedPreferences","setNestedValue","obj","path","value","first","rest","nestedObj","error","toast"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,MAAMA,KAAuB,CAAC,EAAE,WAAAC,IAAY,CAAA,GAAI,MAAAC,QAA0B;AAE/E,QAAM,EAAE,MAAAC,EAAA,IAASC,EAAA,GAEX,EAAE,MAAM,EAAE,qBAAqBC,IAAc,CAAA,MAAO,CAAA,MAAOF,KAAQ,CAAA,GAEnEG,IAAaL,EAChB,OAAO,CAACM,MAAuCA,KAAa,IAAI,EAChE,IAAI,CAACA,MAAaA,EAAS,QAAQ,OAAO,EAAE,CAAC;AAEhD,MAAIC,IAAaH;AACjB,aAAWE,KAAYD;AACrB,IAAAE,IAAaA,IAAaD,CAAQ;AAGpC,EAAAC,IAAaA,KAAcN,KAAQ,CAAA;AAEnC,QAAM,CAACO,CAAqB,IAAIC,EAAA;AAsChC,SAAO,CAACF,GAnCoB,OAAOG,MAAgC;AACjE,QAAI;AACF,UAAI,CAACR,GAAM,KAAM,OAAM,EAAE,MAAM,EAAE,QAAQ,mBAAiB;AAG1D,UAAIS,IAAqB,EAAE,GAAGP,EAAA;AAG9B,YAAMQ,IAAiB,CAACC,GAAUC,GAAgBC,MAAoB;AACpE,YAAID,EAAK,WAAW,EAAG,QAAO,EAAE,GAAGD,GAAK,GAAGE,EAAA;AAE3C,cAAM,CAACC,GAAO,GAAGC,CAAI,IAAIH,GACnBI,IAAYL,IAAMG,CAAK,KAAK,CAAA;AAElC,eAAO;AAAA,UACL,GAAGH;AAAA,UACH,CAACG,CAAK,GAAGJ,EAAeM,GAAWD,GAAMF,CAAK;AAAA,QAAA;AAAA,MAElD;AAGA,MAAAJ,IAAqBC,EAAeD,GAAoBN,GAAYK,CAAM,GAE1E,MAAMF,EAAsB;AAAA,QAC1B,UAAUN,EAAK;AAAA,QACf,WAAWS;AAAA;AAAA,QAEX,sBAAsB;AAAA,MAAA,CACvB,EAAE,OAAA;AAAA,IACL,SAASQ,GAAY;AACnB,cAAQ,MAAMA,CAAK,GACnBC,EAAM,MAAMD,EAAM,MAAM,MAAM;AAAA,IAChC;AAAA,EACF,GAEyC,EAAE,WAAW,IAAM;AAC9D;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function B(s){const{columns:r=[],groupBy:i,groupSortByDesc:n,showEmptyGroups:o,sortBy:t,sortDesc:c,rowHeight:d}=s||{},l={},a={left:[],right:[]},g=[],h={};r.forEach(y=>{const{name:u,visible:v,pinned:C,width:m}=y;l[u]=v??!1,g.push(u),C&&a.left?.push(u),m!==void 0&&(h[u]=m)});const p=t?[{id:t,desc:c||!1}]:[];let e;if(typeof i=="string"&&i.length>0)e={id:i,desc:n??!1};else if(Array.isArray(i)){const y=i.find(u=>typeof u=="string"&&u.length>0);y?e={id:y,desc:n??!1}:e=void 0}else e=void 0;return{columnVisibility:l,columnPinning:a,columnOrder:g,columnSizing:h,sorting:p,groupBy:e,groupByConfig:{showEmpty:o||!1,entityType:""},rowHeight:d??34}}function S(s,r,i){const n=[...s],o=r.filter(t=>!s.includes(t)&&i.has(t));return[...n,...o]}function w(s,r,i,n){const o=new Set;return Object.keys(s).forEach(t=>o.add(t)),Object.keys(r).forEach(t=>o.add(t)),i.left?.forEach(t=>o.add(t)),i.right?.forEach(t=>o.add(t)),n?.forEach(t=>o.add(t)),o}function E(s,r,i,n){const o={name:s};r.hasOwnProperty(s)&&(o.visible=r[s]);const t=i.left?.includes(s),c=i.right?.includes(s);return(t||c)&&(o.pinned=!0),n[s]!==void 0&&(o.width=n[s]),o}function T(s,r){const{columnVisibility:i,columnPinning:n,columnOrder:o,columnSizing:t,sorting:c,groupBy:d,groupByConfig:l,rowHeight:a}=s,g=w(i,t,n,r||[]),e={columns:S(o,r||[],g).map(f=>E(f,i,n,t))};if(d){const f=Array.isArray(d.id)?d.id[0]:d.id;e.groupBy=f||void 0,e.groupSortByDesc=d.desc??!1}else e.groupBy=void 0,e.groupSortByDesc=void 0;if(l?.showEmpty!==void 0&&(e.showEmptyGroups=l.showEmpty),c)if(c.length>0){const f=c[0];e.sortBy=f.id,e.sortDesc=f.desc}else e.sortBy=void 0,e.sortDesc=void 0;return a!==void 0&&(e.rowHeight=a),e}exports.convertColumnConfigToTanstackStates=B;exports.convertTanstackStatesToColumnConfig=T;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("../containers/ProjectTreeTable/constants.cjs.js"),T=new Set([O.ROW_SELECTION_COLUMN_ID,O.DRAG_HANDLE_COLUMN_ID]);function b(t){const{columns:e=[],groupBy:i,groupSortByDesc:n,showEmptyGroups:r,sortBy:o,sortDesc:l,rowHeight:c}=t||{},y={},u={left:[],right:[]},a=[],g={},h={},p={},S={};e.forEach(m=>{const{name:f,visible:D,pinned:_,width:v,summary:B,summaryScope:E,summaryFormat:w}=m;T.has(f)||(y[f]=D??!1,a.push(f),_&&u.left?.push(f),v!==void 0&&(g[f]=v),B&&(h[f]=B),E&&(p[f]=E),w&&(S[f]=w))});const C=o?[{id:o,desc:l||!1}]:[];let s;if(typeof i=="string"&&i.length>0)s={id:i,desc:n??!1};else if(Array.isArray(i)){const m=i.find(f=>typeof f=="string"&&f.length>0);m?s={id:m,desc:n??!1}:s=void 0}else s=void 0;return{columnVisibility:y,columnPinning:u,columnOrder:a,columnSizing:g,columnSummaries:h,columnSummaryScopes:p,columnSummaryFormats:S,sorting:C,groupBy:s,groupByConfig:{showEmpty:r||!1,entityType:""},rowHeight:c??34}}function A(t,e,i){const n=[...t],r=e.filter(o=>!t.includes(o)&&i.has(o));return[...n,...r]}function L(t,e,i,n){const r=new Set;return Object.keys(t).forEach(o=>r.add(o)),Object.keys(e).forEach(o=>r.add(o)),i.left?.forEach(o=>r.add(o)),i.right?.forEach(o=>r.add(o)),n?.forEach(o=>r.add(o)),r}function k(t,e,i,n,r,o,l){const c={name:t,visible:!!e[t]};r[t]&&(c.summary=r[t]),o[t]&&(c.summaryScope=o[t]),l[t]&&(c.summaryFormat=l[t]),e.hasOwnProperty(t)&&(c.visible=e[t]);const y=i.left?.includes(t),u=i.right?.includes(t);return(y||u)&&(c.pinned=!0),n[t]!==void 0&&(c.width=n[t]),c}function H(t,e){const{columnVisibility:i,columnPinning:n,columnOrder:r,columnSizing:o,columnSummaries:l={},columnSummaryScopes:c={},columnSummaryFormats:y={},sorting:u,groupBy:a,groupByConfig:g,rowHeight:h}=t,p=L(i,o,n,e||[]),s={columns:A(r,e||[],p).filter(d=>!T.has(d)).map(d=>k(d,i,n,o,l,c,y))};if(a){const d=Array.isArray(a.id)?a.id[0]:a.id;s.groupBy=d||void 0,s.groupSortByDesc=a.desc??!1}else s.groupBy=void 0,s.groupSortByDesc=void 0;if(g?.showEmpty!==void 0&&(s.showEmptyGroups=g.showEmpty),u)if(u.length>0){const d=u[0];s.sortBy=d.id,s.sortDesc=d.desc}else s.sortBy=void 0,s.sortDesc=void 0;return h!==void 0&&(s.rowHeight=h),s}exports.convertColumnConfigToTanstackStates=b;exports.convertTanstackStatesToColumnConfig=H;
2
2
  //# sourceMappingURL=columnConfigConverter.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"columnConfigConverter.cjs.js","sources":["../../../../src/util/columnConfigConverter.ts"],"sourcesContent":["import {\n VisibilityState,\n ColumnPinningState,\n ColumnOrderState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ColumnItemModel, OverviewSettings } from '@shared/api/generated/views'\nimport { ColumnsConfig, TableGroupBy } from '@shared/containers'\nimport { GroupByConfig } from '@shared/containers/ProjectTreeTable/components/GroupSettingsFallback'\n\n/**\n * Converts ColumnItemModel array from OverviewSettings to TanStack table states\n */\nexport function convertColumnConfigToTanstackStates(settings: OverviewSettings): ColumnsConfig {\n const {\n columns = [],\n groupBy: groupByField,\n groupSortByDesc,\n showEmptyGroups,\n sortBy,\n sortDesc,\n rowHeight,\n } = settings || {}\n\n // Initialize state objects\n const columnVisibility: VisibilityState = {}\n const columnPinning: ColumnPinningState = { left: [], right: [] }\n const columnOrder: ColumnOrderState = []\n const columnSizing: ColumnSizingState = {}\n\n // Process each column from the settings\n columns.forEach((column) => {\n const { name, visible, pinned, width } = column\n\n // Column visibility: undefined means hidden (opt-in model)\n columnVisibility[name] = visible ?? false\n\n // Column order: maintain the order from the settings\n columnOrder.push(name)\n\n // Column pinning: assuming pinned: true means left pinning\n if (pinned) {\n columnPinning.left?.push(name)\n }\n\n // Column sizing: set width if provided\n if (width !== undefined) {\n columnSizing[name] = width\n }\n })\n\n // Handle sorting\n const sorting: SortingState = sortBy ? [{ id: sortBy, desc: sortDesc || false }] : []\n\n // Handle grouping\n let groupBy: TableGroupBy | undefined\n if (typeof groupByField === 'string' && groupByField.length > 0) {\n groupBy = { id: groupByField, desc: groupSortByDesc ?? false }\n } else if (Array.isArray(groupByField)) {\n const first = groupByField.find((v) => typeof v === 'string' && v.length > 0)\n if (first) {\n groupBy = { id: first, desc: groupSortByDesc ?? false }\n } else {\n groupBy = undefined\n }\n } else {\n groupBy = undefined\n }\n\n const groupByConfig: GroupByConfig = {\n showEmpty: showEmptyGroups || false,\n entityType: '',\n }\n\n return {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n sorting,\n groupBy,\n groupByConfig,\n rowHeight: rowHeight ?? 34,\n }\n}\n\n/**\n * Determines the final column order based on columnOrder and allColumnIds\n * - Columns in columnOrder come first (in their specified order)\n * - Remaining columns follow the order from allColumnIds\n */\nfunction determineColumnOrder(\n columnOrder: ColumnOrderState,\n allColumnIds: string[],\n columnsWithState: Set<string>,\n): string[] {\n // Start with columns from columnOrder (these have explicit positioning)\n const orderedColumns = [...columnOrder]\n\n // Add remaining columns from allColumnIds that aren't already in columnOrder\n const remainingColumns = allColumnIds.filter(\n (columnId) => !columnOrder.includes(columnId) && columnsWithState.has(columnId),\n )\n\n return [...orderedColumns, ...remainingColumns]\n}\n\n/**\n * Collects all columns that have any state (visibility, sizing, pinning, etc.)\n */\nfunction collectColumnsWithState(\n columnVisibility: VisibilityState,\n columnSizing: ColumnSizingState,\n columnPinning: ColumnPinningState,\n allColumnIds: string[],\n): Set<string> {\n const columnsWithState = new Set<string>()\n\n // Add columns with visibility state\n Object.keys(columnVisibility).forEach((col) => columnsWithState.add(col))\n\n // Add columns with sizing state\n Object.keys(columnSizing).forEach((col) => columnsWithState.add(col))\n\n // Add pinned columns\n columnPinning.left?.forEach((col) => columnsWithState.add(col))\n columnPinning.right?.forEach((col) => columnsWithState.add(col))\n\n // Add any additional columns from allColumnIds\n allColumnIds?.forEach((col) => columnsWithState.add(col))\n\n return columnsWithState\n}\n\n/**\n * Creates a ColumnItemModel for a given column name with all applicable state\n */\nfunction createColumnItem(\n columnName: string,\n columnVisibility: VisibilityState,\n columnPinning: ColumnPinningState,\n columnSizing: ColumnSizingState,\n): ColumnItemModel {\n const column: ColumnItemModel = {\n name: columnName,\n }\n\n // Set visibility if defined in state\n if (columnVisibility.hasOwnProperty(columnName)) {\n column.visible = columnVisibility[columnName]\n }\n\n // Set pinning if column is pinned\n const isPinnedLeft = columnPinning.left?.includes(columnName)\n const isPinnedRight = columnPinning.right?.includes(columnName)\n\n if (isPinnedLeft || isPinnedRight) {\n column.pinned = true\n }\n\n // Set width if defined in state\n if (columnSizing[columnName] !== undefined) {\n column.width = columnSizing[columnName]\n }\n\n return column\n}\n\n/**\n * Converts TanStack table states back to OverviewSettings format\n *\n * Column ordering logic:\n * 1. Columns in columnOrder appear first (in their specified order)\n * 2. Remaining columns follow the order from allColumnIds\n * 3. Only columns with state (visibility, sizing, pinning) or in allColumnIds are included\n */\nexport function convertTanstackStatesToColumnConfig(\n states: ColumnsConfig,\n allColumnIds?: string[],\n): OverviewSettings {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n sorting,\n groupBy,\n groupByConfig,\n rowHeight,\n } = states\n\n // Collect all columns that have any state\n const columnsWithState = collectColumnsWithState(\n columnVisibility,\n columnSizing,\n columnPinning,\n allColumnIds || [],\n )\n\n // Determine the final column order\n const finalColumnOrder = determineColumnOrder(columnOrder, allColumnIds || [], columnsWithState)\n\n // Create ColumnItemModel for each column in the determined order\n const columns: ColumnItemModel[] = finalColumnOrder.map((columnName) =>\n createColumnItem(columnName, columnVisibility, columnPinning, columnSizing),\n )\n\n // Build the result object\n const result: OverviewSettings = {\n columns,\n }\n\n // Add grouping information if present\n if (groupBy) {\n const id = Array.isArray(groupBy.id) ? groupBy.id[0] : groupBy.id\n result.groupBy = id || undefined\n result.groupSortByDesc = groupBy.desc ?? false\n } else {\n result.groupBy = undefined\n result.groupSortByDesc = undefined\n }\n\n if (groupByConfig?.showEmpty !== undefined) {\n result.showEmptyGroups = groupByConfig.showEmpty\n }\n\n // Add sorting information if present\n if (sorting) {\n if (sorting.length > 0) {\n // find the column that is being sorted\n const firstSort = sorting[0]\n result.sortBy = firstSort.id\n result.sortDesc = firstSort.desc\n } else {\n // remove sorting\n result.sortBy = undefined\n result.sortDesc = undefined\n }\n }\n\n // Add row height if present\n if (rowHeight !== undefined) {\n result.rowHeight = rowHeight\n }\n\n return result\n}\n"],"names":["convertColumnConfigToTanstackStates","settings","columns","groupByField","groupSortByDesc","showEmptyGroups","sortBy","sortDesc","rowHeight","columnVisibility","columnPinning","columnOrder","columnSizing","column","name","visible","pinned","width","sorting","groupBy","first","v","determineColumnOrder","allColumnIds","columnsWithState","orderedColumns","remainingColumns","columnId","collectColumnsWithState","col","createColumnItem","columnName","isPinnedLeft","isPinnedRight","convertTanstackStatesToColumnConfig","states","groupByConfig","result","id","firstSort"],"mappings":"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"}
1
+ {"version":3,"file":"columnConfigConverter.cjs.js","sources":["../../../../src/util/columnConfigConverter.ts"],"sourcesContent":["import {\n VisibilityState,\n ColumnPinningState,\n ColumnOrderState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ColumnItemModel, OverviewSettings } from '@shared/api/generated/views'\nimport { ColumnsConfig, TableGroupBy } from '@shared/containers'\nimport { GroupByConfig } from '@shared/containers/ProjectTreeTable/components/GroupSettingsFallback'\nimport {\n SummaryCalc,\n SummaryFormat,\n RowScope,\n} from '@shared/containers/ProjectTreeTable/types/summaryTypes'\nimport {\n ROW_SELECTION_COLUMN_ID,\n DRAG_HANDLE_COLUMN_ID,\n} from '@shared/containers/ProjectTreeTable/constants'\n\n// These columns are always injected by ColumnSettingsProvider and must never be\n// persisted or loaded from saved view settings.\nconst INTERNAL_COLUMN_IDS = new Set([ROW_SELECTION_COLUMN_ID, DRAG_HANDLE_COLUMN_ID])\n\n// Backend doesn't store summary/summaryScope/summaryFormat on ColumnItemModel yet\ntype ColumnItem = ColumnItemModel & {\n summary?: SummaryCalc\n summaryScope?: RowScope\n summaryFormat?: SummaryFormat\n}\n\n/**\n * Converts ColumnItemModel array from OverviewSettings to TanStack table states\n */\nexport function convertColumnConfigToTanstackStates(settings: OverviewSettings): ColumnsConfig {\n const {\n columns = [],\n groupBy: groupByField,\n groupSortByDesc,\n showEmptyGroups,\n sortBy,\n sortDesc,\n rowHeight,\n } = settings || {}\n\n // Initialize state objects\n const columnVisibility: VisibilityState = {}\n const columnPinning: ColumnPinningState = { left: [], right: [] }\n const columnOrder: ColumnOrderState = []\n const columnSizing: ColumnSizingState = {}\n const columnSummaries: Record<string, SummaryCalc> = {}\n const columnSummaryScopes: Record<string, RowScope> = {}\n const columnSummaryFormats: Record<string, SummaryFormat> = {}\n\n // Process each column from the settings\n columns.forEach((column) => {\n const { name, visible, pinned, width, summary, summaryScope, summaryFormat } =\n column as ColumnItem\n\n // Skip internal columns — they are always injected by ColumnSettingsProvider\n if (INTERNAL_COLUMN_IDS.has(name)) return\n\n // Column visibility: undefined means hidden (opt-in model)\n columnVisibility[name] = visible ?? false\n\n // Column order: maintain the order from the settings\n columnOrder.push(name)\n\n // Column pinning: assuming pinned: true means left pinning\n if (pinned) {\n columnPinning.left?.push(name)\n }\n\n // Column sizing: set width if provided\n if (width !== undefined) {\n columnSizing[name] = width\n }\n\n // Column summary calc type\n if (summary) {\n columnSummaries[name] = summary\n }\n\n // Column summary row scope\n if (summaryScope) {\n columnSummaryScopes[name] = summaryScope\n }\n\n // Column summary display format\n if (summaryFormat) {\n columnSummaryFormats[name] = summaryFormat\n }\n })\n\n // Handle sorting\n const sorting: SortingState = sortBy ? [{ id: sortBy, desc: sortDesc || false }] : []\n\n // Handle grouping\n let groupBy: TableGroupBy | undefined\n if (typeof groupByField === 'string' && groupByField.length > 0) {\n groupBy = { id: groupByField, desc: groupSortByDesc ?? false }\n } else if (Array.isArray(groupByField)) {\n const first = groupByField.find((v) => typeof v === 'string' && v.length > 0)\n if (first) {\n groupBy = { id: first, desc: groupSortByDesc ?? false }\n } else {\n groupBy = undefined\n }\n } else {\n groupBy = undefined\n }\n\n const groupByConfig: GroupByConfig = {\n showEmpty: showEmptyGroups || false,\n entityType: '',\n }\n\n return {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n columnSummaries,\n columnSummaryScopes,\n columnSummaryFormats,\n sorting,\n groupBy,\n groupByConfig,\n rowHeight: rowHeight ?? 34,\n }\n}\n\n/**\n * Determines the final column order based on columnOrder and allColumnIds\n * - Columns in columnOrder come first (in their specified order)\n * - Remaining columns follow the order from allColumnIds\n */\nfunction determineColumnOrder(\n columnOrder: ColumnOrderState,\n allColumnIds: string[],\n columnsWithState: Set<string>,\n): string[] {\n // Start with columns from columnOrder (these have explicit positioning)\n const orderedColumns = [...columnOrder]\n\n // Add remaining columns from allColumnIds that aren't already in columnOrder\n const remainingColumns = allColumnIds.filter(\n (columnId) => !columnOrder.includes(columnId) && columnsWithState.has(columnId),\n )\n\n return [...orderedColumns, ...remainingColumns]\n}\n\n/**\n * Collects all columns that have any state (visibility, sizing, pinning, etc.)\n */\nfunction collectColumnsWithState(\n columnVisibility: VisibilityState,\n columnSizing: ColumnSizingState,\n columnPinning: ColumnPinningState,\n allColumnIds: string[],\n): Set<string> {\n const columnsWithState = new Set<string>()\n\n // Add columns with visibility state\n Object.keys(columnVisibility).forEach((col) => columnsWithState.add(col))\n\n // Add columns with sizing state\n Object.keys(columnSizing).forEach((col) => columnsWithState.add(col))\n\n // Add pinned columns\n columnPinning.left?.forEach((col) => columnsWithState.add(col))\n columnPinning.right?.forEach((col) => columnsWithState.add(col))\n\n // Add any additional columns from allColumnIds\n allColumnIds?.forEach((col) => columnsWithState.add(col))\n\n return columnsWithState\n}\n\n/**\n * Creates a ColumnItemModel for a given column name with all applicable state\n */\nfunction createColumnItem(\n columnName: string,\n columnVisibility: VisibilityState,\n columnPinning: ColumnPinningState,\n columnSizing: ColumnSizingState,\n columnSummaries: Record<string, SummaryCalc>,\n columnSummaryScopes: Record<string, RowScope>,\n columnSummaryFormats: Record<string, SummaryFormat>,\n): ColumnItem {\n const column: ColumnItem = {\n name: columnName,\n visible: !!columnVisibility[columnName],\n }\n\n // Set summary calc type if chosen for this column\n if (columnSummaries[columnName]) {\n column.summary = columnSummaries[columnName]\n }\n\n // Set summary row scope if chosen for this column\n if (columnSummaryScopes[columnName]) {\n column.summaryScope = columnSummaryScopes[columnName]\n }\n\n // Set summary display format if chosen for this column\n if (columnSummaryFormats[columnName]) {\n column.summaryFormat = columnSummaryFormats[columnName]\n }\n\n // Set visibility if defined in state\n if (columnVisibility.hasOwnProperty(columnName)) {\n column.visible = columnVisibility[columnName]\n }\n\n // Set pinning if column is pinned\n const isPinnedLeft = columnPinning.left?.includes(columnName)\n const isPinnedRight = columnPinning.right?.includes(columnName)\n\n if (isPinnedLeft || isPinnedRight) {\n column.pinned = true\n }\n\n // Set width if defined in state\n if (columnSizing[columnName] !== undefined) {\n column.width = columnSizing[columnName]\n }\n\n return column\n}\n\n/**\n * Converts TanStack table states back to OverviewSettings format\n *\n * Column ordering logic:\n * 1. Columns in columnOrder appear first (in their specified order)\n * 2. Remaining columns follow the order from allColumnIds\n * 3. Only columns with state (visibility, sizing, pinning) or in allColumnIds are included\n */\nexport function convertTanstackStatesToColumnConfig(\n states: ColumnsConfig,\n allColumnIds?: string[],\n): OverviewSettings {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n columnSummaries = {},\n columnSummaryScopes = {},\n columnSummaryFormats = {},\n sorting,\n groupBy,\n groupByConfig,\n rowHeight,\n } = states\n\n // Collect all columns that have any state\n const columnsWithState = collectColumnsWithState(\n columnVisibility,\n columnSizing,\n columnPinning,\n allColumnIds || [],\n )\n\n // Determine the final column order, excluding internal columns\n const finalColumnOrder = determineColumnOrder(\n columnOrder,\n allColumnIds || [],\n columnsWithState,\n ).filter((id) => !INTERNAL_COLUMN_IDS.has(id))\n\n // Create ColumnItemModel for each column in the determined order\n const columns: ColumnItem[] = finalColumnOrder.map((columnName) =>\n createColumnItem(\n columnName,\n columnVisibility,\n columnPinning,\n columnSizing,\n columnSummaries,\n columnSummaryScopes,\n columnSummaryFormats,\n ),\n )\n\n // Build the result object\n const result: OverviewSettings = {\n columns,\n }\n\n // Add grouping information if present\n if (groupBy) {\n const id = Array.isArray(groupBy.id) ? groupBy.id[0] : groupBy.id\n result.groupBy = id || undefined\n result.groupSortByDesc = groupBy.desc ?? false\n } else {\n result.groupBy = undefined\n result.groupSortByDesc = undefined\n }\n\n if (groupByConfig?.showEmpty !== undefined) {\n result.showEmptyGroups = groupByConfig.showEmpty\n }\n\n // Add sorting information if present\n if (sorting) {\n if (sorting.length > 0) {\n // find the column that is being sorted\n const firstSort = sorting[0]\n result.sortBy = firstSort.id\n result.sortDesc = firstSort.desc\n } else {\n // remove sorting\n result.sortBy = undefined\n result.sortDesc = undefined\n }\n }\n\n // Add row height if present\n if (rowHeight !== undefined) {\n result.rowHeight = rowHeight\n }\n\n return result\n}\n"],"names":["INTERNAL_COLUMN_IDS","ROW_SELECTION_COLUMN_ID","DRAG_HANDLE_COLUMN_ID","convertColumnConfigToTanstackStates","settings","columns","groupByField","groupSortByDesc","showEmptyGroups","sortBy","sortDesc","rowHeight","columnVisibility","columnPinning","columnOrder","columnSizing","columnSummaries","columnSummaryScopes","columnSummaryFormats","column","name","visible","pinned","width","summary","summaryScope","summaryFormat","sorting","groupBy","first","v","determineColumnOrder","allColumnIds","columnsWithState","orderedColumns","remainingColumns","columnId","collectColumnsWithState","col","createColumnItem","columnName","isPinnedLeft","isPinnedRight","convertTanstackStatesToColumnConfig","states","groupByConfig","result","id","firstSort"],"mappings":"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"}
@@ -1,93 +1,114 @@
1
- function S(s) {
1
+ import { ROW_SELECTION_COLUMN_ID as A, DRAG_HANDLE_COLUMN_ID as L } from "../containers/ProjectTreeTable/constants.es.js";
2
+ const O = /* @__PURE__ */ new Set([A, L]);
3
+ function F(t) {
2
4
  const {
3
- columns: r = [],
4
- groupBy: e,
5
+ columns: e = [],
6
+ groupBy: i,
5
7
  groupSortByDesc: n,
6
- showEmptyGroups: o,
7
- sortBy: t,
8
- sortDesc: c,
9
- rowHeight: d
10
- } = s || {}, l = {}, g = { left: [], right: [] }, a = [], h = {};
11
- r.forEach((y) => {
12
- const { name: u, visible: B, pinned: v, width: m } = y;
13
- l[u] = B ?? !1, a.push(u), v && g.left?.push(u), m !== void 0 && (h[u] = m);
8
+ showEmptyGroups: r,
9
+ sortBy: o,
10
+ sortDesc: y,
11
+ rowHeight: c
12
+ } = t || {}, l = {}, u = { left: [], right: [] }, a = [], g = {}, h = {}, p = {}, S = {};
13
+ e.forEach((m) => {
14
+ const { name: f, visible: D, pinned: _, width: v, summary: B, summaryScope: E, summaryFormat: w } = m;
15
+ O.has(f) || (l[f] = D ?? !1, a.push(f), _ && u.left?.push(f), v !== void 0 && (g[f] = v), B && (h[f] = B), E && (p[f] = E), w && (S[f] = w));
14
16
  });
15
- const p = t ? [{ id: t, desc: c || !1 }] : [];
16
- let i;
17
- if (typeof e == "string" && e.length > 0)
18
- i = { id: e, desc: n ?? !1 };
19
- else if (Array.isArray(e)) {
20
- const y = e.find((u) => typeof u == "string" && u.length > 0);
21
- y ? i = { id: y, desc: n ?? !1 } : i = void 0;
17
+ const C = o ? [{ id: o, desc: y || !1 }] : [];
18
+ let s;
19
+ if (typeof i == "string" && i.length > 0)
20
+ s = { id: i, desc: n ?? !1 };
21
+ else if (Array.isArray(i)) {
22
+ const m = i.find((f) => typeof f == "string" && f.length > 0);
23
+ m ? s = { id: m, desc: n ?? !1 } : s = void 0;
22
24
  } else
23
- i = void 0;
25
+ s = void 0;
24
26
  return {
25
27
  columnVisibility: l,
26
- columnPinning: g,
28
+ columnPinning: u,
27
29
  columnOrder: a,
28
- columnSizing: h,
29
- sorting: p,
30
- groupBy: i,
30
+ columnSizing: g,
31
+ columnSummaries: h,
32
+ columnSummaryScopes: p,
33
+ columnSummaryFormats: S,
34
+ sorting: C,
35
+ groupBy: s,
31
36
  groupByConfig: {
32
- showEmpty: o || !1,
37
+ showEmpty: r || !1,
33
38
  entityType: ""
34
39
  },
35
- rowHeight: d ?? 34
40
+ rowHeight: c ?? 34
36
41
  };
37
42
  }
38
- function w(s, r, e) {
39
- const n = [...s], o = r.filter(
40
- (t) => !s.includes(t) && e.has(t)
43
+ function T(t, e, i) {
44
+ const n = [...t], r = e.filter(
45
+ (o) => !t.includes(o) && i.has(o)
41
46
  );
42
- return [...n, ...o];
47
+ return [...n, ...r];
43
48
  }
44
- function C(s, r, e, n) {
45
- const o = /* @__PURE__ */ new Set();
46
- return Object.keys(s).forEach((t) => o.add(t)), Object.keys(r).forEach((t) => o.add(t)), e.left?.forEach((t) => o.add(t)), e.right?.forEach((t) => o.add(t)), n?.forEach((t) => o.add(t)), o;
49
+ function b(t, e, i, n) {
50
+ const r = /* @__PURE__ */ new Set();
51
+ return Object.keys(t).forEach((o) => r.add(o)), Object.keys(e).forEach((o) => r.add(o)), i.left?.forEach((o) => r.add(o)), i.right?.forEach((o) => r.add(o)), n?.forEach((o) => r.add(o)), r;
47
52
  }
48
- function E(s, r, e, n) {
49
- const o = {
50
- name: s
53
+ function H(t, e, i, n, r, o, y) {
54
+ const c = {
55
+ name: t,
56
+ visible: !!e[t]
51
57
  };
52
- r.hasOwnProperty(s) && (o.visible = r[s]);
53
- const t = e.left?.includes(s), c = e.right?.includes(s);
54
- return (t || c) && (o.pinned = !0), n[s] !== void 0 && (o.width = n[s]), o;
58
+ r[t] && (c.summary = r[t]), o[t] && (c.summaryScope = o[t]), y[t] && (c.summaryFormat = y[t]), e.hasOwnProperty(t) && (c.visible = e[t]);
59
+ const l = i.left?.includes(t), u = i.right?.includes(t);
60
+ return (l || u) && (c.pinned = !0), n[t] !== void 0 && (c.width = n[t]), c;
55
61
  }
56
- function O(s, r) {
62
+ function I(t, e) {
57
63
  const {
58
- columnVisibility: e,
64
+ columnVisibility: i,
59
65
  columnPinning: n,
60
- columnOrder: o,
61
- columnSizing: t,
62
- sorting: c,
63
- groupBy: d,
64
- groupByConfig: l,
65
- rowHeight: g
66
- } = s, a = C(
67
- e,
68
- t,
66
+ columnOrder: r,
67
+ columnSizing: o,
68
+ columnSummaries: y = {},
69
+ columnSummaryScopes: c = {},
70
+ columnSummaryFormats: l = {},
71
+ sorting: u,
72
+ groupBy: a,
73
+ groupByConfig: g,
74
+ rowHeight: h
75
+ } = t, p = b(
76
+ i,
77
+ o,
69
78
  n,
70
- r || []
71
- ), i = {
72
- columns: w(o, r || [], a).map(
73
- (f) => E(f, e, n, t)
79
+ e || []
80
+ ), s = {
81
+ columns: T(
82
+ r,
83
+ e || [],
84
+ p
85
+ ).filter((d) => !O.has(d)).map(
86
+ (d) => H(
87
+ d,
88
+ i,
89
+ n,
90
+ o,
91
+ y,
92
+ c,
93
+ l
94
+ )
74
95
  )
75
96
  };
76
- if (d) {
77
- const f = Array.isArray(d.id) ? d.id[0] : d.id;
78
- i.groupBy = f || void 0, i.groupSortByDesc = d.desc ?? !1;
97
+ if (a) {
98
+ const d = Array.isArray(a.id) ? a.id[0] : a.id;
99
+ s.groupBy = d || void 0, s.groupSortByDesc = a.desc ?? !1;
79
100
  } else
80
- i.groupBy = void 0, i.groupSortByDesc = void 0;
81
- if (l?.showEmpty !== void 0 && (i.showEmptyGroups = l.showEmpty), c)
82
- if (c.length > 0) {
83
- const f = c[0];
84
- i.sortBy = f.id, i.sortDesc = f.desc;
101
+ s.groupBy = void 0, s.groupSortByDesc = void 0;
102
+ if (g?.showEmpty !== void 0 && (s.showEmptyGroups = g.showEmpty), u)
103
+ if (u.length > 0) {
104
+ const d = u[0];
105
+ s.sortBy = d.id, s.sortDesc = d.desc;
85
106
  } else
86
- i.sortBy = void 0, i.sortDesc = void 0;
87
- return g !== void 0 && (i.rowHeight = g), i;
107
+ s.sortBy = void 0, s.sortDesc = void 0;
108
+ return h !== void 0 && (s.rowHeight = h), s;
88
109
  }
89
110
  export {
90
- S as convertColumnConfigToTanstackStates,
91
- O as convertTanstackStatesToColumnConfig
111
+ F as convertColumnConfigToTanstackStates,
112
+ I as convertTanstackStatesToColumnConfig
92
113
  };
93
114
  //# sourceMappingURL=columnConfigConverter.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"columnConfigConverter.es.js","sources":["../../../../src/util/columnConfigConverter.ts"],"sourcesContent":["import {\n VisibilityState,\n ColumnPinningState,\n ColumnOrderState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ColumnItemModel, OverviewSettings } from '@shared/api/generated/views'\nimport { ColumnsConfig, TableGroupBy } from '@shared/containers'\nimport { GroupByConfig } from '@shared/containers/ProjectTreeTable/components/GroupSettingsFallback'\n\n/**\n * Converts ColumnItemModel array from OverviewSettings to TanStack table states\n */\nexport function convertColumnConfigToTanstackStates(settings: OverviewSettings): ColumnsConfig {\n const {\n columns = [],\n groupBy: groupByField,\n groupSortByDesc,\n showEmptyGroups,\n sortBy,\n sortDesc,\n rowHeight,\n } = settings || {}\n\n // Initialize state objects\n const columnVisibility: VisibilityState = {}\n const columnPinning: ColumnPinningState = { left: [], right: [] }\n const columnOrder: ColumnOrderState = []\n const columnSizing: ColumnSizingState = {}\n\n // Process each column from the settings\n columns.forEach((column) => {\n const { name, visible, pinned, width } = column\n\n // Column visibility: undefined means hidden (opt-in model)\n columnVisibility[name] = visible ?? false\n\n // Column order: maintain the order from the settings\n columnOrder.push(name)\n\n // Column pinning: assuming pinned: true means left pinning\n if (pinned) {\n columnPinning.left?.push(name)\n }\n\n // Column sizing: set width if provided\n if (width !== undefined) {\n columnSizing[name] = width\n }\n })\n\n // Handle sorting\n const sorting: SortingState = sortBy ? [{ id: sortBy, desc: sortDesc || false }] : []\n\n // Handle grouping\n let groupBy: TableGroupBy | undefined\n if (typeof groupByField === 'string' && groupByField.length > 0) {\n groupBy = { id: groupByField, desc: groupSortByDesc ?? false }\n } else if (Array.isArray(groupByField)) {\n const first = groupByField.find((v) => typeof v === 'string' && v.length > 0)\n if (first) {\n groupBy = { id: first, desc: groupSortByDesc ?? false }\n } else {\n groupBy = undefined\n }\n } else {\n groupBy = undefined\n }\n\n const groupByConfig: GroupByConfig = {\n showEmpty: showEmptyGroups || false,\n entityType: '',\n }\n\n return {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n sorting,\n groupBy,\n groupByConfig,\n rowHeight: rowHeight ?? 34,\n }\n}\n\n/**\n * Determines the final column order based on columnOrder and allColumnIds\n * - Columns in columnOrder come first (in their specified order)\n * - Remaining columns follow the order from allColumnIds\n */\nfunction determineColumnOrder(\n columnOrder: ColumnOrderState,\n allColumnIds: string[],\n columnsWithState: Set<string>,\n): string[] {\n // Start with columns from columnOrder (these have explicit positioning)\n const orderedColumns = [...columnOrder]\n\n // Add remaining columns from allColumnIds that aren't already in columnOrder\n const remainingColumns = allColumnIds.filter(\n (columnId) => !columnOrder.includes(columnId) && columnsWithState.has(columnId),\n )\n\n return [...orderedColumns, ...remainingColumns]\n}\n\n/**\n * Collects all columns that have any state (visibility, sizing, pinning, etc.)\n */\nfunction collectColumnsWithState(\n columnVisibility: VisibilityState,\n columnSizing: ColumnSizingState,\n columnPinning: ColumnPinningState,\n allColumnIds: string[],\n): Set<string> {\n const columnsWithState = new Set<string>()\n\n // Add columns with visibility state\n Object.keys(columnVisibility).forEach((col) => columnsWithState.add(col))\n\n // Add columns with sizing state\n Object.keys(columnSizing).forEach((col) => columnsWithState.add(col))\n\n // Add pinned columns\n columnPinning.left?.forEach((col) => columnsWithState.add(col))\n columnPinning.right?.forEach((col) => columnsWithState.add(col))\n\n // Add any additional columns from allColumnIds\n allColumnIds?.forEach((col) => columnsWithState.add(col))\n\n return columnsWithState\n}\n\n/**\n * Creates a ColumnItemModel for a given column name with all applicable state\n */\nfunction createColumnItem(\n columnName: string,\n columnVisibility: VisibilityState,\n columnPinning: ColumnPinningState,\n columnSizing: ColumnSizingState,\n): ColumnItemModel {\n const column: ColumnItemModel = {\n name: columnName,\n }\n\n // Set visibility if defined in state\n if (columnVisibility.hasOwnProperty(columnName)) {\n column.visible = columnVisibility[columnName]\n }\n\n // Set pinning if column is pinned\n const isPinnedLeft = columnPinning.left?.includes(columnName)\n const isPinnedRight = columnPinning.right?.includes(columnName)\n\n if (isPinnedLeft || isPinnedRight) {\n column.pinned = true\n }\n\n // Set width if defined in state\n if (columnSizing[columnName] !== undefined) {\n column.width = columnSizing[columnName]\n }\n\n return column\n}\n\n/**\n * Converts TanStack table states back to OverviewSettings format\n *\n * Column ordering logic:\n * 1. Columns in columnOrder appear first (in their specified order)\n * 2. Remaining columns follow the order from allColumnIds\n * 3. Only columns with state (visibility, sizing, pinning) or in allColumnIds are included\n */\nexport function convertTanstackStatesToColumnConfig(\n states: ColumnsConfig,\n allColumnIds?: string[],\n): OverviewSettings {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n sorting,\n groupBy,\n groupByConfig,\n rowHeight,\n } = states\n\n // Collect all columns that have any state\n const columnsWithState = collectColumnsWithState(\n columnVisibility,\n columnSizing,\n columnPinning,\n allColumnIds || [],\n )\n\n // Determine the final column order\n const finalColumnOrder = determineColumnOrder(columnOrder, allColumnIds || [], columnsWithState)\n\n // Create ColumnItemModel for each column in the determined order\n const columns: ColumnItemModel[] = finalColumnOrder.map((columnName) =>\n createColumnItem(columnName, columnVisibility, columnPinning, columnSizing),\n )\n\n // Build the result object\n const result: OverviewSettings = {\n columns,\n }\n\n // Add grouping information if present\n if (groupBy) {\n const id = Array.isArray(groupBy.id) ? groupBy.id[0] : groupBy.id\n result.groupBy = id || undefined\n result.groupSortByDesc = groupBy.desc ?? false\n } else {\n result.groupBy = undefined\n result.groupSortByDesc = undefined\n }\n\n if (groupByConfig?.showEmpty !== undefined) {\n result.showEmptyGroups = groupByConfig.showEmpty\n }\n\n // Add sorting information if present\n if (sorting) {\n if (sorting.length > 0) {\n // find the column that is being sorted\n const firstSort = sorting[0]\n result.sortBy = firstSort.id\n result.sortDesc = firstSort.desc\n } else {\n // remove sorting\n result.sortBy = undefined\n result.sortDesc = undefined\n }\n }\n\n // Add row height if present\n if (rowHeight !== undefined) {\n result.rowHeight = rowHeight\n }\n\n return result\n}\n"],"names":["convertColumnConfigToTanstackStates","settings","columns","groupByField","groupSortByDesc","showEmptyGroups","sortBy","sortDesc","rowHeight","columnVisibility","columnPinning","columnOrder","columnSizing","column","name","visible","pinned","width","sorting","groupBy","first","v","determineColumnOrder","allColumnIds","columnsWithState","orderedColumns","remainingColumns","columnId","collectColumnsWithState","col","createColumnItem","columnName","isPinnedLeft","isPinnedRight","convertTanstackStatesToColumnConfig","states","groupByConfig","result","id","firstSort"],"mappings":"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"}
1
+ {"version":3,"file":"columnConfigConverter.es.js","sources":["../../../../src/util/columnConfigConverter.ts"],"sourcesContent":["import {\n VisibilityState,\n ColumnPinningState,\n ColumnOrderState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ColumnItemModel, OverviewSettings } from '@shared/api/generated/views'\nimport { ColumnsConfig, TableGroupBy } from '@shared/containers'\nimport { GroupByConfig } from '@shared/containers/ProjectTreeTable/components/GroupSettingsFallback'\nimport {\n SummaryCalc,\n SummaryFormat,\n RowScope,\n} from '@shared/containers/ProjectTreeTable/types/summaryTypes'\nimport {\n ROW_SELECTION_COLUMN_ID,\n DRAG_HANDLE_COLUMN_ID,\n} from '@shared/containers/ProjectTreeTable/constants'\n\n// These columns are always injected by ColumnSettingsProvider and must never be\n// persisted or loaded from saved view settings.\nconst INTERNAL_COLUMN_IDS = new Set([ROW_SELECTION_COLUMN_ID, DRAG_HANDLE_COLUMN_ID])\n\n// Backend doesn't store summary/summaryScope/summaryFormat on ColumnItemModel yet\ntype ColumnItem = ColumnItemModel & {\n summary?: SummaryCalc\n summaryScope?: RowScope\n summaryFormat?: SummaryFormat\n}\n\n/**\n * Converts ColumnItemModel array from OverviewSettings to TanStack table states\n */\nexport function convertColumnConfigToTanstackStates(settings: OverviewSettings): ColumnsConfig {\n const {\n columns = [],\n groupBy: groupByField,\n groupSortByDesc,\n showEmptyGroups,\n sortBy,\n sortDesc,\n rowHeight,\n } = settings || {}\n\n // Initialize state objects\n const columnVisibility: VisibilityState = {}\n const columnPinning: ColumnPinningState = { left: [], right: [] }\n const columnOrder: ColumnOrderState = []\n const columnSizing: ColumnSizingState = {}\n const columnSummaries: Record<string, SummaryCalc> = {}\n const columnSummaryScopes: Record<string, RowScope> = {}\n const columnSummaryFormats: Record<string, SummaryFormat> = {}\n\n // Process each column from the settings\n columns.forEach((column) => {\n const { name, visible, pinned, width, summary, summaryScope, summaryFormat } =\n column as ColumnItem\n\n // Skip internal columns — they are always injected by ColumnSettingsProvider\n if (INTERNAL_COLUMN_IDS.has(name)) return\n\n // Column visibility: undefined means hidden (opt-in model)\n columnVisibility[name] = visible ?? false\n\n // Column order: maintain the order from the settings\n columnOrder.push(name)\n\n // Column pinning: assuming pinned: true means left pinning\n if (pinned) {\n columnPinning.left?.push(name)\n }\n\n // Column sizing: set width if provided\n if (width !== undefined) {\n columnSizing[name] = width\n }\n\n // Column summary calc type\n if (summary) {\n columnSummaries[name] = summary\n }\n\n // Column summary row scope\n if (summaryScope) {\n columnSummaryScopes[name] = summaryScope\n }\n\n // Column summary display format\n if (summaryFormat) {\n columnSummaryFormats[name] = summaryFormat\n }\n })\n\n // Handle sorting\n const sorting: SortingState = sortBy ? [{ id: sortBy, desc: sortDesc || false }] : []\n\n // Handle grouping\n let groupBy: TableGroupBy | undefined\n if (typeof groupByField === 'string' && groupByField.length > 0) {\n groupBy = { id: groupByField, desc: groupSortByDesc ?? false }\n } else if (Array.isArray(groupByField)) {\n const first = groupByField.find((v) => typeof v === 'string' && v.length > 0)\n if (first) {\n groupBy = { id: first, desc: groupSortByDesc ?? false }\n } else {\n groupBy = undefined\n }\n } else {\n groupBy = undefined\n }\n\n const groupByConfig: GroupByConfig = {\n showEmpty: showEmptyGroups || false,\n entityType: '',\n }\n\n return {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n columnSummaries,\n columnSummaryScopes,\n columnSummaryFormats,\n sorting,\n groupBy,\n groupByConfig,\n rowHeight: rowHeight ?? 34,\n }\n}\n\n/**\n * Determines the final column order based on columnOrder and allColumnIds\n * - Columns in columnOrder come first (in their specified order)\n * - Remaining columns follow the order from allColumnIds\n */\nfunction determineColumnOrder(\n columnOrder: ColumnOrderState,\n allColumnIds: string[],\n columnsWithState: Set<string>,\n): string[] {\n // Start with columns from columnOrder (these have explicit positioning)\n const orderedColumns = [...columnOrder]\n\n // Add remaining columns from allColumnIds that aren't already in columnOrder\n const remainingColumns = allColumnIds.filter(\n (columnId) => !columnOrder.includes(columnId) && columnsWithState.has(columnId),\n )\n\n return [...orderedColumns, ...remainingColumns]\n}\n\n/**\n * Collects all columns that have any state (visibility, sizing, pinning, etc.)\n */\nfunction collectColumnsWithState(\n columnVisibility: VisibilityState,\n columnSizing: ColumnSizingState,\n columnPinning: ColumnPinningState,\n allColumnIds: string[],\n): Set<string> {\n const columnsWithState = new Set<string>()\n\n // Add columns with visibility state\n Object.keys(columnVisibility).forEach((col) => columnsWithState.add(col))\n\n // Add columns with sizing state\n Object.keys(columnSizing).forEach((col) => columnsWithState.add(col))\n\n // Add pinned columns\n columnPinning.left?.forEach((col) => columnsWithState.add(col))\n columnPinning.right?.forEach((col) => columnsWithState.add(col))\n\n // Add any additional columns from allColumnIds\n allColumnIds?.forEach((col) => columnsWithState.add(col))\n\n return columnsWithState\n}\n\n/**\n * Creates a ColumnItemModel for a given column name with all applicable state\n */\nfunction createColumnItem(\n columnName: string,\n columnVisibility: VisibilityState,\n columnPinning: ColumnPinningState,\n columnSizing: ColumnSizingState,\n columnSummaries: Record<string, SummaryCalc>,\n columnSummaryScopes: Record<string, RowScope>,\n columnSummaryFormats: Record<string, SummaryFormat>,\n): ColumnItem {\n const column: ColumnItem = {\n name: columnName,\n visible: !!columnVisibility[columnName],\n }\n\n // Set summary calc type if chosen for this column\n if (columnSummaries[columnName]) {\n column.summary = columnSummaries[columnName]\n }\n\n // Set summary row scope if chosen for this column\n if (columnSummaryScopes[columnName]) {\n column.summaryScope = columnSummaryScopes[columnName]\n }\n\n // Set summary display format if chosen for this column\n if (columnSummaryFormats[columnName]) {\n column.summaryFormat = columnSummaryFormats[columnName]\n }\n\n // Set visibility if defined in state\n if (columnVisibility.hasOwnProperty(columnName)) {\n column.visible = columnVisibility[columnName]\n }\n\n // Set pinning if column is pinned\n const isPinnedLeft = columnPinning.left?.includes(columnName)\n const isPinnedRight = columnPinning.right?.includes(columnName)\n\n if (isPinnedLeft || isPinnedRight) {\n column.pinned = true\n }\n\n // Set width if defined in state\n if (columnSizing[columnName] !== undefined) {\n column.width = columnSizing[columnName]\n }\n\n return column\n}\n\n/**\n * Converts TanStack table states back to OverviewSettings format\n *\n * Column ordering logic:\n * 1. Columns in columnOrder appear first (in their specified order)\n * 2. Remaining columns follow the order from allColumnIds\n * 3. Only columns with state (visibility, sizing, pinning) or in allColumnIds are included\n */\nexport function convertTanstackStatesToColumnConfig(\n states: ColumnsConfig,\n allColumnIds?: string[],\n): OverviewSettings {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n columnSummaries = {},\n columnSummaryScopes = {},\n columnSummaryFormats = {},\n sorting,\n groupBy,\n groupByConfig,\n rowHeight,\n } = states\n\n // Collect all columns that have any state\n const columnsWithState = collectColumnsWithState(\n columnVisibility,\n columnSizing,\n columnPinning,\n allColumnIds || [],\n )\n\n // Determine the final column order, excluding internal columns\n const finalColumnOrder = determineColumnOrder(\n columnOrder,\n allColumnIds || [],\n columnsWithState,\n ).filter((id) => !INTERNAL_COLUMN_IDS.has(id))\n\n // Create ColumnItemModel for each column in the determined order\n const columns: ColumnItem[] = finalColumnOrder.map((columnName) =>\n createColumnItem(\n columnName,\n columnVisibility,\n columnPinning,\n columnSizing,\n columnSummaries,\n columnSummaryScopes,\n columnSummaryFormats,\n ),\n )\n\n // Build the result object\n const result: OverviewSettings = {\n columns,\n }\n\n // Add grouping information if present\n if (groupBy) {\n const id = Array.isArray(groupBy.id) ? groupBy.id[0] : groupBy.id\n result.groupBy = id || undefined\n result.groupSortByDesc = groupBy.desc ?? false\n } else {\n result.groupBy = undefined\n result.groupSortByDesc = undefined\n }\n\n if (groupByConfig?.showEmpty !== undefined) {\n result.showEmptyGroups = groupByConfig.showEmpty\n }\n\n // Add sorting information if present\n if (sorting) {\n if (sorting.length > 0) {\n // find the column that is being sorted\n const firstSort = sorting[0]\n result.sortBy = firstSort.id\n result.sortDesc = firstSort.desc\n } else {\n // remove sorting\n result.sortBy = undefined\n result.sortDesc = undefined\n }\n }\n\n // Add row height if present\n if (rowHeight !== undefined) {\n result.rowHeight = rowHeight\n }\n\n return result\n}\n"],"names":["INTERNAL_COLUMN_IDS","ROW_SELECTION_COLUMN_ID","DRAG_HANDLE_COLUMN_ID","convertColumnConfigToTanstackStates","settings","columns","groupByField","groupSortByDesc","showEmptyGroups","sortBy","sortDesc","rowHeight","columnVisibility","columnPinning","columnOrder","columnSizing","columnSummaries","columnSummaryScopes","columnSummaryFormats","column","name","visible","pinned","width","summary","summaryScope","summaryFormat","sorting","groupBy","first","v","determineColumnOrder","allColumnIds","columnsWithState","orderedColumns","remainingColumns","columnId","collectColumnsWithState","col","createColumnItem","columnName","isPinnedLeft","isPinnedRight","convertTanstackStatesToColumnConfig","states","groupByConfig","result","id","firstSort"],"mappings":";AAsBA,MAAMA,IAAsB,oBAAI,IAAI,CAACC,GAAyBC,CAAqB,CAAC;AAY7E,SAASC,EAAoCC,GAA2C;AAC7F,QAAM;AAAA,IACJ,SAAAC,IAAU,CAAA;AAAA,IACV,SAASC;AAAA,IACT,iBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,EAAA,IACEP,KAAY,CAAA,GAGVQ,IAAoC,CAAA,GACpCC,IAAoC,EAAE,MAAM,CAAA,GAAI,OAAO,CAAA,EAAC,GACxDC,IAAgC,CAAA,GAChCC,IAAkC,CAAA,GAClCC,IAA+C,CAAA,GAC/CC,IAAgD,CAAA,GAChDC,IAAsD,CAAA;AAG5D,EAAAb,EAAQ,QAAQ,CAACc,MAAW;AAC1B,UAAM,EAAE,MAAAC,GAAM,SAAAC,GAAS,QAAAC,GAAQ,OAAAC,GAAO,SAAAC,GAAS,cAAAC,GAAc,eAAAC,MAC3DP;AAGF,IAAInB,EAAoB,IAAIoB,CAAI,MAGhCR,EAAiBQ,CAAI,IAAIC,KAAW,IAGpCP,EAAY,KAAKM,CAAI,GAGjBE,KACFT,EAAc,MAAM,KAAKO,CAAI,GAI3BG,MAAU,WACZR,EAAaK,CAAI,IAAIG,IAInBC,MACFR,EAAgBI,CAAI,IAAII,IAItBC,MACFR,EAAoBG,CAAI,IAAIK,IAI1BC,MACFR,EAAqBE,CAAI,IAAIM;AAAA,EAEjC,CAAC;AAGD,QAAMC,IAAwBlB,IAAS,CAAC,EAAE,IAAIA,GAAQ,MAAMC,KAAY,GAAA,CAAO,IAAI,CAAA;AAGnF,MAAIkB;AACJ,MAAI,OAAOtB,KAAiB,YAAYA,EAAa,SAAS;AAC5D,IAAAsB,IAAU,EAAE,IAAItB,GAAc,MAAMC,KAAmB,GAAA;AAAA,WAC9C,MAAM,QAAQD,CAAY,GAAG;AACtC,UAAMuB,IAAQvB,EAAa,KAAK,CAACwB,MAAM,OAAOA,KAAM,YAAYA,EAAE,SAAS,CAAC;AAC5E,IAAID,IACFD,IAAU,EAAE,IAAIC,GAAO,MAAMtB,KAAmB,GAAA,IAEhDqB,IAAU;AAAA,EAEd;AACE,IAAAA,IAAU;AAQZ,SAAO;AAAA,IACL,kBAAAhB;AAAA,IACA,eAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,SAAAS;AAAA,IACA,SAAAC;AAAA,IACA,eAfmC;AAAA,MACnC,WAAWpB,KAAmB;AAAA,MAC9B,YAAY;AAAA,IAAA;AAAA,IAcZ,WAAWG,KAAa;AAAA,EAAA;AAE5B;AAOA,SAASoB,EACPjB,GACAkB,GACAC,GACU;AAEV,QAAMC,IAAiB,CAAC,GAAGpB,CAAW,GAGhCqB,IAAmBH,EAAa;AAAA,IACpC,CAACI,MAAa,CAACtB,EAAY,SAASsB,CAAQ,KAAKH,EAAiB,IAAIG,CAAQ;AAAA,EAAA;AAGhF,SAAO,CAAC,GAAGF,GAAgB,GAAGC,CAAgB;AAChD;AAKA,SAASE,EACPzB,GACAG,GACAF,GACAmB,GACa;AACb,QAAMC,wBAAuB,IAAA;AAG7B,gBAAO,KAAKrB,CAAgB,EAAE,QAAQ,CAAC0B,MAAQL,EAAiB,IAAIK,CAAG,CAAC,GAGxE,OAAO,KAAKvB,CAAY,EAAE,QAAQ,CAACuB,MAAQL,EAAiB,IAAIK,CAAG,CAAC,GAGpEzB,EAAc,MAAM,QAAQ,CAACyB,MAAQL,EAAiB,IAAIK,CAAG,CAAC,GAC9DzB,EAAc,OAAO,QAAQ,CAACyB,MAAQL,EAAiB,IAAIK,CAAG,CAAC,GAG/DN,GAAc,QAAQ,CAACM,MAAQL,EAAiB,IAAIK,CAAG,CAAC,GAEjDL;AACT;AAKA,SAASM,EACPC,GACA5B,GACAC,GACAE,GACAC,GACAC,GACAC,GACY;AACZ,QAAMC,IAAqB;AAAA,IACzB,MAAMqB;AAAA,IACN,SAAS,CAAC,CAAC5B,EAAiB4B,CAAU;AAAA,EAAA;AAIxC,EAAIxB,EAAgBwB,CAAU,MAC5BrB,EAAO,UAAUH,EAAgBwB,CAAU,IAIzCvB,EAAoBuB,CAAU,MAChCrB,EAAO,eAAeF,EAAoBuB,CAAU,IAIlDtB,EAAqBsB,CAAU,MACjCrB,EAAO,gBAAgBD,EAAqBsB,CAAU,IAIpD5B,EAAiB,eAAe4B,CAAU,MAC5CrB,EAAO,UAAUP,EAAiB4B,CAAU;AAI9C,QAAMC,IAAe5B,EAAc,MAAM,SAAS2B,CAAU,GACtDE,IAAgB7B,EAAc,OAAO,SAAS2B,CAAU;AAE9D,UAAIC,KAAgBC,OAClBvB,EAAO,SAAS,KAIdJ,EAAayB,CAAU,MAAM,WAC/BrB,EAAO,QAAQJ,EAAayB,CAAU,IAGjCrB;AACT;AAUO,SAASwB,EACdC,GACAZ,GACkB;AAClB,QAAM;AAAA,IACJ,kBAAApB;AAAA,IACA,eAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC,IAAkB,CAAA;AAAA,IAClB,qBAAAC,IAAsB,CAAA;AAAA,IACtB,sBAAAC,IAAuB,CAAA;AAAA,IACvB,SAAAS;AAAA,IACA,SAAAC;AAAA,IACA,eAAAiB;AAAA,IACA,WAAAlC;AAAA,EAAA,IACEiC,GAGEX,IAAmBI;AAAA,IACvBzB;AAAA,IACAG;AAAA,IACAF;AAAA,IACAmB,KAAgB,CAAA;AAAA,EAAC,GAwBbc,IAA2B;AAAA,IAC/B,SArBuBf;AAAA,MACvBjB;AAAA,MACAkB,KAAgB,CAAA;AAAA,MAChBC;AAAA,IAAA,EACA,OAAO,CAACc,MAAO,CAAC/C,EAAoB,IAAI+C,CAAE,CAAC,EAGE;AAAA,MAAI,CAACP,MAClDD;AAAA,QACEC;AAAA,QACA5B;AAAA,QACAC;AAAA,QACAE;AAAA,QACAC;AAAA,QACAC;AAAA,QACAC;AAAA,MAAA;AAAA,IACF;AAAA,EAKA;AAIF,MAAIU,GAAS;AACX,UAAMmB,IAAK,MAAM,QAAQnB,EAAQ,EAAE,IAAIA,EAAQ,GAAG,CAAC,IAAIA,EAAQ;AAC/D,IAAAkB,EAAO,UAAUC,KAAM,QACvBD,EAAO,kBAAkBlB,EAAQ,QAAQ;AAAA,EAC3C;AACE,IAAAkB,EAAO,UAAU,QACjBA,EAAO,kBAAkB;AAQ3B,MALID,GAAe,cAAc,WAC/BC,EAAO,kBAAkBD,EAAc,YAIrClB;AACF,QAAIA,EAAQ,SAAS,GAAG;AAEtB,YAAMqB,IAAYrB,EAAQ,CAAC;AAC3B,MAAAmB,EAAO,SAASE,EAAU,IAC1BF,EAAO,WAAWE,EAAU;AAAA,IAC9B;AAEE,MAAAF,EAAO,SAAS,QAChBA,EAAO,WAAW;AAKtB,SAAInC,MAAc,WAChBmC,EAAO,YAAYnC,IAGdmC;AACT;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const $=({projectName:r,entityType:l,entityId:n,thumbnailId:u,thumbnailHash:t})=>{if(!r)return null;if(l==="project")return i(r,t);if(!u&&(!n||!l))return null;const s=t?`?hash=${t}`:"";return n&&l?`/api/projects/${r}/${l}s/${n}/thumbnail${s}`:`/api/projects/${r}/thumbnails/${u}${s}`},i=(r,l)=>{if(!r)return null;const n=l?`?hash=${l}`:"";return`/api/projects/${r}/thumbnail${n}`};exports.getEntityThumbnailUrl=$;exports.getProjectThumbnailUrl=i;
2
+ //# sourceMappingURL=getThumbnailUrl.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getThumbnailUrl.cjs.js","sources":["../../../../src/util/getThumbnailUrl.ts"],"sourcesContent":["export interface GetEntityThumbnailUrlParams {\n projectName: string\n entityType?: string // 'folder' | 'task' | 'version' | 'project' | etc.\n entityId?: string\n thumbnailId?: string // fallback path when no entityId/entityType is available\n thumbnailHash?: string // appended as ?hash= for cache busting; omitted if not provided\n}\n\n/**\n * Builds a thumbnail URL for a project entity.\n *\n * Always uses `?hash=<thumbnailHash>` for cache busting when a hash is available.\n * If no hash is provided the URL is returned without any query parameter — never\n * falls back to `updatedAt` or similar fields.\n *\n * Returns `null` when the required identity information is missing.\n */\nexport const getEntityThumbnailUrl = ({\n projectName,\n entityType,\n entityId,\n thumbnailId,\n thumbnailHash,\n}: GetEntityThumbnailUrlParams): string | null => {\n if (!projectName) return null\n\n if (entityType === 'project') {\n return getProjectThumbnailUrl(projectName, thumbnailHash)\n }\n\n if (!thumbnailId && (!entityId || !entityType)) return null\n\n const hashParam = thumbnailHash ? `?hash=${thumbnailHash}` : ''\n\n if (entityId && entityType) {\n return `/api/projects/${projectName}/${entityType}s/${entityId}/thumbnail${hashParam}`\n }\n\n // fallback: look up by thumbnailId\n return `/api/projects/${projectName}/thumbnails/${thumbnailId}${hashParam}`\n}\n\nexport const getProjectThumbnailUrl = (projectName: string, thumbnailHash?: string) => {\n if (!projectName) return null\n const hashParam = thumbnailHash ? `?hash=${thumbnailHash}` : ''\n return `/api/projects/${projectName}/thumbnail${hashParam}`\n}\n"],"names":["getEntityThumbnailUrl","projectName","entityType","entityId","thumbnailId","thumbnailHash","getProjectThumbnailUrl","hashParam"],"mappings":"gFAiBO,MAAMA,EAAwB,CAAC,CACpC,YAAAC,EACA,WAAAC,EACA,SAAAC,EACA,YAAAC,EACA,cAAAC,CACF,IAAkD,CAChD,GAAI,CAACJ,EAAa,OAAO,KAEzB,GAAIC,IAAe,UACjB,OAAOI,EAAuBL,EAAaI,CAAa,EAG1D,GAAI,CAACD,IAAgB,CAACD,GAAY,CAACD,GAAa,OAAO,KAEvD,MAAMK,EAAYF,EAAgB,SAASA,CAAa,GAAK,GAE7D,OAAIF,GAAYD,EACP,iBAAiBD,CAAW,IAAIC,CAAU,KAAKC,CAAQ,aAAaI,CAAS,GAI/E,iBAAiBN,CAAW,eAAeG,CAAW,GAAGG,CAAS,EAC3E,EAEaD,EAAyB,CAACL,EAAqBI,IAA2B,CACrF,GAAI,CAACJ,EAAa,OAAO,KACzB,MAAMM,EAAYF,EAAgB,SAASA,CAAa,GAAK,GAC7D,MAAO,iBAAiBJ,CAAW,aAAaM,CAAS,EAC3D"}
@@ -0,0 +1,23 @@
1
+ const o = ({
2
+ projectName: r,
3
+ entityType: n,
4
+ entityId: u,
5
+ thumbnailId: s,
6
+ thumbnailHash: $
7
+ }) => {
8
+ if (!r) return null;
9
+ if (n === "project")
10
+ return h(r, $);
11
+ if (!s && (!u || !n)) return null;
12
+ const l = $ ? `?hash=${$}` : "";
13
+ return u && n ? `/api/projects/${r}/${n}s/${u}/thumbnail${l}` : `/api/projects/${r}/thumbnails/${s}${l}`;
14
+ }, h = (r, n) => {
15
+ if (!r) return null;
16
+ const u = n ? `?hash=${n}` : "";
17
+ return `/api/projects/${r}/thumbnail${u}`;
18
+ };
19
+ export {
20
+ o as getEntityThumbnailUrl,
21
+ h as getProjectThumbnailUrl
22
+ };
23
+ //# sourceMappingURL=getThumbnailUrl.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getThumbnailUrl.es.js","sources":["../../../../src/util/getThumbnailUrl.ts"],"sourcesContent":["export interface GetEntityThumbnailUrlParams {\n projectName: string\n entityType?: string // 'folder' | 'task' | 'version' | 'project' | etc.\n entityId?: string\n thumbnailId?: string // fallback path when no entityId/entityType is available\n thumbnailHash?: string // appended as ?hash= for cache busting; omitted if not provided\n}\n\n/**\n * Builds a thumbnail URL for a project entity.\n *\n * Always uses `?hash=<thumbnailHash>` for cache busting when a hash is available.\n * If no hash is provided the URL is returned without any query parameter — never\n * falls back to `updatedAt` or similar fields.\n *\n * Returns `null` when the required identity information is missing.\n */\nexport const getEntityThumbnailUrl = ({\n projectName,\n entityType,\n entityId,\n thumbnailId,\n thumbnailHash,\n}: GetEntityThumbnailUrlParams): string | null => {\n if (!projectName) return null\n\n if (entityType === 'project') {\n return getProjectThumbnailUrl(projectName, thumbnailHash)\n }\n\n if (!thumbnailId && (!entityId || !entityType)) return null\n\n const hashParam = thumbnailHash ? `?hash=${thumbnailHash}` : ''\n\n if (entityId && entityType) {\n return `/api/projects/${projectName}/${entityType}s/${entityId}/thumbnail${hashParam}`\n }\n\n // fallback: look up by thumbnailId\n return `/api/projects/${projectName}/thumbnails/${thumbnailId}${hashParam}`\n}\n\nexport const getProjectThumbnailUrl = (projectName: string, thumbnailHash?: string) => {\n if (!projectName) return null\n const hashParam = thumbnailHash ? `?hash=${thumbnailHash}` : ''\n return `/api/projects/${projectName}/thumbnail${hashParam}`\n}\n"],"names":["getEntityThumbnailUrl","projectName","entityType","entityId","thumbnailId","thumbnailHash","getProjectThumbnailUrl","hashParam"],"mappings":"AAiBO,MAAMA,IAAwB,CAAC;AAAA,EACpC,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AACF,MAAkD;AAChD,MAAI,CAACJ,EAAa,QAAO;AAEzB,MAAIC,MAAe;AACjB,WAAOI,EAAuBL,GAAaI,CAAa;AAG1D,MAAI,CAACD,MAAgB,CAACD,KAAY,CAACD,GAAa,QAAO;AAEvD,QAAMK,IAAYF,IAAgB,SAASA,CAAa,KAAK;AAE7D,SAAIF,KAAYD,IACP,iBAAiBD,CAAW,IAAIC,CAAU,KAAKC,CAAQ,aAAaI,CAAS,KAI/E,iBAAiBN,CAAW,eAAeG,CAAW,GAAGG,CAAS;AAC3E,GAEaD,IAAyB,CAACL,GAAqBI,MAA2B;AACrF,MAAI,CAACJ,EAAa,QAAO;AACzB,QAAMM,IAAYF,IAAgB,SAASA,CAAa,KAAK;AAC7D,SAAO,iBAAiBJ,CAAW,aAAaM,CAAS;AAC3D;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let e=null;const c=new Set;let u,r=[],a;const w=()=>{if(r.length===0)return;const o=[...r];r=[],c.forEach(({updater:s,entityTypes:t})=>{const n=t?o.filter(i=>t.includes(i.summary.entityType)):o;n.length>0&&s(n)})},p=o=>{r.push(o),a&&window.clearTimeout(a);const s=3e3+Math.random()*1e3;a=window.setTimeout(()=>{a=void 0,w()},s)},l=()=>{if(e&&(e.readyState===WebSocket.OPEN||e.readyState===WebSocket.CONNECTING))return;const s=`${window.location.protocol.replace("http","ws")}//${window.location.host}/ws`;e=new WebSocket(s),e.onopen=()=>{const t=localStorage.getItem("accessToken");e?.readyState===WebSocket.OPEN&&e.send(JSON.stringify({topic:"auth",token:t,subscribe:["thumbnail.updated"]}))},e.onmessage=t=>{try{const n=JSON.parse(t.data);if(n.topic==="thumbnail.updated"){const i=n;i.sender&&i.sender===window.senderId?c.forEach(({updater:m,entityTypes:d})=>{(!d||d.includes(i.summary.entityType))&&m([i])}):p(i)}}catch(n){console.error("Failed to parse thumbnail update websocket message",n)}},e.onclose=()=>{e=null,c.size>0&&(u=window.setTimeout(()=>l(),5e3))}},b=(o,s)=>{const t={updater:o,entityTypes:s};return c.add(t),c.size===1&&l(),()=>{c.delete(t),c.size===0&&(u&&(window.clearTimeout(u),u=void 0),a&&(window.clearTimeout(a),a=void 0,r=[]),e&&(e.onclose=null,e.close(),e=null))}};exports.subscribeToThumbnailUpdates=b;
2
+ //# sourceMappingURL=thumbnailWebsocket.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thumbnailWebsocket.cjs.js","sources":["../../../../src/util/thumbnailWebsocket.ts"],"sourcesContent":["/**\n * The expected structure of a websocket message when a thumbnail is updated.\n */\nexport type ThumbnailUpdateMessage = {\n project: string\n sender?: string\n summary: {\n entityId: string\n entityType: string\n thumbnailHash?: string\n }\n}\n\nexport type ThumbnailUpdater = (messages: ThumbnailUpdateMessage[]) => void\n\n// Singleton WebSocket instance\nlet ws: WebSocket | null = null\n// Set of active updater objects with their filters\nconst updaters = new Set<{ updater: ThumbnailUpdater; entityTypes?: string[] }>()\nlet reconnectTimeout: ReturnType<typeof setTimeout> | undefined\n\n// Queue for lazy batched updates\nlet messageQueue: ThumbnailUpdateMessage[] = []\nlet processTimeout: ReturnType<typeof setTimeout> | undefined\n\nconst processQueue = () => {\n if (messageQueue.length === 0) return\n\n // Create a copy of the queue to process\n const queueToProcess = [...messageQueue]\n messageQueue = []\n\n updaters.forEach(({ updater, entityTypes }) => {\n const filtered = entityTypes\n ? queueToProcess.filter((m) => entityTypes.includes(m.summary.entityType))\n : queueToProcess\n\n if (filtered.length > 0) {\n updater(filtered)\n }\n })\n}\n\nconst queueMessage = (message: ThumbnailUpdateMessage) => {\n messageQueue.push(message)\n\n // Clear previous timeout to implement true debouncing\n if (processTimeout) {\n window.clearTimeout(processTimeout)\n }\n\n // Jitter/debounce window: Delays processing until 3-4s of silence occurs\n // (Adjust the logic here if you preferred a fixed throttling interval instead)\n const debounceDelay = 3000 + Math.random() * 1000\n\n processTimeout = window.setTimeout(() => {\n processTimeout = undefined\n processQueue()\n }, debounceDelay)\n}\n\n/**\n * Initializes the WebSocket connection and sets up event listeners.\n */\nconst connectWS = () => {\n if (ws && (ws.readyState === WebSocket.OPEN || ws.readyState === WebSocket.CONNECTING)) {\n return\n }\n\n const proto = window.location.protocol.replace('http', 'ws')\n const wsAddress = `${proto}//${window.location.host}/ws`\n\n ws = new WebSocket(wsAddress)\n\n ws.onopen = () => {\n const accessToken = localStorage.getItem('accessToken')\n if (ws?.readyState === WebSocket.OPEN) {\n ws.send(\n JSON.stringify({\n topic: 'auth',\n token: accessToken,\n subscribe: ['thumbnail.updated'],\n }),\n )\n }\n }\n\n ws.onmessage = (event) => {\n try {\n const data = JSON.parse(event.data)\n\n // Note: Ensure your server data structure matches this check.\n // If the server wraps the message in a 'payload' property, adjust accordingly.\n if (data.topic === 'thumbnail.updated') {\n const message = data as ThumbnailUpdateMessage\n\n // Bypass debounce if current client initiated the change\n if (message.sender && message.sender === (window as any).senderId) {\n updaters.forEach(({ updater, entityTypes }) => {\n if (!entityTypes || entityTypes.includes(message.summary.entityType)) {\n updater([message])\n }\n })\n } else {\n queueMessage(message)\n }\n }\n } catch (error) {\n console.error('Failed to parse thumbnail update websocket message', error)\n }\n }\n\n ws.onclose = () => {\n ws = null\n // Auto-reconnect after 5 seconds if there are still active subscribers\n if (updaters.size > 0) {\n reconnectTimeout = window.setTimeout(() => connectWS(), 5000)\n }\n }\n}\n\n/**\n * Subscribes a callback to listen for thumbnail updates.\n *\n * @param updater Callback to run when a thumbnail update is received.\n * @param entityTypes Optional list of entity types to filter by (e.g., ['folder', 'task']).\n * @returns A cleanup function to unsubscribe from updates.\n */\nexport const subscribeToThumbnailUpdates = (updater: ThumbnailUpdater, entityTypes?: string[]) => {\n const updaterObj = { updater, entityTypes }\n updaters.add(updaterObj)\n\n if (updaters.size === 1) {\n connectWS()\n }\n\n return () => {\n updaters.delete(updaterObj)\n\n if (updaters.size === 0) {\n if (reconnectTimeout) {\n window.clearTimeout(reconnectTimeout)\n reconnectTimeout = undefined\n }\n if (processTimeout) {\n window.clearTimeout(processTimeout)\n processTimeout = undefined\n messageQueue = []\n }\n if (ws) {\n ws.onclose = null // Prevent reconnect loop on intentional disconnect\n ws.close()\n ws = null\n }\n }\n }\n}\n"],"names":["ws","updaters","reconnectTimeout","messageQueue","processTimeout","processQueue","queueToProcess","updater","entityTypes","filtered","m","queueMessage","message","debounceDelay","connectWS","wsAddress","accessToken","event","data","error","subscribeToThumbnailUpdates","updaterObj"],"mappings":"gFAgBA,IAAIA,EAAuB,KAE3B,MAAMC,MAAe,IACrB,IAAIC,EAGAC,EAAyC,CAAA,EACzCC,EAEJ,MAAMC,EAAe,IAAM,CACzB,GAAIF,EAAa,SAAW,EAAG,OAG/B,MAAMG,EAAiB,CAAC,GAAGH,CAAY,EACvCA,EAAe,CAAA,EAEfF,EAAS,QAAQ,CAAC,CAAE,QAAAM,EAAS,YAAAC,KAAkB,CAC7C,MAAMC,EAAWD,EACbF,EAAe,OAAQI,GAAMF,EAAY,SAASE,EAAE,QAAQ,UAAU,CAAC,EACvEJ,EAEAG,EAAS,OAAS,GACpBF,EAAQE,CAAQ,CAEpB,CAAC,CACH,EAEME,EAAgBC,GAAoC,CACxDT,EAAa,KAAKS,CAAO,EAGrBR,GACF,OAAO,aAAaA,CAAc,EAKpC,MAAMS,EAAgB,IAAO,KAAK,OAAA,EAAW,IAE7CT,EAAiB,OAAO,WAAW,IAAM,CACvCA,EAAiB,OACjBC,EAAA,CACF,EAAGQ,CAAa,CAClB,EAKMC,EAAY,IAAM,CACtB,GAAId,IAAOA,EAAG,aAAe,UAAU,MAAQA,EAAG,aAAe,UAAU,YACzE,OAIF,MAAMe,EAAY,GADJ,OAAO,SAAS,SAAS,QAAQ,OAAQ,IAAI,CACjC,KAAK,OAAO,SAAS,IAAI,MAEnDf,EAAK,IAAI,UAAUe,CAAS,EAE5Bf,EAAG,OAAS,IAAM,CAChB,MAAMgB,EAAc,aAAa,QAAQ,aAAa,EAClDhB,GAAI,aAAe,UAAU,MAC/BA,EAAG,KACD,KAAK,UAAU,CACb,MAAO,OACP,MAAOgB,EACP,UAAW,CAAC,mBAAmB,CAAA,CAChC,CAAA,CAGP,EAEAhB,EAAG,UAAaiB,GAAU,CACxB,GAAI,CACF,MAAMC,EAAO,KAAK,MAAMD,EAAM,IAAI,EAIlC,GAAIC,EAAK,QAAU,oBAAqB,CACtC,MAAMN,EAAUM,EAGZN,EAAQ,QAAUA,EAAQ,SAAY,OAAe,SACvDX,EAAS,QAAQ,CAAC,CAAE,QAAAM,EAAS,YAAAC,KAAkB,EACzC,CAACA,GAAeA,EAAY,SAASI,EAAQ,QAAQ,UAAU,IACjEL,EAAQ,CAACK,CAAO,CAAC,CAErB,CAAC,EAEDD,EAAaC,CAAO,CAExB,CACF,OAASO,EAAO,CACd,QAAQ,MAAM,qDAAsDA,CAAK,CAC3E,CACF,EAEAnB,EAAG,QAAU,IAAM,CACjBA,EAAK,KAEDC,EAAS,KAAO,IAClBC,EAAmB,OAAO,WAAW,IAAMY,EAAA,EAAa,GAAI,EAEhE,CACF,EASaM,EAA8B,CAACb,EAA2BC,IAA2B,CAChG,MAAMa,EAAa,CAAE,QAAAd,EAAS,YAAAC,CAAA,EAC9B,OAAAP,EAAS,IAAIoB,CAAU,EAEnBpB,EAAS,OAAS,GACpBa,EAAA,EAGK,IAAM,CACXb,EAAS,OAAOoB,CAAU,EAEtBpB,EAAS,OAAS,IAChBC,IACF,OAAO,aAAaA,CAAgB,EACpCA,EAAmB,QAEjBE,IACF,OAAO,aAAaA,CAAc,EAClCA,EAAiB,OACjBD,EAAe,CAAA,GAEbH,IACFA,EAAG,QAAU,KACbA,EAAG,MAAA,EACHA,EAAK,MAGX,CACF"}
@@ -0,0 +1,54 @@
1
+ let e = null;
2
+ const i = /* @__PURE__ */ new Set();
3
+ let d, r = [], a;
4
+ const m = () => {
5
+ if (r.length === 0) return;
6
+ const t = [...r];
7
+ r = [], i.forEach(({ updater: s, entityTypes: o }) => {
8
+ const n = o ? t.filter((c) => o.includes(c.summary.entityType)) : t;
9
+ n.length > 0 && s(n);
10
+ });
11
+ }, p = (t) => {
12
+ r.push(t), a && window.clearTimeout(a);
13
+ const s = 3e3 + Math.random() * 1e3;
14
+ a = window.setTimeout(() => {
15
+ a = void 0, m();
16
+ }, s);
17
+ }, l = () => {
18
+ if (e && (e.readyState === WebSocket.OPEN || e.readyState === WebSocket.CONNECTING))
19
+ return;
20
+ const s = `${window.location.protocol.replace("http", "ws")}//${window.location.host}/ws`;
21
+ e = new WebSocket(s), e.onopen = () => {
22
+ const o = localStorage.getItem("accessToken");
23
+ e?.readyState === WebSocket.OPEN && e.send(
24
+ JSON.stringify({
25
+ topic: "auth",
26
+ token: o,
27
+ subscribe: ["thumbnail.updated"]
28
+ })
29
+ );
30
+ }, e.onmessage = (o) => {
31
+ try {
32
+ const n = JSON.parse(o.data);
33
+ if (n.topic === "thumbnail.updated") {
34
+ const c = n;
35
+ c.sender && c.sender === window.senderId ? i.forEach(({ updater: w, entityTypes: u }) => {
36
+ (!u || u.includes(c.summary.entityType)) && w([c]);
37
+ }) : p(c);
38
+ }
39
+ } catch (n) {
40
+ console.error("Failed to parse thumbnail update websocket message", n);
41
+ }
42
+ }, e.onclose = () => {
43
+ e = null, i.size > 0 && (d = window.setTimeout(() => l(), 5e3));
44
+ };
45
+ }, f = (t, s) => {
46
+ const o = { updater: t, entityTypes: s };
47
+ return i.add(o), i.size === 1 && l(), () => {
48
+ i.delete(o), i.size === 0 && (d && (window.clearTimeout(d), d = void 0), a && (window.clearTimeout(a), a = void 0, r = []), e && (e.onclose = null, e.close(), e = null));
49
+ };
50
+ };
51
+ export {
52
+ f as subscribeToThumbnailUpdates
53
+ };
54
+ //# sourceMappingURL=thumbnailWebsocket.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thumbnailWebsocket.es.js","sources":["../../../../src/util/thumbnailWebsocket.ts"],"sourcesContent":["/**\n * The expected structure of a websocket message when a thumbnail is updated.\n */\nexport type ThumbnailUpdateMessage = {\n project: string\n sender?: string\n summary: {\n entityId: string\n entityType: string\n thumbnailHash?: string\n }\n}\n\nexport type ThumbnailUpdater = (messages: ThumbnailUpdateMessage[]) => void\n\n// Singleton WebSocket instance\nlet ws: WebSocket | null = null\n// Set of active updater objects with their filters\nconst updaters = new Set<{ updater: ThumbnailUpdater; entityTypes?: string[] }>()\nlet reconnectTimeout: ReturnType<typeof setTimeout> | undefined\n\n// Queue for lazy batched updates\nlet messageQueue: ThumbnailUpdateMessage[] = []\nlet processTimeout: ReturnType<typeof setTimeout> | undefined\n\nconst processQueue = () => {\n if (messageQueue.length === 0) return\n\n // Create a copy of the queue to process\n const queueToProcess = [...messageQueue]\n messageQueue = []\n\n updaters.forEach(({ updater, entityTypes }) => {\n const filtered = entityTypes\n ? queueToProcess.filter((m) => entityTypes.includes(m.summary.entityType))\n : queueToProcess\n\n if (filtered.length > 0) {\n updater(filtered)\n }\n })\n}\n\nconst queueMessage = (message: ThumbnailUpdateMessage) => {\n messageQueue.push(message)\n\n // Clear previous timeout to implement true debouncing\n if (processTimeout) {\n window.clearTimeout(processTimeout)\n }\n\n // Jitter/debounce window: Delays processing until 3-4s of silence occurs\n // (Adjust the logic here if you preferred a fixed throttling interval instead)\n const debounceDelay = 3000 + Math.random() * 1000\n\n processTimeout = window.setTimeout(() => {\n processTimeout = undefined\n processQueue()\n }, debounceDelay)\n}\n\n/**\n * Initializes the WebSocket connection and sets up event listeners.\n */\nconst connectWS = () => {\n if (ws && (ws.readyState === WebSocket.OPEN || ws.readyState === WebSocket.CONNECTING)) {\n return\n }\n\n const proto = window.location.protocol.replace('http', 'ws')\n const wsAddress = `${proto}//${window.location.host}/ws`\n\n ws = new WebSocket(wsAddress)\n\n ws.onopen = () => {\n const accessToken = localStorage.getItem('accessToken')\n if (ws?.readyState === WebSocket.OPEN) {\n ws.send(\n JSON.stringify({\n topic: 'auth',\n token: accessToken,\n subscribe: ['thumbnail.updated'],\n }),\n )\n }\n }\n\n ws.onmessage = (event) => {\n try {\n const data = JSON.parse(event.data)\n\n // Note: Ensure your server data structure matches this check.\n // If the server wraps the message in a 'payload' property, adjust accordingly.\n if (data.topic === 'thumbnail.updated') {\n const message = data as ThumbnailUpdateMessage\n\n // Bypass debounce if current client initiated the change\n if (message.sender && message.sender === (window as any).senderId) {\n updaters.forEach(({ updater, entityTypes }) => {\n if (!entityTypes || entityTypes.includes(message.summary.entityType)) {\n updater([message])\n }\n })\n } else {\n queueMessage(message)\n }\n }\n } catch (error) {\n console.error('Failed to parse thumbnail update websocket message', error)\n }\n }\n\n ws.onclose = () => {\n ws = null\n // Auto-reconnect after 5 seconds if there are still active subscribers\n if (updaters.size > 0) {\n reconnectTimeout = window.setTimeout(() => connectWS(), 5000)\n }\n }\n}\n\n/**\n * Subscribes a callback to listen for thumbnail updates.\n *\n * @param updater Callback to run when a thumbnail update is received.\n * @param entityTypes Optional list of entity types to filter by (e.g., ['folder', 'task']).\n * @returns A cleanup function to unsubscribe from updates.\n */\nexport const subscribeToThumbnailUpdates = (updater: ThumbnailUpdater, entityTypes?: string[]) => {\n const updaterObj = { updater, entityTypes }\n updaters.add(updaterObj)\n\n if (updaters.size === 1) {\n connectWS()\n }\n\n return () => {\n updaters.delete(updaterObj)\n\n if (updaters.size === 0) {\n if (reconnectTimeout) {\n window.clearTimeout(reconnectTimeout)\n reconnectTimeout = undefined\n }\n if (processTimeout) {\n window.clearTimeout(processTimeout)\n processTimeout = undefined\n messageQueue = []\n }\n if (ws) {\n ws.onclose = null // Prevent reconnect loop on intentional disconnect\n ws.close()\n ws = null\n }\n }\n }\n}\n"],"names":["ws","updaters","reconnectTimeout","messageQueue","processTimeout","processQueue","queueToProcess","updater","entityTypes","filtered","m","queueMessage","message","debounceDelay","connectWS","wsAddress","accessToken","event","data","error","subscribeToThumbnailUpdates","updaterObj"],"mappings":"AAgBA,IAAIA,IAAuB;AAE3B,MAAMC,wBAAe,IAAA;AACrB,IAAIC,GAGAC,IAAyC,CAAA,GACzCC;AAEJ,MAAMC,IAAe,MAAM;AACzB,MAAIF,EAAa,WAAW,EAAG;AAG/B,QAAMG,IAAiB,CAAC,GAAGH,CAAY;AACvC,EAAAA,IAAe,CAAA,GAEfF,EAAS,QAAQ,CAAC,EAAE,SAAAM,GAAS,aAAAC,QAAkB;AAC7C,UAAMC,IAAWD,IACbF,EAAe,OAAO,CAACI,MAAMF,EAAY,SAASE,EAAE,QAAQ,UAAU,CAAC,IACvEJ;AAEJ,IAAIG,EAAS,SAAS,KACpBF,EAAQE,CAAQ;AAAA,EAEpB,CAAC;AACH,GAEME,IAAe,CAACC,MAAoC;AACxD,EAAAT,EAAa,KAAKS,CAAO,GAGrBR,KACF,OAAO,aAAaA,CAAc;AAKpC,QAAMS,IAAgB,MAAO,KAAK,OAAA,IAAW;AAE7C,EAAAT,IAAiB,OAAO,WAAW,MAAM;AACvC,IAAAA,IAAiB,QACjBC,EAAA;AAAA,EACF,GAAGQ,CAAa;AAClB,GAKMC,IAAY,MAAM;AACtB,MAAId,MAAOA,EAAG,eAAe,UAAU,QAAQA,EAAG,eAAe,UAAU;AACzE;AAIF,QAAMe,IAAY,GADJ,OAAO,SAAS,SAAS,QAAQ,QAAQ,IAAI,CACjC,KAAK,OAAO,SAAS,IAAI;AAEnD,EAAAf,IAAK,IAAI,UAAUe,CAAS,GAE5Bf,EAAG,SAAS,MAAM;AAChB,UAAMgB,IAAc,aAAa,QAAQ,aAAa;AACtD,IAAIhB,GAAI,eAAe,UAAU,QAC/BA,EAAG;AAAA,MACD,KAAK,UAAU;AAAA,QACb,OAAO;AAAA,QACP,OAAOgB;AAAA,QACP,WAAW,CAAC,mBAAmB;AAAA,MAAA,CAChC;AAAA,IAAA;AAAA,EAGP,GAEAhB,EAAG,YAAY,CAACiB,MAAU;AACxB,QAAI;AACF,YAAMC,IAAO,KAAK,MAAMD,EAAM,IAAI;AAIlC,UAAIC,EAAK,UAAU,qBAAqB;AACtC,cAAMN,IAAUM;AAGhB,QAAIN,EAAQ,UAAUA,EAAQ,WAAY,OAAe,WACvDX,EAAS,QAAQ,CAAC,EAAE,SAAAM,GAAS,aAAAC,QAAkB;AAC7C,WAAI,CAACA,KAAeA,EAAY,SAASI,EAAQ,QAAQ,UAAU,MACjEL,EAAQ,CAACK,CAAO,CAAC;AAAA,QAErB,CAAC,IAEDD,EAAaC,CAAO;AAAA,MAExB;AAAA,IACF,SAASO,GAAO;AACd,cAAQ,MAAM,sDAAsDA,CAAK;AAAA,IAC3E;AAAA,EACF,GAEAnB,EAAG,UAAU,MAAM;AACjB,IAAAA,IAAK,MAEDC,EAAS,OAAO,MAClBC,IAAmB,OAAO,WAAW,MAAMY,EAAA,GAAa,GAAI;AAAA,EAEhE;AACF,GASaM,IAA8B,CAACb,GAA2BC,MAA2B;AAChG,QAAMa,IAAa,EAAE,SAAAd,GAAS,aAAAC,EAAA;AAC9B,SAAAP,EAAS,IAAIoB,CAAU,GAEnBpB,EAAS,SAAS,KACpBa,EAAA,GAGK,MAAM;AACX,IAAAb,EAAS,OAAOoB,CAAU,GAEtBpB,EAAS,SAAS,MAChBC,MACF,OAAO,aAAaA,CAAgB,GACpCA,IAAmB,SAEjBE,MACF,OAAO,aAAaA,CAAc,GAClCA,IAAiB,QACjBD,IAAe,CAAA,IAEbH,MACFA,EAAG,UAAU,MACbA,EAAG,MAAA,GACHA,IAAK;AAAA,EAGX;AACF;"}