@ynput/ayon-frontend-shared 0.3.46 → 0.3.48

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 (761) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +38 -35
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +231 -228
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +193 -25
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/Views.cjs.js +1 -1
  11. package/dist/Views.es.js +27 -26
  12. package/dist/_virtual/index.cjs15.js +1 -1
  13. package/dist/_virtual/index.cjs18.js +1 -1
  14. package/dist/_virtual/index.cjs19.js +1 -1
  15. package/dist/_virtual/index.cjs22.js +1 -1
  16. package/dist/_virtual/index.cjs23.js +1 -1
  17. package/dist/_virtual/index.cjs24.js +1 -1
  18. package/dist/_virtual/index.cjs4.js +1 -1
  19. package/dist/_virtual/index.cjs5.js +1 -1
  20. package/dist/_virtual/index.cjs6.js +1 -1
  21. package/dist/_virtual/index.cjs8.js +1 -1
  22. package/dist/_virtual/index.cjs9.js +1 -1
  23. package/dist/_virtual/index.es10.js +2 -2
  24. package/dist/_virtual/index.es11.js +2 -2
  25. package/dist/_virtual/index.es13.js +2 -2
  26. package/dist/_virtual/index.es14.js +2 -2
  27. package/dist/_virtual/index.es15.js +2 -2
  28. package/dist/_virtual/index.es16.js +2 -2
  29. package/dist/_virtual/index.es17.js +2 -2
  30. package/dist/_virtual/index.es18.js +5 -2
  31. package/dist/_virtual/index.es18.js.map +1 -1
  32. package/dist/_virtual/index.es19.js +2 -2
  33. package/dist/_virtual/index.es22.js +3 -3
  34. package/dist/_virtual/index.es23.js +5 -5
  35. package/dist/_virtual/index.es24.js +5 -5
  36. package/dist/_virtual/index.es4.js +2 -5
  37. package/dist/_virtual/index.es4.js.map +1 -1
  38. package/dist/_virtual/index.es5.js +5 -2
  39. package/dist/_virtual/index.es5.js.map +1 -1
  40. package/dist/_virtual/index.es6.js +2 -2
  41. package/dist/_virtual/index.es8.js +2 -2
  42. package/dist/_virtual/index.es9.js +2 -5
  43. package/dist/_virtual/index.es9.js.map +1 -1
  44. package/dist/api.cjs.js +1 -1
  45. package/dist/api.es.js +347 -344
  46. package/dist/api.es.js.map +1 -1
  47. package/dist/components.cjs.js +1 -1
  48. package/dist/components.es.js +41 -39
  49. package/dist/components.es.js.map +1 -1
  50. package/dist/context.cjs.js +1 -1
  51. package/dist/context.es.js +55 -48
  52. package/dist/context.es.js.map +1 -1
  53. package/dist/index.cjs.js +1 -1
  54. package/dist/index.es.js +24 -21
  55. package/dist/index.es.js.map +1 -1
  56. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  57. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  58. package/dist/node_modules/react-use-websocket/dist/index.cjs.js +1 -1
  59. package/dist/node_modules/react-use-websocket/dist/index.es.js +1 -1
  60. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  61. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  62. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  63. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  64. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  65. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  66. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  67. package/dist/node_modules/remove-accents/index.es.js +1 -1
  68. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  69. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  70. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  71. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  72. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  73. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  74. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js +1 -1
  75. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.es.js +1 -1
  76. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  77. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  78. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  79. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  80. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  81. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  82. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.cjs.js +1 -1
  83. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.es.js +1 -1
  84. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  85. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  86. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js +1 -1
  87. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.es.js +1 -1
  88. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js +1 -1
  89. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js.map +1 -1
  90. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.es.js +1 -1
  91. package/dist/shared/node_modules/@module-federation/sdk/dist/index.cjs.js +1 -1
  92. package/dist/shared/node_modules/@module-federation/sdk/dist/index.es.js +1 -1
  93. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  94. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  95. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  96. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js.map +1 -1
  97. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  98. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  99. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js.map +1 -1
  100. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  101. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  102. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js.map +1 -1
  103. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  104. package/dist/shared/src/api/generated/graphql.cjs.js +3 -3
  105. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  106. package/dist/shared/src/api/generated/graphql.es.js +3 -3
  107. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  108. package/dist/shared/src/api/queries/actions/refreshActiveAndPurgeOthers.cjs.js +2 -0
  109. package/dist/shared/src/api/queries/actions/refreshActiveAndPurgeOthers.cjs.js.map +1 -0
  110. package/dist/shared/src/api/queries/actions/refreshActiveAndPurgeOthers.es.js +42 -0
  111. package/dist/shared/src/api/queries/actions/refreshActiveAndPurgeOthers.es.js.map +1 -0
  112. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  113. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  114. package/dist/shared/src/api/queries/activities/getActivities.es.js +121 -156
  115. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  116. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js +1 -1
  117. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  118. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js +93 -68
  119. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  120. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  121. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  122. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +63 -56
  123. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  124. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +1 -1
  125. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  126. package/dist/shared/src/api/queries/entities/updateEntity.es.js +120 -119
  127. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  128. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  129. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  130. package/dist/shared/src/api/queries/entityLists/getLists.es.js +70 -62
  131. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  132. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  133. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  134. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  135. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  136. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +85 -85
  137. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  138. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  139. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  140. package/dist/shared/src/api/queries/overview/getOverview.es.js +267 -259
  141. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  142. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  143. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  144. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +85 -79
  145. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  146. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +1 -1
  147. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
  148. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +170 -2
  149. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
  150. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  151. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  152. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +18 -15
  153. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  154. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  155. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  156. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +165 -2
  157. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  158. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +2 -2
  159. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  160. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +164 -2
  161. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  162. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  163. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  164. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +174 -2
  165. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  166. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
  167. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
  168. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +173 -2
  169. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
  170. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  171. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  172. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +5 -2
  173. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  174. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  175. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  176. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +16 -13
  177. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  178. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  179. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  180. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +168 -2
  181. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  182. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  183. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  184. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +260 -89
  185. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  186. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  187. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  188. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +44 -78
  189. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  190. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  191. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  192. package/dist/shared/src/components/LinksManager/LinksManager.es.js +172 -2
  193. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  194. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  195. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  196. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +5 -2
  197. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  198. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  199. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  200. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +173 -2
  201. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  202. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  203. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
  204. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +158 -2
  205. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
  206. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  207. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
  208. package/dist/shared/src/components/Menu/Menu.es.js +171 -2
  209. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
  210. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  211. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  212. package/dist/shared/src/components/Menu/MenuItem.es.js +167 -0
  213. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  214. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  215. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  216. package/dist/shared/src/components/Menu/MenuList.es.js +209 -40
  217. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  218. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
  219. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  220. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +171 -2
  221. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  222. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  223. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  224. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +170 -2
  225. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  226. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  227. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  228. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +16 -13
  229. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  230. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  231. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  232. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +82 -79
  233. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  234. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  235. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  236. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +169 -3
  237. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  238. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  239. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  240. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +12 -9
  241. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  242. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  243. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  244. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +5 -2
  245. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  246. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  247. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  248. package/dist/shared/src/components/RenameForm/RenameForm.es.js +5 -2
  249. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  250. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  251. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  252. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +41 -38
  253. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  254. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  255. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  256. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +19 -16
  257. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  258. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  259. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  260. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +17 -14
  261. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  262. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  263. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  264. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +18 -15
  265. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  266. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  267. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  268. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +453 -284
  269. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  270. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +2 -2
  271. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  272. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +172 -2
  273. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  274. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  275. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  276. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +18 -15
  277. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  278. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  279. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  280. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +18 -15
  281. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  282. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js +52 -0
  283. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js.map +1 -0
  284. package/dist/shared/src/components/SyncButton/SyncButton.es.js +265 -0
  285. package/dist/shared/src/components/SyncButton/SyncButton.es.js.map +1 -0
  286. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -1
  287. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  288. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +171 -2
  289. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  290. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  291. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  292. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +18 -15
  293. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  294. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  295. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  296. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +20 -17
  297. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  298. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  299. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  300. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +18 -15
  301. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  302. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  303. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  304. package/dist/shared/src/containers/Actions/Actions.es.js +213 -44
  305. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  306. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  307. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  308. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +18 -15
  309. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  310. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  311. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  312. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +39 -36
  313. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  314. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  315. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  316. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +18 -15
  317. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  318. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  319. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  320. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +19 -16
  321. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  322. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  323. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  324. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +51 -48
  325. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  326. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +1 -1
  327. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -1
  328. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +173 -3
  329. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -1
  330. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  331. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  332. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +18 -15
  333. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  334. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  335. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  336. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +18 -15
  337. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  338. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  339. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  340. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +168 -2
  341. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  342. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  343. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  344. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +32 -29
  345. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  346. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  347. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  348. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +18 -15
  349. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  350. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  351. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  352. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +81 -78
  353. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  354. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  355. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  356. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +144 -2
  357. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  358. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  359. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  360. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +174 -2
  361. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  362. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  363. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  364. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +18 -15
  365. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  366. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  367. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  368. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +18 -15
  369. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  370. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  371. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  372. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +18 -15
  373. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  374. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  375. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  376. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +18 -15
  377. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  378. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  379. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  380. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +178 -7
  381. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  382. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  383. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  384. package/dist/shared/src/containers/Feed/Feed.es.js +206 -59
  385. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  386. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  387. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  388. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +18 -15
  389. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  390. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  391. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  392. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +19 -16
  393. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  394. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  395. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  396. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +18 -15
  397. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  398. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js +1 -1
  399. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js.map +1 -1
  400. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js +16 -16
  401. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js.map +1 -1
  402. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.cjs.js +1 -1
  403. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.cjs.js.map +1 -1
  404. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.es.js +30 -17
  405. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusChange.es.js.map +1 -1
  406. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.cjs.js +11 -0
  407. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.cjs.js.map +1 -0
  408. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.es.js +27 -0
  409. package/dist/shared/src/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.es.js.map +1 -0
  410. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  411. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
  412. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +20 -17
  413. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
  414. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  415. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  416. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +218 -39
  417. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  418. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  419. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  420. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +78 -75
  421. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  422. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  423. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  424. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +22 -19
  425. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  426. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  427. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  428. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +173 -2
  429. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  430. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  431. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  432. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +173 -2
  433. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  434. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +2 -2
  435. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -1
  436. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +181 -14
  437. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -1
  438. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  439. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  440. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +169 -2
  441. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  442. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  443. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  444. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +80 -77
  445. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  446. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  447. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  448. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +197 -26
  449. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  450. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.cjs.js +1 -1
  451. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.cjs.js.map +1 -1
  452. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.es.js +9 -8
  453. package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.es.js.map +1 -1
  454. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  455. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  456. package/dist/shared/src/containers/ListTable/ListTable.es.js +24 -21
  457. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  458. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  459. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  460. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +18 -15
  461. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  462. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  463. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  464. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +17 -14
  465. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  466. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  467. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  468. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +5 -2
  469. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  470. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  471. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  472. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +18 -15
  473. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  474. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  476. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +5 -2
  477. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  478. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  479. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  480. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +84 -81
  481. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  482. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  483. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  484. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +17 -14
  485. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  486. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  488. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +18 -15
  489. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  490. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +5 -5
  491. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  492. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +508 -321
  493. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  494. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  495. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  496. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +18 -15
  497. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  498. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  499. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  500. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +175 -4
  501. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  502. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +1 -1
  503. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  504. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +176 -6
  505. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  506. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  507. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  508. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +18 -15
  509. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  510. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  511. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  512. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +174 -2
  513. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  514. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  515. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  516. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +21 -18
  517. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  518. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  519. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  520. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +18 -15
  521. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  522. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  523. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  524. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +18 -15
  525. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  526. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  527. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  528. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +18 -15
  529. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  530. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  531. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  532. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +18 -15
  533. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  534. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  535. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  536. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +5 -2
  537. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  538. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  539. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  540. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +406 -396
  541. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  542. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  543. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  544. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +18 -15
  545. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  546. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  547. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  548. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +18 -15
  549. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  550. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  551. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  552. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +19 -17
  553. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  554. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  555. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  556. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +5 -2
  557. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  558. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  559. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  560. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +5 -2
  561. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  562. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  563. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  564. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +18 -15
  565. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  566. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  567. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  568. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +18 -15
  569. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  570. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  571. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  572. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +265 -95
  573. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  574. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  575. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  576. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +29 -26
  577. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  578. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  579. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  580. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +18 -15
  581. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  582. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
  583. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  584. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +94 -91
  585. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  586. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +3 -3
  587. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  588. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +25 -22
  589. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  590. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  591. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  592. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +20 -17
  593. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  594. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +4 -4
  595. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
  596. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +188 -34
  597. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
  598. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  599. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  600. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +18 -15
  601. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  602. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  603. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  604. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +25 -22
  605. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  606. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +2 -2
  607. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  608. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +225 -61
  609. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  610. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  611. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  612. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +18 -15
  613. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  614. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  615. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  616. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +21 -18
  617. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  618. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js +1 -1
  619. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js.map +1 -1
  620. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js +37 -37
  621. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js.map +1 -1
  622. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  623. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  624. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +353 -51
  625. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  626. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +1 -1
  627. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
  628. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +172 -2
  629. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
  630. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  631. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  632. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +18 -15
  633. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  634. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  635. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  636. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +216 -45
  637. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  638. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  639. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  640. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +185 -13
  641. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  642. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
  643. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
  644. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +174 -2
  645. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
  646. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  647. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  648. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +40 -289
  649. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  650. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
  651. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
  652. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +174 -2
  653. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
  654. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +1 -1
  655. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -1
  656. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +173 -2
  657. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -1
  658. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +1 -1
  659. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -1
  660. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +174 -2
  661. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -1
  662. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +1 -1
  663. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -1
  664. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +174 -2
  665. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -1
  666. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  667. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  668. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +227 -53
  669. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  670. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  671. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  672. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +176 -6
  673. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  674. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  675. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  676. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +5 -2
  677. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  678. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  679. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  680. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +185 -18
  681. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  682. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  683. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  684. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +209 -38
  685. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  686. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  687. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  688. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +180 -10
  689. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  690. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  691. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  692. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +107 -73
  693. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  694. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  695. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  696. package/dist/shared/src/context/DetailsPanelContext.es.js +210 -38
  697. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  698. package/dist/shared/src/context/EntityUpdatesContext.cjs.js +2 -0
  699. package/dist/shared/src/context/EntityUpdatesContext.cjs.js.map +1 -0
  700. package/dist/shared/src/context/EntityUpdatesContext.es.js +392 -0
  701. package/dist/shared/src/context/EntityUpdatesContext.es.js.map +1 -0
  702. package/dist/shared/src/context/EntityUpdatesContextInstance.cjs.js +2 -0
  703. package/dist/shared/src/context/EntityUpdatesContextInstance.cjs.js.map +1 -0
  704. package/dist/shared/src/context/EntityUpdatesContextInstance.es.js +6 -0
  705. package/dist/shared/src/context/EntityUpdatesContextInstance.es.js.map +1 -0
  706. package/dist/shared/src/context/MenuContext.es.js +3 -3
  707. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  708. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  709. package/dist/shared/src/context/PowerpackContext.es.js +178 -6
  710. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  711. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  712. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  713. package/dist/shared/src/context/ProjectFoldersContext.es.js +196 -24
  714. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  715. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  716. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  717. package/dist/shared/src/context/SubtasksModulesContext.es.js +176 -4
  718. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  719. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  720. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  721. package/dist/shared/src/context/WebsocketContext.es.js +52 -45
  722. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  723. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  724. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  725. package/dist/shared/src/hooks/useEntityUpdate.es.js +174 -2
  726. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  727. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  728. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  729. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +174 -2
  730. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  731. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  732. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  733. package/dist/shared/src/hooks/useHierarchyTable.es.js +174 -2
  734. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  735. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  736. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  737. package/dist/shared/src/hooks/useUserProjectConfig.es.js +174 -2
  738. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  739. package/dist/types/api/generated/graphql.d.ts +3 -3
  740. package/dist/types/api/queries/actions/index.d.ts +1 -0
  741. package/dist/types/api/queries/actions/refreshActiveAndPurgeOthers.d.ts +11 -0
  742. package/dist/types/api/queries/activities/getActivities.d.ts +65 -855
  743. package/dist/types/api/queries/activities/util/activitiesHelpers.d.ts +19 -0
  744. package/dist/types/api/queries/links/getEntityLinks.d.ts +4 -2
  745. package/dist/types/components/SyncButton/SyncButton.d.ts +11 -0
  746. package/dist/types/components/SyncButton/index.d.ts +1 -0
  747. package/dist/types/components/index.d.ts +1 -0
  748. package/dist/types/containers/Feed/components/ActivityStatusChange/ActivityStatusSecondary.d.ts +7 -0
  749. package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.d.ts +3 -0
  750. package/dist/types/containers/Feed/hooks/useGetFeedActivitiesData.d.ts +3 -42
  751. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +4 -4
  752. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +10 -2
  753. package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +9 -2
  754. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +1 -0
  755. package/dist/types/containers/Slicer/hooks/useSelectedEntityIds.d.ts +7 -1
  756. package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +7 -0
  757. package/dist/types/context/EntityUpdatesContext.d.ts +44 -0
  758. package/dist/types/context/EntityUpdatesContextInstance.d.ts +2 -0
  759. package/dist/types/context/ProjectFoldersContext.d.ts +2 -2
  760. package/dist/types/context/index.d.ts +1 -0
  761. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleTable.cjs.js","sources":["../../../../../src/containers/SimpleTable/SimpleTable.tsx"],"sourcesContent":["import { FC, useMemo, useRef, MouseEvent as ReactMouseEvent, useCallback, useEffect } from 'react'\nimport * as Styled from './SimpleTable.styled'\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n ColumnDef,\n flexRender,\n Row,\n FilterFn,\n SortingFn,\n sortingFns,\n Table,\n RowData,\n OnChangeFn,\n RowSelectionState,\n functionalUpdate,\n} from '@tanstack/react-table'\nimport { useVirtualizer } from '@tanstack/react-virtual'\n\nimport clsx from 'clsx'\nimport useRowKeydown, { RowKeyboardEvent } from './hooks/useRowKeydown'\n\nimport { rankItem, compareItems, rankings } from '@tanstack/match-sorter-utils'\nimport { useSimpleTableContext } from './context/SimpleTableContext'\nimport { SimpleTableCellTemplate, SimpleTableCellTemplateProps } from './SimpleTableRowTemplate'\nimport { EmptyPlaceholder } from '@shared/components'\nimport { RowPinningState } from '@tanstack/react-table'\nimport {\n SimpleTableProps,\n SimpleTableRow,\n SimpleTableRowContextMenuBuilder,\n} from './SimpleTable.types'\nimport { useCreateContextMenu } from '../ContextMenu'\n\nconst toMenuItems = (items: ReturnType<SimpleTableRowContextMenuBuilder>) => {\n if (!items) return []\n return Array.isArray(items) ? items.filter(Boolean) : [items]\n}\n\n// Define a custom fuzzy filter function that will apply ranking info to rows (using match-sorter utils)\nconst fuzzyFilter: FilterFn<any> = (row, columnId, searchValue, addMeta) => {\n const cellValue = row.getValue(columnId)\n // convert non-string cell values to string\n let searchString =\n typeof cellValue === 'string'\n ? cellValue\n : Array.isArray(cellValue)\n ? cellValue.join(' ')\n : JSON.stringify(cellValue)\n\n // combine label and parents into a single string for searching if columnId is 'label'\n if (columnId === 'label') {\n searchString = [row.original.label, row.original.name, ...(row.original.parents || [])].join(\n ' ',\n )\n }\n\n // Rank the item with CONTAINS threshold to avoid overly permissive fuzzy matches\n // This ensures the search term must be a substring, not just scattered characters\n const itemRank = rankItem(searchString, searchValue, { threshold: rankings.CONTAINS })\n\n // Store the itemRank info\n addMeta({\n itemRank,\n })\n\n // Return if the item should be filtered in/out\n return itemRank.passed\n}\n\n// Define a custom fuzzy sort function that will sort by rank if the row has ranking information\nconst fuzzySort: SortingFn<any> = (rowA, rowB, columnId) => {\n let dir = 0\n\n // Only sort by rank if the column has ranking information\n if (rowA.columnFiltersMeta[columnId]) {\n dir = compareItems(\n rowA.columnFiltersMeta[columnId]?.itemRank!,\n rowB.columnFiltersMeta[columnId]?.itemRank!,\n )\n }\n\n // Provide an alphanumeric fallback for when the item ranks are equal\n return dir === 0 ? sortingFns.alphanumeric(rowA, rowB, columnId) : dir\n}\n\n// Helper function to get row range for shift-selection\n// Operates on the provided list of rows (e.g., filtered and sorted rows)\nfunction getRowRange<TData extends RowData>(\n rows: Array<Row<TData>>,\n idA: string,\n idB: string,\n): Array<Row<TData>> {\n const range: Array<Row<TData>> = []\n // If idA and idB are the same, or one is not found, handle appropriately\n if (idA === idB) {\n const singleRow = rows.find((row) => row.id === idA)\n return singleRow ? [singleRow] : []\n }\n\n let indexA = -1\n let indexB = -1\n\n for (let i = 0; i < rows.length; i++) {\n if (rows[i].id === idA) indexA = i\n if (rows[i].id === idB) indexB = i\n if (indexA !== -1 && indexB !== -1) break\n }\n\n if (indexA === -1 || indexB === -1) return [] // One or both IDs not found\n\n const start = Math.min(indexA, indexB)\n const end = Math.max(indexA, indexB)\n\n for (let i = start; i <= end; i++) {\n range.push(rows[i])\n }\n return range\n}\n\nconst SimpleTable: FC<SimpleTableProps> = ({\n data = [],\n isLoading,\n error,\n isExpandable,\n isMultiSelect = true,\n enableClickToDeselect = true,\n enableNonFolderIndent = true,\n forceUpdateTable,\n globalFilter,\n meta,\n rowHeight,\n imgRatio,\n onScrollBottom,\n onRename,\n renamingId,\n onSubmitRename,\n onCancelRename,\n onRowDoubleClick,\n rowContextMenuBuilders = [],\n children,\n pt,\n fitContent,\n ...props\n}) => {\n const {\n rowSelection,\n expanded,\n setExpanded,\n onExpandedChange,\n onRowSelectionChange,\n rowPinning,\n onRowPinningChange,\n } = useSimpleTableContext()\n const lastSelectedIdRef = useRef<string | null>(null)\n const tableRef = useRef<Table<SimpleTableRow> | null>(null)\n const [showRowContextMenu] = useCreateContextMenu()\n\n // Refs for values used inside the columns memo.\n // Assigning synchronously (not via useEffect) means the cell function always reads\n // the latest value at render time, while the columns memo itself has a minimal dep\n // array and stays as a stable reference — critical because flexRender calls\n // React.createElement with the cell function, so a new reference = remount = broken dblclick.\n const onRowDoubleClickRef = useRef(onRowDoubleClick)\n onRowDoubleClickRef.current = onRowDoubleClick\n const renamingIdRef = useRef(renamingId)\n renamingIdRef.current = renamingId\n const onSubmitRenameRef = useRef(onSubmitRename)\n onSubmitRenameRef.current = onSubmitRename\n const onCancelRenameRef = useRef(onCancelRename)\n onCancelRenameRef.current = onCancelRename\n const onRenameRef = useRef(onRename)\n onRenameRef.current = onRename\n\n // stable data reference\n const tableData = useMemo(() => {\n if (!isLoading) return data\n\n // show loading placeholders\n return Array.from({ length: 10 }, (_, i) => ({\n id: `placeholder-${i}`,\n name: `placeholder-${i}`,\n label: `placeholder-${i}`,\n icon: null,\n img: null,\n subRows: [],\n data: {\n id: `placeholder-${i}`,\n },\n }))\n }, [isLoading, data, forceUpdateTable])\n\n // Define the core selection logic using useCallback for stability\n const handleSelectionLogic = useCallback(\n (\n tableInstance: Table<SimpleTableRow>,\n rowId: string,\n isShift: boolean,\n isCtrlOrMeta: boolean,\n ) => {\n const currentId = rowId\n const allProcessableRows = tableInstance.getFilteredRowModel().flatRows\n const currentRow = allProcessableRows.find((r) => r.id === currentId)\n\n if (!currentRow) return\n\n // Prevent selection of disabled rows\n if (currentRow.original.isDisabled) return\n\n // If click-to-deselect is enabled and only one row is selected and it's the current row\n if (\n enableClickToDeselect &&\n !isShift &&\n !isCtrlOrMeta &&\n Object.keys(tableInstance.getState().rowSelection).length === 1 &&\n tableInstance.getState().rowSelection[currentId]\n ) {\n tableInstance.setRowSelection({})\n lastSelectedIdRef.current = null\n return\n }\n\n if (isMultiSelect && isShift && lastSelectedIdRef.current) {\n const lastId = lastSelectedIdRef.current\n const anchorRow = allProcessableRows.find((r) => r.id === lastId)\n\n if (!anchorRow) {\n tableInstance.setRowSelection({ [currentId]: true })\n } else {\n const rowsToToggle = getRowRange(allProcessableRows, currentId, lastId)\n const newSelection: RowSelectionState = {}\n rowsToToggle.forEach((r) => (newSelection[r.id] = true))\n tableInstance.setRowSelection(newSelection)\n }\n } else if (isMultiSelect && isCtrlOrMeta) {\n currentRow.toggleSelected()\n } else {\n // If it's already selected and it's the only one, don't update selection to avoid unnecessary re-renders\n const selection = tableInstance.getState().rowSelection\n if (!(Object.keys(selection).length === 1 && selection[currentId])) {\n tableInstance.setRowSelection({ [currentId]: true })\n }\n }\n lastSelectedIdRef.current = currentId\n },\n [isMultiSelect, enableClickToDeselect],\n )\n\n // Callback for useRowKeydown's handleRowSelect prop\n // Uses tableRef to access the table instance, avoiding direct dependency on 'table' variable at definition time\n const handleRowSelectForKeydown = useCallback(\n (\n event: RowKeyboardEvent, // Use the specific keyboard event type from the hook\n selectedRow: Row<SimpleTableRow>,\n ) => {\n if (!tableRef.current) {\n console.warn('tableRef not yet available in handleRowSelectForKeydown')\n return\n }\n\n // Extract modifier keys from the event\n const isShiftKey = event.shiftKey\n const isCtrlKey = event.ctrlKey || event.metaKey\n\n handleSelectionLogic(\n tableRef.current, // Pass the main table instance\n selectedRow.id,\n isShiftKey,\n isCtrlKey,\n )\n },\n [handleSelectionLogic], // Depends only on handleSelectionLogic\n )\n\n // Handle arrow key navigation\n const handleArrowNavigation = useCallback(\n (direction: 'up' | 'down', currentRow: Row<SimpleTableRow>, event: RowKeyboardEvent) => {\n if (!tableRef.current) return\n\n // Use the row model which respects expanded state, not filtered model\n const visibleRows = tableRef.current.getRowModel().rows\n const currentIndex = visibleRows.findIndex((r) => r.id === currentRow.id)\n\n if (currentIndex === -1) return\n\n let nextIndex = direction === 'down' ? currentIndex + 1 : currentIndex - 1\n\n // Check bounds\n if (nextIndex < 0 || nextIndex >= visibleRows.length) return\n\n // Skip disabled rows\n while (nextIndex >= 0 && nextIndex < visibleRows.length) {\n const nextRow = visibleRows[nextIndex]\n if (!nextRow.original.isDisabled) {\n // Found a valid row\n // Select the next row\n handleSelectionLogic(\n tableRef.current,\n nextRow.id,\n event.shiftKey,\n event.ctrlKey || event.metaKey,\n )\n\n // Focus the next row's cell. Scope to this table's container: row ids are\n // entity ids that can also exist in other SimpleTables on the page (slicer),\n // so a document-wide getElementById would steal focus to a duplicate.\n requestAnimationFrame(() => {\n const container = tableContainerRef.current\n const nextRowElement = container\n ? container.querySelector(`#${CSS.escape(nextRow.id)}`)\n : document.getElementById(nextRow.id)\n const nextCell = nextRowElement?.querySelector('[tabindex=\"0\"]') as HTMLElement\n if (nextCell) {\n nextCell.focus()\n nextCell.scrollIntoView({ block: 'nearest', behavior: 'smooth' })\n }\n })\n return\n }\n // Move to next row if current is disabled\n nextIndex = direction === 'down' ? nextIndex + 1 : nextIndex - 1\n }\n },\n [handleSelectionLogic],\n )\n\n // handleRenameForKeydown reads from onRenameRef so it has empty deps and is\n // permanently stable — keeping handleRowKeyDown and therefore columns stable.\n const handleRenameForKeydown = useCallback(\n (e: RowKeyboardEvent, row: Row<SimpleTableRow>) => {\n if (!row.original.isDisabled) onRenameRef.current?.(row.id, row)\n },\n [], // eslint-disable-line react-hooks/exhaustive-deps\n )\n\n const { handleRowKeyDown } = useRowKeydown<SimpleTableRow>({\n handleRowSelect: handleRowSelectForKeydown,\n handleArrowNavigation,\n handleRename: handleRenameForKeydown,\n })\n\n const columns = useMemo<ColumnDef<SimpleTableRow>[]>(\n () => [\n {\n accessorKey: 'label',\n header: undefined,\n filterFn: 'fuzzy',\n sortingFn: fuzzySort, //sort by fuzzy rank (falls back to alphanumeric)\n cell: ({ row, getValue, table: cellTableInstance }) => {\n const cellMeta = cellTableInstance.options.meta\n\n const handleCellClick = (event: ReactMouseEvent<HTMLElement, MouseEvent>) => {\n // Prevent row selection if clicking on an interactive element within the cell\n if (\n event.target instanceof HTMLInputElement ||\n event.target instanceof HTMLButtonElement ||\n event.target instanceof HTMLTextAreaElement ||\n event.target instanceof HTMLSelectElement ||\n event.target instanceof HTMLAnchorElement ||\n (event.target as HTMLElement).closest('button, a, input, textarea, select')\n ) {\n return\n }\n handleSelectionLogic(\n cellTableInstance, // Pass the cell's table instance\n row.id,\n event.shiftKey,\n event.ctrlKey || event.metaKey,\n )\n }\n\n const props: SimpleTableCellTemplateProps & {\n onClick?: (event: ReactMouseEvent<HTMLElement, MouseEvent>) => void\n onDoubleClick?: (event: ReactMouseEvent<HTMLElement, MouseEvent>) => void\n } = {\n className: clsx({\n selected: row.getIsSelected(),\n loading: cellMeta?.isLoading,\n disabled: row.original.isDisabled, // you can't select disabled rows\n inactive: row.original.inactive, // false: archived items but still selectable\n }),\n onKeyDown: (e) => {\n if (e.target instanceof HTMLInputElement) return\n // Corrected typo: handleRowKeydown -> handleRowKeyDown\n handleRowKeyDown(e, row)\n },\n depth: row.depth,\n tabIndex: 0,\n value: getValue<string>(),\n parents: row.original.parents,\n icon: row.original.icon || undefined,\n iconColor: row.original.iconColor,\n iconFilled: row.original.iconFilled,\n img: row.original.img,\n imgShape: row.original.imgShape,\n imgRatio: imgRatio,\n isRowExpandable: row.getCanExpand(),\n enableNonFolderIndent,\n isRowExpanded: row.getIsExpanded(),\n isTableExpandable: cellMeta?.isExpandable,\n onExpandClick: row.getToggleExpandedHandler(),\n startContent: row.original.startContent,\n endContent: row.original.endContent,\n isDisabled: row.original.isDisabled,\n disabledMessage: row.original.disabledMessage,\n isRenaming: row.id === renamingIdRef.current,\n onSubmitRename: onSubmitRenameRef.current\n ? (v) => onSubmitRenameRef.current!(row.id, v)\n : undefined,\n onCancelRename: onCancelRenameRef.current,\n ...pt?.cell,\n onClick: handleCellClick, // Added onClick handler\n onDoubleClick: (e) => onRowDoubleClickRef.current?.(row.id, row),\n }\n\n // Use children function if provided, otherwise default to SimpleTableCellTemplate\n return cellMeta?.children ? (\n cellMeta.children(props, row, cellTableInstance)\n ) : (\n <SimpleTableCellTemplate {...props} {...pt?.cell} />\n )\n },\n },\n ],\n [\n forceUpdateTable,\n handleSelectionLogic,\n handleRowKeyDown,\n enableClickToDeselect,\n enableNonFolderIndent,\n imgRatio,\n ],\n )\n\n const handleRowSelectionChangeCallback: OnChangeFn<RowSelectionState> = useCallback(\n (updater) => {\n onRowSelectionChange(functionalUpdate(updater, rowSelection))\n },\n [onRowSelectionChange],\n )\n\n const handleRowPinningChangeCallback: OnChangeFn<RowPinningState> = useCallback(\n (updater) => {\n onRowPinningChange?.(functionalUpdate(updater, rowPinning || {}))\n },\n [onRowPinningChange],\n )\n\n const handleExpandedChange = useCallback(\n (updater: any) => {\n setExpanded?.((old) => {\n const newExpanded = updater instanceof Function ? updater(old) : updater\n onExpandedChange?.(newExpanded)\n return newExpanded\n })\n },\n [setExpanded],\n )\n\n const table = useReactTable({\n data: tableData,\n columns,\n state: {\n expanded,\n rowSelection,\n globalFilter,\n rowPinning,\n },\n onRowSelectionChange: handleRowSelectionChangeCallback,\n onRowPinningChange: handleRowPinningChangeCallback,\n filterFns: {\n fuzzy: fuzzyFilter,\n },\n globalFilterFn: 'fuzzy',\n enableRowSelection: true, //enable row selection for all rows\n enableRowPinning: !!onRowPinningChange,\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n onExpandedChange: handleExpandedChange,\n getSubRows: (row) => row.subRows,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // debugTable: true,\n // @ts-expect-error: updateData is not required\n meta: useMemo(\n () => ({\n isExpandable: !!isExpandable,\n isLoading: isLoading,\n children: children,\n ...meta,\n }),\n [isExpandable, isLoading, children, meta],\n ),\n })\n\n // Update tableRef whenever the table instance changes.\n // This ensures handleRowSelectForKeydown uses the current table instance.\n useEffect(() => {\n tableRef.current = table\n }, [table])\n\n const { rows } = table.getRowModel()\n\n const handleRowContextMenu = useCallback(\n (rowId: string, rowIndex: number, e: ReactMouseEvent<HTMLTableRowElement>) => {\n if (!tableRef.current) return\n const row = rows[rowIndex]\n if (!row || row.original === undefined) return\n\n e.preventDefault()\n e.stopPropagation()\n\n const selectedIds = Object.keys(rowSelection)\n\n const nextSelectedRows = selectedIds.includes(rowId) ? selectedIds : [rowId]\n\n if (!selectedIds.includes(rowId)) {\n // convert array to RowSelectionState object\n const nextSelection: RowSelectionState = { [rowId]: true }\n onRowSelectionChange?.(nextSelection)\n }\n\n const menuItems = rowContextMenuBuilders.flatMap((builder) =>\n toMenuItems(\n builder(e as any, {\n rowId,\n rowIndex,\n row,\n selectedRows: nextSelectedRows,\n isSelected: nextSelectedRows.includes(rowId),\n }),\n ),\n )\n\n if (menuItems.length > 0) {\n showRowContextMenu(e as any, menuItems)\n }\n },\n [rowContextMenuBuilders, rows, rowSelection, onRowSelectionChange, showRowContextMenu],\n )\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n\n const rowVirtualizer = useVirtualizer({\n count: rows.length,\n estimateSize: () => rowHeight || 34, //estimate row height for accurate scrollbar dragging\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement: rowHeight\n ? () => rowHeight\n : typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n // Memoize the ref callback to prevent infinite re-renders\n const measureElementRef = useCallback(\n (node: HTMLElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n // Handle scroll to bottom detection\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLDivElement>) => {\n if (!onScrollBottom) return\n\n const target = event.currentTarget\n const { scrollTop, scrollHeight, clientHeight } = target\n\n // Check if we're near the bottom (within 100px)\n const isNearBottom = scrollHeight - scrollTop - clientHeight < 100\n\n if (isNearBottom && !isLoading) {\n onScrollBottom()\n }\n },\n [onScrollBottom, isLoading],\n )\n\n const handleContainerClick = (e: React.MouseEvent<HTMLDivElement>) => {\n // if the click is outside of any row, clear selection\n if (enableClickToDeselect && !(e.target as HTMLElement).closest('tr')) {\n table.setRowSelection({})\n lastSelectedIdRef.current = null\n }\n }\n\n return (\n <Styled.TableContainer\n ref={tableContainerRef}\n onScroll={handleScroll}\n onClick={handleContainerClick}\n {...props}\n className={clsx(props.className, { isLoading, fitContent })}\n >\n {!error && (\n <table>\n <tbody\n style={{\n height: `${rowVirtualizer?.getTotalSize()}px`, //tells scrollbar how big the table is\n }}\n >\n {rowVirtualizer?.getVirtualItems().map((virtualRow) => {\n const row = rows[virtualRow.index] as Row<SimpleTableRow>\n return (\n <tr\n data-index={virtualRow.index} //needed for dynamic row height measurement\n ref={measureElementRef} //measure dynamic row height\n key={row.id}\n id={row.id}\n onContextMenu={(e) => handleRowContextMenu(row.id, virtualRow.index, e)}\n {...pt?.row}\n style={{\n transform: `translateY(${virtualRow.start}px)`, //this should always be a `style` as it changes on scroll\n ...pt?.row?.style, // custom styles to be passed\n }}\n >\n {row.getVisibleCells().map((cell) => {\n return (\n <td key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </td>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n )}\n {!!error && <EmptyPlaceholder error={error} />}\n </Styled.TableContainer>\n )\n}\n\nexport default SimpleTable\n"],"names":["toMenuItems","items","fuzzyFilter","row","columnId","searchValue","addMeta","cellValue","searchString","itemRank","rankItem","rankings","fuzzySort","rowA","rowB","dir","compareItems","sortingFns","getRowRange","rows","idA","idB","range","singleRow","indexA","indexB","i","start","end","SimpleTable","data","isLoading","error","isExpandable","isMultiSelect","enableClickToDeselect","enableNonFolderIndent","forceUpdateTable","globalFilter","meta","rowHeight","imgRatio","onScrollBottom","onRename","renamingId","onSubmitRename","onCancelRename","onRowDoubleClick","rowContextMenuBuilders","children","pt","fitContent","props","rowSelection","expanded","setExpanded","onExpandedChange","onRowSelectionChange","rowPinning","onRowPinningChange","useSimpleTableContext","lastSelectedIdRef","useRef","tableRef","showRowContextMenu","useCreateContextMenu","onRowDoubleClickRef","renamingIdRef","onSubmitRenameRef","onCancelRenameRef","onRenameRef","tableData","useMemo","_","handleSelectionLogic","useCallback","tableInstance","rowId","isShift","isCtrlOrMeta","currentId","allProcessableRows","currentRow","r","lastId","rowsToToggle","newSelection","selection","handleRowSelectForKeydown","event","selectedRow","isShiftKey","isCtrlKey","handleArrowNavigation","direction","visibleRows","currentIndex","nextIndex","nextRow","container","tableContainerRef","nextCell","handleRenameForKeydown","handleRowKeyDown","useRowKeydown","columns","getValue","cellTableInstance","cellMeta","handleCellClick","clsx","e","v","jsx","SimpleTableCellTemplate","handleRowSelectionChangeCallback","updater","functionalUpdate","handleRowPinningChangeCallback","handleExpandedChange","old","newExpanded","table","useReactTable","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","useEffect","handleRowContextMenu","rowIndex","selectedIds","nextSelectedRows","nextSelection","menuItems","builder","rowVirtualizer","useVirtualizer","element","measureElementRef","node","handleScroll","target","scrollTop","scrollHeight","clientHeight","handleContainerClick","jsxs","Styled.TableContainer","virtualRow","cell","flexRender","EmptyPlaceholder"],"mappings":"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"}
