@ynput/ayon-frontend-shared 0.3.40 → 0.3.41

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 (419) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +23 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +219 -218
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/_virtual/index.cjs15.js +1 -1
  8. package/dist/_virtual/index.cjs19.js +1 -1
  9. package/dist/_virtual/index.cjs4.js +1 -1
  10. package/dist/_virtual/index.cjs5.js +1 -1
  11. package/dist/_virtual/index.es15.js +2 -2
  12. package/dist/_virtual/index.es16.js +2 -2
  13. package/dist/_virtual/index.es17.js +2 -2
  14. package/dist/_virtual/index.es18.js +2 -2
  15. package/dist/_virtual/index.es19.js +2 -2
  16. package/dist/_virtual/index.es4.js +5 -2
  17. package/dist/_virtual/index.es4.js.map +1 -1
  18. package/dist/_virtual/index.es5.js +2 -5
  19. package/dist/_virtual/index.es5.js.map +1 -1
  20. package/dist/api.cjs.js +1 -1
  21. package/dist/api.es.js +219 -220
  22. package/dist/index.cjs.js +1 -1
  23. package/dist/index.es.js +10 -9
  24. package/dist/index.es.js.map +1 -1
  25. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  26. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  27. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  28. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  29. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  30. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  31. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  32. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  33. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  34. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  35. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  36. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  37. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  38. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  39. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  40. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  41. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  42. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  43. package/dist/shared/src/api/generated/graphql.cjs.js +20 -58
  44. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  45. package/dist/shared/src/api/generated/graphql.es.js +37 -75
  46. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  47. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  48. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  49. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  50. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  51. package/dist/shared/src/api/queries/entityLists/getLists.es.js +14 -16
  52. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  53. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +1 -1
  54. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -1
  55. package/dist/shared/src/api/queries/grouping/getGrouping.es.js +6 -21
  56. package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -1
  57. package/dist/shared/src/api/queries/products/createProduct.cjs.js +1 -1
  58. package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -1
  59. package/dist/shared/src/api/queries/products/createProduct.es.js +7 -46
  60. package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -1
  61. package/dist/shared/src/api/queries/products/getProduct.cjs.js +2 -0
  62. package/dist/shared/src/api/queries/products/getProduct.cjs.js.map +1 -0
  63. package/dist/shared/src/api/queries/products/getProduct.es.js +52 -0
  64. package/dist/shared/src/api/queries/products/getProduct.es.js.map +1 -0
  65. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  66. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  67. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +3 -2
  68. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  69. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  70. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  71. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +3 -2
  72. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  73. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  74. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  75. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +3 -2
  76. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  77. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  78. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  79. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +3 -2
  80. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  81. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  82. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  83. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +3 -2
  84. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  85. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  86. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  87. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +5 -4
  88. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  89. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  90. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  91. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +3 -2
  92. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  93. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  94. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  95. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +3 -2
  96. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  97. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  98. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  99. package/dist/shared/src/components/RenameForm/RenameForm.es.js +3 -2
  100. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  101. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  102. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  103. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +3 -2
  104. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  105. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  106. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  107. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +4 -3
  108. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  109. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  110. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  111. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +3 -2
  112. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  113. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  114. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  115. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +3 -2
  116. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  117. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  118. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  119. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +339 -353
  120. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  121. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  122. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  123. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +5 -4
  124. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  125. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  126. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  127. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +3 -2
  128. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  129. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  130. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  131. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +3 -2
  132. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  133. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  134. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  135. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +7 -6
  136. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  137. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  138. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  139. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +3 -2
  140. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  141. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  142. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  143. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +3 -2
  144. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  145. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  146. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  147. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +113 -119
  148. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  149. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  150. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  151. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +3 -2
  152. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  153. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  154. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  155. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +3 -2
  156. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  157. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  158. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  159. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +132 -122
  160. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  161. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js +6 -6
  162. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js.map +1 -1
  163. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js +1 -1
  164. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js.map +1 -1
  165. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +2 -0
  166. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -0
  167. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +148 -0
  168. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -0
  169. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js +29 -0
  170. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js.map +1 -0
  171. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js +34 -0
  172. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js.map +1 -0
  173. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  174. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  175. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +3 -2
  176. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  177. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  178. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  179. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +3 -2
  180. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  181. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  182. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  183. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +17 -16
  184. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  185. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  186. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  187. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +3 -2
  188. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  189. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  190. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  191. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +3 -2
  192. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  193. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js +2 -0
  194. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js.map +1 -0
  195. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js +9 -0
  196. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js.map +1 -0
  197. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js +1 -1
  198. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js.map +1 -1
  199. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js +12 -12
  200. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js.map +1 -1
  201. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
  202. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
  203. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  204. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  205. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +3 -2
  206. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  207. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  208. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  209. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +3 -2
  210. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  211. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  212. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  213. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +3 -2
  214. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  215. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  216. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  217. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +3 -2
  218. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  219. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  220. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  221. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +3 -2
  222. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  223. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  224. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  225. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +3 -2
  226. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  227. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  228. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  229. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +3 -2
  230. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  231. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  232. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
  233. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +5 -4
  234. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
  235. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  236. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  237. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +3 -2
  238. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  239. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  240. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  241. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +7 -6
  242. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  243. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  244. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  245. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +3 -2
  246. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  247. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  248. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  249. package/dist/shared/src/containers/ListTable/ListTable.es.js +3 -2
  250. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  251. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  252. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  253. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +3 -2
  254. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  255. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  256. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  257. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +3 -2
  258. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  260. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  261. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +365 -363
  262. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  263. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  264. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +3 -2
  266. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  267. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  268. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  269. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +3 -2
  270. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  271. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  272. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +3 -2
  274. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  276. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  277. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +3 -2
  278. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  279. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  280. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  281. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +3 -2
  282. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  283. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  284. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  285. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +3 -2
  286. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  287. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  288. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  289. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +3 -2
  290. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  291. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  292. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  293. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +6 -5
  294. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  295. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  296. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  297. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +3 -2
  298. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  299. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  300. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  301. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +3 -2
  302. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  303. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  304. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  305. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +3 -2
  306. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  307. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  308. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  309. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +3 -2
  310. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  311. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  312. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +3 -2
  314. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  315. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  316. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  317. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +3 -2
  318. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  319. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  320. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  321. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +3 -2
  322. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  323. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  324. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  325. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +3 -2
  326. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  327. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  328. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  329. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +3 -2
  330. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  331. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  332. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  333. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +3 -2
  334. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  335. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  336. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  337. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +3 -2
  338. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  339. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  340. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  341. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +3 -2
  342. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  343. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  344. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  345. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +14 -13
  346. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  347. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  348. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  349. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +3 -2
  350. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  351. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  352. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  353. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +4 -3
  354. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  355. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +1 -1
  356. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  357. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +3 -2
  358. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  359. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  360. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  361. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +5 -4
  362. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  363. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  364. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  365. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +3 -2
  366. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  367. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  368. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  369. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +3 -2
  370. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  371. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  372. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  373. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +3 -2
  374. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  375. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  376. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  377. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +3 -2
  378. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  379. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  380. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  381. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +3 -2
  382. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  383. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  384. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  385. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +3 -2
  386. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  387. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  388. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  389. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +3 -2
  390. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  391. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  392. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  393. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +61 -82
  394. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  395. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  396. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  397. package/dist/shared/src/context/ProjectContext.es.js +83 -66
  398. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  399. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  400. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  401. package/dist/shared/src/context/WebsocketContext.es.js +5 -4
  402. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  403. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  404. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  405. package/dist/types/api/generated/graphql.d.ts +1 -34
  406. package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +3 -1
  407. package/dist/types/api/queries/entityLists/getLists.d.ts +2 -315
  408. package/dist/types/api/queries/products/createProduct.d.ts +2 -2
  409. package/dist/types/api/queries/products/getProduct.d.ts +259 -0
  410. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -1
  411. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.d.ts +3 -2
  412. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.d.ts +7 -0
  413. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.d.ts +2 -0
  414. package/dist/types/containers/DetailsPanel/helpers/buildEntityTypeIcons.d.ts +4 -0
  415. package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +1 -1
  416. package/dist/types/containers/ProjectTreeTable/types/index.d.ts +1 -0
  417. package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +1 -0
  418. package/dist/types/context/ProjectContext.d.ts +2 -1
  419. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"buildTreeTableColumns.es.js","sources":["../../../../../src/containers/ProjectTreeTable/buildTreeTableColumns.tsx"],"sourcesContent":["import { ColumnDef, FilterFnOption, Row, SortingFn, sortingFns } from '@tanstack/react-table'\nimport { TableRow } from './types/table'\nimport { ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport {\n CellWidget,\n MetaWidget,\n EntityNameWidget,\n GroupHeaderWidget,\n ThumbnailWidget,\n} from './widgets'\nimport { getCellId, getCellValue, parseCellId } from './utils/cellUtils'\nimport { LinkColumnHeader, TableCellContent } from './ProjectTreeTable.styled'\nimport clsx from 'clsx'\nimport { SelectionCell } from './components/SelectionCell'\nimport RowSelectionHeader from './components/RowSelectionHeader'\nimport { TableGroupBy, useCellEditing, useColumnSettingsContext } from './context'\nimport { ROW_SELECTION_COLUMN_ID } from './constants'\nimport { NEXT_PAGE_ID, parseGroupId } from './hooks/useBuildGroupByTableData'\nimport LoadMoreWidget from './widgets/LoadMoreWidget'\nimport { AttributeData, LinkTypeModel } from '@shared/api'\nimport { LinkWidgetData } from './widgets/LinksWidget'\nimport { SubtasksWidgetData } from './widgets/SubtasksWidget'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { getEntityTypeIcon } from '@shared/util'\nimport { NameWidgetData } from '@shared/components/RenameForm'\nimport { isEntityRestricted, READ_ONLY } from './utils/restrictedEntity'\nimport { getColumnDisplayConfig } from './types/columnConfig'\nimport { upperFirst } from 'lodash'\n\nexport const isEntityExpandable = (entityType: string) => ['folder', 'product'].includes(entityType)\n\nexport const COLUMN_MIN_SIZE = 50\n\n// Wrapper function for sorting that pushes isLoading rows to the bottom\nconst withLoadingStateSort = (sortFn: SortingFn<any>): SortingFn<any> => {\n return (rowA, rowB, ...args) => {\n // If row loading states differ, prioritize non-loading rows\n if (rowA.original.isLoading !== rowB.original.isLoading) {\n return rowA.original.isLoading ? 1 : -1\n }\n // Otherwise, use the original sort function\n return sortFn(rowA, rowB, ...args)\n }\n}\n\nconst naturalSortCollator = new Intl.Collator(undefined, { numeric: true, sensitivity: 'base' })\n\nconst withNameTieBreaker = (sortFn: SortingFn<any>): SortingFn<any> => {\n return (rowA, rowB, ...args) => {\n const result = sortFn(rowA, rowB, ...args)\n if (result !== 0) return result\n const labelA = rowA.original.label || rowA.original.name || ''\n const labelB = rowB.original.label || rowB.original.name || ''\n return naturalSortCollator.compare(labelA, labelB)\n }\n}\n\nconst pathSort: SortingFn<any> = (rowA, rowB) => {\n const labelA = rowA.original.label || rowA.original.path || rowA.original.name || ''\n const labelB = rowB.original.label || rowB.original.path || rowB.original.name || ''\n return naturalSortCollator.compare(labelA, labelB)\n}\n\nconst valueLengthSort: SortingFn<any> = (rowA, rowB, columnId) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n const lengthA = Array.isArray(valueA) ? valueA.length : valueA ? String(valueA).length : 0\n const lengthB = Array.isArray(valueB) ? valueB.length : valueB ? String(valueB).length : 0\n return lengthA - lengthB\n}\n\ntype AttribSortingFn = (rowA: any, rowB: any, columnId: string, attribute?: AttributeData) => number\n// sort by the order of the enum options\nconst attribSort: AttribSortingFn = (rowA, rowB, columnId, attrib) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n // if attrib is defined and has enum options, use them\n if (attrib && attrib.enum) {\n const indexA = attrib.enum.findIndex((o) => o.value === valueA)\n const indexB = attrib.enum.findIndex((o) => o.value === valueB)\n return indexA - indexB\n } else if (attrib?.type === 'datetime') {\n return sortingFns.datetime(rowA, rowB, columnId)\n } else if (attrib?.type === 'boolean') {\n const boolA = valueA === true ? 1 : 0\n const boolB = valueB === true ? 1 : 0\n return boolA - boolB\n } else {\n return sortingFns.alphanumeric(rowA, rowB, columnId)\n }\n}\n\nexport const getLinkLabel = (\n link: Pick<LinkTypeModel, 'linkType'>,\n direction: 'in' | 'out' | string,\n) => `${link.linkType.charAt(0).toUpperCase() + link.linkType.slice(1)} (${direction})`\n\nexport const getLinkKey = (link: Pick<LinkTypeModel, 'name'>, direction: 'in' | 'out' | string) =>\n `${link.name.replaceAll('_', '').replaceAll('-', '').replaceAll('|', '_')}_${direction}`\n\nexport const getLinkColumnId = (\n link: Pick<LinkTypeModel, 'name'>,\n direction: 'in' | 'out' | string,\n) => `link_${getLinkKey(link, direction)}`\n\nexport type DefaultColumns =\n | typeof ROW_SELECTION_COLUMN_ID\n | 'thumbnail'\n | 'name'\n | 'entityType'\n | 'folder'\n | 'status'\n | 'subType'\n | 'assignees'\n | 'tags'\n | 'createdAt'\n | 'updatedAt'\n | 'comments'\n\nexport type TreeTableExtraColumn = { column: ColumnDef<TableRow>; position?: number }\n\nexport type BuildTreeTableColumnsProps = {\n scopes: string[]\n attribs: ProjectTableAttribute[]\n links: LinkTypeModel[]\n includeLinks?: boolean\n showHierarchy: boolean\n isFlatFolderView?: boolean\n options: BuiltInFieldOptions\n excluded?: (DefaultColumns | string)[]\n excludedSorting?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n groupBy?: TableGroupBy\n nameLabel?: string\n}\n\nconst buildTreeTableColumns = ({\n scopes,\n attribs,\n links = [],\n includeLinks = true,\n showHierarchy,\n isFlatFolderView,\n options,\n excluded,\n excludedSorting,\n extraColumns,\n groupBy,\n nameLabel = 'Entity',\n}: BuildTreeTableColumnsProps) => {\n const staticColumns: ColumnDef<TableRow>[] = []\n\n // Helper to check if a column should be included\n const isIncluded = (id: DefaultColumns | string) => !excluded?.includes(id)\n const canSort = (id: DefaultColumns | string) => !excludedSorting?.includes(id)\n\n // Conditionally add static columns\n if (isIncluded(ROW_SELECTION_COLUMN_ID)) {\n staticColumns.push({\n id: ROW_SELECTION_COLUMN_ID,\n enableResizing: false,\n enableSorting: false,\n enablePinning: false,\n enableHiding: false,\n\n header: () => <RowSelectionHeader />,\n cell: ({ row }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n return <SelectionCell />\n },\n size: 20,\n })\n }\n\n if (isIncluded('thumbnail')) {\n staticColumns.push({\n id: 'thumbnail',\n header: 'Thumbnail',\n size: 63,\n minSize: 24,\n enableResizing: true,\n enableSorting: false,\n cell: ({ row, column, table }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n const meta = table.options.meta\n if (!meta) return null\n const cellId = getCellId(row.id, column.id)\n let thumbnail = {\n entityId: row.original.entityId || row.id,\n entityType: row.original.entityType,\n thumbnailHash: row.original.thumbnailHash,\n }\n // check for thumbnail override\n if (row.original.thumbnail) {\n thumbnail = row.original.thumbnail\n }\n return (\n <ThumbnailWidget\n id={cellId}\n entityId={thumbnail.entityId}\n entityType={thumbnail.entityType}\n thumbnailHash={thumbnail.thumbnailHash}\n icon={row.original.icon}\n projectName={meta?.projectName as string}\n className={clsx('thumbnail', {\n loading: row.original.isLoading,\n })}\n isPlayable={row.original.hasReviewables}\n />\n )\n },\n })\n }\n\n if (isIncluded('name')) {\n staticColumns.push({\n id: 'name',\n accessorKey: 'name',\n header: nameLabel,\n minSize: COLUMN_MIN_SIZE,\n sortingFn: withLoadingStateSort(pathSort),\n enableSorting: groupBy && groupBy.id !== 'folder' ? false : canSort('name'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: !(groupBy && groupBy.id !== 'folder'),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n const { isEditing } = useCellEditing()\n const { rowHeight = 40 } = useColumnSettingsContext()\n const cellId = getCellId(row.id, column.id)\n\n if (row.original.metaType) {\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', 'readonly', row.original.entityType)}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + 8px)`,\n pointerEvents: 'none',\n }}\n tabIndex={0}\n >\n <MetaWidget metaType={row.original.metaType} label={row.original.label} />\n </TableCellContent>\n )\n }\n\n if (row.original.entityType === NEXT_PAGE_ID && row.original.group) {\n return (\n <LoadMoreWidget\n id={row.original.group.value}\n onLoadMore={(id) => meta?.loadMoreRows?.(id)}\n />\n )\n }\n\n const isExpandable =\n row.getCanExpand() &&\n !!row.originalSubRows &&\n (isEntityExpandable(row.original.entityType) || !!row.original.group)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', row.original.entityType, {\n loading: row.original.isLoading,\n hierarchy: showHierarchy,\n })}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + ${\n isExpandable || !row.getCanExpand() ? 0 : 32\n }px + 8px)`,\n }}\n tabIndex={0}\n >\n {row.original.group ? (\n <GroupHeaderWidget\n id={row.id}\n label={row.original.group.label}\n name={row.original.name}\n icon={row.original.group.icon}\n img={row.original.group.img}\n color={row.original.group.color}\n count={row.original.group.count}\n isExpanded={row.getIsExpanded()}\n isEmpty={row.original.group.count === 0}\n toggleExpanded={row.getToggleExpandedHandler()}\n />\n ) : (\n <EntityNameWidget\n id={row.id}\n label={row.original.label}\n name={row.original.name}\n path={\n !showHierarchy && !isFlatFolderView\n ? '/' + row.original.parents?.join('/')\n : undefined\n }\n entityType={row.original.entityType}\n subType={row.original.subType}\n isExpandable={isExpandable}\n isExpanded={row.getIsExpanded()}\n toggleExpandAll={() => meta?.toggleExpandAll?.([row.id])}\n toggleExpanded={row.getToggleExpandedHandler()}\n rowHeight={rowHeight}\n columnDisplayConfig={getColumnDisplayConfig(meta?.columnsConfig, 'name')}\n />\n )}\n {isEditing(cellId) && (\n <CellWidget\n rowId={id}\n className={clsx('name', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n valueData={\n {\n name: row.original.name,\n label: row.original.label,\n meta,\n entityRowId: id,\n columnId: column.id,\n hasVersions: !!row.original.hasVersions,\n } as NameWidgetData\n }\n entityType={type}\n attributeData={{ type: 'name' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={meta?.readOnly?.includes(column.id)}\n />\n )}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('status')) {\n staticColumns.push({\n id: 'status',\n accessorKey: 'status',\n minSize: COLUMN_MIN_SIZE,\n header: 'Status',\n sortingFn: withLoadingStateSort(\n withNameTieBreaker((a, b, c) =>\n attribSort(a, b, c, { enum: options.status, type: 'string' }),\n ),\n ),\n sortDescFirst: true,\n enableSorting: canSort('status'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('status', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={meta?.options?.status.filter((s) => s.scope?.includes(type))}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n pt: {\n template: {\n pt: {\n icon: {\n style: {\n fontVariationSettings: \"'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 20\",\n },\n },\n },\n },\n },\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('entityType')) {\n staticColumns.push({\n id: 'entityType',\n accessorKey: 'entityType',\n header: 'Entity Type',\n minSize: 20,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(withNameTieBreaker(sortingFns.alphanumeric)),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const cellId = getCellId(row.id, column.id)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('entityType', READ_ONLY, type, { loading: row.original.isLoading })}\n tabIndex={0}\n >\n <Icon icon={getEntityTypeIcon(type)} /> {upperFirst(value)}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('subType')) {\n staticColumns.push({\n id: 'subType',\n accessorKey: 'subType',\n header: scopes.includes('product') || scopes.includes('version') ? 'Product type' : 'Type',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: canSort('subType'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(\n withNameTieBreaker((a, b, c) =>\n attribSort(a, b, c, {\n enum: [...options.folderType, ...options.taskType],\n type: 'string',\n }),\n ),\n ),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const fieldId = type === 'folder' ? 'folderType' : 'taskType'\n const meta = table.options.meta\n const folderHasVersions = type === 'folder' && row.original.hasVersions\n return (\n <CellWidget\n rowId={id}\n className={clsx('subType', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={\n type === 'folder'\n ? meta?.options?.folderType\n : type === 'task'\n ? meta?.options?.taskType\n : type === 'product' || type === 'version'\n ? meta?.options?.productType\n : []\n }\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: fieldId, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={\n meta?.readOnly?.includes(column.id) ||\n meta?.readOnly?.includes(fieldId) ||\n folderHasVersions\n }\n tooltip={\n folderHasVersions\n ? 'Folder type cannot be edited when versions exist within the folder'\n : undefined\n }\n pt={{\n enum: {\n pt: {\n template: {\n iconOnlyColor: true,\n },\n },\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('assignees')) {\n staticColumns.push({\n id: 'assignees',\n accessorKey: 'assignees',\n header: 'Assignees',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: canSort('assignees'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(withNameTieBreaker(valueLengthSort)),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n if (type === 'folder')\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value=\"\"\n isPlaceholder\n />\n )\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n multiSelectClose: value?.length === 0, // close the dropdown on first assignment\n search: true, // enable search at all times\n multipleOverride: false,\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('folder')) {\n staticColumns.push({\n id: 'folder',\n accessorKey: 'folder',\n header: 'Folder name',\n minSize: COLUMN_MIN_SIZE,\n sortingFn: withLoadingStateSort(pathSort),\n enableSorting: canSort('folderName'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('folder', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // only show authors column for products\n if (isIncluded('author') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'author',\n accessorKey: 'author',\n header: 'Author',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: canSort('author'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('author', { loading: row.original.isLoading })}\n columnId={column.id}\n value={[value]}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isReadOnly={true}\n isInherited={type === 'product'} // products do not have authors, we just show the featured version's author\n />\n )\n },\n })\n }\n\n // version column for versions\n if (isIncluded('version') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'version',\n accessorKey: 'version',\n header: 'Version',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: canSort('version'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n let versionValue = row.original.versionName || value\n if (row.original.entityType === 'product') {\n // show summary of versions for products\n versionValue = `${row.original.versionName} (${row.original.versionsCount || 0} versions)`\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('version', { loading: row.original.isLoading })}\n columnId={column.id}\n value={versionValue}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // product name column for versions and products\n if (isIncluded('product') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'product',\n accessorKey: 'product',\n header: 'Product name',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: canSort('product'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('product', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n if (isIncluded('tags')) {\n staticColumns.push({\n id: 'tags',\n accessorKey: 'tags',\n header: 'Tags',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: canSort('tags'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(withNameTieBreaker(valueLengthSort)),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('tags', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.tag}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n enableCustomValues\n />\n )\n },\n })\n }\n\n if (isIncluded('createdAt')) {\n staticColumns.push({\n id: 'createdAt',\n accessorKey: 'createdAt',\n header: 'Created at',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: canSort('createdAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(withNameTieBreaker(sortingFns.datetime)),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('createdAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n if (isIncluded('updatedAt')) {\n staticColumns.push({\n id: 'updatedAt',\n accessorKey: 'updatedAt',\n header: 'Updated at',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: canSort('updatedAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(withNameTieBreaker(sortingFns.datetime)),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('updatedAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n if (isIncluded('subtasks') && scopes.includes('task')) {\n staticColumns.push({\n id: 'subtasks',\n accessorKey: 'subtasks',\n header: 'Subtasks',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n // only show for tasks\n if (type !== 'task') return <div className=\"readonly\"></div>\n\n const subtasksData: SubtasksWidgetData = {\n taskId: parseGroupId(row.id) || row.original.entityId || row.original.id,\n subtasks: value || [],\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('subtasks', { loading: row.original.isLoading })}\n columnId={column.id}\n value={subtasksData.subtasks?.map((s: any) => s.label || s.name) || []}\n valueData={subtasksData}\n attributeData={{ type: 'subtasks' }}\n isReadOnly={meta?.readOnly?.includes(column.id)}\n />\n )\n },\n })\n }\n\n if (\n isIncluded('comments') &&\n scopes.some((s) => ['task', 'version', 'product', 'folder'].includes(s))\n ) {\n staticColumns.push({\n id: 'comments',\n accessorKey: 'latestComments',\n header: 'Latest comments',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, 'latestComments')\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n // loading placeholder rows have no entityType yet — let them through so the skeleton shows\n // products borrow their featured version's comments; folders only have data on GQL-fed pages (Lists)\n if (!row.original.isLoading && !['task', 'version', 'product', 'folder'].includes(type))\n return <div className=\"readonly\"></div>\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('comments', { loading: row.original.isLoading })}\n columnId={column.id}\n value={''}\n valueData={value || []}\n attributeData={{ type: 'comments' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly\n />\n )\n },\n })\n }\n\n const attributeColumns: ColumnDef<TableRow>[] = attribs\n .filter((attrib) => {\n // filter out attributes that are out of scope\n if (attrib.scope && !attrib.scope.some((s) => scopes.includes(s))) return false\n\n const columnId = 'attrib_' + attrib.name\n // Check if the specific attribute column is excluded\n // or if all built-in attributes are excluded and this is a built-in attribute\n if (!isIncluded(columnId)) return false\n if (attrib.builtin && !isIncluded('attrib')) return false\n return true\n })\n .map((attrib) => {\n const attribColumn: ColumnDef<TableRow> = {\n id: 'attrib_' + attrib.name,\n accessorKey: 'attrib.' + attrib.name,\n header: attrib.data.title || attrib.name,\n minSize: COLUMN_MIN_SIZE,\n filterFn: 'fuzzy' as FilterFnOption<TableRow>,\n sortingFn: withLoadingStateSort(\n withNameTieBreaker((a, b, c) => attribSort(a, b, c, attrib.data)),\n ),\n enableSorting: canSort(attrib.name) && canSort('attrib'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const columnIdParsed = column.id.replace('attrib_', '')\n const { value, id, type } = getValueIdType(row, columnIdParsed, 'attrib')\n const isInherited = !row.original.ownAttrib?.includes(columnIdParsed)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const outOfScopeAndNoValue =\n !attrib.scope?.includes(type as (typeof attrib.scope)[number]) &&\n (value === null || value === undefined)\n\n // if the attribute is not in scope, we should nothing\n if (outOfScopeAndNoValue) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('attrib', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: attrib.data.type || 'string', widget: attrib.data.widget }}\n options={attrib.data.enum || []}\n isCollapsed={!!row.original.childOnlyMatch}\n isInherited={isInherited}\n isReadOnly={\n // check attrib is not read only\n attrib.readOnly ||\n // check if there is any other reason the cell should be read only\n meta?.readOnly?.some(\n (id) => id === columnIdParsed || (id === 'attrib' && attrib.builtin),\n )\n }\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: columnIdParsed, value, type, isAttrib: true, rowId: row.id },\n { selection: !!attrib.data.enum?.length ? meta?.selection : undefined },\n )\n }\n />\n )\n },\n }\n return attribColumn\n })\n\n const linkColumns: ColumnDef<TableRow>[] = !includeLinks\n ? []\n : links\n .filter((link) => {\n // Check if the link type is excluded\n if (!isIncluded(link.linkType) || !isIncluded('link')) return false\n // Check if inputType and outputType are in scopes\n if (!scopes.includes(link.inputType) && !scopes.includes(link.outputType)) return false\n return true\n })\n .flatMap((link) => {\n const createLinkColumn = (direction: 'in' | 'out'): ColumnDef<TableRow> => {\n return {\n id: getLinkColumnId(link, direction),\n accessorKey: `links.${getLinkKey(link, direction)}`,\n header: () => (\n <LinkColumnHeader>\n {getLinkLabel(link, direction)}{' '}\n <Icon\n icon={getEntityTypeIcon(direction === 'in' ? link.inputType : link.outputType)}\n />\n </LinkColumnHeader>\n ),\n minSize: COLUMN_MIN_SIZE,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const columnIdParsed = column.id.replace('link_', '')\n\n const { id, value } = getValueIdType(row, columnIdParsed, 'links')\n const cellValue = value?.map((v: any) => v.label)\n const entityId = row.original.entityId || row.original.id\n const isLinksLoading = !!table.options.meta?.loadingLinksEntityIds?.has(entityId)\n const valueData: LinkWidgetData = {\n links: value,\n direction: direction,\n entityId: entityId,\n entityType: row.original.entityType,\n link: {\n label: link.linkType,\n linkType: link.name,\n targetEntityType: direction === 'in' ? link.inputType : link.outputType,\n },\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('links', { loading: row.original.isLoading })}\n columnId={column.id}\n value={cellValue}\n valueData={valueData}\n folderId={row.original.folderId}\n attributeData={{ type: 'links' }}\n isLinksLoading={isLinksLoading}\n />\n )\n },\n }\n }\n\n return [createLinkColumn('in'), createLinkColumn('out')]\n })\n\n const allColumns = [...staticColumns, ...attributeColumns, ...linkColumns]\n\n // Add extra columns if provided\n if (extraColumns) {\n extraColumns.forEach(({ column, position = -1 }) => {\n if (position >= 0 && position < allColumns.length) {\n allColumns.splice(position, 0, column)\n } else {\n allColumns.push(column)\n }\n })\n }\n\n return allColumns\n}\n\nexport default buildTreeTableColumns\n\nexport const getValueIdType = (\n row: Row<TableRow>,\n field: string,\n nestedField?: keyof TableRow,\n): {\n value: any\n id: string\n type: string\n} => ({\n value: nestedField\n ? (row.original[nestedField as keyof TableRow] as any)?.[field]\n : (row.original[field as keyof TableRow] as any),\n id: row.id,\n type: row.original.entityType,\n})\n"],"names":["isEntityExpandable","entityType","COLUMN_MIN_SIZE","withLoadingStateSort","sortFn","rowA","rowB","args","naturalSortCollator","withNameTieBreaker","result","labelA","labelB","pathSort","valueLengthSort","columnId","valueA","getCellValue","valueB","lengthA","lengthB","attribSort","attrib","indexA","o","indexB","sortingFns","getLinkLabel","link","direction","getLinkKey","getLinkColumnId","buildTreeTableColumns","scopes","attribs","links","includeLinks","showHierarchy","isFlatFolderView","options","excluded","excludedSorting","extraColumns","groupBy","nameLabel","staticColumns","isIncluded","id","canSort","ROW_SELECTION_COLUMN_ID","jsx","RowSelectionHeader","row","SelectionCell","column","table","meta","cellId","getCellId","thumbnail","ThumbnailWidget","clsx","value","type","getValueIdType","isEditing","useCellEditing","rowHeight","useColumnSettingsContext","TableCellContent","MetaWidget","NEXT_PAGE_ID","LoadMoreWidget","isExpandable","jsxs","GroupHeaderWidget","EntityNameWidget","getColumnDisplayConfig","CellWidget","a","b","c","s","isEntityRestricted","READ_ONLY","Icon","getEntityTypeIcon","upperFirst","fieldId","folderHasVersions","versionValue","subtasksData","parseGroupId","attributeColumns","columnIdParsed","isInherited","linkColumns","createLinkColumn","LinkColumnHeader","cellValue","v","entityId","isLinksLoading","valueData","allColumns","position","field","nestedField"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BO,MAAMA,KAAqB,CAACC,MAAuB,CAAC,UAAU,SAAS,EAAE,SAASA,CAAU,GAEtFC,IAAkB,IAGzBC,IAAuB,CAACC,MACrB,CAACC,GAAMC,MAASC,MAEjBF,EAAK,SAAS,cAAcC,EAAK,SAAS,YACrCD,EAAK,SAAS,YAAY,IAAI,KAGhCD,EAAOC,GAAMC,GAAM,GAAGC,CAAI,GAI/BC,IAAsB,IAAI,KAAK,SAAS,QAAW,EAAE,SAAS,IAAM,aAAa,QAAQ,GAEzFC,IAAqB,CAACL,MACnB,CAACC,GAAMC,MAASC,MAAS;AAC9B,QAAMG,IAASN,EAAOC,GAAMC,GAAM,GAAGC,CAAI;AACzC,MAAIG,MAAW,EAAG,QAAOA;AACzB,QAAMC,IAASN,EAAK,SAAS,SAASA,EAAK,SAAS,QAAQ,IACtDO,IAASN,EAAK,SAAS,SAASA,EAAK,SAAS,QAAQ;AAC5D,SAAOE,EAAoB,QAAQG,GAAQC,CAAM;AACnD,GAGIC,IAA2B,CAACR,GAAMC,MAAS;AAC/C,QAAMK,IAASN,EAAK,SAAS,SAASA,EAAK,SAAS,QAAQA,EAAK,SAAS,QAAQ,IAC5EO,IAASN,EAAK,SAAS,SAASA,EAAK,SAAS,QAAQA,EAAK,SAAS,QAAQ;AAClF,SAAOE,EAAoB,QAAQG,GAAQC,CAAM;AACnD,GAEME,IAAkC,CAACT,GAAMC,GAAMS,MAAa;AAChE,QAAMC,IAASC,EAAaZ,EAAK,UAAUU,CAAQ,GAC7CG,IAASD,EAAaX,EAAK,UAAUS,CAAQ,GAC7CI,IAAU,MAAM,QAAQH,CAAM,IAAIA,EAAO,SAASA,IAAS,OAAOA,CAAM,EAAE,SAAS,GACnFI,IAAU,MAAM,QAAQF,CAAM,IAAIA,EAAO,SAASA,IAAS,OAAOA,CAAM,EAAE,SAAS;AACzF,SAAOC,IAAUC;AACnB,GAIMC,IAA8B,CAAChB,GAAMC,GAAMS,GAAUO,MAAW;AACpE,QAAMN,IAASC,EAAaZ,EAAK,UAAUU,CAAQ,GAC7CG,IAASD,EAAaX,EAAK,UAAUS,CAAQ;AAEnD,MAAIO,KAAUA,EAAO,MAAM;AACzB,UAAMC,IAASD,EAAO,KAAK,UAAU,CAACE,MAAMA,EAAE,UAAUR,CAAM,GACxDS,IAASH,EAAO,KAAK,UAAU,CAACE,MAAMA,EAAE,UAAUN,CAAM;AAC9D,WAAOK,IAASE;AAAA,EAClB,MAAA,QAAWH,GAAQ,SAAS,aACnBI,EAAW,SAASrB,GAAMC,GAAMS,CAAQ,IACtCO,GAAQ,SAAS,aACZN,MAAW,KAAO,IAAI,MACtBE,MAAW,KAAO,IAAI,KAG7BQ,EAAW,aAAarB,GAAMC,GAAMS,CAAQ;AAEvD,GAEaY,KAAe,CAC1BC,GACAC,MACG,GAAGD,EAAK,SAAS,OAAO,CAAC,EAAE,YAAA,IAAgBA,EAAK,SAAS,MAAM,CAAC,CAAC,KAAKC,CAAS,KAEvEC,IAAa,CAACF,GAAmCC,MAC5D,GAAGD,EAAK,KAAK,WAAW,KAAK,EAAE,EAAE,WAAW,KAAK,EAAE,EAAE,WAAW,KAAK,GAAG,CAAC,IAAIC,CAAS,IAE3EE,KAAkB,CAC7BH,GACAC,MACG,QAAQC,EAAWF,GAAMC,CAAS,CAAC,IAiClCG,KAAwB,CAAC;AAAA,EAC7B,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC,IAAQ,CAAA;AAAA,EACR,cAAAC,IAAe;AAAA,EACf,eAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC,IAAY;AACd,MAAkC;AAChC,QAAMC,IAAuC,CAAA,GAGvCC,IAAa,CAACC,MAAgC,CAACP,GAAU,SAASO,CAAE,GACpEC,IAAU,CAACD,MAAgC,CAACN,GAAiB,SAASM,CAAE;AAG9E,EAAID,EAAWG,CAAuB,KACpCJ,EAAc,KAAK;AAAA,IACjB,IAAII;AAAA,IACJ,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,eAAe;AAAA,IACf,cAAc;AAAA,IAEd,QAAQ,MAAMC,gBAAAA,EAAAA,IAACC,IAAA,EAAmB;AAAA,IAClC,MAAM,CAAC,EAAE,KAAAC,QACHA,EAAI,SAAS,eAAe,WAAWA,EAAI,SAAS,WAAiB,6BACjEC,IAAA,EAAc;AAAA,IAExB,MAAM;AAAA,EAAA,CACP,GAGCP,EAAW,WAAW,KACxBD,EAAc,KAAK;AAAA,IACjB,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,MAAM,CAAC,EAAE,KAAAO,GAAK,QAAAE,GAAQ,OAAAC,QAAY;AAChC,UAAIH,EAAI,SAAS,eAAe,WAAWA,EAAI,SAAS,SAAU,QAAO;AACzE,YAAMI,IAAOD,EAAM,QAAQ;AAC3B,UAAI,CAACC,EAAM,QAAO;AAClB,YAAMC,IAASC,EAAUN,EAAI,IAAIE,EAAO,EAAE;AAC1C,UAAIK,IAAY;AAAA,QACd,UAAUP,EAAI,SAAS,YAAYA,EAAI;AAAA,QACvC,YAAYA,EAAI,SAAS;AAAA,QACzB,eAAeA,EAAI,SAAS;AAAA,MAAA;AAG9B,aAAIA,EAAI,SAAS,cACfO,IAAYP,EAAI,SAAS,YAGzBF,gBAAAA,EAAAA;AAAAA,QAACU;AAAA,QAAA;AAAA,UACC,IAAIH;AAAA,UACJ,UAAUE,EAAU;AAAA,UACpB,YAAYA,EAAU;AAAA,UACtB,eAAeA,EAAU;AAAA,UACzB,MAAMP,EAAI,SAAS;AAAA,UACnB,aAAaI,GAAM;AAAA,UACnB,WAAWK,EAAK,aAAa;AAAA,YAC3B,SAAST,EAAI,SAAS;AAAA,UAAA,CACvB;AAAA,UACD,YAAYA,EAAI,SAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAG/B;AAAA,EAAA,CACD,GAGCN,EAAW,MAAM,KACnBD,EAAc,KAAK;AAAA,IACjB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,QAAQD;AAAA,IACR,SAAS1C;AAAA,IACT,WAAWC,EAAqBU,CAAQ;AAAA,IACxC,eAAe8B,KAAWA,EAAQ,OAAO,WAAW,KAAQK,EAAQ,MAAM;AAAA,IAC1E,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,cAAc,EAAEL,KAAWA,EAAQ,OAAO;AAAA,IAC1C,MAAM,CAAC,EAAE,KAAAS,GAAK,QAAAE,GAAQ,OAAAC,QAAY;AAChC,YAAM,EAAE,OAAAO,GAAO,IAAAf,GAAI,MAAAgB,EAAA,IAASC,EAAeZ,GAAKE,EAAO,EAAE,GACnDE,IAAOD,EAAM,QAAQ,MACrB,EAAE,WAAAU,EAAA,IAAcC,GAAA,GAChB,EAAE,WAAAC,IAAY,GAAA,IAAOC,GAAA,GACrBX,IAASC,EAAUN,EAAI,IAAIE,EAAO,EAAE;AAE1C,UAAIF,EAAI,SAAS;AACf,eACEF,gBAAAA,EAAAA;AAAAA,UAACmB;AAAA,UAAA;AAAA,YACC,IAAIZ;AAAA,YACJ,WAAWI,EAAK,SAAS,YAAYT,EAAI,SAAS,UAAU;AAAA,YAC5D,OAAO;AAAA,cACL,aAAa,QAAQA,EAAI,QAAQ,CAAC;AAAA,cAClC,eAAe;AAAA,YAAA;AAAA,YAEjB,UAAU;AAAA,YAEV,UAAAF,gBAAAA,EAAAA,IAACoB,MAAW,UAAUlB,EAAI,SAAS,UAAU,OAAOA,EAAI,SAAS,MAAA,CAAO;AAAA,UAAA;AAAA,QAAA;AAK9E,UAAIA,EAAI,SAAS,eAAemB,KAAgBnB,EAAI,SAAS;AAC3D,eACEF,gBAAAA,EAAAA;AAAAA,UAACsB;AAAA,UAAA;AAAA,YACC,IAAIpB,EAAI,SAAS,MAAM;AAAA,YACvB,YAAY,CAACL,MAAOS,GAAM,eAAeT,CAAE;AAAA,UAAA;AAAA,QAAA;AAKjD,YAAM0B,IACJrB,EAAI,aAAA,KACJ,CAAC,CAACA,EAAI,oBACLpD,GAAmBoD,EAAI,SAAS,UAAU,KAAK,CAAC,CAACA,EAAI,SAAS;AAEjE,aACEsB,gBAAAA,EAAAA;AAAAA,QAACL;AAAA,QAAA;AAAA,UACC,IAAIZ;AAAA,UACJ,WAAWI,EAAK,SAAST,EAAI,SAAS,YAAY;AAAA,YAChD,SAASA,EAAI,SAAS;AAAA,YACtB,WAAWf;AAAA,UAAA,CACZ;AAAA,UACD,OAAO;AAAA,YACL,aAAa,QAAQe,EAAI,QAAQ,CAAC,SAChCqB,KAAgB,CAACrB,EAAI,aAAA,IAAiB,IAAI,EAC5C;AAAA,UAAA;AAAA,UAEF,UAAU;AAAA,UAET,UAAA;AAAA,YAAAA,EAAI,SAAS,QACZF,gBAAAA,EAAAA;AAAAA,cAACyB;AAAA,cAAA;AAAA,gBACC,IAAIvB,EAAI;AAAA,gBACR,OAAOA,EAAI,SAAS,MAAM;AAAA,gBAC1B,MAAMA,EAAI,SAAS;AAAA,gBACnB,MAAMA,EAAI,SAAS,MAAM;AAAA,gBACzB,KAAKA,EAAI,SAAS,MAAM;AAAA,gBACxB,OAAOA,EAAI,SAAS,MAAM;AAAA,gBAC1B,OAAOA,EAAI,SAAS,MAAM;AAAA,gBAC1B,YAAYA,EAAI,cAAA;AAAA,gBAChB,SAASA,EAAI,SAAS,MAAM,UAAU;AAAA,gBACtC,gBAAgBA,EAAI,yBAAA;AAAA,cAAyB;AAAA,YAAA,IAG/CF,gBAAAA,EAAAA;AAAAA,cAAC0B;AAAA,cAAA;AAAA,gBACC,IAAIxB,EAAI;AAAA,gBACR,OAAOA,EAAI,SAAS;AAAA,gBACpB,MAAMA,EAAI,SAAS;AAAA,gBACnB,MACE,CAACf,KAAiB,CAACC,IACf,MAAMc,EAAI,SAAS,SAAS,KAAK,GAAG,IACpC;AAAA,gBAEN,YAAYA,EAAI,SAAS;AAAA,gBACzB,SAASA,EAAI,SAAS;AAAA,gBACtB,cAAAqB;AAAA,gBACA,YAAYrB,EAAI,cAAA;AAAA,gBAChB,iBAAiB,MAAMI,GAAM,kBAAkB,CAACJ,EAAI,EAAE,CAAC;AAAA,gBACvD,gBAAgBA,EAAI,yBAAA;AAAA,gBACpB,WAAAe;AAAA,gBACA,qBAAqBU,GAAuBrB,GAAM,eAAe,MAAM;AAAA,cAAA;AAAA,YAAA;AAAA,YAG1ES,EAAUR,CAAM,KACfP,gBAAAA,EAAAA;AAAAA,cAAC4B;AAAA,cAAA;AAAA,gBACC,OAAO/B;AAAA,gBACP,WAAWc,EAAK,QAAQ,EAAE,SAAST,EAAI,SAAS,WAAW;AAAA,gBAC3D,UAAUE,EAAO;AAAA,gBACjB,OAAAQ;AAAA,gBACA,WACE;AAAA,kBACE,MAAMV,EAAI,SAAS;AAAA,kBACnB,OAAOA,EAAI,SAAS;AAAA,kBACpB,MAAAI;AAAA,kBACA,aAAaT;AAAA,kBACb,UAAUO,EAAO;AAAA,kBACjB,aAAa,CAAC,CAACF,EAAI,SAAS;AAAA,gBAAA;AAAA,gBAGhC,YAAYW;AAAA,gBACZ,eAAe,EAAE,MAAM,OAAA;AAAA,gBACvB,aAAa,CAAC,CAACX,EAAI,SAAS;AAAA,gBAC5B,YAAYI,GAAM,UAAU,SAASF,EAAO,EAAE;AAAA,cAAA;AAAA,YAAA;AAAA,UAChD;AAAA,QAAA;AAAA,MAAA;AAAA,IAIR;AAAA,EAAA,CACD,GAGCR,EAAW,QAAQ,KACrBD,EAAc,KAAK;AAAA,IACjB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,SAAS3C;AAAA,IACT,QAAQ;AAAA,IACR,WAAWC;AAAA,MACTM;AAAA,QAAmB,CAACsE,GAAGC,GAAGC,MACxB5D,EAAW0D,GAAGC,GAAGC,GAAG,EAAE,MAAM1C,EAAQ,QAAQ,MAAM,UAAU;AAAA,MAAA;AAAA,IAC9D;AAAA,IAEF,eAAe;AAAA,IACf,eAAeS,EAAQ,QAAQ;AAAA,IAC/B,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,MAAM,CAAC,EAAE,KAAAI,GAAK,QAAAE,GAAQ,OAAAC,QAAY;AAChC,YAAM,EAAE,OAAAO,GAAO,IAAAf,GAAI,MAAAgB,EAAA,IAASC,EAAeZ,GAAKE,EAAO,EAAE,GACnDE,IAAOD,EAAM,QAAQ;AAC3B,aAAI,CAAC,SAASgB,CAAY,EAAE,SAASR,CAAI,KAAKX,EAAI,SAAS,WAAiB,OAG1EF,gBAAAA,EAAAA;AAAAA,QAAC4B;AAAA,QAAA;AAAA,UACC,OAAO/B;AAAA,UACP,WAAWc,EAAK,UAAU,EAAE,SAAST,EAAI,SAAS,WAAW;AAAA,UAC7D,UAAUE,EAAO;AAAA,UACjB,OAAAQ;AAAA,UACA,eAAe,EAAE,MAAM,SAAA;AAAA,UACvB,SAASN,GAAM,SAAS,OAAO,OAAO,CAAC0B,MAAMA,EAAE,OAAO,SAASnB,CAAI,CAAC;AAAA,UACpE,aAAa,CAAC,CAACX,EAAI,SAAS;AAAA,UAC5B,UAAU,CAACU,MACTN,GAAM;AAAA,YACJ,EAAE,OAAOF,EAAO,IAAI,OAAAQ,GAAO,MAAAC,GAAM,OAAOhB,EAAA;AAAA,YACxC,EAAE,WAAWS,GAAM,UAAA;AAAA,UAAU;AAAA,UAGjC,YAAYA,GAAM,UAAU,SAASF,EAAO,EAAE,KAAK6B,EAAmBpB,CAAI;AAAA,UAC1E,IAAI;AAAA,YACF,MAAM;AAAA,cACJ,IAAI;AAAA,gBACF,UAAU;AAAA,kBACR,IAAI;AAAA,oBACF,MAAM;AAAA,sBACJ,OAAO;AAAA,wBACL,uBAAuB;AAAA,sBAAA;AAAA,oBACzB;AAAA,kBACF;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MAAA;AAAA,IAGN;AAAA,EAAA,CACD,GAGCjB,EAAW,YAAY,KACzBD,EAAc,KAAK;AAAA,IACjB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,WAAW1C,EAAqBM,EAAmBiB,EAAW,YAAY,CAAC;AAAA,IAC3E,MAAM,CAAC,EAAE,KAAA0B,GAAK,QAAAE,GAAQ,OAAAC,QAAY;AAChC,YAAM,EAAE,OAAAO,GAAO,IAAAf,GAAI,MAAAgB,EAAA,IAASC,EAAeZ,GAAKE,EAAO,EAAE;AACzD,UAAI,CAAC,SAASiB,CAAY,EAAE,SAASR,CAAI,KAAKX,EAAI,SAAS,SAAU,QAAO;AAC5E,YAAMK,IAASC,EAAUN,EAAI,IAAIE,EAAO,EAAE;AAE1C,aACEoB,gBAAAA,EAAAA;AAAAA,QAACL;AAAA,QAAA;AAAA,UACC,IAAIZ;AAAA,UACJ,WAAWI,EAAK,cAAcuB,IAAWrB,GAAM,EAAE,SAASX,EAAI,SAAS,WAAW;AAAA,UAClF,UAAU;AAAA,UAEV,UAAA;AAAA,YAAAF,gBAAAA,EAAAA,IAACmC,GAAA,EAAK,MAAMC,EAAkBvB,CAAI,EAAA,CAAG;AAAA,YAAE;AAAA,YAAEwB,GAAWzB,CAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAG/D;AAAA,EAAA,CACD,GAGChB,EAAW,SAAS,KACtBD,EAAc,KAAK;AAAA,IACjB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,QAAQZ,EAAO,SAAS,SAAS,KAAKA,EAAO,SAAS,SAAS,IAAI,iBAAiB;AAAA,IACpF,SAAS/B;AAAA,IACT,eAAe8C,EAAQ,SAAS;AAAA,IAChC,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,WAAW7C;AAAA,MACTM;AAAA,QAAmB,CAACsE,GAAGC,GAAGC,MACxB5D,EAAW0D,GAAGC,GAAGC,GAAG;AAAA,UAClB,MAAM,CAAC,GAAG1C,EAAQ,YAAY,GAAGA,EAAQ,QAAQ;AAAA,UACjD,MAAM;AAAA,QAAA,CACP;AAAA,MAAA;AAAA,IACH;AAAA,IAEF,MAAM,CAAC,EAAE,KAAAa,GAAK,QAAAE,GAAQ,OAAAC,QAAY;AAChC,YAAM,EAAE,OAAAO,GAAO,IAAAf,GAAI,MAAAgB,EAAA,IAASC,EAAeZ,GAAKE,EAAO,EAAE;AACzD,UAAI,CAAC,SAASiB,CAAY,EAAE,SAASR,CAAI,KAAKX,EAAI,SAAS,SAAU,QAAO;AAC5E,YAAMoC,IAAUzB,MAAS,WAAW,eAAe,YAC7CP,IAAOD,EAAM,QAAQ,MACrBkC,IAAoB1B,MAAS,YAAYX,EAAI,SAAS;AAC5D,aACEF,gBAAAA,EAAAA;AAAAA,QAAC4B;AAAA,QAAA;AAAA,UACC,OAAO/B;AAAA,UACP,WAAWc,EAAK,WAAW,EAAE,SAAST,EAAI,SAAS,WAAW;AAAA,UAC9D,UAAUE,EAAO;AAAA,UACjB,OAAAQ;AAAA,UACA,eAAe,EAAE,MAAM,SAAA;AAAA,UACvB,SACEC,MAAS,WACLP,GAAM,SAAS,aACfO,MAAS,SACTP,GAAM,SAAS,WACfO,MAAS,aAAaA,MAAS,YAC/BP,GAAM,SAAS,cACf,CAAA;AAAA,UAEN,aAAa,CAAC,CAACJ,EAAI,SAAS;AAAA,UAC5B,UAAU,CAACU,MACTN,GAAM;AAAA,YACJ,EAAE,OAAOgC,GAAS,OAAA1B,GAAO,MAAAC,GAAM,OAAOX,EAAI,GAAA;AAAA,YAC1C,EAAE,WAAWI,GAAM,UAAA;AAAA,UAAU;AAAA,UAGjC,YACEA,GAAM,UAAU,SAASF,EAAO,EAAE,KAClCE,GAAM,UAAU,SAASgC,CAAO,KAChCC;AAAA,UAEF,SACEA,IACI,uEACA;AAAA,UAEN,IAAI;AAAA,YACF,MAAM;AAAA,cACJ,IAAI;AAAA,gBACF,UAAU;AAAA,kBACR,eAAe;AAAA,gBAAA;AAAA,cACjB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MAAA;AAAA,IAGN;AAAA,EAAA,CACD,GAGC3C,EAAW,WAAW,KACxBD,EAAc,KAAK;AAAA,IACjB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS3C;AAAA,IACT,eAAe8C,EAAQ,WAAW;AAAA,IAClC,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,WAAW7C,EAAqBM,EAAmBK,CAAe,CAAC;AAAA,IACnE,MAAM,CAAC,EAAE,KAAAsC,GAAK,QAAAE,GAAQ,OAAAC,QAAY;AAChC,YAAMC,IAAOD,EAAM,QAAQ,MACrB,EAAE,OAAAO,GAAO,IAAAf,GAAI,MAAAgB,EAAA,IAASC,EAAeZ,GAAKE,EAAO,EAAE;AACzD,aAAI,CAAC,SAASiB,CAAY,EAAE,SAASR,CAAI,KAAKX,EAAI,SAAS,WAAiB,OAExEW,MAAS,WAETb,gBAAAA,EAAAA;AAAAA,QAAC4B;AAAA,QAAA;AAAA,UACC,OAAO/B;AAAA,UACP,WAAWc,EAAK,aAAa,EAAE,SAAST,EAAI,SAAS,WAAW;AAAA,UAChE,UAAUE,EAAO;AAAA,UACjB,OAAM;AAAA,UACN,eAAa;AAAA,QAAA;AAAA,MAAA,IAIjBJ,gBAAAA,EAAAA;AAAAA,QAAC4B;AAAA,QAAA;AAAA,UACC,OAAO/B;AAAA,UACP,WAAWc,EAAK,aAAa,EAAE,SAAST,EAAI,SAAS,WAAW;AAAA,UAChE,UAAUE,EAAO;AAAA,UACjB,OAAAQ;AAAA,UACA,eAAe,EAAE,MAAM,kBAAA;AAAA,UACvB,SAASN,GAAM,SAAS;AAAA,UACxB,aAAa,CAAC,CAACJ,EAAI,SAAS;AAAA,UAC5B,UAAU,CAACU,MACTN,GAAM;AAAA,YACJ,EAAE,OAAOF,EAAO,IAAI,OAAAQ,GAAO,MAAAC,GAAM,OAAOX,EAAI,GAAA;AAAA,YAC5C,EAAE,WAAWI,GAAM,UAAA;AAAA,UAAU;AAAA,UAGjC,YAAYA,GAAM,UAAU,SAASF,EAAO,EAAE,KAAK6B,EAAmBpB,CAAI;AAAA,UAC1E,IAAI;AAAA,YACF,MAAM;AAAA,cACJ,kBAAkBD,GAAO,WAAW;AAAA;AAAA,cACpC,QAAQ;AAAA;AAAA,cACR,kBAAkB;AAAA,YAAA;AAAA,UACpB;AAAA,QACF;AAAA,MAAA;AAAA,IAGN;AAAA,EAAA,CACD,GAGChB,EAAW,QAAQ,KACrBD,EAAc,KAAK;AAAA,IACjB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS3C;AAAA,IACT,WAAWC,EAAqBU,CAAQ;AAAA,IACxC,eAAemC,EAAQ,YAAY;AAAA,IACnC,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,MAAM,CAAC,EAAE,KAAAI,GAAK,QAAAE,GAAQ,OAAAC,QAAY;AAChC,YAAM,EAAE,OAAAO,GAAO,IAAAf,GAAI,MAAAgB,EAAA,IAASC,EAAeZ,GAAKE,EAAO,EAAE;AACzD,aAAI,CAAC,SAASiB,CAAY,EAAE,SAASR,CAAI,KAAKX,EAAI,SAAS,WAAiB,OAG1EF,gBAAAA,EAAAA;AAAAA,QAAC4B;AAAA,QAAA;AAAA,UACC,OAAO/B;AAAA,UACP,WAAWc,EAAK,UAAU,EAAE,SAAST,EAAI,SAAS,WAAW;AAAA,UAC7D,UAAUE,EAAO;AAAA,UACjB,OAAAQ;AAAA,UACA,eAAe,EAAE,MAAM,SAAA;AAAA,UACvB,YAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB;AAAA,EAAA,CACD,GAIChB,EAAW,QAAQ,KAAK,CAAC,WAAW,SAAS,EAAE,KAAK,CAACoC,MAAMjD,EAAO,SAASiD,CAAC,CAAC,KAC/ErC,EAAc,KAAK;AAAA,IACjB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS3C;AAAA,IACT,eAAe8C,EAAQ,QAAQ;AAAA,IAC/B,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,WAAW7C,EAAqBU,CAAQ;AAAA,IACxC,MAAM,CAAC,EAAE,KAAAuC,GAAK,QAAAE,GAAQ,OAAAC,QAAY;AAChC,YAAMC,IAAOD,EAAM,QAAQ,MACrB,EAAE,OAAAO,GAAO,IAAAf,GAAI,MAAAgB,EAAA,IAASC,EAAeZ,GAAKE,EAAO,EAAE;AACzD,aAAI,CAAC,SAASiB,CAAY,EAAE,SAASR,CAAI,KAAKX,EAAI,SAAS,WAAiB,OAG1EF,gBAAAA,EAAAA;AAAAA,QAAC4B;AAAA,QAAA;AAAA,UACC,OAAO/B;AAAA,UACP,WAAWc,EAAK,UAAU,EAAE,SAAST,EAAI,SAAS,WAAW;AAAA,UAC7D,UAAUE,EAAO;AAAA,UACjB,OAAO,CAACQ,CAAK;AAAA,UACb,eAAe,EAAE,MAAM,kBAAA;AAAA,UACvB,SAASN,GAAM,SAAS;AAAA,UACxB,YAAY;AAAA,UACZ,aAAaO,MAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAG5B;AAAA,EAAA,CACD,GAICjB,EAAW,SAAS,KAAK,CAAC,WAAW,SAAS,EAAE,KAAK,CAACoC,MAAMjD,EAAO,SAASiD,CAAC,CAAC,KAChFrC,EAAc,KAAK;AAAA,IACjB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS3C;AAAA,IACT,eAAe8C,EAAQ,SAAS;AAAA,IAChC,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,WAAW7C,EAAqBU,CAAQ;AAAA,IACxC,MAAM,CAAC,EAAE,KAAAuC,GAAK,QAAAE,QAAa;AACzB,YAAM,EAAE,OAAAQ,GAAO,IAAAf,GAAI,MAAAgB,EAAA,IAASC,EAAeZ,GAAKE,EAAO,EAAE;AACzD,UAAI,CAAC,SAASiB,CAAY,EAAE,SAASR,CAAI,KAAKX,EAAI,SAAS,SAAU,QAAO;AAE5E,UAAIsC,IAAetC,EAAI,SAAS,eAAeU;AAC/C,aAAIV,EAAI,SAAS,eAAe,cAE9BsC,IAAe,GAAGtC,EAAI,SAAS,WAAW,KAAKA,EAAI,SAAS,iBAAiB,CAAC,eAI9EF,gBAAAA,EAAAA;AAAAA,QAAC4B;AAAA,QAAA;AAAA,UACC,OAAO/B;AAAA,UACP,WAAWc,EAAK,WAAW,EAAE,SAAST,EAAI,SAAS,WAAW;AAAA,UAC9D,UAAUE,EAAO;AAAA,UACjB,OAAOoC;AAAA,UACP,eAAe,EAAE,MAAM,SAAA;AAAA,UACvB,YAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB;AAAA,EAAA,CACD,GAIC5C,EAAW,SAAS,KAAK,CAAC,WAAW,SAAS,EAAE,KAAK,CAACoC,MAAMjD,EAAO,SAASiD,CAAC,CAAC,KAChFrC,EAAc,KAAK;AAAA,IACjB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS3C;AAAA,IACT,eAAe8C,EAAQ,SAAS;AAAA,IAChC,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,WAAW7C,EAAqBU,CAAQ;AAAA,IACxC,MAAM,CAAC,EAAE,KAAAuC,GAAK,QAAAE,QAAa;AACzB,YAAM,EAAE,OAAAQ,GAAO,IAAAf,GAAI,MAAAgB,EAAA,IAASC,EAAeZ,GAAKE,EAAO,EAAE;AACzD,aAAI,CAAC,SAASiB,CAAY,EAAE,SAASR,CAAI,KAAKX,EAAI,SAAS,WAAiB,OAG1EF,gBAAAA,EAAAA;AAAAA,QAAC4B;AAAA,QAAA;AAAA,UACC,OAAO/B;AAAA,UACP,WAAWc,EAAK,WAAW,EAAE,SAAST,EAAI,SAAS,WAAW;AAAA,UAC9D,UAAUE,EAAO;AAAA,UACjB,OAAAQ;AAAA,UACA,eAAe,EAAE,MAAM,SAAA;AAAA,UACvB,YAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB;AAAA,EAAA,CACD,GAGChB,EAAW,MAAM,KACnBD,EAAc,KAAK;AAAA,IACjB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS3C;AAAA,IACT,eAAe8C,EAAQ,MAAM;AAAA,IAC7B,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,WAAW7C,EAAqBM,EAAmBK,CAAe,CAAC;AAAA,IACnE,MAAM,CAAC,EAAE,KAAAsC,GAAK,QAAAE,GAAQ,OAAAC,QAAY;AAChC,YAAMC,IAAOD,EAAM,QAAQ,MACrB,EAAE,OAAAO,GAAO,IAAAf,GAAI,MAAAgB,EAAA,IAASC,EAAeZ,GAAKE,EAAO,EAAE;AACzD,aAAI,CAAC,SAASiB,CAAY,EAAE,SAASR,CAAI,KAAKX,EAAI,SAAS,WAAiB,OAE1EF,gBAAAA,EAAAA;AAAAA,QAAC4B;AAAA,QAAA;AAAA,UACC,OAAO/B;AAAA,UACP,WAAWc,EAAK,QAAQ,EAAE,SAAST,EAAI,SAAS,WAAW;AAAA,UAC3D,UAAUE,EAAO;AAAA,UACjB,OAAAQ;AAAA,UACA,eAAe,EAAE,MAAM,kBAAA;AAAA,UACvB,SAASN,GAAM,SAAS;AAAA,UACxB,aAAa,CAAC,CAACJ,EAAI,SAAS;AAAA,UAC5B,UAAU,CAACU,MACTN,GAAM;AAAA,YACJ,EAAE,OAAOF,EAAO,IAAI,OAAAQ,GAAO,MAAAC,GAAM,OAAOX,EAAI,GAAA;AAAA,YAC5C,EAAE,WAAWI,GAAM,UAAA;AAAA,UAAU;AAAA,UAGjC,YAAYA,GAAM,UAAU,SAASF,EAAO,EAAE,KAAK6B,EAAmBpB,CAAI;AAAA,UAC1E,oBAAkB;AAAA,QAAA;AAAA,MAAA;AAAA,IAGxB;AAAA,EAAA,CACD,GAGCjB,EAAW,WAAW,KACxBD,EAAc,KAAK;AAAA,IACjB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS3C;AAAA,IACT,eAAe8C,EAAQ,WAAW;AAAA,IAClC,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,WAAW7C,EAAqBM,EAAmBiB,EAAW,QAAQ,CAAC;AAAA,IACvE,MAAM,CAAC,EAAE,KAAA0B,GAAK,QAAAE,QAAa;AACzB,YAAM,EAAE,OAAAQ,GAAO,IAAAf,GAAI,MAAAgB,EAAA,IAASC,EAAeZ,GAAKE,EAAO,EAAE;AACzD,aAAI,CAAC,SAASiB,CAAY,EAAE,SAASR,CAAI,KAAKX,EAAI,SAAS,WAAiB,OAE1EF,gBAAAA,EAAAA;AAAAA,QAAC4B;AAAA,QAAA;AAAA,UACC,OAAO/B;AAAA,UACP,WAAWc,EAAK,aAAa,EAAE,SAAST,EAAI,SAAS,WAAW;AAAA,UAChE,UAAUE,EAAO;AAAA,UACjB,OAAAQ;AAAA,UACA,eAAe,EAAE,MAAM,WAAA;AAAA,UACvB,aAAa,CAAC,CAACV,EAAI,SAAS;AAAA,UAC5B,YAAY;AAAA,UACZ,IAAI,EAAE,MAAM,EAAE,UAAU,KAAK;AAAA,QAAE;AAAA,MAAA;AAAA,IAGrC;AAAA,EAAA,CACD,GAGCN,EAAW,WAAW,KACxBD,EAAc,KAAK;AAAA,IACjB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS3C;AAAA,IACT,eAAe8C,EAAQ,WAAW;AAAA,IAClC,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,WAAW7C,EAAqBM,EAAmBiB,EAAW,QAAQ,CAAC;AAAA,IACvE,MAAM,CAAC,EAAE,KAAA0B,GAAK,QAAAE,QAAa;AACzB,YAAM,EAAE,OAAAQ,GAAO,IAAAf,GAAI,MAAAgB,EAAA,IAASC,EAAeZ,GAAKE,EAAO,EAAE;AACzD,aAAI,CAAC,SAASiB,CAAY,EAAE,SAASR,CAAI,KAAKX,EAAI,SAAS,WAAiB,OAE1EF,gBAAAA,EAAAA;AAAAA,QAAC4B;AAAA,QAAA;AAAA,UACC,OAAO/B;AAAA,UACP,WAAWc,EAAK,aAAa,EAAE,SAAST,EAAI,SAAS,WAAW;AAAA,UAChE,UAAUE,EAAO;AAAA,UACjB,OAAAQ;AAAA,UACA,eAAe,EAAE,MAAM,WAAA;AAAA,UACvB,aAAa,CAAC,CAACV,EAAI,SAAS;AAAA,UAC5B,YAAY;AAAA,UACZ,IAAI,EAAE,MAAM,EAAE,UAAU,KAAK;AAAA,QAAE;AAAA,MAAA;AAAA,IAGrC;AAAA,EAAA,CACD,GAGCN,EAAW,UAAU,KAAKb,EAAO,SAAS,MAAM,KAClDY,EAAc,KAAK;AAAA,IACjB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS3C;AAAA,IACT,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,MAAM,CAAC,EAAE,KAAAkD,GAAK,QAAAE,GAAQ,OAAAC,QAAY;AAChC,YAAMC,IAAOD,EAAM,QAAQ,MACrB,EAAE,OAAAO,GAAO,IAAAf,GAAI,MAAAgB,EAAA,IAASC,EAAeZ,GAAKE,EAAO,EAAE;AACzD,UAAI,CAAC,SAASiB,CAAY,EAAE,SAASR,CAAI,KAAKX,EAAI,SAAS,SAAU,QAAO;AAG5E,UAAIW,MAAS,OAAQ,QAAOb,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,YAAW;AAEtD,YAAMyC,IAAmC;AAAA,QACvC,QAAQC,GAAaxC,EAAI,EAAE,KAAKA,EAAI,SAAS,YAAYA,EAAI,SAAS;AAAA,QACtE,UAAUU,KAAS,CAAA;AAAA,MAAC;AAGtB,aACEZ,gBAAAA,EAAAA;AAAAA,QAAC4B;AAAA,QAAA;AAAA,UACC,OAAO/B;AAAA,UACP,WAAWc,EAAK,YAAY,EAAE,SAAST,EAAI,SAAS,WAAW;AAAA,UAC/D,UAAUE,EAAO;AAAA,UACjB,OAAOqC,EAAa,UAAU,IAAI,CAACT,MAAWA,EAAE,SAASA,EAAE,IAAI,KAAK,CAAA;AAAA,UACpE,WAAWS;AAAA,UACX,eAAe,EAAE,MAAM,WAAA;AAAA,UACvB,YAAYnC,GAAM,UAAU,SAASF,EAAO,EAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IAGpD;AAAA,EAAA,CACD,GAIDR,EAAW,UAAU,KACrBb,EAAO,KAAK,CAACiD,MAAM,CAAC,QAAQ,WAAW,WAAW,QAAQ,EAAE,SAASA,CAAC,CAAC,KAEvErC,EAAc,KAAK;AAAA,IACjB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS3C;AAAA,IACT,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,MAAM,CAAC,EAAE,KAAAkD,GAAK,QAAAE,QAAa;AACzB,YAAM,EAAE,OAAAQ,GAAO,IAAAf,GAAI,MAAAgB,MAASC,EAAeZ,GAAK,gBAAgB;AAChE,aAAI,CAAC,SAASmB,CAAY,EAAE,SAASR,CAAI,KAAKX,EAAI,SAAS,WAAiB,OAIxE,CAACA,EAAI,SAAS,aAAa,CAAC,CAAC,QAAQ,WAAW,WAAW,QAAQ,EAAE,SAASW,CAAI,IAC7Eb,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,WAAA,CAAW,IAGjCA,gBAAAA,EAAAA;AAAAA,QAAC4B;AAAA,QAAA;AAAA,UACC,OAAO/B;AAAA,UACP,WAAWc,EAAK,YAAY,EAAE,SAAST,EAAI,SAAS,WAAW;AAAA,UAC/D,UAAUE,EAAO;AAAA,UACjB,OAAO;AAAA,UACP,WAAWQ,KAAS,CAAA;AAAA,UACpB,eAAe,EAAE,MAAM,WAAA;AAAA,UACvB,aAAa,CAAC,CAACV,EAAI,SAAS;AAAA,UAC5B,YAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IAGhB;AAAA,EAAA,CACD;AAGH,QAAMyC,IAA0C3D,EAC7C,OAAO,CAACZ,MAAW;AAElB,QAAIA,EAAO,SAAS,CAACA,EAAO,MAAM,KAAK,CAAC4D,MAAMjD,EAAO,SAASiD,CAAC,CAAC,EAAG,QAAO;AAE1E,UAAMnE,IAAW,YAAYO,EAAO;AAIpC,WADI,GAACwB,EAAW/B,CAAQ,KACpBO,EAAO,WAAW,CAACwB,EAAW,QAAQ;AAAA,EAE5C,CAAC,EACA,IAAI,CAACxB,OACsC;AAAA,IACxC,IAAI,YAAYA,EAAO;AAAA,IACvB,aAAa,YAAYA,EAAO;AAAA,IAChC,QAAQA,EAAO,KAAK,SAASA,EAAO;AAAA,IACpC,SAASpB;AAAA,IACT,UAAU;AAAA,IACV,WAAWC;AAAA,MACTM,EAAmB,CAACsE,GAAGC,GAAGC,MAAM5D,EAAW0D,GAAGC,GAAGC,GAAG3D,EAAO,IAAI,CAAC;AAAA,IAAA;AAAA,IAElE,eAAe0B,EAAQ1B,EAAO,IAAI,KAAK0B,EAAQ,QAAQ;AAAA,IACvD,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,MAAM,CAAC,EAAE,KAAAI,GAAK,QAAAE,GAAQ,OAAAC,QAAY;AAChC,YAAMC,IAAOD,EAAM,QAAQ,MACrBuC,IAAiBxC,EAAO,GAAG,QAAQ,WAAW,EAAE,GAChD,EAAE,OAAAQ,GAAO,IAAAf,GAAI,MAAAgB,EAAA,IAASC,EAAeZ,GAAK0C,GAAgB,QAAQ,GAClEC,IAAc,CAAC3C,EAAI,SAAS,WAAW,SAAS0C,CAAc;AAOpE,aANI,CAAC,SAASvB,CAAY,EAAE,SAASR,CAAI,KAAKX,EAAI,SAAS,YAEzD,CAAC9B,EAAO,OAAO,SAASyC,CAAqC,KAC5DD,KAAU,OAGoB,OAG/BZ,gBAAAA,EAAAA;AAAAA,QAAC4B;AAAA,QAAA;AAAA,UACC,OAAO/B;AAAA,UACP,WAAWc,EAAK,UAAU,EAAE,SAAST,EAAI,SAAS,WAAW;AAAA,UAC7D,UAAUE,EAAO;AAAA,UACjB,OAAAQ;AAAA,UACA,eAAe,EAAE,MAAMxC,EAAO,KAAK,QAAQ,UAAU,QAAQA,EAAO,KAAK,OAAA;AAAA,UACzE,SAASA,EAAO,KAAK,QAAQ,CAAA;AAAA,UAC7B,aAAa,CAAC,CAAC8B,EAAI,SAAS;AAAA,UAC5B,aAAA2C;AAAA,UACA;AAAA;AAAA,YAEEzE,EAAO;AAAA,YAEPkC,GAAM,UAAU;AAAA,cACd,CAACT,MAAOA,MAAO+C,KAAmB/C,MAAO,YAAYzB,EAAO;AAAA,YAAA;AAAA;AAAA,UAGhE,UAAU,CAACwC,MACTN,GAAM;AAAA,YACJ,EAAE,OAAOsC,GAAgB,OAAAhC,GAAO,MAAAC,GAAM,UAAU,IAAM,OAAOX,EAAI,GAAA;AAAA,YACjE,EAAE,WAAa9B,EAAO,KAAK,MAAM,SAASkC,GAAM,YAAY,OAAA;AAAA,UAAU;AAAA,QACxE;AAAA,MAAA;AAAA,IAIR;AAAA,EAAA,EAGH,GAEGwC,IAAsC5D,IAExCD,EACG,OAAO,CAACP,MAEH,GAACkB,EAAWlB,EAAK,QAAQ,KAAK,CAACkB,EAAW,MAAM,KAEhD,CAACb,EAAO,SAASL,EAAK,SAAS,KAAK,CAACK,EAAO,SAASL,EAAK,UAAU,EAEzE,EACA,QAAQ,CAACA,MAAS;AACjB,UAAMqE,IAAmB,CAACpE,OACjB;AAAA,MACL,IAAIE,GAAgBH,GAAMC,CAAS;AAAA,MACnC,aAAa,SAASC,EAAWF,GAAMC,CAAS,CAAC;AAAA,MACjD,QAAQ,MACN6C,gBAAAA,EAAAA,KAACwB,IAAA,EACE,UAAA;AAAA,QAAAvE,GAAaC,GAAMC,CAAS;AAAA,QAAG;AAAA,QAChCqB,gBAAAA,EAAAA;AAAAA,UAACmC;AAAA,UAAA;AAAA,YACC,MAAMC,EAAkBzD,MAAc,OAAOD,EAAK,YAAYA,EAAK,UAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MAC/E,GACF;AAAA,MAEF,SAAS1B;AAAA,MACT,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,cAAc;AAAA,MACd,MAAM,CAAC,EAAE,KAAAkD,GAAK,QAAAE,GAAQ,OAAAC,QAAY;AAChC,cAAMuC,IAAiBxC,EAAO,GAAG,QAAQ,SAAS,EAAE,GAE9C,EAAE,IAAAP,GAAI,OAAAe,EAAA,IAAUE,EAAeZ,GAAK0C,GAAgB,OAAO,GAC3DK,IAAYrC,GAAO,IAAI,CAACsC,MAAWA,EAAE,KAAK,GAC1CC,IAAWjD,EAAI,SAAS,YAAYA,EAAI,SAAS,IACjDkD,IAAiB,CAAC,CAAC/C,EAAM,QAAQ,MAAM,uBAAuB,IAAI8C,CAAQ,GAC1EE,IAA4B;AAAA,UAChC,OAAOzC;AAAA,UACP,WAAAjC;AAAA,UACA,UAAAwE;AAAA,UACA,YAAYjD,EAAI,SAAS;AAAA,UACzB,MAAM;AAAA,YACJ,OAAOxB,EAAK;AAAA,YACZ,UAAUA,EAAK;AAAA,YACf,kBAAkBC,MAAc,OAAOD,EAAK,YAAYA,EAAK;AAAA,UAAA;AAAA,QAC/D;AAGF,eACEsB,gBAAAA,EAAAA;AAAAA,UAAC4B;AAAA,UAAA;AAAA,YACC,OAAO/B;AAAA,YACP,WAAWc,EAAK,SAAS,EAAE,SAAST,EAAI,SAAS,WAAW;AAAA,YAC5D,UAAUE,EAAO;AAAA,YACjB,OAAO6C;AAAA,YACP,WAAAI;AAAA,YACA,UAAUnD,EAAI,SAAS;AAAA,YACvB,eAAe,EAAE,MAAM,QAAA;AAAA,YACvB,gBAAAkD;AAAA,UAAA;AAAA,QAAA;AAAA,MAGN;AAAA,IAAA;AAIJ,WAAO,CAACL,EAAiB,IAAI,GAAGA,EAAiB,KAAK,CAAC;AAAA,EACzD,CAAC,IA/DH,CAAA,GAiEEO,IAAa,CAAC,GAAG3D,GAAe,GAAGgD,GAAkB,GAAGG,CAAW;AAGzE,SAAItD,KACFA,EAAa,QAAQ,CAAC,EAAE,QAAAY,GAAQ,UAAAmD,IAAW,SAAS;AAClD,IAAIA,KAAY,KAAKA,IAAWD,EAAW,SACzCA,EAAW,OAAOC,GAAU,GAAGnD,CAAM,IAErCkD,EAAW,KAAKlD,CAAM;AAAA,EAE1B,CAAC,GAGIkD;AACT,GAIaxC,IAAiB,CAC5BZ,GACAsD,GACAC,OAKI;AAAA,EACJ,OAAOA,IACFvD,EAAI,SAASuD,CAA6B,IAAYD,CAAK,IAC3DtD,EAAI,SAASsD,CAAuB;AAAA,EACzC,IAAItD,EAAI;AAAA,EACR,MAAMA,EAAI,SAAS;AACrB;"}
1
+ {"version":3,"file":"buildTreeTableColumns.es.js","sources":["../../../../../src/containers/ProjectTreeTable/buildTreeTableColumns.tsx"],"sourcesContent":["import { ColumnDef, FilterFnOption, Row, SortingFn, sortingFns } from '@tanstack/react-table'\nimport { TableRow } from './types/table'\nimport { ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport {\n CellWidget,\n MetaWidget,\n EntityNameWidget,\n GroupHeaderWidget,\n ThumbnailWidget,\n} from './widgets'\nimport { getCellId, getCellValue, parseCellId } from './utils/cellUtils'\nimport { LinkColumnHeader, TableCellContent } from './ProjectTreeTable.styled'\nimport clsx from 'clsx'\nimport { SelectionCell } from './components/SelectionCell'\nimport RowSelectionHeader from './components/RowSelectionHeader'\nimport { TableGroupBy, useCellEditing, useColumnSettingsContext } from './context'\nimport { ROW_SELECTION_COLUMN_ID } from './constants'\nimport { NEXT_PAGE_ID, parseGroupId } from './hooks/useBuildGroupByTableData'\nimport LoadMoreWidget from './widgets/LoadMoreWidget'\nimport { AttributeData, LinkTypeModel } from '@shared/api'\nimport { LinkWidgetData } from './widgets/LinksWidget'\nimport { SubtasksWidgetData } from './widgets/SubtasksWidget'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { getEntityTypeIcon } from '@shared/util'\nimport { NameWidgetData } from '@shared/components/RenameForm'\nimport { isEntityRestricted, READ_ONLY } from './utils/restrictedEntity'\nimport { getColumnDisplayConfig } from './types/columnConfig'\nimport { upperFirst } from 'lodash'\n\nexport const isEntityExpandable = (entityType: string) => ['folder', 'product'].includes(entityType)\n\nexport const COLUMN_MIN_SIZE = 50\n\n// Wrapper function for sorting that pushes isLoading rows to the bottom\nconst withLoadingStateSort = (sortFn: SortingFn<any>): SortingFn<any> => {\n return (rowA, rowB, ...args) => {\n // If row loading states differ, prioritize non-loading rows\n if (rowA.original.isLoading !== rowB.original.isLoading) {\n return rowA.original.isLoading ? 1 : -1\n }\n // Otherwise, use the original sort function\n return sortFn(rowA, rowB, ...args)\n }\n}\n\nconst naturalSortCollator = new Intl.Collator(undefined, { numeric: true, sensitivity: 'base' })\n\nconst withNameTieBreaker = (sortFn: SortingFn<any>): SortingFn<any> => {\n return (rowA, rowB, ...args) => {\n const result = sortFn(rowA, rowB, ...args)\n if (result !== 0) return result\n const labelA = rowA.original.label || rowA.original.name || ''\n const labelB = rowB.original.label || rowB.original.name || ''\n return naturalSortCollator.compare(labelA, labelB)\n }\n}\n\nconst pathSort: SortingFn<any> = (rowA, rowB) => {\n const labelA = rowA.original.label || rowA.original.path || rowA.original.name || ''\n const labelB = rowB.original.label || rowB.original.path || rowB.original.name || ''\n return naturalSortCollator.compare(labelA, labelB)\n}\n\nconst valueLengthSort: SortingFn<any> = (rowA, rowB, columnId) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n const lengthA = Array.isArray(valueA) ? valueA.length : valueA ? String(valueA).length : 0\n const lengthB = Array.isArray(valueB) ? valueB.length : valueB ? String(valueB).length : 0\n return lengthA - lengthB\n}\n\ntype AttribSortingFn = (rowA: any, rowB: any, columnId: string, attribute?: AttributeData) => number\n// sort by the order of the enum options\nconst attribSort: AttribSortingFn = (rowA, rowB, columnId, attrib) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n // if attrib is defined and has enum options, use them\n if (attrib && attrib.enum) {\n const indexA = attrib.enum.findIndex((o) => o.value === valueA)\n const indexB = attrib.enum.findIndex((o) => o.value === valueB)\n return indexA - indexB\n } else if (attrib?.type === 'datetime') {\n return sortingFns.datetime(rowA, rowB, columnId)\n } else if (attrib?.type === 'boolean') {\n const boolA = valueA === true ? 1 : 0\n const boolB = valueB === true ? 1 : 0\n return boolA - boolB\n } else {\n return sortingFns.alphanumeric(rowA, rowB, columnId)\n }\n}\n\nexport const getLinkLabel = (\n link: Pick<LinkTypeModel, 'linkType'>,\n direction: 'in' | 'out' | string,\n) => `${link.linkType.charAt(0).toUpperCase() + link.linkType.slice(1)} (${direction})`\n\nexport const getLinkKey = (link: Pick<LinkTypeModel, 'name'>, direction: 'in' | 'out' | string) =>\n `${link.name.replaceAll('_', '').replaceAll('-', '').replaceAll('|', '_')}_${direction}`\n\nexport const getLinkColumnId = (\n link: Pick<LinkTypeModel, 'name'>,\n direction: 'in' | 'out' | string,\n) => `link_${getLinkKey(link, direction)}`\n\nexport type DefaultColumns =\n | typeof ROW_SELECTION_COLUMN_ID\n | 'thumbnail'\n | 'name'\n | 'entityType'\n | 'folder'\n | 'status'\n | 'subType'\n | 'assignees'\n | 'tags'\n | 'createdAt'\n | 'updatedAt'\n | 'comments'\n\nexport type TreeTableExtraColumn = { column: ColumnDef<TableRow>; position?: number }\n\nexport type BuildTreeTableColumnsProps = {\n scopes: string[]\n attribs: ProjectTableAttribute[]\n links: LinkTypeModel[]\n includeLinks?: boolean\n showHierarchy: boolean\n isFlatFolderView?: boolean\n options: BuiltInFieldOptions\n excluded?: (DefaultColumns | string)[]\n excludedSorting?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n groupBy?: TableGroupBy\n nameLabel?: string\n}\n\nconst buildTreeTableColumns = ({\n scopes,\n attribs,\n links = [],\n includeLinks = true,\n showHierarchy,\n isFlatFolderView,\n options,\n excluded,\n excludedSorting,\n extraColumns,\n groupBy,\n nameLabel = 'Entity',\n}: BuildTreeTableColumnsProps) => {\n const staticColumns: ColumnDef<TableRow>[] = []\n\n // Helper to check if a column should be included\n const isIncluded = (id: DefaultColumns | string) => !excluded?.includes(id)\n const canSort = (id: DefaultColumns | string) => !excludedSorting?.includes(id)\n\n // Conditionally add static columns\n if (isIncluded(ROW_SELECTION_COLUMN_ID)) {\n staticColumns.push({\n id: ROW_SELECTION_COLUMN_ID,\n enableResizing: false,\n enableSorting: false,\n enablePinning: false,\n enableHiding: false,\n\n header: () => <RowSelectionHeader />,\n cell: ({ row }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n return <SelectionCell />\n },\n size: 20,\n })\n }\n\n if (isIncluded('thumbnail')) {\n staticColumns.push({\n id: 'thumbnail',\n header: 'Thumbnail',\n size: 63,\n minSize: 24,\n enableResizing: true,\n enableSorting: false,\n cell: ({ row, column, table }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n const meta = table.options.meta\n if (!meta) return null\n const cellId = getCellId(row.id, column.id)\n let thumbnail = {\n entityId: row.original.entityId || row.id,\n entityType: row.original.entityType,\n thumbnailHash: row.original.thumbnailHash,\n }\n // check for thumbnail override\n if (row.original.thumbnail) {\n thumbnail = row.original.thumbnail\n }\n return (\n <ThumbnailWidget\n id={cellId}\n entityId={thumbnail.entityId}\n entityType={thumbnail.entityType}\n thumbnailHash={thumbnail.thumbnailHash}\n icon={row.original.icon}\n projectName={meta?.projectName as string}\n className={clsx('thumbnail', {\n loading: row.original.isLoading,\n })}\n isPlayable={row.original.hasReviewables}\n />\n )\n },\n })\n }\n\n if (isIncluded('name')) {\n staticColumns.push({\n id: 'name',\n accessorKey: 'name',\n header: nameLabel,\n minSize: COLUMN_MIN_SIZE,\n sortingFn: withLoadingStateSort(pathSort),\n enableSorting: groupBy && groupBy.id !== 'folder' ? false : canSort('name'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: !(groupBy && groupBy.id !== 'folder'),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n const { isEditing } = useCellEditing()\n const { rowHeight = 40 } = useColumnSettingsContext()\n const cellId = getCellId(row.id, column.id)\n\n if (row.original.metaType) {\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', 'readonly', row.original.entityType)}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + 8px)`,\n pointerEvents: 'none',\n }}\n tabIndex={0}\n >\n <MetaWidget metaType={row.original.metaType} label={row.original.label} />\n </TableCellContent>\n )\n }\n\n if (row.original.entityType === NEXT_PAGE_ID && row.original.group) {\n return (\n <LoadMoreWidget\n id={row.original.group.value}\n onLoadMore={(id) => meta?.loadMoreRows?.(id)}\n />\n )\n }\n\n const isExpandable =\n row.getCanExpand() &&\n !!row.originalSubRows &&\n (isEntityExpandable(row.original.entityType) || !!row.original.group)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', row.original.entityType, {\n loading: row.original.isLoading,\n hierarchy: showHierarchy,\n })}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + ${\n isExpandable || !row.getCanExpand() ? 0 : 32\n }px + 8px)`,\n }}\n tabIndex={0}\n >\n {row.original.group ? (\n <GroupHeaderWidget\n id={row.id}\n label={row.original.group.label}\n name={row.original.name}\n icon={row.original.group.icon}\n img={row.original.group.img}\n color={row.original.group.color}\n count={row.original.group.count}\n isExpanded={row.getIsExpanded()}\n isEmpty={row.original.group.count === 0}\n toggleExpanded={row.getToggleExpandedHandler()}\n />\n ) : (\n <EntityNameWidget\n id={row.id}\n label={row.original.label}\n name={row.original.name}\n path={\n !showHierarchy && !isFlatFolderView\n ? '/' + row.original.parents?.join('/')\n : undefined\n }\n entityType={row.original.entityType}\n subType={row.original.subType}\n isExpandable={isExpandable}\n isExpanded={row.getIsExpanded()}\n toggleExpandAll={() => meta?.toggleExpandAll?.([row.id])}\n toggleExpanded={row.getToggleExpandedHandler()}\n rowHeight={rowHeight}\n columnDisplayConfig={getColumnDisplayConfig(meta?.columnsConfig, 'name')}\n />\n )}\n {isEditing(cellId) && (\n <CellWidget\n rowId={id}\n className={clsx('name', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n valueData={\n {\n name: row.original.name,\n label: row.original.label,\n meta,\n entityRowId: id,\n columnId: column.id,\n hasVersions: !!row.original.hasVersions,\n } as NameWidgetData\n }\n entityType={type}\n attributeData={{ type: 'name' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={meta?.readOnly?.includes(column.id)}\n />\n )}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('status')) {\n staticColumns.push({\n id: 'status',\n accessorKey: 'status',\n minSize: COLUMN_MIN_SIZE,\n header: 'Status',\n sortingFn: withLoadingStateSort(\n withNameTieBreaker((a, b, c) =>\n attribSort(a, b, c, { enum: options.status, type: 'string' }),\n ),\n ),\n sortDescFirst: true,\n enableSorting: canSort('status'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('status', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={meta?.options?.status.filter((s) => s.scope?.includes(type))}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n pt: {\n template: {\n pt: {\n icon: {\n style: {\n fontVariationSettings: \"'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 20\",\n },\n },\n },\n },\n },\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('entityType')) {\n staticColumns.push({\n id: 'entityType',\n accessorKey: 'entityType',\n header: 'Entity Type',\n minSize: 20,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(withNameTieBreaker(sortingFns.alphanumeric)),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const cellId = getCellId(row.id, column.id)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('entityType', READ_ONLY, type, { loading: row.original.isLoading })}\n tabIndex={0}\n >\n <Icon icon={getEntityTypeIcon(type)} /> {upperFirst(value)}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('subType')) {\n staticColumns.push({\n id: 'subType',\n accessorKey: 'subType',\n header: scopes.includes('product') || scopes.includes('version') ? 'Product type' : 'Type',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: canSort('subType'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(\n withNameTieBreaker((a, b, c) =>\n attribSort(a, b, c, {\n enum: [...options.folderType, ...options.taskType],\n type: 'string',\n }),\n ),\n ),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const fieldId = type === 'folder' ? 'folderType' : 'taskType'\n const meta = table.options.meta\n const folderHasVersions = type === 'folder' && row.original.hasVersions\n return (\n <CellWidget\n rowId={id}\n className={clsx('subType', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={\n type === 'folder'\n ? meta?.options?.folderType\n : type === 'task'\n ? meta?.options?.taskType\n : type === 'product' || type === 'version'\n ? meta?.options?.productType\n : []\n }\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: fieldId, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={\n meta?.readOnly?.includes(column.id) ||\n meta?.readOnly?.includes(fieldId) ||\n folderHasVersions\n }\n tooltip={\n folderHasVersions\n ? 'Folder type cannot be edited when versions exist within the folder'\n : undefined\n }\n pt={{\n enum: {\n pt: {\n template: {\n iconOnlyColor: true,\n },\n },\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('assignees')) {\n staticColumns.push({\n id: 'assignees',\n accessorKey: 'assignees',\n header: 'Assignees',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: canSort('assignees'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(withNameTieBreaker(valueLengthSort)),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n if (type === 'folder')\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value=\"\"\n isPlaceholder\n />\n )\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n multiSelectClose: value?.length === 0, // close the dropdown on first assignment\n search: true, // enable search at all times\n multipleOverride: false,\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('folder')) {\n staticColumns.push({\n id: 'folder',\n accessorKey: 'folder',\n header: 'Folder name',\n minSize: COLUMN_MIN_SIZE,\n sortingFn: withLoadingStateSort(pathSort),\n enableSorting: canSort('folderName'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('folder', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // only show authors column for products\n if (isIncluded('author') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'author',\n accessorKey: 'author',\n header: 'Author',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: canSort('author'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('author', { loading: row.original.isLoading })}\n columnId={column.id}\n value={[value]}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isReadOnly={true}\n isInherited={type === 'product'} // products do not have authors, we just show the featured version's author\n />\n )\n },\n })\n }\n\n // version column for versions\n if (isIncluded('version') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'version',\n accessorKey: 'version',\n header: 'Version',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: canSort('version'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n let versionValue = row.original.versionName || value\n if (row.original.entityType === 'product') {\n // show summary of versions for products\n versionValue = `${row.original.versionName} (${row.original.versionsCount || 0} versions)`\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('version', { loading: row.original.isLoading })}\n columnId={column.id}\n value={versionValue}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // product name column for versions and products\n if (isIncluded('product') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'product',\n accessorKey: 'product',\n header: 'Product name',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: canSort('product'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('product', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n if (isIncluded('tags')) {\n staticColumns.push({\n id: 'tags',\n accessorKey: 'tags',\n header: 'Tags',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: canSort('tags'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(withNameTieBreaker(valueLengthSort)),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('tags', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.tag}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n enableCustomValues\n />\n )\n },\n })\n }\n\n if (isIncluded('createdAt')) {\n staticColumns.push({\n id: 'createdAt',\n accessorKey: 'createdAt',\n header: 'Created at',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: canSort('createdAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(withNameTieBreaker(sortingFns.datetime)),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('createdAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n if (isIncluded('updatedAt')) {\n staticColumns.push({\n id: 'updatedAt',\n accessorKey: 'updatedAt',\n header: 'Updated at',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: canSort('updatedAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(withNameTieBreaker(sortingFns.datetime)),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('updatedAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n if (isIncluded('subtasks') && scopes.includes('task')) {\n staticColumns.push({\n id: 'subtasks',\n accessorKey: 'subtasks',\n header: 'Subtasks',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n // only show for tasks\n if (type !== 'task') return <div className=\"readonly\"></div>\n\n const subtasksData: SubtasksWidgetData = {\n taskId: parseGroupId(row.id) || row.original.entityId || row.original.id,\n subtasks: value || [],\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('subtasks', { loading: row.original.isLoading })}\n columnId={column.id}\n value={subtasksData.subtasks?.map((s: any) => s.label || s.name) || []}\n valueData={subtasksData}\n attributeData={{ type: 'subtasks' }}\n isReadOnly={meta?.readOnly?.includes(column.id)}\n />\n )\n },\n })\n }\n\n if (\n isIncluded('comments') &&\n scopes.some((s) => ['task', 'version', 'product', 'folder'].includes(s))\n ) {\n staticColumns.push({\n id: 'comments',\n accessorKey: 'latestComments',\n header: 'Latest comments',\n minSize: COLUMN_MIN_SIZE,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, 'latestComments')\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n // loading placeholder rows have no entityType yet — let them through so the skeleton shows\n // products borrow their featured version's comments; folders only have data on GQL-fed pages (Lists)\n if (!row.original.isLoading && !['task', 'version', 'product', 'folder'].includes(type))\n return <div className=\"readonly\"></div>\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('comments', { loading: row.original.isLoading })}\n columnId={column.id}\n value={''}\n valueData={value || []}\n attributeData={{ type: 'comments' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly\n />\n )\n },\n })\n }\n\n const attributeColumns: ColumnDef<TableRow>[] = attribs\n .filter((attrib) => {\n // filter out attributes that are out of scope\n if (attrib.scope && !attrib.scope.some((s) => scopes.includes(s))) return false\n\n const columnId = 'attrib_' + attrib.name\n // Check if the specific attribute column is excluded\n // or if all built-in attributes are excluded and this is a built-in attribute\n if (!isIncluded(columnId)) return false\n if (attrib.builtin && !isIncluded('attrib')) return false\n return true\n })\n .map((attrib) => {\n const attribColumn: ColumnDef<TableRow> = {\n id: 'attrib_' + attrib.name,\n accessorKey: 'attrib.' + attrib.name,\n header: attrib.data.title || attrib.name,\n minSize: COLUMN_MIN_SIZE,\n filterFn: 'fuzzy' as FilterFnOption<TableRow>,\n sortingFn: withLoadingStateSort(\n withNameTieBreaker((a, b, c) => attribSort(a, b, c, attrib.data)),\n ),\n enableSorting: canSort(attrib.name) && canSort('attrib'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const columnIdParsed = column.id.replace('attrib_', '')\n const { value, id, type } = getValueIdType(row, columnIdParsed, 'attrib')\n const isInherited = !row.original.ownAttrib?.includes(columnIdParsed)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const outOfScopeAndNoValue =\n !attrib.scope?.includes(type as (typeof attrib.scope)[number]) &&\n (value === null || value === undefined)\n\n // if the attribute is not in scope, we should nothing\n if (outOfScopeAndNoValue) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('attrib', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: attrib.data.type || 'string', widget: attrib.data.widget }}\n options={attrib.data.enum || []}\n isCollapsed={!!row.original.childOnlyMatch}\n isInherited={isInherited}\n isReadOnly={\n // check attrib is not read only\n attrib.readOnly ||\n // check if there is any other reason the cell should be read only\n meta?.readOnly?.some(\n (id) => id === columnIdParsed || (id === 'attrib' && attrib.builtin),\n )\n }\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: columnIdParsed, value, type, isAttrib: true, rowId: row.id },\n { selection: !!attrib.data.enum?.length ? meta?.selection : undefined },\n )\n }\n />\n )\n },\n }\n return attribColumn\n })\n\n const linkColumns: ColumnDef<TableRow>[] = !includeLinks\n ? []\n : links\n .filter((link) => {\n // Check if the link type is excluded\n if (!isIncluded(link.linkType) || !isIncluded('link')) return false\n // Check if inputType and outputType are in scopes\n if (!scopes.includes(link.inputType) && !scopes.includes(link.outputType)) return false\n return true\n })\n .flatMap((link) => {\n const createLinkColumn = (direction: 'in' | 'out'): ColumnDef<TableRow> => {\n return {\n id: getLinkColumnId(link, direction),\n accessorKey: `links.${getLinkKey(link, direction)}`,\n header: () => (\n <LinkColumnHeader>\n {getLinkLabel(link, direction)}{' '}\n <Icon\n icon={getEntityTypeIcon(direction === 'in' ? link.inputType : link.outputType)}\n />\n </LinkColumnHeader>\n ),\n minSize: COLUMN_MIN_SIZE,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const columnIdParsed = column.id.replace('link_', '')\n\n const { id, value } = getValueIdType(row, columnIdParsed, 'links')\n const cellValue = value?.map((v: any) => v.label)\n const entityId = row.original.entityId || row.original.id\n const isLinksLoading = !!table.options.meta?.loadingLinksEntityIds?.has(entityId)\n const valueData: LinkWidgetData = {\n links: value,\n direction: direction,\n entityId: entityId,\n entityType: row.original.entityType,\n link: {\n label: link.linkType,\n linkType: link.name,\n targetEntityType: direction === 'in' ? link.inputType : link.outputType,\n },\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('links', { loading: row.original.isLoading })}\n columnId={column.id}\n value={cellValue}\n valueData={valueData}\n folderId={row.original.folderId}\n attributeData={{ type: 'links' }}\n isLinksLoading={isLinksLoading}\n />\n )\n },\n }\n }\n\n return [createLinkColumn('in'), createLinkColumn('out')]\n })\n\n const allColumns = [...staticColumns, ...attributeColumns, ...linkColumns]\n\n // Add extra columns if provided\n if (extraColumns) {\n extraColumns.forEach(({ column, position = -1 }) => {\n if (position >= 0 && position < allColumns.length) {\n allColumns.splice(position, 0, column)\n } else {\n allColumns.push(column)\n }\n })\n }\n\n return allColumns\n}\n\nexport default buildTreeTableColumns\n\nexport const getValueIdType = (\n row: Row<TableRow>,\n field: string,\n nestedField?: keyof TableRow,\n): {\n value: any\n id: string\n type: string\n} => ({\n value: nestedField\n ? (row.original[nestedField as keyof TableRow] as any)?.[field]\n : (row.original[field as keyof TableRow] as any),\n id: row.id,\n type: row.original.entityType,\n})\n"],"names":["isEntityExpandable","entityType","COLUMN_MIN_SIZE","withLoadingStateSort","sortFn","rowA","rowB","args","naturalSortCollator","withNameTieBreaker","result","labelA","labelB","pathSort","valueLengthSort","columnId","valueA","getCellValue","valueB","lengthA","lengthB","attribSort","attrib","indexA","o","indexB","sortingFns","getLinkLabel","link","direction","getLinkKey","getLinkColumnId","buildTreeTableColumns","scopes","attribs","links","includeLinks","showHierarchy","isFlatFolderView","options","excluded","excludedSorting","extraColumns","groupBy","nameLabel","staticColumns","isIncluded","id","canSort","ROW_SELECTION_COLUMN_ID","jsx","RowSelectionHeader","row","SelectionCell","column","table","meta","cellId","getCellId","thumbnail","ThumbnailWidget","clsx","value","type","getValueIdType","isEditing","useCellEditing","rowHeight","useColumnSettingsContext","TableCellContent","MetaWidget","NEXT_PAGE_ID","LoadMoreWidget","isExpandable","jsxs","GroupHeaderWidget","EntityNameWidget","getColumnDisplayConfig","CellWidget","a","b","c","s","isEntityRestricted","READ_ONLY","Icon","getEntityTypeIcon","upperFirst","fieldId","folderHasVersions","versionValue","subtasksData","parseGroupId","attributeColumns","columnIdParsed","isInherited","linkColumns","createLinkColumn","LinkColumnHeader","cellValue","v","entityId","isLinksLoading","valueData","allColumns","position","field","nestedField"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const j=require("../../../../../_virtual/jsx-runtime.cjs.js"),s=require("react"),t=require("@dnd-kit/core"),x=require("@dnd-kit/sortable");require("../../ContextMenu/ContextMenuContext.cjs.js");require("@ynput/ayon-react-components");;/* empty css */require("clsx");require("react-dom");require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");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/listItemsColumnStats.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");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("../../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("lodash");require("react-toastify");require("react-redux");require("custom-protocol-check");require("./GroupSettingsFallback.cjs.js");require("uuid");const y=require("../constants.cjs.js");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("../../../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");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("../../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("date-fns");require("../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../../../../../_virtual/index.cjs.js");require("../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../../components/QuillListStyles/QuillListStyles.cjs.js");require("../../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("rehype-raw");require("../../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../Feed/components/CommentInput/modules/index.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("react-router-dom");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/SearchFilter/CustomDateRangeDialog.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../components/ColumnHeaderMenuUI.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../Feed/components/FeedSearchFilter.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/EnumCellValue.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/MarkdownWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../widgets/LinksWidget.cjs.js");require("../context/ProjectTableContext.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../context/CellEditingContext.cjs.js");require("short-uuid");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ClipboardContext.cjs.js");const H=require("../context/ColumnSettingsContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("./DeleteConfirmContent.cjs.js");require("../context/ProjectDataContext.cjs.js");const W=require("../hooks/useColumnDragRestriction.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("./SelectionCell.cjs.js");require("./RowSelectionHeader.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");require("./HeaderActionButton.cjs.js");require("./TableFooterRow.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../Views/context/ViewsContextInstance.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../ListTable/ListTableRow.cjs.js");require("../../ListTable/ListTable.styled.cjs.js");const X=60,d=150,O=50,P=[y.DRAG_HANDLE_COLUMN_ID,y.ROW_SELECTION_COLUMN_ID],z=({children:A})=>{const{columnOrder:o,updateColumnOrder:S,columnPinning:D,columnSizing:g}=H.useColumnSettingsContext(),{restrictToSection:R,setDragPinnedState:E,clearDragPinnedState:h,activePinnedState:p,setCachedBoundary:I}=W.useColumnDragRestriction({columnPinning:D,columnSizing:g}),r=s.useRef({cursorX:0,container:null,boundaryX:0,containerRight:0,scrollRAF:null,isScrolling:!1,isColumnDrag:!1,isPinnedDrag:null}),F=t.useSensors(t.useSensor(t.MouseSensor,{activationConstraint:{distance:5}}),t.useSensor(t.TouchSensor,{activationConstraint:{delay:100,tolerance:5}}),t.useSensor(t.KeyboardSensor,{})),M=s.useMemo(()=>[R],[R]),c=D.left||[],_=s.useCallback(()=>{const e=r.current.container;if(!e)return 0;const q=e.querySelector("th.last-pinned-left");if(q)return q.getBoundingClientRect().right;const i=c.reduce((u,n)=>u+(g[n]||150),24);return e.getBoundingClientRect().left+i},[c,g]),N=s.useCallback(()=>o.findIndex(e=>!c.includes(e)&&!P.includes(e)),[o,c]),k=s.useCallback(e=>{const{active:q,droppableContainers:i}=e;if(p.current===null||p.current)return t.closestCenter(e);if(r.current.cursorX<=r.current.boundaryX+O){const u=o.find(n=>!c.includes(n)&&!P.includes(n));if(u&&u!==q.id){const n=i.find(a=>a.id===u);if(n)return[{id:u,data:{droppableContainer:n}}]}}return t.closestCenter(e)},[o,c]),C=s.useCallback(()=>{try{const e=r.current;if(!e.container||!e.isScrolling||!e.isColumnDrag)return;const q=e.boundaryX+20;let i=0;if(e.isPinnedDrag===!1&&e.cursorX<=q){const u=Math.min((q-e.cursorX)/d,1);i=-X*(.3+u*.7)}else if(e.cursorX>=e.containerRight-d){const u=Math.min((e.cursorX-(e.containerRight-d))/d,1);i=X*(.3+u*.7)}i!==0&&(e.container.scrollLeft+=i),e.scrollRAF=requestAnimationFrame(C)}catch(e){console.error("[DND] scrollLoop error:",e),v()}},[]),w=s.useCallback(()=>{r.current.isScrolling||(r.current.isScrolling=!0,r.current.scrollRAF=requestAnimationFrame(C))},[C]),v=()=>{r.current.isScrolling=!1,r.current.scrollRAF&&(cancelAnimationFrame(r.current.scrollRAF),r.current.scrollRAF=null)},L=s.useCallback(e=>{r.current.cursorX=e.clientX},[]),l=()=>{v(),window.removeEventListener("mousemove",L),r.current={cursorX:0,container:null,boundaryX:0,containerRight:0,scrollRAF:null,isScrolling:!1,isColumnDrag:!1,isPinnedDrag:null}},B=e=>{if(e.active.data.current?.type!=="column")return;const q=document.querySelector("[data-column-dnd-container]"),i=q?.getBoundingClientRect(),u=c.includes(e.active.id);r.current.container=q,r.current.containerRight=i?.right??0,r.current.boundaryX=_(),r.current.isColumnDrag=!0,r.current.isPinnedDrag=u,E(e.active.id),I(r.current.boundaryX),window.addEventListener("mousemove",L),w()},U=e=>{h();const{active:q,over:i}=e;if(!q||!r.current.isColumnDrag){l();return}const u=q.id,n=c.includes(u);if((!i||q.id===i.id)&&!n&&e.active.rect.current.translated){if(e.active.rect.current.translated.left<=r.current.boundaryX+O){const f=N(),m=o.indexOf(u);f!==-1&&m!==-1&&m!==f&&S(x.arrayMove(o,m,f))}l();return}if(!i||n!==c.includes(i.id)){l();return}const a=o.indexOf(u),b=o.indexOf(i.id);a!==-1&&b!==-1&&S(x.arrayMove(o,a,b)),l()},T=()=>{h(),l()};return j.jsxRuntimeExports.jsx(t.DndContext,{sensors:F,collisionDetection:k,modifiers:M,onDragStart:B,onDragEnd:U,onDragCancel:T,children:A})};module.exports=z;
1
+ "use strict";const j=require("../../../../../_virtual/jsx-runtime.cjs.js"),s=require("react"),t=require("@dnd-kit/core"),x=require("@dnd-kit/sortable");require("../../ContextMenu/ContextMenuContext.cjs.js");require("@ynput/ayon-react-components");;/* empty css */require("clsx");require("react-dom");require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");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/listItemsColumnStats.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");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("../../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("lodash");require("react-toastify");require("react-redux");require("custom-protocol-check");require("./GroupSettingsFallback.cjs.js");require("uuid");const y=require("../constants.cjs.js");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("../../../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");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("../../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("date-fns");require("../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../../../../../_virtual/index.cjs.js");require("../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../../components/QuillListStyles/QuillListStyles.cjs.js");require("../../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("rehype-raw");require("../../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../Feed/components/CommentInput/modules/index.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("react-router-dom");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/SearchFilter/CustomDateRangeDialog.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../components/ColumnHeaderMenuUI.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../Feed/components/FeedSearchFilter.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/EnumCellValue.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/MarkdownWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../widgets/LinksWidget.cjs.js");require("../context/ProjectTableContext.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../context/CellEditingContext.cjs.js");require("short-uuid");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ClipboardContext.cjs.js");const H=require("../context/ColumnSettingsContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("./DeleteConfirmContent.cjs.js");require("../context/ProjectDataContext.cjs.js");const W=require("../hooks/useColumnDragRestriction.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("./SelectionCell.cjs.js");require("./RowSelectionHeader.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");require("./HeaderActionButton.cjs.js");require("./TableFooterRow.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../Views/context/ViewsContextInstance.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../ListTable/ListTableRow.cjs.js");require("../../ListTable/ListTable.styled.cjs.js");const X=60,d=150,O=50,P=[y.DRAG_HANDLE_COLUMN_ID,y.ROW_SELECTION_COLUMN_ID],z=({children:A})=>{const{columnOrder:o,updateColumnOrder:S,columnPinning:D,columnSizing:g}=H.useColumnSettingsContext(),{restrictToSection:R,setDragPinnedState:E,clearDragPinnedState:h,activePinnedState:p,setCachedBoundary:I}=W.useColumnDragRestriction({columnPinning:D,columnSizing:g}),r=s.useRef({cursorX:0,container:null,boundaryX:0,containerRight:0,scrollRAF:null,isScrolling:!1,isColumnDrag:!1,isPinnedDrag:null}),F=t.useSensors(t.useSensor(t.MouseSensor,{activationConstraint:{distance:5}}),t.useSensor(t.TouchSensor,{activationConstraint:{delay:100,tolerance:5}}),t.useSensor(t.KeyboardSensor,{})),M=s.useMemo(()=>[R],[R]),c=D.left||[],_=s.useCallback(()=>{const e=r.current.container;if(!e)return 0;const q=e.querySelector("th.last-pinned-left");if(q)return q.getBoundingClientRect().right;const i=c.reduce((u,n)=>u+(g[n]||150),24);return e.getBoundingClientRect().left+i},[c,g]),N=s.useCallback(()=>o.findIndex(e=>!c.includes(e)&&!P.includes(e)),[o,c]),k=s.useCallback(e=>{const{active:q,droppableContainers:i}=e;if(p.current===null||p.current)return t.closestCenter(e);if(r.current.cursorX<=r.current.boundaryX+O){const u=o.find(n=>!c.includes(n)&&!P.includes(n));if(u&&u!==q.id){const n=i.find(a=>a.id===u);if(n)return[{id:u,data:{droppableContainer:n}}]}}return t.closestCenter(e)},[o,c]),C=s.useCallback(()=>{try{const e=r.current;if(!e.container||!e.isScrolling||!e.isColumnDrag)return;const q=e.boundaryX+20;let i=0;if(e.isPinnedDrag===!1&&e.cursorX<=q){const u=Math.min((q-e.cursorX)/d,1);i=-X*(.3+u*.7)}else if(e.cursorX>=e.containerRight-d){const u=Math.min((e.cursorX-(e.containerRight-d))/d,1);i=X*(.3+u*.7)}i!==0&&(e.container.scrollLeft+=i),e.scrollRAF=requestAnimationFrame(C)}catch(e){console.error("[DND] scrollLoop error:",e),v()}},[]),w=s.useCallback(()=>{r.current.isScrolling||(r.current.isScrolling=!0,r.current.scrollRAF=requestAnimationFrame(C))},[C]),v=()=>{r.current.isScrolling=!1,r.current.scrollRAF&&(cancelAnimationFrame(r.current.scrollRAF),r.current.scrollRAF=null)},L=s.useCallback(e=>{r.current.cursorX=e.clientX},[]),l=()=>{v(),window.removeEventListener("mousemove",L),r.current={cursorX:0,container:null,boundaryX:0,containerRight:0,scrollRAF:null,isScrolling:!1,isColumnDrag:!1,isPinnedDrag:null}},B=e=>{if(e.active.data.current?.type!=="column")return;const q=document.querySelector("[data-column-dnd-container]"),i=q?.getBoundingClientRect(),u=c.includes(e.active.id);r.current.container=q,r.current.containerRight=i?.right??0,r.current.boundaryX=_(),r.current.isColumnDrag=!0,r.current.isPinnedDrag=u,E(e.active.id),I(r.current.boundaryX),window.addEventListener("mousemove",L),w()},U=e=>{h();const{active:q,over:i}=e;if(!q||!r.current.isColumnDrag){l();return}const u=q.id,n=c.includes(u);if((!i||q.id===i.id)&&!n&&e.active.rect.current.translated){if(e.active.rect.current.translated.left<=r.current.boundaryX+O){const f=N(),m=o.indexOf(u);f!==-1&&m!==-1&&m!==f&&S(x.arrayMove(o,m,f))}l();return}if(!i||n!==c.includes(i.id)){l();return}const a=o.indexOf(u),b=o.indexOf(i.id);a!==-1&&b!==-1&&S(x.arrayMove(o,a,b)),l()},T=()=>{h(),l()};return j.jsxRuntimeExports.jsx(t.DndContext,{sensors:F,collisionDetection:k,modifiers:M,onDragStart:B,onDragEnd:U,onDragCancel:T,children:A})};module.exports=z;
2
2
  //# sourceMappingURL=ColumnDndProvider.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnDndProvider.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/components/ColumnDndProvider.tsx"],"sourcesContent":["import { FC, ReactNode, useCallback, useMemo, useRef } from 'react'\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n MouseSensor,\n TouchSensor,\n useSensor,\n useSensors,\n type DragEndEvent,\n type DragStartEvent,\n type CollisionDetection,\n} from '@dnd-kit/core'\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { useColumnSettingsContext } from '@shared/containers'\nimport { useColumnDragRestriction } from '../hooks/useColumnDragRestriction'\nimport { ROW_SELECTION_COLUMN_ID, DRAG_HANDLE_COLUMN_ID } from '../constants'\n\ninterface ColumnDndProviderProps {\n children: ReactNode\n}\n\nconst SCROLL_SPEED = 60\nconst SCROLL_ZONE = 150\nconst DROP_THRESHOLD = 50\nconst SPECIAL_COLUMNS = [DRAG_HANDLE_COLUMN_ID, ROW_SELECTION_COLUMN_ID]\n\nconst ColumnDndProvider: FC<ColumnDndProviderProps> = ({ children }) => {\n const { columnOrder, updateColumnOrder, columnPinning, columnSizing } = useColumnSettingsContext()\n const {\n restrictToSection,\n setDragPinnedState,\n clearDragPinnedState,\n activePinnedState,\n setCachedBoundary,\n } = useColumnDragRestriction({ columnPinning, columnSizing })\n\n const dragCache = useRef({\n cursorX: 0,\n container: null as HTMLElement | null,\n boundaryX: 0,\n containerRight: 0,\n scrollRAF: null as number | null,\n isScrolling: false,\n isColumnDrag: false,\n isPinnedDrag: null as boolean | null,\n })\n\n const sensors = useSensors(\n useSensor(MouseSensor, { activationConstraint: { distance: 5 } }),\n useSensor(TouchSensor, { activationConstraint: { delay: 100, tolerance: 5 } }),\n useSensor(KeyboardSensor, {}),\n )\n\n const modifiers = useMemo(() => [restrictToSection], [restrictToSection])\n\n const pinnedColumns = columnPinning.left || []\n\n const calculateBoundaryX = useCallback(() => {\n const container = dragCache.current.container\n if (!container) return 0\n const lastPinned = container.querySelector('th.last-pinned-left')\n if (lastPinned) return lastPinned.getBoundingClientRect().right\n const pinnedWidth = pinnedColumns.reduce((w, id) => w + (columnSizing[id] || 150), 24)\n return container.getBoundingClientRect().left + pinnedWidth\n }, [pinnedColumns, columnSizing])\n\n const getFirstUnpinnedIndex = useCallback(() => {\n return columnOrder.findIndex(\n (id) => !pinnedColumns.includes(id) && !SPECIAL_COLUMNS.includes(id),\n )\n }, [columnOrder, pinnedColumns])\n\n const customCollisionDetection: CollisionDetection = useCallback(\n (args) => {\n const { active, droppableContainers } = args\n if (activePinnedState.current === null || activePinnedState.current) {\n return closestCenter(args)\n }\n\n if (dragCache.current.cursorX <= dragCache.current.boundaryX + DROP_THRESHOLD) {\n const firstUnpinnedId = columnOrder.find(\n (id) => !pinnedColumns.includes(id) && !SPECIAL_COLUMNS.includes(id),\n )\n if (firstUnpinnedId && firstUnpinnedId !== active.id) {\n const container = droppableContainers.find((c) => c.id === firstUnpinnedId)\n if (container) return [{ id: firstUnpinnedId, data: { droppableContainer: container } }]\n }\n }\n return closestCenter(args)\n },\n [columnOrder, pinnedColumns],\n )\n\n const scrollLoop = useCallback(() => {\n try {\n const cache = dragCache.current\n\n if (!cache.container || !cache.isScrolling || !cache.isColumnDrag) {\n return\n }\n\n const leftScrollStart = cache.boundaryX + 20\n let scrollDelta = 0\n\n if (cache.isPinnedDrag === false && cache.cursorX <= leftScrollStart) {\n const progress = Math.min((leftScrollStart - cache.cursorX) / SCROLL_ZONE, 1)\n scrollDelta = -SCROLL_SPEED * (0.3 + progress * 0.7)\n } else if (cache.cursorX >= cache.containerRight - SCROLL_ZONE) {\n const progress = Math.min(\n (cache.cursorX - (cache.containerRight - SCROLL_ZONE)) / SCROLL_ZONE,\n 1,\n )\n scrollDelta = SCROLL_SPEED * (0.3 + progress * 0.7)\n }\n\n if (scrollDelta !== 0) {\n cache.container.scrollLeft += scrollDelta\n }\n\n cache.scrollRAF = requestAnimationFrame(scrollLoop)\n } catch (e) {\n console.error('[DND] scrollLoop error:', e)\n stopScrollLoop()\n }\n }, [])\n\n const startScrollLoop = useCallback(() => {\n if (dragCache.current.isScrolling) return\n dragCache.current.isScrolling = true\n dragCache.current.scrollRAF = requestAnimationFrame(scrollLoop)\n }, [scrollLoop])\n\n const stopScrollLoop = () => {\n dragCache.current.isScrolling = false\n if (dragCache.current.scrollRAF) {\n cancelAnimationFrame(dragCache.current.scrollRAF)\n dragCache.current.scrollRAF = null\n }\n }\n\n const handleMouseMove = useCallback((e: MouseEvent) => {\n dragCache.current.cursorX = e.clientX\n }, [])\n\n const clearDragCache = () => {\n stopScrollLoop()\n window.removeEventListener('mousemove', handleMouseMove)\n dragCache.current = {\n cursorX: 0,\n container: null,\n boundaryX: 0,\n containerRight: 0,\n scrollRAF: null,\n isScrolling: false,\n isColumnDrag: false,\n isPinnedDrag: null,\n }\n }\n\n const handleDragStart = (event: DragStartEvent) => {\n if (event.active.data.current?.type !== 'column') return\n\n const container = document.querySelector('[data-column-dnd-container]') as HTMLElement\n const rect = container?.getBoundingClientRect()\n const isPinned = pinnedColumns.includes(event.active.id as string)\n\n dragCache.current.container = container\n dragCache.current.containerRight = rect?.right ?? 0\n dragCache.current.boundaryX = calculateBoundaryX()\n dragCache.current.isColumnDrag = true\n dragCache.current.isPinnedDrag = isPinned\n\n setDragPinnedState(event.active.id as string)\n setCachedBoundary(dragCache.current.boundaryX)\n window.addEventListener('mousemove', handleMouseMove)\n startScrollLoop()\n }\n\n const handleDragEnd = (event: DragEndEvent) => {\n clearDragPinnedState()\n\n const { active, over } = event\n if (!active || !dragCache.current.isColumnDrag) {\n clearDragCache()\n return\n }\n\n const activeId = active.id as string\n const isActivePinned = pinnedColumns.includes(activeId)\n\n if (\n (!over || active.id === over.id) &&\n !isActivePinned &&\n event.active.rect.current.translated\n ) {\n if (\n event.active.rect.current.translated.left <=\n dragCache.current.boundaryX + DROP_THRESHOLD\n ) {\n const firstIdx = getFirstUnpinnedIndex()\n const oldIdx = columnOrder.indexOf(activeId)\n if (firstIdx !== -1 && oldIdx !== -1 && oldIdx !== firstIdx) {\n updateColumnOrder(arrayMove(columnOrder, oldIdx, firstIdx))\n }\n }\n clearDragCache()\n return\n }\n\n if (!over || isActivePinned !== pinnedColumns.includes(over.id as string)) {\n clearDragCache()\n return\n }\n\n const oldIdx = columnOrder.indexOf(activeId)\n const newIdx = columnOrder.indexOf(over.id as string)\n if (oldIdx !== -1 && newIdx !== -1) updateColumnOrder(arrayMove(columnOrder, oldIdx, newIdx))\n clearDragCache()\n }\n\n const handleDragCancel = () => {\n clearDragPinnedState()\n clearDragCache()\n }\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={customCollisionDetection}\n modifiers={modifiers}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n onDragCancel={handleDragCancel}\n >\n {children}\n </DndContext>\n )\n}\n\nexport default ColumnDndProvider\n"],"names":["SCROLL_SPEED","SCROLL_ZONE","DROP_THRESHOLD","SPECIAL_COLUMNS","DRAG_HANDLE_COLUMN_ID","ROW_SELECTION_COLUMN_ID","ColumnDndProvider","children","columnOrder","updateColumnOrder","columnPinning","columnSizing","useColumnSettingsContext","restrictToSection","setDragPinnedState","clearDragPinnedState","activePinnedState","setCachedBoundary","useColumnDragRestriction","dragCache","useRef","sensors","useSensors","useSensor","MouseSensor","TouchSensor","KeyboardSensor","modifiers","useMemo","pinnedColumns","calculateBoundaryX","useCallback","container","lastPinned","pinnedWidth","w","id","getFirstUnpinnedIndex","customCollisionDetection","args","active","droppableContainers","closestCenter","firstUnpinnedId","c","scrollLoop","cache","leftScrollStart","scrollDelta","progress","stopScrollLoop","startScrollLoop","handleMouseMove","clearDragCache","handleDragStart","event","rect","isPinned","handleDragEnd","over","activeId","isActivePinned","firstIdx","oldIdx","arrayMove","newIdx","handleDragCancel","jsx","DndContext"],"mappings":"sihBAsBA,MAAMA,EAAe,GACfC,EAAc,IACdC,EAAiB,GACjBC,EAAkB,CAACC,EAAAA,sBAAuBC,yBAAuB,EAEjEC,EAAgD,CAAC,CAAE,SAAAC,KAAe,CACtE,KAAM,CAAE,YAAAC,EAAa,kBAAAC,EAAmB,cAAAC,EAAe,aAAAC,CAAA,EAAiBC,EAAAA,yBAAA,EAClE,CACJ,kBAAAC,EACA,mBAAAC,EACA,qBAAAC,EACA,kBAAAC,EACA,kBAAAC,CAAA,EACEC,2BAAyB,CAAE,cAAAR,EAAe,aAAAC,EAAc,EAEtDQ,EAAYC,EAAAA,OAAO,CACvB,QAAS,EACT,UAAW,KACX,UAAW,EACX,eAAgB,EAChB,UAAW,KACX,YAAa,GACb,aAAc,GACd,aAAc,IAAA,CACf,EAEKC,EAAUC,EAAAA,WACdC,EAAAA,UAAUC,EAAAA,YAAa,CAAE,qBAAsB,CAAE,SAAU,CAAA,EAAK,EAChED,YAAUE,EAAAA,YAAa,CAAE,qBAAsB,CAAE,MAAO,IAAK,UAAW,CAAA,EAAK,EAC7EF,EAAAA,UAAUG,EAAAA,eAAgB,CAAA,CAAE,CAAA,EAGxBC,EAAYC,EAAAA,QAAQ,IAAM,CAACf,CAAiB,EAAG,CAACA,CAAiB,CAAC,EAElEgB,EAAgBnB,EAAc,MAAQ,CAAA,EAEtCoB,EAAqBC,EAAAA,YAAY,IAAM,CAC3C,MAAMC,EAAYb,EAAU,QAAQ,UACpC,GAAI,CAACa,EAAW,MAAO,GACvB,MAAMC,EAAaD,EAAU,cAAc,qBAAqB,EAChE,GAAIC,EAAY,OAAOA,EAAW,sBAAA,EAAwB,MAC1D,MAAMC,EAAcL,EAAc,OAAO,CAACM,EAAGC,IAAOD,GAAKxB,EAAayB,CAAE,GAAK,KAAM,EAAE,EACrF,OAAOJ,EAAU,wBAAwB,KAAOE,CAClD,EAAG,CAACL,EAAelB,CAAY,CAAC,EAE1B0B,EAAwBN,EAAAA,YAAY,IACjCvB,EAAY,UAChB4B,GAAO,CAACP,EAAc,SAASO,CAAE,GAAK,CAACjC,EAAgB,SAASiC,CAAE,CAAA,EAEpE,CAAC5B,EAAaqB,CAAa,CAAC,EAEzBS,EAA+CP,EAAAA,YAClDQ,GAAS,CACR,KAAM,CAAE,OAAAC,EAAQ,oBAAAC,CAAA,EAAwBF,EACxC,GAAIvB,EAAkB,UAAY,MAAQA,EAAkB,QAC1D,OAAO0B,EAAAA,cAAcH,CAAI,EAG3B,GAAIpB,EAAU,QAAQ,SAAWA,EAAU,QAAQ,UAAYjB,EAAgB,CAC7E,MAAMyC,EAAkBnC,EAAY,KACjC4B,GAAO,CAACP,EAAc,SAASO,CAAE,GAAK,CAACjC,EAAgB,SAASiC,CAAE,CAAA,EAErE,GAAIO,GAAmBA,IAAoBH,EAAO,GAAI,CACpD,MAAMR,EAAYS,EAAoB,KAAMG,GAAMA,EAAE,KAAOD,CAAe,EAC1E,GAAIX,EAAW,MAAO,CAAC,CAAE,GAAIW,EAAiB,KAAM,CAAE,mBAAoBX,CAAA,EAAa,CACzF,CACF,CACA,OAAOU,EAAAA,cAAcH,CAAI,CAC3B,EACA,CAAC/B,EAAaqB,CAAa,CAAA,EAGvBgB,EAAad,EAAAA,YAAY,IAAM,CACnC,GAAI,CACF,MAAMe,EAAQ3B,EAAU,QAExB,GAAI,CAAC2B,EAAM,WAAa,CAACA,EAAM,aAAe,CAACA,EAAM,aACnD,OAGF,MAAMC,EAAkBD,EAAM,UAAY,GAC1C,IAAIE,EAAc,EAElB,GAAIF,EAAM,eAAiB,IAASA,EAAM,SAAWC,EAAiB,CACpE,MAAME,EAAW,KAAK,KAAKF,EAAkBD,EAAM,SAAW7C,EAAa,CAAC,EAC5E+C,EAAc,CAAChD,GAAgB,GAAMiD,EAAW,GAClD,SAAWH,EAAM,SAAWA,EAAM,eAAiB7C,EAAa,CAC9D,MAAMgD,EAAW,KAAK,KACnBH,EAAM,SAAWA,EAAM,eAAiB7C,IAAgBA,EACzD,CAAA,EAEF+C,EAAchD,GAAgB,GAAMiD,EAAW,GACjD,CAEID,IAAgB,IAClBF,EAAM,UAAU,YAAcE,GAGhCF,EAAM,UAAY,sBAAsBD,CAAU,CACpD,OAAS,EAAG,CACV,QAAQ,MAAM,0BAA2B,CAAC,EAC1CK,EAAA,CACF,CACF,EAAG,CAAA,CAAE,EAECC,EAAkBpB,EAAAA,YAAY,IAAM,CACpCZ,EAAU,QAAQ,cACtBA,EAAU,QAAQ,YAAc,GAChCA,EAAU,QAAQ,UAAY,sBAAsB0B,CAAU,EAChE,EAAG,CAACA,CAAU,CAAC,EAETK,EAAiB,IAAM,CAC3B/B,EAAU,QAAQ,YAAc,GAC5BA,EAAU,QAAQ,YACpB,qBAAqBA,EAAU,QAAQ,SAAS,EAChDA,EAAU,QAAQ,UAAY,KAElC,EAEMiC,EAAkBrB,cAAa,GAAkB,CACrDZ,EAAU,QAAQ,QAAU,EAAE,OAChC,EAAG,CAAA,CAAE,EAECkC,EAAiB,IAAM,CAC3BH,EAAA,EACA,OAAO,oBAAoB,YAAaE,CAAe,EACvDjC,EAAU,QAAU,CAClB,QAAS,EACT,UAAW,KACX,UAAW,EACX,eAAgB,EAChB,UAAW,KACX,YAAa,GACb,aAAc,GACd,aAAc,IAAA,CAElB,EAEMmC,EAAmBC,GAA0B,CACjD,GAAIA,EAAM,OAAO,KAAK,SAAS,OAAS,SAAU,OAElD,MAAMvB,EAAY,SAAS,cAAc,6BAA6B,EAChEwB,EAAOxB,GAAW,sBAAA,EAClByB,EAAW5B,EAAc,SAAS0B,EAAM,OAAO,EAAY,EAEjEpC,EAAU,QAAQ,UAAYa,EAC9Bb,EAAU,QAAQ,eAAiBqC,GAAM,OAAS,EAClDrC,EAAU,QAAQ,UAAYW,EAAA,EAC9BX,EAAU,QAAQ,aAAe,GACjCA,EAAU,QAAQ,aAAesC,EAEjC3C,EAAmByC,EAAM,OAAO,EAAY,EAC5CtC,EAAkBE,EAAU,QAAQ,SAAS,EAC7C,OAAO,iBAAiB,YAAaiC,CAAe,EACpDD,EAAA,CACF,EAEMO,EAAiBH,GAAwB,CAC7CxC,EAAA,EAEA,KAAM,CAAE,OAAAyB,EAAQ,KAAAmB,CAAA,EAASJ,EACzB,GAAI,CAACf,GAAU,CAACrB,EAAU,QAAQ,aAAc,CAC9CkC,EAAA,EACA,MACF,CAEA,MAAMO,EAAWpB,EAAO,GAClBqB,EAAiBhC,EAAc,SAAS+B,CAAQ,EAEtD,IACG,CAACD,GAAQnB,EAAO,KAAOmB,EAAK,KAC7B,CAACE,GACDN,EAAM,OAAO,KAAK,QAAQ,WAC1B,CACA,GACEA,EAAM,OAAO,KAAK,QAAQ,WAAW,MACrCpC,EAAU,QAAQ,UAAYjB,EAC9B,CACA,MAAM4D,EAAWzB,EAAA,EACX0B,EAASvD,EAAY,QAAQoD,CAAQ,EACvCE,IAAa,IAAMC,IAAW,IAAMA,IAAWD,GACjDrD,EAAkBuD,EAAAA,UAAUxD,EAAauD,EAAQD,CAAQ,CAAC,CAE9D,CACAT,EAAA,EACA,MACF,CAEA,GAAI,CAACM,GAAQE,IAAmBhC,EAAc,SAAS8B,EAAK,EAAY,EAAG,CACzEN,EAAA,EACA,MACF,CAEA,MAAMU,EAASvD,EAAY,QAAQoD,CAAQ,EACrCK,EAASzD,EAAY,QAAQmD,EAAK,EAAY,EAChDI,IAAW,IAAME,IAAW,MAAsBD,EAAAA,UAAUxD,EAAauD,EAAQE,CAAM,CAAC,EAC5FZ,EAAA,CACF,EAEMa,EAAmB,IAAM,CAC7BnD,EAAA,EACAsC,EAAA,CACF,EAEA,OACEc,EAAAA,kBAAAA,IAACC,EAAAA,WAAA,CACC,QAAA/C,EACA,mBAAoBiB,EACpB,UAAAX,EACA,YAAa2B,EACb,UAAWI,EACX,aAAcQ,EAEb,SAAA3D,CAAA,CAAA,CAGP"}
1
+ {"version":3,"file":"ColumnDndProvider.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/components/ColumnDndProvider.tsx"],"sourcesContent":["import { FC, ReactNode, useCallback, useMemo, useRef } from 'react'\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n MouseSensor,\n TouchSensor,\n useSensor,\n useSensors,\n type DragEndEvent,\n type DragStartEvent,\n type CollisionDetection,\n} from '@dnd-kit/core'\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { useColumnSettingsContext } from '@shared/containers'\nimport { useColumnDragRestriction } from '../hooks/useColumnDragRestriction'\nimport { ROW_SELECTION_COLUMN_ID, DRAG_HANDLE_COLUMN_ID } from '../constants'\n\ninterface ColumnDndProviderProps {\n children: ReactNode\n}\n\nconst SCROLL_SPEED = 60\nconst SCROLL_ZONE = 150\nconst DROP_THRESHOLD = 50\nconst SPECIAL_COLUMNS = [DRAG_HANDLE_COLUMN_ID, ROW_SELECTION_COLUMN_ID]\n\nconst ColumnDndProvider: FC<ColumnDndProviderProps> = ({ children }) => {\n const { columnOrder, updateColumnOrder, columnPinning, columnSizing } = useColumnSettingsContext()\n const {\n restrictToSection,\n setDragPinnedState,\n clearDragPinnedState,\n activePinnedState,\n setCachedBoundary,\n } = useColumnDragRestriction({ columnPinning, columnSizing })\n\n const dragCache = useRef({\n cursorX: 0,\n container: null as HTMLElement | null,\n boundaryX: 0,\n containerRight: 0,\n scrollRAF: null as number | null,\n isScrolling: false,\n isColumnDrag: false,\n isPinnedDrag: null as boolean | null,\n })\n\n const sensors = useSensors(\n useSensor(MouseSensor, { activationConstraint: { distance: 5 } }),\n useSensor(TouchSensor, { activationConstraint: { delay: 100, tolerance: 5 } }),\n useSensor(KeyboardSensor, {}),\n )\n\n const modifiers = useMemo(() => [restrictToSection], [restrictToSection])\n\n const pinnedColumns = columnPinning.left || []\n\n const calculateBoundaryX = useCallback(() => {\n const container = dragCache.current.container\n if (!container) return 0\n const lastPinned = container.querySelector('th.last-pinned-left')\n if (lastPinned) return lastPinned.getBoundingClientRect().right\n const pinnedWidth = pinnedColumns.reduce((w, id) => w + (columnSizing[id] || 150), 24)\n return container.getBoundingClientRect().left + pinnedWidth\n }, [pinnedColumns, columnSizing])\n\n const getFirstUnpinnedIndex = useCallback(() => {\n return columnOrder.findIndex(\n (id) => !pinnedColumns.includes(id) && !SPECIAL_COLUMNS.includes(id),\n )\n }, [columnOrder, pinnedColumns])\n\n const customCollisionDetection: CollisionDetection = useCallback(\n (args) => {\n const { active, droppableContainers } = args\n if (activePinnedState.current === null || activePinnedState.current) {\n return closestCenter(args)\n }\n\n if (dragCache.current.cursorX <= dragCache.current.boundaryX + DROP_THRESHOLD) {\n const firstUnpinnedId = columnOrder.find(\n (id) => !pinnedColumns.includes(id) && !SPECIAL_COLUMNS.includes(id),\n )\n if (firstUnpinnedId && firstUnpinnedId !== active.id) {\n const container = droppableContainers.find((c) => c.id === firstUnpinnedId)\n if (container) return [{ id: firstUnpinnedId, data: { droppableContainer: container } }]\n }\n }\n return closestCenter(args)\n },\n [columnOrder, pinnedColumns],\n )\n\n const scrollLoop = useCallback(() => {\n try {\n const cache = dragCache.current\n\n if (!cache.container || !cache.isScrolling || !cache.isColumnDrag) {\n return\n }\n\n const leftScrollStart = cache.boundaryX + 20\n let scrollDelta = 0\n\n if (cache.isPinnedDrag === false && cache.cursorX <= leftScrollStart) {\n const progress = Math.min((leftScrollStart - cache.cursorX) / SCROLL_ZONE, 1)\n scrollDelta = -SCROLL_SPEED * (0.3 + progress * 0.7)\n } else if (cache.cursorX >= cache.containerRight - SCROLL_ZONE) {\n const progress = Math.min(\n (cache.cursorX - (cache.containerRight - SCROLL_ZONE)) / SCROLL_ZONE,\n 1,\n )\n scrollDelta = SCROLL_SPEED * (0.3 + progress * 0.7)\n }\n\n if (scrollDelta !== 0) {\n cache.container.scrollLeft += scrollDelta\n }\n\n cache.scrollRAF = requestAnimationFrame(scrollLoop)\n } catch (e) {\n console.error('[DND] scrollLoop error:', e)\n stopScrollLoop()\n }\n }, [])\n\n const startScrollLoop = useCallback(() => {\n if (dragCache.current.isScrolling) return\n dragCache.current.isScrolling = true\n dragCache.current.scrollRAF = requestAnimationFrame(scrollLoop)\n }, [scrollLoop])\n\n const stopScrollLoop = () => {\n dragCache.current.isScrolling = false\n if (dragCache.current.scrollRAF) {\n cancelAnimationFrame(dragCache.current.scrollRAF)\n dragCache.current.scrollRAF = null\n }\n }\n\n const handleMouseMove = useCallback((e: MouseEvent) => {\n dragCache.current.cursorX = e.clientX\n }, [])\n\n const clearDragCache = () => {\n stopScrollLoop()\n window.removeEventListener('mousemove', handleMouseMove)\n dragCache.current = {\n cursorX: 0,\n container: null,\n boundaryX: 0,\n containerRight: 0,\n scrollRAF: null,\n isScrolling: false,\n isColumnDrag: false,\n isPinnedDrag: null,\n }\n }\n\n const handleDragStart = (event: DragStartEvent) => {\n if (event.active.data.current?.type !== 'column') return\n\n const container = document.querySelector('[data-column-dnd-container]') as HTMLElement\n const rect = container?.getBoundingClientRect()\n const isPinned = pinnedColumns.includes(event.active.id as string)\n\n dragCache.current.container = container\n dragCache.current.containerRight = rect?.right ?? 0\n dragCache.current.boundaryX = calculateBoundaryX()\n dragCache.current.isColumnDrag = true\n dragCache.current.isPinnedDrag = isPinned\n\n setDragPinnedState(event.active.id as string)\n setCachedBoundary(dragCache.current.boundaryX)\n window.addEventListener('mousemove', handleMouseMove)\n startScrollLoop()\n }\n\n const handleDragEnd = (event: DragEndEvent) => {\n clearDragPinnedState()\n\n const { active, over } = event\n if (!active || !dragCache.current.isColumnDrag) {\n clearDragCache()\n return\n }\n\n const activeId = active.id as string\n const isActivePinned = pinnedColumns.includes(activeId)\n\n if (\n (!over || active.id === over.id) &&\n !isActivePinned &&\n event.active.rect.current.translated\n ) {\n if (\n event.active.rect.current.translated.left <=\n dragCache.current.boundaryX + DROP_THRESHOLD\n ) {\n const firstIdx = getFirstUnpinnedIndex()\n const oldIdx = columnOrder.indexOf(activeId)\n if (firstIdx !== -1 && oldIdx !== -1 && oldIdx !== firstIdx) {\n updateColumnOrder(arrayMove(columnOrder, oldIdx, firstIdx))\n }\n }\n clearDragCache()\n return\n }\n\n if (!over || isActivePinned !== pinnedColumns.includes(over.id as string)) {\n clearDragCache()\n return\n }\n\n const oldIdx = columnOrder.indexOf(activeId)\n const newIdx = columnOrder.indexOf(over.id as string)\n if (oldIdx !== -1 && newIdx !== -1) updateColumnOrder(arrayMove(columnOrder, oldIdx, newIdx))\n clearDragCache()\n }\n\n const handleDragCancel = () => {\n clearDragPinnedState()\n clearDragCache()\n }\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={customCollisionDetection}\n modifiers={modifiers}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n onDragCancel={handleDragCancel}\n >\n {children}\n </DndContext>\n )\n}\n\nexport default ColumnDndProvider\n"],"names":["SCROLL_SPEED","SCROLL_ZONE","DROP_THRESHOLD","SPECIAL_COLUMNS","DRAG_HANDLE_COLUMN_ID","ROW_SELECTION_COLUMN_ID","ColumnDndProvider","children","columnOrder","updateColumnOrder","columnPinning","columnSizing","useColumnSettingsContext","restrictToSection","setDragPinnedState","clearDragPinnedState","activePinnedState","setCachedBoundary","useColumnDragRestriction","dragCache","useRef","sensors","useSensors","useSensor","MouseSensor","TouchSensor","KeyboardSensor","modifiers","useMemo","pinnedColumns","calculateBoundaryX","useCallback","container","lastPinned","pinnedWidth","w","id","getFirstUnpinnedIndex","customCollisionDetection","args","active","droppableContainers","closestCenter","firstUnpinnedId","c","scrollLoop","cache","leftScrollStart","scrollDelta","progress","stopScrollLoop","startScrollLoop","handleMouseMove","clearDragCache","handleDragStart","event","rect","isPinned","handleDragEnd","over","activeId","isActivePinned","firstIdx","oldIdx","arrayMove","newIdx","handleDragCancel","jsx","DndContext"],"mappings":"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"}
@@ -273,6 +273,7 @@ import "./HeaderActionButton.es.js";
273
273
  import "./TableFooterRow.es.js";
274
274
  import "../../DetailsPanel/DetailsPanel.styled.es.js";
275
275
  import "../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.es.js";
276
+ import "../../DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js";
276
277
  import "../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js";
277
278
  import "../../../components/PlayableIcon/PlayableIcon.es.js";
278
279
  import "../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js";
@@ -290,7 +291,7 @@ import "../../Views/Views.styled.es.js";
290
291
  import "../../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
291
292
  import "../../ListTable/ListTableRow.es.js";
292
293
  import "../../ListTable/ListTable.styled.es.js";
293
- const P = 60, a = 150, A = 50, E = [Q, V], Xp = ({ children: I }) => {
294
+ const P = 60, a = 150, A = 50, E = [Q, V], yp = ({ children: I }) => {
294
295
  const { columnOrder: n, updateColumnOrder: D, columnPinning: S, columnSizing: u } = Y(), {
295
296
  restrictToSection: R,
296
297
  setDragPinnedState: b,
@@ -417,6 +418,6 @@ const P = 60, a = 150, A = 50, E = [Q, V], Xp = ({ children: I }) => {
417
418
  );
418
419
  };
419
420
  export {
420
- Xp as default
421
+ yp as default
421
422
  };
422
423
  //# sourceMappingURL=ColumnDndProvider.es.js.map