@ynput/ayon-frontend-shared 0.3.48 → 0.3.49

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 (1186) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +25 -24
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +230 -229
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +28 -27
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/_virtual/index.cjs10.js +1 -1
  11. package/dist/_virtual/index.cjs11.js +1 -1
  12. package/dist/_virtual/index.cjs12.js +1 -1
  13. package/dist/_virtual/index.cjs4.js +1 -1
  14. package/dist/_virtual/index.cjs5.js +1 -1
  15. package/dist/_virtual/index.cjs6.js +1 -1
  16. package/dist/_virtual/index.cjs7.js +1 -1
  17. package/dist/_virtual/index.cjs9.js +1 -1
  18. package/dist/_virtual/index.es10.js +5 -2
  19. package/dist/_virtual/index.es10.js.map +1 -1
  20. package/dist/_virtual/index.es11.js +5 -2
  21. package/dist/_virtual/index.es11.js.map +1 -1
  22. package/dist/_virtual/index.es12.js +5 -2
  23. package/dist/_virtual/index.es12.js.map +1 -1
  24. package/dist/_virtual/index.es4.js +5 -2
  25. package/dist/_virtual/index.es4.js.map +1 -1
  26. package/dist/_virtual/index.es5.js +2 -5
  27. package/dist/_virtual/index.es5.js.map +1 -1
  28. package/dist/_virtual/index.es6.js +5 -2
  29. package/dist/_virtual/index.es6.js.map +1 -1
  30. package/dist/_virtual/index.es7.js +2 -2
  31. package/dist/_virtual/index.es9.js +2 -2
  32. package/dist/components.cjs.js +1 -1
  33. package/dist/components.es.js +178 -174
  34. package/dist/components.es.js.map +1 -1
  35. package/dist/context.cjs.js +1 -1
  36. package/dist/context.es.js +52 -46
  37. package/dist/context.es.js.map +1 -1
  38. package/dist/index.cjs.js +1 -1
  39. package/dist/index.es.js +12 -11
  40. package/dist/index.es.js.map +1 -1
  41. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  42. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  43. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  44. package/dist/node_modules/parse-numeric-range/index.cjs.js.map +1 -1
  45. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  46. package/dist/node_modules/react-use-websocket/dist/index.cjs.js +1 -1
  47. package/dist/node_modules/react-use-websocket/dist/index.es.js +1 -1
  48. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  49. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  50. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  51. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  52. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  53. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  54. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  55. package/dist/node_modules/remove-accents/index.es.js +1 -1
  56. package/dist/shared/node_modules/@module-federation/error-codes/dist/browser.cjs.js +1 -1
  57. package/dist/shared/node_modules/@module-federation/error-codes/dist/browser.cjs.js.map +1 -1
  58. package/dist/shared/node_modules/@module-federation/error-codes/dist/browser.es.js +4 -13
  59. package/dist/shared/node_modules/@module-federation/error-codes/dist/browser.es.js.map +1 -1
  60. package/dist/shared/node_modules/@module-federation/error-codes/dist/desc.cjs.js +1 -1
  61. package/dist/shared/node_modules/@module-federation/error-codes/dist/desc.cjs.js.map +1 -1
  62. package/dist/shared/node_modules/@module-federation/error-codes/dist/desc.es.js +22 -30
  63. package/dist/shared/node_modules/@module-federation/error-codes/dist/desc.es.js.map +1 -1
  64. package/dist/shared/node_modules/@module-federation/error-codes/dist/error-codes.cjs.js +1 -1
  65. package/dist/shared/node_modules/@module-federation/error-codes/dist/error-codes.cjs.js.map +1 -1
  66. package/dist/shared/node_modules/@module-federation/error-codes/dist/error-codes.es.js +16 -9
  67. package/dist/shared/node_modules/@module-federation/error-codes/dist/error-codes.es.js.map +1 -1
  68. package/dist/shared/node_modules/@module-federation/error-codes/dist/getShortErrorMsg.cjs.js +3 -3
  69. package/dist/shared/node_modules/@module-federation/error-codes/dist/getShortErrorMsg.cjs.js.map +1 -1
  70. package/dist/shared/node_modules/@module-federation/error-codes/dist/getShortErrorMsg.es.js +6 -13
  71. package/dist/shared/node_modules/@module-federation/error-codes/dist/getShortErrorMsg.es.js.map +1 -1
  72. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  73. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js.map +1 -1
  74. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +16 -76
  75. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js.map +1 -1
  76. package/dist/shared/node_modules/@module-federation/runtime-core/dist/constant.cjs.js +1 -1
  77. package/dist/shared/node_modules/@module-federation/runtime-core/dist/constant.cjs.js.map +1 -1
  78. package/dist/shared/node_modules/@module-federation/runtime-core/dist/constant.es.js +3 -9
  79. package/dist/shared/node_modules/@module-federation/runtime-core/dist/constant.es.js.map +1 -1
  80. package/dist/shared/node_modules/@module-federation/runtime-core/dist/core.cjs.js +1 -1
  81. package/dist/shared/node_modules/@module-federation/runtime-core/dist/core.cjs.js.map +1 -1
  82. package/dist/shared/node_modules/@module-federation/runtime-core/dist/core.es.js +125 -135
  83. package/dist/shared/node_modules/@module-federation/runtime-core/dist/core.es.js.map +1 -1
  84. package/dist/shared/node_modules/@module-federation/runtime-core/dist/global.cjs.js +1 -1
  85. package/dist/shared/node_modules/@module-federation/runtime-core/dist/global.cjs.js.map +1 -1
  86. package/dist/shared/node_modules/@module-federation/runtime-core/dist/global.es.js +92 -102
  87. package/dist/shared/node_modules/@module-federation/runtime-core/dist/global.es.js.map +1 -1
  88. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  89. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js.map +1 -1
  90. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +11 -42
  91. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js.map +1 -1
  92. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js +2 -2
  93. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js.map +1 -1
  94. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.es.js +216 -96
  95. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.es.js.map +1 -1
  96. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/generate-preload-assets.cjs.js +1 -1
  97. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/generate-preload-assets.cjs.js.map +1 -1
  98. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/generate-preload-assets.es.js +127 -137
  99. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/generate-preload-assets.es.js.map +1 -1
  100. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/SnapshotHandler.cjs.js +1 -1
  101. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/SnapshotHandler.cjs.js.map +1 -1
  102. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/SnapshotHandler.es.js +172 -158
  103. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/SnapshotHandler.es.js.map +1 -1
  104. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/disabled.cjs.js +2 -0
  105. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/disabled.cjs.js.map +1 -0
  106. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/disabled.es.js +10 -0
  107. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/disabled.es.js.map +1 -0
  108. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  109. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js.map +1 -1
  110. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +56 -59
  111. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js.map +1 -1
  112. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/disabled.cjs.js +2 -0
  113. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/disabled.cjs.js.map +1 -0
  114. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/disabled.es.js +34 -0
  115. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/disabled.es.js.map +1 -0
  116. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  117. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js.map +1 -1
  118. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +347 -226
  119. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js.map +1 -1
  120. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/disabled.cjs.js +2 -0
  121. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/disabled.cjs.js.map +1 -0
  122. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/disabled.es.js +29 -0
  123. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/disabled.es.js.map +1 -0
  124. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  125. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js.map +1 -1
  126. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +297 -207
  127. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js.map +1 -1
  128. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/context.cjs.js +1 -1
  129. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/context.cjs.js.map +1 -1
  130. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/context.es.js +33 -40
  131. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/context.es.js.map +1 -1
  132. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/env.cjs.js +1 -1
  133. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/env.cjs.js.map +1 -1
  134. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/env.es.js +3 -10
  135. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/env.es.js.map +1 -1
  136. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/asyncHook.cjs.js +1 -1
  137. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/asyncHook.cjs.js.map +1 -1
  138. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/asyncHook.es.js +13 -21
  139. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/asyncHook.es.js.map +1 -1
  140. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/asyncWaterfallHooks.cjs.js +1 -1
  141. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/asyncWaterfallHooks.cjs.js.map +1 -1
  142. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/asyncWaterfallHooks.es.js +29 -36
  143. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/asyncWaterfallHooks.es.js.map +1 -1
  144. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/pluginSystem.cjs.js +1 -1
  145. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/pluginSystem.cjs.js.map +1 -1
  146. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/pluginSystem.es.js +24 -33
  147. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/pluginSystem.es.js.map +1 -1
  148. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/syncHook.cjs.js +1 -1
  149. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/syncHook.cjs.js.map +1 -1
  150. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/syncHook.es.js +28 -34
  151. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/syncHook.es.js.map +1 -1
  152. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/syncWaterfallHook.cjs.js +1 -1
  153. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/syncWaterfallHook.cjs.js.map +1 -1
  154. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/syncWaterfallHook.es.js +29 -35
  155. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/syncWaterfallHook.es.js.map +1 -1
  156. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/load.cjs.js +1 -1
  157. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/load.cjs.js.map +1 -1
  158. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/load.es.js +182 -156
  159. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/load.es.js.map +1 -1
  160. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/logger.cjs.js +1 -1
  161. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/logger.cjs.js.map +1 -1
  162. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/logger.es.js +19 -24
  163. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/logger.es.js.map +1 -1
  164. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/manifest.cjs.js +1 -1
  165. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/manifest.cjs.js.map +1 -1
  166. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/manifest.es.js +39 -41
  167. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/manifest.es.js.map +1 -1
  168. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/plugin.cjs.js +1 -1
  169. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/plugin.cjs.js.map +1 -1
  170. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/plugin.es.js +18 -26
  171. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/plugin.es.js.map +1 -1
  172. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/preload.cjs.js +1 -1
  173. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/preload.cjs.js.map +1 -1
  174. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/preload.es.js +189 -135
  175. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/preload.es.js.map +1 -1
  176. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/compare.cjs.js +1 -1
  177. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/compare.cjs.js.map +1 -1
  178. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/compare.es.js +38 -45
  179. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/compare.es.js.map +1 -1
  180. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/constants.cjs.js +1 -1
  181. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/constants.cjs.js.map +1 -1
  182. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/constants.es.js +11 -9
  183. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/constants.es.js.map +1 -1
  184. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js +1 -1
  185. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js.map +1 -1
  186. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.es.js +55 -63
  187. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.es.js.map +1 -1
  188. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/parser.cjs.js +1 -1
  189. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/parser.cjs.js.map +1 -1
  190. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/parser.es.js +40 -40
  191. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/parser.es.js.map +1 -1
  192. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.cjs.js +1 -1
  193. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.cjs.js.map +1 -1
  194. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.es.js +21 -25
  195. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.es.js.map +1 -1
  196. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/share.cjs.js +1 -1
  197. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/share.cjs.js.map +1 -1
  198. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/share.es.js +197 -200
  199. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/share.es.js.map +1 -1
  200. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/tool.cjs.js +1 -1
  201. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/tool.cjs.js.map +1 -1
  202. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/tool.es.js +51 -64
  203. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/tool.es.js.map +1 -1
  204. package/dist/shared/node_modules/@module-federation/sdk/dist/constant.cjs.js +1 -1
  205. package/dist/shared/node_modules/@module-federation/sdk/dist/constant.cjs.js.map +1 -1
  206. package/dist/shared/node_modules/@module-federation/sdk/dist/constant.es.js +8 -33
  207. package/dist/shared/node_modules/@module-federation/sdk/dist/constant.es.js.map +1 -1
  208. package/dist/shared/node_modules/@module-federation/sdk/dist/dom.cjs.js +1 -1
  209. package/dist/shared/node_modules/@module-federation/sdk/dist/dom.cjs.js.map +1 -1
  210. package/dist/shared/node_modules/@module-federation/sdk/dist/dom.es.js +132 -120
  211. package/dist/shared/node_modules/@module-federation/sdk/dist/dom.es.js.map +1 -1
  212. package/dist/shared/node_modules/@module-federation/sdk/dist/env.cjs.js +1 -1
  213. package/dist/shared/node_modules/@module-federation/sdk/dist/env.cjs.js.map +1 -1
  214. package/dist/shared/node_modules/@module-federation/sdk/dist/env.es.js +20 -27
  215. package/dist/shared/node_modules/@module-federation/sdk/dist/env.es.js.map +1 -1
  216. package/dist/shared/node_modules/@module-federation/sdk/dist/generateSnapshotFromManifest.cjs.js +1 -1
  217. package/dist/shared/node_modules/@module-federation/sdk/dist/generateSnapshotFromManifest.cjs.js.map +1 -1
  218. package/dist/shared/node_modules/@module-federation/sdk/dist/generateSnapshotFromManifest.es.js +71 -102
  219. package/dist/shared/node_modules/@module-federation/sdk/dist/generateSnapshotFromManifest.es.js.map +1 -1
  220. package/dist/shared/node_modules/@module-federation/sdk/dist/logger.cjs.js +4 -4
  221. package/dist/shared/node_modules/@module-federation/sdk/dist/logger.cjs.js.map +1 -1
  222. package/dist/shared/node_modules/@module-federation/sdk/dist/logger.es.js +99 -114
  223. package/dist/shared/node_modules/@module-federation/sdk/dist/logger.es.js.map +1 -1
  224. package/dist/shared/node_modules/@module-federation/sdk/dist/node.cjs.js +2 -2
  225. package/dist/shared/node_modules/@module-federation/sdk/dist/node.cjs.js.map +1 -1
  226. package/dist/shared/node_modules/@module-federation/sdk/dist/node.es.js +120 -88
  227. package/dist/shared/node_modules/@module-federation/sdk/dist/node.es.js.map +1 -1
  228. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.cjs.js +1 -1
  229. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.cjs.js.map +1 -1
  230. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.es.js +21 -78
  231. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.es.js.map +1 -1
  232. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  233. package/dist/shared/node_modules/prop-types/index.cjs.js.map +1 -1
  234. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  235. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  236. package/dist/shared/node_modules/react-is/index.cjs.js.map +1 -1
  237. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  238. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  239. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js.map +1 -1
  240. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  241. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  242. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js.map +1 -1
  243. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  244. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  245. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js.map +1 -1
  246. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  247. package/dist/shared/src/api/queries/overview/patchProducts.cjs.js +1 -1
  248. package/dist/shared/src/api/queries/overview/patchProducts.cjs.js.map +1 -1
  249. package/dist/shared/src/api/queries/overview/patchProducts.es.js +61 -29
  250. package/dist/shared/src/api/queries/overview/patchProducts.es.js.map +1 -1
  251. package/dist/shared/src/api/queries/overview/patchVersions.cjs.js +1 -1
  252. package/dist/shared/src/api/queries/overview/patchVersions.cjs.js.map +1 -1
  253. package/dist/shared/src/api/queries/overview/patchVersions.es.js +16 -15
  254. package/dist/shared/src/api/queries/overview/patchVersions.es.js.map +1 -1
  255. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  256. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  257. package/dist/shared/src/api/queries/overview/updateOverview.es.js +232 -227
  258. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  259. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +1 -1
  260. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
  261. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +5 -4
  262. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
  263. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js +10 -0
  264. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js.map +1 -0
  265. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js +158 -0
  266. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js.map +1 -0
  267. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  268. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  269. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +5 -4
  270. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  271. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  272. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  273. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +5 -4
  274. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  275. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
  276. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  277. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +5 -4
  278. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  279. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  280. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  281. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +5 -4
  282. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  283. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
  284. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
  285. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +5 -4
  286. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
  287. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  288. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  289. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +5 -4
  290. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  291. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  292. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  293. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +5 -4
  294. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  295. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  296. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  297. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +5 -4
  298. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  299. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  300. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  301. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +9 -8
  302. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  303. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  304. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  305. package/dist/shared/src/components/LinksManager/LinksManager.es.js +5 -4
  306. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  307. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  308. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  309. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +5 -4
  310. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  311. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  312. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  313. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +5 -4
  314. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  315. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  316. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
  317. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +5 -4
  318. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
  319. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  320. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
  321. package/dist/shared/src/components/Menu/Menu.es.js +5 -4
  322. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
  323. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  324. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  325. package/dist/shared/src/components/Menu/MenuItem.es.js +3 -2
  326. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  327. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  328. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  329. package/dist/shared/src/components/Menu/MenuList.es.js +5 -4
  330. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  331. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
  332. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  333. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +5 -4
  334. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  335. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  336. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  337. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +5 -4
  338. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  339. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  340. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  341. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +5 -4
  342. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  343. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  344. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  345. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +7 -6
  346. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  347. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  348. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  349. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +5 -4
  350. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  351. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  352. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  353. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +5 -4
  354. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  355. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  356. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  357. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +5 -4
  358. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  359. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  360. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  361. package/dist/shared/src/components/RenameForm/RenameForm.es.js +5 -4
  362. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  363. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  364. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  365. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +5 -4
  366. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  367. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  368. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  369. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +6 -5
  370. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  371. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  372. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  373. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +5 -4
  374. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  375. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  376. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  377. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +5 -4
  378. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  379. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  380. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  381. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +9 -8
  382. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  383. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +1 -1
  384. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  385. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +5 -4
  386. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  387. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  388. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  389. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +7 -6
  390. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  391. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  392. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  393. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +5 -4
  394. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  395. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js +4 -3
  396. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js.map +1 -1
  397. package/dist/shared/src/components/SyncButton/SyncButton.es.js +20 -18
  398. package/dist/shared/src/components/SyncButton/SyncButton.es.js.map +1 -1
  399. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -1
  400. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  401. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +5 -4
  402. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  403. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  404. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  405. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +5 -4
  406. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  407. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  408. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  409. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +9 -8
  410. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  411. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  412. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  413. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +5 -4
  414. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  415. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  416. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  417. package/dist/shared/src/containers/Actions/Actions.es.js +5 -4
  418. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  419. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  420. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  421. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +5 -4
  422. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  423. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  424. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  425. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +46 -38
  426. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  427. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  428. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  429. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +5 -4
  430. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  431. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  432. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  433. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +5 -4
  434. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  435. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  436. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  437. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +5 -4
  438. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  439. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +1 -1
  440. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -1
  441. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +5 -4
  442. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -1
  443. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  444. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  445. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +91 -71
  446. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  447. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  448. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  449. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +5 -4
  450. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  451. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js +1 -1
  452. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js.map +1 -1
  453. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js +188 -81
  454. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js.map +1 -1
  455. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  456. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  457. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +5 -4
  458. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  459. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  460. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  461. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +19 -18
  462. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  463. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  464. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  465. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +5 -4
  466. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  467. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  468. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  469. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +5 -4
  470. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  471. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  472. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  473. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +5 -4
  474. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  475. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  476. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  477. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +5 -4
  478. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  479. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  480. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  481. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +5 -4
  482. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  483. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  484. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  485. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +5 -4
  486. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  487. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  488. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  489. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +5 -4
  490. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  491. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  492. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  493. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +5 -4
  494. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  495. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  496. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  497. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +5 -4
  498. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  499. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  500. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  501. package/dist/shared/src/containers/Feed/Feed.es.js +6 -5
  502. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  503. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  504. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  505. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +5 -4
  506. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  507. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  508. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  509. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +5 -4
  510. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  511. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  512. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  513. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +5 -4
  514. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  515. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  516. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
  517. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +7 -6
  518. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
  519. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  520. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  521. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +5 -4
  522. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  523. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  524. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  525. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +5 -4
  526. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  527. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  528. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  529. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +9 -8
  530. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  531. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  532. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  533. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +5 -4
  534. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  535. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  536. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  537. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +5 -4
  538. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  539. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +1 -1
  540. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -1
  541. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +5 -4
  542. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -1
  543. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  544. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  545. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +5 -4
  546. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  547. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  548. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  549. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +5 -4
  550. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  551. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  552. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  553. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +8 -7
  554. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  555. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  556. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  557. package/dist/shared/src/containers/ListTable/ListTable.es.js +5 -4
  558. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  559. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  560. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  561. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +5 -4
  562. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  563. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  564. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  565. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +5 -4
  566. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  567. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  568. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  569. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +108 -106
  570. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  571. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  572. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  573. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +5 -4
  574. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  575. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  576. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  577. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +5 -4
  578. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  579. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  580. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  581. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +5 -4
  582. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  583. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  584. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  585. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +5 -4
  586. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  587. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  588. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  589. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +5 -4
  590. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  591. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +1 -1
  592. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  593. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +7 -6
  594. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  595. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  596. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  597. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +5 -4
  598. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  599. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  600. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  601. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +7 -6
  602. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  603. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +1 -1
  604. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  605. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +7 -6
  606. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  607. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  608. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  609. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +5 -4
  610. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  611. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  612. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  613. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +5 -4
  614. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  615. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  616. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  617. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +8 -7
  618. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  619. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  620. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  621. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +5 -4
  622. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  623. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  624. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  625. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +62 -50
  626. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  627. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  628. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  629. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +5 -4
  630. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  631. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  632. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  633. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +5 -4
  634. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  635. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  636. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  637. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +38 -84
  638. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  639. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  640. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  641. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +31 -32
  642. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  643. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  644. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  645. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +5 -4
  646. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  647. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  648. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  649. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +5 -4
  650. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  651. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  652. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  653. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +88 -82
  654. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  655. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  656. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  657. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +5 -4
  658. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  659. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  660. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  661. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +5 -4
  662. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  663. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  664. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  665. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +5 -4
  666. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  667. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  668. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  669. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +5 -4
  670. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  671. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  672. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  673. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +5 -4
  674. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  675. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  676. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  677. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +16 -15
  678. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  679. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  680. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  681. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +5 -4
  682. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  683. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  684. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  685. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +6 -5
  686. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  687. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +1 -1
  688. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  689. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +5 -4
  690. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  691. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  692. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  693. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +7 -6
  694. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  695. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +1 -1
  696. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
  697. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +5 -4
  698. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
  699. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  700. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  701. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +5 -4
  702. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  703. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  704. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  705. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +5 -4
  706. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  707. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +1 -1
  708. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  709. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +5 -4
  710. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  711. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  712. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  713. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +5 -4
  714. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  715. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  716. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  717. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +174 -172
  718. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  719. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +1 -1
  720. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  721. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +5 -4
  722. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  723. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +1 -1
  724. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
  725. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +5 -4
  726. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
  727. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  728. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  729. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +5 -4
  730. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  731. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  732. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  733. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +9 -8
  734. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  735. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  736. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  737. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +42 -41
  738. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  739. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
  740. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
  741. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +5 -4
  742. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
  743. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
  744. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
  745. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +5 -4
  746. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
  747. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +1 -1
  748. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -1
  749. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +5 -4
  750. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -1
  751. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +1 -1
  752. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -1
  753. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +5 -4
  754. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -1
  755. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +1 -1
  756. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -1
  757. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +5 -4
  758. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -1
  759. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  760. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  761. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +44 -43
  762. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  763. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  764. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  765. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +5 -4
  766. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  767. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  768. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  769. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +5 -4
  770. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  771. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +1 -1
  772. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  773. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +5 -4
  774. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  775. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  776. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  777. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +7 -6
  778. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  779. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  780. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  781. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +8 -7
  782. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  783. package/dist/shared/src/context/DeleteEntitiesContext.cjs.js +2 -0
  784. package/dist/shared/src/context/DeleteEntitiesContext.cjs.js.map +1 -0
  785. package/dist/shared/src/context/DeleteEntitiesContext.es.js +221 -0
  786. package/dist/shared/src/context/DeleteEntitiesContext.es.js.map +1 -0
  787. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  788. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  789. package/dist/shared/src/context/DetailsPanelContext.es.js +9 -8
  790. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  791. package/dist/shared/src/context/EntityUpdatesContext.cjs.js +1 -1
  792. package/dist/shared/src/context/EntityUpdatesContext.cjs.js.map +1 -1
  793. package/dist/shared/src/context/EntityUpdatesContext.es.js +11 -10
  794. package/dist/shared/src/context/EntityUpdatesContext.es.js.map +1 -1
  795. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  796. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  797. package/dist/shared/src/context/PowerpackContext.es.js +9 -8
  798. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  799. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  800. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  801. package/dist/shared/src/context/ProjectContext.es.js +43 -42
  802. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  803. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  804. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  805. package/dist/shared/src/context/ProjectFoldersContext.es.js +7 -6
  806. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  807. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  808. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  809. package/dist/shared/src/context/RemoteModulesContext.es.js +9 -9
  810. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  811. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  812. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  813. package/dist/shared/src/context/SubtasksModulesContext.es.js +7 -6
  814. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  815. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  816. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  817. package/dist/shared/src/context/WebsocketContext.es.js +7 -6
  818. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  819. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  820. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  821. package/dist/shared/src/hooks/useEntityUpdate.es.js +5 -4
  822. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  823. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  824. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  825. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +5 -4
  826. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  827. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  828. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  829. package/dist/shared/src/hooks/useHierarchyTable.es.js +5 -4
  830. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  831. package/dist/shared/src/hooks/useLoadModule.cjs.js +1 -1
  832. package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
  833. package/dist/shared/src/hooks/useLoadModule.es.js +11 -11
  834. package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
  835. package/dist/shared/src/hooks/useLoadModules.cjs.js +1 -1
  836. package/dist/shared/src/hooks/useLoadModules.cjs.js.map +1 -1
  837. package/dist/shared/src/hooks/useLoadModules.es.js +37 -37
  838. package/dist/shared/src/hooks/useLoadModules.es.js.map +1 -1
  839. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  840. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  841. package/dist/shared/src/hooks/useUserProjectConfig.es.js +5 -4
  842. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  843. package/dist/shared/src/util/pluralize.cjs.js +2 -0
  844. package/dist/shared/src/util/pluralize.cjs.js.map +1 -0
  845. package/dist/shared/src/util/pluralize.es.js +5 -0
  846. package/dist/shared/src/util/pluralize.es.js.map +1 -0
  847. package/dist/types/components/DeleteEntitiesConfirm/DeleteConfirmContent.d.ts +9 -0
  848. package/dist/types/components/DeleteEntitiesConfirm/index.d.ts +1 -0
  849. package/dist/types/components/index.d.ts +1 -0
  850. package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.d.ts +5 -1
  851. package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/types.d.ts +21 -17
  852. package/dist/types/containers/Slicer/hooks/useEntityListsSlice.d.ts +1 -1
  853. package/dist/types/context/DeleteEntitiesContext.d.ts +26 -0
  854. package/dist/types/context/ProjectContext.d.ts +1 -0
  855. package/dist/types/context/index.d.ts +1 -0
  856. package/dist/types/util/index.d.ts +1 -0
  857. package/dist/types/util/pluralize.d.ts +1 -0
  858. package/dist/util.cjs.js +1 -1
  859. package/dist/util.es.js +53 -51
  860. package/dist/util.es.js.map +1 -1
  861. package/package.json +1 -1
  862. package/dist/_virtual/ConsumeSharedPlugin.cjs.js +0 -2
  863. package/dist/_virtual/ConsumeSharedPlugin.cjs.js.map +0 -1
  864. package/dist/_virtual/ConsumeSharedPlugin.es.js +0 -5
  865. package/dist/_virtual/ConsumeSharedPlugin.es.js.map +0 -1
  866. package/dist/_virtual/ContainerPlugin.cjs.js +0 -2
  867. package/dist/_virtual/ContainerPlugin.cjs.js.map +0 -1
  868. package/dist/_virtual/ContainerPlugin.es.js +0 -5
  869. package/dist/_virtual/ContainerPlugin.es.js.map +0 -1
  870. package/dist/_virtual/ContainerReferencePlugin.cjs.js +0 -2
  871. package/dist/_virtual/ContainerReferencePlugin.cjs.js.map +0 -1
  872. package/dist/_virtual/ContainerReferencePlugin.es.js +0 -5
  873. package/dist/_virtual/ContainerReferencePlugin.es.js.map +0 -1
  874. package/dist/_virtual/ModuleFederationPlugin.cjs.js +0 -2
  875. package/dist/_virtual/ModuleFederationPlugin.cjs.js.map +0 -1
  876. package/dist/_virtual/ModuleFederationPlugin.es.js +0 -5
  877. package/dist/_virtual/ModuleFederationPlugin.es.js.map +0 -1
  878. package/dist/_virtual/ProvideSharedPlugin.cjs.js +0 -2
  879. package/dist/_virtual/ProvideSharedPlugin.cjs.js.map +0 -1
  880. package/dist/_virtual/ProvideSharedPlugin.es.js +0 -5
  881. package/dist/_virtual/ProvideSharedPlugin.es.js.map +0 -1
  882. package/dist/_virtual/SharePlugin.cjs.js +0 -2
  883. package/dist/_virtual/SharePlugin.cjs.js.map +0 -1
  884. package/dist/_virtual/SharePlugin.es.js +0 -5
  885. package/dist/_virtual/SharePlugin.es.js.map +0 -1
  886. package/dist/_virtual/SnapshotHandler.cjs.js +0 -2
  887. package/dist/_virtual/SnapshotHandler.cjs.js.map +0 -1
  888. package/dist/_virtual/SnapshotHandler.es.js +0 -5
  889. package/dist/_virtual/SnapshotHandler.es.js.map +0 -1
  890. package/dist/_virtual/asyncHook.cjs.js +0 -2
  891. package/dist/_virtual/asyncHook.cjs.js.map +0 -1
  892. package/dist/_virtual/asyncHook.es.js +0 -5
  893. package/dist/_virtual/asyncHook.es.js.map +0 -1
  894. package/dist/_virtual/asyncWaterfallHooks.cjs.js +0 -2
  895. package/dist/_virtual/asyncWaterfallHooks.cjs.js.map +0 -1
  896. package/dist/_virtual/asyncWaterfallHooks.es.js +0 -5
  897. package/dist/_virtual/asyncWaterfallHooks.es.js.map +0 -1
  898. package/dist/_virtual/browser.cjs.js +0 -2
  899. package/dist/_virtual/browser.cjs.js.map +0 -1
  900. package/dist/_virtual/browser.es.js +0 -5
  901. package/dist/_virtual/browser.es.js.map +0 -1
  902. package/dist/_virtual/compare.cjs.js +0 -2
  903. package/dist/_virtual/compare.cjs.js.map +0 -1
  904. package/dist/_virtual/compare.es.js +0 -5
  905. package/dist/_virtual/compare.es.js.map +0 -1
  906. package/dist/_virtual/constant.cjs.js +0 -2
  907. package/dist/_virtual/constant.cjs.js.map +0 -1
  908. package/dist/_virtual/constant.cjs2.js +0 -2
  909. package/dist/_virtual/constant.cjs2.js.map +0 -1
  910. package/dist/_virtual/constant.es.js +0 -5
  911. package/dist/_virtual/constant.es.js.map +0 -1
  912. package/dist/_virtual/constant.es2.js +0 -5
  913. package/dist/_virtual/constant.es2.js.map +0 -1
  914. package/dist/_virtual/constants.cjs2.js +0 -2
  915. package/dist/_virtual/constants.cjs2.js.map +0 -1
  916. package/dist/_virtual/constants.es2.js +0 -5
  917. package/dist/_virtual/constants.es2.js.map +0 -1
  918. package/dist/_virtual/context.cjs.js +0 -2
  919. package/dist/_virtual/context.cjs.js.map +0 -1
  920. package/dist/_virtual/context.es.js +0 -5
  921. package/dist/_virtual/context.es.js.map +0 -1
  922. package/dist/_virtual/core.cjs.js +0 -2
  923. package/dist/_virtual/core.cjs.js.map +0 -1
  924. package/dist/_virtual/core.es.js +0 -5
  925. package/dist/_virtual/core.es.js.map +0 -1
  926. package/dist/_virtual/createModuleFederationConfig.cjs.js +0 -2
  927. package/dist/_virtual/createModuleFederationConfig.cjs.js.map +0 -1
  928. package/dist/_virtual/createModuleFederationConfig.es.js +0 -5
  929. package/dist/_virtual/createModuleFederationConfig.es.js.map +0 -1
  930. package/dist/_virtual/desc.cjs.js +0 -2
  931. package/dist/_virtual/desc.cjs.js.map +0 -1
  932. package/dist/_virtual/desc.es.js +0 -5
  933. package/dist/_virtual/desc.es.js.map +0 -1
  934. package/dist/_virtual/dom.cjs.js +0 -2
  935. package/dist/_virtual/dom.cjs.js.map +0 -1
  936. package/dist/_virtual/dom.es.js +0 -5
  937. package/dist/_virtual/dom.es.js.map +0 -1
  938. package/dist/_virtual/env.cjs.js +0 -2
  939. package/dist/_virtual/env.cjs.js.map +0 -1
  940. package/dist/_virtual/env.cjs2.js +0 -2
  941. package/dist/_virtual/env.cjs2.js.map +0 -1
  942. package/dist/_virtual/env.es.js +0 -5
  943. package/dist/_virtual/env.es.js.map +0 -1
  944. package/dist/_virtual/env.es2.js +0 -5
  945. package/dist/_virtual/env.es2.js.map +0 -1
  946. package/dist/_virtual/error-codes.cjs.js +0 -2
  947. package/dist/_virtual/error-codes.cjs.js.map +0 -1
  948. package/dist/_virtual/error-codes.es.js +0 -5
  949. package/dist/_virtual/error-codes.es.js.map +0 -1
  950. package/dist/_virtual/generate-preload-assets.cjs.js +0 -2
  951. package/dist/_virtual/generate-preload-assets.cjs.js.map +0 -1
  952. package/dist/_virtual/generate-preload-assets.es.js +0 -5
  953. package/dist/_virtual/generate-preload-assets.es.js.map +0 -1
  954. package/dist/_virtual/generateSnapshotFromManifest.cjs.js +0 -2
  955. package/dist/_virtual/generateSnapshotFromManifest.cjs.js.map +0 -1
  956. package/dist/_virtual/generateSnapshotFromManifest.es.js +0 -5
  957. package/dist/_virtual/generateSnapshotFromManifest.es.js.map +0 -1
  958. package/dist/_virtual/getShortErrorMsg.cjs.js +0 -2
  959. package/dist/_virtual/getShortErrorMsg.cjs.js.map +0 -1
  960. package/dist/_virtual/getShortErrorMsg.es.js +0 -5
  961. package/dist/_virtual/getShortErrorMsg.es.js.map +0 -1
  962. package/dist/_virtual/global.cjs.js +0 -2
  963. package/dist/_virtual/global.cjs.js.map +0 -1
  964. package/dist/_virtual/global.es.js +0 -5
  965. package/dist/_virtual/global.es.js.map +0 -1
  966. package/dist/_virtual/helpers.cjs.js +0 -2
  967. package/dist/_virtual/helpers.cjs.js.map +0 -1
  968. package/dist/_virtual/helpers.es.js +0 -5
  969. package/dist/_virtual/helpers.es.js.map +0 -1
  970. package/dist/_virtual/index.cjs13.js +0 -2
  971. package/dist/_virtual/index.cjs13.js.map +0 -1
  972. package/dist/_virtual/index.cjs14.js +0 -2
  973. package/dist/_virtual/index.cjs14.js.map +0 -1
  974. package/dist/_virtual/index.cjs15.js +0 -2
  975. package/dist/_virtual/index.cjs15.js.map +0 -1
  976. package/dist/_virtual/index.cjs16.js +0 -2
  977. package/dist/_virtual/index.cjs16.js.map +0 -1
  978. package/dist/_virtual/index.cjs17.js +0 -2
  979. package/dist/_virtual/index.cjs17.js.map +0 -1
  980. package/dist/_virtual/index.cjs18.js +0 -2
  981. package/dist/_virtual/index.cjs18.js.map +0 -1
  982. package/dist/_virtual/index.cjs19.js +0 -2
  983. package/dist/_virtual/index.cjs19.js.map +0 -1
  984. package/dist/_virtual/index.cjs20.js +0 -2
  985. package/dist/_virtual/index.cjs20.js.map +0 -1
  986. package/dist/_virtual/index.cjs21.js +0 -2
  987. package/dist/_virtual/index.cjs21.js.map +0 -1
  988. package/dist/_virtual/index.cjs22.js +0 -2
  989. package/dist/_virtual/index.cjs22.js.map +0 -1
  990. package/dist/_virtual/index.cjs23.js +0 -2
  991. package/dist/_virtual/index.cjs23.js.map +0 -1
  992. package/dist/_virtual/index.cjs24.js +0 -2
  993. package/dist/_virtual/index.cjs24.js.map +0 -1
  994. package/dist/_virtual/index.es13.js +0 -5
  995. package/dist/_virtual/index.es13.js.map +0 -1
  996. package/dist/_virtual/index.es14.js +0 -5
  997. package/dist/_virtual/index.es14.js.map +0 -1
  998. package/dist/_virtual/index.es15.js +0 -5
  999. package/dist/_virtual/index.es15.js.map +0 -1
  1000. package/dist/_virtual/index.es16.js +0 -5
  1001. package/dist/_virtual/index.es16.js.map +0 -1
  1002. package/dist/_virtual/index.es17.js +0 -5
  1003. package/dist/_virtual/index.es17.js.map +0 -1
  1004. package/dist/_virtual/index.es18.js +0 -8
  1005. package/dist/_virtual/index.es18.js.map +0 -1
  1006. package/dist/_virtual/index.es19.js +0 -5
  1007. package/dist/_virtual/index.es19.js.map +0 -1
  1008. package/dist/_virtual/index.es20.js +0 -5
  1009. package/dist/_virtual/index.es20.js.map +0 -1
  1010. package/dist/_virtual/index.es21.js +0 -5
  1011. package/dist/_virtual/index.es21.js.map +0 -1
  1012. package/dist/_virtual/index.es22.js +0 -8
  1013. package/dist/_virtual/index.es22.js.map +0 -1
  1014. package/dist/_virtual/index.es23.js +0 -8
  1015. package/dist/_virtual/index.es23.js.map +0 -1
  1016. package/dist/_virtual/index.es24.js +0 -8
  1017. package/dist/_virtual/index.es24.js.map +0 -1
  1018. package/dist/_virtual/load.cjs.js +0 -2
  1019. package/dist/_virtual/load.cjs.js.map +0 -1
  1020. package/dist/_virtual/load.es.js +0 -5
  1021. package/dist/_virtual/load.es.js.map +0 -1
  1022. package/dist/_virtual/logger.cjs.js +0 -2
  1023. package/dist/_virtual/logger.cjs.js.map +0 -1
  1024. package/dist/_virtual/logger.cjs2.js +0 -2
  1025. package/dist/_virtual/logger.cjs2.js.map +0 -1
  1026. package/dist/_virtual/logger.es.js +0 -5
  1027. package/dist/_virtual/logger.es.js.map +0 -1
  1028. package/dist/_virtual/logger.es2.js +0 -5
  1029. package/dist/_virtual/logger.es2.js.map +0 -1
  1030. package/dist/_virtual/manifest.cjs.js +0 -2
  1031. package/dist/_virtual/manifest.cjs.js.map +0 -1
  1032. package/dist/_virtual/manifest.es.js +0 -5
  1033. package/dist/_virtual/manifest.es.js.map +0 -1
  1034. package/dist/_virtual/node.cjs.js +0 -2
  1035. package/dist/_virtual/node.cjs.js.map +0 -1
  1036. package/dist/_virtual/node.es.js +0 -5
  1037. package/dist/_virtual/node.es.js.map +0 -1
  1038. package/dist/_virtual/normalizeOptions.cjs.js +0 -2
  1039. package/dist/_virtual/normalizeOptions.cjs.js.map +0 -1
  1040. package/dist/_virtual/normalizeOptions.es.js +0 -5
  1041. package/dist/_virtual/normalizeOptions.es.js.map +0 -1
  1042. package/dist/_virtual/parser.cjs.js +0 -2
  1043. package/dist/_virtual/parser.cjs.js.map +0 -1
  1044. package/dist/_virtual/parser.es.js +0 -5
  1045. package/dist/_virtual/parser.es.js.map +0 -1
  1046. package/dist/_virtual/plugin.cjs.js +0 -2
  1047. package/dist/_virtual/plugin.cjs.js.map +0 -1
  1048. package/dist/_virtual/plugin.es.js +0 -5
  1049. package/dist/_virtual/plugin.es.js.map +0 -1
  1050. package/dist/_virtual/pluginSystem.cjs.js +0 -2
  1051. package/dist/_virtual/pluginSystem.cjs.js.map +0 -1
  1052. package/dist/_virtual/pluginSystem.es.js +0 -5
  1053. package/dist/_virtual/pluginSystem.es.js.map +0 -1
  1054. package/dist/_virtual/preload.cjs.js +0 -2
  1055. package/dist/_virtual/preload.cjs.js.map +0 -1
  1056. package/dist/_virtual/preload.es.js +0 -5
  1057. package/dist/_virtual/preload.es.js.map +0 -1
  1058. package/dist/_virtual/runtime.cjs.js +0 -2
  1059. package/dist/_virtual/runtime.cjs.js.map +0 -1
  1060. package/dist/_virtual/runtime.cjs2.js +0 -2
  1061. package/dist/_virtual/runtime.cjs2.js.map +0 -1
  1062. package/dist/_virtual/runtime.cjs3.js +0 -2
  1063. package/dist/_virtual/runtime.cjs3.js.map +0 -1
  1064. package/dist/_virtual/runtime.cjs4.js +0 -2
  1065. package/dist/_virtual/runtime.cjs4.js.map +0 -1
  1066. package/dist/_virtual/runtime.cjs5.js +0 -2
  1067. package/dist/_virtual/runtime.cjs5.js.map +0 -1
  1068. package/dist/_virtual/runtime.es.js +0 -6
  1069. package/dist/_virtual/runtime.es.js.map +0 -1
  1070. package/dist/_virtual/runtime.es2.js +0 -5
  1071. package/dist/_virtual/runtime.es2.js.map +0 -1
  1072. package/dist/_virtual/runtime.es3.js +0 -5
  1073. package/dist/_virtual/runtime.es3.js.map +0 -1
  1074. package/dist/_virtual/runtime.es4.js +0 -5
  1075. package/dist/_virtual/runtime.es4.js.map +0 -1
  1076. package/dist/_virtual/runtime.es5.js +0 -5
  1077. package/dist/_virtual/runtime.es5.js.map +0 -1
  1078. package/dist/_virtual/share.cjs.js +0 -2
  1079. package/dist/_virtual/share.cjs.js.map +0 -1
  1080. package/dist/_virtual/share.es.js +0 -5
  1081. package/dist/_virtual/share.es.js.map +0 -1
  1082. package/dist/_virtual/syncHook.cjs.js +0 -2
  1083. package/dist/_virtual/syncHook.cjs.js.map +0 -1
  1084. package/dist/_virtual/syncHook.es.js +0 -5
  1085. package/dist/_virtual/syncHook.es.js.map +0 -1
  1086. package/dist/_virtual/syncWaterfallHook.cjs.js +0 -2
  1087. package/dist/_virtual/syncWaterfallHook.cjs.js.map +0 -1
  1088. package/dist/_virtual/syncWaterfallHook.es.js +0 -5
  1089. package/dist/_virtual/syncWaterfallHook.es.js.map +0 -1
  1090. package/dist/_virtual/tool.cjs.js +0 -2
  1091. package/dist/_virtual/tool.cjs.js.map +0 -1
  1092. package/dist/_virtual/tool.es.js +0 -5
  1093. package/dist/_virtual/tool.es.js.map +0 -1
  1094. package/dist/_virtual/utils.cjs.js +0 -2
  1095. package/dist/_virtual/utils.cjs.js.map +0 -1
  1096. package/dist/_virtual/utils.cjs2.js +0 -2
  1097. package/dist/_virtual/utils.cjs2.js.map +0 -1
  1098. package/dist/_virtual/utils.cjs3.js +0 -2
  1099. package/dist/_virtual/utils.cjs3.js.map +0 -1
  1100. package/dist/_virtual/utils.es.js +0 -5
  1101. package/dist/_virtual/utils.es.js.map +0 -1
  1102. package/dist/_virtual/utils.es2.js +0 -5
  1103. package/dist/_virtual/utils.es2.js.map +0 -1
  1104. package/dist/_virtual/utils.es3.js +0 -5
  1105. package/dist/_virtual/utils.es3.js.map +0 -1
  1106. package/dist/shared/node_modules/@module-federation/enhanced/dist/src/runtime.cjs.js +0 -2
  1107. package/dist/shared/node_modules/@module-federation/enhanced/dist/src/runtime.cjs.js.map +0 -1
  1108. package/dist/shared/node_modules/@module-federation/enhanced/dist/src/runtime.es.js +0 -21
  1109. package/dist/shared/node_modules/@module-federation/enhanced/dist/src/runtime.es.js.map +0 -1
  1110. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +0 -2
  1111. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js.map +0 -1
  1112. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +0 -16
  1113. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js.map +0 -1
  1114. package/dist/shared/node_modules/@module-federation/runtime/dist/utils.cjs.js +0 -2
  1115. package/dist/shared/node_modules/@module-federation/runtime/dist/utils.cjs.js.map +0 -1
  1116. package/dist/shared/node_modules/@module-federation/runtime/dist/utils.es.js +0 -20
  1117. package/dist/shared/node_modules/@module-federation/runtime/dist/utils.es.js.map +0 -1
  1118. package/dist/shared/node_modules/@module-federation/runtime-core/dist/_virtual/_rolldown/runtime.cjs.js +0 -2
  1119. package/dist/shared/node_modules/@module-federation/runtime-core/dist/_virtual/_rolldown/runtime.cjs.js.map +0 -1
  1120. package/dist/shared/node_modules/@module-federation/runtime-core/dist/_virtual/_rolldown/runtime.es.js +0 -20
  1121. package/dist/shared/node_modules/@module-federation/runtime-core/dist/_virtual/_rolldown/runtime.es.js.map +0 -1
  1122. package/dist/shared/node_modules/@module-federation/runtime-core/dist/helpers.cjs.js +0 -2
  1123. package/dist/shared/node_modules/@module-federation/runtime-core/dist/helpers.cjs.js.map +0 -1
  1124. package/dist/shared/node_modules/@module-federation/runtime-core/dist/helpers.es.js +0 -50
  1125. package/dist/shared/node_modules/@module-federation/runtime-core/dist/helpers.es.js.map +0 -1
  1126. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.cjs.js +0 -2
  1127. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.cjs.js.map +0 -1
  1128. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.es.js +0 -18
  1129. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.es.js.map +0 -1
  1130. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +0 -2
  1131. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js.map +0 -1
  1132. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +0 -14
  1133. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js.map +0 -1
  1134. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js +0 -2
  1135. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js.map +0 -1
  1136. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.es.js +0 -16
  1137. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.es.js.map +0 -1
  1138. package/dist/shared/node_modules/@module-federation/runtime-tools/dist/runtime.cjs.js +0 -2
  1139. package/dist/shared/node_modules/@module-federation/runtime-tools/dist/runtime.cjs.js.map +0 -1
  1140. package/dist/shared/node_modules/@module-federation/runtime-tools/dist/runtime.es.js +0 -20
  1141. package/dist/shared/node_modules/@module-federation/runtime-tools/dist/runtime.es.js.map +0 -1
  1142. package/dist/shared/node_modules/@module-federation/sdk/dist/_virtual/_rolldown/runtime.cjs.js +0 -2
  1143. package/dist/shared/node_modules/@module-federation/sdk/dist/_virtual/_rolldown/runtime.cjs.js.map +0 -1
  1144. package/dist/shared/node_modules/@module-federation/sdk/dist/_virtual/_rolldown/runtime.es.js +0 -20
  1145. package/dist/shared/node_modules/@module-federation/sdk/dist/_virtual/_rolldown/runtime.es.js.map +0 -1
  1146. package/dist/shared/node_modules/@module-federation/sdk/dist/createModuleFederationConfig.cjs.js +0 -2
  1147. package/dist/shared/node_modules/@module-federation/sdk/dist/createModuleFederationConfig.cjs.js.map +0 -1
  1148. package/dist/shared/node_modules/@module-federation/sdk/dist/createModuleFederationConfig.es.js +0 -12
  1149. package/dist/shared/node_modules/@module-federation/sdk/dist/createModuleFederationConfig.es.js.map +0 -1
  1150. package/dist/shared/node_modules/@module-federation/sdk/dist/index.cjs.js +0 -2
  1151. package/dist/shared/node_modules/@module-federation/sdk/dist/index.cjs.js.map +0 -1
  1152. package/dist/shared/node_modules/@module-federation/sdk/dist/index.es.js +0 -58
  1153. package/dist/shared/node_modules/@module-federation/sdk/dist/index.es.js.map +0 -1
  1154. package/dist/shared/node_modules/@module-federation/sdk/dist/normalizeOptions.cjs.js +0 -2
  1155. package/dist/shared/node_modules/@module-federation/sdk/dist/normalizeOptions.cjs.js.map +0 -1
  1156. package/dist/shared/node_modules/@module-federation/sdk/dist/normalizeOptions.es.js +0 -23
  1157. package/dist/shared/node_modules/@module-federation/sdk/dist/normalizeOptions.es.js.map +0 -1
  1158. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ConsumeSharedPlugin.cjs.js +0 -2
  1159. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ConsumeSharedPlugin.cjs.js.map +0 -1
  1160. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ConsumeSharedPlugin.es.js +0 -18
  1161. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ConsumeSharedPlugin.es.js.map +0 -1
  1162. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ContainerPlugin.cjs.js +0 -2
  1163. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ContainerPlugin.cjs.js.map +0 -1
  1164. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ContainerPlugin.es.js +0 -18
  1165. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ContainerPlugin.es.js.map +0 -1
  1166. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ContainerReferencePlugin.cjs.js +0 -2
  1167. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ContainerReferencePlugin.cjs.js.map +0 -1
  1168. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ContainerReferencePlugin.es.js +0 -18
  1169. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ContainerReferencePlugin.es.js.map +0 -1
  1170. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ModuleFederationPlugin.cjs.js +0 -2
  1171. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ModuleFederationPlugin.cjs.js.map +0 -1
  1172. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ModuleFederationPlugin.es.js +0 -18
  1173. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ModuleFederationPlugin.es.js.map +0 -1
  1174. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ProvideSharedPlugin.cjs.js +0 -2
  1175. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ProvideSharedPlugin.cjs.js.map +0 -1
  1176. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ProvideSharedPlugin.es.js +0 -18
  1177. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/ProvideSharedPlugin.es.js.map +0 -1
  1178. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/SharePlugin.cjs.js +0 -2
  1179. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/SharePlugin.cjs.js.map +0 -1
  1180. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/SharePlugin.es.js +0 -18
  1181. package/dist/shared/node_modules/@module-federation/sdk/dist/types/plugins/SharePlugin.es.js.map +0 -1
  1182. package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.cjs.js +0 -10
  1183. package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.cjs.js.map +0 -1
  1184. package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.es.js +0 -25
  1185. package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.es.js.map +0 -1
  1186. package/dist/types/containers/ProjectTreeTable/components/DeleteConfirmContent.d.ts +0 -6
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectTreeTable.cjs.js","sources":["../../../../../src/containers/ProjectTreeTable/ProjectTreeTable.tsx"],"sourcesContent":["import { useMemo, useRef, useEffect, CSSProperties, useCallback, UIEventHandler, FC } from 'react' // Added useCallback\nimport { useVirtualizer, VirtualItem, Virtualizer } from '@tanstack/react-virtual'\n// TanStack Table imports\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n filterFns,\n flexRender,\n Row,\n getSortedRowModel,\n Cell,\n Table,\n Header,\n HeaderGroup,\n RowData,\n ExpandedState,\n} from '@tanstack/react-table'\n\n// Utility imports\nimport clsx from 'clsx'\n\n// Type imports\nimport type { TableRow } from './types/table'\n\n// Component imports\nimport buildTreeTableColumns, {\n DefaultColumns,\n isEntityExpandable,\n TreeTableExtraColumn,\n} from './buildTreeTableColumns'\nimport * as Styled from './ProjectTreeTable.styled'\nimport { RowDragHandleCellContent, ColumnHeaderMenu } from './components'\nimport { TableFooterRow } from './components/TableFooterRow'\nimport type { FieldStats } from '@shared/api'\nimport { getCommonPinningStyles, getColumnWidth } from './utils/pinningUtils'\nimport EmptyPlaceholder from '../../components/EmptyPlaceholder'\nimport { InfoMessage, FilterErrorActions } from '@shared/components'\nimport HeaderActionButton from './components/HeaderActionButton'\n\n// Context imports\nimport { useCellEditing } from './context/CellEditingContext'\nimport { useSelectionCellsContext } from './context/SelectionCellsContext'\nimport { ClipboardProvider } from './context/ClipboardContext'\nimport { useSelectedRowsContext } from './context/SelectedRowsContext'\nimport { useColumnSettingsContext } from './context/ColumnSettingsContext'\nimport { useMenuContext } from '../../context/MenuContext'\nimport { ROW_SELECTION_COLUMN_ID, DRAG_HANDLE_COLUMN_ID } from './constants'\n\n// Hook imports\nimport useCustomColumnWidthVars from './hooks/useCustomColumnWidthVars'\nimport useCellContextMenu, {\n HeaderLabel,\n ContextMenuItemConstructors,\n} from './hooks/useCellContextMenu'\nimport useColumnVirtualization from './hooks/useColumnVirtualization'\nimport useKeyboardNavigation from './hooks/useKeyboardNavigation'\nimport useDynamicRowHeight from './hooks/useDynamicRowHeight'\n\n// EntityPickerDialog import\nimport { EntityPickerDialog } from '../EntityPickerDialog/EntityPickerDialog'\n// Move entity hook\nimport { useMoveEntities } from './hooks/useMoveEntities'\nimport { useProjectDataContext } from '@shared/containers'\n\n// Utility function imports\nimport { isGroupId } from './hooks/useBuildGroupByTableData'\nimport { CellId, getCellId, parseCellId } from './utils/cellUtils'\nimport { generateLoadingRows, generateDummyAttributes } from './utils/loadingUtils'\nimport { isEntityRestricted, isTargetReadOnly } from './utils/restrictedEntity'\nimport { createPortal } from 'react-dom'\nimport { Button, Icon } from '@ynput/ayon-react-components'\nimport {\n ProjectTableAttribute,\n BuiltInFieldOptions,\n MainCountLabels,\n SummaryCellContentProps,\n} from './types'\nimport { EnumItem } from '@shared/api'\nimport { ToggleExpandAll, useProjectTableContext, parseRowId } from './context/ProjectTableContext'\nimport {\n checkColumnVisibility,\n ensureAtLeastOneVisibleColumn,\n getEntityViewierIds,\n getReadOnlyLists,\n getTableFieldOptions,\n isFilterError,\n getFilterErrorMessage,\n getEntitiesLabelFromScopes,\n extractQueryErrorMessage,\n} from './utils'\nimport { EntityUpdate } from './hooks/useUpdateTableData'\n\n// dnd-kit imports\nimport {\n DragOverlay,\n useDndContext,\n type UniqueIdentifier,\n // Removed: DndContext, KeyboardSensor, MouseSensor, TouchSensor, closestCenter, DragEndEvent, DragStartEvent, Active, Over, useSensor, useSensors\n} from '@dnd-kit/core'\n// import { restrictToVerticalAxis } from '@dnd-kit/modifiers'\nimport {\n SortableContext,\n verticalListSortingStrategy,\n useSortable,\n horizontalListSortingStrategy,\n} from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\n\nimport { useProjectContext, usePowerpack, setDetailsPanelTabForScope } from '@shared/context'\nimport { useLoadModule } from '@shared/hooks'\nimport { EDIT_TRIGGER_CLASS } from './widgets/CellWidget'\nimport { toast } from 'react-toastify'\nimport { EntityMoveData } from '@shared/context/MoveEntityContext'\nimport { upperFirst } from 'lodash'\nimport { ColumnsConfig } from './types/columnConfig'\n\ntype CellUpdate = (\n entity: Omit<EntityUpdate, 'id'>,\n config?: { selection?: string[] },\n) => Promise<void>\n\n// rendered while the powerpack summaries remote is unavailable (no license / old addon)\nconst SummaryCellContentFallback: FC<SummaryCellContentProps> = () => null\n\ndeclare module '@tanstack/react-table' {\n interface TableMeta<TData extends RowData> {\n options?: BuiltInFieldOptions\n readOnly?: ProjectTreeTableProps['readOnly']\n projectName?: string\n updateEntities?: CellUpdate\n toggleExpandAll?: ToggleExpandAll\n selection?: string[]\n columnsConfig?: ColumnsConfig\n loadingLinksEntityIds?: Set<string>\n }\n}\n\nconst matchesColumnId = (id: string, subscribers: string[]) => {\n return subscribers.some((sub) => {\n if (sub.includes('*')) {\n // Escape all regex special characters\n const escaped = sub.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n // Replace escaped '*' (\\*) with regex '.*'\n const pattern = '^' + escaped.replace(/\\\\\\*/g, '.*') + '$'\n const regex = new RegExp(pattern)\n return regex.test(id)\n }\n return id === sub\n })\n}\n\nexport interface ProjectTreeTableProps extends React.HTMLAttributes<HTMLDivElement> {\n scope: string\n sliceId: string\n onScrollBottom?: React.HTMLAttributes<HTMLDivElement>['onScroll']\n onOpenNew?: (type: 'folder' | 'task') => void\n readOnly?: (DefaultColumns | string)[]\n excludedColumns?: (DefaultColumns | string)[]\n excludedSorting?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n includeLinks?: boolean\n isLoading?: boolean\n isExpandable?: boolean // if true, show the expand/collapse icons\n enableSorting?: boolean\n clientSorting?: boolean\n sortableRows?: boolean\n onRowReorder?: (active: UniqueIdentifier, over: UniqueIdentifier | null) => void // Adjusted type for active/over if needed, or keep as Active, Over\n dndActiveId?: UniqueIdentifier | null // Added prop\n columnsConfig?: ColumnsConfig // Configure column behavior (display, styling, etc.)\n showColumnSummaries?: boolean // render the fixed summary footer row\n fieldStats?: FieldStats[] // primary-entity stats (tasks/versions) feeding the footer\n groupFieldStats?: FieldStats[] // group-entity stats (folders/products) for the 'all' row scope\n fieldStatsLoading?: boolean // footer stats still loading - click-through shimmer over values\n fieldStatsError?: any // error fetching footer stats\n mainCountLabels?: MainCountLabels // labels for the main cell dual count (defaults folders/tasks)\n onScrollBottomGroupBy?: (groupValue: string) => void // Handle scroll to bottom for grouped data\n contextMenuItems?: ContextMenuItemConstructors // Additional context menu items to merge with defaults\n onColumnVisibleChange?: (changes: Record<string, boolean>) => void\n onColumnVisibleChangeSubscribed?: string[]\n // called whenever the set of rows currently rendered in the viewport changes\n // (entity ids, not row ids - group suffixes are stripped)\n onVisibleRowsChange?: (entityIds: string[]) => void\n pt?: {\n container?: React.HTMLAttributes<HTMLDivElement>\n head?: Partial<TableHeadProps>\n }\n}\n\nexport const ProjectTreeTable = ({\n scope,\n sliceId,\n onScroll,\n onScrollBottom, // when the user scrolls to the bottom of the table, this callback is called\n onOpenNew,\n readOnly,\n excludedColumns,\n excludedSorting,\n extraColumns,\n includeLinks,\n isLoading: isLoadingProp,\n isExpandable,\n enableSorting = true,\n clientSorting = false,\n sortableRows = false,\n onRowReorder,\n dndActiveId, // Destructure new prop\n columnsConfig,\n showColumnSummaries = false,\n fieldStats,\n groupFieldStats,\n fieldStatsLoading,\n fieldStatsError,\n mainCountLabels,\n onScrollBottomGroupBy, // Destructure new prop for group-by load more\n contextMenuItems: propsContextMenuItems, // Additional context menu items from props\n onColumnVisibleChange,\n onColumnVisibleChangeSubscribed,\n onVisibleRowsChange,\n pt,\n ...props\n}: ProjectTreeTableProps) => {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n setAllColumns,\n sorting,\n sortingOnChange,\n columnPinningOnChange,\n columnSizingOnChange,\n defaultColumnVisibility,\n columnVisibilityOnChange,\n columnOrderOnChange,\n groupBy,\n columnSummaries,\n updateColumnSummary,\n columnSummaryScopes,\n updateColumnSummaryScope,\n columnSummaryFormats,\n updateColumnSummaryFormat,\n } = useColumnSettingsContext()\n const { productTypes, projectName, ...projectInfo } = useProjectContext()\n\n const {\n tableData,\n attribFields,\n entitiesMap,\n users,\n isLoading: isLoadingData,\n error,\n softError,\n softErrorAction,\n isInitialized,\n expanded,\n updateExpanded,\n toggleExpandAll,\n showHierarchy,\n isFlatFolderView,\n fetchNextPage,\n scopes, // or entityTypes\n getEntityById,\n onResetView,\n overrideGroupBy,\n loadingLinksEntityIds,\n queryFilters,\n } = useProjectTableContext()\n const isGrouping = !!groupBy || !!overrideGroupBy\n\n const filterError = isFilterError(error, queryFilters)\n const filterErrorMessage = getFilterErrorMessage(getEntitiesLabelFromScopes(scopes))\n\n // Parent (folder/product) summary scope only applies when those entities are\n // actually on screen: hierarchy view, grouping by a parent entity, or the\n // Products tab's product tree (product parent rows -> 'product' in scopes).\n const groupField = overrideGroupBy?.id ?? groupBy?.id\n const groupFieldId = Array.isArray(groupField) ? groupField[0] : groupField\n const parentScopeApplicable =\n showHierarchy ||\n ['hierarchy', 'folder', 'product'].includes(groupFieldId ?? '') ||\n scopes.includes('product')\n\n const { writableFields } = useProjectDataContext()\n\n const isLoading = isLoadingProp || isLoadingData\n\n const {\n statuses = [],\n folderTypes = [],\n taskTypes = [],\n tags = [],\n linkTypes = [],\n } = projectInfo || {}\n const options: BuiltInFieldOptions = useMemo(\n () =>\n getTableFieldOptions({\n users,\n statuses,\n folderTypes,\n taskTypes,\n productTypes,\n tags,\n scopes,\n }),\n [users, statuses, folderTypes, taskTypes, scopes, tags],\n )\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n // reference of how many rows are currently rendered in the table\n const tableRowsCountRef = useRef(0)\n\n // Selection context\n const { registerGrid } = useSelectionCellsContext()\n\n // generate loading attrib and rows\n const { loadingAttrib, loadingRows } = useMemo(() => {\n // count the number of children in tbody\n const tableRowsCount = tableContainerRef.current?.querySelectorAll('tbody tr').length || 0\n const loadingAttrib = generateDummyAttributes()\n const loadingRows = generateLoadingRows(\n showHierarchy && tableData.length > 0\n ? Math.min(tableRowsCount, 50)\n : groupBy\n ? Math.max(tableRowsCountRef.current, 50)\n : 50,\n )\n\n return { loadingAttrib, loadingRows }\n }, [])\n\n const showLoadingRows = !isInitialized || isLoading\n\n // Format readonly columns and attributes\n const { readOnlyColumns, readOnlyAttribs } = useMemo(\n () => getReadOnlyLists(attribFields, writableFields, readOnly),\n [attribFields, writableFields, readOnly],\n )\n\n const { selectedCells } = useSelectionCellsContext()\n const { updateEntities } = useCellEditing()\n\n const handleCellUpdate: CellUpdate = useCallback(\n async (entity, config) => {\n const { selection = [] } = config || {}\n const entitiesToUpdate: EntityUpdate[] = []\n if (!selection?.length) {\n entitiesToUpdate.push({ ...entity, id: entity.rowId })\n } else {\n // if includeSelection is true, update all the selected cells with the same columnId\n const { field, value, isAttrib } = entity\n for (const cellId of selectedCells) {\n const { colId, rowId } = parseCellId(cellId) || {}\n\n // ignore row selection column\n if (colId === ROW_SELECTION_COLUMN_ID) continue\n\n const entity = getEntityById(rowId || '')\n if (!entity) {\n console.warn(`Entity with ID ${rowId} not found for cell update.`)\n continue\n }\n\n if ((!colId?.includes('attrib_') || colId?.replace('attrib_', '') === field) && rowId) {\n entitiesToUpdate.push({\n field: field,\n rowId: rowId,\n id: entity.entityId,\n value: value,\n isAttrib: isAttrib,\n type: entity.entityType,\n })\n }\n }\n }\n\n if (!entitiesToUpdate.length) {\n console.warn('No entities to update, skipping updateEntities call.')\n toast.warn('No entities to update.')\n return\n }\n\n await updateEntities(entitiesToUpdate, true)\n },\n [updateEntities, getEntityById, selectedCells],\n )\n\n const columnAttribs = useMemo(\n () => (isInitialized ? attribFields : loadingAttrib),\n [attribFields, loadingAttrib, isInitialized],\n )\n\n const getNameLabelHeader = () => {\n if (scopes.includes('version')) return 'Product / Version'\n return scopes.map((s) => upperFirst(s)).join(' / ')\n }\n\n const columns = useMemo(() => {\n const baseColumns = buildTreeTableColumns({\n scopes,\n attribs: columnAttribs,\n links: linkTypes,\n includeLinks,\n showHierarchy,\n isFlatFolderView,\n options,\n extraColumns,\n excluded: excludedColumns,\n excludedSorting,\n groupBy,\n nameLabel: getNameLabelHeader(),\n })\n\n if (sortableRows && enableSorting) {\n return [\n {\n id: DRAG_HANDLE_COLUMN_ID,\n header: () => null,\n cell: () => null, // Content rendered by TableBodyRow\n size: 24,\n minSize: 24,\n maxSize: 24,\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n enablePinning: false, // Programmatically pinned\n },\n ...baseColumns,\n ]\n }\n return baseColumns\n }, [\n scopes,\n columnAttribs,\n showHierarchy,\n isFlatFolderView,\n isExpandable,\n options,\n linkTypes,\n includeLinks,\n extraColumns,\n excludedColumns,\n excludedSorting,\n sortableRows,\n enableSorting,\n groupBy,\n ])\n\n // Keep ColumnSettingsProvider's allColumns ref up to date\n useEffect(() => {\n const ids = columns.map((c) => c.id!).filter(Boolean)\n setAllColumns(ids)\n }, [columns, setAllColumns])\n\n const resolvedColumnVisibility = useMemo(() => {\n const merged = { ...columnVisibility }\n columns.forEach((col) => {\n // @ts-ignore\n const explicitVisible = col.visible\n if (col.id && merged[col.id] === undefined) {\n if (explicitVisible !== undefined) {\n merged[col.id] = explicitVisible\n } else {\n merged[col.id] = checkColumnVisibility({}, col.id, defaultColumnVisibility)\n }\n }\n })\n return ensureAtLeastOneVisibleColumn(merged, columns.map((c) => c.id as string).filter(Boolean))\n }, [columnVisibility, defaultColumnVisibility, columns])\n\n const table = useReactTable({\n data: showLoadingRows ? loadingRows : tableData,\n columns,\n defaultColumn: {\n minSize: 50,\n size: 150,\n },\n enableRowSelection: true, //enable row selection for all rows\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n getSubRows: (row) => row.subRows,\n getRowCanExpand: () => !!isExpandable || showHierarchy || isFlatFolderView || isGrouping,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // EXPANDABLE\n onExpandedChange: updateExpanded,\n // SORTING\n enableSorting,\n getSortedRowModel: getSortedRowModel(),\n sortDescFirst: false,\n manualSorting: !clientSorting,\n onSortingChange: sortingOnChange,\n columnResizeMode: 'onChange',\n onColumnPinningChange: columnPinningOnChange,\n onColumnSizingChange: columnSizingOnChange,\n onColumnVisibilityChange: columnVisibilityOnChange,\n onColumnOrderChange: columnOrderOnChange,\n // @ts-ignore\n filterFns,\n state: {\n expanded,\n sorting,\n columnPinning: (() => {\n const leftPins: string[] = []\n if (sortableRows) {\n leftPins.push(DRAG_HANDLE_COLUMN_ID)\n }\n leftPins.push(ROW_SELECTION_COLUMN_ID)\n\n // Add other unique pins from context, ensuring they are not the programmatic ones\n const contextLeftPins = (columnPinning.left || []).filter(\n (id) => id !== DRAG_HANDLE_COLUMN_ID && id !== ROW_SELECTION_COLUMN_ID,\n )\n leftPins.push(...contextLeftPins)\n // Remove duplicates just in case, though filter should handle it\n const uniqueLeftPins = [...new Set(leftPins)]\n\n return {\n left: uniqueLeftPins,\n right: columnPinning.right,\n }\n })(),\n columnSizing,\n columnVisibility: resolvedColumnVisibility,\n columnOrder,\n },\n meta: {\n projectName,\n options,\n readOnly: readOnlyColumns,\n updateEntities: handleCellUpdate,\n toggleExpandAll,\n loadMoreRows: fetchNextPage,\n selection: Array.from(selectedCells),\n columnsConfig,\n loadingLinksEntityIds,\n },\n })\n\n // TODO: when there is data (like in error) then we have infinite rendering\n\n const { rows } = table.getRowModel()\n\n // update the tableRowsCountRef with the current number of rows\n useEffect(() => {\n tableRowsCountRef.current = rows.length\n }, [rows.length])\n\n // Register grid structure with selection context when rows or columns change\n useEffect(() => {\n if (!rows.length) return\n const rowIds = rows.map((row) => row.id)\n const colIds = table.getAllLeafColumns().map((col) => col.id)\n const colIdsSortedByPinning = [...colIds].sort((a, b) => {\n if (ROW_SELECTION_COLUMN_ID === b) return 1\n const colA = columnPinning.left?.includes(a) ? 0 : 1\n const colB = columnPinning.left?.includes(b) ? 0 : 1\n return colA - colB\n })\n\n registerGrid(rowIds, colIdsSortedByPinning)\n }, [rows, table.getAllLeafColumns(), columnPinning, ROW_SELECTION_COLUMN_ID, registerGrid])\n\n const visibleColumns = table.getVisibleLeafColumns()\n\n // Use the column virtualization hook\n const { columnVirtualizer, virtualPaddingLeft, virtualPaddingRight } = useColumnVirtualization({\n visibleColumns,\n tableContainerRef,\n columnPinning,\n columnSizing,\n columnOrder,\n })\n\n // Track column visibility changes for subscribed columns\n const prevVisibleRef = useRef<Record<string, boolean>>({})\n const virtualItems = columnVirtualizer.getVirtualItems()\n\n // Subscribe to column visibility changes\n useEffect(() => {\n if (!onColumnVisibleChange || !onColumnVisibleChangeSubscribed?.length) return\n\n const visibleColumnIds = new Set(virtualItems.map((item) => visibleColumns[item.index]?.id))\n const changes: Record<string, boolean> = {}\n let hasChanged = false\n\n // We only care about columns that match the subscription patterns\n const subscribedColumns = table\n .getAllLeafColumns()\n .filter((col) => matchesColumnId(col.id, onColumnVisibleChangeSubscribed))\n\n subscribedColumns.forEach((col) => {\n const isVisible = visibleColumnIds.has(col.id)\n if (prevVisibleRef.current[col.id] !== isVisible) {\n changes[col.id] = isVisible\n hasChanged = true\n prevVisibleRef.current[col.id] = isVisible\n }\n })\n\n if (hasChanged) {\n onColumnVisibleChange(changes)\n }\n }, [virtualItems, onColumnVisibleChange, onColumnVisibleChangeSubscribed, visibleColumns, table])\n\n const columnSizeVars = useCustomColumnWidthVars(table, columnSizing)\n\n // Summary footer is a powerpack feature.\n // popup hidden for now: also expose `setPowerpackDialog, isLoading: isLicenseLoading`\n const { powerLicense } = usePowerpack()\n const [RemoteSummaryCellContent, { isLoaded: isFooterLoaded, isLoading: isFooterModuleLoading }] =\n useLoadModule<FC<SummaryCellContentProps>>({\n addon: 'powerpack',\n remote: 'views',\n module: 'SummaryCellContent',\n fallback: SummaryCellContentFallback,\n skip: !showColumnSummaries || !powerLicense,\n })\n // Free-user upsell row hidden for now (too many power-feature prompts); keep for later.\n // Render the row as soon as the module is loading or loaded (not on load failure),\n // so skeletons show during the load instead of the row popping in late.\n const summariesEnabled =\n showColumnSummaries &&\n powerLicense &&\n (isFooterLoaded || isFooterModuleLoading) &&\n !!rows.length\n // Full skeleton only while the remote module itself is loading (no cell to\n // render yet). Stats loading is handled per-cell so the footer stays clickable.\n const footerModuleLoading = isFooterModuleLoading || !isFooterLoaded\n\n // Unique selected entities for the footer's \"N selected\" count, deduped by\n // entityId (group headers / load-more rows excluded). Marked cells win: when\n // any cell is selected we count only those and ignore checkbox row-selection;\n // whole-row selection counts on its own.\n const selectedRowCount = useMemo(() => {\n const cellEntities = new Set<string>()\n const rowEntities = new Set<string>()\n for (const cellId of selectedCells) {\n const { rowId, colId } = parseCellId(cellId) || {}\n if (!rowId || isGroupId(rowId)) continue\n\n const id = getEntityById(rowId)?.entityId\n if (!id) continue\n if (colId === ROW_SELECTION_COLUMN_ID) rowEntities.add(id)\n else cellEntities.add(id)\n }\n return cellEntities.size || rowEntities.size\n }, [selectedCells, getEntityById])\n // only show the upsell once the license check resolves, so licensed users\n // don't see the bolt flash before the addon loads\n // const showSummaryPowerFeature = !isLicenseLoading && !powerLicense\n\n // Calculate dynamic row height based on user setting from Customize panel\n const { getRowHeight, defaultRowHeight } = useDynamicRowHeight()\n\n const attribByField = useMemo(() => {\n return attribFields.reduce((acc: Record<string, EnumItem[]>, attrib) => {\n if (attrib.data?.enum?.length) {\n acc[attrib.name] = attrib.data?.enum\n }\n return acc\n }, {})\n }, [attribFields])\n\n const rowOrderIds = useMemo(() => tableData.map((row) => row.id), [tableData])\n // Get column IDs for drag-and-drop from context columnOrder (exclude non-draggable columns)\n // This ensures SortableContext items match what the drag handlers use\n const columnOrderIds = useMemo(() => {\n return columnOrder.filter(\n (id) => id !== DRAG_HANDLE_COLUMN_ID && id !== ROW_SELECTION_COLUMN_ID,\n )\n }, [columnOrder])\n\n const draggedRowData = useMemo(() => {\n if (!dndActiveId || !sortableRows) return null // Use dndActiveId\n return tableData.find((r) => r.id === dndActiveId) // Use dndActiveId\n }, [dndActiveId, tableData, sortableRows])\n\n const combinedScrollHandler: UIEventHandler<HTMLDivElement> = useCallback(\n (e) => {\n // Call the original onScroll if provided\n onScroll?.(e)\n\n if (onScrollBottom) {\n const containerRefElement = e.currentTarget\n // When not grouping (or when hierarchy+slicer relies on tasksList), we trigger standard fetchNextPage\n // The table itself handles showing tasks.\n if (containerRefElement && !groupBy && (!showHierarchy || !isFlatFolderView)) {\n const { scrollHeight, scrollTop, clientHeight } = containerRefElement\n //once the user has scrolled within 500px of the bottom of the table, fetch more data if we can\n if (scrollHeight - scrollTop - clientHeight < 500 && !isLoading) {\n onScrollBottom(e)\n }\n }\n }\n\n // Handle scroll-to-bottom for grouped data\n if (onScrollBottomGroupBy && groupBy) {\n const containerRefElement = e.currentTarget\n // look for a load more button\n const loadMoreButton = containerRefElement?.querySelector('.load-more')\n // get load more button id\n const loadMoreButtonId = loadMoreButton?.getAttribute('id')\n const groupValue = loadMoreButtonId?.split('-')[2] // assuming the id is in the format 'load-more-groupValue'\n if (groupValue) {\n onScrollBottomGroupBy(groupValue)\n }\n }\n },\n [onScroll, onScrollBottom, onScrollBottomGroupBy, showHierarchy, groupBy, isLoading],\n )\n\n // Get move entity functions for the dialog\n const {\n isEntityPickerOpen,\n handleMoveSubmit,\n closeMoveDialog,\n movingEntities,\n handleMoveToRoot,\n getDisabledFolderIds,\n getDisabledMessage,\n } = useMoveEntities({\n projectName,\n })\n\n const handleMoveSubmitWithExpand = (selection: string[]) => {\n handleMoveSubmit(selection)\n const folderIdToExpand = selection[0]\n\n updateExpanded((prevExpanded: ExpandedState) => {\n if (typeof prevExpanded === 'boolean') {\n if (prevExpanded) {\n return prevExpanded\n }\n return { [folderIdToExpand]: true }\n }\n\n if (prevExpanded[folderIdToExpand]) {\n return prevExpanded\n }\n\n return {\n ...prevExpanded,\n [folderIdToExpand]: true,\n }\n })\n }\n\n const tableUiContent = (\n <ClipboardProvider\n entitiesMap={entitiesMap}\n columnEnums={{ ...options, ...attribByField }}\n columnReadOnly={readOnlyAttribs}\n visibleColumns={visibleColumns}\n >\n <Styled.TableWrapper {...props}>\n <Styled.TableContainer\n ref={tableContainerRef}\n style={{ height: '100%', padding: 0 }}\n onScroll={combinedScrollHandler}\n {...pt?.container}\n data-column-dnd-container\n className={clsx(\n 'table-container',\n {\n resizing: table.getState().columnSizingInfo.isResizingColumn,\n },\n pt?.container?.className,\n )}\n >\n <table\n style={{\n display: 'grid',\n borderCollapse: 'collapse',\n userSelect: 'none',\n ...columnSizeVars,\n width: table.getTotalSize(),\n cursor: table.getState().columnSizingInfo.isResizingColumn ? 'col-resize' : undefined,\n // stretch tbody to the container so the column dividers fill the empty\n // space below the rows; also pins the summary footer to the bottom\n minHeight: '100%',\n gridTemplateRows: 'auto 1fr auto',\n }}\n >\n <TableHead\n columnVirtualizer={columnVirtualizer}\n table={table}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n columnOrderIds={columnOrderIds}\n {...pt?.head}\n />\n <TableBody\n columnVirtualizer={columnVirtualizer}\n table={table}\n tableContainerRef={tableContainerRef}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n showHierarchy={showHierarchy}\n attribs={attribFields}\n onOpenNew={onOpenNew}\n rowOrderIds={rowOrderIds}\n sortableRows={sortableRows}\n error={error}\n isFilterError={filterError}\n filterErrorMessage={filterErrorMessage}\n isLoading={isLoading}\n isGrouping={isGrouping}\n getRowHeight={getRowHeight}\n defaultRowHeight={defaultRowHeight}\n onResetView={onResetView}\n contextMenuItems={propsContextMenuItems}\n onVisibleRowsChange={onVisibleRowsChange}\n />\n {summariesEnabled && !error && (\n <TableFooterRow\n columnVirtualizer={columnVirtualizer}\n table={table}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={footerModuleLoading}\n statsLoading={!!fieldStatsLoading}\n error={fieldStatsError}\n // Free-user upsell hidden for now; keep for later:\n // onClick={showSummaryPowerFeature ? () => setPowerpackDialog('columnSummaries') : undefined}\n renderCellContent={(columnId) => (\n <RemoteSummaryCellContent\n columnId={columnId}\n attribs={attribFields}\n fieldStats={fieldStats}\n groupFieldStats={groupFieldStats}\n calc={columnSummaries[columnId]}\n onCalcChange={(calc) => updateColumnSummary(columnId, calc)}\n format={columnSummaryFormats[columnId]}\n onFormatChange={(format) => updateColumnSummaryFormat(columnId, format)}\n scope={columnSummaryScopes[columnId]}\n onScopeChange={(scope) => updateColumnSummaryScope(columnId, scope)}\n mainCountLabels={mainCountLabels}\n fieldOptions={options}\n parentScopeApplicable={parentScopeApplicable}\n selectedCount={selectedRowCount}\n />\n )}\n // Power feature cell for community users (hidden for now), shows a bolt hint in the name column:\n // renderCellContent={(columnId) =>\n // showSummaryPowerFeature && columnId === 'name' ? (\n // <Styled.SummaryPowerFeature>\n // <Icon icon=\"bolt\" filled />\n // Summaries\n // </Styled.SummaryPowerFeature>\n // ) : null\n // }\n />\n )}\n </table>\n </Styled.TableContainer>\n {softError && (\n <Styled.SoftErrorBanner>\n <InfoMessage variant=\"warning\" message={softError} action={softErrorAction} />\n </Styled.SoftErrorBanner>\n )}\n </Styled.TableWrapper>\n {/* Render EntityPickerDialog alongside table content */}\n {isEntityPickerOpen &&\n projectName &&\n movingEntities?.entities &&\n movingEntities.entities.length > 0 && (\n <EntityPickerDialog\n projectName={projectName}\n entityType=\"folder\"\n onSubmit={handleMoveSubmitWithExpand}\n onClose={closeMoveDialog}\n showMoveToRoot={movingEntities.entities.every(\n (entity: EntityMoveData) => entity.entityType === 'folder',\n )}\n onMoveToRoot={handleMoveToRoot}\n disabledIds={getDisabledFolderIds()}\n getDisabledMessage={getDisabledMessage}\n />\n )}\n </ClipboardProvider>\n )\n\n // Render DragOverlay if sortableRows and dndActiveId is present\n const dragOverlayPortal =\n sortableRows &&\n dndActiveId &&\n createPortal(\n <DragOverlay dropAnimation={null}>\n {draggedRowData\n ? (() => {\n const overlayRowInstance = table.getRowModel().rows.find((r) => r.id === dndActiveId)\n if (!overlayRowInstance) return null\n\n const tableWidth = table.getTotalSize()\n\n return (\n <table\n style={{\n width: tableWidth,\n borderCollapse: 'collapse',\n backgroundColor: 'var(--md-sys-color-surface-container-high)',\n boxShadow: '0 0 10px rgba(0,0,0,0.2)',\n ...columnSizeVars,\n }}\n >\n <tbody>\n <Styled.TR style={{ display: 'flex', userSelect: 'none' }}>\n {virtualPaddingLeft ? (\n <td style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {columnVirtualizer.getVirtualItems().map((vc) => {\n const cell = overlayRowInstance.getVisibleCells()[vc.index]\n if (!cell) return null\n\n const cellStyleBase: CSSProperties = {\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(cell.column.id),\n display: 'flex',\n alignItems: 'center',\n height: defaultRowHeight,\n }\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TD\n key={`overlay-drag-${cell.id}`}\n style={{ ...cellStyleBase, justifyContent: 'center' }}\n className={clsx(cell.column.id)}\n >\n <Icon icon=\"drag_handle\" /> {/* Static icon */}\n </Styled.TD>\n )\n }\n return (\n <TD\n cell={cell}\n cellId={`overlay-${getCellId(overlayRowInstance.id, cell.column.id)}`}\n rowId={overlayRowInstance.id}\n key={`overlay-cell-${cell.id}`}\n showHierarchy={showHierarchy}\n />\n )\n })}\n {virtualPaddingRight ? (\n <td style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.TR>\n </tbody>\n </table>\n )\n })()\n : null}\n </DragOverlay>,\n document.body,\n )\n\n if (sortableRows) {\n return (\n <>\n {tableUiContent}\n {dragOverlayPortal}\n <ColumnDragOverlay table={table} />\n </>\n )\n } else {\n return (\n <>\n {tableUiContent}\n <ColumnDragOverlay table={table} />\n </>\n )\n }\n}\n\n/**\n * Isolated component for column drag overlay.\n * This prevents the entire table from re-rendering on every drag frame.\n */\ninterface ColumnDragOverlayProps {\n table: Table<TableRow>\n}\n\nconst ColumnDragOverlay = ({ table }: ColumnDragOverlayProps) => {\n const { active } = useDndContext()\n\n // Only process if dragging a column\n const isColumnDrag = active?.data?.current?.type === 'column'\n const activeColumnId = isColumnDrag ? (active?.id as string) : null\n\n const draggedColumnHeader = useMemo(() => {\n if (!activeColumnId) return null\n return table.getHeaderGroups()[0]?.headers.find((h) => h.id === activeColumnId) || null\n }, [activeColumnId, table])\n\n if (!activeColumnId || !draggedColumnHeader) return null\n\n return createPortal(\n <DragOverlay dropAnimation={null}>\n <Styled.HeaderCell\n style={{\n width: draggedColumnHeader.column.getSize(),\n backgroundColor: 'var(--md-sys-color-surface-container-high)',\n boxShadow: '0 0 10px rgba(0,0,0,0.2)',\n display: 'flex',\n alignItems: 'center',\n minHeight: 34,\n }}\n >\n <Styled.TableCellContent className=\"bold header\">\n {flexRender(\n draggedColumnHeader.column.columnDef.header,\n draggedColumnHeader.getContext(),\n )}\n </Styled.TableCellContent>\n </Styled.HeaderCell>\n </DragOverlay>,\n document.body,\n )\n}\n\ninterface TableHeadProps extends React.HTMLAttributes<HTMLTableSectionElement> {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n columnOrderIds: string[]\n}\n\nconst TableHead = ({\n columnVirtualizer,\n table,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n columnOrderIds,\n ...props\n}: TableHeadProps) => {\n return (\n <Styled.TableHeader {...props}>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableHeadRow\n key={headerGroup.id}\n columnVirtualizer={columnVirtualizer}\n headerGroup={headerGroup}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n columnOrderIds={columnOrderIds}\n />\n ))}\n </Styled.TableHeader>\n )\n}\n\ninterface TableHeadRowProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n headerGroup: HeaderGroup<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n columnOrderIds: string[]\n}\n\nconst TableHeadRow = ({\n columnVirtualizer,\n headerGroup,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n columnOrderIds,\n}: TableHeadRowProps) => {\n const virtualColumns = columnVirtualizer.getVirtualItems()\n const { active } = useDndContext()\n const isColumnDrag = active?.data?.current?.type === 'column'\n const isDraggedColumnPinned = isColumnDrag && (active?.data?.current?.isPinned ?? false)\n\n return (\n <Styled.ColumnHeader key={headerGroup.id} style={{ display: 'flex' }}>\n {virtualPaddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n <SortableContext items={columnOrderIds} strategy={horizontalListSortingStrategy}>\n {virtualColumns.map((virtualColumn) => {\n const header = headerGroup.headers[virtualColumn.index]\n // Exclude certain columns from being draggable\n const isDraggable =\n header.id !== DRAG_HANDLE_COLUMN_ID && header.id !== ROW_SELECTION_COLUMN_ID\n\n return (\n <TableHeadCell\n key={header.id}\n header={header}\n isLoading={isLoading}\n isReadOnly={readOnlyColumns?.includes(header.id)}\n canSort={header.column.getCanSort()}\n canFilter={header.column.getCanFilter()}\n canHide={header.column.getCanHide()}\n canPin={header.column.getCanPin()}\n canResize={header.column.getCanResize()}\n sortableRows={sortableRows}\n isDraggable={isDraggable}\n isColumnDrag={isColumnDrag}\n isDraggedColumnPinned={isDraggedColumnPinned}\n />\n )\n })}\n </SortableContext>\n {virtualPaddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.ColumnHeader>\n )\n}\n\ninterface TableHeadCellProps {\n header: Header<TableRow, unknown>\n isLoading: boolean\n canSort?: boolean\n canFilter?: boolean\n canHide?: boolean\n canPin?: boolean\n canResize?: boolean\n isReadOnly?: boolean\n sortableRows?: boolean\n isDraggable?: boolean\n isColumnDrag?: boolean\n isDraggedColumnPinned?: boolean\n}\n\nconst TableHeadCell = ({\n header,\n isLoading,\n canFilter,\n canHide,\n canSort,\n canPin,\n canResize,\n isReadOnly,\n sortableRows,\n isDraggable = true,\n isColumnDrag,\n isDraggedColumnPinned,\n}: TableHeadCellProps) => {\n const { column } = header\n const sorting = column.getIsSorted()\n const menuId = `column-header-menu-${column.id}`\n const { menuOpen } = useMenuContext()\n const isOpen = menuOpen === menuId\n const { columnPinning, sorting: sortingState, updateSorting } = useColumnSettingsContext()\n\n // toggle sort via the same direct updateSorting call the Customize panel uses;\n // routing through TanStack's onSortingChange did not apply under manualSorting.\n const handleToggleSort = () => {\n const current = sortingState?.find((s) => s.id === column.id)\n const next = !current\n ? [{ id: column.id, desc: false }]\n : !current.desc\n ? [{ id: column.id, desc: true }]\n : []\n updateSorting(next)\n }\n\n // Check if this column is pinned\n const isThisColumnPinned = columnPinning.left?.includes(column.id) || false\n\n // useSortable for column drag-and-drop\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: column.id,\n data: { type: 'column', isPinned: isThisColumnPinned },\n disabled: !isDraggable,\n })\n\n const isDraggingInSameSection = isColumnDrag && isDraggedColumnPinned === isThisColumnPinned\n\n // Build drag styles\n const getDragStyle = (): CSSProperties => {\n if (isDragging) {\n return {\n transform: CSS.Translate.toString(transform!),\n transition,\n visibility: 'hidden',\n zIndex: 200,\n }\n }\n if (isDraggingInSameSection && transform) {\n // For pinned columns, temporarily remove sticky positioning during drag animation\n const pinnedOverride = isThisColumnPinned\n ? { position: 'relative' as const, left: 'auto' }\n : {}\n return { transform: CSS.Translate.toString(transform), transition, ...pinnedOverride }\n }\n return {}\n }\n\n // Prevent drag when clicking action buttons\n const preventDragFromActions = {\n onPointerDown: (e: React.PointerEvent) => e.stopPropagation(),\n onMouseDown: (e: React.MouseEvent) => e.stopPropagation(),\n }\n\n return (\n <Styled.HeaderCell\n ref={setNodeRef}\n className={clsx(header.id, 'shimmer-dark', {\n loading: isLoading,\n 'last-pinned-left': column.getIsPinned() === 'left' && column.getIsLastColumn('left'),\n resizing: column.getIsResizing(),\n dragging: isDragging,\n draggable: isDraggable,\n })}\n key={header.id}\n style={{\n ...getCommonPinningStyles(column),\n width: getColumnWidth(column.id),\n ...getDragStyle(),\n }}\n >\n {header.isPlaceholder ? null : (\n <Styled.TableCellContent\n className={clsx('bold', 'header')}\n {...(isDraggable ? { ...attributes, ...listeners } : {})}\n >\n {flexRender(column.columnDef.header, header.getContext())}\n {isReadOnly && (\n <Icon icon=\"lock\" data-tooltip={'You only have permission to read this column.'} />\n )}\n\n <Styled.HeaderButtons className=\"actions\" $isOpen={isOpen} {...preventDragFromActions}>\n {/* Column drag handle */}\n\n {(canHide || canPin || canSort) && (\n <ColumnHeaderMenu\n className=\"header-menu\"\n header={header}\n canHide={canHide}\n canPin={canPin}\n canSort={canSort}\n isResizing={column.getIsResizing()}\n menuId={menuId}\n isOpen={isOpen}\n />\n )}\n\n {/* COLUMN SORTING */}\n {canSort && (\n <HeaderActionButton\n icon=\"sort\"\n className={clsx('sort-button', { visible: sorting })}\n style={{\n transform: sorting === 'desc' ? 'rotate(180deg) scaleX(-1)' : 'none',\n }}\n onClick={handleToggleSort}\n selected={!!column.getIsSorted()}\n />\n )}\n\n {/* COLUMN PINNING - only show on pinned columns (exclude selection column) */}\n {column.getIsPinned() &&\n column.id !== ROW_SELECTION_COLUMN_ID &&\n column.id !== DRAG_HANDLE_COLUMN_ID && (\n <HeaderActionButton\n icon=\"push_pin\"\n className={clsx('pin-button', 'visible')}\n onClick={() => column.pin(false)}\n selected\n />\n )}\n </Styled.HeaderButtons>\n {canResize && (\n <Styled.ResizedHandler\n {...{\n onDoubleClick: () => column.resetSize(),\n onMouseDown: (e: React.MouseEvent) => {\n e.stopPropagation()\n header.getResizeHandler()(e)\n },\n onTouchStart: header.getResizeHandler(),\n onPointerDown: (e: React.PointerEvent) => e.stopPropagation(),\n className: clsx('resize-handle', {\n resizing: column.getIsResizing(),\n }),\n }}\n />\n )}\n </Styled.TableCellContent>\n )}\n </Styled.HeaderCell>\n )\n}\n\ninterface TableBodyProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n tableContainerRef: React.RefObject<HTMLDivElement>\n showHierarchy: boolean\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n attribs: ProjectTableAttribute[]\n onOpenNew?: (type: 'folder' | 'task') => void\n rowOrderIds: UniqueIdentifier[]\n sortableRows: boolean\n error?: string\n isFilterError?: boolean\n filterErrorMessage?: string\n isLoading: boolean\n isGrouping: boolean\n getRowHeight: (row: TableRow) => number\n defaultRowHeight: number\n onResetView?: () => void\n contextMenuItems?: ContextMenuItemConstructors\n onVisibleRowsChange?: (entityIds: string[]) => void\n}\n\nconst TableBody = ({\n columnVirtualizer,\n table,\n tableContainerRef,\n showHierarchy,\n virtualPaddingLeft,\n virtualPaddingRight,\n attribs,\n onOpenNew,\n rowOrderIds,\n sortableRows,\n error,\n isFilterError: filterError,\n filterErrorMessage,\n isLoading,\n isGrouping,\n getRowHeight,\n defaultRowHeight,\n onResetView,\n contextMenuItems,\n onVisibleRowsChange,\n}: TableBodyProps) => {\n const headerLabels = useMemo(() => {\n const allColumns = table.getAllColumns()\n const headers = allColumns\n .map((col) => {\n const headerId = col.id\n const header = col.columnDef.header\n if (typeof header === 'string' || typeof header === 'number') {\n return { label: header, id: headerId }\n }\n return null\n })\n .filter(Boolean)\n\n return headers as HeaderLabel[]\n }, [table.getAllColumns()])\n\n const cellContextMenuHook = useCellContextMenu({\n attribs,\n onOpenNew,\n headerLabels,\n contextMenuItems,\n })\n\n const handleTableBodyContextMenu = cellContextMenuHook.handleTableBodyContextMenu\n\n const { rows } = table.getRowModel()\n\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n estimateSize: (index) => {\n // Calculate dynamic row height based on specific row data\n const row = rows[index]\n return row ? getRowHeight(row.original) : defaultRowHeight\n },\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement:\n typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n const virtualRows = rowVirtualizer.getVirtualItems()\n\n // Notify the consumer whenever the set of rendered (visible) entity ids changes,\n // so data fetching can be scoped to what's actually on screen. Only fires when\n // the resolved id list actually differs, to avoid spamming updates on every\n // render (rowVirtualizer.getVirtualItems() returns a new array each call).\n const prevVisibleRowIdsRef = useRef<string>('')\n useEffect(() => {\n if (!onVisibleRowsChange) return\n\n const ids = virtualRows\n .map((virtualRow) => rows[virtualRow.index] && parseRowId(rows[virtualRow.index].id))\n .filter(Boolean) as string[]\n const uniqueIds = Array.from(new Set(ids))\n const key = uniqueIds.join(',')\n\n if (key === prevVisibleRowIdsRef.current) return\n prevVisibleRowIdsRef.current = key\n\n onVisibleRowsChange(uniqueIds)\n }, [virtualRows, rows, onVisibleRowsChange])\n\n // Memoize the measureElement callback\n const measureRowElement = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n useKeyboardNavigation()\n\n // vertical column lines painted behind the rows so they extend into the empty\n // space between the last row and the summary footer\n const visibleLeafColumns = table.getVisibleLeafColumns()\n const columnDividerLefts = useMemo(() => {\n const lefts: string[] = []\n const sizeVars: string[] = []\n for (let i = 0; i < visibleLeafColumns.length - 1; i++) {\n const column = visibleLeafColumns[i]\n // selection column is forced to 20px in CSS while its size var reports defaultColumn.minSize\n sizeVars.push(column.id === ROW_SELECTION_COLUMN_ID ? '20' : `var(--col-${column.id}-size)`)\n lefts.push(`calc((${sizeVars.join(' + ')}) * 1px)`)\n }\n return lefts\n }, [visibleLeafColumns])\n\n const tbodyContent = (\n <tbody\n style={{\n minHeight: `${rowVirtualizer.getTotalSize()}px`,\n position: 'relative',\n display: 'grid',\n }}\n onContextMenu={handleTableBodyContextMenu}\n >\n <Styled.ColumnDividers aria-hidden>\n {columnDividerLefts.map((left, i) => (\n <div key={i} style={{ left }} />\n ))}\n </Styled.ColumnDividers>\n {virtualRows.map((virtualRow) => {\n const row = rows[virtualRow.index] as Row<TableRow>\n // Add a check for row existence to prevent potential errors if data is out of sync\n if (!row) {\n console.warn('Virtualized row data not found for index:', virtualRow.index)\n return null\n }\n return (\n <TableBodyRow\n key={row.id} // stable per-row identity; dnd-kit matches on row.id via SortableContext, not this key\n row={row}\n showHierarchy={showHierarchy}\n visibleCells={row.getVisibleCells()}\n virtualColumns={columnVirtualizer.getVirtualItems()}\n paddingLeft={virtualPaddingLeft}\n paddingRight={virtualPaddingRight}\n rowRef={measureRowElement}\n dataIndex={virtualRow.index}\n offsetTop={virtualRow.start}\n sortableRows={sortableRows}\n isGrouping={isGrouping}\n rowHeight={getRowHeight(row.original)}\n />\n )\n })}\n </tbody>\n )\n\n if (error) {\n return (\n tableContainerRef.current &&\n createPortal(\n <Styled.AnimatedEmptyPlaceholder>\n {filterError ? (\n <EmptyPlaceholder message={filterErrorMessage} icon=\"filter_alt_off\">\n {onResetView && (\n <Button\n variant=\"filled\"\n label=\"Reset filters\"\n icon=\"replay\"\n onClick={onResetView}\n />\n )}\n <FilterErrorActions errorMessage={extractQueryErrorMessage(error)} />\n </EmptyPlaceholder>\n ) : (\n <EmptyPlaceholder message=\"No items found\" error={error}>\n {onResetView && (\n <Button\n variant=\"filled\"\n label=\"Reset filters\"\n icon=\"replay\"\n onClick={onResetView}\n />\n )}\n </EmptyPlaceholder>\n )}\n </Styled.AnimatedEmptyPlaceholder>,\n tableContainerRef.current,\n )\n )\n }\n\n if (!rows.length && !isLoading) {\n return (\n tableContainerRef.current &&\n createPortal(\n <Styled.AnimatedEmptyPlaceholder>\n <EmptyPlaceholder message=\"No items found\">\n {onResetView && (\n <Button variant=\"filled\" label=\"Reset filters\" icon=\"replay\" onClick={onResetView} />\n )}\n </EmptyPlaceholder>\n </Styled.AnimatedEmptyPlaceholder>,\n tableContainerRef.current,\n )\n )\n }\n\n if (sortableRows) {\n return (\n <SortableContext items={rowOrderIds} strategy={verticalListSortingStrategy}>\n {tbodyContent}\n </SortableContext>\n )\n } else {\n return tbodyContent\n }\n}\n\ninterface TableBodyRowProps {\n row: Row<TableRow>\n showHierarchy: boolean\n visibleCells: Cell<TableRow, unknown>[]\n virtualColumns: VirtualItem[]\n paddingLeft: number | undefined\n paddingRight: number | undefined\n rowRef: (node: HTMLTableRowElement | null) => void\n dataIndex: number\n offsetTop: number\n sortableRows: boolean\n isGrouping: boolean\n rowHeight: number\n}\n\nconst TableBodyRow = ({\n row,\n showHierarchy,\n visibleCells,\n virtualColumns,\n paddingLeft,\n paddingRight,\n rowRef,\n dataIndex,\n offsetTop,\n sortableRows,\n isGrouping = false,\n rowHeight,\n}: TableBodyRowProps) => {\n const sortable = sortableRows ? useSortable({ id: row.id }) : null\n\n // Track actual DOM element node\n const rowHtmlElementRef = useRef<HTMLTableRowElement | null>(null)\n\n const combinedRef = useCallback(\n (node: HTMLTableRowElement | null) => {\n rowHtmlElementRef.current = node\n if (sortable) {\n sortable.setNodeRef(node)\n }\n // rowRef for virtualizer measurement\n // only measure if not actively being transformed by dnd-kit\n if (!(sortable && sortable.isDragging)) {\n rowRef(node)\n }\n },\n [sortable, rowRef],\n )\n\n // Attempt to combine dnd-kit transform with virtualizer's offsetTop\n const style: CSSProperties = {\n position: 'absolute', // Use absolute positioning for virtualized items\n top: offsetTop, // Position based on virtualizer's calculation (virtualRow.start)\n left: 0, // Span full width of the relative parent (tbody)\n right: 0, // Span full width\n height: rowHeight, // Use dynamic row height\n zIndex: sortable && sortable.isDragging ? 0 : 1, // Ensure dragged item is above others\n display: 'flex', // Styled.TR is display:flex\n transform:\n sortable && sortable.transform ? CSS.Transform.toString(sortable.transform) : undefined, // Apply dnd-kit's transform for drag effect\n transition: sortable && sortable.transition ? sortable.transition : undefined,\n visibility: sortable && sortable.isDragging ? 'hidden' : 'visible', // Hide the row being dragged\n }\n\n return (\n <Styled.TR\n ref={combinedRef}\n data-index={dataIndex} //needed for dynamic row height measurement\n style={style}\n className={clsx({ 'group-row': row.original.group })}\n >\n {paddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingLeft }} />\n ) : null}\n {virtualColumns.map((vc) => {\n const cell = visibleCells[vc.index]\n if (!cell) return null // Should not happen in normal circumstances\n\n const cellId = getCellId(row.id, cell.column.id)\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TD\n key={cell.id}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(cell.column.id),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: rowHeight,\n pointerEvents: 'all',\n cursor: 'grab',\n }}\n className={clsx(cell.column.id, {\n 'last-pinned-left':\n cell.column.getIsPinned() === 'left' && cell.column.getIsLastColumn('left'),\n })}\n onMouseDown={(e) => e.stopPropagation()} // Prevent selection interference\n onMouseOver={(e) => e.stopPropagation()}\n onDoubleClick={(e) => e.stopPropagation()}\n onContextMenu={(e) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n <RowDragHandleCellContent\n attributes={sortable?.attributes}\n listeners={sortable?.listeners}\n />\n </Styled.TD>\n )\n }\n return (\n <TD\n cell={cell}\n cellId={cellId}\n rowId={row.id}\n key={cell.id}\n showHierarchy={showHierarchy}\n sortableRows={sortableRows}\n rowHeight={rowHeight}\n />\n )\n })}\n\n {paddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingRight }} />\n ) : null}\n </Styled.TR>\n )\n}\n\ninterface TableCellProps {\n cell: Cell<TableRow, unknown>\n cellId: string\n rowId: string\n className?: string\n showHierarchy: boolean\n sortableRows?: boolean\n rowHeight?: number\n}\n\nconst TD = ({\n cell,\n rowId,\n cellId,\n className,\n showHierarchy,\n sortableRows,\n rowHeight,\n ...props\n}: TableCellProps) => {\n const { getEntityById, onOpenPlayer } = useProjectTableContext()\n\n const {\n isCellSelected,\n isCellFocused,\n startSelection,\n extendSelection,\n endSelection,\n selectCell,\n focusCell,\n getCellBorderClasses,\n clearSelection,\n selectedCells,\n setSelectedCells,\n setAnchorCell,\n setFocusedCellId,\n } = useSelectionCellsContext()\n\n const { isRowSelected } = useSelectedRowsContext()\n\n const { isEditing, setEditingCellId, editingCellId } = useCellEditing()\n\n const borderClasses = getCellBorderClasses(cellId)\n\n const isPinned = cell.column.getIsPinned()\n const isLastLeftPinnedColumn = isPinned === 'left' && cell.column.getIsLastColumn('left')\n const isRowSelectionColumn = cell.column.id === ROW_SELECTION_COLUMN_ID\n const isGroup = cell.row.original.entityType === 'group'\n const isMultipleSelected = selectedCells.size > 1\n\n return (\n <Styled.TD\n {...props}\n tabIndex={0}\n $isLastPinned={isLastLeftPinnedColumn} // is this column the last pinned column? Custom styling for borders.\n className={clsx(\n cell.column.id,\n {\n selected: isCellSelected(cellId),\n focused: isCellFocused(cellId),\n editing: isEditing(cellId),\n 'last-pinned-left': isLastLeftPinnedColumn,\n 'selected-row': isRowSelected(rowId),\n expandable:\n !!cell.row.originalSubRows && isEntityExpandable(cell.row.original.entityType),\n 'multiple-selected': isMultipleSelected,\n },\n className,\n ...borderClasses,\n )}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(cell.column.id),\n height: rowHeight,\n }}\n onMouseDown={(e) => {\n // Only process left clicks (button 0), ignore right clicks\n if (e.button !== 0) return\n\n const target = e.target as HTMLElement\n\n // check we are not clicking on expander\n if (target.closest('.expander')) return\n\n // check we are not clicking in a dropdown\n if (target.closest('.options')) return\n\n // Handle double-click via e.detail (browser's native click count).\n // We handle it here in mousedown instead of relying on the dblclick event,\n // because the 1st mousedown triggers React state updates that can replace\n // the DOM node, preventing the native dblclick event from firing.\n if (e.detail === 2) {\n // comments cells are read-only but their double-click opens the details panel, so don't block them here\n const isReadOnly = isTargetReadOnly(e) && cell.column.id !== 'comments'\n if (isReadOnly || isEntityRestricted(cell.row.original.entityType) || isGroup) {\n e.preventDefault()\n return\n }\n\n // name column: select row to open details panel\n // comments column: same — comments are read and written in the details panel feed\n if (['name', 'comments'].includes(cell.column.id) && !target.closest('.expander')) {\n // all ProjectTreeTable pages render their details panel under the 'overview' scope\n if (cell.column.id === 'comments') setDetailsPanelTabForScope('overview', 'feed')\n const rowSelectionCellId = getCellId(cell.row.id, ROW_SELECTION_COLUMN_ID)\n const additive = e.metaKey || e.ctrlKey\n const position = parseCellId(rowSelectionCellId)\n\n setSelectedCells((prev) => {\n const newSelection = additive ? new Set(prev) : new Set<CellId>()\n newSelection.add(rowSelectionCellId)\n newSelection.add(cellId)\n return newSelection\n })\n if (position) {\n setAnchorCell(position)\n setFocusedCellId(rowSelectionCellId)\n }\n }\n // thumbnail: open viewer\n else if (cell.column.id === 'thumbnail') {\n if (onOpenPlayer) {\n const entity = getEntityById(cell.row.original.entityId || cell.row.id)\n if (entity) {\n const targetIds = getEntityViewierIds(entity)\n onOpenPlayer(targetIds, { quickView: true })\n }\n }\n }\n // other cells: start editing\n else {\n setEditingCellId(cellId)\n }\n\n e.preventDefault()\n return\n }\n\n // only name column can be selected for group rows\n if (isGroup && cell.column.id !== 'name') return clearSelection()\n\n // check if this is a restricted entity - prevent editing\n const isRestricted = isEntityRestricted(cell.row.original.entityType)\n\n // if clicking on an edit trigger, start editing\n if (target.closest('.' + EDIT_TRIGGER_CLASS) && !isRestricted) {\n // Select the cell first if not already selected\n if (!isCellSelected(cellId)) {\n selectCell(cellId, false, false)\n focusCell(cellId)\n }\n setEditingCellId(cellId)\n return\n }\n\n // If there's an active edit on a different cell, blur it first to save changes\n if (editingCellId && editingCellId !== cellId) {\n // Find the currently editing input and blur it\n const editingInput = document.querySelector(\n `#${editingCellId} input, #${editingCellId} [role=\"textbox\"]`,\n ) as HTMLElement\n if (editingInput) {\n editingInput.blur()\n // Wait a tick for the blur event to process and save\n setTimeout(() => {\n proceedWithSelection()\n }, 0)\n return\n }\n }\n\n proceedWithSelection()\n\n function proceedWithSelection() {\n const additive = e.metaKey || e.ctrlKey || isRowSelectionColumn\n if (e.shiftKey) {\n // Shift+click extends selection from anchor cell\n selectCell(cellId, additive, true) // true for range selection\n } else {\n startSelection(cellId, additive)\n }\n\n // Prevent default browser behavior to ensure focus stays on the cell\n e.preventDefault()\n }\n }}\n onMouseOver={(e) => {\n if (e.buttons === 1) {\n // check not selecting am edit trigger\n const target = e.target as HTMLElement\n if (target.closest('.' + EDIT_TRIGGER_CLASS)) return\n\n // Left button is pressed during mouse move - drag selection\n // Note: extendSelection is always called to allow drag to continue through cells\n // Restricted cells will be filtered out later\n extendSelection(cellId, isRowSelectionColumn)\n }\n }}\n onMouseUp={() => {\n endSelection(cellId)\n }}\n onDoubleClick={(e) => {\n // Double-click is primarily handled in onMouseDown via e.detail === 2.\n // Prevent default to avoid text selection on double-click.\n e.preventDefault()\n }}\n onContextMenu={(e) => {\n e.preventDefault()\n // if the cell is not selected, select it and deselect all others\n if (!isCellSelected(cellId)) {\n selectCell(cellId, false, false)\n }\n }}\n onKeyDown={() => {\n // keyboard events are handled in useKeyboardNavigation hook\n }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Styled.TD>\n )\n}\n"],"names":["SummaryCellContentFallback","matchesColumnId","id","subscribers","sub","pattern","ProjectTreeTable","scope","sliceId","onScroll","onScrollBottom","onOpenNew","readOnly","excludedColumns","excludedSorting","extraColumns","includeLinks","isLoadingProp","isExpandable","enableSorting","clientSorting","sortableRows","onRowReorder","dndActiveId","columnsConfig","showColumnSummaries","fieldStats","groupFieldStats","fieldStatsLoading","fieldStatsError","mainCountLabels","onScrollBottomGroupBy","propsContextMenuItems","onColumnVisibleChange","onColumnVisibleChangeSubscribed","onVisibleRowsChange","pt","props","columnVisibility","columnPinning","columnOrder","columnSizing","setAllColumns","sorting","sortingOnChange","columnPinningOnChange","columnSizingOnChange","defaultColumnVisibility","columnVisibilityOnChange","columnOrderOnChange","groupBy","columnSummaries","updateColumnSummary","columnSummaryScopes","updateColumnSummaryScope","columnSummaryFormats","updateColumnSummaryFormat","useColumnSettingsContext","productTypes","projectName","projectInfo","useProjectContext","tableData","attribFields","entitiesMap","users","isLoadingData","error","softError","softErrorAction","isInitialized","expanded","updateExpanded","toggleExpandAll","showHierarchy","isFlatFolderView","fetchNextPage","scopes","getEntityById","onResetView","overrideGroupBy","loadingLinksEntityIds","queryFilters","useProjectTableContext","isGrouping","filterError","isFilterError","filterErrorMessage","getFilterErrorMessage","getEntitiesLabelFromScopes","groupField","groupFieldId","parentScopeApplicable","writableFields","useProjectDataContext","isLoading","statuses","folderTypes","taskTypes","tags","linkTypes","options","useMemo","getTableFieldOptions","tableContainerRef","useRef","tableRowsCountRef","registerGrid","useSelectionCellsContext","loadingAttrib","loadingRows","tableRowsCount","generateDummyAttributes","generateLoadingRows","showLoadingRows","readOnlyColumns","readOnlyAttribs","getReadOnlyLists","selectedCells","updateEntities","useCellEditing","handleCellUpdate","useCallback","entity","config","selection","entitiesToUpdate","field","value","isAttrib","cellId","colId","rowId","parseCellId","ROW_SELECTION_COLUMN_ID","toast","columnAttribs","getNameLabelHeader","s","upperFirst","columns","baseColumns","buildTreeTableColumns","DRAG_HANDLE_COLUMN_ID","useEffect","ids","c","resolvedColumnVisibility","merged","col","explicitVisible","checkColumnVisibility","ensureAtLeastOneVisibleColumn","table","useReactTable","row","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","getSortedRowModel","filterFns","leftPins","contextLeftPins","rows","rowIds","colIdsSortedByPinning","a","b","colA","colB","visibleColumns","columnVirtualizer","virtualPaddingLeft","virtualPaddingRight","useColumnVirtualization","prevVisibleRef","virtualItems","visibleColumnIds","item","changes","hasChanged","isVisible","columnSizeVars","useCustomColumnWidthVars","powerLicense","usePowerpack","RemoteSummaryCellContent","isFooterLoaded","isFooterModuleLoading","useLoadModule","summariesEnabled","footerModuleLoading","selectedRowCount","cellEntities","rowEntities","isGroupId","getRowHeight","defaultRowHeight","useDynamicRowHeight","attribByField","acc","attrib","rowOrderIds","columnOrderIds","draggedRowData","r","combinedScrollHandler","containerRefElement","scrollHeight","scrollTop","clientHeight","groupValue","isEntityPickerOpen","handleMoveSubmit","closeMoveDialog","movingEntities","handleMoveToRoot","getDisabledFolderIds","getDisabledMessage","useMoveEntities","handleMoveSubmitWithExpand","folderIdToExpand","prevExpanded","tableUiContent","jsxs","ClipboardProvider","Styled.TableWrapper","jsx","Styled.TableContainer","clsx","TableHead","TableBody","TableFooterRow","columnId","calc","format","Styled.SoftErrorBanner","InfoMessage","EntityPickerDialog","dragOverlayPortal","createPortal","DragOverlay","overlayRowInstance","tableWidth","Styled.TR","vc","cell","cellStyleBase","getCommonPinningStyles","getColumnWidth","Styled.TD","Icon","TD","getCellId","Fragment","ColumnDragOverlay","active","useDndContext","activeColumnId","draggedColumnHeader","h","Styled.HeaderCell","Styled.TableCellContent","flexRender","Styled.TableHeader","headerGroup","TableHeadRow","virtualColumns","isColumnDrag","isDraggedColumnPinned","Styled.ColumnHeader","SortableContext","horizontalListSortingStrategy","virtualColumn","header","isDraggable","TableHeadCell","canFilter","canHide","canSort","canPin","canResize","isReadOnly","column","menuId","menuOpen","useMenuContext","isOpen","sortingState","updateSorting","handleToggleSort","current","next","isThisColumnPinned","attributes","listeners","setNodeRef","transform","transition","isDragging","useSortable","isDraggingInSameSection","getDragStyle","CSS","pinnedOverride","preventDragFromActions","e","Styled.HeaderButtons","ColumnHeaderMenu","HeaderActionButton","Styled.ResizedHandler","attribs","contextMenuItems","headerLabels","headerId","handleTableBodyContextMenu","useCellContextMenu","rowVirtualizer","useVirtualizer","index","element","virtualRows","prevVisibleRowIdsRef","virtualRow","parseRowId","uniqueIds","key","measureRowElement","node","useKeyboardNavigation","visibleLeafColumns","columnDividerLefts","lefts","sizeVars","i","tbodyContent","Styled.ColumnDividers","left","TableBodyRow","Styled.AnimatedEmptyPlaceholder","EmptyPlaceholder","Button","FilterErrorActions","extractQueryErrorMessage","verticalListSortingStrategy","visibleCells","paddingLeft","paddingRight","rowRef","dataIndex","offsetTop","rowHeight","sortable","rowHtmlElementRef","combinedRef","style","RowDragHandleCellContent","className","onOpenPlayer","isCellSelected","isCellFocused","startSelection","extendSelection","endSelection","selectCell","focusCell","getCellBorderClasses","clearSelection","setSelectedCells","setAnchorCell","setFocusedCellId","isRowSelected","useSelectedRowsContext","isEditing","setEditingCellId","editingCellId","borderClasses","isLastLeftPinnedColumn","isRowSelectionColumn","isGroup","isMultipleSelected","isEntityExpandable","target","isTargetReadOnly","isEntityRestricted","setDetailsPanelTabForScope","rowSelectionCellId","additive","position","prev","newSelection","targetIds","getEntityViewierIds","isRestricted","EDIT_TRIGGER_CLASS","editingInput","proceedWithSelection"],"mappings":"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"}
1
+ {"version":3,"file":"ProjectTreeTable.cjs.js","sources":["../../../../../src/containers/ProjectTreeTable/ProjectTreeTable.tsx"],"sourcesContent":["import { useMemo, useRef, useEffect, CSSProperties, useCallback, UIEventHandler, FC } from 'react' // Added useCallback\nimport { useVirtualizer, VirtualItem, Virtualizer } from '@tanstack/react-virtual'\n// TanStack Table imports\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n filterFns,\n flexRender,\n Row,\n getSortedRowModel,\n Cell,\n Table,\n Header,\n HeaderGroup,\n RowData,\n ExpandedState,\n} from '@tanstack/react-table'\n\n// Utility imports\nimport clsx from 'clsx'\n\n// Type imports\nimport type { TableRow } from './types/table'\n\n// Component imports\nimport buildTreeTableColumns, {\n DefaultColumns,\n isEntityExpandable,\n TreeTableExtraColumn,\n} from './buildTreeTableColumns'\nimport * as Styled from './ProjectTreeTable.styled'\nimport { RowDragHandleCellContent, ColumnHeaderMenu } from './components'\nimport { TableFooterRow } from './components/TableFooterRow'\nimport type { FieldStats } from '@shared/api'\nimport { getCommonPinningStyles, getColumnWidth } from './utils/pinningUtils'\nimport EmptyPlaceholder from '../../components/EmptyPlaceholder'\nimport { InfoMessage, FilterErrorActions } from '@shared/components'\nimport HeaderActionButton from './components/HeaderActionButton'\n\n// Context imports\nimport { useCellEditing } from './context/CellEditingContext'\nimport { useSelectionCellsContext } from './context/SelectionCellsContext'\nimport { ClipboardProvider } from './context/ClipboardContext'\nimport { useSelectedRowsContext } from './context/SelectedRowsContext'\nimport { useColumnSettingsContext } from './context/ColumnSettingsContext'\nimport { useMenuContext } from '../../context/MenuContext'\nimport { ROW_SELECTION_COLUMN_ID, DRAG_HANDLE_COLUMN_ID } from './constants'\n\n// Hook imports\nimport useCustomColumnWidthVars from './hooks/useCustomColumnWidthVars'\nimport useCellContextMenu, {\n HeaderLabel,\n ContextMenuItemConstructors,\n} from './hooks/useCellContextMenu'\nimport useColumnVirtualization from './hooks/useColumnVirtualization'\nimport useKeyboardNavigation from './hooks/useKeyboardNavigation'\nimport useDynamicRowHeight from './hooks/useDynamicRowHeight'\n\n// EntityPickerDialog import\nimport { EntityPickerDialog } from '../EntityPickerDialog/EntityPickerDialog'\n// Move entity hook\nimport { useMoveEntities } from './hooks/useMoveEntities'\nimport { useProjectDataContext } from '@shared/containers'\n\n// Utility function imports\nimport { isGroupId } from './hooks/useBuildGroupByTableData'\nimport { CellId, getCellId, parseCellId } from './utils/cellUtils'\nimport { generateLoadingRows, generateDummyAttributes } from './utils/loadingUtils'\nimport { isEntityRestricted, isTargetReadOnly } from './utils/restrictedEntity'\nimport { createPortal } from 'react-dom'\nimport { Button, Icon } from '@ynput/ayon-react-components'\nimport {\n ProjectTableAttribute,\n BuiltInFieldOptions,\n MainCountLabels,\n SummaryCellContentProps,\n} from './types'\nimport { EnumItem } from '@shared/api'\nimport { ToggleExpandAll, useProjectTableContext, parseRowId } from './context/ProjectTableContext'\nimport {\n checkColumnVisibility,\n ensureAtLeastOneVisibleColumn,\n getEntityViewierIds,\n getReadOnlyLists,\n getTableFieldOptions,\n isFilterError,\n getFilterErrorMessage,\n getEntitiesLabelFromScopes,\n extractQueryErrorMessage,\n} from './utils'\nimport { EntityUpdate } from './hooks/useUpdateTableData'\n\n// dnd-kit imports\nimport {\n DragOverlay,\n useDndContext,\n type UniqueIdentifier,\n // Removed: DndContext, KeyboardSensor, MouseSensor, TouchSensor, closestCenter, DragEndEvent, DragStartEvent, Active, Over, useSensor, useSensors\n} from '@dnd-kit/core'\n// import { restrictToVerticalAxis } from '@dnd-kit/modifiers'\nimport {\n SortableContext,\n verticalListSortingStrategy,\n useSortable,\n horizontalListSortingStrategy,\n} from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\n\nimport { useProjectContext, usePowerpack, setDetailsPanelTabForScope } from '@shared/context'\nimport { useLoadModule } from '@shared/hooks'\nimport { EDIT_TRIGGER_CLASS } from './widgets/CellWidget'\nimport { toast } from 'react-toastify'\nimport { EntityMoveData } from '@shared/context/MoveEntityContext'\nimport { upperFirst } from 'lodash'\nimport { ColumnsConfig } from './types/columnConfig'\n\ntype CellUpdate = (\n entity: Omit<EntityUpdate, 'id'>,\n config?: { selection?: string[] },\n) => Promise<void>\n\n// rendered while the powerpack summaries remote is unavailable (no license / old addon)\nconst SummaryCellContentFallback: FC<SummaryCellContentProps> = () => null\n\ndeclare module '@tanstack/react-table' {\n interface TableMeta<TData extends RowData> {\n options?: BuiltInFieldOptions\n readOnly?: ProjectTreeTableProps['readOnly']\n projectName?: string\n updateEntities?: CellUpdate\n toggleExpandAll?: ToggleExpandAll\n selection?: string[]\n columnsConfig?: ColumnsConfig\n loadingLinksEntityIds?: Set<string>\n }\n}\n\nconst matchesColumnId = (id: string, subscribers: string[]) => {\n return subscribers.some((sub) => {\n if (sub.includes('*')) {\n // Escape all regex special characters\n const escaped = sub.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n // Replace escaped '*' (\\*) with regex '.*'\n const pattern = '^' + escaped.replace(/\\\\\\*/g, '.*') + '$'\n const regex = new RegExp(pattern)\n return regex.test(id)\n }\n return id === sub\n })\n}\n\nexport interface ProjectTreeTableProps extends React.HTMLAttributes<HTMLDivElement> {\n scope: string\n sliceId: string\n onScrollBottom?: React.HTMLAttributes<HTMLDivElement>['onScroll']\n onOpenNew?: (type: 'folder' | 'task') => void\n readOnly?: (DefaultColumns | string)[]\n excludedColumns?: (DefaultColumns | string)[]\n excludedSorting?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n includeLinks?: boolean\n isLoading?: boolean\n isExpandable?: boolean // if true, show the expand/collapse icons\n enableSorting?: boolean\n clientSorting?: boolean\n sortableRows?: boolean\n onRowReorder?: (active: UniqueIdentifier, over: UniqueIdentifier | null) => void // Adjusted type for active/over if needed, or keep as Active, Over\n dndActiveId?: UniqueIdentifier | null // Added prop\n columnsConfig?: ColumnsConfig // Configure column behavior (display, styling, etc.)\n showColumnSummaries?: boolean // render the fixed summary footer row\n fieldStats?: FieldStats[] // primary-entity stats (tasks/versions) feeding the footer\n groupFieldStats?: FieldStats[] // group-entity stats (folders/products) for the 'all' row scope\n fieldStatsLoading?: boolean // footer stats still loading - click-through shimmer over values\n fieldStatsError?: any // error fetching footer stats\n mainCountLabels?: MainCountLabels // labels for the main cell dual count (defaults folders/tasks)\n onScrollBottomGroupBy?: (groupValue: string) => void // Handle scroll to bottom for grouped data\n contextMenuItems?: ContextMenuItemConstructors // Additional context menu items to merge with defaults\n onColumnVisibleChange?: (changes: Record<string, boolean>) => void\n onColumnVisibleChangeSubscribed?: string[]\n // called whenever the set of rows currently rendered in the viewport changes\n // (entity ids, not row ids - group suffixes are stripped)\n onVisibleRowsChange?: (entityIds: string[]) => void\n pt?: {\n container?: React.HTMLAttributes<HTMLDivElement>\n head?: Partial<TableHeadProps>\n }\n}\n\nexport const ProjectTreeTable = ({\n scope,\n sliceId,\n onScroll,\n onScrollBottom, // when the user scrolls to the bottom of the table, this callback is called\n onOpenNew,\n readOnly,\n excludedColumns,\n excludedSorting,\n extraColumns,\n includeLinks,\n isLoading: isLoadingProp,\n isExpandable,\n enableSorting = true,\n clientSorting = false,\n sortableRows = false,\n onRowReorder,\n dndActiveId, // Destructure new prop\n columnsConfig,\n showColumnSummaries = false,\n fieldStats,\n groupFieldStats,\n fieldStatsLoading,\n fieldStatsError,\n mainCountLabels,\n onScrollBottomGroupBy, // Destructure new prop for group-by load more\n contextMenuItems: propsContextMenuItems, // Additional context menu items from props\n onColumnVisibleChange,\n onColumnVisibleChangeSubscribed,\n onVisibleRowsChange,\n pt,\n ...props\n}: ProjectTreeTableProps) => {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n setAllColumns,\n sorting,\n sortingOnChange,\n columnPinningOnChange,\n columnSizingOnChange,\n defaultColumnVisibility,\n columnVisibilityOnChange,\n columnOrderOnChange,\n groupBy,\n columnSummaries,\n updateColumnSummary,\n columnSummaryScopes,\n updateColumnSummaryScope,\n columnSummaryFormats,\n updateColumnSummaryFormat,\n } = useColumnSettingsContext()\n const { productTypes, projectName, ...projectInfo } = useProjectContext()\n\n const {\n tableData,\n attribFields,\n entitiesMap,\n users,\n isLoading: isLoadingData,\n error,\n softError,\n softErrorAction,\n isInitialized,\n expanded,\n updateExpanded,\n toggleExpandAll,\n showHierarchy,\n isFlatFolderView,\n fetchNextPage,\n scopes, // or entityTypes\n getEntityById,\n onResetView,\n overrideGroupBy,\n loadingLinksEntityIds,\n queryFilters,\n } = useProjectTableContext()\n const isGrouping = !!groupBy || !!overrideGroupBy\n\n const filterError = isFilterError(error, queryFilters)\n const filterErrorMessage = getFilterErrorMessage(getEntitiesLabelFromScopes(scopes))\n\n // Parent (folder/product) summary scope only applies when those entities are\n // actually on screen: hierarchy view, grouping by a parent entity, or the\n // Products tab's product tree (product parent rows -> 'product' in scopes).\n const groupField = overrideGroupBy?.id ?? groupBy?.id\n const groupFieldId = Array.isArray(groupField) ? groupField[0] : groupField\n const parentScopeApplicable =\n showHierarchy ||\n ['hierarchy', 'folder', 'product'].includes(groupFieldId ?? '') ||\n scopes.includes('product')\n\n const { writableFields } = useProjectDataContext()\n\n const isLoading = isLoadingProp || isLoadingData\n\n const {\n statuses = [],\n folderTypes = [],\n taskTypes = [],\n tags = [],\n linkTypes = [],\n } = projectInfo || {}\n const options: BuiltInFieldOptions = useMemo(\n () =>\n getTableFieldOptions({\n users,\n statuses,\n folderTypes,\n taskTypes,\n productTypes,\n tags,\n scopes,\n }),\n [users, statuses, folderTypes, taskTypes, scopes, tags],\n )\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n // reference of how many rows are currently rendered in the table\n const tableRowsCountRef = useRef(0)\n\n // Selection context\n const { registerGrid } = useSelectionCellsContext()\n\n // generate loading attrib and rows\n const { loadingAttrib, loadingRows } = useMemo(() => {\n // count the number of children in tbody\n const tableRowsCount = tableContainerRef.current?.querySelectorAll('tbody tr').length || 0\n const loadingAttrib = generateDummyAttributes()\n const loadingRows = generateLoadingRows(\n showHierarchy && tableData.length > 0\n ? Math.min(tableRowsCount, 50)\n : groupBy\n ? Math.max(tableRowsCountRef.current, 50)\n : 50,\n )\n\n return { loadingAttrib, loadingRows }\n }, [])\n\n const showLoadingRows = !isInitialized || isLoading\n\n // Format readonly columns and attributes\n const { readOnlyColumns, readOnlyAttribs } = useMemo(\n () => getReadOnlyLists(attribFields, writableFields, readOnly),\n [attribFields, writableFields, readOnly],\n )\n\n const { selectedCells } = useSelectionCellsContext()\n const { updateEntities } = useCellEditing()\n\n const handleCellUpdate: CellUpdate = useCallback(\n async (entity, config) => {\n const { selection = [] } = config || {}\n const entitiesToUpdate: EntityUpdate[] = []\n if (!selection?.length) {\n entitiesToUpdate.push({ ...entity, id: entity.rowId })\n } else {\n // if includeSelection is true, update all the selected cells with the same columnId\n const { field, value, isAttrib } = entity\n for (const cellId of selectedCells) {\n const { colId, rowId } = parseCellId(cellId) || {}\n\n // ignore row selection column\n if (colId === ROW_SELECTION_COLUMN_ID) continue\n\n const entity = getEntityById(rowId || '')\n if (!entity) {\n console.warn(`Entity with ID ${rowId} not found for cell update.`)\n continue\n }\n\n if ((!colId?.includes('attrib_') || colId?.replace('attrib_', '') === field) && rowId) {\n entitiesToUpdate.push({\n field: field,\n rowId: rowId,\n id: entity.entityId,\n value: value,\n isAttrib: isAttrib,\n type: entity.entityType,\n })\n }\n }\n }\n\n if (!entitiesToUpdate.length) {\n console.warn('No entities to update, skipping updateEntities call.')\n toast.warn('No entities to update.')\n return\n }\n\n await updateEntities(entitiesToUpdate, true)\n },\n [updateEntities, getEntityById, selectedCells],\n )\n\n const columnAttribs = useMemo(\n () => (isInitialized ? attribFields : loadingAttrib),\n [attribFields, loadingAttrib, isInitialized],\n )\n\n const getNameLabelHeader = () => {\n if (scopes.includes('version')) return 'Product / Version'\n return scopes.map((s) => upperFirst(s)).join(' / ')\n }\n\n const columns = useMemo(() => {\n const baseColumns = buildTreeTableColumns({\n scopes,\n attribs: columnAttribs,\n links: linkTypes,\n includeLinks,\n showHierarchy,\n isFlatFolderView,\n options,\n extraColumns,\n excluded: excludedColumns,\n excludedSorting,\n groupBy,\n nameLabel: getNameLabelHeader(),\n })\n\n if (sortableRows && enableSorting) {\n return [\n {\n id: DRAG_HANDLE_COLUMN_ID,\n header: () => null,\n cell: () => null, // Content rendered by TableBodyRow\n size: 24,\n minSize: 24,\n maxSize: 24,\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n enablePinning: false, // Programmatically pinned\n },\n ...baseColumns,\n ]\n }\n return baseColumns\n }, [\n scopes,\n columnAttribs,\n showHierarchy,\n isFlatFolderView,\n isExpandable,\n options,\n linkTypes,\n includeLinks,\n extraColumns,\n excludedColumns,\n excludedSorting,\n sortableRows,\n enableSorting,\n groupBy,\n ])\n\n // Keep ColumnSettingsProvider's allColumns ref up to date\n useEffect(() => {\n const ids = columns.map((c) => c.id!).filter(Boolean)\n setAllColumns(ids)\n }, [columns, setAllColumns])\n\n const resolvedColumnVisibility = useMemo(() => {\n const merged = { ...columnVisibility }\n columns.forEach((col) => {\n // @ts-ignore\n const explicitVisible = col.visible\n if (col.id && merged[col.id] === undefined) {\n if (explicitVisible !== undefined) {\n merged[col.id] = explicitVisible\n } else {\n merged[col.id] = checkColumnVisibility({}, col.id, defaultColumnVisibility)\n }\n }\n })\n return ensureAtLeastOneVisibleColumn(merged, columns.map((c) => c.id as string).filter(Boolean))\n }, [columnVisibility, defaultColumnVisibility, columns])\n\n const table = useReactTable({\n data: showLoadingRows ? loadingRows : tableData,\n columns,\n defaultColumn: {\n minSize: 50,\n size: 150,\n },\n enableRowSelection: true, //enable row selection for all rows\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n getSubRows: (row) => row.subRows,\n getRowCanExpand: () => !!isExpandable || showHierarchy || isFlatFolderView || isGrouping,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // EXPANDABLE\n onExpandedChange: updateExpanded,\n // SORTING\n enableSorting,\n getSortedRowModel: getSortedRowModel(),\n sortDescFirst: false,\n manualSorting: !clientSorting,\n onSortingChange: sortingOnChange,\n columnResizeMode: 'onChange',\n onColumnPinningChange: columnPinningOnChange,\n onColumnSizingChange: columnSizingOnChange,\n onColumnVisibilityChange: columnVisibilityOnChange,\n onColumnOrderChange: columnOrderOnChange,\n // @ts-ignore\n filterFns,\n state: {\n expanded,\n sorting,\n columnPinning: (() => {\n const leftPins: string[] = []\n if (sortableRows) {\n leftPins.push(DRAG_HANDLE_COLUMN_ID)\n }\n leftPins.push(ROW_SELECTION_COLUMN_ID)\n\n // Add other unique pins from context, ensuring they are not the programmatic ones\n const contextLeftPins = (columnPinning.left || []).filter(\n (id) => id !== DRAG_HANDLE_COLUMN_ID && id !== ROW_SELECTION_COLUMN_ID,\n )\n leftPins.push(...contextLeftPins)\n // Remove duplicates just in case, though filter should handle it\n const uniqueLeftPins = [...new Set(leftPins)]\n\n return {\n left: uniqueLeftPins,\n right: columnPinning.right,\n }\n })(),\n columnSizing,\n columnVisibility: resolvedColumnVisibility,\n columnOrder,\n },\n meta: {\n projectName,\n options,\n readOnly: readOnlyColumns,\n updateEntities: handleCellUpdate,\n toggleExpandAll,\n loadMoreRows: fetchNextPage,\n selection: Array.from(selectedCells),\n columnsConfig,\n loadingLinksEntityIds,\n },\n })\n\n // TODO: when there is data (like in error) then we have infinite rendering\n\n const { rows } = table.getRowModel()\n\n // update the tableRowsCountRef with the current number of rows\n useEffect(() => {\n tableRowsCountRef.current = rows.length\n }, [rows.length])\n\n // Register grid structure with selection context when rows or columns change\n useEffect(() => {\n if (!rows.length) return\n const rowIds = rows.map((row) => row.id)\n const colIds = table.getAllLeafColumns().map((col) => col.id)\n const colIdsSortedByPinning = [...colIds].sort((a, b) => {\n if (ROW_SELECTION_COLUMN_ID === b) return 1\n const colA = columnPinning.left?.includes(a) ? 0 : 1\n const colB = columnPinning.left?.includes(b) ? 0 : 1\n return colA - colB\n })\n\n registerGrid(rowIds, colIdsSortedByPinning)\n }, [rows, table.getAllLeafColumns(), columnPinning, ROW_SELECTION_COLUMN_ID, registerGrid])\n\n const visibleColumns = table.getVisibleLeafColumns()\n\n // Use the column virtualization hook\n const { columnVirtualizer, virtualPaddingLeft, virtualPaddingRight } = useColumnVirtualization({\n visibleColumns,\n tableContainerRef,\n columnPinning,\n columnSizing,\n columnOrder,\n })\n\n // Track column visibility changes for subscribed columns\n const prevVisibleRef = useRef<Record<string, boolean>>({})\n const virtualItems = columnVirtualizer.getVirtualItems()\n\n // Subscribe to column visibility changes\n useEffect(() => {\n if (!onColumnVisibleChange || !onColumnVisibleChangeSubscribed?.length) return\n\n const visibleColumnIds = new Set(virtualItems.map((item) => visibleColumns[item.index]?.id))\n const changes: Record<string, boolean> = {}\n let hasChanged = false\n\n // We only care about columns that match the subscription patterns\n const subscribedColumns = table\n .getAllLeafColumns()\n .filter((col) => matchesColumnId(col.id, onColumnVisibleChangeSubscribed))\n\n subscribedColumns.forEach((col) => {\n const isVisible = visibleColumnIds.has(col.id)\n if (prevVisibleRef.current[col.id] !== isVisible) {\n changes[col.id] = isVisible\n hasChanged = true\n prevVisibleRef.current[col.id] = isVisible\n }\n })\n\n if (hasChanged) {\n onColumnVisibleChange(changes)\n }\n }, [virtualItems, onColumnVisibleChange, onColumnVisibleChangeSubscribed, visibleColumns, table])\n\n const columnSizeVars = useCustomColumnWidthVars(table, columnSizing)\n\n // Summary footer is a powerpack feature.\n // popup hidden for now: also expose `setPowerpackDialog, isLoading: isLicenseLoading`\n const { powerLicense } = usePowerpack()\n const [RemoteSummaryCellContent, { isLoaded: isFooterLoaded, isLoading: isFooterModuleLoading }] =\n useLoadModule<FC<SummaryCellContentProps>>({\n addon: 'powerpack',\n remote: 'views',\n module: 'SummaryCellContent',\n fallback: SummaryCellContentFallback,\n skip: !showColumnSummaries || !powerLicense,\n })\n // Free-user upsell row hidden for now (too many power-feature prompts); keep for later.\n // Render the row as soon as the module is loading or loaded (not on load failure),\n // so skeletons show during the load instead of the row popping in late.\n const summariesEnabled =\n showColumnSummaries &&\n powerLicense &&\n (isFooterLoaded || isFooterModuleLoading) &&\n !!rows.length\n // Full skeleton only while the remote module itself is loading (no cell to\n // render yet). Stats loading is handled per-cell so the footer stays clickable.\n const footerModuleLoading = isFooterModuleLoading || !isFooterLoaded\n\n // Unique selected entities for the footer's \"N selected\" count, deduped by\n // entityId (group headers / load-more rows excluded). Marked cells win: when\n // any cell is selected we count only those and ignore checkbox row-selection;\n // whole-row selection counts on its own.\n const selectedRowCount = useMemo(() => {\n const cellEntities = new Set<string>()\n const rowEntities = new Set<string>()\n for (const cellId of selectedCells) {\n const { rowId, colId } = parseCellId(cellId) || {}\n if (!rowId || isGroupId(rowId)) continue\n\n const id = getEntityById(rowId)?.entityId\n if (!id) continue\n if (colId === ROW_SELECTION_COLUMN_ID) rowEntities.add(id)\n else cellEntities.add(id)\n }\n return cellEntities.size || rowEntities.size\n }, [selectedCells, getEntityById])\n // only show the upsell once the license check resolves, so licensed users\n // don't see the bolt flash before the addon loads\n // const showSummaryPowerFeature = !isLicenseLoading && !powerLicense\n\n // Calculate dynamic row height based on user setting from Customize panel\n const { getRowHeight, defaultRowHeight } = useDynamicRowHeight()\n\n const attribByField = useMemo(() => {\n return attribFields.reduce((acc: Record<string, EnumItem[]>, attrib) => {\n if (attrib.data?.enum?.length) {\n acc[attrib.name] = attrib.data?.enum\n }\n return acc\n }, {})\n }, [attribFields])\n\n const rowOrderIds = useMemo(() => tableData.map((row) => row.id), [tableData])\n // Get column IDs for drag-and-drop from context columnOrder (exclude non-draggable columns)\n // This ensures SortableContext items match what the drag handlers use\n const columnOrderIds = useMemo(() => {\n return columnOrder.filter(\n (id) => id !== DRAG_HANDLE_COLUMN_ID && id !== ROW_SELECTION_COLUMN_ID,\n )\n }, [columnOrder])\n\n const draggedRowData = useMemo(() => {\n if (!dndActiveId || !sortableRows) return null // Use dndActiveId\n return tableData.find((r) => r.id === dndActiveId) // Use dndActiveId\n }, [dndActiveId, tableData, sortableRows])\n\n const combinedScrollHandler: UIEventHandler<HTMLDivElement> = useCallback(\n (e) => {\n // Call the original onScroll if provided\n onScroll?.(e)\n\n if (onScrollBottom) {\n const containerRefElement = e.currentTarget\n // When not grouping (or when hierarchy+slicer relies on tasksList), we trigger standard fetchNextPage\n // The table itself handles showing tasks.\n if (containerRefElement && !groupBy && (!showHierarchy || !isFlatFolderView)) {\n const { scrollHeight, scrollTop, clientHeight } = containerRefElement\n //once the user has scrolled within 500px of the bottom of the table, fetch more data if we can\n if (scrollHeight - scrollTop - clientHeight < 500 && !isLoading) {\n onScrollBottom(e)\n }\n }\n }\n\n // Handle scroll-to-bottom for grouped data\n if (onScrollBottomGroupBy && groupBy) {\n const containerRefElement = e.currentTarget\n // look for a load more button\n const loadMoreButton = containerRefElement?.querySelector('.load-more')\n // get load more button id\n const loadMoreButtonId = loadMoreButton?.getAttribute('id')\n const groupValue = loadMoreButtonId?.split('-')[2] // assuming the id is in the format 'load-more-groupValue'\n if (groupValue) {\n onScrollBottomGroupBy(groupValue)\n }\n }\n },\n [onScroll, onScrollBottom, onScrollBottomGroupBy, showHierarchy, groupBy, isLoading],\n )\n\n // Get move entity functions for the dialog\n const {\n isEntityPickerOpen,\n handleMoveSubmit,\n closeMoveDialog,\n movingEntities,\n handleMoveToRoot,\n getDisabledFolderIds,\n getDisabledMessage,\n } = useMoveEntities({\n projectName,\n })\n\n const handleMoveSubmitWithExpand = (selection: string[]) => {\n handleMoveSubmit(selection)\n const folderIdToExpand = selection[0]\n\n updateExpanded((prevExpanded: ExpandedState) => {\n if (typeof prevExpanded === 'boolean') {\n if (prevExpanded) {\n return prevExpanded\n }\n return { [folderIdToExpand]: true }\n }\n\n if (prevExpanded[folderIdToExpand]) {\n return prevExpanded\n }\n\n return {\n ...prevExpanded,\n [folderIdToExpand]: true,\n }\n })\n }\n\n const tableUiContent = (\n <ClipboardProvider\n entitiesMap={entitiesMap}\n columnEnums={{ ...options, ...attribByField }}\n columnReadOnly={readOnlyAttribs}\n visibleColumns={visibleColumns}\n >\n <Styled.TableWrapper {...props}>\n <Styled.TableContainer\n ref={tableContainerRef}\n style={{ height: '100%', padding: 0 }}\n onScroll={combinedScrollHandler}\n {...pt?.container}\n data-column-dnd-container\n className={clsx(\n 'table-container',\n {\n resizing: table.getState().columnSizingInfo.isResizingColumn,\n },\n pt?.container?.className,\n )}\n >\n <table\n style={{\n display: 'grid',\n borderCollapse: 'collapse',\n userSelect: 'none',\n ...columnSizeVars,\n width: table.getTotalSize(),\n cursor: table.getState().columnSizingInfo.isResizingColumn ? 'col-resize' : undefined,\n // stretch tbody to the container so the column dividers fill the empty\n // space below the rows; also pins the summary footer to the bottom\n minHeight: '100%',\n gridTemplateRows: 'auto 1fr auto',\n }}\n >\n <TableHead\n columnVirtualizer={columnVirtualizer}\n table={table}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n columnOrderIds={columnOrderIds}\n {...pt?.head}\n />\n <TableBody\n columnVirtualizer={columnVirtualizer}\n table={table}\n tableContainerRef={tableContainerRef}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n showHierarchy={showHierarchy}\n attribs={attribFields}\n onOpenNew={onOpenNew}\n rowOrderIds={rowOrderIds}\n sortableRows={sortableRows}\n error={error}\n isFilterError={filterError}\n filterErrorMessage={filterErrorMessage}\n isLoading={isLoading}\n isGrouping={isGrouping}\n getRowHeight={getRowHeight}\n defaultRowHeight={defaultRowHeight}\n onResetView={onResetView}\n contextMenuItems={propsContextMenuItems}\n onVisibleRowsChange={onVisibleRowsChange}\n />\n {summariesEnabled && !error && (\n <TableFooterRow\n columnVirtualizer={columnVirtualizer}\n table={table}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={footerModuleLoading}\n statsLoading={!!fieldStatsLoading}\n error={fieldStatsError}\n // Free-user upsell hidden for now; keep for later:\n // onClick={showSummaryPowerFeature ? () => setPowerpackDialog('columnSummaries') : undefined}\n renderCellContent={(columnId) => (\n <RemoteSummaryCellContent\n columnId={columnId}\n attribs={attribFields}\n fieldStats={fieldStats}\n groupFieldStats={groupFieldStats}\n calc={columnSummaries[columnId]}\n onCalcChange={(calc) => updateColumnSummary(columnId, calc)}\n format={columnSummaryFormats[columnId]}\n onFormatChange={(format) => updateColumnSummaryFormat(columnId, format)}\n scope={columnSummaryScopes[columnId]}\n onScopeChange={(scope) => updateColumnSummaryScope(columnId, scope)}\n mainCountLabels={mainCountLabels}\n fieldOptions={options}\n parentScopeApplicable={parentScopeApplicable}\n selectedCount={selectedRowCount}\n />\n )}\n // Power feature cell for community users (hidden for now), shows a bolt hint in the name column:\n // renderCellContent={(columnId) =>\n // showSummaryPowerFeature && columnId === 'name' ? (\n // <Styled.SummaryPowerFeature>\n // <Icon icon=\"bolt\" filled />\n // Summaries\n // </Styled.SummaryPowerFeature>\n // ) : null\n // }\n />\n )}\n </table>\n </Styled.TableContainer>\n {softError && (\n <Styled.SoftErrorBanner>\n <InfoMessage variant=\"warning\" message={softError} action={softErrorAction} />\n </Styled.SoftErrorBanner>\n )}\n </Styled.TableWrapper>\n {/* Render EntityPickerDialog alongside table content */}\n {isEntityPickerOpen &&\n projectName &&\n movingEntities?.entities &&\n movingEntities.entities.length > 0 && (\n <EntityPickerDialog\n projectName={projectName}\n entityType=\"folder\"\n onSubmit={handleMoveSubmitWithExpand}\n onClose={closeMoveDialog}\n showMoveToRoot={movingEntities.entities.every(\n (entity: EntityMoveData) => entity.entityType === 'folder',\n )}\n onMoveToRoot={handleMoveToRoot}\n disabledIds={getDisabledFolderIds()}\n getDisabledMessage={getDisabledMessage}\n />\n )}\n </ClipboardProvider>\n )\n\n // Render DragOverlay if sortableRows and dndActiveId is present\n const dragOverlayPortal =\n sortableRows &&\n dndActiveId &&\n createPortal(\n <DragOverlay dropAnimation={null}>\n {draggedRowData\n ? (() => {\n const overlayRowInstance = table.getRowModel().rows.find((r) => r.id === dndActiveId)\n if (!overlayRowInstance) return null\n\n const tableWidth = table.getTotalSize()\n\n return (\n <table\n style={{\n width: tableWidth,\n borderCollapse: 'collapse',\n backgroundColor: 'var(--md-sys-color-surface-container-high)',\n boxShadow: '0 0 10px rgba(0,0,0,0.2)',\n ...columnSizeVars,\n }}\n >\n <tbody>\n <Styled.TR style={{ display: 'flex', userSelect: 'none' }}>\n {virtualPaddingLeft ? (\n <td style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {columnVirtualizer.getVirtualItems().map((vc) => {\n const cell = overlayRowInstance.getVisibleCells()[vc.index]\n if (!cell) return null\n\n const cellStyleBase: CSSProperties = {\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(cell.column.id),\n display: 'flex',\n alignItems: 'center',\n height: defaultRowHeight,\n }\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TD\n key={`overlay-drag-${cell.id}`}\n style={{ ...cellStyleBase, justifyContent: 'center' }}\n className={clsx(cell.column.id)}\n >\n <Icon icon=\"drag_handle\" /> {/* Static icon */}\n </Styled.TD>\n )\n }\n return (\n <TD\n cell={cell}\n cellId={`overlay-${getCellId(overlayRowInstance.id, cell.column.id)}`}\n rowId={overlayRowInstance.id}\n key={`overlay-cell-${cell.id}`}\n showHierarchy={showHierarchy}\n />\n )\n })}\n {virtualPaddingRight ? (\n <td style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.TR>\n </tbody>\n </table>\n )\n })()\n : null}\n </DragOverlay>,\n document.body,\n )\n\n if (sortableRows) {\n return (\n <>\n {tableUiContent}\n {dragOverlayPortal}\n <ColumnDragOverlay table={table} />\n </>\n )\n } else {\n return (\n <>\n {tableUiContent}\n <ColumnDragOverlay table={table} />\n </>\n )\n }\n}\n\n/**\n * Isolated component for column drag overlay.\n * This prevents the entire table from re-rendering on every drag frame.\n */\ninterface ColumnDragOverlayProps {\n table: Table<TableRow>\n}\n\nconst ColumnDragOverlay = ({ table }: ColumnDragOverlayProps) => {\n const { active } = useDndContext()\n\n // Only process if dragging a column\n const isColumnDrag = active?.data?.current?.type === 'column'\n const activeColumnId = isColumnDrag ? (active?.id as string) : null\n\n const draggedColumnHeader = useMemo(() => {\n if (!activeColumnId) return null\n return table.getHeaderGroups()[0]?.headers.find((h) => h.id === activeColumnId) || null\n }, [activeColumnId, table])\n\n if (!activeColumnId || !draggedColumnHeader) return null\n\n return createPortal(\n <DragOverlay dropAnimation={null}>\n <Styled.HeaderCell\n style={{\n width: draggedColumnHeader.column.getSize(),\n backgroundColor: 'var(--md-sys-color-surface-container-high)',\n boxShadow: '0 0 10px rgba(0,0,0,0.2)',\n display: 'flex',\n alignItems: 'center',\n minHeight: 34,\n }}\n >\n <Styled.TableCellContent className=\"bold header\">\n {flexRender(\n draggedColumnHeader.column.columnDef.header,\n draggedColumnHeader.getContext(),\n )}\n </Styled.TableCellContent>\n </Styled.HeaderCell>\n </DragOverlay>,\n document.body,\n )\n}\n\ninterface TableHeadProps extends React.HTMLAttributes<HTMLTableSectionElement> {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n columnOrderIds: string[]\n}\n\nconst TableHead = ({\n columnVirtualizer,\n table,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n columnOrderIds,\n ...props\n}: TableHeadProps) => {\n return (\n <Styled.TableHeader {...props}>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableHeadRow\n key={headerGroup.id}\n columnVirtualizer={columnVirtualizer}\n headerGroup={headerGroup}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n columnOrderIds={columnOrderIds}\n />\n ))}\n </Styled.TableHeader>\n )\n}\n\ninterface TableHeadRowProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n headerGroup: HeaderGroup<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n columnOrderIds: string[]\n}\n\nconst TableHeadRow = ({\n columnVirtualizer,\n headerGroup,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n columnOrderIds,\n}: TableHeadRowProps) => {\n const virtualColumns = columnVirtualizer.getVirtualItems()\n const { active } = useDndContext()\n const isColumnDrag = active?.data?.current?.type === 'column'\n const isDraggedColumnPinned = isColumnDrag && (active?.data?.current?.isPinned ?? false)\n\n return (\n <Styled.ColumnHeader key={headerGroup.id} style={{ display: 'flex' }}>\n {virtualPaddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n <SortableContext items={columnOrderIds} strategy={horizontalListSortingStrategy}>\n {virtualColumns.map((virtualColumn) => {\n const header = headerGroup.headers[virtualColumn.index]\n // Exclude certain columns from being draggable\n const isDraggable =\n header.id !== DRAG_HANDLE_COLUMN_ID && header.id !== ROW_SELECTION_COLUMN_ID\n\n return (\n <TableHeadCell\n key={header.id}\n header={header}\n isLoading={isLoading}\n isReadOnly={readOnlyColumns?.includes(header.id)}\n canSort={header.column.getCanSort()}\n canFilter={header.column.getCanFilter()}\n canHide={header.column.getCanHide()}\n canPin={header.column.getCanPin()}\n canResize={header.column.getCanResize()}\n sortableRows={sortableRows}\n isDraggable={isDraggable}\n isColumnDrag={isColumnDrag}\n isDraggedColumnPinned={isDraggedColumnPinned}\n />\n )\n })}\n </SortableContext>\n {virtualPaddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.ColumnHeader>\n )\n}\n\ninterface TableHeadCellProps {\n header: Header<TableRow, unknown>\n isLoading: boolean\n canSort?: boolean\n canFilter?: boolean\n canHide?: boolean\n canPin?: boolean\n canResize?: boolean\n isReadOnly?: boolean\n sortableRows?: boolean\n isDraggable?: boolean\n isColumnDrag?: boolean\n isDraggedColumnPinned?: boolean\n}\n\nconst TableHeadCell = ({\n header,\n isLoading,\n canFilter,\n canHide,\n canSort,\n canPin,\n canResize,\n isReadOnly,\n sortableRows,\n isDraggable = true,\n isColumnDrag,\n isDraggedColumnPinned,\n}: TableHeadCellProps) => {\n const { column } = header\n const sorting = column.getIsSorted()\n const menuId = `column-header-menu-${column.id}`\n const { menuOpen } = useMenuContext()\n const isOpen = menuOpen === menuId\n const { columnPinning, sorting: sortingState, updateSorting } = useColumnSettingsContext()\n\n // toggle sort via the same direct updateSorting call the Customize panel uses;\n // routing through TanStack's onSortingChange did not apply under manualSorting.\n const handleToggleSort = () => {\n const current = sortingState?.find((s) => s.id === column.id)\n const next = !current\n ? [{ id: column.id, desc: false }]\n : !current.desc\n ? [{ id: column.id, desc: true }]\n : []\n updateSorting(next)\n }\n\n // Check if this column is pinned\n const isThisColumnPinned = columnPinning.left?.includes(column.id) || false\n\n // useSortable for column drag-and-drop\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: column.id,\n data: { type: 'column', isPinned: isThisColumnPinned },\n disabled: !isDraggable,\n })\n\n const isDraggingInSameSection = isColumnDrag && isDraggedColumnPinned === isThisColumnPinned\n\n // Build drag styles\n const getDragStyle = (): CSSProperties => {\n if (isDragging) {\n return {\n transform: CSS.Translate.toString(transform!),\n transition,\n visibility: 'hidden',\n zIndex: 200,\n }\n }\n if (isDraggingInSameSection && transform) {\n // For pinned columns, temporarily remove sticky positioning during drag animation\n const pinnedOverride = isThisColumnPinned\n ? { position: 'relative' as const, left: 'auto' }\n : {}\n return { transform: CSS.Translate.toString(transform), transition, ...pinnedOverride }\n }\n return {}\n }\n\n // Prevent drag when clicking action buttons\n const preventDragFromActions = {\n onPointerDown: (e: React.PointerEvent) => e.stopPropagation(),\n onMouseDown: (e: React.MouseEvent) => e.stopPropagation(),\n }\n\n return (\n <Styled.HeaderCell\n ref={setNodeRef}\n className={clsx(header.id, 'shimmer-dark', {\n loading: isLoading,\n 'last-pinned-left': column.getIsPinned() === 'left' && column.getIsLastColumn('left'),\n resizing: column.getIsResizing(),\n dragging: isDragging,\n draggable: isDraggable,\n })}\n key={header.id}\n style={{\n ...getCommonPinningStyles(column),\n width: getColumnWidth(column.id),\n ...getDragStyle(),\n }}\n >\n {header.isPlaceholder ? null : (\n <Styled.TableCellContent\n className={clsx('bold', 'header')}\n {...(isDraggable ? { ...attributes, ...listeners } : {})}\n >\n {flexRender(column.columnDef.header, header.getContext())}\n {isReadOnly && (\n <Icon icon=\"lock\" data-tooltip={'You only have permission to read this column.'} />\n )}\n\n <Styled.HeaderButtons className=\"actions\" $isOpen={isOpen} {...preventDragFromActions}>\n {/* Column drag handle */}\n\n {(canHide || canPin || canSort) && (\n <ColumnHeaderMenu\n className=\"header-menu\"\n header={header}\n canHide={canHide}\n canPin={canPin}\n canSort={canSort}\n isResizing={column.getIsResizing()}\n menuId={menuId}\n isOpen={isOpen}\n />\n )}\n\n {/* COLUMN SORTING */}\n {canSort && (\n <HeaderActionButton\n icon=\"sort\"\n className={clsx('sort-button', { visible: sorting })}\n style={{\n transform: sorting === 'desc' ? 'rotate(180deg) scaleX(-1)' : 'none',\n }}\n onClick={handleToggleSort}\n selected={!!column.getIsSorted()}\n />\n )}\n\n {/* COLUMN PINNING - only show on pinned columns (exclude selection column) */}\n {column.getIsPinned() &&\n column.id !== ROW_SELECTION_COLUMN_ID &&\n column.id !== DRAG_HANDLE_COLUMN_ID && (\n <HeaderActionButton\n icon=\"push_pin\"\n className={clsx('pin-button', 'visible')}\n onClick={() => column.pin(false)}\n selected\n />\n )}\n </Styled.HeaderButtons>\n {canResize && (\n <Styled.ResizedHandler\n {...{\n onDoubleClick: () => column.resetSize(),\n onMouseDown: (e: React.MouseEvent) => {\n e.stopPropagation()\n header.getResizeHandler()(e)\n },\n onTouchStart: header.getResizeHandler(),\n onPointerDown: (e: React.PointerEvent) => e.stopPropagation(),\n className: clsx('resize-handle', {\n resizing: column.getIsResizing(),\n }),\n }}\n />\n )}\n </Styled.TableCellContent>\n )}\n </Styled.HeaderCell>\n )\n}\n\ninterface TableBodyProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n tableContainerRef: React.RefObject<HTMLDivElement>\n showHierarchy: boolean\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n attribs: ProjectTableAttribute[]\n onOpenNew?: (type: 'folder' | 'task') => void\n rowOrderIds: UniqueIdentifier[]\n sortableRows: boolean\n error?: string\n isFilterError?: boolean\n filterErrorMessage?: string\n isLoading: boolean\n isGrouping: boolean\n getRowHeight: (row: TableRow) => number\n defaultRowHeight: number\n onResetView?: () => void\n contextMenuItems?: ContextMenuItemConstructors\n onVisibleRowsChange?: (entityIds: string[]) => void\n}\n\nconst TableBody = ({\n columnVirtualizer,\n table,\n tableContainerRef,\n showHierarchy,\n virtualPaddingLeft,\n virtualPaddingRight,\n attribs,\n onOpenNew,\n rowOrderIds,\n sortableRows,\n error,\n isFilterError: filterError,\n filterErrorMessage,\n isLoading,\n isGrouping,\n getRowHeight,\n defaultRowHeight,\n onResetView,\n contextMenuItems,\n onVisibleRowsChange,\n}: TableBodyProps) => {\n const headerLabels = useMemo(() => {\n const allColumns = table.getAllColumns()\n const headers = allColumns\n .map((col) => {\n const headerId = col.id\n const header = col.columnDef.header\n if (typeof header === 'string' || typeof header === 'number') {\n return { label: header, id: headerId }\n }\n return null\n })\n .filter(Boolean)\n\n return headers as HeaderLabel[]\n }, [table.getAllColumns()])\n\n const cellContextMenuHook = useCellContextMenu({\n attribs,\n onOpenNew,\n headerLabels,\n contextMenuItems,\n })\n\n const handleTableBodyContextMenu = cellContextMenuHook.handleTableBodyContextMenu\n\n const { rows } = table.getRowModel()\n\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n estimateSize: (index) => {\n // Calculate dynamic row height based on specific row data\n const row = rows[index]\n return row ? getRowHeight(row.original) : defaultRowHeight\n },\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement:\n typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n const virtualRows = rowVirtualizer.getVirtualItems()\n\n // Notify the consumer whenever the set of rendered (visible) entity ids changes,\n // so data fetching can be scoped to what's actually on screen. Only fires when\n // the resolved id list actually differs, to avoid spamming updates on every\n // render (rowVirtualizer.getVirtualItems() returns a new array each call).\n const prevVisibleRowIdsRef = useRef<string>('')\n useEffect(() => {\n if (!onVisibleRowsChange) return\n\n const ids = virtualRows\n .map((virtualRow) => rows[virtualRow.index] && parseRowId(rows[virtualRow.index].id))\n .filter(Boolean) as string[]\n const uniqueIds = Array.from(new Set(ids))\n const key = uniqueIds.join(',')\n\n if (key === prevVisibleRowIdsRef.current) return\n prevVisibleRowIdsRef.current = key\n\n onVisibleRowsChange(uniqueIds)\n }, [virtualRows, rows, onVisibleRowsChange])\n\n // Memoize the measureElement callback\n const measureRowElement = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n useKeyboardNavigation()\n\n // vertical column lines painted behind the rows so they extend into the empty\n // space between the last row and the summary footer\n const visibleLeafColumns = table.getVisibleLeafColumns()\n const columnDividerLefts = useMemo(() => {\n const lefts: string[] = []\n const sizeVars: string[] = []\n for (let i = 0; i < visibleLeafColumns.length - 1; i++) {\n const column = visibleLeafColumns[i]\n // selection column is forced to 20px in CSS while its size var reports defaultColumn.minSize\n sizeVars.push(column.id === ROW_SELECTION_COLUMN_ID ? '20' : `var(--col-${column.id}-size)`)\n lefts.push(`calc((${sizeVars.join(' + ')}) * 1px)`)\n }\n return lefts\n }, [visibleLeafColumns])\n\n const tbodyContent = (\n <tbody\n style={{\n minHeight: `${rowVirtualizer.getTotalSize()}px`,\n position: 'relative',\n display: 'grid',\n }}\n onContextMenu={handleTableBodyContextMenu}\n >\n <Styled.ColumnDividers aria-hidden>\n {columnDividerLefts.map((left, i) => (\n <div key={i} style={{ left }} />\n ))}\n </Styled.ColumnDividers>\n {virtualRows.map((virtualRow) => {\n const row = rows[virtualRow.index] as Row<TableRow>\n // Add a check for row existence to prevent potential errors if data is out of sync\n if (!row) {\n console.warn('Virtualized row data not found for index:', virtualRow.index)\n return null\n }\n return (\n <TableBodyRow\n key={row.id} // stable per-row identity; dnd-kit matches on row.id via SortableContext, not this key\n row={row}\n showHierarchy={showHierarchy}\n visibleCells={row.getVisibleCells()}\n virtualColumns={columnVirtualizer.getVirtualItems()}\n paddingLeft={virtualPaddingLeft}\n paddingRight={virtualPaddingRight}\n rowRef={measureRowElement}\n dataIndex={virtualRow.index}\n offsetTop={virtualRow.start}\n sortableRows={sortableRows}\n isGrouping={isGrouping}\n rowHeight={getRowHeight(row.original)}\n />\n )\n })}\n </tbody>\n )\n\n if (error) {\n return (\n tableContainerRef.current &&\n createPortal(\n <Styled.AnimatedEmptyPlaceholder>\n {filterError ? (\n <EmptyPlaceholder message={filterErrorMessage} icon=\"filter_alt_off\">\n {onResetView && (\n <Button\n variant=\"filled\"\n label=\"Reset filters\"\n icon=\"replay\"\n onClick={onResetView}\n />\n )}\n <FilterErrorActions errorMessage={extractQueryErrorMessage(error)} />\n </EmptyPlaceholder>\n ) : (\n <EmptyPlaceholder message=\"No items found\" error={error}>\n {onResetView && (\n <Button\n variant=\"filled\"\n label=\"Reset filters\"\n icon=\"replay\"\n onClick={onResetView}\n />\n )}\n </EmptyPlaceholder>\n )}\n </Styled.AnimatedEmptyPlaceholder>,\n tableContainerRef.current,\n )\n )\n }\n\n if (!rows.length && !isLoading) {\n return (\n tableContainerRef.current &&\n createPortal(\n <Styled.AnimatedEmptyPlaceholder>\n <EmptyPlaceholder message=\"No items found\">\n {onResetView && (\n <Button variant=\"filled\" label=\"Reset filters\" icon=\"replay\" onClick={onResetView} />\n )}\n </EmptyPlaceholder>\n </Styled.AnimatedEmptyPlaceholder>,\n tableContainerRef.current,\n )\n )\n }\n\n if (sortableRows) {\n return (\n <SortableContext items={rowOrderIds} strategy={verticalListSortingStrategy}>\n {tbodyContent}\n </SortableContext>\n )\n } else {\n return tbodyContent\n }\n}\n\ninterface TableBodyRowProps {\n row: Row<TableRow>\n showHierarchy: boolean\n visibleCells: Cell<TableRow, unknown>[]\n virtualColumns: VirtualItem[]\n paddingLeft: number | undefined\n paddingRight: number | undefined\n rowRef: (node: HTMLTableRowElement | null) => void\n dataIndex: number\n offsetTop: number\n sortableRows: boolean\n isGrouping: boolean\n rowHeight: number\n}\n\nconst TableBodyRow = ({\n row,\n showHierarchy,\n visibleCells,\n virtualColumns,\n paddingLeft,\n paddingRight,\n rowRef,\n dataIndex,\n offsetTop,\n sortableRows,\n isGrouping = false,\n rowHeight,\n}: TableBodyRowProps) => {\n const sortable = sortableRows ? useSortable({ id: row.id }) : null\n\n // Track actual DOM element node\n const rowHtmlElementRef = useRef<HTMLTableRowElement | null>(null)\n\n const combinedRef = useCallback(\n (node: HTMLTableRowElement | null) => {\n rowHtmlElementRef.current = node\n if (sortable) {\n sortable.setNodeRef(node)\n }\n // rowRef for virtualizer measurement\n // only measure if not actively being transformed by dnd-kit\n if (!(sortable && sortable.isDragging)) {\n rowRef(node)\n }\n },\n [sortable, rowRef],\n )\n\n // Attempt to combine dnd-kit transform with virtualizer's offsetTop\n const style: CSSProperties = {\n position: 'absolute', // Use absolute positioning for virtualized items\n top: offsetTop, // Position based on virtualizer's calculation (virtualRow.start)\n left: 0, // Span full width of the relative parent (tbody)\n right: 0, // Span full width\n height: rowHeight, // Use dynamic row height\n zIndex: sortable && sortable.isDragging ? 0 : 1, // Ensure dragged item is above others\n display: 'flex', // Styled.TR is display:flex\n transform:\n sortable && sortable.transform ? CSS.Transform.toString(sortable.transform) : undefined, // Apply dnd-kit's transform for drag effect\n transition: sortable && sortable.transition ? sortable.transition : undefined,\n visibility: sortable && sortable.isDragging ? 'hidden' : 'visible', // Hide the row being dragged\n }\n\n return (\n <Styled.TR\n ref={combinedRef}\n data-index={dataIndex} //needed for dynamic row height measurement\n style={style}\n className={clsx({ 'group-row': row.original.group })}\n >\n {paddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingLeft }} />\n ) : null}\n {virtualColumns.map((vc) => {\n const cell = visibleCells[vc.index]\n if (!cell) return null // Should not happen in normal circumstances\n\n const cellId = getCellId(row.id, cell.column.id)\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TD\n key={cell.id}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(cell.column.id),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: rowHeight,\n pointerEvents: 'all',\n cursor: 'grab',\n }}\n className={clsx(cell.column.id, {\n 'last-pinned-left':\n cell.column.getIsPinned() === 'left' && cell.column.getIsLastColumn('left'),\n })}\n onMouseDown={(e) => e.stopPropagation()} // Prevent selection interference\n onMouseOver={(e) => e.stopPropagation()}\n onDoubleClick={(e) => e.stopPropagation()}\n onContextMenu={(e) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n <RowDragHandleCellContent\n attributes={sortable?.attributes}\n listeners={sortable?.listeners}\n />\n </Styled.TD>\n )\n }\n return (\n <TD\n cell={cell}\n cellId={cellId}\n rowId={row.id}\n key={cell.id}\n showHierarchy={showHierarchy}\n sortableRows={sortableRows}\n rowHeight={rowHeight}\n />\n )\n })}\n\n {paddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingRight }} />\n ) : null}\n </Styled.TR>\n )\n}\n\ninterface TableCellProps {\n cell: Cell<TableRow, unknown>\n cellId: string\n rowId: string\n className?: string\n showHierarchy: boolean\n sortableRows?: boolean\n rowHeight?: number\n}\n\nconst TD = ({\n cell,\n rowId,\n cellId,\n className,\n showHierarchy,\n sortableRows,\n rowHeight,\n ...props\n}: TableCellProps) => {\n const { getEntityById, onOpenPlayer } = useProjectTableContext()\n\n const {\n isCellSelected,\n isCellFocused,\n startSelection,\n extendSelection,\n endSelection,\n selectCell,\n focusCell,\n getCellBorderClasses,\n clearSelection,\n selectedCells,\n setSelectedCells,\n setAnchorCell,\n setFocusedCellId,\n } = useSelectionCellsContext()\n\n const { isRowSelected } = useSelectedRowsContext()\n\n const { isEditing, setEditingCellId, editingCellId } = useCellEditing()\n\n const borderClasses = getCellBorderClasses(cellId)\n\n const isPinned = cell.column.getIsPinned()\n const isLastLeftPinnedColumn = isPinned === 'left' && cell.column.getIsLastColumn('left')\n const isRowSelectionColumn = cell.column.id === ROW_SELECTION_COLUMN_ID\n const isGroup = cell.row.original.entityType === 'group'\n const isMultipleSelected = selectedCells.size > 1\n\n return (\n <Styled.TD\n {...props}\n tabIndex={0}\n $isLastPinned={isLastLeftPinnedColumn} // is this column the last pinned column? Custom styling for borders.\n className={clsx(\n cell.column.id,\n {\n selected: isCellSelected(cellId),\n focused: isCellFocused(cellId),\n editing: isEditing(cellId),\n 'last-pinned-left': isLastLeftPinnedColumn,\n 'selected-row': isRowSelected(rowId),\n expandable:\n !!cell.row.originalSubRows && isEntityExpandable(cell.row.original.entityType),\n 'multiple-selected': isMultipleSelected,\n },\n className,\n ...borderClasses,\n )}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(cell.column.id),\n height: rowHeight,\n }}\n onMouseDown={(e) => {\n // Only process left clicks (button 0), ignore right clicks\n if (e.button !== 0) return\n\n const target = e.target as HTMLElement\n\n // check we are not clicking on expander\n if (target.closest('.expander')) return\n\n // check we are not clicking in a dropdown\n if (target.closest('.options')) return\n\n e.currentTarget.focus()\n\n // Handle double-click via e.detail (browser's native click count).\n // We handle it here in mousedown instead of relying on the dblclick event,\n // because the 1st mousedown triggers React state updates that can replace\n // the DOM node, preventing the native dblclick event from firing.\n if (e.detail === 2) {\n // comments cells are read-only but their double-click opens the details panel, so don't block them here\n const isReadOnly = isTargetReadOnly(e) && cell.column.id !== 'comments'\n if (isReadOnly || isEntityRestricted(cell.row.original.entityType) || isGroup) {\n e.preventDefault()\n return\n }\n\n // name column: select row to open details panel\n // comments column: same — comments are read and written in the details panel feed\n if (['name', 'comments'].includes(cell.column.id) && !target.closest('.expander')) {\n // all ProjectTreeTable pages render their details panel under the 'overview' scope\n if (cell.column.id === 'comments') setDetailsPanelTabForScope('overview', 'feed')\n const rowSelectionCellId = getCellId(cell.row.id, ROW_SELECTION_COLUMN_ID)\n const additive = e.metaKey || e.ctrlKey\n const position = parseCellId(rowSelectionCellId)\n\n setSelectedCells((prev) => {\n const newSelection = additive ? new Set(prev) : new Set<CellId>()\n newSelection.add(rowSelectionCellId)\n newSelection.add(cellId)\n return newSelection\n })\n if (position) {\n setAnchorCell(position)\n setFocusedCellId(rowSelectionCellId)\n }\n }\n // thumbnail: open viewer\n else if (cell.column.id === 'thumbnail') {\n if (onOpenPlayer) {\n const entity = getEntityById(cell.row.original.entityId || cell.row.id)\n if (entity) {\n const targetIds = getEntityViewierIds(entity)\n onOpenPlayer(targetIds, { quickView: true })\n }\n }\n }\n // other cells: start editing\n else {\n setEditingCellId(cellId)\n }\n\n e.preventDefault()\n return\n }\n\n // only name column can be selected for group rows\n if (isGroup && cell.column.id !== 'name') return clearSelection()\n\n // check if this is a restricted entity - prevent editing\n const isRestricted = isEntityRestricted(cell.row.original.entityType)\n\n // if clicking on an edit trigger, start editing\n if (target.closest('.' + EDIT_TRIGGER_CLASS) && !isRestricted) {\n // Select the cell first if not already selected\n if (!isCellSelected(cellId)) {\n selectCell(cellId, false, false)\n focusCell(cellId)\n }\n setEditingCellId(cellId)\n return\n }\n\n // If there's an active edit on a different cell, blur it first to save changes\n if (editingCellId && editingCellId !== cellId) {\n // Find the currently editing input and blur it\n const editingInput = document.querySelector(\n `#${editingCellId} input, #${editingCellId} [role=\"textbox\"]`,\n ) as HTMLElement\n if (editingInput) {\n editingInput.blur()\n // Wait a tick for the blur event to process and save\n setTimeout(() => {\n proceedWithSelection()\n }, 0)\n return\n }\n }\n\n proceedWithSelection()\n\n function proceedWithSelection() {\n const additive = e.metaKey || e.ctrlKey || isRowSelectionColumn\n if (e.shiftKey) {\n // Shift+click extends selection from anchor cell\n selectCell(cellId, additive, true) // true for range selection\n } else {\n startSelection(cellId, additive)\n }\n\n // Prevent default browser behavior to ensure focus stays on the cell\n e.preventDefault()\n }\n }}\n onMouseOver={(e) => {\n if (e.buttons === 1) {\n // check not selecting am edit trigger\n const target = e.target as HTMLElement\n if (target.closest('.' + EDIT_TRIGGER_CLASS)) return\n\n // Left button is pressed during mouse move - drag selection\n // Note: extendSelection is always called to allow drag to continue through cells\n // Restricted cells will be filtered out later\n extendSelection(cellId, isRowSelectionColumn)\n }\n }}\n onMouseUp={() => {\n endSelection(cellId)\n }}\n onDoubleClick={(e) => {\n // Double-click is primarily handled in onMouseDown via e.detail === 2.\n // Prevent default to avoid text selection on double-click.\n e.preventDefault()\n }}\n onContextMenu={(e) => {\n e.preventDefault()\n // if the cell is not selected, select it and deselect all others\n if (!isCellSelected(cellId)) {\n selectCell(cellId, false, false)\n }\n }}\n onKeyDown={() => {\n // keyboard events are handled in useKeyboardNavigation hook\n }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Styled.TD>\n )\n}\n"],"names":["SummaryCellContentFallback","matchesColumnId","id","subscribers","sub","pattern","ProjectTreeTable","scope","sliceId","onScroll","onScrollBottom","onOpenNew","readOnly","excludedColumns","excludedSorting","extraColumns","includeLinks","isLoadingProp","isExpandable","enableSorting","clientSorting","sortableRows","onRowReorder","dndActiveId","columnsConfig","showColumnSummaries","fieldStats","groupFieldStats","fieldStatsLoading","fieldStatsError","mainCountLabels","onScrollBottomGroupBy","propsContextMenuItems","onColumnVisibleChange","onColumnVisibleChangeSubscribed","onVisibleRowsChange","pt","props","columnVisibility","columnPinning","columnOrder","columnSizing","setAllColumns","sorting","sortingOnChange","columnPinningOnChange","columnSizingOnChange","defaultColumnVisibility","columnVisibilityOnChange","columnOrderOnChange","groupBy","columnSummaries","updateColumnSummary","columnSummaryScopes","updateColumnSummaryScope","columnSummaryFormats","updateColumnSummaryFormat","useColumnSettingsContext","productTypes","projectName","projectInfo","useProjectContext","tableData","attribFields","entitiesMap","users","isLoadingData","error","softError","softErrorAction","isInitialized","expanded","updateExpanded","toggleExpandAll","showHierarchy","isFlatFolderView","fetchNextPage","scopes","getEntityById","onResetView","overrideGroupBy","loadingLinksEntityIds","queryFilters","useProjectTableContext","isGrouping","filterError","isFilterError","filterErrorMessage","getFilterErrorMessage","getEntitiesLabelFromScopes","groupField","groupFieldId","parentScopeApplicable","writableFields","useProjectDataContext","isLoading","statuses","folderTypes","taskTypes","tags","linkTypes","options","useMemo","getTableFieldOptions","tableContainerRef","useRef","tableRowsCountRef","registerGrid","useSelectionCellsContext","loadingAttrib","loadingRows","tableRowsCount","generateDummyAttributes","generateLoadingRows","showLoadingRows","readOnlyColumns","readOnlyAttribs","getReadOnlyLists","selectedCells","updateEntities","useCellEditing","handleCellUpdate","useCallback","entity","config","selection","entitiesToUpdate","field","value","isAttrib","cellId","colId","rowId","parseCellId","ROW_SELECTION_COLUMN_ID","toast","columnAttribs","getNameLabelHeader","s","upperFirst","columns","baseColumns","buildTreeTableColumns","DRAG_HANDLE_COLUMN_ID","useEffect","ids","c","resolvedColumnVisibility","merged","col","explicitVisible","checkColumnVisibility","ensureAtLeastOneVisibleColumn","table","useReactTable","row","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","getSortedRowModel","filterFns","leftPins","contextLeftPins","rows","rowIds","colIdsSortedByPinning","a","b","colA","colB","visibleColumns","columnVirtualizer","virtualPaddingLeft","virtualPaddingRight","useColumnVirtualization","prevVisibleRef","virtualItems","visibleColumnIds","item","changes","hasChanged","isVisible","columnSizeVars","useCustomColumnWidthVars","powerLicense","usePowerpack","RemoteSummaryCellContent","isFooterLoaded","isFooterModuleLoading","useLoadModule","summariesEnabled","footerModuleLoading","selectedRowCount","cellEntities","rowEntities","isGroupId","getRowHeight","defaultRowHeight","useDynamicRowHeight","attribByField","acc","attrib","rowOrderIds","columnOrderIds","draggedRowData","r","combinedScrollHandler","containerRefElement","scrollHeight","scrollTop","clientHeight","groupValue","isEntityPickerOpen","handleMoveSubmit","closeMoveDialog","movingEntities","handleMoveToRoot","getDisabledFolderIds","getDisabledMessage","useMoveEntities","handleMoveSubmitWithExpand","folderIdToExpand","prevExpanded","tableUiContent","jsxs","ClipboardProvider","Styled.TableWrapper","jsx","Styled.TableContainer","clsx","TableHead","TableBody","TableFooterRow","columnId","calc","format","Styled.SoftErrorBanner","InfoMessage","EntityPickerDialog","dragOverlayPortal","createPortal","DragOverlay","overlayRowInstance","tableWidth","Styled.TR","vc","cell","cellStyleBase","getCommonPinningStyles","getColumnWidth","Styled.TD","Icon","TD","getCellId","Fragment","ColumnDragOverlay","active","useDndContext","activeColumnId","draggedColumnHeader","h","Styled.HeaderCell","Styled.TableCellContent","flexRender","Styled.TableHeader","headerGroup","TableHeadRow","virtualColumns","isColumnDrag","isDraggedColumnPinned","Styled.ColumnHeader","SortableContext","horizontalListSortingStrategy","virtualColumn","header","isDraggable","TableHeadCell","canFilter","canHide","canSort","canPin","canResize","isReadOnly","column","menuId","menuOpen","useMenuContext","isOpen","sortingState","updateSorting","handleToggleSort","current","next","isThisColumnPinned","attributes","listeners","setNodeRef","transform","transition","isDragging","useSortable","isDraggingInSameSection","getDragStyle","CSS","pinnedOverride","preventDragFromActions","e","Styled.HeaderButtons","ColumnHeaderMenu","HeaderActionButton","Styled.ResizedHandler","attribs","contextMenuItems","headerLabels","headerId","handleTableBodyContextMenu","useCellContextMenu","rowVirtualizer","useVirtualizer","index","element","virtualRows","prevVisibleRowIdsRef","virtualRow","parseRowId","uniqueIds","key","measureRowElement","node","useKeyboardNavigation","visibleLeafColumns","columnDividerLefts","lefts","sizeVars","i","tbodyContent","Styled.ColumnDividers","left","TableBodyRow","Styled.AnimatedEmptyPlaceholder","EmptyPlaceholder","Button","FilterErrorActions","extractQueryErrorMessage","verticalListSortingStrategy","visibleCells","paddingLeft","paddingRight","rowRef","dataIndex","offsetTop","rowHeight","sortable","rowHtmlElementRef","combinedRef","style","RowDragHandleCellContent","className","onOpenPlayer","isCellSelected","isCellFocused","startSelection","extendSelection","endSelection","selectCell","focusCell","getCellBorderClasses","clearSelection","setSelectedCells","setAnchorCell","setFocusedCellId","isRowSelected","useSelectedRowsContext","isEditing","setEditingCellId","editingCellId","borderClasses","isLastLeftPinnedColumn","isRowSelectionColumn","isGroup","isMultipleSelected","isEntityExpandable","target","isTargetReadOnly","isEntityRestricted","setDetailsPanelTabForScope","rowSelectionCellId","additive","position","prev","newSelection","targetIds","getEntityViewierIds","isRestricted","EDIT_TRIGGER_CLASS","editingInput","proceedWithSelection"],"mappings":"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"}