1
+ {"version":3,"file":"SimpleTable.cjs.js","sources":["../../../../../src/containers/SimpleTable/SimpleTable.tsx"],"sourcesContent":["import { FC, useMemo, useRef, MouseEvent as ReactMouseEvent, useCallback, useEffect } from 'react'\nimport * as Styled from './SimpleTable.styled'\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n ColumnDef,\n flexRender,\n Row,\n FilterFn,\n SortingFn,\n sortingFns,\n Table,\n RowData,\n OnChangeFn,\n RowSelectionState,\n functionalUpdate,\n} from '@tanstack/react-table'\nimport { useVirtualizer } from '@tanstack/react-virtual'\n\nimport clsx from 'clsx'\nimport useRowKeydown, { RowKeyboardEvent } from './hooks/useRowKeydown'\n\nimport { rankItem, compareItems, rankings } from '@tanstack/match-sorter-utils'\nimport { useSimpleTableContext } from './context/SimpleTableContext'\nimport { SimpleTableCellTemplate, SimpleTableCellTemplateProps } from './SimpleTableRowTemplate'\nimport { EmptyPlaceholder } from '@shared/components'\nimport { RowPinningState } from '@tanstack/react-table'\nimport {\n SimpleTableProps,\n SimpleTableRow,\n SimpleTableRowContextMenuBuilder,\n} from './SimpleTable.types'\nimport { useCreateContextMenu } from '../ContextMenu'\n\nconst toMenuItems = (items: ReturnType<SimpleTableRowContextMenuBuilder>) => {\n if (!items) return []\n return Array.isArray(items) ? items.filter(Boolean) : [items]\n}\n\n// Define a custom fuzzy filter function that will apply ranking info to rows (using match-sorter utils)\nconst fuzzyFilter: FilterFn<any> = (row, columnId, searchValue, addMeta) => {\n const cellValue = row.getValue(columnId)\n // convert non-string cell values to string\n let searchString =\n typeof cellValue === 'string'\n ? cellValue\n : Array.isArray(cellValue)\n ? cellValue.join(' ')\n : JSON.stringify(cellValue)\n\n // combine label and parents into a single string for searching if columnId is 'label'\n if (columnId === 'label') {\n searchString = [row.original.label, row.original.name, ...(row.original.parents || [])].join(\n ' ',\n )\n }\n\n // Rank the item with CONTAINS threshold to avoid overly permissive fuzzy matches\n // This ensures the search term must be a substring, not just scattered characters\n const itemRank = rankItem(searchString, searchValue, { threshold: rankings.CONTAINS })\n\n // Store the itemRank info\n addMeta({\n itemRank,\n })\n\n // Return if the item should be filtered in/out\n return itemRank.passed\n}\n\n// Define a custom fuzzy sort function that will sort by rank if the row has ranking information\nconst fuzzySort: SortingFn<any> = (rowA, rowB, columnId) => {\n let dir = 0\n\n // Only sort by rank if the column has ranking information\n if (rowA.columnFiltersMeta[columnId]) {\n dir = compareItems(\n rowA.columnFiltersMeta[columnId]?.itemRank!,\n rowB.columnFiltersMeta[columnId]?.itemRank!,\n )\n }\n\n // Provide an alphanumeric fallback for when the item ranks are equal\n return dir === 0 ? sortingFns.alphanumeric(rowA, rowB, columnId) : dir\n}\n\n// Helper function to get row range for shift-selection\n// Operates on the provided list of rows (e.g., filtered and sorted rows)\nfunction getRowRange<TData extends RowData>(\n rows: Array<Row<TData>>,\n idA: string,\n idB: string,\n): Array<Row<TData>> {\n const range: Array<Row<TData>> = []\n // If idA and idB are the same, or one is not found, handle appropriately\n if (idA === idB) {\n const singleRow = rows.find((row) => row.id === idA)\n return singleRow ? [singleRow] : []\n }\n\n let indexA = -1\n let indexB = -1\n\n for (let i = 0; i < rows.length; i++) {\n if (rows[i].id === idA) indexA = i\n if (rows[i].id === idB) indexB = i\n if (indexA !== -1 && indexB !== -1) break\n }\n\n if (indexA === -1 || indexB === -1) return [] // One or both IDs not found\n\n const start = Math.min(indexA, indexB)\n const end = Math.max(indexA, indexB)\n\n for (let i = start; i <= end; i++) {\n range.push(rows[i])\n }\n return range\n}\n\nconst SimpleTable: FC<SimpleTableProps> = ({\n data = [],\n isLoading,\n error,\n isExpandable,\n isMultiSelect = true,\n enableClickToDeselect = true,\n enableNonFolderIndent = true,\n forceUpdateTable,\n globalFilter,\n meta,\n rowHeight,\n imgRatio,\n onScrollBottom,\n onRename,\n renamingId,\n onSubmitRename,\n onCancelRename,\n onRowDoubleClick,\n rowContextMenuBuilders = [],\n children,\n pt,\n fitContent,\n ...props\n}) => {\n const {\n rowSelection,\n expanded,\n setExpanded,\n onExpandedChange,\n onRowSelectionChange,\n rowPinning,\n onRowPinningChange,\n } = useSimpleTableContext()\n const lastSelectedIdRef = useRef<string | null>(null)\n const tableRef = useRef<Table<SimpleTableRow> | null>(null)\n const [showRowContextMenu] = useCreateContextMenu()\n\n // Refs for values used inside the columns memo.\n // Assigning synchronously (not via useEffect) means the cell function always reads\n // the latest value at render time, while the columns memo itself has a minimal dep\n // array and stays as a stable reference — critical because flexRender calls\n // React.createElement with the cell function, so a new reference = remount = broken dblclick.\n const onRowDoubleClickRef = useRef(onRowDoubleClick)\n onRowDoubleClickRef.current = onRowDoubleClick\n const renamingIdRef = useRef(renamingId)\n renamingIdRef.current = renamingId\n const onSubmitRenameRef = useRef(onSubmitRename)\n onSubmitRenameRef.current = onSubmitRename\n const onCancelRenameRef = useRef(onCancelRename)\n onCancelRenameRef.current = onCancelRename\n const onRenameRef = useRef(onRename)\n onRenameRef.current = onRename\n\n // stable data reference\n const tableData = useMemo(() => {\n if (!isLoading) return data\n\n // show loading placeholders\n return Array.from({ length: 10 }, (_, i) => ({\n id: `placeholder-${i}`,\n name: `placeholder-${i}`,\n label: `placeholder-${i}`,\n icon: null,\n img: null,\n subRows: [],\n data: {\n id: `placeholder-${i}`,\n },\n }))\n }, [isLoading, data, forceUpdateTable])\n\n // Define the core selection logic using useCallback for stability\n const handleSelectionLogic = useCallback(\n (\n tableInstance: Table<SimpleTableRow>,\n rowId: string,\n isShift: boolean,\n isCtrlOrMeta: boolean,\n ) => {\n const currentId = rowId\n const allProcessableRows = tableInstance.getFilteredRowModel().flatRows\n const currentRow = allProcessableRows.find((r) => r.id === currentId)\n\n if (!currentRow) return\n\n // Prevent selection of disabled rows\n if (currentRow.original.isDisabled) return\n\n // If click-to-deselect is enabled and only one row is selected and it's the current row\n if (\n enableClickToDeselect &&\n !isShift &&\n !isCtrlOrMeta &&\n Object.keys(tableInstance.getState().rowSelection).length === 1 &&\n tableInstance.getState().rowSelection[currentId]\n ) {\n tableInstance.setRowSelection({})\n lastSelectedIdRef.current = null\n return\n }\n\n if (isMultiSelect && isShift && lastSelectedIdRef.current) {\n const lastId = lastSelectedIdRef.current\n const anchorRow = allProcessableRows.find((r) => r.id === lastId)\n\n if (!anchorRow) {\n tableInstance.setRowSelection({ [currentId]: true })\n } else {\n const rowsToToggle = getRowRange(allProcessableRows, currentId, lastId)\n const newSelection: RowSelectionState = {}\n rowsToToggle.forEach((r) => (newSelection[r.id] = true))\n tableInstance.setRowSelection(newSelection)\n }\n } else if (isMultiSelect && isCtrlOrMeta) {\n currentRow.toggleSelected()\n } else {\n // If it's already selected and it's the only one, don't update selection to avoid unnecessary re-renders\n const selection = tableInstance.getState().rowSelection\n if (!(Object.keys(selection).length === 1 && selection[currentId])) {\n tableInstance.setRowSelection({ [currentId]: true })\n }\n }\n lastSelectedIdRef.current = currentId\n },\n [isMultiSelect, enableClickToDeselect],\n )\n\n // Callback for useRowKeydown's handleRowSelect prop\n // Uses tableRef to access the table instance, avoiding direct dependency on 'table' variable at definition time\n const handleRowSelectForKeydown = useCallback(\n (\n event: RowKeyboardEvent, // Use the specific keyboard event type from the hook\n selectedRow: Row<SimpleTableRow>,\n ) => {\n if (!tableRef.current) {\n console.warn('tableRef not yet available in handleRowSelectForKeydown')\n return\n }\n\n // Extract modifier keys from the event\n const isShiftKey = event.shiftKey\n const isCtrlKey = event.ctrlKey || event.metaKey\n\n handleSelectionLogic(\n tableRef.current, // Pass the main table instance\n selectedRow.id,\n isShiftKey,\n isCtrlKey,\n )\n },\n [handleSelectionLogic], // Depends only on handleSelectionLogic\n )\n\n // Handle arrow key navigation\n const handleArrowNavigation = useCallback(\n (direction: 'up' | 'down', currentRow: Row<SimpleTableRow>, event: RowKeyboardEvent) => {\n if (!tableRef.current) return\n\n // Use the row model which respects expanded state, not filtered model\n const visibleRows = tableRef.current.getRowModel().rows\n const currentIndex = visibleRows.findIndex((r) => r.id === currentRow.id)\n\n if (currentIndex === -1) return\n\n let nextIndex = direction === 'down' ? currentIndex + 1 : currentIndex - 1\n\n // Check bounds\n if (nextIndex < 0 || nextIndex >= visibleRows.length) return\n\n // Skip disabled rows\n while (nextIndex >= 0 && nextIndex < visibleRows.length) {\n const nextRow = visibleRows[nextIndex]\n if (!nextRow.original.isDisabled) {\n // Found a valid row\n // Select the next row\n handleSelectionLogic(\n tableRef.current,\n nextRow.id,\n event.shiftKey,\n event.ctrlKey || event.metaKey,\n )\n\n // Focus the next row's cell. Scope to this table's container: row ids are\n // entity ids that can also exist in other SimpleTables on the page (slicer),\n // so a document-wide getElementById would steal focus to a duplicate.\n requestAnimationFrame(() => {\n const container = tableContainerRef.current\n const nextRowElement = container\n ? container.querySelector(`#${CSS.escape(nextRow.id)}`)\n : document.getElementById(nextRow.id)\n const nextCell = nextRowElement?.querySelector('[tabindex=\"0\"]') as HTMLElement\n if (nextCell) {\n nextCell.focus()\n nextCell.scrollIntoView({ block: 'nearest', behavior: 'smooth' })\n }\n })\n return\n }\n // Move to next row if current is disabled\n nextIndex = direction === 'down' ? nextIndex + 1 : nextIndex - 1\n }\n },\n [handleSelectionLogic],\n )\n\n // handleRenameForKeydown reads from onRenameRef so it has empty deps and is\n // permanently stable — keeping handleRowKeyDown and therefore columns stable.\n const handleRenameForKeydown = useCallback(\n (e: RowKeyboardEvent, row: Row<SimpleTableRow>) => {\n if (!row.original.isDisabled) onRenameRef.current?.(row.id, row)\n },\n [], // eslint-disable-line react-hooks/exhaustive-deps\n )\n\n const { handleRowKeyDown } = useRowKeydown<SimpleTableRow>({\n handleRowSelect: handleRowSelectForKeydown,\n handleArrowNavigation,\n handleRename: handleRenameForKeydown,\n })\n\n const columns = useMemo<ColumnDef<SimpleTableRow>[]>(\n () => [\n {\n accessorKey: 'label',\n header: undefined,\n filterFn: 'fuzzy',\n sortingFn: fuzzySort, //sort by fuzzy rank (falls back to alphanumeric)\n cell: ({ row, getValue, table: cellTableInstance }) => {\n const cellMeta = cellTableInstance.options.meta\n\n const handleCellClick = (event: ReactMouseEvent<HTMLElement, MouseEvent>) => {\n // Prevent row selection if clicking on an interactive element within the cell\n if (\n event.target instanceof HTMLInputElement ||\n event.target instanceof HTMLButtonElement ||\n event.target instanceof HTMLTextAreaElement ||\n event.target instanceof HTMLSelectElement ||\n event.target instanceof HTMLAnchorElement ||\n (event.target as HTMLElement).closest('button, a, input, textarea, select')\n ) {\n return\n }\n handleSelectionLogic(\n cellTableInstance, // Pass the cell's table instance\n row.id,\n event.shiftKey,\n event.ctrlKey || event.metaKey,\n )\n }\n\n const props: SimpleTableCellTemplateProps & {\n onClick?: (event: ReactMouseEvent<HTMLElement, MouseEvent>) => void\n onDoubleClick?: (event: ReactMouseEvent<HTMLElement, MouseEvent>) => void\n } = {\n className: clsx({\n selected: row.getIsSelected(),\n loading: cellMeta?.isLoading,\n disabled: row.original.isDisabled, // you can't select disabled rows\n inactive: row.original.inactive, // false: archived items but still selectable\n }),\n onKeyDown: (e) => {\n if (e.target instanceof HTMLInputElement) return\n // Corrected typo: handleRowKeydown -> handleRowKeyDown\n handleRowKeyDown(e, row)\n },\n depth: row.depth,\n tabIndex: 0,\n value: getValue<string>(),\n parents: row.original.parents,\n icon: row.original.icon || undefined,\n iconColor: row.original.iconColor,\n iconFilled: row.original.iconFilled,\n img: row.original.img,\n imgShape: row.original.imgShape,\n imgRatio: imgRatio,\n isRowExpandable: row.getCanExpand(),\n enableNonFolderIndent,\n isRowExpanded: row.getIsExpanded(),\n isTableExpandable: cellMeta?.isExpandable,\n onExpandClick: row.getToggleExpandedHandler(),\n startContent: row.original.startContent,\n endContent: row.original.endContent,\n isDisabled: row.original.isDisabled,\n disabledMessage: row.original.disabledMessage,\n isRenaming: row.id === renamingIdRef.current,\n onSubmitRename: onSubmitRenameRef.current\n ? (v) => onSubmitRenameRef.current!(row.id, v)\n : undefined,\n onCancelRename: onCancelRenameRef.current,\n ...pt?.cell,\n onClick: handleCellClick, // Added onClick handler\n onDoubleClick: (e) => onRowDoubleClickRef.current?.(row.id, row),\n }\n\n // Use children function if provided, otherwise default to SimpleTableCellTemplate\n return cellMeta?.children ? (\n cellMeta.children(props, row, cellTableInstance)\n ) : (\n <SimpleTableCellTemplate {...props} {...pt?.cell} />\n )\n },\n },\n ],\n [\n forceUpdateTable,\n handleSelectionLogic,\n handleRowKeyDown,\n enableClickToDeselect,\n enableNonFolderIndent,\n imgRatio,\n ],\n )\n\n const handleRowSelectionChangeCallback: OnChangeFn<RowSelectionState> = useCallback(\n (updater) => {\n onRowSelectionChange(functionalUpdate(updater, rowSelection))\n },\n [onRowSelectionChange],\n )\n\n const handleRowPinningChangeCallback: OnChangeFn<RowPinningState> = useCallback(\n (updater) => {\n onRowPinningChange?.(functionalUpdate(updater, rowPinning || {}))\n },\n [onRowPinningChange],\n )\n\n const handleExpandedChange = useCallback(\n (updater: any) => {\n setExpanded?.((old) => {\n const newExpanded = updater instanceof Function ? updater(old) : updater\n onExpandedChange?.(newExpanded)\n return newExpanded\n })\n },\n [setExpanded],\n )\n\n const table = useReactTable({\n data: tableData,\n columns,\n state: {\n expanded,\n rowSelection,\n globalFilter,\n rowPinning,\n },\n onRowSelectionChange: handleRowSelectionChangeCallback,\n onRowPinningChange: handleRowPinningChangeCallback,\n filterFns: {\n fuzzy: fuzzyFilter,\n },\n globalFilterFn: 'fuzzy',\n enableRowSelection: true, //enable row selection for all rows\n enableRowPinning: !!onRowPinningChange,\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n onExpandedChange: handleExpandedChange,\n getSubRows: (row) => row.subRows,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // debugTable: true,\n // @ts-expect-error: updateData is not required\n meta: useMemo(\n () => ({\n isExpandable: !!isExpandable,\n isLoading: isLoading,\n children: children,\n ...meta,\n }),\n [isExpandable, isLoading, children, meta],\n ),\n })\n\n // Update tableRef whenever the table instance changes.\n // This ensures handleRowSelectForKeydown uses the current table instance.\n useEffect(() => {\n tableRef.current = table\n }, [table])\n\n const { rows } = table.getRowModel()\n\n const handleRowContextMenu = useCallback(\n (rowId: string, rowIndex: number, e: ReactMouseEvent<HTMLTableRowElement>) => {\n if (!tableRef.current) return\n const row = rows[rowIndex]\n if (!row || row.original === undefined) return\n\n e.preventDefault()\n e.stopPropagation()\n\n const selectedIds = Object.keys(rowSelection)\n\n const nextSelectedRows = selectedIds.includes(rowId) ? selectedIds : [rowId]\n\n if (!selectedIds.includes(rowId)) {\n // convert array to RowSelectionState object\n const nextSelection: RowSelectionState = { [rowId]: true }\n onRowSelectionChange?.(nextSelection)\n }\n\n const menuItems = rowContextMenuBuilders.flatMap((builder) =>\n toMenuItems(\n builder(e as any, {\n rowId,\n rowIndex,\n row,\n selectedRows: nextSelectedRows,\n isSelected: nextSelectedRows.includes(rowId),\n }),\n ),\n )\n\n if (menuItems.length > 0) {\n showRowContextMenu(e as any, menuItems)\n }\n },\n [rowContextMenuBuilders, rows, rowSelection, onRowSelectionChange, showRowContextMenu],\n )\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n\n const rowVirtualizer = useVirtualizer({\n count: rows.length,\n estimateSize: () => rowHeight || 34, //estimate row height for accurate scrollbar dragging\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement: rowHeight\n ? () => rowHeight\n : typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n // Memoize the ref callback to prevent infinite re-renders\n const measureElementRef = useCallback(\n (node: HTMLElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n // Handle scroll to bottom detection\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLDivElement>) => {\n if (!onScrollBottom) return\n\n const target = event.currentTarget\n const { scrollTop, scrollHeight, clientHeight } = target\n\n // Check if we're near the bottom (within 100px)\n const isNearBottom = scrollHeight - scrollTop - clientHeight < 100\n\n if (isNearBottom && !isLoading) {\n onScrollBottom()\n }\n },\n [onScrollBottom, isLoading],\n )\n\n const handleContainerClick = (e: React.MouseEvent<HTMLDivElement>) => {\n // if the click is outside of any row, clear selection\n if (enableClickToDeselect && !(e.target as HTMLElement).closest('tr')) {\n table.setRowSelection({})\n lastSelectedIdRef.current = null\n }\n }\n\n return (\n <Styled.TableContainer\n ref={tableContainerRef}\n onScroll={handleScroll}\n onClick={handleContainerClick}\n {...props}\n className={clsx(props.className, { isLoading, fitContent })}\n >\n {!error && (\n <table>\n <tbody\n style={{\n height: `${rowVirtualizer?.getTotalSize()}px`, //tells scrollbar how big the table is\n }}\n >\n {rowVirtualizer?.getVirtualItems().map((virtualRow) => {\n const row = rows[virtualRow.index] as Row<SimpleTableRow>\n return (\n <tr\n data-index={virtualRow.index} //needed for dynamic row height measurement\n ref={measureElementRef} //measure dynamic row height\n key={row.id}\n id={row.id}\n onContextMenu={(e) => handleRowContextMenu(row.id, virtualRow.index, e)}\n {...pt?.row}\n style={{\n transform: `translateY(${virtualRow.start}px)`, //this should always be a `style` as it changes on scroll\n ...pt?.row?.style, // custom styles to be passed\n }}\n >\n {row.getVisibleCells().map((cell) => {\n return (\n <td key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </td>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n )}\n {!!error && <EmptyPlaceholder error={error} />}\n </Styled.TableContainer>\n )\n}\n\nexport default SimpleTable\n"],"names":["toMenuItems","items","fuzzyFilter","row","columnId","searchValue","addMeta","cellValue","searchString","itemRank","rankItem","rankings","fuzzySort","rowA","rowB","dir","compareItems","sortingFns","getRowRange","rows","idA","idB","range","singleRow","indexA","indexB","i","start","end","SimpleTable","data","isLoading","error","isExpandable","isMultiSelect","enableClickToDeselect","enableNonFolderIndent","forceUpdateTable","globalFilter","meta","rowHeight","imgRatio","onScrollBottom","onRename","renamingId","onSubmitRename","onCancelRename","onRowDoubleClick","rowContextMenuBuilders","children","pt","fitContent","props","rowSelection","expanded","setExpanded","onExpandedChange","onRowSelectionChange","rowPinning","onRowPinningChange","useSimpleTableContext","lastSelectedIdRef","useRef","tableRef","showRowContextMenu","useCreateContextMenu","onRowDoubleClickRef","renamingIdRef","onSubmitRenameRef","onCancelRenameRef","onRenameRef","tableData","useMemo","_","handleSelectionLogic","useCallback","tableInstance","rowId","isShift","isCtrlOrMeta","currentId","allProcessableRows","currentRow","r","lastId","rowsToToggle","newSelection","selection","handleRowSelectForKeydown","event","selectedRow","isShiftKey","isCtrlKey","handleArrowNavigation","direction","visibleRows","currentIndex","nextIndex","nextRow","container","tableContainerRef","nextCell","handleRenameForKeydown","handleRowKeyDown","useRowKeydown","columns","getValue","cellTableInstance","cellMeta","handleCellClick","clsx","e","v","jsx","SimpleTableCellTemplate","handleRowSelectionChangeCallback","updater","functionalUpdate","handleRowPinningChangeCallback","handleExpandedChange","old","newExpanded","table","useReactTable","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","useEffect","handleRowContextMenu","rowIndex","selectedIds","nextSelectedRows","nextSelection","menuItems","builder","rowVirtualizer","useVirtualizer","element","measureElementRef","node","handleScroll","target","scrollTop","scrollHeight","clientHeight","handleContainerClick","jsxs","Styled.TableContainer","virtualRow","cell","flexRender","EmptyPlaceholder"],"mappings":"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"}
@@ -157,22 +157,10 @@ import "../../context/WebsocketContext.es.js";
157
157
  import "../../context/GlobalContext.es.js";
