@ynput/ayon-frontend-shared 0.2.21 → 0.2.22

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 (330) hide show
  1. package/dist/DetailsPanel.cjs.js +6 -5
  2. package/dist/DetailsPanel.cjs.js.map +1 -1
  3. package/dist/DetailsPanel.es.js +6 -5
  4. package/dist/DetailsPanel.es.js.map +1 -1
  5. package/dist/_virtual/index.cjs4.js +4 -4
  6. package/dist/_virtual/index.cjs5.js +4 -4
  7. package/dist/_virtual/index.cjs6.js +2 -2
  8. package/dist/_virtual/index.cjs7.js +2 -2
  9. package/dist/_virtual/index.es4.js +4 -4
  10. package/dist/_virtual/index.es5.js +4 -4
  11. package/dist/_virtual/index.es6.js +2 -2
  12. package/dist/_virtual/index.es7.js +2 -2
  13. package/dist/api.cjs.js +22 -19
  14. package/dist/api.cjs.js.map +1 -1
  15. package/dist/api.es.js +8 -5
  16. package/dist/api.es.js.map +1 -1
  17. package/dist/index.cjs.js +6 -5
  18. package/dist/index.cjs.js.map +1 -1
  19. package/dist/index.es.js +6 -5
  20. package/dist/index.es.js.map +1 -1
  21. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  22. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  23. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  24. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  25. package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
  26. package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
  27. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  28. package/dist/node_modules/remove-accents/index.es.js +1 -1
  29. package/dist/shared/src/api/base/client.cjs.js +20 -19
  30. package/dist/shared/src/api/base/client.cjs.js.map +1 -1
  31. package/dist/shared/src/api/base/client.es.js +20 -19
  32. package/dist/shared/src/api/base/client.es.js.map +1 -1
  33. package/dist/shared/src/api/generated/access.cjs.js +8 -0
  34. package/dist/shared/src/api/generated/access.cjs.js.map +1 -1
  35. package/dist/shared/src/api/generated/access.es.js +8 -0
  36. package/dist/shared/src/api/generated/access.es.js.map +1 -1
  37. package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
  38. package/dist/shared/src/api/generated/views.es.js.map +1 -1
  39. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +6 -5
  40. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  41. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +6 -5
  42. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  43. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +6 -5
  44. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  45. package/dist/shared/src/api/queries/entities/updateEntity.es.js +6 -5
  46. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  47. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +6 -5
  48. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  49. package/dist/shared/src/api/queries/overview/updateOverview.es.js +6 -5
  50. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  51. package/dist/shared/src/api/queries/share/share.cjs.js +66 -0
  52. package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -0
  53. package/dist/shared/src/api/queries/share/share.es.js +66 -0
  54. package/dist/shared/src/api/queries/share/share.es.js.map +1 -0
  55. package/dist/shared/src/api/queries/users/getUsers.cjs.js +6 -5
  56. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  57. package/dist/shared/src/api/queries/users/getUsers.es.js +6 -5
  58. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  59. package/dist/shared/src/api/queries/views/getViews.cjs.js +5 -1
  60. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
  61. package/dist/shared/src/api/queries/views/getViews.es.js +5 -1
  62. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
  63. package/dist/shared/src/api/queries/views/updateViews.cjs.js +0 -2
  64. package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
  65. package/dist/shared/src/api/queries/views/updateViews.es.js +0 -2
  66. package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
  67. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +6 -5
  68. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  69. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +6 -5
  70. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  71. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +6 -5
  72. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
  73. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +6 -5
  74. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
  75. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +6 -5
  76. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  77. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +6 -5
  78. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  79. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +6 -5
  80. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  81. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +6 -5
  82. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  83. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +6 -5
  84. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  85. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +6 -5
  86. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  87. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +6 -5
  88. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  89. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +6 -5
  90. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  91. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +6 -5
  92. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  93. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +6 -5
  94. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  95. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +6 -5
  96. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  97. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +6 -5
  98. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  99. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +6 -5
  100. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  101. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +6 -5
  102. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  103. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +6 -5
  104. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  105. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +6 -5
  106. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  107. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +6 -5
  108. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  109. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +6 -5
  110. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  111. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +6 -5
  112. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  113. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +6 -5
  114. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  115. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +6 -5
  116. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  117. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +6 -5
  118. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  119. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +6 -5
  120. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  121. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +6 -5
  122. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  123. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +6 -5
  124. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  125. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +6 -5
  126. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  127. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +6 -5
  128. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  129. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +6 -5
  130. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  131. package/dist/shared/src/components/Watchers/Watchers.cjs.js +6 -5
  132. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  133. package/dist/shared/src/components/Watchers/Watchers.es.js +6 -5
  134. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  135. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +6 -5
  136. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  137. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +6 -5
  138. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  139. package/dist/shared/src/containers/Actions/Actions.cjs.js +6 -5
  140. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  141. package/dist/shared/src/containers/Actions/Actions.es.js +6 -5
  142. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  143. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +6 -5
  144. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  145. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +6 -5
  146. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  147. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +6 -5
  148. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  149. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +6 -5
  150. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  151. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +6 -5
  152. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  153. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +6 -5
  154. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  155. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +6 -5
  156. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  157. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +6 -5
  158. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  159. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +6 -5
  160. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  161. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +6 -5
  162. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  163. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +6 -5
  164. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  165. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +6 -5
  166. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  167. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +6 -5
  168. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  169. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +6 -5
  170. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  171. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +6 -5
  172. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  173. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +6 -5
  174. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  175. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +6 -5
  176. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  177. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +6 -5
  178. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  179. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +15 -9
  180. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  181. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +15 -9
  182. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  183. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +6 -5
  184. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  185. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +6 -5
  186. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  187. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
  188. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
  189. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +52 -77
  190. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  191. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +52 -77
  192. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  193. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +6 -5
  194. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  195. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +6 -5
  196. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  197. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +6 -5
  198. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  199. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +6 -5
  200. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  201. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +6 -5
  202. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  203. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +6 -5
  204. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  205. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +6 -5
  206. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  207. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +6 -5
  208. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  209. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +6 -5
  210. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  211. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +6 -5
  212. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  213. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +6 -5
  214. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  215. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +6 -5
  216. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  217. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +6 -5
  218. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
  219. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +6 -5
  220. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
  221. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +14 -8
  222. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
  223. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +14 -8
  224. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
  225. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +6 -5
  226. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  227. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +6 -5
  228. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  229. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +6 -5
  230. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  231. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +6 -5
  232. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  233. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +6 -5
  234. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  235. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +6 -5
  236. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  237. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +17 -1
  238. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
  239. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +17 -1
  240. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
  241. package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.cjs.js +4 -2
  242. package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.cjs.js.map +1 -1
  243. package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.es.js +4 -2
  244. package/dist/shared/src/containers/Views/ViewItem/ViewItem.styled.es.js.map +1 -1
  245. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -1
  246. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -1
  247. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +12 -7
  248. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  249. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +12 -7
  250. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  251. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +33 -6
  252. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  253. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +34 -7
  254. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  255. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +31 -5
  256. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  257. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +31 -5
  258. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  259. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +16 -10
  260. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  261. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +16 -10
  262. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  263. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +6 -5
  264. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  265. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +6 -5
  266. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  267. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +45 -6
  268. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  269. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +45 -6
  270. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  271. package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.cjs.js +3 -40
  272. package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.cjs.js.map +1 -1
  273. package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.es.js +3 -40
  274. package/dist/shared/src/containers/Views/hooks/useViewsShortcuts.es.js.map +1 -1
  275. package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.cjs.js.map +1 -1
  276. package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.es.js.map +1 -1
  277. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +6 -5
  278. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  279. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +6 -5
  280. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  281. package/dist/shared/src/context/AddonProjectContext.cjs.js +6 -5
  282. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  283. package/dist/shared/src/context/AddonProjectContext.es.js +6 -5
  284. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  285. package/dist/shared/src/context/DetailsPanelContext.cjs.js +6 -5
  286. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  287. package/dist/shared/src/context/DetailsPanelContext.es.js +6 -5
  288. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  289. package/dist/shared/src/context/PowerpackContext.cjs.js +6 -5
  290. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  291. package/dist/shared/src/context/PowerpackContext.es.js +6 -5
  292. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  293. package/dist/shared/src/context/RemoteModulesContext.cjs.js +6 -5
  294. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  295. package/dist/shared/src/context/RemoteModulesContext.es.js +6 -5
  296. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  297. package/dist/shared/src/hooks/useActionTriggers.cjs.js +6 -5
  298. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  299. package/dist/shared/src/hooks/useActionTriggers.es.js +6 -5
  300. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  301. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +6 -5
  302. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  303. package/dist/shared/src/hooks/useEntityUpdate.es.js +6 -5
  304. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  305. package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
  306. package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
  307. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +6 -5
  308. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  309. package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -5
  310. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  311. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +6 -5
  312. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  313. package/dist/shared/src/hooks/useUserProjectConfig.es.js +6 -5
  314. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  315. package/dist/types/api/generated/access.d.ts +15 -0
  316. package/dist/types/api/generated/views.d.ts +4 -4
  317. package/dist/types/api/queries/index.d.ts +6 -5
  318. package/dist/types/api/queries/share/index.d.ts +1 -0
  319. package/dist/types/api/queries/share/share.d.ts +150 -0
  320. package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +10 -15
  321. package/dist/types/containers/Views/ViewItem/ViewItem.d.ts +1 -0
  322. package/dist/types/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.d.ts +2 -1
  323. package/dist/types/containers/Views/context/ViewsContext.d.ts +3 -1
  324. package/dist/types/containers/Views/hooks/useBuildViewMenuItems.d.ts +2 -1
  325. package/dist/types/containers/Views/hooks/useViewsMutations.d.ts +7 -0
  326. package/dist/types/containers/Views/index.d.ts +1 -1
  327. package/dist/types/containers/Views/utils/getCustomViewsFallback.d.ts +3 -3
  328. package/package.json +1 -1
  329. package/dist/types/api/generated/powerPack1.1.1Views.d.ts +0 -25
  330. package/dist/types/containers/Views/hooks/useOverviewViewSettings.d.ts +0 -0