158
158
  import "../../context/ProjectContext.es.js";
159
159
  import "../../context/ProjectFoldersContextInstance.es.js";
160
- import "react-redux";
161
- import "custom-protocol-check";
162
- import "../ProjectTreeTable/components/GroupSettingsFallback.es.js";
163
- import "../../components/DetailsPanelDetails/DetailsSection.es.js";
164
- import "../../components/DetailsPanelDetails/FieldLabel.es.js";
165
- import "../../components/DoneCheckbox/DoneCheckbox.es.js";
166
- import "../../components/EarlyPreview/EarlyPreview.es.js";
167
- import { EmptyPlaceholder as Pt } from "../../components/EmptyPlaceholder/EmptyPlaceholder.es.js";
168
- import "../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.es.js";
169
- import "../../components/InfoMessage/InfoMessage.es.js";
170
- import "@dnd-kit/core";
171
- import "@dnd-kit/sortable";
172
- import "../../components/EnumEditor/EnumEditor.styled.es.js";
160
+ import "../../context/EntityUpdatesContextInstance.es.js";
173
161
  import "../ContextMenu/ContextMenuContext.es.js";
174
162
  /* empty css */
175
- import { useCreateContextMenu as Ht } from "../ContextMenu/useCreateContextMenu.es.js";
163
+ import { useCreateContextMenu as Pt } from "../ContextMenu/useCreateContextMenu.es.js";
176
164
  import "../Feed/context/FeedContext.es.js";