@@ -12,6 +12,11 @@ const ColumnSettingsProvider = ({
12
12
  onChange
13
13
  }) => {
14
14
  var _a;
15
+ const allColumnsRef = React.useRef([]);
16
+ const setAllColumns = (allColumnIds) => {
17
+ allColumnsRef.current = Array.from(new Set(allColumnIds));
18
+ };
19
+ const onChangeWithColumns = (next) => onChange(next, allColumnsRef.current);
15
20
  const columnsConfig = config;
16
21
  const {
17
22
  columnOrder: columnOrderInit = [],
@@ -59,49 +64,37 @@ const ColumnSettingsProvider = ({
59
64
  if (groupBy && !columnVisibility.name) {
60
65
  columnVisibility.name = true;
61
66
  }
62
- const setColumnVisibility = (visibility, allColumnIds) => {
63
- onChange(
64
- {
65
- ...columnsConfig,
66
- columnVisibility: visibility
67
- },
68
- allColumnIds
69
- );
67
+ const setColumnVisibility = (visibility) => {
68
+ onChangeWithColumns({
69
+ ...columnsConfig,
70
+ columnVisibility: visibility
71
+ });
70
72
  };
71
- const setColumnOrder = (order, allColumnIds) => {
72
- onChange(
73
- {
74
- ...columnsConfig,
75
- columnOrder: order
76
- },
77
- allColumnIds
78
- );
73
+ const setColumnOrder = (order) => {
74
+ onChangeWithColumns({
75
+ ...columnsConfig,
76
+ columnOrder: order
77
+ });
79
78
  };
80
- const setColumnPinning = (pinning, allColumnIds) => {
81
- onChange(
82
- {
83
- ...columnsConfig,
84
- columnPinning: pinning
85
- },
86
- allColumnIds
87
- );
79
+ const setColumnPinning = (pinning) => {
80
+ onChangeWithColumns({
81
+ ...columnsConfig,
82
+ columnPinning: pinning
83
+ });
88
84
  };
89
85
  const [internalColumnSizing, setInternalColumnSizing] = React.useState(null);
90
86
  const columnSizing = internalColumnSizing || columnsSizingExternal;
91
87
  const resizingTimeoutRef = React.useRef(null);
92
- const setColumnSizing = (sizing, allColumnIds) => {
88
+ const setColumnSizing = (sizing) => {
93
89
  setInternalColumnSizing(sizing);
94
90
  if (resizingTimeoutRef.current) {
95
91
  clearTimeout(resizingTimeoutRef.current);
96
92
  }
97
93
  resizingTimeoutRef.current = setTimeout(() => {
98
- onChange(
99
- {
100
- ...columnsConfig,
101
- columnSizing: sizing
102
- },
103
- allColumnIds
104
- );
94
+ onChangeWithColumns({
95
+ ...columnsConfig,
96
+ columnSizing: sizing
97
+ });
105
98
  setInternalColumnSizing(null);
106
99
  }, 500);
107
100
  };
@@ -134,7 +127,7 @@ const ColumnSettingsProvider = ({
134
127
  };
135
128
  const updateColumnVisibility = (visibility) => {
136
129
  const newPinning = togglePinningOnVisibilityChange(visibility);
137
- onChange({
130
+ onChangeWithColumns({
138
131
  ...columnsConfig,
139
132
  columnVisibility: visibility,
140
133
  columnPinning: newPinning
@@ -142,7 +135,7 @@ const ColumnSettingsProvider = ({
142
135
  };
143
136
  const updateColumnOrder = (order) => {
144
137
  const newPinning = updatePinningOrderOnOrderChange(order);
145
- onChange({
138
+ onChangeWithColumns({
146
139
  ...columnsConfig,
147
140
  columnOrder: order,
148
141
  columnPinning: newPinning
@@ -150,26 +143,26 @@ const ColumnSettingsProvider = ({
150
143
  };
151
144
  const updateColumnPinning = (pinning) => {
152
145
  const newOrder = updateOrderOnPinningChange(pinning);
153
- onChange({
146
+ onChangeWithColumns({
154
147
  ...columnsConfig,
155
148
  columnOrder: newOrder,
156
149
  columnPinning: pinning
157
150
  });
158
151
  };
159
152
  const updateSorting = (sortingState) => {
160
- onChange({
153
+ onChangeWithColumns({
161
154
  ...columnsConfig,
162
155
  sorting: sortingState
163
156
  });
164
157
  };
165
158
  const updateGroupBy = (groupBy2) => {
166
- onChange({
159
+ onChangeWithColumns({
167
160
  ...columnsConfig,
168
161
  groupBy: groupBy2
169
162
  });
170
163
  };
171
164
  const updateGroupByConfig = (config2) => {
172
- onChange({
165
+ onChangeWithColumns({
173
166
  ...columnsConfig,
174
167
  groupByConfig: {
175
168
  ...groupByConfig,
@@ -177,80 +170,62 @@ const ColumnSettingsProvider = ({
177
170
  }
178
171
  });
179
172
  };
180
- const columnVisibilityUpdater = (columnVisibilityUpdater2) => {
181
- const newVisibility = reactTable.functionalUpdate(columnVisibilityUpdater2, columnVisibility);
182
- updateColumnVisibility(newVisibility);
173
+ const columnVisibilityOnChange = (updater) => {
174
+ const newVisibility = reactTable.functionalUpdate(updater, columnVisibility);
175
+ setColumnVisibility(newVisibility);
183
176
  };
184
- const columnOrderUpdater = (columnOrderUpdater2) => {
185
- const newOrder = reactTable.functionalUpdate(columnOrderUpdater2, columnOrder);
186
- updateColumnOrder(newOrder);
177
+ const columnPinningOnChange = (updater) => {
178
+ const newPinning = reactTable.functionalUpdate(updater, columnPinning);
179
+ setColumnPinning(newPinning);
187
180
  };
188
- const columnPinningUpdater = (columnPinningUpdater2) => {
189
- const newPinning = reactTable.functionalUpdate(columnPinningUpdater2, columnPinning);
190
- updateColumnPinning(newPinning);
181
+ const columnOrderOnChange = (updater) => {
182
+ const newOrder = reactTable.functionalUpdate(updater, columnOrder);
183
+ setColumnOrder(newOrder);
191
184
  };
192
- const columnSizingUpdater = (sizingUpdater) => {
193
- const newSizing = reactTable.functionalUpdate(sizingUpdater, columnSizing);
185
+ const columnSizingOnChange = (updater) => {
186
+ const newSizing = reactTable.functionalUpdate(updater, columnSizing);
194
187
  setColumnSizing(newSizing);
195
188
  };
196
- const sortingUpdater = (sortingUpdater2) => {
197
- const newSorting = reactTable.functionalUpdate(sortingUpdater2, sorting);
189
+ const sortingOnChange = (updater) => {
190
+ const newSorting = reactTable.functionalUpdate(updater, sorting);
198
191
  updateSorting(newSorting);
199
192
  };
200
- const createUpdaterWithAllColumns = {
201
- columnVisibility: (allColumnIds) => (updater) => {
202
- const newVisibility = reactTable.functionalUpdate(updater, columnVisibility);
203
- setColumnVisibility(newVisibility, allColumnIds);
204
- },
205
- columnPinning: (allColumnIds) => (updater) => {
206
- const newPinning = reactTable.functionalUpdate(updater, columnPinning);
207
- setColumnPinning(newPinning, allColumnIds);
208
- },
209
- columnOrder: (allColumnIds) => (updater) => {
210
- const newOrder = reactTable.functionalUpdate(updater, columnOrder);
211
- setColumnOrder(newOrder, allColumnIds);
212
- },
213
- columnSizing: (allColumnIds) => (updater) => {
214
- const newSizing = reactTable.functionalUpdate(updater, columnSizing);
215
- setColumnSizing(newSizing, allColumnIds);
216
- }
217
- };
218
193
  return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
219
194
  ColumnSettingsContext.ColumnSettingsContext.Provider,
220
195
  {
221
196
  value: {
197
+ // all columns ref
198
+ setAllColumns,
222
199
  // column visibility
223
200
  columnVisibility,
224
201
  setColumnVisibility,
225
202
  updateColumnVisibility,
226
- columnVisibilityUpdater,
203
+ columnVisibilityOnChange,
227
204
  // column pinning
228
205
  columnPinning,
229
206
  setColumnPinning,
230
207
  updateColumnPinning,
231
- columnPinningUpdater,
208
+ columnPinningOnChange,
232
209
  // column order
233
210
  columnOrder,
234
211
  setColumnOrder,
235
212
  updateColumnOrder,
236
- columnOrderUpdater,
213
+ columnOrderOnChange,
237
214
  // column sizing
238
215
  columnSizing,
239
216
  setColumnSizing,
240
- columnSizingUpdater,
217
+ columnSizingOnChange,
241
218
  // sorting
242
219
  sorting,
243
220
  updateSorting,
244
- sortingUpdater,
245
- // unified updaters
246
- createUpdaterWithAllColumns,
221
+ sortingOnChange,
247
222
  // group by
248
223
  groupBy,
249
224
  updateGroupBy,
250
225
  groupByConfig,
251
226
  updateGroupByConfig,
252
227
  // global change
253
- setColumnsConfig: (config2) => onChange(config2)
228
+ setColumnsConfig: (config2) => onChangeWithColumns(config2)
254
229
  },
255
230
  children
256
231
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSettingsProvider.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ColumnSettingsProvider.tsx"],"sourcesContent":["import React, { ReactNode, useState } from 'react'\nimport {\n ColumnOrderState,\n ColumnPinningState,\n functionalUpdate,\n OnChangeFn,\n VisibilityState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ROW_SELECTION_COLUMN_ID } from './SelectionCellsContext'\nimport { DRAG_HANDLE_COLUMN_ID } from '../ProjectTreeTable'\nimport { ColumnsConfig, ColumnSettingsContext, TableGroupBy } from './ColumnSettingsContext'\nimport { GroupByConfig } from '../components/GroupSettingsFallback'\n\ninterface ColumnSettingsProviderProps {\n children: ReactNode\n config?: Record<string, any>\n onChange: (config: ColumnsConfig, allColumnIds?: string[]) => void\n}\n\nexport const ColumnSettingsProvider: React.FC<ColumnSettingsProviderProps> = ({\n children,\n config,\n onChange,\n}) => {\n const columnsConfig = config as ColumnsConfig\n const {\n columnOrder: columnOrderInit = [],\n columnPinning: columnPinningInit = {},\n columnVisibility: columnVisibilityInit = {},\n columnSizing: columnsSizingExternal = {},\n sorting: sortingInit = [],\n groupBy,\n groupByConfig = {},\n } = columnsConfig\n\n const sorting = [...sortingInit]\n const columnOrder = [...columnOrderInit]\n const columnPinning = { ...columnPinningInit }\n const defaultOrder = ['thumbnail', 'name', 'subType', 'status', 'tags']\n // for each default column, if it is not in the columnOrder, find the index of the column before it, if none, add to beginning\n defaultOrder.forEach((col, i) => {\n if (!columnOrder.includes(col)) {\n const defaultBefore = defaultOrder[i - 1]\n const columnAfter = defaultOrder[i + 1]\n if (!defaultBefore || !columnOrder.includes(defaultBefore)) {\n // add to beginning\n columnOrder.unshift(col)\n } else {\n // find the index of that column in the columnOrder\n const index = columnOrder.indexOf(defaultBefore)\n // add the item after that column\n columnOrder.splice(index + 1, 0, col)\n }\n if (columnAfter && columnPinning?.left && columnPinning?.left.includes(columnAfter)) {\n // pin the column\n columnPinning.left = [col, ...(columnPinning?.left || [])]\n }\n }\n })\n\n // if we are in grouping mode, always pin the name column\n // and ensure it is first in column order\n if (groupBy) {\n // ensure name column is pinned and first in pinning order\n if (!columnPinning.left?.includes('name')) {\n columnPinning.left = ['name', ...(columnPinning?.left || [])]\n } else {\n // name is already pinned, but ensure it's first\n const filteredPinned = columnPinning.left.filter((col) => col !== 'name')\n columnPinning.left = ['name', ...filteredPinned]\n }\n\n // ensure name is first in column order\n if (columnOrder.includes('name')) {\n // remove name from its current position\n const nameIndex = columnOrder.indexOf('name')\n columnOrder.splice(nameIndex, 1)\n }\n // add name to the beginning\n columnOrder.unshift('name')\n }\n\n // add drag handle and selection columns to the beginning of the column order\n columnOrder.unshift(...[DRAG_HANDLE_COLUMN_ID, ROW_SELECTION_COLUMN_ID])\n\n // VISIBILITY STATE MUTATIONS\n const columnVisibility = { ...columnVisibilityInit }\n // if we are in grouping mode, name column must always be visible\n if (groupBy && !columnVisibility.name) {\n columnVisibility.name = true\n }\n\n // DIRECT STATE UPDATES - no side effects\n const setColumnVisibility = (visibility: VisibilityState, allColumnIds?: string[]) => {\n onChange(\n {\n ...columnsConfig,\n columnVisibility: visibility,\n },\n allColumnIds,\n )\n }\n\n const setColumnOrder = (order: ColumnOrderState, allColumnIds?: string[]) => {\n onChange(\n {\n ...columnsConfig,\n columnOrder: order,\n },\n allColumnIds,\n )\n }\n\n const setColumnPinning = (pinning: ColumnPinningState, allColumnIds?: string[]) => {\n onChange(\n {\n ...columnsConfig,\n columnPinning: pinning,\n },\n allColumnIds,\n )\n }\n\n const [internalColumnSizing, setInternalColumnSizing] = useState<ColumnSizingState | null>(null)\n\n // use internalColumnSizing if it exists, otherwise use the external column sizing\n const columnSizing = internalColumnSizing || columnsSizingExternal\n\n const resizingTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n\n const setColumnSizing = (sizing: ColumnSizingState, allColumnIds?: string[]) => {\n setInternalColumnSizing(sizing)\n\n // if there is a timeout already set, clear it\n if (resizingTimeoutRef.current) {\n clearTimeout(resizingTimeoutRef.current)\n }\n // set a timeout that tracks if the column sizing has finished\n resizingTimeoutRef.current = setTimeout(() => {\n // we have finished resizing now!\n // update the external column sizing\n onChange(\n {\n ...columnsConfig,\n columnSizing: sizing,\n },\n allColumnIds,\n )\n // reset the internal column sizing to not be used anymore\n setInternalColumnSizing(null)\n }, 500)\n }\n\n // SIDE EFFECT UTILITIES\n const togglePinningOnVisibilityChange = (visibility: VisibilityState) => {\n // ensure that any columns that are now hidden are removed from the pinning\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const hiddenColumns = Object.keys(visibility).filter((col) => visibility[col] === false)\n const newPinnedColumns = pinnedColumns.filter((col) => !hiddenColumns.includes(col))\n\n return {\n ...newPinning,\n left: newPinnedColumns,\n }\n }\n\n const updatePinningOrderOnOrderChange = (order: ColumnOrderState) => {\n // ensure that the column pinning is in the order of the column order\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const pinnedColumnsOrder = order.filter((col) => pinnedColumns.includes(col))\n\n return {\n ...newPinning,\n left: pinnedColumnsOrder,\n }\n }\n\n const updateOrderOnPinningChange = (pinning: ColumnPinningState) => {\n // we resort the column order based on the pinning\n return [...columnOrder].sort((a, b) => {\n const aPinned = pinning.left?.includes(a) ? 1 : 0\n const bPinned = pinning.left?.includes(b) ? 1 : 0\n return bPinned - aPinned\n })\n }\n\n // UPDATE METHODS WITH SIDE EFFECTS\n const updateColumnVisibility = (visibility: VisibilityState) => {\n const newPinning = togglePinningOnVisibilityChange(visibility)\n onChange({\n ...columnsConfig,\n columnVisibility: visibility,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnOrder = (order: ColumnOrderState) => {\n const newPinning = updatePinningOrderOnOrderChange(order)\n onChange({\n ...columnsConfig,\n columnOrder: order,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnPinning = (pinning: ColumnPinningState) => {\n const newOrder = updateOrderOnPinningChange(pinning)\n onChange({\n ...columnsConfig,\n columnOrder: newOrder,\n columnPinning: pinning,\n })\n }\n\n const updateSorting = (sortingState: SortingState) => {\n onChange({\n ...columnsConfig,\n sorting: sortingState,\n })\n }\n\n const updateGroupBy = (groupBy: TableGroupBy | undefined) => {\n onChange({\n ...columnsConfig,\n groupBy: groupBy,\n })\n }\n\n const updateGroupByConfig = (config: GroupByConfig) => {\n onChange({\n ...columnsConfig,\n groupByConfig: {\n ...groupByConfig,\n ...config,\n },\n })\n }\n\n // UPDATER FUNCTIONS\n const columnVisibilityUpdater: OnChangeFn<VisibilityState> = (columnVisibilityUpdater) => {\n const newVisibility = functionalUpdate(columnVisibilityUpdater, columnVisibility)\n updateColumnVisibility(newVisibility)\n }\n\n const columnOrderUpdater: OnChangeFn<ColumnOrderState> = (columnOrderUpdater) => {\n const newOrder = functionalUpdate(columnOrderUpdater, columnOrder)\n updateColumnOrder(newOrder)\n }\n\n const columnPinningUpdater: OnChangeFn<ColumnPinningState> = (columnPinningUpdater) => {\n const newPinning = functionalUpdate(columnPinningUpdater, columnPinning)\n updateColumnPinning(newPinning)\n }\n\n const columnSizingUpdater: OnChangeFn<ColumnSizingState> = (sizingUpdater) => {\n const newSizing = functionalUpdate(sizingUpdater, columnSizing)\n setColumnSizing(newSizing)\n }\n\n const sortingUpdater: OnChangeFn<SortingState> = (sortingUpdater) => {\n const newSorting = functionalUpdate(sortingUpdater, sorting)\n updateSorting(newSorting)\n }\n\n // UNIFIED UPDATERS WITH ALL COLUMN IDS\n const createUpdaterWithAllColumns = {\n columnVisibility:\n (allColumnIds: string[]): OnChangeFn<VisibilityState> =>\n (updater) => {\n const newVisibility = functionalUpdate(updater, columnVisibility)\n setColumnVisibility(newVisibility, allColumnIds)\n },\n columnPinning:\n (allColumnIds: string[]): OnChangeFn<ColumnPinningState> =>\n (updater) => {\n const newPinning = functionalUpdate(updater, columnPinning)\n setColumnPinning(newPinning, allColumnIds)\n },\n columnOrder:\n (allColumnIds: string[]): OnChangeFn<ColumnOrderState> =>\n (updater) => {\n const newOrder = functionalUpdate(updater, columnOrder)\n setColumnOrder(newOrder, allColumnIds)\n },\n columnSizing:\n (allColumnIds: string[]): OnChangeFn<ColumnSizingState> =>\n (updater) => {\n const newSizing = functionalUpdate(updater, columnSizing)\n setColumnSizing(newSizing, allColumnIds)\n },\n }\n\n return (\n <ColumnSettingsContext.Provider\n value={{\n // column visibility\n columnVisibility,\n setColumnVisibility,\n updateColumnVisibility,\n columnVisibilityUpdater,\n // column pinning\n columnPinning,\n setColumnPinning,\n updateColumnPinning,\n columnPinningUpdater,\n // column order\n columnOrder,\n setColumnOrder,\n updateColumnOrder,\n columnOrderUpdater,\n // column sizing\n columnSizing,\n setColumnSizing,\n columnSizingUpdater,\n // sorting\n sorting,\n updateSorting,\n sortingUpdater,\n // unified updaters\n createUpdaterWithAllColumns,\n // group by\n groupBy,\n updateGroupBy,\n groupByConfig,\n updateGroupByConfig,\n\n // global change\n setColumnsConfig: (config: ColumnsConfig) => onChange(config),\n }}\n >\n {children}\n </ColumnSettingsContext.Provider>\n )\n}\n"],"names":["DRAG_HANDLE_COLUMN_ID","ROW_SELECTION_COLUMN_ID","useState","_a","groupBy","config","columnVisibilityUpdater","functionalUpdate","columnOrderUpdater","columnPinningUpdater","sortingUpdater","jsx","ColumnSettingsContext"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnSettingsProvider.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ColumnSettingsProvider.tsx"],"sourcesContent":["import React, { ReactNode, useState } from 'react'\nimport {\n ColumnOrderState,\n ColumnPinningState,\n functionalUpdate,\n OnChangeFn,\n VisibilityState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ROW_SELECTION_COLUMN_ID } from './SelectionCellsContext'\nimport { DRAG_HANDLE_COLUMN_ID } from '../ProjectTreeTable'\nimport { ColumnsConfig, ColumnSettingsContext, TableGroupBy } from './ColumnSettingsContext'\nimport { GroupByConfig } from '../components/GroupSettingsFallback'\n\ninterface ColumnSettingsProviderProps {\n children: ReactNode\n config?: Record<string, any>\n onChange: (config: ColumnsConfig, allColumnIds?: string[]) => void\n}\n\nexport const ColumnSettingsProvider: React.FC<ColumnSettingsProviderProps> = ({\n children,\n config,\n onChange,\n}) => {\n const allColumnsRef = React.useRef<string[]>([])\n const setAllColumns = (allColumnIds: string[]) => {\n allColumnsRef.current = Array.from(new Set(allColumnIds))\n }\n const onChangeWithColumns = (next: ColumnsConfig) => onChange(next, allColumnsRef.current)\n const columnsConfig = config as ColumnsConfig\n const {\n columnOrder: columnOrderInit = [],\n columnPinning: columnPinningInit = {},\n columnVisibility: columnVisibilityInit = {},\n columnSizing: columnsSizingExternal = {},\n sorting: sortingInit = [],\n groupBy,\n groupByConfig = {},\n } = columnsConfig\n\n const sorting = [...sortingInit]\n const columnOrder = [...columnOrderInit]\n const columnPinning = { ...columnPinningInit }\n const defaultOrder = ['thumbnail', 'name', 'subType', 'status', 'tags']\n // for each default column, if it is not in the columnOrder, find the index of the column before it, if none, add to beginning\n defaultOrder.forEach((col, i) => {\n if (!columnOrder.includes(col)) {\n const defaultBefore = defaultOrder[i - 1]\n const columnAfter = defaultOrder[i + 1]\n if (!defaultBefore || !columnOrder.includes(defaultBefore)) {\n // add to beginning\n columnOrder.unshift(col)\n } else {\n // find the index of that column in the columnOrder\n const index = columnOrder.indexOf(defaultBefore)\n // add the item after that column\n columnOrder.splice(index + 1, 0, col)\n }\n if (columnAfter && columnPinning?.left && columnPinning?.left.includes(columnAfter)) {\n // pin the column\n columnPinning.left = [col, ...(columnPinning?.left || [])]\n }\n }\n })\n\n // if we are in grouping mode, always pin the name column\n // and ensure it is first in column order\n if (groupBy) {\n // ensure name column is pinned and first in pinning order\n if (!columnPinning.left?.includes('name')) {\n columnPinning.left = ['name', ...(columnPinning?.left || [])]\n } else {\n // name is already pinned, but ensure it's first\n const filteredPinned = columnPinning.left.filter((col) => col !== 'name')\n columnPinning.left = ['name', ...filteredPinned]\n }\n\n // ensure name is first in column order\n if (columnOrder.includes('name')) {\n // remove name from its current position\n const nameIndex = columnOrder.indexOf('name')\n columnOrder.splice(nameIndex, 1)\n }\n // add name to the beginning\n columnOrder.unshift('name')\n }\n\n // add drag handle and selection columns to the beginning of the column order\n columnOrder.unshift(...[DRAG_HANDLE_COLUMN_ID, ROW_SELECTION_COLUMN_ID])\n\n // VISIBILITY STATE MUTATIONS\n const columnVisibility = { ...columnVisibilityInit }\n // if we are in grouping mode, name column must always be visible\n if (groupBy && !columnVisibility.name) {\n columnVisibility.name = true\n }\n\n // DIRECT STATE UPDATES - no side effects\n const setColumnVisibility = (visibility: VisibilityState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnVisibility: visibility,\n })\n }\n\n const setColumnOrder = (order: ColumnOrderState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: order,\n })\n }\n\n const setColumnPinning = (pinning: ColumnPinningState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnPinning: pinning,\n })\n }\n\n const [internalColumnSizing, setInternalColumnSizing] = useState<ColumnSizingState | null>(null)\n\n // use internalColumnSizing if it exists, otherwise use the external column sizing\n const columnSizing = internalColumnSizing || columnsSizingExternal\n\n const resizingTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n\n const setColumnSizing = (sizing: ColumnSizingState) => {\n setInternalColumnSizing(sizing)\n\n // if there is a timeout already set, clear it\n if (resizingTimeoutRef.current) {\n clearTimeout(resizingTimeoutRef.current)\n }\n // set a timeout that tracks if the column sizing has finished\n resizingTimeoutRef.current = setTimeout(() => {\n // we have finished resizing now!\n // update the external column sizing\n onChangeWithColumns({\n ...columnsConfig,\n columnSizing: sizing,\n })\n // reset the internal column sizing to not be used anymore\n setInternalColumnSizing(null)\n }, 500)\n }\n\n // SIDE EFFECT UTILITIES\n const togglePinningOnVisibilityChange = (visibility: VisibilityState) => {\n // ensure that any columns that are now hidden are removed from the pinning\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const hiddenColumns = Object.keys(visibility).filter((col) => visibility[col] === false)\n const newPinnedColumns = pinnedColumns.filter((col) => !hiddenColumns.includes(col))\n\n return {\n ...newPinning,\n left: newPinnedColumns,\n }\n }\n\n const updatePinningOrderOnOrderChange = (order: ColumnOrderState) => {\n // ensure that the column pinning is in the order of the column order\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const pinnedColumnsOrder = order.filter((col) => pinnedColumns.includes(col))\n\n return {\n ...newPinning,\n left: pinnedColumnsOrder,\n }\n }\n\n const updateOrderOnPinningChange = (pinning: ColumnPinningState) => {\n // we resort the column order based on the pinning\n return [...columnOrder].sort((a, b) => {\n const aPinned = pinning.left?.includes(a) ? 1 : 0\n const bPinned = pinning.left?.includes(b) ? 1 : 0\n return bPinned - aPinned\n })\n }\n\n // UPDATE METHODS WITH SIDE EFFECTS\n const updateColumnVisibility = (visibility: VisibilityState) => {\n const newPinning = togglePinningOnVisibilityChange(visibility)\n onChangeWithColumns({\n ...columnsConfig,\n columnVisibility: visibility,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnOrder = (order: ColumnOrderState) => {\n const newPinning = updatePinningOrderOnOrderChange(order)\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: order,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnPinning = (pinning: ColumnPinningState) => {\n const newOrder = updateOrderOnPinningChange(pinning)\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: newOrder,\n columnPinning: pinning,\n })\n }\n\n const updateSorting = (sortingState: SortingState) => {\n onChangeWithColumns({\n ...columnsConfig,\n sorting: sortingState,\n })\n }\n\n const updateGroupBy = (groupBy: TableGroupBy | undefined) => {\n onChangeWithColumns({\n ...columnsConfig,\n groupBy: groupBy,\n })\n }\n\n const updateGroupByConfig = (config: GroupByConfig) => {\n onChangeWithColumns({\n ...columnsConfig,\n groupByConfig: {\n ...groupByConfig,\n ...config,\n },\n })\n }\n\n // Remove redundant local updater functions in favor of unified updaters with all columns\n\n // ON-CHANGE HANDLERS (TanStack-compatible)\n const columnVisibilityOnChange: OnChangeFn<VisibilityState> = (updater) => {\n const newVisibility = functionalUpdate(updater, columnVisibility)\n setColumnVisibility(newVisibility)\n }\n\n const columnPinningOnChange: OnChangeFn<ColumnPinningState> = (updater) => {\n const newPinning = functionalUpdate(updater, columnPinning)\n setColumnPinning(newPinning)\n }\n\n const columnOrderOnChange: OnChangeFn<ColumnOrderState> = (updater) => {\n const newOrder = functionalUpdate(updater, columnOrder)\n setColumnOrder(newOrder)\n }\n\n const columnSizingOnChange: OnChangeFn<ColumnSizingState> = (updater) => {\n const newSizing = functionalUpdate(updater, columnSizing)\n setColumnSizing(newSizing)\n }\n\n const sortingOnChange: OnChangeFn<SortingState> = (updater) => {\n const newSorting = functionalUpdate(updater, sorting)\n updateSorting(newSorting)\n }\n\n return (\n <ColumnSettingsContext.Provider\n value={{\n // all columns ref\n setAllColumns,\n // column visibility\n columnVisibility,\n setColumnVisibility,\n updateColumnVisibility,\n columnVisibilityOnChange,\n // column pinning\n columnPinning,\n setColumnPinning,\n updateColumnPinning,\n columnPinningOnChange,\n // column order\n columnOrder,\n setColumnOrder,\n updateColumnOrder,\n columnOrderOnChange,\n // column sizing\n columnSizing,\n setColumnSizing,\n columnSizingOnChange,\n // sorting\n sorting,\n updateSorting,\n sortingOnChange,\n // group by\n groupBy,\n updateGroupBy,\n groupByConfig,\n updateGroupByConfig,\n\n // global change\n setColumnsConfig: (config: ColumnsConfig) => onChangeWithColumns(config),\n }}\n >\n {children}\n </ColumnSettingsContext.Provider>\n )\n}\n"],"names":["DRAG_HANDLE_COLUMN_ID","ROW_SELECTION_COLUMN_ID","useState","_a","groupBy","config","functionalUpdate","jsx","ColumnSettingsContext"],"mappings":"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"}
@@ -10,6 +10,11 @@ const ColumnSettingsProvider = ({
10
10
  onChange
11
11
  }) => {
12
12
  var _a;
13
+ const allColumnsRef = React__default.useRef([]);
14
+ const setAllColumns = (allColumnIds) => {
15
+ allColumnsRef.current = Array.from(new Set(allColumnIds));
16
+ };
17
+ const onChangeWithColumns = (next) => onChange(next, allColumnsRef.current);
13
18
  const columnsConfig = config;
14
19
  const {
15
20
  columnOrder: columnOrderInit = [],
@@ -57,49 +62,37 @@ const ColumnSettingsProvider = ({
57
62
  if (groupBy && !columnVisibility.name) {
58
63
  columnVisibility.name = true;
59
64
  }
60
- const setColumnVisibility = (visibility, allColumnIds) => {
61
- onChange(
62
- {
63
- ...columnsConfig,
64
- columnVisibility: visibility
65
- },
66
- allColumnIds
67
- );
65
+ const setColumnVisibility = (visibility) => {
66
+ onChangeWithColumns({
67
+ ...columnsConfig,
68
+ columnVisibility: visibility
69
+ });
68
70
  };
69
- const setColumnOrder = (order, allColumnIds) => {
70
- onChange(
71
- {
72
- ...columnsConfig,
73
- columnOrder: order
74
- },
75
- allColumnIds
76
- );
71
+ const setColumnOrder = (order) => {
72
+ onChangeWithColumns({
73
+ ...columnsConfig,
74
+ columnOrder: order
75
+ });
77
76
  };
78
- const setColumnPinning = (pinning, allColumnIds) => {
79
- onChange(
80
- {
81
- ...columnsConfig,
82
- columnPinning: pinning
83
- },
84
- allColumnIds
85
- );
77
+ const setColumnPinning = (pinning) => {
78
+ onChangeWithColumns({
79
+ ...columnsConfig,
80
+ columnPinning: pinning
81
+ });
86
82
  };
87
83
  const [internalColumnSizing, setInternalColumnSizing] = useState(null);
88
84
  const columnSizing = internalColumnSizing || columnsSizingExternal;
89
85
  const resizingTimeoutRef = React__default.useRef(null);
90
- const setColumnSizing = (sizing, allColumnIds) => {
86
+ const setColumnSizing = (sizing) => {
91
87
  setInternalColumnSizing(sizing);
92
88
  if (resizingTimeoutRef.current) {
93
89
  clearTimeout(resizingTimeoutRef.current);
94
90
  }
95
91
  resizingTimeoutRef.current = setTimeout(() => {
96
- onChange(
97
- {
98
- ...columnsConfig,
99
- columnSizing: sizing
100
- },
101
- allColumnIds
102
- );
92
+ onChangeWithColumns({
93
+ ...columnsConfig,
94
+ columnSizing: sizing
95
+ });
103
96
  setInternalColumnSizing(null);
104
97
  }, 500);
105
98
  };
@@ -132,7 +125,7 @@ const ColumnSettingsProvider = ({
132
125
  };
133
126
  const updateColumnVisibility = (visibility) => {
134
127
  const newPinning = togglePinningOnVisibilityChange(visibility);
135
- onChange({
128
+ onChangeWithColumns({
136
129
  ...columnsConfig,
137
130
  columnVisibility: visibility,
138
131
  columnPinning: newPinning
@@ -140,7 +133,7 @@ const ColumnSettingsProvider = ({
140
133
  };
141
134
  const updateColumnOrder = (order) => {
142
135
  const newPinning = updatePinningOrderOnOrderChange(order);
143
- onChange({
136
+ onChangeWithColumns({
144
137
  ...columnsConfig,
145
138
  columnOrder: order,
146
139
  columnPinning: newPinning
@@ -148,26 +141,26 @@ const ColumnSettingsProvider = ({
148
141
  };
149
142
  const updateColumnPinning = (pinning) => {
150
143
  const newOrder = updateOrderOnPinningChange(pinning);
151
- onChange({
144
+ onChangeWithColumns({
152
145
  ...columnsConfig,
153
146
  columnOrder: newOrder,
154
147
  columnPinning: pinning
155
148
  });
156
149
  };
157
150
  const updateSorting = (sortingState) => {
158
- onChange({
151
+ onChangeWithColumns({
159
152
  ...columnsConfig,
160
153
  sorting: sortingState
161
154
  });
162
155
  };
163
156
  const updateGroupBy = (groupBy2) => {
164
- onChange({
157
+ onChangeWithColumns({
165
158
  ...columnsConfig,
166
159
  groupBy: groupBy2
167
160
  });
168
161
  };
169
162
  const updateGroupByConfig = (config2) => {
170
- onChange({
163
+ onChangeWithColumns({
171
164
  ...columnsConfig,
172
165
  groupByConfig: {
173
166
  ...groupByConfig,
@@ -175,80 +168,62 @@ const ColumnSettingsProvider = ({
175
168
  }
176
169
  });
177
170
  };
178
- const columnVisibilityUpdater = (columnVisibilityUpdater2) => {
179
- const newVisibility = functionalUpdate(columnVisibilityUpdater2, columnVisibility);
180
- updateColumnVisibility(newVisibility);
171
+ const columnVisibilityOnChange = (updater) => {
172
+ const newVisibility = functionalUpdate(updater, columnVisibility);
173
+ setColumnVisibility(newVisibility);
181
174
  };
182
- const columnOrderUpdater = (columnOrderUpdater2) => {
183
- const newOrder = functionalUpdate(columnOrderUpdater2, columnOrder);
184
- updateColumnOrder(newOrder);
175
+ const columnPinningOnChange = (updater) => {
176
+ const newPinning = functionalUpdate(updater, columnPinning);
177
+ setColumnPinning(newPinning);
185
178
  };
186
- const columnPinningUpdater = (columnPinningUpdater2) => {
187
- const newPinning = functionalUpdate(columnPinningUpdater2, columnPinning);
188
- updateColumnPinning(newPinning);
179
+ const columnOrderOnChange = (updater) => {
180
+ const newOrder = functionalUpdate(updater, columnOrder);
181
+ setColumnOrder(newOrder);
189
182
  };
190
- const columnSizingUpdater = (sizingUpdater) => {
191
- const newSizing = functionalUpdate(sizingUpdater, columnSizing);
183
+ const columnSizingOnChange = (updater) => {
184
+ const newSizing = functionalUpdate(updater, columnSizing);
192
185
  setColumnSizing(newSizing);
193
186
  };
194
- const sortingUpdater = (sortingUpdater2) => {
195
- const newSorting = functionalUpdate(sortingUpdater2, sorting);
187
+ const sortingOnChange = (updater) => {
188
+ const newSorting = functionalUpdate(updater, sorting);
196
189
  updateSorting(newSorting);
197
190
  };
198
- const createUpdaterWithAllColumns = {
199
- columnVisibility: (allColumnIds) => (updater) => {
200
- const newVisibility = functionalUpdate(updater, columnVisibility);
201
- setColumnVisibility(newVisibility, allColumnIds);
202
- },
203
- columnPinning: (allColumnIds) => (updater) => {
204
- const newPinning = functionalUpdate(updater, columnPinning);
205
- setColumnPinning(newPinning, allColumnIds);
206
- },
207
- columnOrder: (allColumnIds) => (updater) => {
208
- const newOrder = functionalUpdate(updater, columnOrder);
209
- setColumnOrder(newOrder, allColumnIds);
210
- },
211
- columnSizing: (allColumnIds) => (updater) => {
212
- const newSizing = functionalUpdate(updater, columnSizing);
213
- setColumnSizing(newSizing, allColumnIds);
214
- }
215
- };
216
191
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
217
192
  ColumnSettingsContext.Provider,
218
193
  {
219
194
  value: {
195
+ // all columns ref
196
+ setAllColumns,
220
197
  // column visibility
221
198
  columnVisibility,
222
199
  setColumnVisibility,
223
200
  updateColumnVisibility,
224
- columnVisibilityUpdater,
201
+ columnVisibilityOnChange,
225
202
  // column pinning
226
203
  columnPinning,
227
204
  setColumnPinning,
228
205
  updateColumnPinning,
229
- columnPinningUpdater,
206
+ columnPinningOnChange,
230
207
  // column order
231
208
  columnOrder,
232
209
  setColumnOrder,
233
210
  updateColumnOrder,
234
- columnOrderUpdater,
211
+ columnOrderOnChange,
235
212
  // column sizing
236
213
  columnSizing,
237
214
  setColumnSizing,
238
- columnSizingUpdater,
215
+ columnSizingOnChange,
239
216
  // sorting
240
217
  sorting,
241
218
  updateSorting,
242
- sortingUpdater,
243
- // unified updaters
244
- createUpdaterWithAllColumns,
219
+ sortingOnChange,
245
220
  // group by
246
221
  groupBy,
247
222
  updateGroupBy,
248
223
  groupByConfig,
249
224
  updateGroupByConfig,
250
225
  // global change
251
- setColumnsConfig: (config2) => onChange(config2)
226
+ setColumnsConfig: (config2) => onChangeWithColumns(config2)
252
227
  },
253
228
  children
254
229
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSettingsProvider.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ColumnSettingsProvider.tsx"],"sourcesContent":["import React, { ReactNode, useState } from 'react'\nimport {\n ColumnOrderState,\n ColumnPinningState,\n functionalUpdate,\n OnChangeFn,\n VisibilityState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ROW_SELECTION_COLUMN_ID } from './SelectionCellsContext'\nimport { DRAG_HANDLE_COLUMN_ID } from '../ProjectTreeTable'\nimport { ColumnsConfig, ColumnSettingsContext, TableGroupBy } from './ColumnSettingsContext'\nimport { GroupByConfig } from '../components/GroupSettingsFallback'\n\ninterface ColumnSettingsProviderProps {\n children: ReactNode\n config?: Record<string, any>\n onChange: (config: ColumnsConfig, allColumnIds?: string[]) => void\n}\n\nexport const ColumnSettingsProvider: React.FC<ColumnSettingsProviderProps> = ({\n children,\n config,\n onChange,\n}) => {\n const columnsConfig = config as ColumnsConfig\n const {\n columnOrder: columnOrderInit = [],\n columnPinning: columnPinningInit = {},\n columnVisibility: columnVisibilityInit = {},\n columnSizing: columnsSizingExternal = {},\n sorting: sortingInit = [],\n groupBy,\n groupByConfig = {},\n } = columnsConfig\n\n const sorting = [...sortingInit]\n const columnOrder = [...columnOrderInit]\n const columnPinning = { ...columnPinningInit }\n const defaultOrder = ['thumbnail', 'name', 'subType', 'status', 'tags']\n // for each default column, if it is not in the columnOrder, find the index of the column before it, if none, add to beginning\n defaultOrder.forEach((col, i) => {\n if (!columnOrder.includes(col)) {\n const defaultBefore = defaultOrder[i - 1]\n const columnAfter = defaultOrder[i + 1]\n if (!defaultBefore || !columnOrder.includes(defaultBefore)) {\n // add to beginning\n columnOrder.unshift(col)\n } else {\n // find the index of that column in the columnOrder\n const index = columnOrder.indexOf(defaultBefore)\n // add the item after that column\n columnOrder.splice(index + 1, 0, col)\n }\n if (columnAfter && columnPinning?.left && columnPinning?.left.includes(columnAfter)) {\n // pin the column\n columnPinning.left = [col, ...(columnPinning?.left || [])]\n }\n }\n })\n\n // if we are in grouping mode, always pin the name column\n // and ensure it is first in column order\n if (groupBy) {\n // ensure name column is pinned and first in pinning order\n if (!columnPinning.left?.includes('name')) {\n columnPinning.left = ['name', ...(columnPinning?.left || [])]\n } else {\n // name is already pinned, but ensure it's first\n const filteredPinned = columnPinning.left.filter((col) => col !== 'name')\n columnPinning.left = ['name', ...filteredPinned]\n }\n\n // ensure name is first in column order\n if (columnOrder.includes('name')) {\n // remove name from its current position\n const nameIndex = columnOrder.indexOf('name')\n columnOrder.splice(nameIndex, 1)\n }\n // add name to the beginning\n columnOrder.unshift('name')\n }\n\n // add drag handle and selection columns to the beginning of the column order\n columnOrder.unshift(...[DRAG_HANDLE_COLUMN_ID, ROW_SELECTION_COLUMN_ID])\n\n // VISIBILITY STATE MUTATIONS\n const columnVisibility = { ...columnVisibilityInit }\n // if we are in grouping mode, name column must always be visible\n if (groupBy && !columnVisibility.name) {\n columnVisibility.name = true\n }\n\n // DIRECT STATE UPDATES - no side effects\n const setColumnVisibility = (visibility: VisibilityState, allColumnIds?: string[]) => {\n onChange(\n {\n ...columnsConfig,\n columnVisibility: visibility,\n },\n allColumnIds,\n )\n }\n\n const setColumnOrder = (order: ColumnOrderState, allColumnIds?: string[]) => {\n onChange(\n {\n ...columnsConfig,\n columnOrder: order,\n },\n allColumnIds,\n )\n }\n\n const setColumnPinning = (pinning: ColumnPinningState, allColumnIds?: string[]) => {\n onChange(\n {\n ...columnsConfig,\n columnPinning: pinning,\n },\n allColumnIds,\n )\n }\n\n const [internalColumnSizing, setInternalColumnSizing] = useState<ColumnSizingState | null>(null)\n\n // use internalColumnSizing if it exists, otherwise use the external column sizing\n const columnSizing = internalColumnSizing || columnsSizingExternal\n\n const resizingTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n\n const setColumnSizing = (sizing: ColumnSizingState, allColumnIds?: string[]) => {\n setInternalColumnSizing(sizing)\n\n // if there is a timeout already set, clear it\n if (resizingTimeoutRef.current) {\n clearTimeout(resizingTimeoutRef.current)\n }\n // set a timeout that tracks if the column sizing has finished\n resizingTimeoutRef.current = setTimeout(() => {\n // we have finished resizing now!\n // update the external column sizing\n onChange(\n {\n ...columnsConfig,\n columnSizing: sizing,\n },\n allColumnIds,\n )\n // reset the internal column sizing to not be used anymore\n setInternalColumnSizing(null)\n }, 500)\n }\n\n // SIDE EFFECT UTILITIES\n const togglePinningOnVisibilityChange = (visibility: VisibilityState) => {\n // ensure that any columns that are now hidden are removed from the pinning\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const hiddenColumns = Object.keys(visibility).filter((col) => visibility[col] === false)\n const newPinnedColumns = pinnedColumns.filter((col) => !hiddenColumns.includes(col))\n\n return {\n ...newPinning,\n left: newPinnedColumns,\n }\n }\n\n const updatePinningOrderOnOrderChange = (order: ColumnOrderState) => {\n // ensure that the column pinning is in the order of the column order\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const pinnedColumnsOrder = order.filter((col) => pinnedColumns.includes(col))\n\n return {\n ...newPinning,\n left: pinnedColumnsOrder,\n }\n }\n\n const updateOrderOnPinningChange = (pinning: ColumnPinningState) => {\n // we resort the column order based on the pinning\n return [...columnOrder].sort((a, b) => {\n const aPinned = pinning.left?.includes(a) ? 1 : 0\n const bPinned = pinning.left?.includes(b) ? 1 : 0\n return bPinned - aPinned\n })\n }\n\n // UPDATE METHODS WITH SIDE EFFECTS\n const updateColumnVisibility = (visibility: VisibilityState) => {\n const newPinning = togglePinningOnVisibilityChange(visibility)\n onChange({\n ...columnsConfig,\n columnVisibility: visibility,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnOrder = (order: ColumnOrderState) => {\n const newPinning = updatePinningOrderOnOrderChange(order)\n onChange({\n ...columnsConfig,\n columnOrder: order,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnPinning = (pinning: ColumnPinningState) => {\n const newOrder = updateOrderOnPinningChange(pinning)\n onChange({\n ...columnsConfig,\n columnOrder: newOrder,\n columnPinning: pinning,\n })\n }\n\n const updateSorting = (sortingState: SortingState) => {\n onChange({\n ...columnsConfig,\n sorting: sortingState,\n })\n }\n\n const updateGroupBy = (groupBy: TableGroupBy | undefined) => {\n onChange({\n ...columnsConfig,\n groupBy: groupBy,\n })\n }\n\n const updateGroupByConfig = (config: GroupByConfig) => {\n onChange({\n ...columnsConfig,\n groupByConfig: {\n ...groupByConfig,\n ...config,\n },\n })\n }\n\n // UPDATER FUNCTIONS\n const columnVisibilityUpdater: OnChangeFn<VisibilityState> = (columnVisibilityUpdater) => {\n const newVisibility = functionalUpdate(columnVisibilityUpdater, columnVisibility)\n updateColumnVisibility(newVisibility)\n }\n\n const columnOrderUpdater: OnChangeFn<ColumnOrderState> = (columnOrderUpdater) => {\n const newOrder = functionalUpdate(columnOrderUpdater, columnOrder)\n updateColumnOrder(newOrder)\n }\n\n const columnPinningUpdater: OnChangeFn<ColumnPinningState> = (columnPinningUpdater) => {\n const newPinning = functionalUpdate(columnPinningUpdater, columnPinning)\n updateColumnPinning(newPinning)\n }\n\n const columnSizingUpdater: OnChangeFn<ColumnSizingState> = (sizingUpdater) => {\n const newSizing = functionalUpdate(sizingUpdater, columnSizing)\n setColumnSizing(newSizing)\n }\n\n const sortingUpdater: OnChangeFn<SortingState> = (sortingUpdater) => {\n const newSorting = functionalUpdate(sortingUpdater, sorting)\n updateSorting(newSorting)\n }\n\n // UNIFIED UPDATERS WITH ALL COLUMN IDS\n const createUpdaterWithAllColumns = {\n columnVisibility:\n (allColumnIds: string[]): OnChangeFn<VisibilityState> =>\n (updater) => {\n const newVisibility = functionalUpdate(updater, columnVisibility)\n setColumnVisibility(newVisibility, allColumnIds)\n },\n columnPinning:\n (allColumnIds: string[]): OnChangeFn<ColumnPinningState> =>\n (updater) => {\n const newPinning = functionalUpdate(updater, columnPinning)\n setColumnPinning(newPinning, allColumnIds)\n },\n columnOrder:\n (allColumnIds: string[]): OnChangeFn<ColumnOrderState> =>\n (updater) => {\n const newOrder = functionalUpdate(updater, columnOrder)\n setColumnOrder(newOrder, allColumnIds)\n },\n columnSizing:\n (allColumnIds: string[]): OnChangeFn<ColumnSizingState> =>\n (updater) => {\n const newSizing = functionalUpdate(updater, columnSizing)\n setColumnSizing(newSizing, allColumnIds)\n },\n }\n\n return (\n <ColumnSettingsContext.Provider\n value={{\n // column visibility\n columnVisibility,\n setColumnVisibility,\n updateColumnVisibility,\n columnVisibilityUpdater,\n // column pinning\n columnPinning,\n setColumnPinning,\n updateColumnPinning,\n columnPinningUpdater,\n // column order\n columnOrder,\n setColumnOrder,\n updateColumnOrder,\n columnOrderUpdater,\n // column sizing\n columnSizing,\n setColumnSizing,\n columnSizingUpdater,\n // sorting\n sorting,\n updateSorting,\n sortingUpdater,\n // unified updaters\n createUpdaterWithAllColumns,\n // group by\n groupBy,\n updateGroupBy,\n groupByConfig,\n updateGroupByConfig,\n\n // global change\n setColumnsConfig: (config: ColumnsConfig) => onChange(config),\n }}\n >\n {children}\n </ColumnSettingsContext.Provider>\n )\n}\n"],"names":["React","_a","groupBy","config","columnVisibilityUpdater","columnOrderUpdater","columnPinningUpdater","sortingUpdater","jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnSettingsProvider.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ColumnSettingsProvider.tsx"],"sourcesContent":["import React, { ReactNode, useState } from 'react'\nimport {\n ColumnOrderState,\n ColumnPinningState,\n functionalUpdate,\n OnChangeFn,\n VisibilityState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ROW_SELECTION_COLUMN_ID } from './SelectionCellsContext'\nimport { DRAG_HANDLE_COLUMN_ID } from '../ProjectTreeTable'\nimport { ColumnsConfig, ColumnSettingsContext, TableGroupBy } from './ColumnSettingsContext'\nimport { GroupByConfig } from '../components/GroupSettingsFallback'\n\ninterface ColumnSettingsProviderProps {\n children: ReactNode\n config?: Record<string, any>\n onChange: (config: ColumnsConfig, allColumnIds?: string[]) => void\n}\n\nexport const ColumnSettingsProvider: React.FC<ColumnSettingsProviderProps> = ({\n children,\n config,\n onChange,\n}) => {\n const allColumnsRef = React.useRef<string[]>([])\n const setAllColumns = (allColumnIds: string[]) => {\n allColumnsRef.current = Array.from(new Set(allColumnIds))\n }\n const onChangeWithColumns = (next: ColumnsConfig) => onChange(next, allColumnsRef.current)\n const columnsConfig = config as ColumnsConfig\n const {\n columnOrder: columnOrderInit = [],\n columnPinning: columnPinningInit = {},\n columnVisibility: columnVisibilityInit = {},\n columnSizing: columnsSizingExternal = {},\n sorting: sortingInit = [],\n groupBy,\n groupByConfig = {},\n } = columnsConfig\n\n const sorting = [...sortingInit]\n const columnOrder = [...columnOrderInit]\n const columnPinning = { ...columnPinningInit }\n const defaultOrder = ['thumbnail', 'name', 'subType', 'status', 'tags']\n // for each default column, if it is not in the columnOrder, find the index of the column before it, if none, add to beginning\n defaultOrder.forEach((col, i) => {\n if (!columnOrder.includes(col)) {\n const defaultBefore = defaultOrder[i - 1]\n const columnAfter = defaultOrder[i + 1]\n if (!defaultBefore || !columnOrder.includes(defaultBefore)) {\n // add to beginning\n columnOrder.unshift(col)\n } else {\n // find the index of that column in the columnOrder\n const index = columnOrder.indexOf(defaultBefore)\n // add the item after that column\n columnOrder.splice(index + 1, 0, col)\n }\n if (columnAfter && columnPinning?.left && columnPinning?.left.includes(columnAfter)) {\n // pin the column\n columnPinning.left = [col, ...(columnPinning?.left || [])]\n }\n }\n })\n\n // if we are in grouping mode, always pin the name column\n // and ensure it is first in column order\n if (groupBy) {\n // ensure name column is pinned and first in pinning order\n if (!columnPinning.left?.includes('name')) {\n columnPinning.left = ['name', ...(columnPinning?.left || [])]\n } else {\n // name is already pinned, but ensure it's first\n const filteredPinned = columnPinning.left.filter((col) => col !== 'name')\n columnPinning.left = ['name', ...filteredPinned]\n }\n\n // ensure name is first in column order\n if (columnOrder.includes('name')) {\n // remove name from its current position\n const nameIndex = columnOrder.indexOf('name')\n columnOrder.splice(nameIndex, 1)\n }\n // add name to the beginning\n columnOrder.unshift('name')\n }\n\n // add drag handle and selection columns to the beginning of the column order\n columnOrder.unshift(...[DRAG_HANDLE_COLUMN_ID, ROW_SELECTION_COLUMN_ID])\n\n // VISIBILITY STATE MUTATIONS\n const columnVisibility = { ...columnVisibilityInit }\n // if we are in grouping mode, name column must always be visible\n if (groupBy && !columnVisibility.name) {\n columnVisibility.name = true\n }\n\n // DIRECT STATE UPDATES - no side effects\n const setColumnVisibility = (visibility: VisibilityState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnVisibility: visibility,\n })\n }\n\n const setColumnOrder = (order: ColumnOrderState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: order,\n })\n }\n\n const setColumnPinning = (pinning: ColumnPinningState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnPinning: pinning,\n })\n }\n\n const [internalColumnSizing, setInternalColumnSizing] = useState<ColumnSizingState | null>(null)\n\n // use internalColumnSizing if it exists, otherwise use the external column sizing\n const columnSizing = internalColumnSizing || columnsSizingExternal\n\n const resizingTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n\n const setColumnSizing = (sizing: ColumnSizingState) => {\n setInternalColumnSizing(sizing)\n\n // if there is a timeout already set, clear it\n if (resizingTimeoutRef.current) {\n clearTimeout(resizingTimeoutRef.current)\n }\n // set a timeout that tracks if the column sizing has finished\n resizingTimeoutRef.current = setTimeout(() => {\n // we have finished resizing now!\n // update the external column sizing\n onChangeWithColumns({\n ...columnsConfig,\n columnSizing: sizing,\n })\n // reset the internal column sizing to not be used anymore\n setInternalColumnSizing(null)\n }, 500)\n }\n\n // SIDE EFFECT UTILITIES\n const togglePinningOnVisibilityChange = (visibility: VisibilityState) => {\n // ensure that any columns that are now hidden are removed from the pinning\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const hiddenColumns = Object.keys(visibility).filter((col) => visibility[col] === false)\n const newPinnedColumns = pinnedColumns.filter((col) => !hiddenColumns.includes(col))\n\n return {\n ...newPinning,\n left: newPinnedColumns,\n }\n }\n\n const updatePinningOrderOnOrderChange = (order: ColumnOrderState) => {\n // ensure that the column pinning is in the order of the column order\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const pinnedColumnsOrder = order.filter((col) => pinnedColumns.includes(col))\n\n return {\n ...newPinning,\n left: pinnedColumnsOrder,\n }\n }\n\n const updateOrderOnPinningChange = (pinning: ColumnPinningState) => {\n // we resort the column order based on the pinning\n return [...columnOrder].sort((a, b) => {\n const aPinned = pinning.left?.includes(a) ? 1 : 0\n const bPinned = pinning.left?.includes(b) ? 1 : 0\n return bPinned - aPinned\n })\n }\n\n // UPDATE METHODS WITH SIDE EFFECTS\n const updateColumnVisibility = (visibility: VisibilityState) => {\n const newPinning = togglePinningOnVisibilityChange(visibility)\n onChangeWithColumns({\n ...columnsConfig,\n columnVisibility: visibility,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnOrder = (order: ColumnOrderState) => {\n const newPinning = updatePinningOrderOnOrderChange(order)\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: order,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnPinning = (pinning: ColumnPinningState) => {\n const newOrder = updateOrderOnPinningChange(pinning)\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: newOrder,\n columnPinning: pinning,\n })\n }\n\n const updateSorting = (sortingState: SortingState) => {\n onChangeWithColumns({\n ...columnsConfig,\n sorting: sortingState,\n })\n }\n\n const updateGroupBy = (groupBy: TableGroupBy | undefined) => {\n onChangeWithColumns({\n ...columnsConfig,\n groupBy: groupBy,\n })\n }\n\n const updateGroupByConfig = (config: GroupByConfig) => {\n onChangeWithColumns({\n ...columnsConfig,\n groupByConfig: {\n ...groupByConfig,\n ...config,\n },\n })\n }\n\n // Remove redundant local updater functions in favor of unified updaters with all columns\n\n // ON-CHANGE HANDLERS (TanStack-compatible)\n const columnVisibilityOnChange: OnChangeFn<VisibilityState> = (updater) => {\n const newVisibility = functionalUpdate(updater, columnVisibility)\n setColumnVisibility(newVisibility)\n }\n\n const columnPinningOnChange: OnChangeFn<ColumnPinningState> = (updater) => {\n const newPinning = functionalUpdate(updater, columnPinning)\n setColumnPinning(newPinning)\n }\n\n const columnOrderOnChange: OnChangeFn<ColumnOrderState> = (updater) => {\n const newOrder = functionalUpdate(updater, columnOrder)\n setColumnOrder(newOrder)\n }\n\n const columnSizingOnChange: OnChangeFn<ColumnSizingState> = (updater) => {\n const newSizing = functionalUpdate(updater, columnSizing)\n setColumnSizing(newSizing)\n }\n\n const sortingOnChange: OnChangeFn<SortingState> = (updater) => {\n const newSorting = functionalUpdate(updater, sorting)\n updateSorting(newSorting)\n }\n\n return (\n <ColumnSettingsContext.Provider\n value={{\n // all columns ref\n setAllColumns,\n // column visibility\n columnVisibility,\n setColumnVisibility,\n updateColumnVisibility,\n columnVisibilityOnChange,\n // column pinning\n columnPinning,\n setColumnPinning,\n updateColumnPinning,\n columnPinningOnChange,\n // column order\n columnOrder,\n setColumnOrder,\n updateColumnOrder,\n columnOrderOnChange,\n // column sizing\n columnSizing,\n setColumnSizing,\n columnSizingOnChange,\n // sorting\n sorting,\n updateSorting,\n sortingOnChange,\n // group by\n groupBy,\n updateGroupBy,\n groupByConfig,\n updateGroupByConfig,\n\n // global change\n setColumnsConfig: (config: ColumnsConfig) => onChangeWithColumns(config),\n }}\n >\n {children}\n </ColumnSettingsContext.Provider>\n )\n}\n"],"names":["React","_a","groupBy","config","jsx"],"mappings":"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"}