177
165
  import "../Feed/components/Tooltips/UserTooltipItem.es.js";
178
166
  import "../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.es.js";
@@ -196,6 +184,7 @@ import "../Feed/components/ActivityHeader/ActivityHeader.styled.es.js";
196
184
  import "../Feed/components/ActivityDate.es.js";
197
185
  import "../Feed/components/ActivityCategorySelect/CategoryTag.es.js";
198
186
  import "../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.es.js";
187
+ import "../Feed/components/ActivityStatusChange/ActivityStatusSecondary.es.js";
199
188
  import "../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.es.js";
200
189
  import "../Feed/components/ActivityVersions/ActivityVersions.styled.es.js";
201
190
  import "../Feed/components/ActivityGroup/ActivityGroup.styled.es.js";
@@ -203,6 +192,8 @@ import "../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.es
203
192
  import "../Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js";
204
193
  import "../Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js";
205
194
  import "../Feed/Feed.styled.es.js";
195
+ import { EmptyPlaceholder as Ht } from "../../components/EmptyPlaceholder/EmptyPlaceholder.es.js";
196
+ import "../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.es.js";
206
197
  import "../Feed/components/FeedSearchFilter.es.js";
207
198
  import "../ProjectTreeTable/widgets/CollapsedWidget.es.js";
208
199
  import "../ProjectTreeTable/widgets/DateWidget.es.js";
@@ -236,12 +227,15 @@ import "../ProjectTreeTable/components/SelectionCell.es.js";
236
227
  import "../ProjectTreeTable/components/RowSelectionHeader.es.js";
237
228
  import "../ProjectTreeTable/widgets/LoadMoreWidget.es.js";
238
229
  import "../ProjectTreeTable/components/HeaderActionButton.es.js";
230
+ import "@dnd-kit/core";
231
+ import "@dnd-kit/sortable";
239
232
  import "../ProjectTreeTable/components/TableFooterRow.es.js";
240
233
  import "../EntityPickerDialog/EntityPickerDialog.es.js";
241
234
  import "../Slicer/components/Slicer.es.js";
242
235
  import "../Slicer/context/SlicerContextInstance.es.js";
243
236
  import "../Slicer/components/SlicerDropdownFallback.es.js";
244
237
  import "../Slicer/hooks/useTableDataBySlice.es.js";
238
+ import "react-redux";
245
239
  import "../DetailsPanel/DetailsPanel.styled.es.js";
246
240
  import "../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.es.js";
247
241
  import "../DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js";
@@ -262,6 +256,14 @@ import "../Views/Views.styled.es.js";
262
256
  import "../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
263
257
  import "../ListTable/ListTableRow.es.js";
264
258
  import "../ListTable/ListTable.styled.es.js";
259
+ import "custom-protocol-check";
260
+ import "../ProjectTreeTable/components/GroupSettingsFallback.es.js";
261
+ import "../../components/DetailsPanelDetails/DetailsSection.es.js";
262
+ import "../../components/DetailsPanelDetails/FieldLabel.es.js";
263
+ import "../../components/DoneCheckbox/DoneCheckbox.es.js";
264
+ import "../../components/EarlyPreview/EarlyPreview.es.js";
265
+ import "../../components/InfoMessage/InfoMessage.es.js";
266
+ import "../../components/EnumEditor/EnumEditor.styled.es.js";
265
267
  import "../../components/EntityPanelUploader/EntityPanelUploader.styled.es.js";
266
268
  import "axios";
267
269
  import "../../components/ReviewablesList/ReviewablesList.styled.es.js";
@@ -288,6 +290,7 @@ import "../../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
288
290
  import "../../components/ShareOptionIcon/ShareOptionIcon.es.js";
289
291
  import "../../components/SimpleFormDialog/SimpleFormDialog.es.js";
290
292
  import "../../components/StyledLink/StyledLink.es.js";
293
+ import "../../components/SyncButton/SyncButton.es.js";
291
294
  import "../../components/TableGridSwitch/TableGridSwitch.es.js";
292
295
  import "../../components/Thumbnail/Thumbnail.styled.es.js";
293
296
  import "../../components/Thumbnail/StackedThumbnails.es.js";
@@ -331,7 +334,7 @@ function qt(e, l, d) {
331
334
  g.push(e[s]);
332
335
  return g;
333
336
  }
334
- const ym = ({
337
+ const wm = ({
335
338
  data: e = [],
336
339
  isLoading: l,
337
340
  error: d,
@@ -364,7 +367,7 @@ const ym = ({
364
367
  onRowSelectionChange: K,
365
368
  rowPinning: v,
366
369
  onRowPinningChange: A
367
- } = At(), C = h(null), x = h(null), [G] = Ht(), Q = h(B);
370
+ } = At(), C = h(null), x = h(null), [G] = Pt(), Q = h(B);
368
371
  Q.current = B;
369
372
  const U = h(O);
370
373
  U.current = O;
@@ -677,12 +680,12 @@ const ym = ({
677
680
  })
678
681
  }
679
682
  ) }),
680
- !!d && /* @__PURE__ */ y.jsx(Pt, { error: d })
683
+ !!d && /* @__PURE__ */ y.jsx(Ht, { error: d })
681
684
  ]
682
685
  }
683
686
  );
684
687
  };
685
688
  export {
686
- ym as default
689
+ wm as default
687
690
  };
688
691
  //# sourceMappingURL=SimpleTable.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleTable.es.js","sources":["../../../../../src/containers/SimpleTable/SimpleTable.tsx"],"sourcesContent":["import { FC, useMemo, useRef, MouseEvent as ReactMouseEvent, useCallback, useEffect } from 'react'\nimport * as Styled from './SimpleTable.styled'\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n ColumnDef,\n flexRender,\n Row,\n FilterFn,\n SortingFn,\n sortingFns,\n Table,\n RowData,\n OnChangeFn,\n RowSelectionState,\n functionalUpdate,\n} from '@tanstack/react-table'\nimport { useVirtualizer } from '@tanstack/react-virtual'\n\nimport clsx from 'clsx'\nimport useRowKeydown, { RowKeyboardEvent } from './hooks/useRowKeydown'\n\nimport { rankItem, compareItems, rankings } from '@tanstack/match-sorter-utils'\nimport { useSimpleTableContext } from './context/SimpleTableContext'\nimport { SimpleTableCellTemplate, SimpleTableCellTemplateProps } from './SimpleTableRowTemplate'\nimport { EmptyPlaceholder } from '@shared/components'\nimport { RowPinningState } from '@tanstack/react-table'\nimport {\n SimpleTableProps,\n SimpleTableRow,\n SimpleTableRowContextMenuBuilder,\n} from './SimpleTable.types'\nimport { useCreateContextMenu } from '../ContextMenu'\n\nconst toMenuItems = (items: ReturnType<SimpleTableRowContextMenuBuilder>) => {\n if (!items) return []\n return Array.isArray(items) ? items.filter(Boolean) : [items]\n}\n\n// Define a custom fuzzy filter function that will apply ranking info to rows (using match-sorter utils)\nconst fuzzyFilter: FilterFn<any> = (row, columnId, searchValue, addMeta) => {\n const cellValue = row.getValue(columnId)\n // convert non-string cell values to string\n let searchString =\n typeof cellValue === 'string'\n ? cellValue\n : Array.isArray(cellValue)\n ? cellValue.join(' ')\n : JSON.stringify(cellValue)\n\n // combine label and parents into a single string for searching if columnId is 'label'\n if (columnId === 'label') {\n searchString = [row.original.label, row.original.name, ...(row.original.parents || [])].join(\n ' ',\n )\n }\n\n // Rank the item with CONTAINS threshold to avoid overly permissive fuzzy matches\n // This ensures the search term must be a substring, not just scattered characters\n const itemRank = rankItem(searchString, searchValue, { threshold: rankings.CONTAINS })\n\n // Store the itemRank info\n addMeta({\n itemRank,\n })\n\n // Return if the item should be filtered in/out\n return itemRank.passed\n}\n\n// Define a custom fuzzy sort function that will sort by rank if the row has ranking information\nconst fuzzySort: SortingFn<any> = (rowA, rowB, columnId) => {\n let dir = 0\n\n // Only sort by rank if the column has ranking information\n if (rowA.columnFiltersMeta[columnId]) {\n dir = compareItems(\n rowA.columnFiltersMeta[columnId]?.itemRank!,\n rowB.columnFiltersMeta[columnId]?.itemRank!,\n )\n }\n\n // Provide an alphanumeric fallback for when the item ranks are equal\n return dir === 0 ? sortingFns.alphanumeric(rowA, rowB, columnId) : dir\n}\n\n// Helper function to get row range for shift-selection\n// Operates on the provided list of rows (e.g., filtered and sorted rows)\nfunction getRowRange<TData extends RowData>(\n rows: Array<Row<TData>>,\n idA: string,\n idB: string,\n): Array<Row<TData>> {\n const range: Array<Row<TData>> = []\n // If idA and idB are the same, or one is not found, handle appropriately\n if (idA === idB) {\n const singleRow = rows.find((row) => row.id === idA)\n return singleRow ? [singleRow] : []\n }\n\n let indexA = -1\n let indexB = -1\n\n for (let i = 0; i < rows.length; i++) {\n if (rows[i].id === idA) indexA = i\n if (rows[i].id === idB) indexB = i\n if (indexA !== -1 && indexB !== -1) break\n }\n\n if (indexA === -1 || indexB === -1) return [] // One or both IDs not found\n\n const start = Math.min(indexA, indexB)\n const end = Math.max(indexA, indexB)\n\n for (let i = start; i <= end; i++) {\n range.push(rows[i])\n }\n return range\n}\n\nconst SimpleTable: FC<SimpleTableProps> = ({\n data = [],\n isLoading,\n error,\n isExpandable,\n isMultiSelect = true,\n enableClickToDeselect = true,\n enableNonFolderIndent = true,\n forceUpdateTable,\n globalFilter,\n meta,\n rowHeight,\n imgRatio,\n onScrollBottom,\n onRename,\n renamingId,\n onSubmitRename,\n onCancelRename,\n onRowDoubleClick,\n rowContextMenuBuilders = [],\n children,\n pt,\n fitContent,\n ...props\n}) => {\n const {\n rowSelection,\n expanded,\n setExpanded,\n onExpandedChange,\n onRowSelectionChange,\n rowPinning,\n onRowPinningChange,\n } = useSimpleTableContext()\n const lastSelectedIdRef = useRef<string | null>(null)\n const tableRef = useRef<Table<SimpleTableRow> | null>(null)\n const [showRowContextMenu] = useCreateContextMenu()\n\n // Refs for values used inside the columns memo.\n // Assigning synchronously (not via useEffect) means the cell function always reads\n // the latest value at render time, while the columns memo itself has a minimal dep\n // array and stays as a stable reference — critical because flexRender calls\n // React.createElement with the cell function, so a new reference = remount = broken dblclick.\n const onRowDoubleClickRef = useRef(onRowDoubleClick)\n onRowDoubleClickRef.current = onRowDoubleClick\n const renamingIdRef = useRef(renamingId)\n renamingIdRef.current = renamingId\n const onSubmitRenameRef = useRef(onSubmitRename)\n onSubmitRenameRef.current = onSubmitRename\n const onCancelRenameRef = useRef(onCancelRename)\n onCancelRenameRef.current = onCancelRename\n const onRenameRef = useRef(onRename)\n onRenameRef.current = onRename\n\n // stable data reference\n const tableData = useMemo(() => {\n if (!isLoading) return data\n\n // show loading placeholders\n return Array.from({ length: 10 }, (_, i) => ({\n id: `placeholder-${i}`,\n name: `placeholder-${i}`,\n label: `placeholder-${i}`,\n icon: null,\n img: null,\n subRows: [],\n data: {\n id: `placeholder-${i}`,\n },\n }))\n }, [isLoading, data, forceUpdateTable])\n\n // Define the core selection logic using useCallback for stability\n const handleSelectionLogic = useCallback(\n (\n tableInstance: Table<SimpleTableRow>,\n rowId: string,\n isShift: boolean,\n isCtrlOrMeta: boolean,\n ) => {\n const currentId = rowId\n const allProcessableRows = tableInstance.getFilteredRowModel().flatRows\n const currentRow = allProcessableRows.find((r) => r.id === currentId)\n\n if (!currentRow) return\n\n // Prevent selection of disabled rows\n if (currentRow.original.isDisabled) return\n\n // If click-to-deselect is enabled and only one row is selected and it's the current row\n if (\n enableClickToDeselect &&\n !isShift &&\n !isCtrlOrMeta &&\n Object.keys(tableInstance.getState().rowSelection).length === 1 &&\n tableInstance.getState().rowSelection[currentId]\n ) {\n tableInstance.setRowSelection({})\n lastSelectedIdRef.current = null\n return\n }\n\n if (isMultiSelect && isShift && lastSelectedIdRef.current) {\n const lastId = lastSelectedIdRef.current\n const anchorRow = allProcessableRows.find((r) => r.id === lastId)\n\n if (!anchorRow) {\n tableInstance.setRowSelection({ [currentId]: true })\n } else {\n const rowsToToggle = getRowRange(allProcessableRows, currentId, lastId)\n const newSelection: RowSelectionState = {}\n rowsToToggle.forEach((r) => (newSelection[r.id] = true))\n tableInstance.setRowSelection(newSelection)\n }\n } else if (isMultiSelect && isCtrlOrMeta) {\n currentRow.toggleSelected()\n } else {\n // If it's already selected and it's the only one, don't update selection to avoid unnecessary re-renders\n const selection = tableInstance.getState().rowSelection\n if (!(Object.keys(selection).length === 1 && selection[currentId])) {\n tableInstance.setRowSelection({ [currentId]: true })\n }\n }\n lastSelectedIdRef.current = currentId\n },\n [isMultiSelect, enableClickToDeselect],\n )\n\n // Callback for useRowKeydown's handleRowSelect prop\n // Uses tableRef to access the table instance, avoiding direct dependency on 'table' variable at definition time\n const handleRowSelectForKeydown = useCallback(\n (\n event: RowKeyboardEvent, // Use the specific keyboard event type from the hook\n selectedRow: Row<SimpleTableRow>,\n ) => {\n if (!tableRef.current) {\n console.warn('tableRef not yet available in handleRowSelectForKeydown')\n return\n }\n\n // Extract modifier keys from the event\n const isShiftKey = event.shiftKey\n const isCtrlKey = event.ctrlKey || event.metaKey\n\n handleSelectionLogic(\n tableRef.current, // Pass the main table instance\n selectedRow.id,\n isShiftKey,\n isCtrlKey,\n )\n },\n [handleSelectionLogic], // Depends only on handleSelectionLogic\n )\n\n // Handle arrow key navigation\n const handleArrowNavigation = useCallback(\n (direction: 'up' | 'down', currentRow: Row<SimpleTableRow>, event: RowKeyboardEvent) => {\n if (!tableRef.current) return\n\n // Use the row model which respects expanded state, not filtered model\n const visibleRows = tableRef.current.getRowModel().rows\n const currentIndex = visibleRows.findIndex((r) => r.id === currentRow.id)\n\n if (currentIndex === -1) return\n\n let nextIndex = direction === 'down' ? currentIndex + 1 : currentIndex - 1\n\n // Check bounds\n if (nextIndex < 0 || nextIndex >= visibleRows.length) return\n\n // Skip disabled rows\n while (nextIndex >= 0 && nextIndex < visibleRows.length) {\n const nextRow = visibleRows[nextIndex]\n if (!nextRow.original.isDisabled) {\n // Found a valid row\n // Select the next row\n handleSelectionLogic(\n tableRef.current,\n nextRow.id,\n event.shiftKey,\n event.ctrlKey || event.metaKey,\n )\n\n // Focus the next row's cell. Scope to this table's container: row ids are\n // entity ids that can also exist in other SimpleTables on the page (slicer),\n // so a document-wide getElementById would steal focus to a duplicate.\n requestAnimationFrame(() => {\n const container = tableContainerRef.current\n const nextRowElement = container\n ? container.querySelector(`#${CSS.escape(nextRow.id)}`)\n : document.getElementById(nextRow.id)\n const nextCell = nextRowElement?.querySelector('[tabindex=\"0\"]') as HTMLElement\n if (nextCell) {\n nextCell.focus()\n nextCell.scrollIntoView({ block: 'nearest', behavior: 'smooth' })\n }\n })\n return\n }\n // Move to next row if current is disabled\n nextIndex = direction === 'down' ? nextIndex + 1 : nextIndex - 1\n }\n },\n [handleSelectionLogic],\n )\n\n // handleRenameForKeydown reads from onRenameRef so it has empty deps and is\n // permanently stable — keeping handleRowKeyDown and therefore columns stable.\n const handleRenameForKeydown = useCallback(\n (e: RowKeyboardEvent, row: Row<SimpleTableRow>) => {\n if (!row.original.isDisabled) onRenameRef.current?.(row.id, row)\n },\n [], // eslint-disable-line react-hooks/exhaustive-deps\n )\n\n const { handleRowKeyDown } = useRowKeydown<SimpleTableRow>({\n handleRowSelect: handleRowSelectForKeydown,\n handleArrowNavigation,\n handleRename: handleRenameForKeydown,\n })\n\n const columns = useMemo<ColumnDef<SimpleTableRow>[]>(\n () => [\n {\n accessorKey: 'label',\n header: undefined,\n filterFn: 'fuzzy',\n sortingFn: fuzzySort, //sort by fuzzy rank (falls back to alphanumeric)\n cell: ({ row, getValue, table: cellTableInstance }) => {\n const cellMeta = cellTableInstance.options.meta\n\n const handleCellClick = (event: ReactMouseEvent<HTMLElement, MouseEvent>) => {\n // Prevent row selection if clicking on an interactive element within the cell\n if (\n event.target instanceof HTMLInputElement ||\n event.target instanceof HTMLButtonElement ||\n event.target instanceof HTMLTextAreaElement ||\n event.target instanceof HTMLSelectElement ||\n event.target instanceof HTMLAnchorElement ||\n (event.target as HTMLElement).closest('button, a, input, textarea, select')\n ) {\n return\n }\n handleSelectionLogic(\n cellTableInstance, // Pass the cell's table instance\n row.id,\n event.shiftKey,\n event.ctrlKey || event.metaKey,\n )\n }\n\n const props: SimpleTableCellTemplateProps & {\n onClick?: (event: ReactMouseEvent<HTMLElement, MouseEvent>) => void\n onDoubleClick?: (event: ReactMouseEvent<HTMLElement, MouseEvent>) => void\n } = {\n className: clsx({\n selected: row.getIsSelected(),\n loading: cellMeta?.isLoading,\n disabled: row.original.isDisabled, // you can't select disabled rows\n inactive: row.original.inactive, // false: archived items but still selectable\n }),\n onKeyDown: (e) => {\n if (e.target instanceof HTMLInputElement) return\n // Corrected typo: handleRowKeydown -> handleRowKeyDown\n handleRowKeyDown(e, row)\n },\n depth: row.depth,\n tabIndex: 0,\n value: getValue<string>(),\n parents: row.original.parents,\n icon: row.original.icon || undefined,\n iconColor: row.original.iconColor,\n iconFilled: row.original.iconFilled,\n img: row.original.img,\n imgShape: row.original.imgShape,\n imgRatio: imgRatio,\n isRowExpandable: row.getCanExpand(),\n enableNonFolderIndent,\n isRowExpanded: row.getIsExpanded(),\n isTableExpandable: cellMeta?.isExpandable,\n onExpandClick: row.getToggleExpandedHandler(),\n startContent: row.original.startContent,\n endContent: row.original.endContent,\n isDisabled: row.original.isDisabled,\n disabledMessage: row.original.disabledMessage,\n isRenaming: row.id === renamingIdRef.current,\n onSubmitRename: onSubmitRenameRef.current\n ? (v) => onSubmitRenameRef.current!(row.id, v)\n : undefined,\n onCancelRename: onCancelRenameRef.current,\n ...pt?.cell,\n onClick: handleCellClick, // Added onClick handler\n onDoubleClick: (e) => onRowDoubleClickRef.current?.(row.id, row),\n }\n\n // Use children function if provided, otherwise default to SimpleTableCellTemplate\n return cellMeta?.children ? (\n cellMeta.children(props, row, cellTableInstance)\n ) : (\n <SimpleTableCellTemplate {...props} {...pt?.cell} />\n )\n },\n },\n ],\n [\n forceUpdateTable,\n handleSelectionLogic,\n handleRowKeyDown,\n enableClickToDeselect,\n enableNonFolderIndent,\n imgRatio,\n ],\n )\n\n const handleRowSelectionChangeCallback: OnChangeFn<RowSelectionState> = useCallback(\n (updater) => {\n onRowSelectionChange(functionalUpdate(updater, rowSelection))\n },\n [onRowSelectionChange],\n )\n\n const handleRowPinningChangeCallback: OnChangeFn<RowPinningState> = useCallback(\n (updater) => {\n onRowPinningChange?.(functionalUpdate(updater, rowPinning || {}))\n },\n [onRowPinningChange],\n )\n\n const handleExpandedChange = useCallback(\n (updater: any) => {\n setExpanded?.((old) => {\n const newExpanded = updater instanceof Function ? updater(old) : updater\n onExpandedChange?.(newExpanded)\n return newExpanded\n })\n },\n [setExpanded],\n )\n\n const table = useReactTable({\n data: tableData,\n columns,\n state: {\n expanded,\n rowSelection,\n globalFilter,\n rowPinning,\n },\n onRowSelectionChange: handleRowSelectionChangeCallback,\n onRowPinningChange: handleRowPinningChangeCallback,\n filterFns: {\n fuzzy: fuzzyFilter,\n },\n globalFilterFn: 'fuzzy',\n enableRowSelection: true, //enable row selection for all rows\n enableRowPinning: !!onRowPinningChange,\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n onExpandedChange: handleExpandedChange,\n getSubRows: (row) => row.subRows,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // debugTable: true,\n // @ts-expect-error: updateData is not required\n meta: useMemo(\n () => ({\n isExpandable: !!isExpandable,\n isLoading: isLoading,\n children: children,\n ...meta,\n }),\n [isExpandable, isLoading, children, meta],\n ),\n })\n\n // Update tableRef whenever the table instance changes.\n // This ensures handleRowSelectForKeydown uses the current table instance.\n useEffect(() => {\n tableRef.current = table\n }, [table])\n\n const { rows } = table.getRowModel()\n\n const handleRowContextMenu = useCallback(\n (rowId: string, rowIndex: number, e: ReactMouseEvent<HTMLTableRowElement>) => {\n if (!tableRef.current) return\n const row = rows[rowIndex]\n if (!row || row.original === undefined) return\n\n e.preventDefault()\n e.stopPropagation()\n\n const selectedIds = Object.keys(rowSelection)\n\n const nextSelectedRows = selectedIds.includes(rowId) ? selectedIds : [rowId]\n\n if (!selectedIds.includes(rowId)) {\n // convert array to RowSelectionState object\n const nextSelection: RowSelectionState = { [rowId]: true }\n onRowSelectionChange?.(nextSelection)\n }\n\n const menuItems = rowContextMenuBuilders.flatMap((builder) =>\n toMenuItems(\n builder(e as any, {\n rowId,\n rowIndex,\n row,\n selectedRows: nextSelectedRows,\n isSelected: nextSelectedRows.includes(rowId),\n }),\n ),\n )\n\n if (menuItems.length > 0) {\n showRowContextMenu(e as any, menuItems)\n }\n },\n [rowContextMenuBuilders, rows, rowSelection, onRowSelectionChange, showRowContextMenu],\n )\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n\n const rowVirtualizer = useVirtualizer({\n count: rows.length,\n estimateSize: () => rowHeight || 34, //estimate row height for accurate scrollbar dragging\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement: rowHeight\n ? () => rowHeight\n : typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n // Memoize the ref callback to prevent infinite re-renders\n const measureElementRef = useCallback(\n (node: HTMLElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n // Handle scroll to bottom detection\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLDivElement>) => {\n if (!onScrollBottom) return\n\n const target = event.currentTarget\n const { scrollTop, scrollHeight, clientHeight } = target\n\n // Check if we're near the bottom (within 100px)\n const isNearBottom = scrollHeight - scrollTop - clientHeight < 100\n\n if (isNearBottom && !isLoading) {\n onScrollBottom()\n }\n },\n [onScrollBottom, isLoading],\n )\n\n const handleContainerClick = (e: React.MouseEvent<HTMLDivElement>) => {\n // if the click is outside of any row, clear selection\n if (enableClickToDeselect && !(e.target as HTMLElement).closest('tr')) {\n table.setRowSelection({})\n lastSelectedIdRef.current = null\n }\n }\n\n return (\n <Styled.TableContainer\n ref={tableContainerRef}\n onScroll={handleScroll}\n onClick={handleContainerClick}\n {...props}\n className={clsx(props.className, { isLoading, fitContent })}\n >\n {!error && (\n <table>\n <tbody\n style={{\n height: `${rowVirtualizer?.getTotalSize()}px`, //tells scrollbar how big the table is\n }}\n >\n {rowVirtualizer?.getVirtualItems().map((virtualRow) => {\n const row = rows[virtualRow.index] as Row<SimpleTableRow>\n return (\n <tr\n data-index={virtualRow.index} //needed for dynamic row height measurement\n ref={measureElementRef} //measure dynamic row height\n key={row.id}\n id={row.id}\n onContextMenu={(e) => handleRowContextMenu(row.id, virtualRow.index, e)}\n {...pt?.row}\n style={{\n transform: `translateY(${virtualRow.start}px)`, //this should always be a `style` as it changes on scroll\n ...pt?.row?.style, // custom styles to be passed\n }}\n >\n {row.getVisibleCells().map((cell) => {\n return (\n <td key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </td>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n )}\n {!!error && <EmptyPlaceholder error={error} />}\n </Styled.TableContainer>\n )\n}\n\nexport default SimpleTable\n"],"names":["toMenuItems","items","fuzzyFilter","row","columnId","searchValue","addMeta","cellValue","searchString","itemRank","rankItem","rankings","fuzzySort","rowA","rowB","dir","compareItems","sortingFns","getRowRange","rows","idA","idB","range","singleRow","indexA","indexB","i","start","end","SimpleTable","data","isLoading","error","isExpandable","isMultiSelect","enableClickToDeselect","enableNonFolderIndent","forceUpdateTable","globalFilter","meta","rowHeight","imgRatio","onScrollBottom","onRename","renamingId","onSubmitRename","onCancelRename","onRowDoubleClick","rowContextMenuBuilders","children","pt","fitContent","props","rowSelection","expanded","setExpanded","onExpandedChange","onRowSelectionChange","rowPinning","onRowPinningChange","useSimpleTableContext","lastSelectedIdRef","useRef","tableRef","showRowContextMenu","useCreateContextMenu","onRowDoubleClickRef","renamingIdRef","onSubmitRenameRef","onCancelRenameRef","onRenameRef","tableData","useMemo","_","handleSelectionLogic","useCallback","tableInstance","rowId","isShift","isCtrlOrMeta","currentId","allProcessableRows","currentRow","r","lastId","rowsToToggle","newSelection","selection","handleRowSelectForKeydown","event","selectedRow","isShiftKey","isCtrlKey","handleArrowNavigation","direction","visibleRows","currentIndex","nextIndex","nextRow","container","tableContainerRef","nextCell","handleRenameForKeydown","e","handleRowKeyDown","useRowKeydown","columns","getValue","cellTableInstance","cellMeta","handleCellClick","clsx","v","jsx","SimpleTableCellTemplate","handleRowSelectionChangeCallback","updater","functionalUpdate","handleRowPinningChangeCallback","handleExpandedChange","old","newExpanded","table","useReactTable","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","useEffect","handleRowContextMenu","rowIndex","selectedIds","nextSelectedRows","nextSelection","menuItems","builder","rowVirtualizer","useVirtualizer","element","measureElementRef","node","handleScroll","target","scrollTop","scrollHeight","clientHeight","handleContainerClick","jsxs","Styled.TableContainer","virtualRow","cell","flexRender","EmptyPlaceholder"],"mappings":"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"}
1
+ {"version":3,"file":"SimpleTable.es.js","sources":["../../../../../src/containers/SimpleTable/SimpleTable.tsx"],"sourcesContent":["import { FC, useMemo, useRef, MouseEvent as ReactMouseEvent, useCallback, useEffect } from 'react'\nimport * as Styled from './SimpleTable.styled'\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n ColumnDef,\n flexRender,\n Row,\n FilterFn,\n SortingFn,\n sortingFns,\n Table,\n RowData,\n OnChangeFn,\n RowSelectionState,\n functionalUpdate,\n} from '@tanstack/react-table'\nimport { useVirtualizer } from '@tanstack/react-virtual'\n\nimport clsx from 'clsx'\nimport useRowKeydown, { RowKeyboardEvent } from './hooks/useRowKeydown'\n\nimport { rankItem, compareItems, rankings } from '@tanstack/match-sorter-utils'\nimport { useSimpleTableContext } from './context/SimpleTableContext'\nimport { SimpleTableCellTemplate, SimpleTableCellTemplateProps } from './SimpleTableRowTemplate'\nimport { EmptyPlaceholder } from '@shared/components'\nimport { RowPinningState } from '@tanstack/react-table'\nimport {\n SimpleTableProps,\n SimpleTableRow,\n SimpleTableRowContextMenuBuilder,\n} from './SimpleTable.types'\nimport { useCreateContextMenu } from '../ContextMenu'\n\nconst toMenuItems = (items: ReturnType<SimpleTableRowContextMenuBuilder>) => {\n if (!items) return []\n return Array.isArray(items) ? items.filter(Boolean) : [items]\n}\n\n// Define a custom fuzzy filter function that will apply ranking info to rows (using match-sorter utils)\nconst fuzzyFilter: FilterFn<any> = (row, columnId, searchValue, addMeta) => {\n const cellValue = row.getValue(columnId)\n // convert non-string cell values to string\n let searchString =\n typeof cellValue === 'string'\n ? cellValue\n : Array.isArray(cellValue)\n ? cellValue.join(' ')\n : JSON.stringify(cellValue)\n\n // combine label and parents into a single string for searching if columnId is 'label'\n if (columnId === 'label') {\n searchString = [row.original.label, row.original.name, ...(row.original.parents || [])].join(\n ' ',\n )\n }\n\n // Rank the item with CONTAINS threshold to avoid overly permissive fuzzy matches\n // This ensures the search term must be a substring, not just scattered characters\n const itemRank = rankItem(searchString, searchValue, { threshold: rankings.CONTAINS })\n\n // Store the itemRank info\n addMeta({\n itemRank,\n })\n\n // Return if the item should be filtered in/out\n return itemRank.passed\n}\n\n// Define a custom fuzzy sort function that will sort by rank if the row has ranking information\nconst fuzzySort: SortingFn<any> = (rowA, rowB, columnId) => {\n let dir = 0\n\n // Only sort by rank if the column has ranking information\n if (rowA.columnFiltersMeta[columnId]) {\n dir = compareItems(\n rowA.columnFiltersMeta[columnId]?.itemRank!,\n rowB.columnFiltersMeta[columnId]?.itemRank!,\n )\n }\n\n // Provide an alphanumeric fallback for when the item ranks are equal\n return dir === 0 ? sortingFns.alphanumeric(rowA, rowB, columnId) : dir\n}\n\n// Helper function to get row range for shift-selection\n// Operates on the provided list of rows (e.g., filtered and sorted rows)\nfunction getRowRange<TData extends RowData>(\n rows: Array<Row<TData>>,\n idA: string,\n idB: string,\n): Array<Row<TData>> {\n const range: Array<Row<TData>> = []\n // If idA and idB are the same, or one is not found, handle appropriately\n if (idA === idB) {\n const singleRow = rows.find((row) => row.id === idA)\n return singleRow ? [singleRow] : []\n }\n\n let indexA = -1\n let indexB = -1\n\n for (let i = 0; i < rows.length; i++) {\n if (rows[i].id === idA) indexA = i\n if (rows[i].id === idB) indexB = i\n if (indexA !== -1 && indexB !== -1) break\n }\n\n if (indexA === -1 || indexB === -1) return [] // One or both IDs not found\n\n const start = Math.min(indexA, indexB)\n const end = Math.max(indexA, indexB)\n\n for (let i = start; i <= end; i++) {\n range.push(rows[i])\n }\n return range\n}\n\nconst SimpleTable: FC<SimpleTableProps> = ({\n data = [],\n isLoading,\n error,\n isExpandable,\n isMultiSelect = true,\n enableClickToDeselect = true,\n enableNonFolderIndent = true,\n forceUpdateTable,\n globalFilter,\n meta,\n rowHeight,\n imgRatio,\n onScrollBottom,\n onRename,\n renamingId,\n onSubmitRename,\n onCancelRename,\n onRowDoubleClick,\n rowContextMenuBuilders = [],\n children,\n pt,\n fitContent,\n ...props\n}) => {\n const {\n rowSelection,\n expanded,\n setExpanded,\n onExpandedChange,\n onRowSelectionChange,\n rowPinning,\n onRowPinningChange,\n } = useSimpleTableContext()\n const lastSelectedIdRef = useRef<string | null>(null)\n const tableRef = useRef<Table<SimpleTableRow> | null>(null)\n const [showRowContextMenu] = useCreateContextMenu()\n\n // Refs for values used inside the columns memo.\n // Assigning synchronously (not via useEffect) means the cell function always reads\n // the latest value at render time, while the columns memo itself has a minimal dep\n // array and stays as a stable reference — critical because flexRender calls\n // React.createElement with the cell function, so a new reference = remount = broken dblclick.\n const onRowDoubleClickRef = useRef(onRowDoubleClick)\n onRowDoubleClickRef.current = onRowDoubleClick\n const renamingIdRef = useRef(renamingId)\n renamingIdRef.current = renamingId\n const onSubmitRenameRef = useRef(onSubmitRename)\n onSubmitRenameRef.current = onSubmitRename\n const onCancelRenameRef = useRef(onCancelRename)\n onCancelRenameRef.current = onCancelRename\n const onRenameRef = useRef(onRename)\n onRenameRef.current = onRename\n\n // stable data reference\n const tableData = useMemo(() => {\n if (!isLoading) return data\n\n // show loading placeholders\n return Array.from({ length: 10 }, (_, i) => ({\n id: `placeholder-${i}`,\n name: `placeholder-${i}`,\n label: `placeholder-${i}`,\n icon: null,\n img: null,\n subRows: [],\n data: {\n id: `placeholder-${i}`,\n },\n }))\n }, [isLoading, data, forceUpdateTable])\n\n // Define the core selection logic using useCallback for stability\n const handleSelectionLogic = useCallback(\n (\n tableInstance: Table<SimpleTableRow>,\n rowId: string,\n isShift: boolean,\n isCtrlOrMeta: boolean,\n ) => {\n const currentId = rowId\n const allProcessableRows = tableInstance.getFilteredRowModel().flatRows\n const currentRow = allProcessableRows.find((r) => r.id === currentId)\n\n if (!currentRow) return\n\n // Prevent selection of disabled rows\n if (currentRow.original.isDisabled) return\n\n // If click-to-deselect is enabled and only one row is selected and it's the current row\n if (\n enableClickToDeselect &&\n !isShift &&\n !isCtrlOrMeta &&\n Object.keys(tableInstance.getState().rowSelection).length === 1 &&\n tableInstance.getState().rowSelection[currentId]\n ) {\n tableInstance.setRowSelection({})\n lastSelectedIdRef.current = null\n return\n }\n\n if (isMultiSelect && isShift && lastSelectedIdRef.current) {\n const lastId = lastSelectedIdRef.current\n const anchorRow = allProcessableRows.find((r) => r.id === lastId)\n\n if (!anchorRow) {\n tableInstance.setRowSelection({ [currentId]: true })\n } else {\n const rowsToToggle = getRowRange(allProcessableRows, currentId, lastId)\n const newSelection: RowSelectionState = {}\n rowsToToggle.forEach((r) => (newSelection[r.id] = true))\n tableInstance.setRowSelection(newSelection)\n }\n } else if (isMultiSelect && isCtrlOrMeta) {\n currentRow.toggleSelected()\n } else {\n // If it's already selected and it's the only one, don't update selection to avoid unnecessary re-renders\n const selection = tableInstance.getState().rowSelection\n if (!(Object.keys(selection).length === 1 && selection[currentId])) {\n tableInstance.setRowSelection({ [currentId]: true })\n }\n }\n lastSelectedIdRef.current = currentId\n },\n [isMultiSelect, enableClickToDeselect],\n )\n\n // Callback for useRowKeydown's handleRowSelect prop\n // Uses tableRef to access the table instance, avoiding direct dependency on 'table' variable at definition time\n const handleRowSelectForKeydown = useCallback(\n (\n event: RowKeyboardEvent, // Use the specific keyboard event type from the hook\n selectedRow: Row<SimpleTableRow>,\n ) => {\n if (!tableRef.current) {\n console.warn('tableRef not yet available in handleRowSelectForKeydown')\n return\n }\n\n // Extract modifier keys from the event\n const isShiftKey = event.shiftKey\n const isCtrlKey = event.ctrlKey || event.metaKey\n\n handleSelectionLogic(\n tableRef.current, // Pass the main table instance\n selectedRow.id,\n isShiftKey,\n isCtrlKey,\n )\n },\n [handleSelectionLogic], // Depends only on handleSelectionLogic\n )\n\n // Handle arrow key navigation\n const handleArrowNavigation = useCallback(\n (direction: 'up' | 'down', currentRow: Row<SimpleTableRow>, event: RowKeyboardEvent) => {\n if (!tableRef.current) return\n\n // Use the row model which respects expanded state, not filtered model\n const visibleRows = tableRef.current.getRowModel().rows\n const currentIndex = visibleRows.findIndex((r) => r.id === currentRow.id)\n\n if (currentIndex === -1) return\n\n let nextIndex = direction === 'down' ? currentIndex + 1 : currentIndex - 1\n\n // Check bounds\n if (nextIndex < 0 || nextIndex >= visibleRows.length) return\n\n // Skip disabled rows\n while (nextIndex >= 0 && nextIndex < visibleRows.length) {\n const nextRow = visibleRows[nextIndex]\n if (!nextRow.original.isDisabled) {\n // Found a valid row\n // Select the next row\n handleSelectionLogic(\n tableRef.current,\n nextRow.id,\n event.shiftKey,\n event.ctrlKey || event.metaKey,\n )\n\n // Focus the next row's cell. Scope to this table's container: row ids are\n // entity ids that can also exist in other SimpleTables on the page (slicer),\n // so a document-wide getElementById would steal focus to a duplicate.\n requestAnimationFrame(() => {\n const container = tableContainerRef.current\n const nextRowElement = container\n ? container.querySelector(`#${CSS.escape(nextRow.id)}`)\n : document.getElementById(nextRow.id)\n const nextCell = nextRowElement?.querySelector('[tabindex=\"0\"]') as HTMLElement\n if (nextCell) {\n nextCell.focus()\n nextCell.scrollIntoView({ block: 'nearest', behavior: 'smooth' })\n }\n })\n return\n }\n // Move to next row if current is disabled\n nextIndex = direction === 'down' ? nextIndex + 1 : nextIndex - 1\n }\n },\n [handleSelectionLogic],\n )\n\n // handleRenameForKeydown reads from onRenameRef so it has empty deps and is\n // permanently stable — keeping handleRowKeyDown and therefore columns stable.\n const handleRenameForKeydown = useCallback(\n (e: RowKeyboardEvent, row: Row<SimpleTableRow>) => {\n if (!row.original.isDisabled) onRenameRef.current?.(row.id, row)\n },\n [], // eslint-disable-line react-hooks/exhaustive-deps\n )\n\n const { handleRowKeyDown } = useRowKeydown<SimpleTableRow>({\n handleRowSelect: handleRowSelectForKeydown,\n handleArrowNavigation,\n handleRename: handleRenameForKeydown,\n })\n\n const columns = useMemo<ColumnDef<SimpleTableRow>[]>(\n () => [\n {\n accessorKey: 'label',\n header: undefined,\n filterFn: 'fuzzy',\n sortingFn: fuzzySort, //sort by fuzzy rank (falls back to alphanumeric)\n cell: ({ row, getValue, table: cellTableInstance }) => {\n const cellMeta = cellTableInstance.options.meta\n\n const handleCellClick = (event: ReactMouseEvent<HTMLElement, MouseEvent>) => {\n // Prevent row selection if clicking on an interactive element within the cell\n if (\n event.target instanceof HTMLInputElement ||\n event.target instanceof HTMLButtonElement ||\n event.target instanceof HTMLTextAreaElement ||\n event.target instanceof HTMLSelectElement ||\n event.target instanceof HTMLAnchorElement ||\n (event.target as HTMLElement).closest('button, a, input, textarea, select')\n ) {\n return\n }\n handleSelectionLogic(\n cellTableInstance, // Pass the cell's table instance\n row.id,\n event.shiftKey,\n event.ctrlKey || event.metaKey,\n )\n }\n\n const props: SimpleTableCellTemplateProps & {\n onClick?: (event: ReactMouseEvent<HTMLElement, MouseEvent>) => void\n onDoubleClick?: (event: ReactMouseEvent<HTMLElement, MouseEvent>) => void\n } = {\n className: clsx({\n selected: row.getIsSelected(),\n loading: cellMeta?.isLoading,\n disabled: row.original.isDisabled, // you can't select disabled rows\n inactive: row.original.inactive, // false: archived items but still selectable\n }),\n onKeyDown: (e) => {\n if (e.target instanceof HTMLInputElement) return\n // Corrected typo: handleRowKeydown -> handleRowKeyDown\n handleRowKeyDown(e, row)\n },\n depth: row.depth,\n tabIndex: 0,\n value: getValue<string>(),\n parents: row.original.parents,\n icon: row.original.icon || undefined,\n iconColor: row.original.iconColor,\n iconFilled: row.original.iconFilled,\n img: row.original.img,\n imgShape: row.original.imgShape,\n imgRatio: imgRatio,\n isRowExpandable: row.getCanExpand(),\n enableNonFolderIndent,\n isRowExpanded: row.getIsExpanded(),\n isTableExpandable: cellMeta?.isExpandable,\n onExpandClick: row.getToggleExpandedHandler(),\n startContent: row.original.startContent,\n endContent: row.original.endContent,\n isDisabled: row.original.isDisabled,\n disabledMessage: row.original.disabledMessage,\n isRenaming: row.id === renamingIdRef.current,\n onSubmitRename: onSubmitRenameRef.current\n ? (v) => onSubmitRenameRef.current!(row.id, v)\n : undefined,\n onCancelRename: onCancelRenameRef.current,\n ...pt?.cell,\n onClick: handleCellClick, // Added onClick handler\n onDoubleClick: (e) => onRowDoubleClickRef.current?.(row.id, row),\n }\n\n // Use children function if provided, otherwise default to SimpleTableCellTemplate\n return cellMeta?.children ? (\n cellMeta.children(props, row, cellTableInstance)\n ) : (\n <SimpleTableCellTemplate {...props} {...pt?.cell} />\n )\n },\n },\n ],\n [\n forceUpdateTable,\n handleSelectionLogic,\n handleRowKeyDown,\n enableClickToDeselect,\n enableNonFolderIndent,\n imgRatio,\n ],\n )\n\n const handleRowSelectionChangeCallback: OnChangeFn<RowSelectionState> = useCallback(\n (updater) => {\n onRowSelectionChange(functionalUpdate(updater, rowSelection))\n },\n [onRowSelectionChange],\n )\n\n const handleRowPinningChangeCallback: OnChangeFn<RowPinningState> = useCallback(\n (updater) => {\n onRowPinningChange?.(functionalUpdate(updater, rowPinning || {}))\n },\n [onRowPinningChange],\n )\n\n const handleExpandedChange = useCallback(\n (updater: any) => {\n setExpanded?.((old) => {\n const newExpanded = updater instanceof Function ? updater(old) : updater\n onExpandedChange?.(newExpanded)\n return newExpanded\n })\n },\n [setExpanded],\n )\n\n const table = useReactTable({\n data: tableData,\n columns,\n state: {\n expanded,\n rowSelection,\n globalFilter,\n rowPinning,\n },\n onRowSelectionChange: handleRowSelectionChangeCallback,\n onRowPinningChange: handleRowPinningChangeCallback,\n filterFns: {\n fuzzy: fuzzyFilter,\n },\n globalFilterFn: 'fuzzy',\n enableRowSelection: true, //enable row selection for all rows\n enableRowPinning: !!onRowPinningChange,\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n onExpandedChange: handleExpandedChange,\n getSubRows: (row) => row.subRows,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // debugTable: true,\n // @ts-expect-error: updateData is not required\n meta: useMemo(\n () => ({\n isExpandable: !!isExpandable,\n isLoading: isLoading,\n children: children,\n ...meta,\n }),\n [isExpandable, isLoading, children, meta],\n ),\n })\n\n // Update tableRef whenever the table instance changes.\n // This ensures handleRowSelectForKeydown uses the current table instance.\n useEffect(() => {\n tableRef.current = table\n }, [table])\n\n const { rows } = table.getRowModel()\n\n const handleRowContextMenu = useCallback(\n (rowId: string, rowIndex: number, e: ReactMouseEvent<HTMLTableRowElement>) => {\n if (!tableRef.current) return\n const row = rows[rowIndex]\n if (!row || row.original === undefined) return\n\n e.preventDefault()\n e.stopPropagation()\n\n const selectedIds = Object.keys(rowSelection)\n\n const nextSelectedRows = selectedIds.includes(rowId) ? selectedIds : [rowId]\n\n if (!selectedIds.includes(rowId)) {\n // convert array to RowSelectionState object\n const nextSelection: RowSelectionState = { [rowId]: true }\n onRowSelectionChange?.(nextSelection)\n }\n\n const menuItems = rowContextMenuBuilders.flatMap((builder) =>\n toMenuItems(\n builder(e as any, {\n rowId,\n rowIndex,\n row,\n selectedRows: nextSelectedRows,\n isSelected: nextSelectedRows.includes(rowId),\n }),\n ),\n )\n\n if (menuItems.length > 0) {\n showRowContextMenu(e as any, menuItems)\n }\n },\n [rowContextMenuBuilders, rows, rowSelection, onRowSelectionChange, showRowContextMenu],\n )\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n\n const rowVirtualizer = useVirtualizer({\n count: rows.length,\n estimateSize: () => rowHeight || 34, //estimate row height for accurate scrollbar dragging\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement: rowHeight\n ? () => rowHeight\n : typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n // Memoize the ref callback to prevent infinite re-renders\n const measureElementRef = useCallback(\n (node: HTMLElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n // Handle scroll to bottom detection\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLDivElement>) => {\n if (!onScrollBottom) return\n\n const target = event.currentTarget\n const { scrollTop, scrollHeight, clientHeight } = target\n\n // Check if we're near the bottom (within 100px)\n const isNearBottom = scrollHeight - scrollTop - clientHeight < 100\n\n if (isNearBottom && !isLoading) {\n onScrollBottom()\n }\n },\n [onScrollBottom, isLoading],\n )\n\n const handleContainerClick = (e: React.MouseEvent<HTMLDivElement>) => {\n // if the click is outside of any row, clear selection\n if (enableClickToDeselect && !(e.target as HTMLElement).closest('tr')) {\n table.setRowSelection({})\n lastSelectedIdRef.current = null\n }\n }\n\n return (\n <Styled.TableContainer\n ref={tableContainerRef}\n onScroll={handleScroll}\n onClick={handleContainerClick}\n {...props}\n className={clsx(props.className, { isLoading, fitContent })}\n >\n {!error && (\n <table>\n <tbody\n style={{\n height: `${rowVirtualizer?.getTotalSize()}px`, //tells scrollbar how big the table is\n }}\n >\n {rowVirtualizer?.getVirtualItems().map((virtualRow) => {\n const row = rows[virtualRow.index] as Row<SimpleTableRow>\n return (\n <tr\n data-index={virtualRow.index} //needed for dynamic row height measurement\n ref={measureElementRef} //measure dynamic row height\n key={row.id}\n id={row.id}\n onContextMenu={(e) => handleRowContextMenu(row.id, virtualRow.index, e)}\n {...pt?.row}\n style={{\n transform: `translateY(${virtualRow.start}px)`, //this should always be a `style` as it changes on scroll\n ...pt?.row?.style, // custom styles to be passed\n }}\n >\n {row.getVisibleCells().map((cell) => {\n return (\n <td key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </td>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n )}\n {!!error && <EmptyPlaceholder error={error} />}\n </Styled.TableContainer>\n )\n}\n\nexport default SimpleTable\n"],"names":["toMenuItems","items","fuzzyFilter","row","columnId","searchValue","addMeta","cellValue","searchString","itemRank","rankItem","rankings","fuzzySort","rowA","rowB","dir","compareItems","sortingFns","getRowRange","rows","idA","idB","range","singleRow","indexA","indexB","i","start","end","SimpleTable","data","isLoading","error","isExpandable","isMultiSelect","enableClickToDeselect","enableNonFolderIndent","forceUpdateTable","globalFilter","meta","rowHeight","imgRatio","onScrollBottom","onRename","renamingId","onSubmitRename","onCancelRename","onRowDoubleClick","rowContextMenuBuilders","children","pt","fitContent","props","rowSelection","expanded","setExpanded","onExpandedChange","onRowSelectionChange","rowPinning","onRowPinningChange","useSimpleTableContext","lastSelectedIdRef","useRef","tableRef","showRowContextMenu","useCreateContextMenu","onRowDoubleClickRef","renamingIdRef","onSubmitRenameRef","onCancelRenameRef","onRenameRef","tableData","useMemo","_","handleSelectionLogic","useCallback","tableInstance","rowId","isShift","isCtrlOrMeta","currentId","allProcessableRows","currentRow","r","lastId","rowsToToggle","newSelection","selection","handleRowSelectForKeydown","event","selectedRow","isShiftKey","isCtrlKey","handleArrowNavigation","direction","visibleRows","currentIndex","nextIndex","nextRow","container","tableContainerRef","nextCell","handleRenameForKeydown","e","handleRowKeyDown","useRowKeydown","columns","getValue","cellTableInstance","cellMeta","handleCellClick","clsx","v","jsx","SimpleTableCellTemplate","handleRowSelectionChangeCallback","updater","functionalUpdate","handleRowPinningChangeCallback","handleExpandedChange","old","newExpanded","table","useReactTable","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","useEffect","handleRowContextMenu","rowIndex","selectedIds","nextSelectedRows","nextSelection","menuItems","builder","rowVirtualizer","useVirtualizer","element","measureElementRef","node","handleScroll","target","scrollTop","scrollHeight","clientHeight","handleContainerClick","jsxs","Styled.TableContainer","virtualRow","cell","flexRender","EmptyPlaceholder"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../../_virtual/jsx-runtime.cjs.js"),E=require("react"),w=require("./SimpleTable.styled.cjs.js"),x=require("@ynput/ayon-react-components"),c=require("clsx"),T=({isRowExpandable:r,isRowExpanded:o,enableNonFolderIndent:n=!0,isTableExpandable:m,onExpandClick:u})=>r?e.jsxRuntimeExports.jsx(w.Expander,{onClick:a=>{a.stopPropagation(),u?.()},icon:o?"expand_more":"chevron_right",className:"expander",style:{cursor:"pointer"}}):m&&n&&e.jsxRuntimeExports.jsx("div",{style:{display:"inline-block",minWidth:24}}),A=E.forwardRef(({value:r,icon:o,parents:n,iconColor:m,iconFilled:u,img:a,imgShape:q="square",imgRatio:b=1,isRowExpandable:k,isRowExpanded:C,isTableExpandable:F,enableNonFolderIndent:P=!0,onExpandClick:_,startContent:R,endContent:h,badge:l,actions:p,isRenaming:i,renameInitialValue:j,onSubmitRename:B,onCancelRename:y,renamePlaceholder:I,depth:K=0,isDisabled:N,disabledMessage:L,active:M,inactive:O,style:W,pt:s,...f},$)=>{const[g,S]=E.useState(j??r);return E.useEffect(()=>{i&&S(j??r)},[r,i,j]),e.jsxRuntimeExports.jsxs(w.Cell,{...f,ref:$,className:c(f.className,{disabled:N,inactive:O||M===!1,"has-actions":!!p?.length}),style:{...W,paddingLeft:`calc(${K*1.5}rem + 4px)`},title:N?L:void 0,children:[e.jsxRuntimeExports.jsx(T,{isRowExpandable:k,isRowExpanded:C,isTableExpandable:F,onExpandClick:_,enableNonFolderIndent:P,...s?.expander}),R&&R,a&&e.jsxRuntimeExports.jsx("img",{src:a,...s?.img,alt:"",className:c("image",q,s?.img?.className),style:{aspectRatio:b.toString(),...s?.img?.style}}),o&&e.jsxRuntimeExports.jsx(x.Icon,{icon:o,className:c({filled:u},s?.icon?.className),style:{color:m,...s?.icon?.style},...s?.icon}),i?e.jsxRuntimeExports.jsx(x.InputText,{autoFocus:!0,style:{flex:1},onChange:t=>S(t.target.value),value:g,placeholder:I,onKeyDown:t=>{t.key==="Enter"&&B?.(g),t.key==="Escape"&&y?.()},onBlur:()=>{y?.()},onFocus:t=>{t.target.select()},...s?.input}):e.jsxRuntimeExports.jsxs("div",{className:"text",...s?.text,children:[n&&e.jsxRuntimeExports.jsxs("span",{className:"path",children:[n.join(" / ")," / "]}),e.jsxRuntimeExports.jsx("span",{className:"value",children:r})]}),!i&&e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx(x.Spacer,{className:"spacer"}),l?.toString()&&e.jsxRuntimeExports.jsx("div",{className:"badges",children:typeof l=="string"?e.jsxRuntimeExports.jsx("span",{children:l}):l}),p&&e.jsxRuntimeExports.jsx("div",{className:"actions",children:p.map((t,z)=>{const{show:v="hover",...d}=t;return v==="hidden"?null:e.jsxRuntimeExports.jsx(x.Icon,{...d,className:c(d.className,{"show-always":v==="always"})},d.icon+z.toString())})})]}),h&&h]})});exports.RowExpander=T;exports.SimpleTableCellTemplate=A;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../../../../_virtual/jsx-runtime.cjs.js"),E=require("react"),T=require("./SimpleTable.styled.cjs.js"),x=require("@ynput/ayon-react-components"),c=require("clsx"),q=({isRowExpandable:r,isRowExpanded:o,enableNonFolderIndent:n=!0,isTableExpandable:m,onExpandClick:u})=>r?s.jsxRuntimeExports.jsx(T.Expander,{onClick:a=>{a.stopPropagation(),u?.()},icon:o?"expand_more":"chevron_right",className:"expander",style:{cursor:"pointer"}}):m&&n&&s.jsxRuntimeExports.jsx("div",{style:{display:"inline-block",minWidth:24}}),A=E.forwardRef(({value:r,icon:o,parents:n,iconColor:m,iconFilled:u,img:a,imgShape:b="square",imgRatio:k=1,isRowExpandable:C,isRowExpanded:F,isTableExpandable:P,enableNonFolderIndent:_=!0,onExpandClick:B,startContent:R,endContent:h,badge:l,actions:p,isRenaming:i,renameInitialValue:j,onSubmitRename:I,onCancelRename:y,renamePlaceholder:K,depth:N=0,isDisabled:f,disabledMessage:L,active:M,inactive:O,style:W,pt:e,...g},$)=>{const[S,v]=E.useState(j??r);return E.useEffect(()=>{i&&v(j??r)},[r,i,j]),s.jsxRuntimeExports.jsxs(T.Cell,{...g,ref:$,className:c(g.className,{disabled:f,inactive:O||M===!1,"has-actions":!!p?.length}),style:{...W,paddingLeft:`calc(${N*1.5}rem + 4px)`},title:f?L:void 0,children:[s.jsxRuntimeExports.jsx(q,{isRowExpandable:C,isRowExpanded:F,isTableExpandable:P,onExpandClick:B,enableNonFolderIndent:_,...e?.expander}),R&&R,a&&s.jsxRuntimeExports.jsx("img",{src:a,...e?.img,alt:"",className:c("image",b,e?.img?.className),style:{aspectRatio:k.toString(),...e?.img?.style}}),o&&s.jsxRuntimeExports.jsx(x.Icon,{icon:o,className:c({filled:u},e?.icon?.className),style:{color:m,...e?.icon?.style},...e?.icon}),i?s.jsxRuntimeExports.jsx(x.InputText,{autoFocus:!0,style:{flex:1},onChange:t=>v(t.target.value),value:S,placeholder:K,onKeyDown:t=>{t.key==="Enter"&&I?.(S),t.key==="Escape"&&y?.()},onBlur:()=>{y?.()},onFocus:t=>{t.target.select()},...e?.input}):s.jsxRuntimeExports.jsxs("div",{className:"text",...e?.text,children:[n&&N===0&&s.jsxRuntimeExports.jsxs("span",{className:"path",children:[n.join(" / ")," / "]}),s.jsxRuntimeExports.jsx("span",{className:"value",children:r})]}),!i&&s.jsxRuntimeExports.jsxs(s.jsxRuntimeExports.Fragment,{children:[s.jsxRuntimeExports.jsx(x.Spacer,{className:"spacer"}),l?.toString()&&s.jsxRuntimeExports.jsx("div",{className:"badges",children:typeof l=="string"?s.jsxRuntimeExports.jsx("span",{children:l}):l}),p&&s.jsxRuntimeExports.jsx("div",{className:"actions",children:p.map((t,z)=>{const{show:w="hover",...d}=t;return w==="hidden"?null:s.jsxRuntimeExports.jsx(x.Icon,{...d,className:c(d.className,{"show-always":w==="always"})},d.icon+z.toString())})})]}),h&&h]})});exports.RowExpander=q;exports.SimpleTableCellTemplate=A;
2
2
  //# sourceMappingURL=SimpleTableRowTemplate.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleTableRowTemplate.cjs.js","sources":["../../../../../src/containers/SimpleTable/SimpleTableRowTemplate.tsx"],"sourcesContent":["import { forwardRef, useEffect, useState } from 'react'\nimport * as Styled from './SimpleTable.styled'\nimport { Icon, IconProps, InputText, Spacer } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\n\nexport interface TableRowAction extends IconProps {\n show?: 'always' | 'hover' | 'hidden'\n}\n\nexport type RowExpanderProps = {\n isRowExpandable?: boolean\n isRowExpanded?: boolean\n enableNonFolderIndent?: boolean\n isTableExpandable?: boolean\n onExpandClick?: () => void\n}\n\nexport const RowExpander = ({\n isRowExpandable,\n isRowExpanded,\n enableNonFolderIndent = true,\n isTableExpandable,\n onExpandClick,\n}: RowExpanderProps) =>\n isRowExpandable ? (\n <Styled.Expander\n onClick={(e) => {\n e.stopPropagation()\n onExpandClick?.()\n }}\n icon={isRowExpanded ? 'expand_more' : 'chevron_right'}\n className=\"expander\"\n style={{ cursor: 'pointer' }}\n />\n ) : (\n isTableExpandable &&\n enableNonFolderIndent && <div style={{ display: 'inline-block', minWidth: 24 }} />\n )\n\nexport interface SimpleTableCellTemplateProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string\n icon?: string\n parents?: string[]\n iconColor?: string\n iconFilled?: boolean\n img?: string | null\n imgShape?: 'square' | 'circle'\n imgRatio?: number\n isRowExpandable?: boolean\n isRowExpanded?: boolean\n isTableExpandable?: boolean\n enableNonFolderIndent?: boolean\n onExpandClick?: () => void\n // when used as a template\n startContent?: React.ReactNode\n endContent?: React.ReactNode\n badge?: string | React.ReactNode\n actions?: TableRowAction[]\n isRenaming?: boolean\n renameInitialValue?: string\n onSubmitRename?: (value: string) => void\n onCancelRename?: () => void\n renamePlaceholder?: string\n depth?: number\n isDisabled?: boolean\n disabledMessage?: string\n active?: boolean\n inactive?: boolean\n pt?: {\n img?: Partial<React.ImgHTMLAttributes<HTMLImageElement>>\n expander?: Partial<React.ComponentProps<typeof RowExpander>>\n icon?: Partial<React.ComponentProps<typeof Icon>>\n text?: React.HTMLAttributes<HTMLDivElement>\n input?: Partial<React.ComponentProps<typeof InputText>>\n }\n}\n\nexport const SimpleTableCellTemplate = forwardRef<HTMLDivElement, SimpleTableCellTemplateProps>(\n (\n {\n value,\n icon,\n parents,\n iconColor,\n iconFilled,\n img,\n imgShape = 'square',\n imgRatio = 1,\n isRowExpandable,\n isRowExpanded,\n isTableExpandable,\n enableNonFolderIndent = true,\n onExpandClick,\n startContent,\n endContent,\n badge,\n actions,\n isRenaming,\n renameInitialValue,\n onSubmitRename,\n onCancelRename,\n renamePlaceholder,\n depth = 0,\n isDisabled,\n disabledMessage,\n active,\n inactive,\n style,\n pt,\n ...props\n },\n ref,\n ) => {\n const [renameValue, setRenameValue] = useState(renameInitialValue ?? value)\n\n useEffect(() => {\n if (isRenaming) {\n setRenameValue(renameInitialValue ?? value)\n }\n }, [value, isRenaming, renameInitialValue])\n\n return (\n <Styled.Cell\n {...props}\n ref={ref}\n className={clsx(props.className, {\n disabled: isDisabled,\n inactive: inactive || active === false,\n 'has-actions': !!actions?.length,\n })}\n style={{\n ...style,\n paddingLeft: `calc(${depth * 1.5}rem + 4px)`,\n }}\n title={isDisabled ? disabledMessage : undefined}\n >\n <RowExpander\n isRowExpandable={isRowExpandable}\n isRowExpanded={isRowExpanded}\n isTableExpandable={isTableExpandable}\n onExpandClick={onExpandClick}\n enableNonFolderIndent={enableNonFolderIndent}\n {...pt?.expander}\n />\n {startContent && startContent}\n {img && (\n <img\n src={img}\n {...pt?.img}\n alt=\"\"\n className={clsx('image', imgShape, pt?.img?.className)}\n style={{\n aspectRatio: imgRatio.toString(),\n ...pt?.img?.style,\n }}\n />\n )}\n {icon && (\n <Icon\n icon={icon}\n className={clsx({ filled: iconFilled }, pt?.icon?.className)}\n style={{\n color: iconColor,\n ...pt?.icon?.style,\n }}\n {...pt?.icon}\n />\n )}\n {isRenaming ? (\n <InputText\n autoFocus\n style={{ flex: 1 }}\n onChange={(e) => setRenameValue(e.target.value)}\n value={renameValue}\n placeholder={renamePlaceholder}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n onSubmitRename?.(renameValue)\n }\n if (e.key === 'Escape') {\n onCancelRename?.()\n }\n }}\n onBlur={() => {\n onCancelRename?.()\n }}\n onFocus={(e) => {\n e.target.select()\n }}\n {...pt?.input}\n />\n ) : (\n <div className=\"text\" {...pt?.text}>\n {parents && <span className=\"path\">{parents.join(' / ')} / </span>}\n <span className=\"value\">{value}</span>\n </div>\n )}\n\n {!isRenaming && (\n <>\n <Spacer className=\"spacer\" />\n {badge?.toString() && (\n <div className=\"badges\">\n {typeof badge === 'string' ? <span>{badge}</span> : badge}\n </div>\n )}\n {actions && (\n <div className=\"actions\">\n {actions.map((action, i) => {\n const { show = 'hover', ...iconProps } = action\n\n if (show === 'hidden') return null\n\n return (\n <Icon\n key={iconProps.icon + i.toString()}\n {...iconProps}\n className={clsx(iconProps.className, { 'show-always': show === 'always' })}\n />\n )\n })}\n </div>\n )}\n </>\n )}\n {endContent && endContent}\n </Styled.Cell>\n )\n },\n)\n"],"names":["RowExpander","isRowExpandable","isRowExpanded","enableNonFolderIndent","isTableExpandable","onExpandClick","jsx","Styled.Expander","e","SimpleTableCellTemplate","forwardRef","value","icon","parents","iconColor","iconFilled","img","imgShape","imgRatio","startContent","endContent","badge","actions","isRenaming","renameInitialValue","onSubmitRename","onCancelRename","renamePlaceholder","depth","isDisabled","disabledMessage","active","inactive","style","pt","props","ref","renameValue","setRenameValue","useState","useEffect","jsxs","Styled.Cell","clsx","Icon","InputText","Fragment","Spacer","action","i","show","iconProps"],"mappings":"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"}
1
+ {"version":3,"file":"SimpleTableRowTemplate.cjs.js","sources":["../../../../../src/containers/SimpleTable/SimpleTableRowTemplate.tsx"],"sourcesContent":["import { forwardRef, useEffect, useState } from 'react'\nimport * as Styled from './SimpleTable.styled'\nimport { Icon, IconProps, InputText, Spacer } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\n\nexport interface TableRowAction extends IconProps {\n show?: 'always' | 'hover' | 'hidden'\n}\n\nexport type RowExpanderProps = {\n isRowExpandable?: boolean\n isRowExpanded?: boolean\n enableNonFolderIndent?: boolean\n isTableExpandable?: boolean\n onExpandClick?: () => void\n}\n\nexport const RowExpander = ({\n isRowExpandable,\n isRowExpanded,\n enableNonFolderIndent = true,\n isTableExpandable,\n onExpandClick,\n}: RowExpanderProps) =>\n isRowExpandable ? (\n <Styled.Expander\n onClick={(e) => {\n e.stopPropagation()\n onExpandClick?.()\n }}\n icon={isRowExpanded ? 'expand_more' : 'chevron_right'}\n className=\"expander\"\n style={{ cursor: 'pointer' }}\n />\n ) : (\n isTableExpandable &&\n enableNonFolderIndent && <div style={{ display: 'inline-block', minWidth: 24 }} />\n )\n\nexport interface SimpleTableCellTemplateProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string\n icon?: string\n parents?: string[]\n iconColor?: string\n iconFilled?: boolean\n img?: string | null\n imgShape?: 'square' | 'circle'\n imgRatio?: number\n isRowExpandable?: boolean\n isRowExpanded?: boolean\n isTableExpandable?: boolean\n enableNonFolderIndent?: boolean\n onExpandClick?: () => void\n // when used as a template\n startContent?: React.ReactNode\n endContent?: React.ReactNode\n badge?: string | React.ReactNode\n actions?: TableRowAction[]\n isRenaming?: boolean\n renameInitialValue?: string\n onSubmitRename?: (value: string) => void\n onCancelRename?: () => void\n renamePlaceholder?: string\n depth?: number\n isDisabled?: boolean\n disabledMessage?: string\n active?: boolean\n inactive?: boolean\n pt?: {\n img?: Partial<React.ImgHTMLAttributes<HTMLImageElement>>\n expander?: Partial<React.ComponentProps<typeof RowExpander>>\n icon?: Partial<React.ComponentProps<typeof Icon>>\n text?: React.HTMLAttributes<HTMLDivElement>\n input?: Partial<React.ComponentProps<typeof InputText>>\n }\n}\n\nexport const SimpleTableCellTemplate = forwardRef<HTMLDivElement, SimpleTableCellTemplateProps>(\n (\n {\n value,\n icon,\n parents,\n iconColor,\n iconFilled,\n img,\n imgShape = 'square',\n imgRatio = 1,\n isRowExpandable,\n isRowExpanded,\n isTableExpandable,\n enableNonFolderIndent = true,\n onExpandClick,\n startContent,\n endContent,\n badge,\n actions,\n isRenaming,\n renameInitialValue,\n onSubmitRename,\n onCancelRename,\n renamePlaceholder,\n depth = 0,\n isDisabled,\n disabledMessage,\n active,\n inactive,\n style,\n pt,\n ...props\n },\n ref,\n ) => {\n const [renameValue, setRenameValue] = useState(renameInitialValue ?? value)\n\n useEffect(() => {\n if (isRenaming) {\n setRenameValue(renameInitialValue ?? value)\n }\n }, [value, isRenaming, renameInitialValue])\n\n return (\n <Styled.Cell\n {...props}\n ref={ref}\n className={clsx(props.className, {\n disabled: isDisabled,\n inactive: inactive || active === false,\n 'has-actions': !!actions?.length,\n })}\n style={{\n ...style,\n paddingLeft: `calc(${depth * 1.5}rem + 4px)`,\n }}\n title={isDisabled ? disabledMessage : undefined}\n >\n <RowExpander\n isRowExpandable={isRowExpandable}\n isRowExpanded={isRowExpanded}\n isTableExpandable={isTableExpandable}\n onExpandClick={onExpandClick}\n enableNonFolderIndent={enableNonFolderIndent}\n {...pt?.expander}\n />\n {startContent && startContent}\n {img && (\n <img\n src={img}\n {...pt?.img}\n alt=\"\"\n className={clsx('image', imgShape, pt?.img?.className)}\n style={{\n aspectRatio: imgRatio.toString(),\n ...pt?.img?.style,\n }}\n />\n )}\n {icon && (\n <Icon\n icon={icon}\n className={clsx({ filled: iconFilled }, pt?.icon?.className)}\n style={{\n color: iconColor,\n ...pt?.icon?.style,\n }}\n {...pt?.icon}\n />\n )}\n {isRenaming ? (\n <InputText\n autoFocus\n style={{ flex: 1 }}\n onChange={(e) => setRenameValue(e.target.value)}\n value={renameValue}\n placeholder={renamePlaceholder}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n onSubmitRename?.(renameValue)\n }\n if (e.key === 'Escape') {\n onCancelRename?.()\n }\n }}\n onBlur={() => {\n onCancelRename?.()\n }}\n onFocus={(e) => {\n e.target.select()\n }}\n {...pt?.input}\n />\n ) : (\n <div className=\"text\" {...pt?.text}>\n {parents && depth === 0 && <span className=\"path\">{parents.join(' / ')} / </span>}\n <span className=\"value\">{value}</span>\n </div>\n )}\n\n {!isRenaming && (\n <>\n <Spacer className=\"spacer\" />\n {badge?.toString() && (\n <div className=\"badges\">\n {typeof badge === 'string' ? <span>{badge}</span> : badge}\n </div>\n )}\n {actions && (\n <div className=\"actions\">\n {actions.map((action, i) => {\n const { show = 'hover', ...iconProps } = action\n\n if (show === 'hidden') return null\n\n return (\n <Icon\n key={iconProps.icon + i.toString()}\n {...iconProps}\n className={clsx(iconProps.className, { 'show-always': show === 'always' })}\n />\n )\n })}\n </div>\n )}\n </>\n )}\n {endContent && endContent}\n </Styled.Cell>\n )\n },\n)\n"],"names":["RowExpander","isRowExpandable","isRowExpanded","enableNonFolderIndent","isTableExpandable","onExpandClick","jsx","Styled.Expander","e","SimpleTableCellTemplate","forwardRef","value","icon","parents","iconColor","iconFilled","img","imgShape","imgRatio","startContent","endContent","badge","actions","isRenaming","renameInitialValue","onSubmitRename","onCancelRename","renamePlaceholder","depth","isDisabled","disabledMessage","active","inactive","style","pt","props","ref","renameValue","setRenameValue","useState","useEffect","jsxs","Styled.Cell","clsx","Icon","InputText","Fragment","Spacer","action","i","show","iconProps"],"mappings":"mQAiBaA,EAAc,CAAC,CAC1B,gBAAAC,EACA,cAAAC,EACA,sBAAAC,EAAwB,GACxB,kBAAAC,EACA,cAAAC,CACF,IACEJ,EACEK,EAAAA,kBAAAA,IAACC,EAAAA,SAAA,CACC,QAAUC,GAAM,CACdA,EAAE,gBAAA,EACFH,IAAA,CACF,EACA,KAAMH,EAAgB,cAAgB,gBACtC,UAAU,WACV,MAAO,CAAE,OAAQ,SAAA,CAAU,CAC7B,EAEAE,GACAD,GAAyBG,EAAAA,kBAAAA,IAAC,MAAA,CAAI,MAAO,CAAE,QAAS,eAAgB,SAAU,EAAA,CAAG,CAAG,EAyCvEG,EAA0BC,EAAAA,WACrC,CACE,CACE,MAAAC,EACA,KAAAC,EACA,QAAAC,EACA,UAAAC,EACA,WAAAC,EACA,IAAAC,EACA,SAAAC,EAAW,SACX,SAAAC,EAAW,EACX,gBAAAjB,EACA,cAAAC,EACA,kBAAAE,EACA,sBAAAD,EAAwB,GACxB,cAAAE,EACA,aAAAc,EACA,WAAAC,EACA,MAAAC,EACA,QAAAC,EACA,WAAAC,EACA,mBAAAC,EACA,eAAAC,EACA,eAAAC,EACA,kBAAAC,EACA,MAAAC,EAAQ,EACR,WAAAC,EACA,gBAAAC,EACA,OAAAC,EACA,SAAAC,EACA,MAAAC,EACA,GAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAAA,SAASf,GAAsBb,CAAK,EAE1E6B,OAAAA,EAAAA,UAAU,IAAM,CACVjB,GACFe,EAAed,GAAsBb,CAAK,CAE9C,EAAG,CAACA,EAAOY,EAAYC,CAAkB,CAAC,EAGxCiB,EAAAA,kBAAAA,KAACC,EAAAA,KAAA,CACE,GAAGP,EACJ,IAAAC,EACA,UAAWO,EAAKR,EAAM,UAAW,CAC/B,SAAUN,EACV,SAAUG,GAAYD,IAAW,GACjC,cAAe,CAAC,CAACT,GAAS,MAAA,CAC3B,EACD,MAAO,CACL,GAAGW,EACH,YAAa,QAAQL,EAAQ,GAAG,YAAA,EAElC,MAAOC,EAAaC,EAAkB,OAEtC,SAAA,CAAAxB,EAAAA,kBAAAA,IAACN,EAAA,CACC,gBAAAC,EACA,cAAAC,EACA,kBAAAE,EACA,cAAAC,EACA,sBAAAF,EACC,GAAG+B,GAAI,QAAA,CAAA,EAETf,GAAgBA,EAChBH,GACCV,EAAAA,kBAAAA,IAAC,MAAA,CACC,IAAKU,EACJ,GAAGkB,GAAI,IACR,IAAI,GACJ,UAAWS,EAAK,QAAS1B,EAAUiB,GAAI,KAAK,SAAS,EACrD,MAAO,CACL,YAAahB,EAAS,SAAA,EACtB,GAAGgB,GAAI,KAAK,KAAA,CACd,CAAA,EAGHtB,GACCN,EAAAA,kBAAAA,IAACsC,EAAAA,KAAA,CACC,KAAAhC,EACA,UAAW+B,EAAK,CAAE,OAAQ5B,GAAcmB,GAAI,MAAM,SAAS,EAC3D,MAAO,CACL,MAAOpB,EACP,GAAGoB,GAAI,MAAM,KAAA,EAEd,GAAGA,GAAI,IAAA,CAAA,EAGXX,EACCjB,EAAAA,kBAAAA,IAACuC,EAAAA,UAAA,CACC,UAAS,GACT,MAAO,CAAE,KAAM,CAAA,EACf,SAAWrC,GAAM8B,EAAe9B,EAAE,OAAO,KAAK,EAC9C,MAAO6B,EACP,YAAaV,EACb,UAAYnB,GAAM,CACZA,EAAE,MAAQ,SACZiB,IAAiBY,CAAW,EAE1B7B,EAAE,MAAQ,UACZkB,IAAA,CAEJ,EACA,OAAQ,IAAM,CACZA,IAAA,CACF,EACA,QAAUlB,GAAM,CACdA,EAAE,OAAO,OAAA,CACX,EACC,GAAG0B,GAAI,KAAA,CAAA,EAGVO,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,OAAQ,GAAGP,GAAI,KAC3B,SAAA,CAAArB,GAAWe,IAAU,GAAKa,EAAAA,kBAAAA,KAAC,OAAA,CAAK,UAAU,OAAQ,SAAA,CAAA5B,EAAQ,KAAK,KAAK,EAAE,KAAA,EAAG,EAC1EP,EAAAA,kBAAAA,IAAC,OAAA,CAAK,UAAU,QAAS,SAAAK,CAAA,CAAM,CAAA,EACjC,EAGD,CAACY,GACAkB,EAAAA,kBAAAA,KAAAK,EAAAA,kBAAAA,SAAA,CACE,SAAA,CAAAxC,EAAAA,kBAAAA,IAACyC,EAAAA,OAAA,CAAO,UAAU,QAAA,CAAS,EAC1B1B,GAAO,SAAA,GACNf,EAAAA,kBAAAA,IAAC,OAAI,UAAU,SACZ,SAAA,OAAOe,GAAU,SAAWf,EAAAA,kBAAAA,IAAC,OAAA,CAAM,SAAAe,CAAA,CAAM,EAAUA,EACtD,EAEDC,2BACE,MAAA,CAAI,UAAU,UACZ,SAAAA,EAAQ,IAAI,CAAC0B,EAAQC,IAAM,CAC1B,KAAM,CAAE,KAAAC,EAAO,QAAS,GAAGC,GAAcH,EAEzC,OAAIE,IAAS,SAAiB,KAG5B5C,EAAAA,kBAAAA,IAACsC,EAAAA,KAAA,CAEE,GAAGO,EACJ,UAAWR,EAAKQ,EAAU,UAAW,CAAE,cAAeD,IAAS,SAAU,CAAA,EAFpEC,EAAU,KAAOF,EAAE,SAAA,CAAS,CAKvC,CAAC,CAAA,CACH,CAAA,EAEJ,EAED7B,GAAcA,CAAA,CAAA,CAAA,CAGrB,CACF"}