@ynput/ayon-frontend-shared 0.4.0 → 0.4.2

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 (1168) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +37 -198
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +248 -496
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +31 -230
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/api.cjs.js +1 -1
  11. package/dist/api.es.js +93 -93
  12. package/dist/components.cjs.js +1 -1
  13. package/dist/components.es.js +131 -126
  14. package/dist/components.es.js.map +1 -1
  15. package/dist/index.cjs.js +1 -1
  16. package/dist/index.es.js +33 -128
  17. package/dist/index.es.js.map +1 -1
  18. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  19. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  20. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  21. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  22. package/dist/shared/src/api/generated/graphql.cjs.js +45 -25
  23. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  24. package/dist/shared/src/api/generated/graphql.es.js +54 -34
  25. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  26. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  27. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  28. package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
  29. package/dist/shared/src/api/generated/views.es.js.map +1 -1
  30. package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
  31. package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
  32. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  33. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  34. package/dist/shared/src/api/queries/activities/getActivities.es.js +4 -4
  35. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  36. package/dist/shared/src/api/queries/activities/getCategories.cjs.js.map +1 -1
  37. package/dist/shared/src/api/queries/activities/getCategories.es.js.map +1 -1
  38. package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js.map +1 -1
  39. package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js.map +1 -1
  40. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  41. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  42. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  43. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  44. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +99 -201
  45. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  46. package/dist/shared/src/api/queries/addons/updateAddons.cjs.js.map +1 -1
  47. package/dist/shared/src/api/queries/addons/updateAddons.es.js.map +1 -1
  48. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
  49. package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
  50. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
  51. package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
  52. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -1
  53. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -1
  54. package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
  55. package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
  56. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  57. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  58. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +133 -142
  59. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  60. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js.map +1 -1
  61. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js.map +1 -1
  62. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  63. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  64. package/dist/shared/src/api/queries/entityLists/getLists.es.js +151 -202
  65. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  66. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
  67. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
  68. package/dist/shared/src/api/queries/entityLists/listFolders.es.js +40 -95
  69. package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -1
  70. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  71. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  72. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.cjs.js.map +1 -1
  73. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.es.js.map +1 -1
  74. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  75. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  76. package/dist/shared/src/api/queries/folders/getFolders.es.js +80 -129
  77. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  78. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  79. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  80. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +111 -167
  81. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  82. package/dist/shared/src/api/queries/links/getLinks.cjs.js +1 -1
  83. package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -1
  84. package/dist/shared/src/api/queries/links/getLinks.es.js +58 -73
  85. package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -1
  86. package/dist/shared/src/api/queries/links/updateLinks.cjs.js.map +1 -1
  87. package/dist/shared/src/api/queries/links/updateLinks.es.js.map +1 -1
  88. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  89. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  90. package/dist/shared/src/api/queries/overview/getOverview.es.js +344 -345
  91. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  92. package/dist/shared/src/api/queries/overview/patchVersions.cjs.js +1 -1
  93. package/dist/shared/src/api/queries/overview/patchVersions.cjs.js.map +1 -1
  94. package/dist/shared/src/api/queries/overview/patchVersions.es.js +130 -77
  95. package/dist/shared/src/api/queries/overview/patchVersions.es.js.map +1 -1
  96. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  97. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  98. package/dist/shared/src/api/queries/overview/updateOverview.es.js +136 -132
  99. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  100. package/dist/shared/src/api/queries/products/getFolderProducts.cjs.js.map +1 -1
  101. package/dist/shared/src/api/queries/products/getFolderProducts.es.js.map +1 -1
  102. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +1 -1
  103. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -1
  104. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +80 -134
  105. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -1
  106. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
  107. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  108. package/dist/shared/src/api/queries/review/getReview.es.js +105 -86
  109. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  110. package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
  111. package/dist/shared/src/api/queries/share/share.es.js.map +1 -1
  112. package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
  113. package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
  114. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  115. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  116. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +151 -184
  117. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  118. package/dist/shared/src/api/queries/users/getUsers.cjs.js +2 -2
  119. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  120. package/dist/shared/src/api/queries/users/getUsers.es.js +2 -2
  121. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  122. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  123. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  124. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +486 -490
  125. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  126. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js.map +1 -1
  127. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js.map +1 -1
  128. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
  129. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
  130. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
  131. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
  132. package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
  133. package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
  134. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
  135. package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
  136. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.cjs.js.map +1 -1
  137. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.es.js.map +1 -1
  138. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
  139. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
  140. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +28 -30
  141. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
  142. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js +1 -1
  143. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js.map +1 -1
  144. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js +29 -125
  145. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js.map +1 -1
  146. package/dist/shared/src/components/Chips/Chips.cjs.js +1 -1
  147. package/dist/shared/src/components/Chips/Chips.cjs.js.map +1 -1
  148. package/dist/shared/src/components/Chips/Chips.es.js +18 -17
  149. package/dist/shared/src/components/Chips/Chips.es.js.map +1 -1
  150. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +3 -3
  151. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
  152. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +16 -307
  153. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
  154. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js +5 -5
  155. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js.map +1 -1
  156. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js +49 -145
  157. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js.map +1 -1
  158. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +5 -5
  159. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  160. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +45 -141
  161. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  162. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  163. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  164. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +27 -180
  165. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  166. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  167. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  168. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +9 -192
  169. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  170. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +2 -2
  171. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  172. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +5 -197
  173. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  174. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +4 -4
  175. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -1
  176. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +18 -114
  177. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -1
  178. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +2 -2
  179. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -1
  180. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +13 -109
  181. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js.map +1 -1
  182. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  183. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  184. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +11 -313
  185. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  186. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js +1 -1
  187. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js.map +1 -1
  188. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js +23 -119
  189. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js.map +1 -1
  190. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js +1 -1
  191. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js.map +1 -1
  192. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js +0 -111
  193. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js.map +1 -1
  194. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js +1 -1
  195. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js.map +1 -1
  196. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.es.js +1 -1
  197. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.es.js.map +1 -1
  198. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
  199. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
  200. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +13 -311
  201. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
  202. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  203. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  204. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +86 -270
  205. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  206. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  207. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  208. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +34 -332
  209. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  210. package/dist/shared/src/components/EntityPath/EntityPath.cjs.js.map +1 -1
  211. package/dist/shared/src/components/EntityPath/EntityPath.es.js.map +1 -1
  212. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  213. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  214. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +15 -307
  215. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  216. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js.map +1 -1
  217. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js.map +1 -1
  218. package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js.map +1 -1
  219. package/dist/shared/src/components/EnumEditor/EnumEditorItem.es.js.map +1 -1
  220. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  221. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  222. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +89 -290
  223. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  224. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.cjs.js +2 -2
  225. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.cjs.js.map +1 -1
  226. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.es.js +10 -106
  227. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.es.js.map +1 -1
  228. package/dist/shared/src/components/InfoMessage/InfoMessage.cjs.js +1 -1
  229. package/dist/shared/src/components/InfoMessage/InfoMessage.cjs.js.map +1 -1
  230. package/dist/shared/src/components/InfoMessage/InfoMessage.es.js +6 -5
  231. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  232. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  233. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  234. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  235. package/dist/shared/src/components/LinksManager/LinksManager.es.js +51 -343
  236. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  237. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  238. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  239. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +7 -209
  240. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  241. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  242. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  243. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +2 -202
  244. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  245. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  246. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
  247. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +4 -182
  248. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
  249. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  250. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
  251. package/dist/shared/src/components/Menu/Menu.es.js +48 -340
  252. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
  253. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  254. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  255. package/dist/shared/src/components/Menu/MenuItem.es.js +20 -313
  256. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  257. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  258. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  259. package/dist/shared/src/components/Menu/MenuList.es.js +74 -370
  260. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  261. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +2 -2
  262. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  263. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +16 -312
  264. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  265. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  266. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  267. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +48 -343
  268. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  269. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +2 -2
  270. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  271. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +226 -368
  272. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  273. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  274. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  275. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +89 -375
  276. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  277. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  278. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  279. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +3 -296
  280. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  281. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  282. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  283. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +34 -331
  284. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  285. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  286. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  287. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +30 -328
  288. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  289. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +5 -5
  290. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  291. package/dist/shared/src/components/RenameForm/RenameForm.es.js +77 -369
  292. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  293. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  294. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  295. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +114 -312
  296. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  297. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  298. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  299. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +66 -362
  300. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  301. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  302. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  303. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +14 -313
  304. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  305. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  306. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  307. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +70 -72
  308. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  309. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  310. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  311. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +24 -323
  312. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  313. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js +1 -1
  314. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js.map +1 -1
  315. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js +2 -1
  316. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js.map +1 -1
  317. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  318. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  319. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +441 -523
  320. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  321. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +7 -7
  322. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  323. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +29 -326
  324. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  325. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js +8 -5
  326. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js.map +1 -1
  327. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js +36 -22
  328. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js.map +1 -1
  329. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +4 -4
  330. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  331. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +53 -352
  332. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  333. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +2 -2
  334. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  335. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +95 -391
  336. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  337. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js +2 -2
  338. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js.map +1 -1
  339. package/dist/shared/src/components/SyncButton/SyncButton.es.js +52 -165
  340. package/dist/shared/src/components/SyncButton/SyncButton.es.js.map +1 -1
  341. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +3 -3
  342. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  343. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +35 -331
  344. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  345. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
  346. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
  347. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +26 -122
  348. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
  349. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +3 -3
  350. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
  351. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +22 -118
  352. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
  353. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +13 -13
  354. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  355. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +99 -297
  356. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  357. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  358. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  359. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +61 -259
  360. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  361. package/dist/shared/src/config/plannerFeatures.cjs.js.map +1 -1
  362. package/dist/shared/src/config/plannerFeatures.es.js.map +1 -1
  363. package/dist/shared/src/config/powerpackFeatures.cjs.js.map +1 -1
  364. package/dist/shared/src/config/powerpackFeatures.es.js.map +1 -1
  365. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  366. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  367. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +6 -207
  368. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  369. package/dist/shared/src/containers/Actions/ActionIcon.cjs.js.map +1 -1
  370. package/dist/shared/src/containers/Actions/ActionIcon.es.js.map +1 -1
  371. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  372. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  373. package/dist/shared/src/containers/Actions/Actions.es.js +51 -247
  374. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  375. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  376. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  377. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  378. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  379. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +20 -320
  380. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  381. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.cjs.js.map +1 -1
  382. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.es.js.map +1 -1
  383. package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.cjs.js.map +1 -1
  384. package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.es.js.map +1 -1
  385. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  386. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  387. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +143 -324
  388. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  389. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +3 -3
  390. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  391. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +27 -326
  392. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  393. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  394. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  395. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +39 -233
  396. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  397. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  398. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  399. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +65 -252
  400. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  401. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +1 -1
  402. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -1
  403. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +16 -314
  404. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -1
  405. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  406. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  407. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +61 -351
  408. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  409. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js +5 -5
  410. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js.map +1 -1
  411. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js +20 -116
  412. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js.map +1 -1
  413. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  414. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +2 -303
  416. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  417. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js +1 -1
  418. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js +51 -147
  420. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js.map +1 -1
  421. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  422. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  423. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +2 -199
  424. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  425. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.cjs.js.map +1 -1
  426. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.es.js.map +1 -1
  427. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js +1 -1
  428. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js.map +1 -1
  429. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js +12 -12
  430. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js.map +1 -1
  431. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.cjs.js.map +1 -1
  432. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.es.js.map +1 -1
  433. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +9 -9
  434. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +18 -317
  436. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  437. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  438. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +13 -214
  440. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  441. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  442. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  443. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +22 -320
  444. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  445. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  446. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  447. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +27 -304
  448. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  449. package/dist/shared/src/containers/DetailsPanel/helpers/buildDetailsPanelTitles.cjs.js.map +1 -1
  450. package/dist/shared/src/containers/DetailsPanel/helpers/buildDetailsPanelTitles.es.js.map +1 -1
  451. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js.map +1 -1
  452. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js.map +1 -1
  453. package/dist/shared/src/containers/DetailsPanel/helpers/getAllProjectsStatuses.cjs.js.map +1 -1
  454. package/dist/shared/src/containers/DetailsPanel/helpers/getAllProjectsStatuses.es.js.map +1 -1
  455. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js.map +1 -1
  456. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js.map +1 -1
  457. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
  458. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
  459. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +10 -106
  460. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
  461. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
  462. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
  463. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  464. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  465. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -206
  466. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  467. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
  468. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  469. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +74 -370
  470. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  471. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  472. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  473. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +20 -321
  474. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  475. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +6 -6
  476. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  477. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +32 -335
  478. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  479. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +3 -3
  480. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  481. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +12 -315
  482. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  483. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +1 -1
  484. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -1
  485. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +11 -107
  486. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js.map +1 -1
  487. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  488. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  489. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +23 -225
  490. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  491. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +1 -1
  492. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -1
  493. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +27 -123
  494. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js.map +1 -1
  495. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.cjs.js.map +1 -1
  496. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.es.js.map +1 -1
  497. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  498. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  499. package/dist/shared/src/containers/Feed/Feed.es.js +65 -242
  500. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  501. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js.map +1 -1
  502. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js.map +1 -1
  503. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  504. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  505. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +8 -306
  506. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  507. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  508. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  509. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +145 -418
  510. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  511. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  512. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  513. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +18 -314
  514. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  515. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
  516. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
  517. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +24 -120
  518. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
  519. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  520. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  521. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +42 -328
  522. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  523. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js.map +1 -1
  524. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.es.js.map +1 -1
  525. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  526. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  527. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +227 -369
  528. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  529. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.cjs.js.map +1 -1
  530. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.es.js.map +1 -1
  531. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  532. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  533. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +38 -338
  534. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  535. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  536. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  537. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +22 -321
  538. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  539. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +1 -1
  540. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -1
  541. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +9 -105
  542. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js.map +1 -1
  543. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  544. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  545. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +21 -321
  546. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  547. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js +1 -1
  548. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js.map +1 -1
  549. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js +16 -26
  550. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js.map +1 -1
  551. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.cjs.js +2 -0
  552. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.cjs.js.map +1 -0
  553. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.es.js +14 -0
  554. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.es.js.map +1 -0
  555. package/dist/shared/src/containers/Feed/components/CommentInput/types.cjs.js +1 -1
  556. package/dist/shared/src/containers/Feed/components/CommentInput/types.cjs.js.map +1 -1
  557. package/dist/shared/src/containers/Feed/components/CommentInput/types.es.js +2 -15
  558. package/dist/shared/src/containers/Feed/components/CommentInput/types.es.js.map +1 -1
  559. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +2 -2
  560. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -1
  561. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +63 -359
  562. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -1
  563. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  564. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  565. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +57 -353
  566. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  567. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  568. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  569. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +14 -307
  570. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  571. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  572. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  573. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +34 -235
  574. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  575. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  576. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  577. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +67 -163
  578. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  579. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js.map +1 -1
  580. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js +18 -8
  581. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js.map +1 -1
  582. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
  583. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
  584. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +10 -106
  585. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
  586. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionUsers.cjs.js.map +1 -1
  587. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionUsers.es.js.map +1 -1
  588. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
  589. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
  590. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +13 -109
  591. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
  592. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  593. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  594. package/dist/shared/src/containers/ListTable/ListTable.es.js +116 -282
  595. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  596. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  597. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  598. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +58 -188
  599. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  600. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  601. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  602. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +46 -340
  603. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  604. package/dist/shared/src/containers/ListTable/ListTableWidgets.cjs.js.map +1 -1
  605. package/dist/shared/src/containers/ListTable/ListTableWidgets.es.js.map +1 -1
  606. package/dist/shared/src/containers/MoveEntityDialog/MoveEntityDialog.cjs.js.map +1 -1
  607. package/dist/shared/src/containers/MoveEntityDialog/MoveEntityDialog.es.js.map +1 -1
  608. package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js +3 -3
  609. package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js.map +1 -1
  610. package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js +170 -456
  611. package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js.map +1 -1
  612. package/dist/shared/src/containers/NewEntity/components/TypeEditor.cjs.js.map +1 -1
  613. package/dist/shared/src/containers/NewEntity/components/TypeEditor.es.js.map +1 -1
  614. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js +1 -1
  615. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js.map +1 -1
  616. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.es.js +117 -311
  617. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.es.js.map +1 -1
  618. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  619. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  620. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +603 -869
  621. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  622. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  623. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  624. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +605 -579
  625. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  626. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  627. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  628. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +75 -372
  629. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  630. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  631. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  632. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +32 -201
  633. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  634. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  635. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  636. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +28 -122
  637. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  638. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js +7 -7
  639. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js.map +1 -1
  640. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js +35 -131
  641. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js.map +1 -1
  642. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  643. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  644. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +107 -299
  645. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  646. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +5 -5
  647. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  648. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +334 -515
  649. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  650. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  651. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  652. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +158 -329
  653. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  654. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  655. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  656. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +4 -205
  657. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  658. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +1 -1
  659. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  660. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +121 -418
  661. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  662. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  663. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  664. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +73 -244
  665. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  666. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js.map +1 -1
  667. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js +3 -3
  668. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js.map +1 -1
  669. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.cjs.js.map +1 -1
  670. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.es.js.map +1 -1
  671. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.cjs.js.map +1 -1
  672. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.es.js.map +1 -1
  673. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
  674. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  675. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +83 -179
  676. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  677. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  678. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  679. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +13 -314
  680. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  681. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  682. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  683. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +60 -231
  684. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  685. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  686. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  687. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +75 -246
  688. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  689. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  690. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  691. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +149 -438
  692. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  693. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  694. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  695. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +25 -196
  696. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  697. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  698. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  699. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +32 -203
  700. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  701. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  702. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  703. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +32 -329
  704. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  705. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  706. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  707. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +174 -371
  708. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  709. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -1
  710. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js.map +1 -1
  711. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  712. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  713. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +29 -200
  714. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  715. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  716. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  717. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +36 -201
  718. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  719. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupCounts.cjs.js.map +1 -1
  720. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupCounts.es.js.map +1 -1
  721. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  722. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  723. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +93 -383
  724. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  725. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  726. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  727. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +78 -279
  728. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  729. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  730. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  731. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +31 -229
  732. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  733. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  734. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  735. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +25 -196
  736. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  737. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  738. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  739. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +39 -221
  740. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  741. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  742. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  743. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +167 -464
  744. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  745. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  746. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  747. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +41 -212
  748. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  749. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map +1 -1
  750. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map +1 -1
  751. package/dist/shared/src/containers/ProjectTreeTable/utils/columnIds.cjs.js +2 -0
  752. package/dist/shared/src/containers/ProjectTreeTable/utils/columnIds.cjs.js.map +1 -0
  753. package/dist/shared/src/containers/ProjectTreeTable/utils/columnIds.es.js +45 -0
  754. package/dist/shared/src/containers/ProjectTreeTable/utils/columnIds.es.js.map +1 -0
  755. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js.map +1 -1
  756. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js.map +1 -1
  757. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.cjs.js.map +1 -1
  758. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.es.js.map +1 -1
  759. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.cjs.js.map +1 -1
  760. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.es.js.map +1 -1
  761. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +1 -1
  762. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
  763. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +37 -21
  764. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
  765. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js.map +1 -1
  766. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js.map +1 -1
  767. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -1
  768. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js.map +1 -1
  769. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js.map +1 -1
  770. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js.map +1 -1
  771. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
  772. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
  773. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.cjs.js.map +1 -1
  774. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.es.js.map +1 -1
  775. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.cjs.js.map +1 -1
  776. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.es.js.map +1 -1
  777. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +2 -2
  778. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  779. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +14 -312
  780. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  781. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +6 -2
  782. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  783. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +121 -399
  784. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  785. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +5 -5
  786. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  787. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +40 -329
  788. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  789. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
  790. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
  791. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js +30 -0
  792. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js.map +1 -0
  793. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js +198 -0
  794. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js.map +1 -0
  795. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -1
  796. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -1
  797. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  798. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  799. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +3 -3
  800. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  801. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +50 -343
  802. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  803. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +5 -5
  804. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
  805. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +77 -361
  806. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
  807. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  808. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  809. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +28 -199
  810. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  811. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  812. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  813. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +36 -330
  814. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  815. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +5 -5
  816. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  817. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +130 -421
  818. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  819. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +4 -4
  820. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  821. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +80 -176
  822. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  823. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +5 -5
  824. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  825. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +12 -108
  826. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  827. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  828. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  829. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +20 -214
  830. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  831. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  832. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  833. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +231 -524
  834. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  835. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  836. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  837. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +69 -364
  838. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  839. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +2 -2
  840. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
  841. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +18 -315
  842. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
  843. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +2 -2
  844. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  845. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +24 -325
  846. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  847. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  848. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  849. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +69 -367
  850. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  851. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  852. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  853. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +27 -225
  854. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  855. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js +1 -1
  856. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js.map +1 -1
  857. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.es.js +34 -233
  858. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.es.js.map +1 -1
  859. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
  860. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
  861. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +5 -306
  862. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
  863. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
  864. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
  865. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +7 -308
  866. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
  867. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js +1 -1
  868. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js.map +1 -1
  869. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js +11 -311
  870. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js.map +1 -1
  871. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +1 -1
  872. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -1
  873. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +13 -313
  874. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -1
  875. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +1 -1
  876. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -1
  877. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +34 -335
  878. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -1
  879. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +1 -1
  880. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -1
  881. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +11 -313
  882. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -1
  883. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  884. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  885. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +72 -365
  886. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  887. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
  888. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
  889. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -1
  890. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -1
  891. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -1
  892. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
  893. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +24 -120
  894. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
  895. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -1
  896. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -1
  897. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  898. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  899. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +35 -333
  900. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  901. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  902. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  903. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +55 -351
  904. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  905. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  906. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  907. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +40 -332
  908. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  909. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  910. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  911. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +59 -259
  912. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  913. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -1
  914. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
  915. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +17 -113
  916. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
  917. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  918. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  919. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +45 -141
  920. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  921. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js.map +1 -1
  922. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js.map +1 -1
  923. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  924. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  925. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +22 -213
  926. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  927. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  928. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  929. package/dist/shared/src/containers/Views/types.cjs.js.map +1 -1
  930. package/dist/shared/src/containers/Views/types.es.js.map +1 -1
  931. package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js.map +1 -1
  932. package/dist/shared/src/containers/Views/utils/generateWorkingView.es.js.map +1 -1
  933. package/dist/shared/src/context/AddonContext.cjs.js.map +1 -1
  934. package/dist/shared/src/context/AddonContext.es.js.map +1 -1
  935. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  936. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  937. package/dist/shared/src/context/AddonProjectContext.es.js +19 -115
  938. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  939. package/dist/shared/src/context/DeleteEntitiesContext.cjs.js +1 -1
  940. package/dist/shared/src/context/DeleteEntitiesContext.cjs.js.map +1 -1
  941. package/dist/shared/src/context/DeleteEntitiesContext.es.js +1 -1
  942. package/dist/shared/src/context/DeleteEntitiesContext.es.js.map +1 -1
  943. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  944. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  945. package/dist/shared/src/context/DetailsPanelContext.es.js +66 -359
  946. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  947. package/dist/shared/src/context/EntityUpdatesContext.cjs.js +1 -1
  948. package/dist/shared/src/context/EntityUpdatesContext.cjs.js.map +1 -1
  949. package/dist/shared/src/context/EntityUpdatesContext.es.js +79 -356
  950. package/dist/shared/src/context/EntityUpdatesContext.es.js.map +1 -1
  951. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  952. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  953. package/dist/shared/src/context/PowerpackContext.es.js +42 -341
  954. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  955. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  956. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  957. package/dist/shared/src/context/ProjectFoldersContext.es.js +26 -228
  958. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  959. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  960. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  961. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  962. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  963. package/dist/shared/src/context/SubtasksModulesContext.es.js +23 -321
  964. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  965. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js +1 -1
  966. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js.map +1 -1
  967. package/dist/shared/src/context/ThumbnailUploaderContext.es.js +17 -21
  968. package/dist/shared/src/context/ThumbnailUploaderContext.es.js.map +1 -1
  969. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  970. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  971. package/dist/shared/src/context/UriContext.es.js +2 -2
  972. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  973. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  974. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  975. package/dist/shared/src/context/WebsocketContext.es.js +28 -226
  976. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  977. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  978. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  979. package/dist/shared/src/hooks/useEntityUpdate.es.js +2 -205
  980. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  981. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  982. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  983. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +11 -311
  984. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  985. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  986. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  987. package/dist/shared/src/hooks/useHierarchyTable.es.js +30 -330
  988. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  989. package/dist/shared/src/hooks/useLoadModules.cjs.js.map +1 -1
  990. package/dist/shared/src/hooks/useLoadModules.es.js.map +1 -1
  991. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +1 -1
  992. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -1
  993. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +19 -115
  994. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js.map +1 -1
  995. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  996. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  997. package/dist/shared/src/hooks/useUserProjectConfig.es.js +6 -209
  998. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  999. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js.map +1 -1
  1000. package/dist/shared/src/util/buildHierarchicalTableRows.es.js.map +1 -1
  1001. package/dist/shared/src/util/checkName.cjs.js.map +1 -1
  1002. package/dist/shared/src/util/checkName.es.js.map +1 -1
  1003. package/dist/shared/src/util/columnConfigConverter.cjs.js +1 -1
  1004. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  1005. package/dist/shared/src/util/columnConfigConverter.es.js +33 -33
  1006. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  1007. package/dist/shared/src/util/getAttributeIcon.cjs.js +1 -1
  1008. package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -1
  1009. package/dist/shared/src/util/getAttributeIcon.es.js +2 -1
  1010. package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -1
  1011. package/dist/shared/src/util/getBundleMode.cjs.js +1 -1
  1012. package/dist/shared/src/util/getBundleMode.cjs.js.map +1 -1
  1013. package/dist/shared/src/util/getBundleMode.es.js +16 -112
  1014. package/dist/shared/src/util/getBundleMode.es.js.map +1 -1
  1015. package/dist/shared/src/util/getGroupByDataType.cjs.js.map +1 -1
  1016. package/dist/shared/src/util/getGroupByDataType.es.js.map +1 -1
  1017. package/dist/shared/src/util/getPriorityOptions.cjs.js.map +1 -1
  1018. package/dist/shared/src/util/getPriorityOptions.es.js.map +1 -1
  1019. package/dist/shared/src/util/iconUtils.cjs.js.map +1 -1
  1020. package/dist/shared/src/util/iconUtils.es.js.map +1 -1
  1021. package/dist/shared/src/util/mentionTypeOptions.cjs.js +2 -0
  1022. package/dist/shared/src/util/mentionTypeOptions.cjs.js.map +1 -0
  1023. package/dist/shared/src/util/mentionTypeOptions.es.js +16 -0
  1024. package/dist/shared/src/util/mentionTypeOptions.es.js.map +1 -0
  1025. package/dist/shared/src/util/parseFilename.cjs.js +2 -0
  1026. package/dist/shared/src/util/parseFilename.cjs.js.map +1 -0
  1027. package/dist/shared/src/util/parseFilename.es.js +8 -0
  1028. package/dist/shared/src/util/parseFilename.es.js.map +1 -0
  1029. package/dist/shared/src/util/realtimeUpdatesUtils.cjs.js +1 -1
  1030. package/dist/shared/src/util/realtimeUpdatesUtils.cjs.js.map +1 -1
  1031. package/dist/shared/src/util/realtimeUpdatesUtils.es.js +33 -27
  1032. package/dist/shared/src/util/realtimeUpdatesUtils.es.js.map +1 -1
  1033. package/dist/shared/src/util/uriUtils.cjs.js.map +1 -1
  1034. package/dist/shared/src/util/uriUtils.es.js.map +1 -1
  1035. package/dist/types/api/base/index.d.ts +1 -1
  1036. package/dist/types/api/generated/graphql.d.ts +50 -4
  1037. package/dist/types/api/generated/graphqlLinks.d.ts +15 -2
  1038. package/dist/types/api/generated/views.d.ts +13 -4
  1039. package/dist/types/api/queries/activities/getActivities.d.ts +28 -2
  1040. package/dist/types/api/queries/activities/getCategories.d.ts +1 -1
  1041. package/dist/types/api/queries/activities/util/activityRealtimeHandler.d.ts +1 -4
  1042. package/dist/types/api/queries/entities/getEntity.d.ts +14 -1
  1043. package/dist/types/api/queries/entities/getEntityPanel.d.ts +14 -1
  1044. package/dist/types/api/queries/entities/updateEntity.d.ts +14 -1
  1045. package/dist/types/api/queries/entityLists/getLists.d.ts +317 -312
  1046. package/dist/types/api/queries/entityLists/types.d.ts +7 -0
  1047. package/dist/types/api/queries/overview/getOverview.d.ts +49 -20
  1048. package/dist/types/api/queries/overview/patchVersions.d.ts +9 -0
  1049. package/dist/types/api/queries/project/getProject.d.ts +74 -61
  1050. package/dist/types/api/queries/system/getSystem.d.ts +1 -1
  1051. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +14 -1
  1052. package/dist/types/api/queries/users/getUsers.d.ts +14 -1
  1053. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +159 -2
  1054. package/dist/types/api/queries/views/getViews.d.ts +1 -1
  1055. package/dist/types/components/DetailsPanelDetails/DetailsSection.d.ts +1 -1
  1056. package/dist/types/components/EntityIcon/EntityIcon.d.ts +4 -4
  1057. package/dist/types/components/Menu/Menu.d.ts +1 -1
  1058. package/dist/types/components/Menu/MenuList.d.ts +1 -1
  1059. package/dist/types/components/Powerpack/PowerpackButton.d.ts +1 -1
  1060. package/dist/types/components/ProjectTableSettings/ColumnsSettings.d.ts +10 -2
  1061. package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +2 -2
  1062. package/dist/types/components/ProjectTableSettings/TableSettingsFallback.d.ts +1 -1
  1063. package/dist/types/components/ProjectTableSettings/index.d.ts +1 -0
  1064. package/dist/types/components/RemotePage/ProjectPageRemote.d.ts +1 -1
  1065. package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +5 -3
  1066. package/dist/types/components/RenameForm/RenameForm.d.ts +1 -1
  1067. package/dist/types/components/ReviewablesList/SortableReviewableCard.d.ts +1 -1
  1068. package/dist/types/components/ReviewablesList/useReviewablesUpload.d.ts +2 -2
  1069. package/dist/types/components/ReviewablesSelector/Card.d.ts +1 -1
  1070. package/dist/types/components/SearchFilter/filterScopeRegistry.d.ts +1 -1
  1071. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +6 -3
  1072. package/dist/types/components/SettingsPanel/SettingsPanel.d.ts +1 -1
  1073. package/dist/types/components/SettingsPanel/SettingsPanelItemTemplate.d.ts +1 -0
  1074. package/dist/types/components/SyncButton/SyncButton.d.ts +1 -1
  1075. package/dist/types/components/Thumbnail/StackedThumbnails.d.ts +1 -2
  1076. package/dist/types/components/index.d.ts +1 -0
  1077. package/dist/types/config/plannerFeatures.d.ts +1 -1
  1078. package/dist/types/config/powerpackFeatures.d.ts +1 -1
  1079. package/dist/types/containers/Actions/Actions.d.ts +2 -2
  1080. package/dist/types/containers/ContextMenu/ContextMenuItem.d.ts +1 -1
  1081. package/dist/types/containers/ContextMenu/useCreateContextMenu.d.ts +1 -1
  1082. package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +1 -1
  1083. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.d.ts +2 -2
  1084. package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.d.ts +1 -1
  1085. package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.d.ts +2 -2
  1086. package/dist/types/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.d.ts +1 -1
  1087. package/dist/types/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.d.ts +3 -3
  1088. package/dist/types/containers/DetailsPanel/containers/DetailsPanelSubtasks.d.ts +1 -1
  1089. package/dist/types/containers/DetailsPanel/helpers/buildEntityTypeIcons.d.ts +1 -1
  1090. package/dist/types/containers/DetailsPanel/helpers/getEntityPathData.d.ts +1 -1
  1091. package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +1 -1
  1092. package/dist/types/containers/DetailsPanel/hooks/useGetEntityPath.d.ts +1 -1
  1093. package/dist/types/containers/EntityPickerDialog/components/EntityTypeTable.d.ts +1 -1
  1094. package/dist/types/containers/EntityPickerDialog/hooks/useGetEntityPickerData.d.ts +1 -1
  1095. package/dist/types/containers/EntityPickerDialog/util/buildEntityPickerTableData.d.ts +1 -1
  1096. package/dist/types/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.d.ts +1 -1
  1097. package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.styled.d.ts +2 -2
  1098. package/dist/types/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.d.ts +1 -1
  1099. package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.styled.d.ts +1 -1
  1100. package/dist/types/containers/Feed/components/CommentInput/modules/index.d.ts +1 -1
  1101. package/dist/types/containers/Feed/components/CommentInput/quillFormats.d.ts +1 -0
  1102. package/dist/types/containers/Feed/components/CommentInput/types.d.ts +1 -12
  1103. package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.d.ts +1 -1
  1104. package/dist/types/containers/Feed/context/FeedContext.d.ts +1 -1
  1105. package/dist/types/containers/Feed/hooks/useLastVersionReview.d.ts +1 -1
  1106. package/dist/types/containers/Feed/mentionHelpers/getMentionTasks.d.ts +1 -1
  1107. package/dist/types/containers/Feed/mentionHelpers/getMentionUsers.d.ts +1 -1
  1108. package/dist/types/containers/Feed/mentionHelpers/getMentionVersions.d.ts +2 -2
  1109. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +4 -2
  1110. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +22 -1
  1111. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +4 -3
  1112. package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +1 -1
  1113. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +4 -5
  1114. package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +1 -1
  1115. package/dist/types/containers/ProjectTreeTable/hooks/useGetEntityTypeData.d.ts +2 -2
  1116. package/dist/types/containers/ProjectTreeTable/hooks/useGroupCounts.d.ts +1 -0
  1117. package/dist/types/containers/ProjectTreeTable/hooks/useMoveEntities.d.ts +1 -1
  1118. package/dist/types/containers/ProjectTreeTable/hooks/usePasteLinks.d.ts +1 -1
  1119. package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +1 -1
  1120. package/dist/types/containers/ProjectTreeTable/types/index.d.ts +1 -1
  1121. package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +6 -5
  1122. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +3 -0
  1123. package/dist/types/containers/ProjectTreeTable/utils/columnIds.d.ts +10 -0
  1124. package/dist/types/containers/ProjectTreeTable/utils/getEntityViewerIds.d.ts +1 -1
  1125. package/dist/types/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.d.ts +1 -1
  1126. package/dist/types/containers/ProjectTreeTable/utils/getTableFieldOptions.d.ts +2 -1
  1127. package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +1 -0
  1128. package/dist/types/containers/ProjectTreeTable/utils/linksToTableData.d.ts +1 -1
  1129. package/dist/types/containers/ProjectTreeTable/utils/sanitizeQueryFilter.d.ts +1 -1
  1130. package/dist/types/containers/ProjectTreeTable/widgets/EntityWidget.d.ts +15 -0
  1131. package/dist/types/containers/ProjectTreeTable/widgets/LinksWidget.d.ts +1 -1
  1132. package/dist/types/containers/ProjectTreeTable/widgets/NameWidget.d.ts +1 -1
  1133. package/dist/types/containers/ProjectTreeTable/widgets/TextWidget.d.ts +2 -1
  1134. package/dist/types/containers/ProjectTreeTable/widgets/index.d.ts +1 -0
  1135. package/dist/types/containers/Slicer/components/Slicer.d.ts +2 -2
  1136. package/dist/types/containers/Slicer/components/SlicerDropdownFallback.d.ts +1 -1
  1137. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +3 -4
  1138. package/dist/types/containers/Slicer/hooks/useEntityListsSlice.d.ts +1 -1
  1139. package/dist/types/containers/Slicer/hooks/useHierarchyContextMenuItems.d.ts +3 -3
  1140. package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +1 -1
  1141. package/dist/types/containers/Slicer/hooks/useSlicerCounts.d.ts +1 -1
  1142. package/dist/types/containers/Slicer/hooks/useUsersTable.d.ts +1 -1
  1143. package/dist/types/containers/Slicer/types.d.ts +1 -1
  1144. package/dist/types/containers/Views/hooks/pages/useListsViewSettings.d.ts +1 -1
  1145. package/dist/types/containers/Views/hooks/pages/useOverviewViewSettings.d.ts +1 -1
  1146. package/dist/types/containers/Views/types.d.ts +1 -1
  1147. package/dist/types/context/AddonContext.d.ts +1 -1
  1148. package/dist/types/context/AddonProjectContext.d.ts +2 -2
  1149. package/dist/types/context/DetailsPanelContext.d.ts +2 -2
  1150. package/dist/types/context/SubtasksModulesContext.d.ts +1 -1
  1151. package/dist/types/hooks/useHierarchyTable.d.ts +1 -1
  1152. package/dist/types/util/buildHierarchicalTableRows.d.ts +1 -1
  1153. package/dist/types/util/columnConfigConverter.d.ts +1 -1
  1154. package/dist/types/util/getBundleMode.d.ts +1 -1
  1155. package/dist/types/util/getGroupByDataType.d.ts +1 -1
  1156. package/dist/types/util/index.d.ts +2 -0
  1157. package/dist/types/util/mentionTypeOptions.d.ts +12 -0
  1158. package/dist/types/util/parseFilename.d.ts +1 -0
  1159. package/dist/types/util/realtimeUpdatesUtils.d.ts +6 -3
  1160. package/dist/types/util/uriUtils.d.ts +1 -1
  1161. package/dist/util.cjs.js +1 -1
  1162. package/dist/util.es.js +52 -47
  1163. package/dist/util.es.js.map +1 -1
  1164. package/package.json +4 -4
  1165. package/dist/shared/src/components/ThumbnailSimple/index.cjs.js +0 -2
  1166. package/dist/shared/src/components/ThumbnailSimple/index.cjs.js.map +0 -1
  1167. package/dist/shared/src/components/ThumbnailSimple/index.es.js +0 -6
  1168. package/dist/shared/src/components/ThumbnailSimple/index.es.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ClipboardContext.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ClipboardContext.tsx"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useMemo } from 'react'\n\n// Contexts\nimport { ROW_SELECTION_COLUMN_ID } from '../constants'\nimport { useSelectionCellsContext } from './SelectionCellsContext'\nimport { useCellEditing } from './CellEditingContext'\nimport { useProjectContext } from '@shared/context'\n\n// Utils\nimport {\n getCellValue,\n getEntityDataById,\n getLinkEntityIdsByColumnId,\n parseCellId,\n} from '../utils/cellUtils'\n\n// Types\nimport { TableRow } from '../types/table'\nimport { EntityUpdate } from '../hooks/useUpdateTableData'\nimport usePasteLinks, { LinkUpdate } from '../hooks/usePasteLinks'\nimport { useUpdateSubtasksMutation } from '@shared/api'\n\n// Import from the new modular files\nimport {\n getEntityPath,\n parseClipboardText,\n clipboardError,\n processFieldValue,\n subtasksToTSV,\n isSubtasksTSV,\n tsvToSubtasks,\n sanitizeSubtaskName,\n commentsToText,\n} from './clipboard'\nimport { validateClipboardData } from './clipboard/clipboardValidation'\nimport { ClipboardContextType, ClipboardProviderProps } from './clipboard/clipboardTypes'\nimport { useProjectTableContext } from './ProjectTableContext'\nimport { validateEntityId, getEntityId } from '@shared/util'\n\nconst ClipboardContext = createContext<ClipboardContextType | undefined>(undefined)\n\nconst DISPLAY_PREFERRED_COLS = new Set([\n 'version',\n 'product',\n 'productBaseType',\n 'taskLabel',\n])\n\nexport const ClipboardProvider: React.FC<ClipboardProviderProps> = ({\n children,\n entitiesMap,\n columnEnums,\n columnReadOnly,\n visibleColumns,\n}) => {\n // Get selection information from SelectionContext\n const { selectedCells, gridMap, focusedCellId } = useSelectionCellsContext()\n const { updateEntities, history } = useCellEditing()\n const { pasteTableLinks } = usePasteLinks()\n const { getEntityById, attribFields, tableData } = useProjectTableContext()\n\n const displayRowsById = useMemo(() => {\n const map = new Map<string, TableRow>()\n const walk = (rows: TableRow[]) => {\n for (const row of rows) {\n map.set(row.id, row)\n if (row.subRows?.length) walk(row.subRows as TableRow[])\n }\n }\n walk(tableData || [])\n return map\n }, [tableData])\n const { projectName } = useProjectContext()\n const [updateSubtasks] = useUpdateSubtasksMutation()\n\n const getSelectionData = useCallback(\n async (selected: string[], config?: { headers?: boolean; fullRow?: boolean }) => {\n const { headers, fullRow } = config || {}\n try {\n // Get visible columns in display order, excluding row selection\n const visibleColumnIds = visibleColumns\n .map((col) => col.id)\n .filter((id) => id !== ROW_SELECTION_COLUMN_ID)\n\n // Organize selected cells by row, filtering to only visible columns\n const cellsByRow = new Map<string, Set<string>>()\n\n // Parse all selected cells and organize by rowId and colId\n selected.forEach((cellId) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n const { rowId, colId } = position\n if (colId === ROW_SELECTION_COLUMN_ID || !visibleColumnIds.includes(colId)) return\n\n if (!cellsByRow.has(rowId)) {\n cellsByRow.set(rowId, new Set())\n }\n\n cellsByRow.get(rowId)?.add(colId)\n })\n\n if (fullRow) {\n const selectedRows = selected\n .filter(\n (cellId) =>\n parseCellId(cellId)?.rowId &&\n parseCellId(cellId)?.colId === ROW_SELECTION_COLUMN_ID,\n )\n .map((cellId) => parseCellId(cellId)?.rowId) as string[]\n\n // select the whole row\n // For rows with selection cells, add all available columns\n selectedRows.forEach((rowId) => {\n // add the rowId if it doesn't exist\n if (!cellsByRow.has(rowId)) {\n cellsByRow.set(rowId, new Set())\n }\n const allColumns = Array.from(gridMap.colIdToIndex.keys())\n allColumns.forEach((colId) => {\n cellsByRow.get(rowId)?.add(colId)\n })\n })\n }\n\n // Get sorted row IDs based on their index in the grid\n const sortedRows = Array.from(cellsByRow.keys()).sort((a, b) => {\n const indexA = gridMap.rowIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.rowIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // Build clipboard text\n let clipboardText = ''\n\n // Get the first row to determine columns\n const firstRowId = sortedRows[0]\n if (!firstRowId) return ''\n\n // Get all column IDs for the first row, sorted by their index in the grid\n const colIds = Array.from(cellsByRow.get(firstRowId) || []).sort((a, b) => {\n const indexA = gridMap.colIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.colIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // Include headers if requested\n if (headers && colIds.length > 0) {\n const headerValues: string[] = []\n\n for (const colId of colIds) {\n // Use colId as the column name since we don't have direct access to column names\n const columnName = colId\n headerValues.push(`${columnName.replace(/\"/g, '\"\"')}`)\n }\n\n clipboardText += headerValues.join('\\t') + '\\n'\n }\n\n for (const rowId of sortedRows) {\n // Get the entity for this row\n const entity = getEntityById(rowId)\n\n if (!entity) {\n console.warn(`Entity not found for rowId: ${rowId}`)\n continue\n }\n\n const displayRow = displayRowsById.get(rowId)\n\n // Get all column IDs for this row, sorted by their index in the grid\n const colIds = Array.from(cellsByRow.get(rowId) || []).sort((a, b) => {\n const indexA = gridMap.colIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.colIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // Filter out the row selection column from the copied data\n const filteredColIds = colIds.filter((colId) => colId !== ROW_SELECTION_COLUMN_ID)\n\n const rowValues: string[] = []\n\n // For each column in this row\n for (const colId of filteredColIds) {\n // Determine the value based on the column ID\n let cellValue = ''\n\n // special handling of link cells\n if (colId.startsWith('link_')) {\n // @ts-expect-error - only complaining about missing __typename\n cellValue = getLinkEntityIdsByColumnId(entity.links, colId)\n } else if (colId === 'subtasks') {\n // Special handling for subtasks - convert to TSV format\n // @ts-ignore\n const subtasks = getCellValue(entity, colId) || []\n cellValue = subtasksToTSV(subtasks, entity.id, entity.name)\n } else if (colId === 'comments') {\n // @ts-ignore\n const comments = getCellValue(entity, 'latestComments') || []\n cellValue = commentsToText(comments)\n } else {\n // @ts-ignore\n let foundValue = getCellValue(entity, colId)\n\n // folder is an object on some entities (product/task) or nested under\n // product (version) - copy the display name the cell shows,\n // falling back to the last parent (parent folder name on tasks/folders)\n if (colId === 'folder' && typeof foundValue !== 'string') {\n const folder = foundValue || (entity as any).product?.folder\n const parents = 'parents' in entity ? entity.parents : undefined\n foundValue = folder?.label || folder?.name || parents?.[parents.length - 1] || ''\n }\n\n // Raw entity nodes (flat lists) either lack display-computed columns or hold a\n // non-string value (product/task object, numeric version) — prefer the built\n // display row, which is exactly what the cell shows.\n if (\n displayRow &&\n (DISPLAY_PREFERRED_COLS.has(colId) ||\n foundValue === undefined ||\n foundValue === null ||\n foundValue === '' ||\n typeof foundValue === 'object')\n ) {\n const displayValue = getCellValue(displayRow, colId)\n if (displayValue !== undefined && displayValue !== null && displayValue !== '') {\n foundValue = displayValue\n }\n }\n\n if (!foundValue) {\n // we should look for the default value set out in attribFields\n const field = attribFields.find((f) => f.name === colId.replace('attrib_', ''))\n if (field && field.data.type === 'boolean') {\n foundValue = false // default boolean value\n } else if (field && field.data.type.includes('list_of')) {\n foundValue = [] // default list value\n }\n }\n\n // convert to string if foundValue is not undefined or null use empty string otherwise\n cellValue = foundValue !== undefined && foundValue !== null ? String(foundValue) : ''\n\n // Hierarchical tables resolve a full path; flat lists (raw nodes keyed by row id)\n // can't, so fall back to the built display row label/name the cell shows\n if (colId === 'name') {\n cellValue =\n getEntityPath(entity.entityId || entity.id, entitiesMap) ||\n (displayRow as any)?.label ||\n displayRow?.name ||\n (entity as any).label ||\n entity.name ||\n ''\n }\n\n if (colId === 'subType') {\n // built display rows resolve subType (folder/task/product); raw nodes fall back to type fields\n const resolvedSubType = (displayRow as any)?.subType ?? (entity as any).subType\n if (typeof resolvedSubType === 'string' && resolvedSubType) {\n cellValue = resolvedSubType\n } else {\n if ('folderType' in entity) {\n cellValue = entity.folderType || ''\n }\n if ('taskType' in entity) {\n cellValue = entity.taskType || ''\n }\n }\n }\n }\n\n // Wrap multi-line / tab / quote values in quotes so spreadsheets keep them in one\n // cell. Subtasks embed tabs+newlines as real grid structure for paste round-trips —\n // leave them raw so they stay multi-row/column.\n const escaped = cellValue.replace(/\"/g, '\"\"')\n const needsQuoting =\n colId !== 'subtasks' &&\n (cellValue.includes('\\n') || cellValue.includes('\\t') || cellValue.includes('\"'))\n rowValues.push(needsQuoting ? `\"${escaped}\"` : escaped)\n }\n\n // Add row to clipboard text\n clipboardText += rowValues.join('\\t') + '\\n'\n }\n\n return clipboardText\n } catch (error) {\n console.error('Failed to copy to clipboard:', error)\n }\n },\n [selectedCells, focusedCellId, gridMap, entitiesMap, getEntityById, visibleColumns, displayRowsById],\n )\n\n const doesClipboardContainId = async () => {\n // check if the clipboard contains a valid ID\n const clipboardText = await getClipboardString()\n if (!clipboardText) return false\n const parsedData = parseClipboardText(clipboardText)\n if (parsedData.length === 0) return false\n return parsedData.every((row) => {\n return row.values.every((value) => value.split(',').every((v) => validateEntityId(v)))\n })\n }\n\n const copyToClipboard: ClipboardContextType['copyToClipboard'] = useCallback(\n async (selected, fullRow) => {\n selected = selected || Array.from(selectedCells)\n if (!selected.length) return\n const clipboardText = await getSelectionData(selected, { fullRow })\n if (!clipboardText) {\n return\n }\n if (!navigator.clipboard) {\n clipboardError('Clipboard API not supported in this browser.')\n return\n }\n if (!window.isSecureContext) {\n clipboardError('Clipboard operations require a secure HTTPS context.')\n return\n }\n try {\n await navigator.clipboard.writeText(clipboardText)\n } catch (error: any) {\n clipboardError(`Failed to copy to clipboard: ${error.message}`)\n }\n },\n [selectedCells, entitiesMap, gridMap],\n )\n\n const exportCSV: ClipboardContextType['exportCSV'] = useCallback(\n async (selected, projectName, fullRow) => {\n selected = selected || Array.from(selectedCells)\n if (!selected.length) return\n\n try {\n // Get clipboard text with headers included for CSV export\n const clipboardText = await getSelectionData(selected, { headers: true, fullRow })\n if (!clipboardText) return\n\n // create a csv file and download it\n const blob = new Blob([clipboardText], { type: 'text/csv' })\n const url = URL.createObjectURL(blob)\n const a = document.createElement('a')\n a.href = url\n const selectedCount = selected.length\n a.download = `${projectName}-export-${selectedCount}_cells-${new Date()\n .toISOString()\n .slice(0, 10)}.csv`\n a.click()\n URL.revokeObjectURL(url)\n } catch (error) {\n console.error('Failed to copy to clipboard:', error)\n }\n },\n [selectedCells, entitiesMap, gridMap, getSelectionData],\n )\n\n const getClipboardString = async (): Promise<string | void> => {\n if (!navigator.clipboard) {\n clipboardError('Clipboard API not supported in this browser.')\n return\n }\n if (!window.isSecureContext) {\n clipboardError('Clipboard operations require a secure HTTPS context.')\n return\n }\n let clipboardText: string\n try {\n clipboardText = await navigator.clipboard.readText()\n return clipboardText\n } catch (error: any) {\n clipboardError(`Failed to read from clipboard: ${error.message}`)\n return\n }\n }\n\n const pasteFromClipboard: ClipboardContextType['pasteFromClipboard'] = useCallback(\n async (selected, config) => {\n const { method = 'replace' } = config || {}\n if (!selected.length) return\n\n const clipboardText = await getClipboardString()\n if (!clipboardText) return\n\n // Check if this is subtasks TSV data first, before normal parsing\n let isSubtasksData = false\n let subtasksClipboardText = clipboardText\n if (isSubtasksTSV(clipboardText)) {\n isSubtasksData = true\n }\n\n // Parse the clipboard text\n const parsedData = parseClipboardText(clipboardText)\n if (!parsedData.length) return\n\n // Determine if we have a single value in the clipboard (one row, one column)\n const isSingleCellValue = parsedData.length === 1 && parsedData[0].values.length === 1\n\n // Get visible columns in display order, excluding row selection\n const visibleColumnIds = visibleColumns\n .map((col) => col.id)\n .filter((id) => id !== ROW_SELECTION_COLUMN_ID)\n\n // Helper function to map clipboard values to visible columns\n const mapClipboardToVisibleColumns = (\n clipboardRow: any,\n visibleColumnIds: string[],\n clipboardHeaders?: string[],\n ) => {\n const mappedValues: Record<string, string> = {}\n\n if (clipboardHeaders && clipboardHeaders.length > 0) {\n // Map by header names when available\n clipboardHeaders.forEach((header: string, index: number) => {\n const matchingColId = visibleColumnIds.find(\n (colId) =>\n colId === header ||\n colId.replace('attrib_', '') === header ||\n colId === `attrib_${header}` ||\n colId.toLowerCase() === header.toLowerCase(),\n )\n\n if (matchingColId && index < clipboardRow.values.length) {\n mappedValues[matchingColId] = clipboardRow.values[index]\n }\n })\n } else {\n // Fallback: map by position, but only to visible columns\n visibleColumnIds.forEach((colId, index) => {\n if (index < clipboardRow.values.length) {\n mappedValues[colId] = clipboardRow.values[index]\n }\n })\n }\n\n return mappedValues\n }\n\n // Extract headers if they exist (assuming first row might be headers from external source)\n // You might need to detect this differently based on your clipboard format\n const clipboardHeaders = parsedData[0]?.colIds || undefined\n\n // Organize selected cells by row, filtering to only visible columns\n const cellsByRow = new Map<string, Set<string>>()\n\n Array.from(selected).forEach((cellId) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n const { rowId, colId } = position\n if (colId === ROW_SELECTION_COLUMN_ID || !visibleColumnIds.includes(colId)) return\n\n if (!cellsByRow.has(rowId)) {\n cellsByRow.set(rowId, new Set())\n }\n cellsByRow.get(rowId)?.add(colId)\n })\n\n // Get sorted row IDs and column IDs\n const sortedRows = Array.from(cellsByRow.keys()).sort((a, b) => {\n const indexA = gridMap.rowIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.rowIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n const firstRow = sortedRows[0]\n const selectedColIds = Array.from(cellsByRow.get(firstRow) || []).sort((a, b) => {\n const indexA = gridMap.colIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.colIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // First pass: validate all values\n for (let rowIndex = 0; rowIndex < sortedRows.length; rowIndex++) {\n const rowId = sortedRows[rowIndex]\n const isFolder = getEntityDataById<'folder'>(rowId, entitiesMap)?.entityType === 'folder'\n\n const pasteRowIndex = rowIndex % parsedData.length\n const clipboardRow = parsedData[pasteRowIndex]\n\n // Map clipboard data to visible columns\n const mappedValues = isSingleCellValue\n ? { [selectedColIds[0]]: parsedData[0].values[0] }\n : mapClipboardToVisibleColumns(clipboardRow, selectedColIds, clipboardHeaders)\n\n // Validate each mapped value\n for (const colId of selectedColIds) {\n const pasteValue = mappedValues[colId] || ''\n\n const isValid = validateClipboardData({\n colId,\n isFolder,\n pasteValue,\n parsedData,\n columnEnums,\n columnReadOnly,\n rowIndex,\n colIndex: selectedColIds.indexOf(colId),\n isSingleCellValue,\n attribFields,\n })\n\n if (!isValid) return\n }\n }\n\n // Create a map to consolidate updates for the same entity\n const entitiesToUpdateMap = new Map<\n string,\n {\n rowId: string\n id: string\n type: string\n fields: Record<string, any>\n attrib: Record<string, any>\n links: Record<string, string[]>\n subtasks?: any[]\n previousSubtasks?: any[]\n }\n >()\n\n // For each column, prepare updates\n for (let colIndex = 0; colIndex < selectedColIds.length; colIndex++) {\n const colId = selectedColIds[colIndex]\n\n // Skip special handling for 'name' which we don't want to paste\n if (colId === 'name') continue\n\n // Special handling for subtasks column\n if (colId === 'subtasks') {\n // For subtasks, group them by source task so each group can be applied to different cells\n let subtaskGroups: Array<{ taskId?: string; taskName?: string; subtasks: any[] }> = []\n let isFromSingleSourceTask = false\n\n if (isSubtasksData) {\n // Parse all subtask data to understand the source grouping\n const allLines = subtasksClipboardText.trim().split('\\n')\n\n // Check for header\n const firstLine = allLines[0].toLowerCase()\n const hasHeader =\n firstLine.includes('label') &&\n firstLine.includes('name') &&\n firstLine.includes('start date') &&\n firstLine.includes('end date') &&\n firstLine.includes('assignees') &&\n firstLine.includes('status')\n\n const dataLines = hasHeader ? allLines.slice(1) : allLines\n\n // Parse all lines and group by source taskId\n const groupMap = new Map<string, any[]>()\n const groupOrder: string[] = []\n\n dataLines.forEach((line) => {\n const parsed = tsvToSubtasks(line)\n if (parsed.length === 0) return\n\n const subtask = parsed[0]\n const groupKey = `${subtask.taskId || ''}|${subtask.taskName || ''}`\n\n if (!groupMap.has(groupKey)) {\n groupMap.set(groupKey, [])\n groupOrder.push(groupKey)\n }\n groupMap.get(groupKey)!.push(subtask)\n })\n\n // Create groups in order\n groupOrder.forEach((groupKey) => {\n const [taskId, taskName] = groupKey.split('|')\n subtaskGroups.push({\n taskId: taskId || undefined,\n taskName: taskName || undefined,\n subtasks: groupMap.get(groupKey) || [],\n })\n })\n\n // Check if all subtasks come from the same source task\n isFromSingleSourceTask = subtaskGroups.length <= 1\n }\n\n // Handle subtasks paste for each selected row\n for (let rowIndex = 0; rowIndex < sortedRows.length; rowIndex++) {\n const rowId = sortedRows[rowIndex]\n const entityType = getEntityDataById(rowId, entitiesMap)?.entityType\n\n // Subtasks only apply to tasks\n if (entityType !== 'task') continue\n\n // Get entity to access entityId (important for list items where rowId is list item ID)\n const entity = getEntityById(rowId)\n const actualEntityId = entity?.entityId || rowId\n\n // Get or create entity entry in the map\n const entityKey = `${rowId}-${entityType}`\n if (!entitiesToUpdateMap.has(entityKey)) {\n entitiesToUpdateMap.set(entityKey, {\n rowId,\n id: actualEntityId,\n type: entityType,\n fields: {},\n attrib: {},\n links: {},\n })\n }\n\n const entityData = entitiesToUpdateMap.get(entityKey)!\n // Get existing subtasks from entity\n const existingSubtasks = (entity && 'subtasks' in entity && entity.subtasks) || []\n // store previous subtasks for history/undo\n entityData.previousSubtasks = existingSubtasks\n\n let subtasksToProcess: any[] = []\n\n if (isSubtasksData) {\n if (isFromSingleSourceTask && subtaskGroups.length > 0) {\n // All subtasks from one source - apply to all cells\n subtasksToProcess = subtaskGroups[0].subtasks\n } else if (subtaskGroups.length > 0) {\n // Multiple groups - distribute by row (like regular data does with modulo)\n const groupIndex = rowIndex % subtaskGroups.length\n subtasksToProcess = subtaskGroups[groupIndex].subtasks\n }\n } else {\n // For parsed clipboard data, get the appropriate row\n if (isSingleCellValue) {\n const pasteValue = parsedData[0].values[0]\n subtasksToProcess = tsvToSubtasks(pasteValue)\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const clipboardRow = parsedData[pasteRowIndex]\n const pasteColIndex = colIndex % clipboardRow.values.length\n const pasteValue = clipboardRow.values[pasteColIndex]\n subtasksToProcess = tsvToSubtasks(pasteValue)\n }\n }\n\n // Skip if no subtasks to process\n if (!subtasksToProcess || subtasksToProcess.length === 0) continue\n\n // Create normalized subtasks from parsed data\n const newSubtasks = subtasksToProcess.map((st, index) => ({\n id: getEntityId(),\n name: sanitizeSubtaskName(st.name || st.label || `Subtask ${index + 1}`),\n label: st.label || '',\n assignees: st.assignees || [],\n description: st.label || '',\n startDate: st.startDate,\n endDate: st.endDate,\n isDone: st.isDone || false,\n }))\n\n // Handle merge vs replace\n if (method === 'merge') {\n // Merge new subtasks with existing ones, removing duplicates by label and name\n const mergedSubtasks = [...existingSubtasks]\n const existingIdentifiers = new Set(\n existingSubtasks.map((st) => {\n const label = (st.label || '').toLowerCase()\n const name = (st.name || '').toLowerCase()\n return `${label}|${name}`\n }),\n )\n\n // Add new subtasks that don't already exist\n for (const newSubtask of newSubtasks) {\n const label = (newSubtask.label || '').toLowerCase()\n const name = (newSubtask.name || '').toLowerCase()\n const identifier = `${label}|${name}`\n if (!existingIdentifiers.has(identifier)) {\n mergedSubtasks.push(newSubtask)\n }\n }\n entityData.subtasks = mergedSubtasks\n } else {\n // Replace mode: use new subtasks, preserving IDs for any matching label and name\n const replacedSubtasks = newSubtasks.map((newSt) => {\n // Try to find existing subtask with matching label and name to preserve ID\n const existingMatch = existingSubtasks.find(\n (est) =>\n (est.label || '').toLowerCase() === (newSt.label || '').toLowerCase() &&\n (est.name || '').toLowerCase() === (newSt.name || '').toLowerCase(),\n )\n return {\n ...newSt,\n id: existingMatch?.id || newSt.id,\n }\n })\n entityData.subtasks = replacedSubtasks\n }\n }\n continue\n }\n\n // Check if this is an attribute field by examining the first entity\n let isAttrib = false,\n isLink = false\n // Check if the field potentially contains array values\n let fieldValueType: 'string' | 'number' | 'boolean' | 'array' = 'string'\n\n if (sortedRows.length > 0) {\n const firstRowId = sortedRows[0]\n const entity = getEntityById(firstRowId)\n if (entity) {\n isAttrib = colId.startsWith('attrib_')\n isLink = colId.startsWith('link_')\n\n // Determine field type based on type or attrib type\n if (colId === 'status' || colId === 'subType') {\n // status and subType are strings\n fieldValueType = 'string'\n // special case to avoid treating subType as attrib (not sure if this is needed)\n isAttrib = false\n } else if (colId === 'tags' || colId === 'assignees') {\n // tags and assignees are always arrays\n fieldValueType = 'array'\n } else if (isAttrib) {\n // find type based on attribFields\n const fieldName = colId.replace('attrib_', '')\n const attribField = attribFields.find((f) => f.name === fieldName)\n if (attribField) {\n const dataType = attribField.data.type\n switch (dataType) {\n case 'boolean':\n fieldValueType = 'boolean'\n break\n case 'float':\n case 'integer':\n fieldValueType = 'number'\n break\n case 'list_of_strings':\n case 'list_of_any':\n case 'list_of_integers':\n case 'list_of_submodels':\n fieldValueType = 'array'\n break\n default:\n // everything else is string\n fieldValueType = 'string'\n }\n }\n } else if (isLink) {\n // links are always arrays\n fieldValueType = 'array'\n }\n }\n }\n\n // Process each row individually\n for (let rowIndex = 0; rowIndex < sortedRows.length; rowIndex++) {\n const rowId = sortedRows[rowIndex]\n const entityType = getEntityDataById(rowId, entitiesMap)?.entityType\n const isFolder = entityType === 'folder'\n\n // Get the appropriate value from the clipboard data\n let pasteValue\n if (isSingleCellValue) {\n pasteValue = parsedData[0].values[0]\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n // Map visible column index to clipboard data index\n // When clipboard contains hidden columns, we need to skip over values\n // that correspond to hidden columns when pasting to visible columns\n const clipboardRow = parsedData[pasteRowIndex]\n\n // If clipboard has more values than visible columns being pasted to,\n // it likely contains hidden column data. We need to reconstruct the original\n // column order that was copied by finding which columns would have been included.\n if (clipboardRow.values.length > selectedColIds.length) {\n // The clipboard data was created from consecutive columns in grid order.\n // We need to find which consecutive columns would result in this clipboard data.\n // Start from the first visible column and extend the range to match clipboard length.\n const firstVisibleColIndex = gridMap.colIdToIndex.get(selectedColIds[0]) ?? 0\n\n // Get all columns sorted by grid position\n const allGridColumns = Array.from(gridMap.colIdToIndex.keys())\n .filter((id) => id !== ROW_SELECTION_COLUMN_ID)\n .sort((a, b) => {\n const indexA = gridMap.colIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.colIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // Find the starting position in the grid columns array\n const startGridPos = allGridColumns.findIndex(\n (id) => gridMap.colIdToIndex.get(id) === firstVisibleColIndex,\n )\n\n // The original copied columns are the consecutive ones starting from this position\n const originalCopiedColumns = allGridColumns.slice(\n startGridPos,\n startGridPos + clipboardRow.values.length,\n )\n\n // Find this column's position in the original copied columns\n const clipboardColIndex = originalCopiedColumns.indexOf(colId)\n pasteValue =\n clipboardRow.values[clipboardColIndex] ||\n clipboardRow.values[clipboardColIndex % clipboardRow.values.length]\n // Pasting value from hidden columns detection\n } else {\n // Normal case: map clipboard column index using modulo\n const pasteColIndex = colIndex % clipboardRow.values.length\n pasteValue = clipboardRow.values[pasteColIndex]\n // Pasting value normally\n }\n }\n\n let fieldToUpdate = colId.split('_').pop() || colId\n\n // Special handling for subType (convert to folderType or taskType)\n if (colId === 'subType') {\n fieldToUpdate = isFolder ? 'folderType' : 'taskType'\n isAttrib = false\n\n // Skip empty values for enum fields\n if (!pasteValue) continue\n }\n\n // Process the value based on its type\n const processedValue = processFieldValue(pasteValue, fieldValueType)\n\n // Get entity to access entityId (important for list items where rowId is list item ID)\n const entity = getEntityById(rowId)\n const actualEntityId = entity?.entityId || rowId\n\n // Get or create entity entry in the map\n const entityKey = `${rowId}-${entityType}`\n if (!entitiesToUpdateMap.has(entityKey) && entityType) {\n entitiesToUpdateMap.set(entityKey, {\n rowId,\n id: actualEntityId,\n type: entityType,\n fields: {},\n attrib: {},\n links: {},\n })\n }\n\n const entityData = entitiesToUpdateMap.get(entityKey)!\n\n // Add the field to the appropriate place\n if (isLink) {\n const [_link, linkType, inType, outType, direction] = colId.split('_')\n // final-task|folder|task\n entityData.links[`${linkType}|${inType}|${outType}_${direction}`] = processedValue\n } else if (isAttrib) {\n entityData.attrib[fieldToUpdate] = processedValue\n } else {\n entityData.fields[fieldToUpdate] = processedValue\n }\n }\n }\n\n // Convert the consolidated map to EntityUpdate array and LinkUpdate array\n const allEntityUpdates: EntityUpdate[] = []\n const linkUpdatesMap = new Map<string, LinkUpdate>()\n\n entitiesToUpdateMap.forEach((entity) => {\n // For regular fields, create one update per field\n Object.entries(entity.fields).forEach(([field, value]) => {\n allEntityUpdates.push({\n rowId: entity.rowId,\n id: entity.id,\n type: entity.type,\n field,\n value,\n })\n })\n\n // For attributes, create one update per attribute\n Object.entries(entity.attrib).forEach(([field, value]) => {\n allEntityUpdates.push({\n rowId: entity.rowId,\n id: entity.id,\n type: entity.type,\n field,\n value,\n isAttrib: true,\n })\n })\n\n // For links, create LinkUpdate objects\n Object.entries(entity.links).forEach(([linkKey, targetEntityIds]) => {\n // Parse the linkKey: \"linkType|inType|outType_direction\"\n const [linkTypePart, direction] = linkKey.split('_')\n const linkTypeParts = linkTypePart.split('|')\n\n if (linkTypeParts.length >= 3) {\n const linkTypeName = linkTypeParts[0]\n const inType = linkTypeParts[1]\n const outType = linkTypeParts[2]\n\n // Reconstruct the full linkType in the required format: name|input_type|output_type\n const linkType = `${linkTypeName}|${inType}|${outType}`\n\n // Determine target entity type based on direction\n const targetEntityType = direction === 'out' ? outType : inType\n\n // Create a unique key for this link operation\n const linkUpdateKey = `${entity.id}-${linkType}-${direction}`\n\n linkUpdatesMap.set(linkUpdateKey, {\n rowId: entity.rowId,\n sourceEntityId: entity.id,\n sourceEntityType: entity.type,\n linkType,\n direction: direction as 'in' | 'out',\n targetEntityType,\n operation: method,\n targetEntityIds: Array.isArray(targetEntityIds) ? targetEntityIds : [],\n })\n }\n })\n })\n\n const allLinkUpdates = Array.from(linkUpdatesMap.values())\n\n // Collect subtasks updates\n const subtasksUpdates: Array<{ taskId: string; subtasks: any[]; previousSubtasks?: any[] }> =\n []\n entitiesToUpdateMap.forEach((entity) => {\n if (entity.subtasks) {\n subtasksUpdates.push({\n taskId: entity.id,\n subtasks: entity.subtasks,\n previousSubtasks: entity.previousSubtasks,\n })\n }\n })\n\n // Make separate calls to update entities, links, and subtasks\n const updatePromises: Promise<void>[] = []\n\n if (allEntityUpdates.length > 0) {\n updatePromises.push(updateEntities(allEntityUpdates))\n }\n\n if (allLinkUpdates.length > 0) {\n updatePromises.push(pasteTableLinks(allLinkUpdates))\n }\n\n if (subtasksUpdates.length > 0) {\n // push undo/redo history entries for subtasks updates\n if (history) {\n subtasksUpdates.forEach(({ taskId, subtasks, previousSubtasks }) => {\n const prev = previousSubtasks || []\n const next = subtasks || []\n const undoCallback = () => {\n updateSubtasks({ projectName, taskId, subtasks: prev })\n .unwrap()\n .catch(() => {})\n }\n const redoCallback = () => {\n updateSubtasks({ projectName, taskId, subtasks: next })\n .unwrap()\n .catch(() => {})\n }\n history.pushHistory([undoCallback], [redoCallback])\n })\n }\n // Update subtasks for each task\n const subtasksPromises = subtasksUpdates.map(({ taskId, subtasks }) =>\n updateSubtasks({ projectName, taskId, subtasks }).unwrap(),\n )\n updatePromises.push(...subtasksPromises)\n }\n\n if (updatePromises.length > 0) {\n try {\n await Promise.all(updatePromises)\n } catch (error: any) {\n console.error('Error updating entities:', error)\n clipboardError(`Paste failed: ${error || error?.message || 'Unknown error'}`)\n }\n }\n },\n [\n selectedCells,\n gridMap,\n entitiesMap,\n updateEntities,\n pasteTableLinks,\n columnEnums,\n getEntityById,\n visibleColumns,\n attribFields,\n projectName,\n updateSubtasks,\n history,\n ],\n )\n\n // Set up keyboard event listeners\n useEffect(() => {\n const handleKeyDown = async (e: KeyboardEvent) => {\n // Copy functionality (Ctrl+C or Command+C)\n if ((e.ctrlKey || e.metaKey) && e.key === 'c') {\n const activeEl = document.activeElement as HTMLElement | null\n\n const isTableFocused =\n activeEl?.closest('table') !== null ||\n activeEl?.closest('.table-container') !== null ||\n activeEl?.tagName === 'TD' ||\n activeEl?.tagName === 'TH'\n\n // Check if there's a text selection in an input/textarea/contenteditable\n const isEditableElement =\n activeEl?.tagName === 'INPUT' ||\n activeEl?.tagName === 'TEXTAREA' ||\n activeEl?.isContentEditable\n\n const hasTextSelection = window.getSelection()?.toString().length ?? 0 > 0\n\n // If user has text selected elsewhere, let browser copy that\n if (hasTextSelection && !isTableFocused) {\n return // Let browser handle\n }\n\n // If focus is in an editable element, let browser handle\n if (isEditableElement && !isTableFocused) {\n return // Let browser handle\n }\n // If cells are selected, copy table data (even if focus moved away)\n if (selectedCells.size > 0) {\n await copyToClipboard()\n } else {\n // No cells selected, allowing default browser copy\n }\n }\n // Paste functionality (Ctrl+V or Command+V)\n if ((e.ctrlKey || e.metaKey) && e.key === 'v') {\n // don't execute paste if focus is inside an input, textarea, or content‐editable element\n const activeEl = document.activeElement as HTMLElement | null\n\n if (\n activeEl &&\n (activeEl.tagName === 'INPUT' ||\n activeEl.tagName === 'TEXTAREA' ||\n activeEl.isContentEditable)\n ) {\n // focus is inside an input, textarea, or content-editable element\n const allEntityIds = await doesClipboardContainId()\n // we might still want to paste if the clipboard contains valid entity IDs\n if (allEntityIds) {\n // prevent pasting into input fields and handle as paste on the cell\n e.preventDefault()\n } else {\n // skip pasting\n return\n }\n }\n pasteFromClipboard(Array.from(selectedCells), {\n method: e.shiftKey ? 'merge' : 'replace', // Use shift key to determine paste method\n })\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => {\n window.removeEventListener('keydown', handleKeyDown)\n }\n }, [copyToClipboard, pasteFromClipboard])\n\n const value = useMemo(\n () => ({\n copyToClipboard,\n pasteFromClipboard,\n exportCSV,\n }),\n [copyToClipboard, pasteFromClipboard],\n )\n\n return <ClipboardContext.Provider value={value}>{children}</ClipboardContext.Provider>\n}\n\nexport const useClipboard = (): ClipboardContextType => {\n const context = useContext(ClipboardContext)\n if (context === undefined) {\n throw new Error('useClipboard must be used within a ClipboardProvider')\n }\n return context\n}\n"],"names":["ClipboardContext","createContext","DISPLAY_PREFERRED_COLS","ClipboardProvider","children","entitiesMap","columnEnums","columnReadOnly","visibleColumns","selectedCells","gridMap","focusedCellId","useSelectionCellsContext","updateEntities","history","useCellEditing","pasteTableLinks","usePasteLinks","getEntityById","attribFields","tableData","useProjectTableContext","displayRowsById","useMemo","map","walk","rows","row","projectName","useProjectContext","updateSubtasks","useUpdateSubtasksMutation","getSelectionData","useCallback","selected","config","headers","fullRow","visibleColumnIds","col","id","ROW_SELECTION_COLUMN_ID","cellsByRow","cellId","position","parseCellId","rowId","colId","sortedRows","a","b","indexA","indexB","clipboardText","firstRowId","colIds","headerValues","columnName","entity","displayRow","filteredColIds","rowValues","cellValue","getLinkEntityIdsByColumnId","subtasks","getCellValue","subtasksToTSV","comments","commentsToText","foundValue","folder","parents","displayValue","field","f","getEntityPath","resolvedSubType","escaped","needsQuoting","error","doesClipboardContainId","getClipboardString","parsedData","parseClipboardText","value","v","validateEntityId","copyToClipboard","clipboardError","exportCSV","blob","url","selectedCount","pasteFromClipboard","method","isSubtasksData","subtasksClipboardText","isSubtasksTSV","isSingleCellValue","mapClipboardToVisibleColumns","clipboardRow","clipboardHeaders","mappedValues","header","index","matchingColId","firstRow","selectedColIds","rowIndex","isFolder","getEntityDataById","pasteRowIndex","pasteValue","validateClipboardData","entitiesToUpdateMap","colIndex","subtaskGroups","isFromSingleSourceTask","allLines","firstLine","dataLines","groupMap","groupOrder","line","parsed","tsvToSubtasks","subtask","groupKey","taskId","taskName","entityType","actualEntityId","entityKey","entityData","existingSubtasks","subtasksToProcess","groupIndex","pasteColIndex","newSubtasks","st","getEntityId","sanitizeSubtaskName","mergedSubtasks","existingIdentifiers","label","name","newSubtask","identifier","replacedSubtasks","newSt","existingMatch","est","isAttrib","isLink","fieldValueType","fieldName","attribField","firstVisibleColIndex","allGridColumns","startGridPos","clipboardColIndex","fieldToUpdate","processedValue","processFieldValue","_link","linkType","inType","outType","direction","allEntityUpdates","linkUpdatesMap","linkKey","targetEntityIds","linkTypePart","linkTypeParts","linkTypeName","targetEntityType","linkUpdateKey","allLinkUpdates","subtasksUpdates","updatePromises","previousSubtasks","prev","next","undoCallback","redoCallback","subtasksPromises","useEffect","handleKeyDown","e","activeEl","isTableFocused","isEditableElement","jsx","useClipboard","context","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAMA,KAAmBC,GAAgD,MAAS,GAE5EC,yBAA6B,IAAI;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC,GAEYC,KAAsD,CAAC;AAAA,EAClE,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,gBAAAC;AACF,MAAM;AAEJ,QAAM,EAAE,eAAAC,GAAe,SAAAC,GAAS,eAAAC,GAAA,IAAkBC,GAAA,GAC5C,EAAE,gBAAAC,IAAgB,SAAAC,GAAA,IAAYC,GAAA,GAC9B,EAAE,iBAAAC,GAAA,IAAoBC,GAAA,GACtB,EAAE,eAAAC,GAAe,cAAAC,GAAc,WAAAC,GAAA,IAAcC,GAAA,GAE7CC,KAAkBC,GAAQ,MAAM;AACpC,UAAMC,wBAAU,IAAA,GACVC,IAAO,CAACC,MAAqB;AACjC,iBAAWC,KAAOD;AAChB,QAAAF,EAAI,IAAIG,EAAI,IAAIA,CAAG,GACfA,EAAI,SAAS,UAAQF,EAAKE,EAAI,OAAqB;AAAA,IAE3D;AACA,WAAAF,EAAKL,MAAa,EAAE,GACbI;AAAA,EACT,GAAG,CAACJ,EAAS,CAAC,GACR,EAAE,aAAAQ,EAAA,IAAgBC,GAAA,GAClB,CAACC,CAAc,IAAIC,GAAA,GAEnBC,KAAmBC;AAAA,IACvB,OAAOC,GAAoBC,MAAsD;AAC/E,YAAM,EAAE,SAAAC,GAAS,SAAAC,EAAA,IAAYF,KAAU,CAAA;AACvC,UAAI;AAEF,cAAMG,IAAmB9B,EACtB,IAAI,CAAC+B,MAAQA,EAAI,EAAE,EACnB,OAAO,CAACC,MAAOA,MAAOC,CAAuB,GAG1CC,wBAAiB,IAAA;AAGvB,QAAAR,EAAS,QAAQ,CAACS,MAAW;AAC3B,gBAAMC,IAAWC,EAAYF,CAAM;AACnC,cAAI,CAACC,EAAU;AAEf,gBAAM,EAAE,OAAAE,GAAO,OAAAC,EAAA,IAAUH;AACzB,UAAIG,MAAUN,KAA2B,CAACH,EAAiB,SAASS,CAAK,MAEpEL,EAAW,IAAII,CAAK,KACvBJ,EAAW,IAAII,GAAO,oBAAI,IAAA,CAAK,GAGjCJ,EAAW,IAAII,CAAK,GAAG,IAAIC,CAAK;AAAA,QAClC,CAAC,GAEGV,KACmBH,EAClB;AAAA,UACC,CAACS,MACCE,EAAYF,CAAM,GAAG,SACrBE,EAAYF,CAAM,GAAG,UAAUF;AAAA,QAAA,EAElC,IAAI,CAACE,MAAWE,EAAYF,CAAM,GAAG,KAAK,EAIhC,QAAQ,CAACG,MAAU;AAE9B,UAAKJ,EAAW,IAAII,CAAK,KACvBJ,EAAW,IAAII,GAAO,oBAAI,IAAA,CAAK,GAEd,MAAM,KAAKpC,EAAQ,aAAa,MAAM,EAC9C,QAAQ,CAACqC,MAAU;AAC5B,YAAAL,EAAW,IAAII,CAAK,GAAG,IAAIC,CAAK;AAAA,UAClC,CAAC;AAAA,QACH,CAAC;AAIH,cAAMC,IAAa,MAAM,KAAKN,EAAW,KAAA,CAAM,EAAE,KAAK,CAACO,GAAGC,MAAM;AAC9D,gBAAMC,IAASzC,EAAQ,aAAa,IAAIuC,CAAC,KAAK,OACxCG,IAAS1C,EAAQ,aAAa,IAAIwC,CAAC,KAAK;AAC9C,iBAAOC,IAASC;AAAA,QAClB,CAAC;AAGD,YAAIC,IAAgB;AAGpB,cAAMC,KAAaN,EAAW,CAAC;AAC/B,YAAI,CAACM,GAAY,QAAO;AAGxB,cAAMC,KAAS,MAAM,KAAKb,EAAW,IAAIY,EAAU,KAAK,CAAA,CAAE,EAAE,KAAK,CAACL,GAAGC,MAAM;AACzE,gBAAMC,IAASzC,EAAQ,aAAa,IAAIuC,CAAC,KAAK,OACxCG,IAAS1C,EAAQ,aAAa,IAAIwC,CAAC,KAAK;AAC9C,iBAAOC,IAASC;AAAA,QAClB,CAAC;AAGD,YAAIhB,KAAWmB,GAAO,SAAS,GAAG;AAChC,gBAAMC,IAAyB,CAAA;AAE/B,qBAAWT,KAASQ,IAAQ;AAE1B,kBAAME,IAAaV;AACnB,YAAAS,EAAa,KAAK,GAAGC,EAAW,QAAQ,MAAM,IAAI,CAAC,EAAE;AAAA,UACvD;AAEA,UAAAJ,KAAiBG,EAAa,KAAK,GAAI,IAAI;AAAA;AAAA,QAC7C;AAEA,mBAAWV,KAASE,GAAY;AAE9B,gBAAMU,IAASxC,EAAc4B,CAAK;AAElC,cAAI,CAACY,GAAQ;AACX,oBAAQ,KAAK,+BAA+BZ,CAAK,EAAE;AACnD;AAAA,UACF;AAEA,gBAAMa,IAAarC,GAAgB,IAAIwB,CAAK,GAUtCc,IAPS,MAAM,KAAKlB,EAAW,IAAII,CAAK,KAAK,CAAA,CAAE,EAAE,KAAK,CAACG,GAAGC,MAAM;AACpE,kBAAMC,IAASzC,EAAQ,aAAa,IAAIuC,CAAC,KAAK,OACxCG,IAAS1C,EAAQ,aAAa,IAAIwC,CAAC,KAAK;AAC9C,mBAAOC,IAASC;AAAA,UAClB,CAAC,EAG6B,OAAO,CAACL,MAAUA,MAAUN,CAAuB,GAE3EoB,IAAsB,CAAA;AAG5B,qBAAWd,KAASa,GAAgB;AAElC,gBAAIE,IAAY;AAGhB,gBAAIf,EAAM,WAAW,OAAO;AAE1B,cAAAe,IAAYC,GAA2BL,EAAO,OAAOX,CAAK;AAAA,qBACjDA,MAAU,YAAY;AAG/B,oBAAMiB,IAAWC,GAAaP,GAAQX,CAAK,KAAK,CAAA;AAChD,cAAAe,IAAYI,GAAcF,GAAUN,EAAO,IAAIA,EAAO,IAAI;AAAA,YAC5D,WAAWX,MAAU,YAAY;AAE/B,oBAAMoB,IAAWF,GAAaP,GAAQ,gBAAgB,KAAK,CAAA;AAC3D,cAAAI,IAAYM,GAAeD,CAAQ;AAAA,YACrC,OAAO;AAEL,kBAAIE,IAAaJ,GAAaP,GAAQX,CAAK;AAK3C,kBAAIA,MAAU,YAAY,OAAOsB,KAAe,UAAU;AACxD,sBAAMC,IAASD,KAAeX,EAAe,SAAS,QAChDa,IAAU,aAAab,IAASA,EAAO,UAAU;AACvD,gBAAAW,IAAaC,GAAQ,SAASA,GAAQ,QAAQC,IAAUA,EAAQ,SAAS,CAAC,KAAK;AAAA,cACjF;AAKA,kBACEZ,MACCzD,GAAuB,IAAI6C,CAAK,KAC/BsB,MAAe,UACfA,MAAe,QACfA,MAAe,MACf,OAAOA,KAAe,WACxB;AACA,sBAAMG,IAAeP,GAAaN,GAAYZ,CAAK;AACnD,gBAAkCyB,KAAiB,QAAQA,MAAiB,OAC1EH,IAAaG;AAAA,cAEjB;AAEA,kBAAI,CAACH,GAAY;AAEf,sBAAMI,IAAQtD,EAAa,KAAK,CAACuD,MAAMA,EAAE,SAAS3B,EAAM,QAAQ,WAAW,EAAE,CAAC;AAC9E,gBAAI0B,KAASA,EAAM,KAAK,SAAS,YAC/BJ,IAAa,KACJI,KAASA,EAAM,KAAK,KAAK,SAAS,SAAS,MACpDJ,IAAa,CAAA;AAAA,cAEjB;AAiBA,kBAdAP,IAAwCO,KAAe,OAAO,OAAOA,CAAU,IAAI,IAI/EtB,MAAU,WACZe,IACEa,GAAcjB,EAAO,YAAYA,EAAO,IAAIrD,CAAW,KACtDsD,GAAoB,SACrBA,GAAY,QACXD,EAAe,SAChBA,EAAO,QACP,KAGAX,MAAU,WAAW;AAEvB,sBAAM6B,IAAmBjB,GAAoB,WAAYD,EAAe;AACxE,gBAAI,OAAOkB,KAAoB,YAAYA,IACzCd,IAAYc,KAER,gBAAgBlB,MAClBI,IAAYJ,EAAO,cAAc,KAE/B,cAAcA,MAChBI,IAAYJ,EAAO,YAAY;AAAA,cAGrC;AAAA,YACF;AAKA,kBAAMmB,IAAUf,EAAU,QAAQ,MAAM,IAAI,GACtCgB,IACJ/B,MAAU,eACTe,EAAU,SAAS;AAAA,CAAI,KAAKA,EAAU,SAAS,GAAI,KAAKA,EAAU,SAAS,GAAG;AACjF,YAAAD,EAAU,KAAKiB,IAAe,IAAID,CAAO,MAAMA,CAAO;AAAA,UACxD;AAGA,UAAAxB,KAAiBQ,EAAU,KAAK,GAAI,IAAI;AAAA;AAAA,QAC1C;AAEA,eAAOR;AAAA,MACT,SAAS0B,GAAO;AACd,gBAAQ,MAAM,gCAAgCA,CAAK;AAAA,MACrD;AAAA,IACF;AAAA,IACA,CAACtE,GAAeE,IAAeD,GAASL,GAAaa,GAAeV,GAAgBc,EAAe;AAAA,EAAA,GAG/F0D,KAAyB,YAAY;AAEzC,UAAM3B,IAAgB,MAAM4B,GAAA;AAC5B,QAAI,CAAC5B,EAAe,QAAO;AAC3B,UAAM6B,IAAaC,GAAmB9B,CAAa;AACnD,WAAI6B,EAAW,WAAW,IAAU,KAC7BA,EAAW,MAAM,CAACvD,MAChBA,EAAI,OAAO,MAAM,CAACyD,MAAUA,EAAM,MAAM,GAAG,EAAE,MAAM,CAACC,MAAMC,GAAiBD,CAAC,CAAC,CAAC,CACtF;AAAA,EACH,GAEME,IAA2DtD;AAAA,IAC/D,OAAOC,GAAUG,MAAY;AAE3B,UADAH,IAAWA,KAAY,MAAM,KAAKzB,CAAa,GAC3C,CAACyB,EAAS,OAAQ;AACtB,YAAMmB,IAAgB,MAAMrB,GAAiBE,GAAU,EAAE,SAAAG,GAAS;AAClE,UAAKgB,GAGL;AAAA,YAAI,CAAC,UAAU,WAAW;AACxB,UAAAmC,EAAe,8CAA8C;AAC7D;AAAA,QACF;AACA,YAAI,CAAC,OAAO,iBAAiB;AAC3B,UAAAA,EAAe,sDAAsD;AACrE;AAAA,QACF;AACA,YAAI;AACF,gBAAM,UAAU,UAAU,UAAUnC,CAAa;AAAA,QACnD,SAAS0B,GAAY;AACnB,UAAAS,EAAe,gCAAgCT,EAAM,OAAO,EAAE;AAAA,QAChE;AAAA;AAAA,IACF;AAAA,IACA,CAACtE,GAAeJ,GAAaK,CAAO;AAAA,EAAA,GAGhC+E,KAA+CxD;AAAA,IACnD,OAAOC,GAAUN,GAAaS,MAAY;AAExC,UADAH,IAAWA,KAAY,MAAM,KAAKzB,CAAa,GAC3C,EAACyB,EAAS;AAEd,YAAI;AAEF,gBAAMmB,IAAgB,MAAMrB,GAAiBE,GAAU,EAAE,SAAS,IAAM,SAAAG,GAAS;AACjF,cAAI,CAACgB,EAAe;AAGpB,gBAAMqC,IAAO,IAAI,KAAK,CAACrC,CAAa,GAAG,EAAE,MAAM,YAAY,GACrDsC,IAAM,IAAI,gBAAgBD,CAAI,GAC9BzC,IAAI,SAAS,cAAc,GAAG;AACpC,UAAAA,EAAE,OAAO0C;AACT,gBAAMC,IAAgB1D,EAAS;AAC/B,UAAAe,EAAE,WAAW,GAAGrB,CAAW,WAAWgE,CAAa,WAAU,oBAAI,KAAA,GAC9D,YAAA,EACA,MAAM,GAAG,EAAE,CAAC,QACf3C,EAAE,MAAA,GACF,IAAI,gBAAgB0C,CAAG;AAAA,QACzB,SAASZ,GAAO;AACd,kBAAQ,MAAM,gCAAgCA,CAAK;AAAA,QACrD;AAAA,IACF;AAAA,IACA,CAACtE,GAAeJ,GAAaK,GAASsB,EAAgB;AAAA,EAAA,GAGlDiD,KAAqB,YAAoC;AAC7D,QAAI,CAAC,UAAU,WAAW;AACxB,MAAAO,EAAe,8CAA8C;AAC7D;AAAA,IACF;AACA,QAAI,CAAC,OAAO,iBAAiB;AAC3B,MAAAA,EAAe,sDAAsD;AACrE;AAAA,IACF;AACA,QAAInC;AACJ,QAAI;AACF,aAAAA,IAAgB,MAAM,UAAU,UAAU,SAAA,GACnCA;AAAA,IACT,SAAS0B,GAAY;AACnB,MAAAS,EAAe,kCAAkCT,EAAM,OAAO,EAAE;AAChE;AAAA,IACF;AAAA,EACF,GAEMc,KAAiE5D;AAAA,IACrE,OAAOC,GAAUC,MAAW;AAC1B,YAAM,EAAE,QAAA2D,IAAS,UAAA,IAAc3D,KAAU,CAAA;AACzC,UAAI,CAACD,EAAS,OAAQ;AAEtB,YAAMmB,IAAgB,MAAM4B,GAAA;AAC5B,UAAI,CAAC5B,EAAe;AAGpB,UAAI0C,IAAiB,IACjBC,IAAwB3C;AAC5B,MAAI4C,GAAc5C,CAAa,MAC7B0C,IAAiB;AAInB,YAAMb,IAAaC,GAAmB9B,CAAa;AACnD,UAAI,CAAC6B,EAAW,OAAQ;AAGxB,YAAMgB,IAAoBhB,EAAW,WAAW,KAAKA,EAAW,CAAC,EAAE,OAAO,WAAW,GAG/E5C,KAAmB9B,EACtB,IAAI,CAAC+B,MAAQA,EAAI,EAAE,EACnB,OAAO,CAACC,MAAOA,MAAOC,CAAuB,GAG1C0D,KAA+B,CACnCC,GACA9D,GACA+D,MACG;AACH,cAAMC,IAAuC,CAAA;AAE7C,eAAID,KAAoBA,EAAiB,SAAS,IAEhDA,EAAiB,QAAQ,CAACE,GAAgBC,MAAkB;AAC1D,gBAAMC,IAAgBnE,EAAiB;AAAA,YACrC,CAACS,MACCA,MAAUwD,KACVxD,EAAM,QAAQ,WAAW,EAAE,MAAMwD,KACjCxD,MAAU,UAAUwD,CAAM,MAC1BxD,EAAM,YAAA,MAAkBwD,EAAO,YAAA;AAAA,UAAY;AAG/C,UAAIE,KAAiBD,IAAQJ,EAAa,OAAO,WAC/CE,EAAaG,CAAa,IAAIL,EAAa,OAAOI,CAAK;AAAA,QAE3D,CAAC,IAGDlE,EAAiB,QAAQ,CAACS,GAAOyD,MAAU;AACzC,UAAIA,IAAQJ,EAAa,OAAO,WAC9BE,EAAavD,CAAK,IAAIqD,EAAa,OAAOI,CAAK;AAAA,QAEnD,CAAC,GAGIF;AAAA,MACT,GAIMD,IAAmBnB,EAAW,CAAC,GAAG,UAAU,QAG5CxC,wBAAiB,IAAA;AAEvB,YAAM,KAAKR,CAAQ,EAAE,QAAQ,CAACS,MAAW;AACvC,cAAMC,IAAWC,EAAYF,CAAM;AACnC,YAAI,CAACC,EAAU;AAEf,cAAM,EAAE,OAAAE,GAAO,OAAAC,EAAA,IAAUH;AACzB,QAAIG,MAAUN,KAA2B,CAACH,GAAiB,SAASS,CAAK,MAEpEL,EAAW,IAAII,CAAK,KACvBJ,EAAW,IAAII,GAAO,oBAAI,IAAA,CAAK,GAEjCJ,EAAW,IAAII,CAAK,GAAG,IAAIC,CAAK;AAAA,MAClC,CAAC;AAGD,YAAMC,IAAa,MAAM,KAAKN,EAAW,KAAA,CAAM,EAAE,KAAK,CAACO,GAAGC,MAAM;AAC9D,cAAMC,IAASzC,EAAQ,aAAa,IAAIuC,CAAC,KAAK,OACxCG,IAAS1C,EAAQ,aAAa,IAAIwC,CAAC,KAAK;AAC9C,eAAOC,IAASC;AAAA,MAClB,CAAC,GAEKsD,IAAW1D,EAAW,CAAC,GACvB2D,IAAiB,MAAM,KAAKjE,EAAW,IAAIgE,CAAQ,KAAK,CAAA,CAAE,EAAE,KAAK,CAACzD,GAAGC,MAAM;AAC/E,cAAMC,IAASzC,EAAQ,aAAa,IAAIuC,CAAC,KAAK,OACxCG,IAAS1C,EAAQ,aAAa,IAAIwC,CAAC,KAAK;AAC9C,eAAOC,IAASC;AAAA,MAClB,CAAC;AAGD,eAASwD,IAAW,GAAGA,IAAW5D,EAAW,QAAQ4D,KAAY;AAC/D,cAAM9D,IAAQE,EAAW4D,CAAQ,GAC3BC,IAAWC,GAA4BhE,GAAOzC,CAAW,GAAG,eAAe,UAE3E0G,IAAgBH,IAAW1B,EAAW,QACtCkB,IAAelB,EAAW6B,CAAa,GAGvCT,IAAeJ,IACjB,EAAE,CAACS,EAAe,CAAC,CAAC,GAAGzB,EAAW,CAAC,EAAE,OAAO,CAAC,EAAA,IAC7CiB,GAA6BC,GAAcO,GAAgBN,CAAgB;AAG/E,mBAAWtD,KAAS4D,GAAgB;AAClC,gBAAMK,IAAaV,EAAavD,CAAK,KAAK;AAe1C,cAAI,CAbYkE,GAAsB;AAAA,YACpC,OAAAlE;AAAA,YACA,UAAA8D;AAAA,YACA,YAAAG;AAAA,YACA,YAAA9B;AAAA,YACA,aAAA5E;AAAA,YACA,gBAAAC;AAAA,YACA,UAAAqG;AAAA,YACA,UAAUD,EAAe,QAAQ5D,CAAK;AAAA,YACtC,mBAAAmD;AAAA,YACA,cAAA/E;AAAA,UAAA,CACD,EAEa;AAAA,QAChB;AAAA,MACF;AAGA,YAAM+F,wBAA0B,IAAA;AAehC,eAASC,IAAW,GAAGA,IAAWR,EAAe,QAAQQ,KAAY;AACnE,cAAMpE,IAAQ4D,EAAeQ,CAAQ;AAGrC,YAAIpE,MAAU,OAAQ;AAGtB,YAAIA,MAAU,YAAY;AAExB,cAAIqE,IAAgF,CAAA,GAChFC,IAAyB;AAE7B,cAAItB,GAAgB;AAElB,kBAAMuB,IAAWtB,EAAsB,KAAA,EAAO,MAAM;AAAA,CAAI,GAGlDuB,IAAYD,EAAS,CAAC,EAAE,YAAA,GASxBE,IAPJD,EAAU,SAAS,OAAO,KAC1BA,EAAU,SAAS,MAAM,KACzBA,EAAU,SAAS,YAAY,KAC/BA,EAAU,SAAS,UAAU,KAC7BA,EAAU,SAAS,WAAW,KAC9BA,EAAU,SAAS,QAAQ,IAECD,EAAS,MAAM,CAAC,IAAIA,GAG5CG,wBAAe,IAAA,GACfC,IAAuB,CAAA;AAE7B,YAAAF,EAAU,QAAQ,CAACG,MAAS;AAC1B,oBAAMC,IAASC,GAAcF,CAAI;AACjC,kBAAIC,EAAO,WAAW,EAAG;AAEzB,oBAAME,IAAUF,EAAO,CAAC,GAClBG,IAAW,GAAGD,EAAQ,UAAU,EAAE,IAAIA,EAAQ,YAAY,EAAE;AAElE,cAAKL,EAAS,IAAIM,CAAQ,MACxBN,EAAS,IAAIM,GAAU,EAAE,GACzBL,EAAW,KAAKK,CAAQ,IAE1BN,EAAS,IAAIM,CAAQ,EAAG,KAAKD,CAAO;AAAA,YACtC,CAAC,GAGDJ,EAAW,QAAQ,CAACK,MAAa;AAC/B,oBAAM,CAACC,GAAQC,CAAQ,IAAIF,EAAS,MAAM,GAAG;AAC7C,cAAAX,EAAc,KAAK;AAAA,gBACjB,QAAQY,KAAU;AAAA,gBAClB,UAAUC,KAAY;AAAA,gBACtB,UAAUR,EAAS,IAAIM,CAAQ,KAAK,CAAA;AAAA,cAAC,CACtC;AAAA,YACH,CAAC,GAGDV,IAAyBD,EAAc,UAAU;AAAA,UACnD;AAGA,mBAASR,IAAW,GAAGA,IAAW5D,EAAW,QAAQ4D,KAAY;AAC/D,kBAAM9D,IAAQE,EAAW4D,CAAQ,GAC3BsB,IAAapB,GAAkBhE,GAAOzC,CAAW,GAAG;AAG1D,gBAAI6H,MAAe,OAAQ;AAG3B,kBAAMxE,IAASxC,EAAc4B,CAAK,GAC5BqF,IAAiBzE,GAAQ,YAAYZ,GAGrCsF,IAAY,GAAGtF,CAAK,IAAIoF,CAAU;AACxC,YAAKhB,EAAoB,IAAIkB,CAAS,KACpClB,EAAoB,IAAIkB,GAAW;AAAA,cACjC,OAAAtF;AAAA,cACA,IAAIqF;AAAA,cACJ,MAAMD;AAAA,cACN,QAAQ,CAAA;AAAA,cACR,QAAQ,CAAA;AAAA,cACR,OAAO,CAAA;AAAA,YAAC,CACT;AAGH,kBAAMG,IAAanB,EAAoB,IAAIkB,CAAS,GAE9CE,IAAoB5E,KAAU,cAAcA,KAAUA,EAAO,YAAa,CAAA;AAEhF,YAAA2E,EAAW,mBAAmBC;AAE9B,gBAAIC,IAA2B,CAAA;AAE/B,gBAAIxC;AACF,kBAAIsB,KAA0BD,EAAc,SAAS;AAEnD,gBAAAmB,IAAoBnB,EAAc,CAAC,EAAE;AAAA,uBAC5BA,EAAc,SAAS,GAAG;AAEnC,sBAAMoB,IAAa5B,IAAWQ,EAAc;AAC5C,gBAAAmB,IAAoBnB,EAAcoB,CAAU,EAAE;AAAA,cAChD;AAAA,uBAGItC,GAAmB;AACrB,oBAAMc,IAAa9B,EAAW,CAAC,EAAE,OAAO,CAAC;AACzC,cAAAqD,IAAoBV,GAAcb,CAAU;AAAA,YAC9C,OAAO;AACL,oBAAMD,IAAgBH,IAAW1B,EAAW,QACtCkB,IAAelB,EAAW6B,CAAa,GACvC0B,IAAgBtB,IAAWf,EAAa,OAAO,QAC/CY,IAAaZ,EAAa,OAAOqC,CAAa;AACpD,cAAAF,IAAoBV,GAAcb,CAAU;AAAA,YAC9C;AAIF,gBAAI,CAACuB,KAAqBA,EAAkB,WAAW,EAAG;AAG1D,kBAAMG,IAAcH,EAAkB,IAAI,CAACI,GAAInC,OAAW;AAAA,cACxD,IAAIoC,GAAA;AAAA,cACJ,MAAMC,GAAoBF,EAAG,QAAQA,EAAG,SAAS,WAAWnC,IAAQ,CAAC,EAAE;AAAA,cACvE,OAAOmC,EAAG,SAAS;AAAA,cACnB,WAAWA,EAAG,aAAa,CAAA;AAAA,cAC3B,aAAaA,EAAG,SAAS;AAAA,cACzB,WAAWA,EAAG;AAAA,cACd,SAASA,EAAG;AAAA,cACZ,QAAQA,EAAG,UAAU;AAAA,YAAA,EACrB;AAGF,gBAAI7C,MAAW,SAAS;AAEtB,oBAAMgD,IAAiB,CAAC,GAAGR,CAAgB,GACrCS,IAAsB,IAAI;AAAA,gBAC9BT,EAAiB,IAAI,CAACK,MAAO;AAC3B,wBAAMK,KAASL,EAAG,SAAS,IAAI,YAAA,GACzBM,MAAQN,EAAG,QAAQ,IAAI,YAAA;AAC7B,yBAAO,GAAGK,CAAK,IAAIC,EAAI;AAAA,gBACzB,CAAC;AAAA,cAAA;AAIH,yBAAWC,KAAcR,GAAa;AACpC,sBAAMM,KAASE,EAAW,SAAS,IAAI,YAAA,GACjCD,MAAQC,EAAW,QAAQ,IAAI,YAAA,GAC/BC,KAAa,GAAGH,CAAK,IAAIC,EAAI;AACnC,gBAAKF,EAAoB,IAAII,EAAU,KACrCL,EAAe,KAAKI,CAAU;AAAA,cAElC;AACA,cAAAb,EAAW,WAAWS;AAAA,YACxB,OAAO;AAEL,oBAAMM,IAAmBV,EAAY,IAAI,CAACW,MAAU;AAElD,sBAAMC,IAAgBhB,EAAiB;AAAA,kBACrC,CAACiB,OACEA,EAAI,SAAS,IAAI,mBAAmBF,EAAM,SAAS,IAAI,kBACvDE,EAAI,QAAQ,IAAI,YAAA,OAAmBF,EAAM,QAAQ,IAAI,YAAA;AAAA,gBAAY;AAEtE,uBAAO;AAAA,kBACL,GAAGA;AAAA,kBACH,IAAIC,GAAe,MAAMD,EAAM;AAAA,gBAAA;AAAA,cAEnC,CAAC;AACD,cAAAhB,EAAW,WAAWe;AAAA,YACxB;AAAA,UACF;AACA;AAAA,QACF;AAGA,YAAII,IAAW,IACbC,IAAS,IAEPC,IAA4D;AAEhE,YAAI1G,EAAW,SAAS,GAAG;AACzB,gBAAMM,IAAaN,EAAW,CAAC;AAE/B,cADe9B,EAAcoC,CAAU;AAMrC,gBAJAkG,IAAWzG,EAAM,WAAW,SAAS,GACrC0G,IAAS1G,EAAM,WAAW,OAAO,GAG7BA,MAAU,YAAYA,MAAU;AAElC,cAAA2G,IAAiB,UAEjBF,IAAW;AAAA,qBACFzG,MAAU,UAAUA,MAAU;AAEvC,cAAA2G,IAAiB;AAAA,qBACRF,GAAU;AAEnB,oBAAMG,IAAY5G,EAAM,QAAQ,WAAW,EAAE,GACvC6G,IAAczI,EAAa,KAAK,CAACuD,MAAMA,EAAE,SAASiF,CAAS;AACjE,kBAAIC;AAEF,wBADiBA,EAAY,KAAK,MAC1B;AAAA,kBACN,KAAK;AACH,oBAAAF,IAAiB;AACjB;AAAA,kBACF,KAAK;AAAA,kBACL,KAAK;AACH,oBAAAA,IAAiB;AACjB;AAAA,kBACF,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AACH,oBAAAA,IAAiB;AACjB;AAAA,kBACF;AAEE,oBAAAA,IAAiB;AAAA,gBAAA;AAAA,YAGzB,OAAWD,MAETC,IAAiB;AAAA,QAGvB;AAGA,iBAAS9C,IAAW,GAAGA,IAAW5D,EAAW,QAAQ4D,KAAY;AAC/D,gBAAM9D,IAAQE,EAAW4D,CAAQ,GAC3BsB,IAAapB,GAAkBhE,GAAOzC,CAAW,GAAG,YACpDwG,IAAWqB,MAAe;AAGhC,cAAIlB;AACJ,cAAId;AACF,YAAAc,IAAa9B,EAAW,CAAC,EAAE,OAAO,CAAC;AAAA,eAC9B;AACL,kBAAM6B,IAAgBH,IAAW1B,EAAW,QAItCkB,IAAelB,EAAW6B,CAAa;AAK7C,gBAAIX,EAAa,OAAO,SAASO,EAAe,QAAQ;AAItD,oBAAMkD,IAAuBnJ,EAAQ,aAAa,IAAIiG,EAAe,CAAC,CAAC,KAAK,GAGtEmD,IAAiB,MAAM,KAAKpJ,EAAQ,aAAa,MAAM,EAC1D,OAAO,CAAC8B,MAAOA,MAAOC,CAAuB,EAC7C,KAAK,CAACQ,GAAGC,OAAM;AACd,sBAAMC,KAASzC,EAAQ,aAAa,IAAIuC,CAAC,KAAK,OACxCG,KAAS1C,EAAQ,aAAa,IAAIwC,EAAC,KAAK;AAC9C,uBAAOC,KAASC;AAAA,cAClB,CAAC,GAGG2G,IAAeD,EAAe;AAAA,gBAClC,CAACtH,MAAO9B,EAAQ,aAAa,IAAI8B,CAAE,MAAMqH;AAAA,cAAA,GAUrCG,KANwBF,EAAe;AAAA,gBAC3CC;AAAA,gBACAA,IAAe3D,EAAa,OAAO;AAAA,cAAA,EAIW,QAAQrD,CAAK;AAC7D,cAAAiE,IACEZ,EAAa,OAAO4D,EAAiB,KACrC5D,EAAa,OAAO4D,KAAoB5D,EAAa,OAAO,MAAM;AAAA,YAEtE,OAAO;AAEL,oBAAMqC,IAAgBtB,IAAWf,EAAa,OAAO;AACrD,cAAAY,IAAaZ,EAAa,OAAOqC,CAAa;AAAA,YAEhD;AAAA,UACF;AAEA,cAAIwB,IAAgBlH,EAAM,MAAM,GAAG,EAAE,SAASA;AAG9C,cAAIA,MAAU,cACZkH,IAAgBpD,IAAW,eAAe,YAC1C2C,IAAW,IAGP,CAACxC;AAAY;AAInB,gBAAMkD,IAAiBC,GAAkBnD,GAAY0C,CAAc,GAI7DvB,IADSjH,EAAc4B,CAAK,GACH,YAAYA,GAGrCsF,IAAY,GAAGtF,CAAK,IAAIoF,CAAU;AACxC,UAAI,CAAChB,EAAoB,IAAIkB,CAAS,KAAKF,KACzChB,EAAoB,IAAIkB,GAAW;AAAA,YACjC,OAAAtF;AAAA,YACA,IAAIqF;AAAA,YACJ,MAAMD;AAAA,YACN,QAAQ,CAAA;AAAA,YACR,QAAQ,CAAA;AAAA,YACR,OAAO,CAAA;AAAA,UAAC,CACT;AAGH,gBAAMG,IAAanB,EAAoB,IAAIkB,CAAS;AAGpD,cAAIqB,GAAQ;AACV,kBAAM,CAACW,GAAOC,GAAUC,GAAQC,GAASC,CAAS,IAAIzH,EAAM,MAAM,GAAG;AAErE,YAAAsF,EAAW,MAAM,GAAGgC,CAAQ,IAAIC,CAAM,IAAIC,CAAO,IAAIC,CAAS,EAAE,IAAIN;AAAA,UACtE,OAAWV,IACTnB,EAAW,OAAO4B,CAAa,IAAIC,IAEnC7B,EAAW,OAAO4B,CAAa,IAAIC;AAAA,QAEvC;AAAA,MACF;AAGA,YAAMO,IAAmC,CAAA,GACnCC,wBAAqB,IAAA;AAE3B,MAAAxD,EAAoB,QAAQ,CAACxD,MAAW;AAEtC,eAAO,QAAQA,EAAO,MAAM,EAAE,QAAQ,CAAC,CAACe,GAAOW,CAAK,MAAM;AACxD,UAAAqF,EAAiB,KAAK;AAAA,YACpB,OAAO/G,EAAO;AAAA,YACd,IAAIA,EAAO;AAAA,YACX,MAAMA,EAAO;AAAA,YACb,OAAAe;AAAA,YACA,OAAAW;AAAAA,UAAA,CACD;AAAA,QACH,CAAC,GAGD,OAAO,QAAQ1B,EAAO,MAAM,EAAE,QAAQ,CAAC,CAACe,GAAOW,CAAK,MAAM;AACxD,UAAAqF,EAAiB,KAAK;AAAA,YACpB,OAAO/G,EAAO;AAAA,YACd,IAAIA,EAAO;AAAA,YACX,MAAMA,EAAO;AAAA,YACb,OAAAe;AAAA,YACA,OAAAW;AAAAA,YACA,UAAU;AAAA,UAAA,CACX;AAAA,QACH,CAAC,GAGD,OAAO,QAAQ1B,EAAO,KAAK,EAAE,QAAQ,CAAC,CAACiH,GAASC,CAAe,MAAM;AAEnE,gBAAM,CAACC,GAAcL,CAAS,IAAIG,EAAQ,MAAM,GAAG,GAC7CG,IAAgBD,EAAa,MAAM,GAAG;AAE5C,cAAIC,EAAc,UAAU,GAAG;AAC7B,kBAAMC,IAAeD,EAAc,CAAC,GAC9BR,IAASQ,EAAc,CAAC,GACxBP,IAAUO,EAAc,CAAC,GAGzBT,IAAW,GAAGU,CAAY,IAAIT,CAAM,IAAIC,CAAO,IAG/CS,IAAmBR,MAAc,QAAQD,IAAUD,GAGnDW,IAAgB,GAAGvH,EAAO,EAAE,IAAI2G,CAAQ,IAAIG,CAAS;AAE3D,YAAAE,EAAe,IAAIO,GAAe;AAAA,cAChC,OAAOvH,EAAO;AAAA,cACd,gBAAgBA,EAAO;AAAA,cACvB,kBAAkBA,EAAO;AAAA,cACzB,UAAA2G;AAAA,cACA,WAAAG;AAAA,cACA,kBAAAQ;AAAA,cACA,WAAWlF;AAAA,cACX,iBAAiB,MAAM,QAAQ8E,CAAe,IAAIA,IAAkB,CAAA;AAAA,YAAC,CACtE;AAAA,UACH;AAAA,QACF,CAAC;AAAA,MACH,CAAC;AAED,YAAMM,IAAiB,MAAM,KAAKR,EAAe,QAAQ,GAGnDS,IACJ,CAAA;AACF,MAAAjE,EAAoB,QAAQ,CAACxD,MAAW;AACtC,QAAIA,EAAO,YACTyH,EAAgB,KAAK;AAAA,UACnB,QAAQzH,EAAO;AAAA,UACf,UAAUA,EAAO;AAAA,UACjB,kBAAkBA,EAAO;AAAA,QAAA,CAC1B;AAAA,MAEL,CAAC;AAGD,YAAM0H,IAAkC,CAAA;AAUxC,UARIX,EAAiB,SAAS,KAC5BW,EAAe,KAAKvK,GAAe4J,CAAgB,CAAC,GAGlDS,EAAe,SAAS,KAC1BE,EAAe,KAAKpK,GAAgBkK,CAAc,CAAC,GAGjDC,EAAgB,SAAS,GAAG;AAE9B,QAAIrK,MACFqK,EAAgB,QAAQ,CAAC,EAAE,QAAAnD,GAAQ,UAAAhE,GAAU,kBAAAqH,QAAuB;AAClE,gBAAMC,IAAOD,KAAoB,CAAA,GAC3BE,IAAOvH,KAAY,CAAA,GACnBwH,IAAe,MAAM;AACzB,YAAA1J,EAAe,EAAE,aAAAF,GAAa,QAAAoG,GAAQ,UAAUsD,EAAA,CAAM,EACnD,SACA,MAAM,MAAM;AAAA,YAAC,CAAC;AAAA,UACnB,GACMG,IAAe,MAAM;AACzB,YAAA3J,EAAe,EAAE,aAAAF,GAAa,QAAAoG,GAAQ,UAAUuD,EAAA,CAAM,EACnD,SACA,MAAM,MAAM;AAAA,YAAC,CAAC;AAAA,UACnB;AACA,UAAAzK,GAAQ,YAAY,CAAC0K,CAAY,GAAG,CAACC,CAAY,CAAC;AAAA,QACpD,CAAC;AAGH,cAAMC,IAAmBP,EAAgB;AAAA,UAAI,CAAC,EAAE,QAAAnD,GAAQ,UAAAhE,EAAA,MACtDlC,EAAe,EAAE,aAAAF,GAAa,QAAAoG,GAAQ,UAAAhE,EAAA,CAAU,EAAE,OAAA;AAAA,QAAO;AAE3D,QAAAoH,EAAe,KAAK,GAAGM,CAAgB;AAAA,MACzC;AAEA,UAAIN,EAAe,SAAS;AAC1B,YAAI;AACF,gBAAM,QAAQ,IAAIA,CAAc;AAAA,QAClC,SAASrG,GAAY;AACnB,kBAAQ,MAAM,4BAA4BA,CAAK,GAC/CS,EAAe,iBAAiBT,KAASA,GAAO,WAAW,eAAe,EAAE;AAAA,QAC9E;AAAA,IAEJ;AAAA,IACA;AAAA,MACEtE;AAAA,MACAC;AAAA,MACAL;AAAA,MACAQ;AAAA,MACAG;AAAA,MACAV;AAAA,MACAY;AAAA,MACAV;AAAA,MACAW;AAAA,MACAS;AAAA,MACAE;AAAA,MACAhB;AAAA,IAAA;AAAA,EACF;AAIF,EAAA6K,GAAU,MAAM;AACd,UAAMC,IAAgB,OAAOC,MAAqB;AAEhD,WAAKA,EAAE,WAAWA,EAAE,YAAYA,EAAE,QAAQ,KAAK;AAC7C,cAAMC,IAAW,SAAS,eAEpBC,IACJD,GAAU,QAAQ,OAAO,MAAM,QAC/BA,GAAU,QAAQ,kBAAkB,MAAM,QAC1CA,GAAU,YAAY,QACtBA,GAAU,YAAY,MAGlBE,IACJF,GAAU,YAAY,WACtBA,GAAU,YAAY,cACtBA,GAAU;AAUZ,aARyB,OAAO,aAAA,GAAgB,WAAW,UAAU,OAG7C,CAACC,KAKrBC,KAAqB,CAACD;AACxB;AAGF,QAAItL,EAAc,OAAO,KACvB,MAAM8E,EAAA;AAAA,MAIV;AAEA,WAAKsG,EAAE,WAAWA,EAAE,YAAYA,EAAE,QAAQ,KAAK;AAE7C,cAAMC,IAAW,SAAS;AAE1B,YACEA,MACCA,EAAS,YAAY,WACpBA,EAAS,YAAY,cACrBA,EAAS;AAKX,cAFqB,MAAM9G,GAAA;AAIzB,YAAA6G,EAAE,eAAA;AAAA;AAGF;AAGJ,QAAAhG,GAAmB,MAAM,KAAKpF,CAAa,GAAG;AAAA,UAC5C,QAAQoL,EAAE,WAAW,UAAU;AAAA;AAAA,QAAA,CAChC;AAAA,MACH;AAAA,IACF;AAEA,kBAAO,iBAAiB,WAAWD,CAAa,GACzC,MAAM;AACX,aAAO,oBAAoB,WAAWA,CAAa;AAAA,IACrD;AAAA,EACF,GAAG,CAACrG,GAAiBM,EAAkB,CAAC;AAExC,QAAMT,KAAQ7D;AAAA,IACZ,OAAO;AAAA,MACL,iBAAAgE;AAAA,MACA,oBAAAM;AAAA,MACA,WAAAJ;AAAA,IAAA;AAAA,IAEF,CAACF,GAAiBM,EAAkB;AAAA,EAAA;AAGtC,SAAOoG,gBAAAA,GAAAA,IAACjM,GAAiB,UAAjB,EAA0B,OAAAoF,IAAe,UAAAhF,EAAA,CAAS;AAC5D,GAEa8L,KAAe,MAA4B;AACtD,QAAMC,IAAUC,GAAWpM,EAAgB;AAC3C,MAAImM,MAAY;AACd,UAAM,IAAI,MAAM,sDAAsD;AAExE,SAAOA;AACT;"}
1
+ {"version":3,"file":"ClipboardContext.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ClipboardContext.tsx"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useMemo } from 'react'\n\n// Contexts\nimport { ROW_SELECTION_COLUMN_ID } from '../constants'\nimport { useSelectionCellsContext } from './SelectionCellsContext'\nimport { useCellEditing } from './CellEditingContext'\nimport { useProjectContext } from '@shared/context/ProjectContext'\n\n// Utils\nimport {\n getCellValue,\n getEntityDataById,\n getLinkEntityIdsByColumnId,\n parseCellId,\n} from '../utils/cellUtils'\n\n// Types\nimport { TableRow } from '../types/table'\nimport { EntityUpdate } from '../hooks/useUpdateTableData'\nimport usePasteLinks, { LinkUpdate } from '../hooks/usePasteLinks'\nimport { useUpdateSubtasksMutation } from '@shared/api'\n\n// Import from the new modular files\nimport {\n getEntityPath,\n parseClipboardText,\n clipboardError,\n processFieldValue,\n subtasksToTSV,\n isSubtasksTSV,\n tsvToSubtasks,\n sanitizeSubtaskName,\n commentsToText,\n} from './clipboard'\nimport { validateClipboardData } from './clipboard/clipboardValidation'\nimport { ClipboardContextType, ClipboardProviderProps } from './clipboard/clipboardTypes'\nimport { useProjectTableContext } from './ProjectTableContext'\nimport { validateEntityId, getEntityId } from '@shared/util'\n\nconst ClipboardContext = createContext<ClipboardContextType | undefined>(undefined)\n\nconst DISPLAY_PREFERRED_COLS = new Set([\n 'version',\n 'version_entity',\n 'product',\n 'productBaseType',\n 'task_entity',\n])\n\nconst DISPLAY_COLUMN_FIELDS: Record<string, string> = {\n folder_entity: 'folder',\n task_entity: 'taskLabel',\n version_entity: 'versionName',\n}\n\nexport const ClipboardProvider: React.FC<ClipboardProviderProps> = ({\n children,\n entitiesMap,\n columnEnums,\n columnReadOnly,\n visibleColumns,\n}) => {\n // Get selection information from SelectionContext\n const { selectedCells, gridMap, focusedCellId } = useSelectionCellsContext()\n const { updateEntities, history } = useCellEditing()\n const { pasteTableLinks } = usePasteLinks()\n const { getEntityById, attribFields, tableData } = useProjectTableContext()\n\n const displayRowsById = useMemo(() => {\n const map = new Map<string, TableRow>()\n const walk = (rows: TableRow[]) => {\n for (const row of rows) {\n map.set(row.id, row)\n if (row.subRows?.length) walk(row.subRows as TableRow[])\n }\n }\n walk(tableData || [])\n return map\n }, [tableData])\n const { projectName } = useProjectContext()\n const [updateSubtasks] = useUpdateSubtasksMutation()\n\n const getSelectionData = useCallback(\n async (selected: string[], config?: { headers?: boolean; fullRow?: boolean }) => {\n const { headers, fullRow } = config || {}\n try {\n // Get visible columns in display order, excluding row selection\n const visibleColumnIds = visibleColumns\n .map((col) => col.id)\n .filter((id) => id !== ROW_SELECTION_COLUMN_ID)\n\n // Organize selected cells by row, filtering to only visible columns\n const cellsByRow = new Map<string, Set<string>>()\n\n // Parse all selected cells and organize by rowId and colId\n selected.forEach((cellId) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n const { rowId, colId } = position\n if (colId === ROW_SELECTION_COLUMN_ID || !visibleColumnIds.includes(colId)) return\n\n if (!cellsByRow.has(rowId)) {\n cellsByRow.set(rowId, new Set())\n }\n\n cellsByRow.get(rowId)?.add(colId)\n })\n\n if (fullRow) {\n const selectedRows = selected\n .filter(\n (cellId) =>\n parseCellId(cellId)?.rowId &&\n parseCellId(cellId)?.colId === ROW_SELECTION_COLUMN_ID,\n )\n .map((cellId) => parseCellId(cellId)?.rowId) as string[]\n\n // select the whole row\n // For rows with selection cells, add all available columns\n selectedRows.forEach((rowId) => {\n // add the rowId if it doesn't exist\n if (!cellsByRow.has(rowId)) {\n cellsByRow.set(rowId, new Set())\n }\n const allColumns = Array.from(gridMap.colIdToIndex.keys())\n allColumns.forEach((colId) => {\n cellsByRow.get(rowId)?.add(colId)\n })\n })\n }\n\n // Get sorted row IDs based on their index in the grid\n const sortedRows = Array.from(cellsByRow.keys()).sort((a, b) => {\n const indexA = gridMap.rowIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.rowIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // Build clipboard text\n let clipboardText = ''\n\n // Get the first row to determine columns\n const firstRowId = sortedRows[0]\n if (!firstRowId) return ''\n\n // Get all column IDs for the first row, sorted by their index in the grid\n const colIds = Array.from(cellsByRow.get(firstRowId) || []).sort((a, b) => {\n const indexA = gridMap.colIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.colIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // Include headers if requested\n if (headers && colIds.length > 0) {\n const headerValues: string[] = []\n\n for (const colId of colIds) {\n // Use colId as the column name since we don't have direct access to column names\n const columnName = colId\n headerValues.push(`${columnName.replace(/\"/g, '\"\"')}`)\n }\n\n clipboardText += headerValues.join('\\t') + '\\n'\n }\n\n for (const rowId of sortedRows) {\n // Get the entity for this row\n const entity = getEntityById(rowId)\n\n if (!entity) {\n console.warn(`Entity not found for rowId: ${rowId}`)\n continue\n }\n\n const displayRow = displayRowsById.get(rowId)\n\n // Get all column IDs for this row, sorted by their index in the grid\n const colIds = Array.from(cellsByRow.get(rowId) || []).sort((a, b) => {\n const indexA = gridMap.colIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.colIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // Filter out the row selection column from the copied data\n const filteredColIds = colIds.filter((colId) => colId !== ROW_SELECTION_COLUMN_ID)\n\n const rowValues: string[] = []\n\n // For each column in this row\n for (const colId of filteredColIds) {\n // Determine the value based on the column ID\n let cellValue = ''\n\n // special handling of link cells\n if (colId.startsWith('link_')) {\n // @ts-expect-error - only complaining about missing __typename\n cellValue = getLinkEntityIdsByColumnId(entity.links, colId)\n } else if (colId === 'subtasks') {\n // Special handling for subtasks - convert to TSV format\n // @ts-ignore\n const subtasks = getCellValue(entity, colId) || []\n cellValue = subtasksToTSV(subtasks, entity.id, entity.name)\n } else if (colId === 'comments') {\n // @ts-ignore\n const comments = getCellValue(entity, 'latestComments') || []\n cellValue = commentsToText(comments)\n } else {\n // @ts-ignore\n const sourceField = DISPLAY_COLUMN_FIELDS[colId] || colId\n let foundValue = getCellValue(entity, sourceField)\n\n // folder is an object on some entities (product/task) or nested under\n // product (version) - copy the display name the cell shows,\n // falling back to the last parent (parent folder name on tasks/folders)\n if (colId === 'folder_entity' && typeof foundValue !== 'string') {\n const folder = foundValue || (entity as any).product?.folder\n const parents = 'parents' in entity ? entity.parents : undefined\n foundValue = folder?.label || folder?.name || parents?.[parents.length - 1] || ''\n }\n\n // Raw entity nodes (flat lists) either lack display-computed columns or hold a\n // non-string value (product/task object, numeric version) — prefer the built\n // display row, which is exactly what the cell shows.\n if (\n displayRow &&\n (DISPLAY_PREFERRED_COLS.has(colId) ||\n foundValue === undefined ||\n foundValue === null ||\n foundValue === '' ||\n typeof foundValue === 'object')\n ) {\n const displayValue = getCellValue(displayRow, sourceField)\n if (displayValue !== undefined && displayValue !== null && displayValue !== '') {\n foundValue = displayValue\n }\n }\n\n if (!foundValue) {\n // we should look for the default value set out in attribFields\n const field = attribFields.find((f) => f.name === colId.replace('attrib_', ''))\n if (field && field.data.type === 'boolean') {\n foundValue = false // default boolean value\n } else if (field && field.data.type.includes('list_of')) {\n foundValue = [] // default list value\n }\n }\n\n // convert to string if foundValue is not undefined or null use empty string otherwise\n cellValue = foundValue !== undefined && foundValue !== null ? String(foundValue) : ''\n\n // Hierarchical tables resolve a full path; flat lists (raw nodes keyed by row id)\n // can't, so fall back to the built display row label/name the cell shows\n if (colId === 'name') {\n cellValue =\n getEntityPath(entity.entityId || entity.id, entitiesMap) ||\n (displayRow as any)?.label ||\n displayRow?.name ||\n (entity as any).label ||\n entity.name ||\n ''\n }\n\n if (colId === 'subType') {\n // built display rows resolve subType (folder/task/product); raw nodes fall back to type fields\n const resolvedSubType = (displayRow as any)?.subType ?? (entity as any).subType\n if (typeof resolvedSubType === 'string' && resolvedSubType) {\n cellValue = resolvedSubType\n } else {\n if ('folderType' in entity) {\n cellValue = entity.folderType || ''\n }\n if ('taskType' in entity) {\n cellValue = entity.taskType || ''\n }\n }\n }\n }\n\n // Wrap multi-line / tab / quote values in quotes so spreadsheets keep them in one\n // cell. Subtasks embed tabs+newlines as real grid structure for paste round-trips —\n // leave them raw so they stay multi-row/column.\n const escaped = cellValue.replace(/\"/g, '\"\"')\n const needsQuoting =\n colId !== 'subtasks' &&\n (cellValue.includes('\\n') || cellValue.includes('\\t') || cellValue.includes('\"'))\n rowValues.push(needsQuoting ? `\"${escaped}\"` : escaped)\n }\n\n // Add row to clipboard text\n clipboardText += rowValues.join('\\t') + '\\n'\n }\n\n return clipboardText\n } catch (error) {\n console.error('Failed to copy to clipboard:', error)\n }\n },\n [\n selectedCells,\n focusedCellId,\n gridMap,\n entitiesMap,\n getEntityById,\n visibleColumns,\n displayRowsById,\n ],\n )\n\n const doesClipboardContainId = async () => {\n // check if the clipboard contains a valid ID\n const clipboardText = await getClipboardString()\n if (!clipboardText) return false\n const parsedData = parseClipboardText(clipboardText)\n if (parsedData.length === 0) return false\n return parsedData.every((row) => {\n return row.values.every((value) => value.split(',').every((v) => validateEntityId(v)))\n })\n }\n\n const copyToClipboard: ClipboardContextType['copyToClipboard'] = useCallback(\n async (selected, fullRow) => {\n selected = selected || Array.from(selectedCells)\n if (!selected.length) return\n const clipboardText = await getSelectionData(selected, { fullRow })\n if (!clipboardText) {\n return\n }\n if (!navigator.clipboard) {\n clipboardError('Clipboard API not supported in this browser.')\n return\n }\n if (!window.isSecureContext) {\n clipboardError('Clipboard operations require a secure HTTPS context.')\n return\n }\n try {\n await navigator.clipboard.writeText(clipboardText)\n } catch (error: any) {\n clipboardError(`Failed to copy to clipboard: ${error.message}`)\n }\n },\n [selectedCells, entitiesMap, gridMap],\n )\n\n const exportCSV: ClipboardContextType['exportCSV'] = useCallback(\n async (selected, projectName, fullRow) => {\n selected = selected || Array.from(selectedCells)\n if (!selected.length) return\n\n try {\n // Get clipboard text with headers included for CSV export\n const clipboardText = await getSelectionData(selected, { headers: true, fullRow })\n if (!clipboardText) return\n\n // create a csv file and download it\n const blob = new Blob([clipboardText], { type: 'text/csv' })\n const url = URL.createObjectURL(blob)\n const a = document.createElement('a')\n a.href = url\n const selectedCount = selected.length\n a.download = `${projectName}-export-${selectedCount}_cells-${new Date()\n .toISOString()\n .slice(0, 10)}.csv`\n a.click()\n URL.revokeObjectURL(url)\n } catch (error) {\n console.error('Failed to copy to clipboard:', error)\n }\n },\n [selectedCells, entitiesMap, gridMap, getSelectionData],\n )\n\n const getClipboardString = async (): Promise<string | void> => {\n if (!navigator.clipboard) {\n clipboardError('Clipboard API not supported in this browser.')\n return\n }\n if (!window.isSecureContext) {\n clipboardError('Clipboard operations require a secure HTTPS context.')\n return\n }\n let clipboardText: string\n try {\n clipboardText = await navigator.clipboard.readText()\n return clipboardText\n } catch (error: any) {\n clipboardError(`Failed to read from clipboard: ${error.message}`)\n return\n }\n }\n\n const pasteFromClipboard: ClipboardContextType['pasteFromClipboard'] = useCallback(\n async (selected, config) => {\n const { method = 'replace' } = config || {}\n if (!selected.length) return\n\n const clipboardText = await getClipboardString()\n if (!clipboardText) return\n\n // Check if this is subtasks TSV data first, before normal parsing\n let isSubtasksData = false\n let subtasksClipboardText = clipboardText\n if (isSubtasksTSV(clipboardText)) {\n isSubtasksData = true\n }\n\n // Parse the clipboard text\n const parsedData = parseClipboardText(clipboardText)\n if (!parsedData.length) return\n\n // Determine if we have a single value in the clipboard (one row, one column)\n const isSingleCellValue = parsedData.length === 1 && parsedData[0].values.length === 1\n\n // Get visible columns in display order, excluding row selection\n const visibleColumnIds = visibleColumns\n .map((col) => col.id)\n .filter((id) => id !== ROW_SELECTION_COLUMN_ID)\n\n // Helper function to map clipboard values to visible columns\n const mapClipboardToVisibleColumns = (\n clipboardRow: any,\n visibleColumnIds: string[],\n clipboardHeaders?: string[],\n ) => {\n const mappedValues: Record<string, string> = {}\n\n if (clipboardHeaders && clipboardHeaders.length > 0) {\n // Map by header names when available\n clipboardHeaders.forEach((header: string, index: number) => {\n const matchingColId = visibleColumnIds.find(\n (colId) =>\n colId === header ||\n colId.replace('attrib_', '') === header ||\n colId === `attrib_${header}` ||\n colId.toLowerCase() === header.toLowerCase(),\n )\n\n if (matchingColId && index < clipboardRow.values.length) {\n mappedValues[matchingColId] = clipboardRow.values[index]\n }\n })\n } else {\n // Fallback: map by position, but only to visible columns\n visibleColumnIds.forEach((colId, index) => {\n if (index < clipboardRow.values.length) {\n mappedValues[colId] = clipboardRow.values[index]\n }\n })\n }\n\n return mappedValues\n }\n\n // Extract headers if they exist (assuming first row might be headers from external source)\n // You might need to detect this differently based on your clipboard format\n const clipboardHeaders = parsedData[0]?.colIds || undefined\n\n // Organize selected cells by row, filtering to only visible columns\n const cellsByRow = new Map<string, Set<string>>()\n\n Array.from(selected).forEach((cellId) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n const { rowId, colId } = position\n if (colId === ROW_SELECTION_COLUMN_ID || !visibleColumnIds.includes(colId)) return\n\n if (!cellsByRow.has(rowId)) {\n cellsByRow.set(rowId, new Set())\n }\n cellsByRow.get(rowId)?.add(colId)\n })\n\n // Get sorted row IDs and column IDs\n const sortedRows = Array.from(cellsByRow.keys()).sort((a, b) => {\n const indexA = gridMap.rowIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.rowIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n const firstRow = sortedRows[0]\n const selectedColIds = Array.from(cellsByRow.get(firstRow) || []).sort((a, b) => {\n const indexA = gridMap.colIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.colIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // First pass: validate all values\n for (let rowIndex = 0; rowIndex < sortedRows.length; rowIndex++) {\n const rowId = sortedRows[rowIndex]\n const isFolder = getEntityDataById<'folder'>(rowId, entitiesMap)?.entityType === 'folder'\n\n const pasteRowIndex = rowIndex % parsedData.length\n const clipboardRow = parsedData[pasteRowIndex]\n\n // Map clipboard data to visible columns\n const mappedValues = isSingleCellValue\n ? { [selectedColIds[0]]: parsedData[0].values[0] }\n : mapClipboardToVisibleColumns(clipboardRow, selectedColIds, clipboardHeaders)\n\n // Validate each mapped value\n for (const colId of selectedColIds) {\n const pasteValue = mappedValues[colId] || ''\n\n const isValid = validateClipboardData({\n colId,\n isFolder,\n pasteValue,\n parsedData,\n columnEnums,\n columnReadOnly,\n rowIndex,\n colIndex: selectedColIds.indexOf(colId),\n isSingleCellValue,\n attribFields,\n })\n\n if (!isValid) return\n }\n }\n\n // Create a map to consolidate updates for the same entity\n const entitiesToUpdateMap = new Map<\n string,\n {\n rowId: string\n id: string\n type: string\n fields: Record<string, any>\n attrib: Record<string, any>\n links: Record<string, string[]>\n subtasks?: any[]\n previousSubtasks?: any[]\n }\n >()\n\n // For each column, prepare updates\n for (let colIndex = 0; colIndex < selectedColIds.length; colIndex++) {\n const colId = selectedColIds[colIndex]\n\n // Skip special handling for 'name' which we don't want to paste\n if (colId === 'name') continue\n\n // Special handling for subtasks column\n if (colId === 'subtasks') {\n // For subtasks, group them by source task so each group can be applied to different cells\n let subtaskGroups: Array<{ taskId?: string; taskName?: string; subtasks: any[] }> = []\n let isFromSingleSourceTask = false\n\n if (isSubtasksData) {\n // Parse all subtask data to understand the source grouping\n const allLines = subtasksClipboardText.trim().split('\\n')\n\n // Check for header\n const firstLine = allLines[0].toLowerCase()\n const hasHeader =\n firstLine.includes('label') &&\n firstLine.includes('name') &&\n firstLine.includes('start date') &&\n firstLine.includes('end date') &&\n firstLine.includes('assignees') &&\n firstLine.includes('status')\n\n const dataLines = hasHeader ? allLines.slice(1) : allLines\n\n // Parse all lines and group by source taskId\n const groupMap = new Map<string, any[]>()\n const groupOrder: string[] = []\n\n dataLines.forEach((line) => {\n const parsed = tsvToSubtasks(line)\n if (parsed.length === 0) return\n\n const subtask = parsed[0]\n const groupKey = `${subtask.taskId || ''}|${subtask.taskName || ''}`\n\n if (!groupMap.has(groupKey)) {\n groupMap.set(groupKey, [])\n groupOrder.push(groupKey)\n }\n groupMap.get(groupKey)!.push(subtask)\n })\n\n // Create groups in order\n groupOrder.forEach((groupKey) => {\n const [taskId, taskName] = groupKey.split('|')\n subtaskGroups.push({\n taskId: taskId || undefined,\n taskName: taskName || undefined,\n subtasks: groupMap.get(groupKey) || [],\n })\n })\n\n // Check if all subtasks come from the same source task\n isFromSingleSourceTask = subtaskGroups.length <= 1\n }\n\n // Handle subtasks paste for each selected row\n for (let rowIndex = 0; rowIndex < sortedRows.length; rowIndex++) {\n const rowId = sortedRows[rowIndex]\n const entityType = getEntityDataById(rowId, entitiesMap)?.entityType\n\n // Subtasks only apply to tasks\n if (entityType !== 'task') continue\n\n // Get entity to access entityId (important for list items where rowId is list item ID)\n const entity = getEntityById(rowId)\n const actualEntityId = entity?.entityId || rowId\n\n // Get or create entity entry in the map\n const entityKey = `${rowId}-${entityType}`\n if (!entitiesToUpdateMap.has(entityKey)) {\n entitiesToUpdateMap.set(entityKey, {\n rowId,\n id: actualEntityId,\n type: entityType,\n fields: {},\n attrib: {},\n links: {},\n })\n }\n\n const entityData = entitiesToUpdateMap.get(entityKey)!\n // Get existing subtasks from entity\n const existingSubtasks = (entity && 'subtasks' in entity && entity.subtasks) || []\n // store previous subtasks for history/undo\n entityData.previousSubtasks = existingSubtasks\n\n let subtasksToProcess: any[] = []\n\n if (isSubtasksData) {\n if (isFromSingleSourceTask && subtaskGroups.length > 0) {\n // All subtasks from one source - apply to all cells\n subtasksToProcess = subtaskGroups[0].subtasks\n } else if (subtaskGroups.length > 0) {\n // Multiple groups - distribute by row (like regular data does with modulo)\n const groupIndex = rowIndex % subtaskGroups.length\n subtasksToProcess = subtaskGroups[groupIndex].subtasks\n }\n } else {\n // For parsed clipboard data, get the appropriate row\n if (isSingleCellValue) {\n const pasteValue = parsedData[0].values[0]\n subtasksToProcess = tsvToSubtasks(pasteValue)\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const clipboardRow = parsedData[pasteRowIndex]\n const pasteColIndex = colIndex % clipboardRow.values.length\n const pasteValue = clipboardRow.values[pasteColIndex]\n subtasksToProcess = tsvToSubtasks(pasteValue)\n }\n }\n\n // Skip if no subtasks to process\n if (!subtasksToProcess || subtasksToProcess.length === 0) continue\n\n // Create normalized subtasks from parsed data\n const newSubtasks = subtasksToProcess.map((st, index) => ({\n id: getEntityId(),\n name: sanitizeSubtaskName(st.name || st.label || `Subtask ${index + 1}`),\n label: st.label || '',\n assignees: st.assignees || [],\n description: st.label || '',\n startDate: st.startDate,\n endDate: st.endDate,\n isDone: st.isDone || false,\n }))\n\n // Handle merge vs replace\n if (method === 'merge') {\n // Merge new subtasks with existing ones, removing duplicates by label and name\n const mergedSubtasks = [...existingSubtasks]\n const existingIdentifiers = new Set(\n existingSubtasks.map((st) => {\n const label = (st.label || '').toLowerCase()\n const name = (st.name || '').toLowerCase()\n return `${label}|${name}`\n }),\n )\n\n // Add new subtasks that don't already exist\n for (const newSubtask of newSubtasks) {\n const label = (newSubtask.label || '').toLowerCase()\n const name = (newSubtask.name || '').toLowerCase()\n const identifier = `${label}|${name}`\n if (!existingIdentifiers.has(identifier)) {\n mergedSubtasks.push(newSubtask)\n }\n }\n entityData.subtasks = mergedSubtasks\n } else {\n // Replace mode: use new subtasks, preserving IDs for any matching label and name\n const replacedSubtasks = newSubtasks.map((newSt) => {\n // Try to find existing subtask with matching label and name to preserve ID\n const existingMatch = existingSubtasks.find(\n (est) =>\n (est.label || '').toLowerCase() === (newSt.label || '').toLowerCase() &&\n (est.name || '').toLowerCase() === (newSt.name || '').toLowerCase(),\n )\n return {\n ...newSt,\n id: existingMatch?.id || newSt.id,\n }\n })\n entityData.subtasks = replacedSubtasks\n }\n }\n continue\n }\n\n // Check if this is an attribute field by examining the first entity\n let isAttrib = false,\n isLink = false\n // Check if the field potentially contains array values\n let fieldValueType: 'string' | 'number' | 'boolean' | 'array' = 'string'\n\n if (sortedRows.length > 0) {\n const firstRowId = sortedRows[0]\n const entity = getEntityById(firstRowId)\n if (entity) {\n isAttrib = colId.startsWith('attrib_')\n isLink = colId.startsWith('link_')\n\n // Determine field type based on type or attrib type\n if (colId === 'status' || colId === 'subType') {\n // status and subType are strings\n fieldValueType = 'string'\n // special case to avoid treating subType as attrib (not sure if this is needed)\n isAttrib = false\n } else if (colId === 'tags' || colId === 'assignees') {\n // tags and assignees are always arrays\n fieldValueType = 'array'\n } else if (isAttrib) {\n // find type based on attribFields\n const fieldName = colId.replace('attrib_', '')\n const attribField = attribFields.find((f) => f.name === fieldName)\n if (attribField) {\n const dataType = attribField.data.type\n switch (dataType) {\n case 'boolean':\n fieldValueType = 'boolean'\n break\n case 'float':\n case 'integer':\n fieldValueType = 'number'\n break\n case 'list_of_strings':\n case 'list_of_any':\n case 'list_of_integers':\n case 'list_of_submodels':\n fieldValueType = 'array'\n break\n default:\n // everything else is string\n fieldValueType = 'string'\n }\n }\n } else if (isLink) {\n // links are always arrays\n fieldValueType = 'array'\n }\n }\n }\n\n // Process each row individually\n for (let rowIndex = 0; rowIndex < sortedRows.length; rowIndex++) {\n const rowId = sortedRows[rowIndex]\n const entityType = getEntityDataById(rowId, entitiesMap)?.entityType\n const isFolder = entityType === 'folder'\n\n // Get the appropriate value from the clipboard data\n let pasteValue\n if (isSingleCellValue) {\n pasteValue = parsedData[0].values[0]\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n // Map visible column index to clipboard data index\n // When clipboard contains hidden columns, we need to skip over values\n // that correspond to hidden columns when pasting to visible columns\n const clipboardRow = parsedData[pasteRowIndex]\n\n // If clipboard has more values than visible columns being pasted to,\n // it likely contains hidden column data. We need to reconstruct the original\n // column order that was copied by finding which columns would have been included.\n if (clipboardRow.values.length > selectedColIds.length) {\n // The clipboard data was created from consecutive columns in grid order.\n // We need to find which consecutive columns would result in this clipboard data.\n // Start from the first visible column and extend the range to match clipboard length.\n const firstVisibleColIndex = gridMap.colIdToIndex.get(selectedColIds[0]) ?? 0\n\n // Get all columns sorted by grid position\n const allGridColumns = Array.from(gridMap.colIdToIndex.keys())\n .filter((id) => id !== ROW_SELECTION_COLUMN_ID)\n .sort((a, b) => {\n const indexA = gridMap.colIdToIndex.get(a) ?? Infinity\n const indexB = gridMap.colIdToIndex.get(b) ?? Infinity\n return indexA - indexB\n })\n\n // Find the starting position in the grid columns array\n const startGridPos = allGridColumns.findIndex(\n (id) => gridMap.colIdToIndex.get(id) === firstVisibleColIndex,\n )\n\n // The original copied columns are the consecutive ones starting from this position\n const originalCopiedColumns = allGridColumns.slice(\n startGridPos,\n startGridPos + clipboardRow.values.length,\n )\n\n // Find this column's position in the original copied columns\n const clipboardColIndex = originalCopiedColumns.indexOf(colId)\n pasteValue =\n clipboardRow.values[clipboardColIndex] ||\n clipboardRow.values[clipboardColIndex % clipboardRow.values.length]\n // Pasting value from hidden columns detection\n } else {\n // Normal case: map clipboard column index using modulo\n const pasteColIndex = colIndex % clipboardRow.values.length\n pasteValue = clipboardRow.values[pasteColIndex]\n // Pasting value normally\n }\n }\n\n let fieldToUpdate = colId.split('_').pop() || colId\n\n // Special handling for subType (convert to folderType or taskType)\n if (colId === 'subType') {\n fieldToUpdate = isFolder ? 'folderType' : 'taskType'\n isAttrib = false\n\n // Skip empty values for enum fields\n if (!pasteValue) continue\n }\n\n // Process the value based on its type\n const processedValue = processFieldValue(pasteValue, fieldValueType)\n\n // Get entity to access entityId (important for list items where rowId is list item ID)\n const entity = getEntityById(rowId)\n const actualEntityId = entity?.entityId || rowId\n\n // Get or create entity entry in the map\n const entityKey = `${rowId}-${entityType}`\n if (!entitiesToUpdateMap.has(entityKey) && entityType) {\n entitiesToUpdateMap.set(entityKey, {\n rowId,\n id: actualEntityId,\n type: entityType,\n fields: {},\n attrib: {},\n links: {},\n })\n }\n\n const entityData = entitiesToUpdateMap.get(entityKey)!\n\n // Add the field to the appropriate place\n if (isLink) {\n const [_link, linkType, inType, outType, direction] = colId.split('_')\n // final-task|folder|task\n entityData.links[`${linkType}|${inType}|${outType}_${direction}`] = processedValue\n } else if (isAttrib) {\n entityData.attrib[fieldToUpdate] = processedValue\n } else {\n entityData.fields[fieldToUpdate] = processedValue\n }\n }\n }\n\n // Convert the consolidated map to EntityUpdate array and LinkUpdate array\n const allEntityUpdates: EntityUpdate[] = []\n const linkUpdatesMap = new Map<string, LinkUpdate>()\n\n entitiesToUpdateMap.forEach((entity) => {\n // For regular fields, create one update per field\n Object.entries(entity.fields).forEach(([field, value]) => {\n allEntityUpdates.push({\n rowId: entity.rowId,\n id: entity.id,\n type: entity.type,\n field,\n value,\n })\n })\n\n // For attributes, create one update per attribute\n Object.entries(entity.attrib).forEach(([field, value]) => {\n allEntityUpdates.push({\n rowId: entity.rowId,\n id: entity.id,\n type: entity.type,\n field,\n value,\n isAttrib: true,\n })\n })\n\n // For links, create LinkUpdate objects\n Object.entries(entity.links).forEach(([linkKey, targetEntityIds]) => {\n // Parse the linkKey: \"linkType|inType|outType_direction\"\n const [linkTypePart, direction] = linkKey.split('_')\n const linkTypeParts = linkTypePart.split('|')\n\n if (linkTypeParts.length >= 3) {\n const linkTypeName = linkTypeParts[0]\n const inType = linkTypeParts[1]\n const outType = linkTypeParts[2]\n\n // Reconstruct the full linkType in the required format: name|input_type|output_type\n const linkType = `${linkTypeName}|${inType}|${outType}`\n\n // Determine target entity type based on direction\n const targetEntityType = direction === 'out' ? outType : inType\n\n // Create a unique key for this link operation\n const linkUpdateKey = `${entity.id}-${linkType}-${direction}`\n\n linkUpdatesMap.set(linkUpdateKey, {\n rowId: entity.rowId,\n sourceEntityId: entity.id,\n sourceEntityType: entity.type,\n linkType,\n direction: direction as 'in' | 'out',\n targetEntityType,\n operation: method,\n targetEntityIds: Array.isArray(targetEntityIds) ? targetEntityIds : [],\n })\n }\n })\n })\n\n const allLinkUpdates = Array.from(linkUpdatesMap.values())\n\n // Collect subtasks updates\n const subtasksUpdates: Array<{ taskId: string; subtasks: any[]; previousSubtasks?: any[] }> =\n []\n entitiesToUpdateMap.forEach((entity) => {\n if (entity.subtasks) {\n subtasksUpdates.push({\n taskId: entity.id,\n subtasks: entity.subtasks,\n previousSubtasks: entity.previousSubtasks,\n })\n }\n })\n\n // Make separate calls to update entities, links, and subtasks\n const updatePromises: Promise<void>[] = []\n\n if (allEntityUpdates.length > 0) {\n updatePromises.push(updateEntities(allEntityUpdates))\n }\n\n if (allLinkUpdates.length > 0) {\n updatePromises.push(pasteTableLinks(allLinkUpdates))\n }\n\n if (subtasksUpdates.length > 0) {\n // push undo/redo history entries for subtasks updates\n if (history) {\n subtasksUpdates.forEach(({ taskId, subtasks, previousSubtasks }) => {\n const prev = previousSubtasks || []\n const next = subtasks || []\n const undoCallback = () => {\n updateSubtasks({ projectName, taskId, subtasks: prev })\n .unwrap()\n .catch(() => {})\n }\n const redoCallback = () => {\n updateSubtasks({ projectName, taskId, subtasks: next })\n .unwrap()\n .catch(() => {})\n }\n history.pushHistory([undoCallback], [redoCallback])\n })\n }\n // Update subtasks for each task\n const subtasksPromises = subtasksUpdates.map(({ taskId, subtasks }) =>\n updateSubtasks({ projectName, taskId, subtasks }).unwrap(),\n )\n updatePromises.push(...subtasksPromises)\n }\n\n if (updatePromises.length > 0) {\n try {\n await Promise.all(updatePromises)\n } catch (error: any) {\n console.error('Error updating entities:', error)\n clipboardError(`Paste failed: ${error || error?.message || 'Unknown error'}`)\n }\n }\n },\n [\n selectedCells,\n gridMap,\n entitiesMap,\n updateEntities,\n pasteTableLinks,\n columnEnums,\n getEntityById,\n visibleColumns,\n attribFields,\n projectName,\n updateSubtasks,\n history,\n ],\n )\n\n // Set up keyboard event listeners\n useEffect(() => {\n const handleKeyDown = async (e: KeyboardEvent) => {\n // Copy functionality (Ctrl+C or Command+C)\n if ((e.ctrlKey || e.metaKey) && e.key === 'c') {\n const activeEl = document.activeElement as HTMLElement | null\n\n const isTableFocused =\n activeEl?.closest('table') !== null ||\n activeEl?.closest('.table-container') !== null ||\n activeEl?.tagName === 'TD' ||\n activeEl?.tagName === 'TH'\n\n // Check if there's a text selection in an input/textarea/contenteditable\n const isEditableElement =\n activeEl?.tagName === 'INPUT' ||\n activeEl?.tagName === 'TEXTAREA' ||\n activeEl?.isContentEditable\n\n const hasTextSelection = window.getSelection()?.toString().length ?? 0 > 0\n\n // If user has text selected elsewhere, let browser copy that\n if (hasTextSelection && !isTableFocused) {\n return // Let browser handle\n }\n\n // If focus is in an editable element, let browser handle\n if (isEditableElement && !isTableFocused) {\n return // Let browser handle\n }\n // If cells are selected, copy table data (even if focus moved away)\n if (selectedCells.size > 0) {\n await copyToClipboard()\n } else {\n // No cells selected, allowing default browser copy\n }\n }\n // Paste functionality (Ctrl+V or Command+V)\n if ((e.ctrlKey || e.metaKey) && e.key === 'v') {\n // don't execute paste if focus is inside an input, textarea, or content‐editable element\n const activeEl = document.activeElement as HTMLElement | null\n\n if (\n activeEl &&\n (activeEl.tagName === 'INPUT' ||\n activeEl.tagName === 'TEXTAREA' ||\n activeEl.isContentEditable)\n ) {\n // focus is inside an input, textarea, or content-editable element\n const allEntityIds = await doesClipboardContainId()\n // we might still want to paste if the clipboard contains valid entity IDs\n if (allEntityIds) {\n // prevent pasting into input fields and handle as paste on the cell\n e.preventDefault()\n } else {\n // skip pasting\n return\n }\n }\n pasteFromClipboard(Array.from(selectedCells), {\n method: e.shiftKey ? 'merge' : 'replace', // Use shift key to determine paste method\n })\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => {\n window.removeEventListener('keydown', handleKeyDown)\n }\n }, [copyToClipboard, pasteFromClipboard])\n\n const value = useMemo(\n () => ({\n copyToClipboard,\n pasteFromClipboard,\n exportCSV,\n }),\n [copyToClipboard, pasteFromClipboard],\n )\n\n return <ClipboardContext.Provider value={value}>{children}</ClipboardContext.Provider>\n}\n\nexport const useClipboard = (): ClipboardContextType => {\n const context = useContext(ClipboardContext)\n if (context === undefined) {\n throw new Error('useClipboard must be used within a ClipboardProvider')\n }\n return context\n}\n"],"names":["ClipboardContext","createContext","DISPLAY_PREFERRED_COLS","DISPLAY_COLUMN_FIELDS","ClipboardProvider","children","entitiesMap","columnEnums","columnReadOnly","visibleColumns","selectedCells","gridMap","focusedCellId","useSelectionCellsContext","updateEntities","history","useCellEditing","pasteTableLinks","usePasteLinks","getEntityById","attribFields","tableData","useProjectTableContext","displayRowsById","useMemo","map","walk","rows","row","projectName","useProjectContext","updateSubtasks","useUpdateSubtasksMutation","getSelectionData","useCallback","selected","config","headers","fullRow","visibleColumnIds","col","id","ROW_SELECTION_COLUMN_ID","cellsByRow","cellId","position","parseCellId","rowId","colId","sortedRows","a","b","indexA","indexB","clipboardText","firstRowId","colIds","headerValues","columnName","entity","displayRow","filteredColIds","rowValues","cellValue","getLinkEntityIdsByColumnId","subtasks","getCellValue","subtasksToTSV","comments","commentsToText","sourceField","foundValue","folder","parents","displayValue","field","f","getEntityPath","resolvedSubType","escaped","needsQuoting","error","doesClipboardContainId","getClipboardString","parsedData","parseClipboardText","value","v","validateEntityId","copyToClipboard","clipboardError","exportCSV","blob","url","selectedCount","pasteFromClipboard","method","isSubtasksData","subtasksClipboardText","isSubtasksTSV","isSingleCellValue","mapClipboardToVisibleColumns","clipboardRow","clipboardHeaders","mappedValues","header","index","matchingColId","firstRow","selectedColIds","rowIndex","isFolder","getEntityDataById","pasteRowIndex","pasteValue","validateClipboardData","entitiesToUpdateMap","colIndex","subtaskGroups","isFromSingleSourceTask","allLines","firstLine","dataLines","groupMap","groupOrder","line","parsed","tsvToSubtasks","subtask","groupKey","taskId","taskName","entityType","actualEntityId","entityKey","entityData","existingSubtasks","subtasksToProcess","groupIndex","pasteColIndex","newSubtasks","st","getEntityId","sanitizeSubtaskName","mergedSubtasks","existingIdentifiers","label","name","newSubtask","identifier","replacedSubtasks","newSt","existingMatch","est","isAttrib","isLink","fieldValueType","fieldName","attribField","firstVisibleColIndex","allGridColumns","startGridPos","clipboardColIndex","fieldToUpdate","processedValue","processFieldValue","_link","linkType","inType","outType","direction","allEntityUpdates","linkUpdatesMap","linkKey","targetEntityIds","linkTypePart","linkTypeParts","linkTypeName","targetEntityType","linkUpdateKey","allLinkUpdates","subtasksUpdates","updatePromises","previousSubtasks","prev","next","undoCallback","redoCallback","subtasksPromises","useEffect","handleKeyDown","e","activeEl","isTableFocused","isEditableElement","jsx","useClipboard","context","useContext"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const he=require("../../../../../_virtual/jsx-runtime.cjs.js"),l=require("react"),R=require("@tanstack/react-table"),Oe=require("./ColumnSettingsContext.cjs.js"),h=require("lodash"),d=require("../constants.cjs.js");require("@ynput/ayon-react-components");require("../../../components/SearchFilter/filterDates.cjs.js");require("date-fns");require("short-uuid");require("react-toastify");require("uuid");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/bundles/getBundles.cjs.js");require("../../../api/queries/bundles/updateBundles.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/columnStats/groupCounts.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/listItemsColumnStats.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../../util/pubsub.cjs.js");require("clsx");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("../../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("react-dom");require("../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../../../components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js");require("../../../components/DeleteEntitiesConfirm/DeleteEntitiesConfirmDialog.styled.cjs.js");require("../../../../../_virtual/index.cjs.js");require("../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../../components/QuillListStyles/QuillListStyles.cjs.js");require("../../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("react-markdown");require("remark-gfm");require("rehype-raw");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../Feed/components/CommentInput/modules/index.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");require("../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContextInstance.cjs.js");require("../../../context/EntityUpdatesContextInstance.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("remark-emoji");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityFieldChange/ActivityFieldChange.styled.cjs.js");require("../../Feed/components/ActivityFieldChange/FieldValue.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../Feed/components/FeedSearchFilter.cjs.js");require("@tanstack/react-virtual");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/EnumCellValue.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/MarkdownWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../widgets/LinksWidget.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("./ProjectTableContextInstance.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");require("../components/HeaderActionButton.cjs.js");require("./ProjectTableQueriesContext.cjs.js");require("./ClipboardContext.cjs.js");require("./SelectionCellsContext.cjs.js");require("./ProjectDataContextInstance.cjs.js");require("./CellEditingContext.cjs.js");require("../../NewEntity/components/NewEntity.cjs.js");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContextInstance.cjs.js");require("../../Slicer/components/SlicerDropdownFallback.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("react-redux");require("../../NewEntity/context/NewEntityContextInstance.cjs.js");require("../../NewEntity/components/NewEntityForm.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../components/TableFooterRow.cjs.js");require("./SelectedRowsContext.cjs.js");require("./DetailsPanelEntityContext.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../Views/context/ViewsContextInstance.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../ListTable/ListTableRow.cjs.js");require("../../ListTable/ListTable.styled.cjs.js");require("../../../context/DeleteEntitiesContext.cjs.js");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/InfoMessage/InfoMessage.cjs.js");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("react-router-dom");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/CustomDateRangeDialog.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/SyncButton/SyncButton.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContextInstance.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../components/ColumnHeaderMenuUI.cjs.js");const V=require("../utils/checkColumnVisibility.cjs.js"),Se=({children:j,config:k,onChange:H,defaultColumnVisibility:O})=>{const N=l.useRef([]),P=l.useRef(null),f=l.useRef(null),w=l.useRef(null),I=l.useRef(void 0),S=l.useRef(null),[p,g]=l.useState(null),[D,b]=l.useState(null),[G,L]=l.useState(null),K=e=>{N.current=Array.from(new Set(e))},n=e=>{const r=N.current,u=new Set([d.DRAG_HANDLE_COLUMN_ID,d.ROW_SELECTION_COLUMN_ID]);if(r.length>0){const i={...e.columnVisibility};r.forEach(m=>{!u.has(m)&&i[m]===void 0&&(i[m]=V.checkColumnVisibility({},m,O))}),u.forEach(m=>delete i[m]);const c=(e.columnOrder??[]).filter(m=>!u.has(m));H({...e,columnVisibility:i,columnOrder:c},r)}else H(e,r)},q=k,{columnOrder:J=[],columnPinning:Q={},columnVisibility:X={},columnSizing:s={},sorting:Y=[],groupBy:y,groupByConfig:v={},rowHeight:a=34,columnSummaries:x={},columnSummaryScopes:z={},columnSummaryFormats:A={}}=q||{};I.current!==a&&I.current!==void 0&&(D!==null&&b(null),f.current&&(clearTimeout(f.current),f.current=null)),I.current=a;const Z=D??a,T=[...Y],t=[...G??[...J]],o={...Q},E=["thumbnail","name","subType","status","tags"];if(E.forEach((e,r)=>{if(!t.includes(e)){const u=E[r-1],i=E[r+1];if(!u||!t.includes(u))t.unshift(e);else{const c=t.indexOf(u);t.splice(c+1,0,e)}i&&o?.left&&o?.left.includes(i)&&(o.left=[e,...o?.left||[]])}}),y&&y.id!=="folder"){if(!o.left?.includes("name"))o.left=["name",...o?.left||[]];else{const e=o.left.filter(r=>r!=="name");o.left=["name",...e]}if(t.includes("name")){const e=t.indexOf("name");t.splice(e,1)}t.unshift("name")}t.unshift(d.DRAG_HANDLE_COLUMN_ID,d.ROW_SELECTION_COLUMN_ID);const C={...X};y&&!C.name&&(C.name=!0);const U=e=>{n({...q,columnVisibility:e})},W=e=>{n({...q,columnOrder:e})},B=e=>{n({...q,columnPinning:e})},_=p||s,M=e=>{g(e),P.current&&clearTimeout(P.current),P.current=setTimeout(()=>{n({...q,columnSizing:e}),g(null)},500)},$=e=>{const r={...o},i=(r.left||[]).filter(c=>V.checkColumnVisibility(e,c,O));return{...r,left:i}},ee=e=>{const r={...o},u=r.left||[],i=e.filter(c=>u.includes(c));return{...r,left:i}},re=e=>[...t].sort((r,u)=>{const i=e.left?.includes(r)?1:0;return(e.left?.includes(u)?1:0)-i}),ie=e=>{const r=$(e);n({...q,columnVisibility:e,columnPinning:r})},ue=e=>{const r=e.filter(i=>i!==d.DRAG_HANDLE_COLUMN_ID&&i!==d.ROW_SELECTION_COLUMN_ID),u=ee(r);L(r),w.current&&clearTimeout(w.current),w.current=setTimeout(()=>{n({...q,columnOrder:r,columnPinning:u}),L(null)},300)},ne=e=>{const r=re(e);n({...q,columnOrder:r,columnPinning:e})},F=e=>{n({...q,sorting:e})},qe=(e,r)=>{n({...q,columnSummaries:{...x,[e]:r}})},te=(e,r)=>{n({...q,columnSummaryScopes:{...z,[e]:r}})},oe=(e,r)=>{n({...q,columnSummaryFormats:{...A,[e]:r}})},ce=e=>{n({...q,groupBy:e})},le=e=>{n({...q,groupByConfig:{...v,...e}})},se=l.useCallback(e=>{if(S.current===null){const u=s.thumbnail||63,i=a||34;S.current=u/i}const r=S.current*e;b(e),g({...p||s,thumbnail:r})},[s,a]),me=l.useCallback(e=>{const c=(s.thumbnail||63)/(a||34)*e;b(e),g({...p||s,thumbnail:c}),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{n({...q,rowHeight:e,columnSizing:{...s,thumbnail:c}}),b(null),g(null),S.current=null},300)},[q,n,s,a,p]),ae=e=>{const r=typeof e=="function"?e(C):e,u={};Object.keys(r).forEach(i=>{const c=V.checkColumnVisibility({},i,O);r[i]!==c&&(u[i]=r[i])}),!h.isEqual(u,C)&&U(u)},fe=e=>{const r=R.functionalUpdate(e,o);h.isEqual(r,o)||B(r)},de=e=>{const r=R.functionalUpdate(e,t);h.isEqual(r,t)||W(r)},ge=e=>{const r=R.functionalUpdate(e,_);h.isEqual(r,_)||M(r)},Ce=e=>{const r=R.functionalUpdate(e,T);h.isEqual(r,T)||F(r)};return he.jsxRuntimeExports.jsx(Oe.ColumnSettingsContext.Provider,{value:{setAllColumns:K,columnVisibility:C,defaultColumnVisibility:O,setColumnVisibility:U,updateColumnVisibility:ie,columnVisibilityOnChange:ae,columnPinning:o,setColumnPinning:B,updateColumnPinning:ne,columnPinningOnChange:fe,columnOrder:t,setColumnOrder:W,updateColumnOrder:ue,columnOrderOnChange:de,columnSizing:_,setColumnSizing:M,columnSizingOnChange:ge,columnSummaries:x,updateColumnSummary:qe,columnSummaryScopes:z,updateColumnSummaryScope:te,columnSummaryFormats:A,updateColumnSummaryFormat:oe,sorting:T,updateSorting:F,sortingOnChange:Ce,groupBy:y,updateGroupBy:ce,groupByConfig:v,updateGroupByConfig:le,rowHeight:Z,updateRowHeight:se,updateRowHeightWithPersistence:me,setColumnsConfig:e=>n(e)},children:j})};exports.ColumnSettingsProvider=Se;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const he=require("../../../../../_virtual/jsx-runtime.cjs.js"),s=require("react"),R=require("@tanstack/react-table"),Oe=require("./ColumnSettingsContext.cjs.js"),h=require("lodash"),d=require("../constants.cjs.js");require("@ynput/ayon-react-components");require("../../../components/SearchFilter/filterDates.cjs.js");require("date-fns");require("short-uuid");const Se=require("../utils/columnIds.cjs.js");require("react-toastify");require("uuid");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../util/pubsub.cjs.js");require("clsx");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("react-router-dom");require("./CellEditingContext.cjs.js");require("./SelectionCellsContext.cjs.js");require("./ProjectTableQueriesContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("./ProjectTableContextInstance.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/bundles/getBundles.cjs.js");require("../../../api/queries/bundles/updateBundles.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/columnStats/groupCounts.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/listItemsColumnStats.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("./ClipboardContext.cjs.js");require("./SelectedRowsContext.cjs.js");require("./DetailsPanelEntityContext.cjs.js");;/* empty css */require("../../ContextMenu/ContextMenuContext.cjs.js");require("../../../context/DeleteEntitiesContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("./ProjectDataContextInstance.cjs.js");require("../../../context/ProjectFoldersContextInstance.cjs.js");require("../buildTreeTableColumns.cjs.js");const V=require("../utils/checkColumnVisibility.cjs.js"),pe=({children:j,config:k,onChange:H,defaultColumnVisibility:O})=>{const N=s.useRef([]),P=s.useRef(null),f=s.useRef(null),I=s.useRef(null),w=s.useRef(void 0),S=s.useRef(null),[p,g]=s.useState(null),[D,b]=s.useState(null),[G,L]=s.useState(null),K=e=>{N.current=Array.from(new Set(e))},u=e=>{const r=N.current,i=new Set([d.DRAG_HANDLE_COLUMN_ID,d.ROW_SELECTION_COLUMN_ID]);if(r.length>0){const n={...e.columnVisibility};r.forEach(q=>{!i.has(q)&&n[q]===void 0&&(n[q]=V.checkColumnVisibility({},q,O))}),i.forEach(q=>delete n[q]);const c=(e.columnOrder??[]).filter(q=>!i.has(q));H({...e,columnVisibility:n,columnOrder:c},r)}else H(e,r)},t=Se.normalizeColumnsConfig(k),{columnOrder:J=[],columnPinning:Q={},columnVisibility:X={},columnSizing:m={},sorting:Y=[],groupBy:y,groupByConfig:z={},rowHeight:a=34,columnSummaries:v={},columnSummaryScopes:x={},columnSummaryFormats:A={}}=t||{};w.current!==a&&w.current!==void 0&&(D!==null&&b(null),f.current&&(clearTimeout(f.current),f.current=null)),w.current=a;const Z=D??a,T=[...Y],o=[...G??[...J]],l={...Q},E=["thumbnail","name","subType","status","tags"];if(E.forEach((e,r)=>{if(!o.includes(e)){const i=E[r-1],n=E[r+1];if(!i||!o.includes(i))o.unshift(e);else{const c=o.indexOf(i);o.splice(c+1,0,e)}n&&l?.left&&l?.left.includes(n)&&(l.left=[e,...l?.left||[]])}}),y&&y.id!=="folder"){if(!l.left?.includes("name"))l.left=["name",...l?.left||[]];else{const e=l.left.filter(r=>r!=="name");l.left=["name",...e]}if(o.includes("name")){const e=o.indexOf("name");o.splice(e,1)}o.unshift("name")}o.unshift(d.DRAG_HANDLE_COLUMN_ID,d.ROW_SELECTION_COLUMN_ID);const C={...X};y&&!C.name&&(C.name=!0);const U=e=>{u({...t,columnVisibility:e})},W=e=>{u({...t,columnOrder:e})},B=e=>{u({...t,columnPinning:e})},_=p||m,M=e=>{g(e),P.current&&clearTimeout(P.current),P.current=setTimeout(()=>{u({...t,columnSizing:e}),g(null)},500)},$=e=>{const r={...l},n=(r.left||[]).filter(c=>V.checkColumnVisibility(e,c,O));return{...r,left:n}},ee=e=>{const r={...l},i=r.left||[],n=e.filter(c=>i.includes(c));return{...r,left:n}},re=e=>[...o].sort((r,i)=>{const n=e.left?.includes(r)?1:0;return(e.left?.includes(i)?1:0)-n}),ne=e=>{const r=$(e);u({...t,columnVisibility:e,columnPinning:r})},ie=e=>{const r=e.filter(n=>n!==d.DRAG_HANDLE_COLUMN_ID&&n!==d.ROW_SELECTION_COLUMN_ID),i=ee(r);L(r),I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{u({...t,columnOrder:r,columnPinning:i}),L(null)},300)},ue=e=>{const r=re(e);u({...t,columnOrder:r,columnPinning:e})},F=e=>{u({...t,sorting:e})},te=(e,r)=>{u({...t,columnSummaries:{...v,[e]:r}})},oe=(e,r)=>{u({...t,columnSummaryScopes:{...x,[e]:r}})},le=(e,r)=>{u({...t,columnSummaryFormats:{...A,[e]:r}})},ce=e=>{u({...t,groupBy:e})},se=e=>{u({...t,groupByConfig:{...z,...e}})},me=s.useCallback(e=>{if(S.current===null){const i=m.thumbnail||63,n=a||34;S.current=i/n}const r=S.current*e;b(e),g({...p||m,thumbnail:r})},[m,a]),qe=s.useCallback(e=>{const c=(m.thumbnail||63)/(a||34)*e;b(e),g({...p||m,thumbnail:c}),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{u({...t,rowHeight:e,columnSizing:{...m,thumbnail:c}}),b(null),g(null),S.current=null},300)},[t,u,m,a,p]),ae=e=>{const r=typeof e=="function"?e(C):e,i={};Object.keys(r).forEach(n=>{const c=V.checkColumnVisibility({},n,O);r[n]!==c&&(i[n]=r[n])}),!h.isEqual(i,C)&&U(i)},fe=e=>{const r=R.functionalUpdate(e,l);h.isEqual(r,l)||B(r)},de=e=>{const r=R.functionalUpdate(e,o);h.isEqual(r,o)||W(r)},ge=e=>{const r=R.functionalUpdate(e,_);h.isEqual(r,_)||M(r)},Ce=e=>{const r=R.functionalUpdate(e,T);h.isEqual(r,T)||F(r)};return he.jsxRuntimeExports.jsx(Oe.ColumnSettingsContext.Provider,{value:{setAllColumns:K,columnVisibility:C,defaultColumnVisibility:O,setColumnVisibility:U,updateColumnVisibility:ne,columnVisibilityOnChange:ae,columnPinning:l,setColumnPinning:B,updateColumnPinning:ue,columnPinningOnChange:fe,columnOrder:o,setColumnOrder:W,updateColumnOrder:ie,columnOrderOnChange:de,columnSizing:_,setColumnSizing:M,columnSizingOnChange:ge,columnSummaries:v,updateColumnSummary:te,columnSummaryScopes:x,updateColumnSummaryScope:oe,columnSummaryFormats:A,updateColumnSummaryFormat:le,sorting:T,updateSorting:F,sortingOnChange:Ce,groupBy:y,updateGroupBy:ce,groupByConfig:z,updateGroupByConfig:se,rowHeight:Z,updateRowHeight:me,updateRowHeightWithPersistence:qe,setColumnsConfig:e=>u(e)},children:j})};exports.ColumnSettingsProvider=pe;
2
2
  //# sourceMappingURL=ColumnSettingsProvider.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSettingsProvider.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ColumnSettingsProvider.tsx"],"sourcesContent":["import React, { ReactNode, useState } from 'react'\nimport {\n ColumnOrderState,\n ColumnPinningState,\n functionalUpdate,\n OnChangeFn,\n VisibilityState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ColumnsConfig, ColumnSettingsContext, TableGroupBy } from './ColumnSettingsContext'\nimport { GroupByConfig } from '../components/GroupSettingsFallback'\nimport { SummaryCalc, SummaryFormat, RowScope } from '../types/summaryTypes'\nimport { isEqual } from 'lodash'\nimport { checkColumnVisibility } from '../utils'\nimport { ROW_SELECTION_COLUMN_ID, DRAG_HANDLE_COLUMN_ID } from '../constants'\n\ninterface ColumnSettingsProviderProps {\n children: ReactNode\n config?: Record<string, any>\n onChange: (config: ColumnsConfig, allColumnIds?: string[]) => void\n defaultColumnVisibility?: VisibilityState\n}\n\nexport const ColumnSettingsProvider: React.FC<ColumnSettingsProviderProps> = ({\n children,\n config,\n onChange,\n defaultColumnVisibility,\n}) => {\n const allColumnsRef = React.useRef<string[]>([])\n const resizingTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n const rowHeightTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n const columnOrderTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n const prevRowHeightRef = React.useRef<number | undefined>(undefined)\n const lockedAspectRatioRef = React.useRef<number | null>(null)\n // Internal state for immediate updates (similar to column sizing)\n const [internalColumnSizing, setInternalColumnSizing] = useState<ColumnSizingState | null>(null)\n const [internalRowHeight, setInternalRowHeight] = useState<number | null>(null)\n const [internalColumnOrder, setInternalColumnOrder] = useState<ColumnOrderState | null>(null)\n\n const setAllColumns = (allColumnIds: string[]) => {\n allColumnsRef.current = Array.from(new Set(allColumnIds))\n }\n const onChangeWithColumns = (next: ColumnsConfig) => {\n const allKnownIds = allColumnsRef.current\n // Expand sparse columnVisibility to explicit values for all known columns so that\n // \"undefined\" is never ambiguous when columns are saved and reloaded.\n // Special columns (drag-handle, row-selection) are always injected by the provider,\n // so they must never be persisted — strip them from visibility and order entirely.\n const specialIds = new Set([DRAG_HANDLE_COLUMN_ID, ROW_SELECTION_COLUMN_ID])\n if (allKnownIds.length > 0) {\n const resolvedVisibility = { ...next.columnVisibility }\n allKnownIds.forEach((id) => {\n if (!specialIds.has(id) && resolvedVisibility[id] === undefined) {\n resolvedVisibility[id] = checkColumnVisibility({}, id, defaultColumnVisibility)\n }\n })\n // Remove special columns from visibility and order before persisting\n specialIds.forEach((id) => delete resolvedVisibility[id])\n const resolvedOrder = (next.columnOrder ?? []).filter((id) => !specialIds.has(id))\n onChange(\n { ...next, columnVisibility: resolvedVisibility, columnOrder: resolvedOrder },\n allKnownIds,\n )\n } else {\n onChange(next, allKnownIds)\n }\n }\n const columnsConfig = config as ColumnsConfig\n\n const {\n columnOrder: columnOrderInit = [],\n columnPinning: columnPinningInit = {},\n columnVisibility: columnVisibilityInit = {},\n columnSizing: columnsSizingExternal = {},\n sorting: sortingInit = [],\n groupBy,\n groupByConfig = {},\n rowHeight: configRowHeight = 34,\n columnSummaries: columnSummariesInit = {},\n columnSummaryScopes: columnSummaryScopesInit = {},\n columnSummaryFormats: columnSummaryFormatsInit = {},\n } = columnsConfig || {}\n\n // Clear internal row height when config changes (e.g., when switching views)\n // This happens during render, before the component uses the value\n if (prevRowHeightRef.current !== configRowHeight && prevRowHeightRef.current !== undefined) {\n // Config changed, clear internal state\n if (internalRowHeight !== null) {\n setInternalRowHeight(null)\n }\n // Clear any pending timeout\n if (rowHeightTimeoutRef.current) {\n clearTimeout(rowHeightTimeoutRef.current)\n rowHeightTimeoutRef.current = null\n }\n }\n prevRowHeightRef.current = configRowHeight\n\n // Use internal row height during adjustments, otherwise use config value\n const rowHeight = internalRowHeight ?? configRowHeight\n\n const sorting = [...sortingInit]\n // Use internal column order for immediate UI updates, otherwise use config value\n const columnOrderBase = internalColumnOrder ?? [...columnOrderInit]\n const columnOrder = [...columnOrderBase]\n const columnPinning = { ...columnPinningInit }\n const defaultOrder = ['thumbnail', 'name', 'subType', 'status', 'tags']\n // for each default column, if it is not in the columnOrder, find the index of the column before it, if none, add to beginning\n defaultOrder.forEach((col, i) => {\n if (!columnOrder.includes(col)) {\n const defaultBefore = defaultOrder[i - 1]\n const columnAfter = defaultOrder[i + 1]\n if (!defaultBefore || !columnOrder.includes(defaultBefore)) {\n // add to beginning\n columnOrder.unshift(col)\n } else {\n // find the index of that column in the columnOrder\n const index = columnOrder.indexOf(defaultBefore)\n // add the item after that column\n columnOrder.splice(index + 1, 0, col)\n }\n if (columnAfter && columnPinning?.left && columnPinning?.left.includes(columnAfter)) {\n // pin the column\n columnPinning.left = [col, ...(columnPinning?.left || [])]\n }\n }\n })\n\n // if we are in grouping mode (except folder grouping), always pin the name column\n // and ensure it is first in column order\n if (groupBy && groupBy.id !== 'folder') {\n // ensure name column is pinned and first in pinning order\n if (!columnPinning.left?.includes('name')) {\n columnPinning.left = ['name', ...(columnPinning?.left || [])]\n } else {\n // name is already pinned, but ensure it's first\n const filteredPinned = columnPinning.left.filter((col) => col !== 'name')\n columnPinning.left = ['name', ...filteredPinned]\n }\n\n // ensure name is first in column order\n if (columnOrder.includes('name')) {\n // remove name from its current position\n const nameIndex = columnOrder.indexOf('name')\n columnOrder.splice(nameIndex, 1)\n }\n // add name to the beginning\n columnOrder.unshift('name')\n }\n\n // add drag handle and selection columns to the beginning of the column order\n columnOrder.unshift(...[DRAG_HANDLE_COLUMN_ID, ROW_SELECTION_COLUMN_ID])\n\n // VISIBILITY STATE MUTATIONS\n const columnVisibility = { ...columnVisibilityInit }\n // if we are in grouping mode, name column must always be visible\n if (groupBy && !columnVisibility.name) {\n columnVisibility.name = true\n }\n\n // DIRECT STATE UPDATES - no side effects\n const setColumnVisibility = (visibility: VisibilityState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnVisibility: visibility,\n })\n }\n\n const setColumnOrder = (order: ColumnOrderState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: order,\n })\n }\n\n const setColumnPinning = (pinning: ColumnPinningState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnPinning: pinning,\n })\n }\n\n // use internalColumnSizing if it exists, otherwise use the external column sizing\n const columnSizing = internalColumnSizing || columnsSizingExternal\n\n const setColumnSizing = (sizing: ColumnSizingState) => {\n setInternalColumnSizing(sizing)\n\n // if there is a timeout already set, clear it\n if (resizingTimeoutRef.current) {\n clearTimeout(resizingTimeoutRef.current)\n }\n // set a timeout that tracks if the column sizing has finished\n resizingTimeoutRef.current = setTimeout(() => {\n // we have finished resizing now!\n // update the external column sizing\n onChangeWithColumns({\n ...columnsConfig,\n columnSizing: sizing,\n })\n // reset the internal column sizing to not be used anymore\n setInternalColumnSizing(null)\n }, 500)\n }\n\n // SIDE EFFECT UTILITIES\n const togglePinningOnVisibilityChange = (visibility: VisibilityState) => {\n // ensure that any columns that are now hidden are removed from the pinning\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n\n const newPinnedColumns = pinnedColumns.filter((col) =>\n checkColumnVisibility(visibility, col, defaultColumnVisibility),\n )\n\n return {\n ...newPinning,\n left: newPinnedColumns,\n }\n }\n\n const updatePinningOrderOnOrderChange = (order: ColumnOrderState) => {\n // ensure that the column pinning is in the order of the column order\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const pinnedColumnsOrder = order.filter((col) => pinnedColumns.includes(col))\n\n return {\n ...newPinning,\n left: pinnedColumnsOrder,\n }\n }\n\n const updateOrderOnPinningChange = (pinning: ColumnPinningState) => {\n // we resort the column order based on the pinning\n return [...columnOrder].sort((a, b) => {\n const aPinned = pinning.left?.includes(a) ? 1 : 0\n const bPinned = pinning.left?.includes(b) ? 1 : 0\n return bPinned - aPinned\n })\n }\n\n // UPDATE METHODS WITH SIDE EFFECTS\n const updateColumnVisibility = (visibility: VisibilityState) => {\n const newPinning = togglePinningOnVisibilityChange(visibility)\n onChangeWithColumns({\n ...columnsConfig,\n columnVisibility: visibility,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnOrder = (order: ColumnOrderState) => {\n // Filter out special columns that are added dynamically\n const filteredOrder = order.filter(\n (id) => id !== DRAG_HANDLE_COLUMN_ID && id !== ROW_SELECTION_COLUMN_ID,\n )\n\n const newPinning = updatePinningOrderOnOrderChange(filteredOrder)\n\n // Update UI immediately (optimistic)\n setInternalColumnOrder(filteredOrder)\n\n // Clear any existing timeout to debounce API calls\n if (columnOrderTimeoutRef.current) {\n clearTimeout(columnOrderTimeoutRef.current)\n }\n\n // Debounce API call to avoid excessive requests\n columnOrderTimeoutRef.current = setTimeout(() => {\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: filteredOrder,\n columnPinning: newPinning,\n })\n // Clear internal state after persistence\n setInternalColumnOrder(null)\n }, 300)\n }\n\n const updateColumnPinning = (pinning: ColumnPinningState) => {\n const newOrder = updateOrderOnPinningChange(pinning)\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: newOrder,\n columnPinning: pinning,\n })\n }\n\n const updateSorting = (sortingState: SortingState) => {\n onChangeWithColumns({\n ...columnsConfig,\n sorting: sortingState,\n })\n }\n\n const updateColumnSummary = (columnId: string, calc: SummaryCalc) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnSummaries: { ...columnSummariesInit, [columnId]: calc },\n })\n }\n\n const updateColumnSummaryScope = (columnId: string, scope: RowScope) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnSummaryScopes: { ...columnSummaryScopesInit, [columnId]: scope },\n })\n }\n\n const updateColumnSummaryFormat = (columnId: string, format: SummaryFormat) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnSummaryFormats: { ...columnSummaryFormatsInit, [columnId]: format },\n })\n }\n\n const updateGroupBy = (groupBy: TableGroupBy | undefined) => {\n onChangeWithColumns({\n ...columnsConfig,\n groupBy: groupBy,\n })\n }\n\n const updateGroupByConfig = (config: GroupByConfig) => {\n onChangeWithColumns({\n ...columnsConfig,\n groupByConfig: {\n ...groupByConfig,\n ...config,\n },\n })\n }\n\n // Update row height for immediate UI feedback (no API call)\n const updateRowHeight = React.useCallback(\n (newRowHeight: number) => {\n // Lock the aspect ratio on first call if not already locked\n if (lockedAspectRatioRef.current === null) {\n const currentThumbnailWidth = columnsSizingExternal.thumbnail || 63\n const currentRowHeight = configRowHeight || 34\n lockedAspectRatioRef.current = currentThumbnailWidth / currentRowHeight\n }\n const newThumbnailWidth = lockedAspectRatioRef.current * newRowHeight\n\n setInternalRowHeight(newRowHeight)\n setInternalColumnSizing({\n ...(internalColumnSizing || columnsSizingExternal),\n thumbnail: newThumbnailWidth,\n })\n },\n [columnsSizingExternal, configRowHeight],\n )\n\n // Update row height and persist to API\n const updateRowHeightWithPersistence = React.useCallback(\n (newRowHeight: number) => {\n const currentThumbnailWidth = columnsSizingExternal.thumbnail || 63\n const currentRowHeight = configRowHeight || 34\n const currentRatio = currentThumbnailWidth / currentRowHeight\n\n const newThumbnailWidth = currentRatio * newRowHeight\n\n // Update UI immediately\n setInternalRowHeight(newRowHeight)\n setInternalColumnSizing({\n ...(internalColumnSizing || columnsSizingExternal),\n thumbnail: newThumbnailWidth,\n })\n\n // Clear any existing timeout to debounce API calls\n if (rowHeightTimeoutRef.current) {\n clearTimeout(rowHeightTimeoutRef.current)\n }\n\n // Debounce API call to avoid excessive requests\n rowHeightTimeoutRef.current = setTimeout(() => {\n // Persist to API\n onChangeWithColumns({\n ...columnsConfig,\n rowHeight: newRowHeight,\n columnSizing: {\n ...columnsSizingExternal,\n thumbnail: newThumbnailWidth,\n },\n })\n\n // Clean up internal state after API call completes\n setInternalRowHeight(null)\n setInternalColumnSizing(null)\n lockedAspectRatioRef.current = null\n }, 300)\n },\n [\n columnsConfig,\n onChangeWithColumns,\n columnsSizingExternal,\n configRowHeight,\n internalColumnSizing,\n ],\n )\n\n // Remove redundant local updater functions in favor of unified updaters with all columns\n\n // ON-CHANGE HANDLERS (TanStack-compatible)\n const columnVisibilityOnChange: OnChangeFn<VisibilityState> = (updater) => {\n const nextFull = typeof updater === 'function' ? updater(columnVisibility) : updater\n\n // Calculate sparse version: only keys that are different from defaults\n const sparseNext: VisibilityState = {}\n Object.keys(nextFull).forEach((key) => {\n const defaultValue = checkColumnVisibility({}, key, defaultColumnVisibility)\n if (nextFull[key] !== defaultValue) {\n sparseNext[key] = nextFull[key]\n }\n })\n\n if (isEqual(sparseNext, columnVisibility)) return\n setColumnVisibility(sparseNext)\n }\n\n const columnPinningOnChange: OnChangeFn<ColumnPinningState> = (updater) => {\n const newPinning = functionalUpdate(updater, columnPinning)\n if (isEqual(newPinning, columnPinning)) return\n setColumnPinning(newPinning)\n }\n\n const columnOrderOnChange: OnChangeFn<ColumnOrderState> = (updater) => {\n const newOrder = functionalUpdate(updater, columnOrder)\n if (isEqual(newOrder, columnOrder)) return\n setColumnOrder(newOrder)\n }\n\n const columnSizingOnChange: OnChangeFn<ColumnSizingState> = (updater) => {\n const newSizing = functionalUpdate(updater, columnSizing)\n if (isEqual(newSizing, columnSizing)) return\n setColumnSizing(newSizing)\n }\n\n const sortingOnChange: OnChangeFn<SortingState> = (updater) => {\n const newSorting = functionalUpdate(updater, sorting)\n if (isEqual(newSorting, sorting)) return\n updateSorting(newSorting)\n }\n\n return (\n <ColumnSettingsContext.Provider\n value={{\n // all columns ref\n setAllColumns,\n // column visibility\n columnVisibility,\n defaultColumnVisibility,\n setColumnVisibility,\n updateColumnVisibility,\n columnVisibilityOnChange,\n // column pinning\n columnPinning,\n setColumnPinning,\n updateColumnPinning,\n columnPinningOnChange,\n // column order\n columnOrder,\n setColumnOrder,\n updateColumnOrder,\n columnOrderOnChange,\n // column sizing\n columnSizing,\n setColumnSizing,\n columnSizingOnChange,\n // column summary calc\n columnSummaries: columnSummariesInit,\n updateColumnSummary,\n // column summary row scope\n columnSummaryScopes: columnSummaryScopesInit,\n updateColumnSummaryScope,\n // column summary display format\n columnSummaryFormats: columnSummaryFormatsInit,\n updateColumnSummaryFormat,\n // sorting\n sorting,\n updateSorting,\n sortingOnChange,\n // group by\n groupBy,\n updateGroupBy,\n groupByConfig,\n updateGroupByConfig,\n // row height\n rowHeight,\n updateRowHeight,\n updateRowHeightWithPersistence,\n\n // global change\n setColumnsConfig: (config: ColumnsConfig) => onChangeWithColumns(config),\n }}\n >\n {children}\n </ColumnSettingsContext.Provider>\n )\n}\n"],"names":["ColumnSettingsProvider","children","config","onChange","defaultColumnVisibility","allColumnsRef","React","resizingTimeoutRef","rowHeightTimeoutRef","columnOrderTimeoutRef","prevRowHeightRef","lockedAspectRatioRef","internalColumnSizing","setInternalColumnSizing","useState","internalRowHeight","setInternalRowHeight","internalColumnOrder","setInternalColumnOrder","setAllColumns","allColumnIds","onChangeWithColumns","next","allKnownIds","specialIds","DRAG_HANDLE_COLUMN_ID","ROW_SELECTION_COLUMN_ID","resolvedVisibility","id","checkColumnVisibility","resolvedOrder","columnsConfig","columnOrderInit","columnPinningInit","columnVisibilityInit","columnsSizingExternal","sortingInit","groupBy","groupByConfig","configRowHeight","columnSummariesInit","columnSummaryScopesInit","columnSummaryFormatsInit","rowHeight","sorting","columnOrder","columnPinning","defaultOrder","col","i","defaultBefore","columnAfter","index","filteredPinned","nameIndex","columnVisibility","setColumnVisibility","visibility","setColumnOrder","order","setColumnPinning","pinning","columnSizing","setColumnSizing","sizing","togglePinningOnVisibilityChange","newPinning","newPinnedColumns","updatePinningOrderOnOrderChange","pinnedColumns","pinnedColumnsOrder","updateOrderOnPinningChange","a","b","aPinned","updateColumnVisibility","updateColumnOrder","filteredOrder","updateColumnPinning","newOrder","updateSorting","sortingState","updateColumnSummary","columnId","calc","updateColumnSummaryScope","scope","updateColumnSummaryFormat","format","updateGroupBy","updateGroupByConfig","updateRowHeight","newRowHeight","currentThumbnailWidth","currentRowHeight","newThumbnailWidth","updateRowHeightWithPersistence","columnVisibilityOnChange","updater","nextFull","sparseNext","key","defaultValue","isEqual","columnPinningOnChange","functionalUpdate","columnOrderOnChange","columnSizingOnChange","newSizing","sortingOnChange","newSorting","jsx","ColumnSettingsContext"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnSettingsProvider.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ColumnSettingsProvider.tsx"],"sourcesContent":["import React, { ReactNode, useState } from 'react'\nimport {\n ColumnOrderState,\n ColumnPinningState,\n functionalUpdate,\n OnChangeFn,\n VisibilityState,\n ColumnSizingState,\n SortingState,\n} from '@tanstack/react-table'\nimport { ColumnsConfig, ColumnSettingsContext, TableGroupBy } from './ColumnSettingsContext'\nimport { GroupByConfig } from '../components/GroupSettingsFallback'\nimport { SummaryCalc, SummaryFormat, RowScope } from '../types/summaryTypes'\nimport { isEqual } from 'lodash'\nimport { checkColumnVisibility } from '../utils'\nimport { normalizeColumnsConfig } from '../utils/columnIds'\nimport { ROW_SELECTION_COLUMN_ID, DRAG_HANDLE_COLUMN_ID } from '../constants'\n\ninterface ColumnSettingsProviderProps {\n children: ReactNode\n config?: Record<string, any>\n onChange: (config: ColumnsConfig, allColumnIds?: string[]) => void\n defaultColumnVisibility?: VisibilityState\n}\n\nexport const ColumnSettingsProvider: React.FC<ColumnSettingsProviderProps> = ({\n children,\n config,\n onChange,\n defaultColumnVisibility,\n}) => {\n const allColumnsRef = React.useRef<string[]>([])\n const resizingTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n const rowHeightTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n const columnOrderTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n const prevRowHeightRef = React.useRef<number | undefined>(undefined)\n const lockedAspectRatioRef = React.useRef<number | null>(null)\n // Internal state for immediate updates (similar to column sizing)\n const [internalColumnSizing, setInternalColumnSizing] = useState<ColumnSizingState | null>(null)\n const [internalRowHeight, setInternalRowHeight] = useState<number | null>(null)\n const [internalColumnOrder, setInternalColumnOrder] = useState<ColumnOrderState | null>(null)\n\n const setAllColumns = (allColumnIds: string[]) => {\n allColumnsRef.current = Array.from(new Set(allColumnIds))\n }\n const onChangeWithColumns = (next: ColumnsConfig) => {\n const allKnownIds = allColumnsRef.current\n // Expand sparse columnVisibility to explicit values for all known columns so that\n // \"undefined\" is never ambiguous when columns are saved and reloaded.\n // Special columns (drag-handle, row-selection) are always injected by the provider,\n // so they must never be persisted — strip them from visibility and order entirely.\n const specialIds = new Set([DRAG_HANDLE_COLUMN_ID, ROW_SELECTION_COLUMN_ID])\n if (allKnownIds.length > 0) {\n const resolvedVisibility = { ...next.columnVisibility }\n allKnownIds.forEach((id) => {\n if (!specialIds.has(id) && resolvedVisibility[id] === undefined) {\n resolvedVisibility[id] = checkColumnVisibility({}, id, defaultColumnVisibility)\n }\n })\n // Remove special columns from visibility and order before persisting\n specialIds.forEach((id) => delete resolvedVisibility[id])\n const resolvedOrder = (next.columnOrder ?? []).filter((id) => !specialIds.has(id))\n onChange(\n { ...next, columnVisibility: resolvedVisibility, columnOrder: resolvedOrder },\n allKnownIds,\n )\n } else {\n onChange(next, allKnownIds)\n }\n }\n const columnsConfig = normalizeColumnsConfig(config as ColumnsConfig | undefined)\n\n const {\n columnOrder: columnOrderInit = [],\n columnPinning: columnPinningInit = {},\n columnVisibility: columnVisibilityInit = {},\n columnSizing: columnsSizingExternal = {},\n sorting: sortingInit = [],\n groupBy,\n groupByConfig = {},\n rowHeight: configRowHeight = 34,\n columnSummaries: columnSummariesInit = {},\n columnSummaryScopes: columnSummaryScopesInit = {},\n columnSummaryFormats: columnSummaryFormatsInit = {},\n } = columnsConfig || {}\n\n // Clear internal row height when config changes (e.g., when switching views)\n // This happens during render, before the component uses the value\n if (prevRowHeightRef.current !== configRowHeight && prevRowHeightRef.current !== undefined) {\n // Config changed, clear internal state\n if (internalRowHeight !== null) {\n setInternalRowHeight(null)\n }\n // Clear any pending timeout\n if (rowHeightTimeoutRef.current) {\n clearTimeout(rowHeightTimeoutRef.current)\n rowHeightTimeoutRef.current = null\n }\n }\n prevRowHeightRef.current = configRowHeight\n\n // Use internal row height during adjustments, otherwise use config value\n const rowHeight = internalRowHeight ?? configRowHeight\n\n const sorting = [...sortingInit]\n // Use internal column order for immediate UI updates, otherwise use config value\n const columnOrderBase = internalColumnOrder ?? [...columnOrderInit]\n const columnOrder = [...columnOrderBase]\n const columnPinning = { ...columnPinningInit }\n const defaultOrder = ['thumbnail', 'name', 'subType', 'status', 'tags']\n // for each default column, if it is not in the columnOrder, find the index of the column before it, if none, add to beginning\n defaultOrder.forEach((col, i) => {\n if (!columnOrder.includes(col)) {\n const defaultBefore = defaultOrder[i - 1]\n const columnAfter = defaultOrder[i + 1]\n if (!defaultBefore || !columnOrder.includes(defaultBefore)) {\n // add to beginning\n columnOrder.unshift(col)\n } else {\n // find the index of that column in the columnOrder\n const index = columnOrder.indexOf(defaultBefore)\n // add the item after that column\n columnOrder.splice(index + 1, 0, col)\n }\n if (columnAfter && columnPinning?.left && columnPinning?.left.includes(columnAfter)) {\n // pin the column\n columnPinning.left = [col, ...(columnPinning?.left || [])]\n }\n }\n })\n\n // if we are in grouping mode (except folder grouping), always pin the name column\n // and ensure it is first in column order\n if (groupBy && groupBy.id !== 'folder') {\n // ensure name column is pinned and first in pinning order\n if (!columnPinning.left?.includes('name')) {\n columnPinning.left = ['name', ...(columnPinning?.left || [])]\n } else {\n // name is already pinned, but ensure it's first\n const filteredPinned = columnPinning.left.filter((col) => col !== 'name')\n columnPinning.left = ['name', ...filteredPinned]\n }\n\n // ensure name is first in column order\n if (columnOrder.includes('name')) {\n // remove name from its current position\n const nameIndex = columnOrder.indexOf('name')\n columnOrder.splice(nameIndex, 1)\n }\n // add name to the beginning\n columnOrder.unshift('name')\n }\n\n // add drag handle and selection columns to the beginning of the column order\n columnOrder.unshift(...[DRAG_HANDLE_COLUMN_ID, ROW_SELECTION_COLUMN_ID])\n\n // VISIBILITY STATE MUTATIONS\n const columnVisibility = { ...columnVisibilityInit }\n // if we are in grouping mode, name column must always be visible\n if (groupBy && !columnVisibility.name) {\n columnVisibility.name = true\n }\n\n // DIRECT STATE UPDATES - no side effects\n const setColumnVisibility = (visibility: VisibilityState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnVisibility: visibility,\n })\n }\n\n const setColumnOrder = (order: ColumnOrderState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: order,\n })\n }\n\n const setColumnPinning = (pinning: ColumnPinningState) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnPinning: pinning,\n })\n }\n\n // use internalColumnSizing if it exists, otherwise use the external column sizing\n const columnSizing = internalColumnSizing || columnsSizingExternal\n\n const setColumnSizing = (sizing: ColumnSizingState) => {\n setInternalColumnSizing(sizing)\n\n // if there is a timeout already set, clear it\n if (resizingTimeoutRef.current) {\n clearTimeout(resizingTimeoutRef.current)\n }\n // set a timeout that tracks if the column sizing has finished\n resizingTimeoutRef.current = setTimeout(() => {\n // we have finished resizing now!\n // update the external column sizing\n onChangeWithColumns({\n ...columnsConfig,\n columnSizing: sizing,\n })\n // reset the internal column sizing to not be used anymore\n setInternalColumnSizing(null)\n }, 500)\n }\n\n // SIDE EFFECT UTILITIES\n const togglePinningOnVisibilityChange = (visibility: VisibilityState) => {\n // ensure that any columns that are now hidden are removed from the pinning\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n\n const newPinnedColumns = pinnedColumns.filter((col) =>\n checkColumnVisibility(visibility, col, defaultColumnVisibility),\n )\n\n return {\n ...newPinning,\n left: newPinnedColumns,\n }\n }\n\n const updatePinningOrderOnOrderChange = (order: ColumnOrderState) => {\n // ensure that the column pinning is in the order of the column order\n const newPinning = { ...columnPinning }\n const pinnedColumns = newPinning.left || []\n const pinnedColumnsOrder = order.filter((col) => pinnedColumns.includes(col))\n\n return {\n ...newPinning,\n left: pinnedColumnsOrder,\n }\n }\n\n const updateOrderOnPinningChange = (pinning: ColumnPinningState) => {\n // we resort the column order based on the pinning\n return [...columnOrder].sort((a, b) => {\n const aPinned = pinning.left?.includes(a) ? 1 : 0\n const bPinned = pinning.left?.includes(b) ? 1 : 0\n return bPinned - aPinned\n })\n }\n\n // UPDATE METHODS WITH SIDE EFFECTS\n const updateColumnVisibility = (visibility: VisibilityState) => {\n const newPinning = togglePinningOnVisibilityChange(visibility)\n onChangeWithColumns({\n ...columnsConfig,\n columnVisibility: visibility,\n columnPinning: newPinning,\n })\n }\n\n const updateColumnOrder = (order: ColumnOrderState) => {\n // Filter out special columns that are added dynamically\n const filteredOrder = order.filter(\n (id) => id !== DRAG_HANDLE_COLUMN_ID && id !== ROW_SELECTION_COLUMN_ID,\n )\n\n const newPinning = updatePinningOrderOnOrderChange(filteredOrder)\n\n // Update UI immediately (optimistic)\n setInternalColumnOrder(filteredOrder)\n\n // Clear any existing timeout to debounce API calls\n if (columnOrderTimeoutRef.current) {\n clearTimeout(columnOrderTimeoutRef.current)\n }\n\n // Debounce API call to avoid excessive requests\n columnOrderTimeoutRef.current = setTimeout(() => {\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: filteredOrder,\n columnPinning: newPinning,\n })\n // Clear internal state after persistence\n setInternalColumnOrder(null)\n }, 300)\n }\n\n const updateColumnPinning = (pinning: ColumnPinningState) => {\n const newOrder = updateOrderOnPinningChange(pinning)\n onChangeWithColumns({\n ...columnsConfig,\n columnOrder: newOrder,\n columnPinning: pinning,\n })\n }\n\n const updateSorting = (sortingState: SortingState) => {\n onChangeWithColumns({\n ...columnsConfig,\n sorting: sortingState,\n })\n }\n\n const updateColumnSummary = (columnId: string, calc: SummaryCalc) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnSummaries: { ...columnSummariesInit, [columnId]: calc },\n })\n }\n\n const updateColumnSummaryScope = (columnId: string, scope: RowScope) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnSummaryScopes: { ...columnSummaryScopesInit, [columnId]: scope },\n })\n }\n\n const updateColumnSummaryFormat = (columnId: string, format: SummaryFormat) => {\n onChangeWithColumns({\n ...columnsConfig,\n columnSummaryFormats: { ...columnSummaryFormatsInit, [columnId]: format },\n })\n }\n\n const updateGroupBy = (groupBy: TableGroupBy | undefined) => {\n onChangeWithColumns({\n ...columnsConfig,\n groupBy: groupBy,\n })\n }\n\n const updateGroupByConfig = (config: GroupByConfig) => {\n onChangeWithColumns({\n ...columnsConfig,\n groupByConfig: {\n ...groupByConfig,\n ...config,\n },\n })\n }\n\n // Update row height for immediate UI feedback (no API call)\n const updateRowHeight = React.useCallback(\n (newRowHeight: number) => {\n // Lock the aspect ratio on first call if not already locked\n if (lockedAspectRatioRef.current === null) {\n const currentThumbnailWidth = columnsSizingExternal.thumbnail || 63\n const currentRowHeight = configRowHeight || 34\n lockedAspectRatioRef.current = currentThumbnailWidth / currentRowHeight\n }\n const newThumbnailWidth = lockedAspectRatioRef.current * newRowHeight\n\n setInternalRowHeight(newRowHeight)\n setInternalColumnSizing({\n ...(internalColumnSizing || columnsSizingExternal),\n thumbnail: newThumbnailWidth,\n })\n },\n [columnsSizingExternal, configRowHeight],\n )\n\n // Update row height and persist to API\n const updateRowHeightWithPersistence = React.useCallback(\n (newRowHeight: number) => {\n const currentThumbnailWidth = columnsSizingExternal.thumbnail || 63\n const currentRowHeight = configRowHeight || 34\n const currentRatio = currentThumbnailWidth / currentRowHeight\n\n const newThumbnailWidth = currentRatio * newRowHeight\n\n // Update UI immediately\n setInternalRowHeight(newRowHeight)\n setInternalColumnSizing({\n ...(internalColumnSizing || columnsSizingExternal),\n thumbnail: newThumbnailWidth,\n })\n\n // Clear any existing timeout to debounce API calls\n if (rowHeightTimeoutRef.current) {\n clearTimeout(rowHeightTimeoutRef.current)\n }\n\n // Debounce API call to avoid excessive requests\n rowHeightTimeoutRef.current = setTimeout(() => {\n // Persist to API\n onChangeWithColumns({\n ...columnsConfig,\n rowHeight: newRowHeight,\n columnSizing: {\n ...columnsSizingExternal,\n thumbnail: newThumbnailWidth,\n },\n })\n\n // Clean up internal state after API call completes\n setInternalRowHeight(null)\n setInternalColumnSizing(null)\n lockedAspectRatioRef.current = null\n }, 300)\n },\n [\n columnsConfig,\n onChangeWithColumns,\n columnsSizingExternal,\n configRowHeight,\n internalColumnSizing,\n ],\n )\n\n // Remove redundant local updater functions in favor of unified updaters with all columns\n\n // ON-CHANGE HANDLERS (TanStack-compatible)\n const columnVisibilityOnChange: OnChangeFn<VisibilityState> = (updater) => {\n const nextFull = typeof updater === 'function' ? updater(columnVisibility) : updater\n\n // Calculate sparse version: only keys that are different from defaults\n const sparseNext: VisibilityState = {}\n Object.keys(nextFull).forEach((key) => {\n const defaultValue = checkColumnVisibility({}, key, defaultColumnVisibility)\n if (nextFull[key] !== defaultValue) {\n sparseNext[key] = nextFull[key]\n }\n })\n\n if (isEqual(sparseNext, columnVisibility)) return\n setColumnVisibility(sparseNext)\n }\n\n const columnPinningOnChange: OnChangeFn<ColumnPinningState> = (updater) => {\n const newPinning = functionalUpdate(updater, columnPinning)\n if (isEqual(newPinning, columnPinning)) return\n setColumnPinning(newPinning)\n }\n\n const columnOrderOnChange: OnChangeFn<ColumnOrderState> = (updater) => {\n const newOrder = functionalUpdate(updater, columnOrder)\n if (isEqual(newOrder, columnOrder)) return\n setColumnOrder(newOrder)\n }\n\n const columnSizingOnChange: OnChangeFn<ColumnSizingState> = (updater) => {\n const newSizing = functionalUpdate(updater, columnSizing)\n if (isEqual(newSizing, columnSizing)) return\n setColumnSizing(newSizing)\n }\n\n const sortingOnChange: OnChangeFn<SortingState> = (updater) => {\n const newSorting = functionalUpdate(updater, sorting)\n if (isEqual(newSorting, sorting)) return\n updateSorting(newSorting)\n }\n\n return (\n <ColumnSettingsContext.Provider\n value={{\n // all columns ref\n setAllColumns,\n // column visibility\n columnVisibility,\n defaultColumnVisibility,\n setColumnVisibility,\n updateColumnVisibility,\n columnVisibilityOnChange,\n // column pinning\n columnPinning,\n setColumnPinning,\n updateColumnPinning,\n columnPinningOnChange,\n // column order\n columnOrder,\n setColumnOrder,\n updateColumnOrder,\n columnOrderOnChange,\n // column sizing\n columnSizing,\n setColumnSizing,\n columnSizingOnChange,\n // column summary calc\n columnSummaries: columnSummariesInit,\n updateColumnSummary,\n // column summary row scope\n columnSummaryScopes: columnSummaryScopesInit,\n updateColumnSummaryScope,\n // column summary display format\n columnSummaryFormats: columnSummaryFormatsInit,\n updateColumnSummaryFormat,\n // sorting\n sorting,\n updateSorting,\n sortingOnChange,\n // group by\n groupBy,\n updateGroupBy,\n groupByConfig,\n updateGroupByConfig,\n // row height\n rowHeight,\n updateRowHeight,\n updateRowHeightWithPersistence,\n\n // global change\n setColumnsConfig: (config: ColumnsConfig) => onChangeWithColumns(config),\n }}\n >\n {children}\n </ColumnSettingsContext.Provider>\n )\n}\n"],"names":["ColumnSettingsProvider","children","config","onChange","defaultColumnVisibility","allColumnsRef","React","resizingTimeoutRef","rowHeightTimeoutRef","columnOrderTimeoutRef","prevRowHeightRef","lockedAspectRatioRef","internalColumnSizing","setInternalColumnSizing","useState","internalRowHeight","setInternalRowHeight","internalColumnOrder","setInternalColumnOrder","setAllColumns","allColumnIds","onChangeWithColumns","next","allKnownIds","specialIds","DRAG_HANDLE_COLUMN_ID","ROW_SELECTION_COLUMN_ID","resolvedVisibility","id","checkColumnVisibility","resolvedOrder","columnsConfig","normalizeColumnsConfig","columnOrderInit","columnPinningInit","columnVisibilityInit","columnsSizingExternal","sortingInit","groupBy","groupByConfig","configRowHeight","columnSummariesInit","columnSummaryScopesInit","columnSummaryFormatsInit","rowHeight","sorting","columnOrder","columnPinning","defaultOrder","col","i","defaultBefore","columnAfter","index","filteredPinned","nameIndex","columnVisibility","setColumnVisibility","visibility","setColumnOrder","order","setColumnPinning","pinning","columnSizing","setColumnSizing","sizing","togglePinningOnVisibilityChange","newPinning","newPinnedColumns","updatePinningOrderOnOrderChange","pinnedColumns","pinnedColumnsOrder","updateOrderOnPinningChange","a","b","aPinned","updateColumnVisibility","updateColumnOrder","filteredOrder","updateColumnPinning","newOrder","updateSorting","sortingState","updateColumnSummary","columnId","calc","updateColumnSummaryScope","scope","updateColumnSummaryFormat","format","updateGroupBy","updateGroupByConfig","updateRowHeight","newRowHeight","currentThumbnailWidth","currentRowHeight","newThumbnailWidth","updateRowHeightWithPersistence","columnVisibilityOnChange","updater","nextFull","sparseNext","key","defaultValue","isEqual","columnPinningOnChange","functionalUpdate","columnOrderOnChange","columnSizingOnChange","newSizing","sortingOnChange","newSorting","jsx","ColumnSettingsContext"],"mappings":"u/NAyBaA,GAAgE,CAAC,CAC5E,SAAAC,EACA,OAAAC,EACA,SAAAC,EACA,wBAAAC,CACF,IAAM,CACJ,MAAMC,EAAgBC,EAAM,OAAiB,EAAE,EACzCC,EAAqBD,EAAM,OAA8B,IAAI,EAC7DE,EAAsBF,EAAM,OAA8B,IAAI,EAC9DG,EAAwBH,EAAM,OAA8B,IAAI,EAChEI,EAAmBJ,EAAM,OAA2B,MAAS,EAC7DK,EAAuBL,EAAM,OAAsB,IAAI,EAEvD,CAACM,EAAsBC,CAAuB,EAAIC,EAAAA,SAAmC,IAAI,EACzF,CAACC,EAAmBC,CAAoB,EAAIF,EAAAA,SAAwB,IAAI,EACxE,CAACG,EAAqBC,CAAsB,EAAIJ,EAAAA,SAAkC,IAAI,EAEtFK,EAAiBC,GAA2B,CAChDf,EAAc,QAAU,MAAM,KAAK,IAAI,IAAIe,CAAY,CAAC,CAC1D,EACMC,EAAuBC,GAAwB,CACnD,MAAMC,EAAclB,EAAc,QAK5BmB,EAAa,IAAI,IAAI,CAACC,EAAAA,sBAAuBC,EAAAA,uBAAuB,CAAC,EAC3E,GAAIH,EAAY,OAAS,EAAG,CAC1B,MAAMI,EAAqB,CAAE,GAAGL,EAAK,gBAAA,EACrCC,EAAY,QAASK,GAAO,CACtB,CAACJ,EAAW,IAAII,CAAE,GAAKD,EAAmBC,CAAE,IAAM,SACpDD,EAAmBC,CAAE,EAAIC,EAAAA,sBAAsB,CAAA,EAAID,EAAIxB,CAAuB,EAElF,CAAC,EAEDoB,EAAW,QAASI,GAAO,OAAOD,EAAmBC,CAAE,CAAC,EACxD,MAAME,GAAiBR,EAAK,aAAe,CAAA,GAAI,OAAQM,GAAO,CAACJ,EAAW,IAAII,CAAE,CAAC,EACjFzB,EACE,CAAE,GAAGmB,EAAM,iBAAkBK,EAAoB,YAAaG,CAAA,EAC9DP,CAAA,CAEJ,MACEpB,EAASmB,EAAMC,CAAW,CAE9B,EACMQ,EAAgBC,GAAAA,uBAAuB9B,CAAmC,EAE1E,CACJ,YAAa+B,EAAkB,CAAA,EAC/B,cAAeC,EAAoB,CAAA,EACnC,iBAAkBC,EAAuB,CAAA,EACzC,aAAcC,EAAwB,CAAA,EACtC,QAASC,EAAc,CAAA,EACvB,QAAAC,EACA,cAAAC,EAAgB,CAAA,EAChB,UAAWC,EAAkB,GAC7B,gBAAiBC,EAAsB,CAAA,EACvC,oBAAqBC,EAA0B,CAAA,EAC/C,qBAAsBC,EAA2B,CAAA,CAAC,EAChDZ,GAAiB,CAAA,EAIjBrB,EAAiB,UAAY8B,GAAmB9B,EAAiB,UAAY,SAE3EK,IAAsB,MACxBC,EAAqB,IAAI,EAGvBR,EAAoB,UACtB,aAAaA,EAAoB,OAAO,EACxCA,EAAoB,QAAU,OAGlCE,EAAiB,QAAU8B,EAG3B,MAAMI,EAAY7B,GAAqByB,EAEjCK,EAAU,CAAC,GAAGR,CAAW,EAGzBS,EAAc,CAAC,GADG7B,GAAuB,CAAC,GAAGgB,CAAe,CAC3B,EACjCc,EAAgB,CAAE,GAAGb,CAAA,EACrBc,EAAe,CAAC,YAAa,OAAQ,UAAW,SAAU,MAAM,EAwBtE,GAtBAA,EAAa,QAAQ,CAACC,EAAKC,IAAM,CAC/B,GAAI,CAACJ,EAAY,SAASG,CAAG,EAAG,CAC9B,MAAME,EAAgBH,EAAaE,EAAI,CAAC,EAClCE,EAAcJ,EAAaE,EAAI,CAAC,EACtC,GAAI,CAACC,GAAiB,CAACL,EAAY,SAASK,CAAa,EAEvDL,EAAY,QAAQG,CAAG,MAClB,CAEL,MAAMI,EAAQP,EAAY,QAAQK,CAAa,EAE/CL,EAAY,OAAOO,EAAQ,EAAG,EAAGJ,CAAG,CACtC,CACIG,GAAeL,GAAe,MAAQA,GAAe,KAAK,SAASK,CAAW,IAEhFL,EAAc,KAAO,CAACE,EAAK,GAAIF,GAAe,MAAQ,EAAG,EAE7D,CACF,CAAC,EAIGT,GAAWA,EAAQ,KAAO,SAAU,CAEtC,GAAI,CAACS,EAAc,MAAM,SAAS,MAAM,EACtCA,EAAc,KAAO,CAAC,OAAQ,GAAIA,GAAe,MAAQ,EAAG,MACvD,CAEL,MAAMO,EAAiBP,EAAc,KAAK,OAAQE,GAAQA,IAAQ,MAAM,EACxEF,EAAc,KAAO,CAAC,OAAQ,GAAGO,CAAc,CACjD,CAGA,GAAIR,EAAY,SAAS,MAAM,EAAG,CAEhC,MAAMS,EAAYT,EAAY,QAAQ,MAAM,EAC5CA,EAAY,OAAOS,EAAW,CAAC,CACjC,CAEAT,EAAY,QAAQ,MAAM,CAC5B,CAGAA,EAAY,QAAYrB,EAAAA,sBAAuBC,EAAAA,uBAAwB,EAGvE,MAAM8B,EAAmB,CAAE,GAAGrB,CAAA,EAE1BG,GAAW,CAACkB,EAAiB,OAC/BA,EAAiB,KAAO,IAI1B,MAAMC,EAAuBC,GAAgC,CAC3DrC,EAAoB,CAClB,GAAGU,EACH,iBAAkB2B,CAAA,CACnB,CACH,EAEMC,EAAkBC,GAA4B,CAClDvC,EAAoB,CAClB,GAAGU,EACH,YAAa6B,CAAA,CACd,CACH,EAEMC,EAAoBC,GAAgC,CACxDzC,EAAoB,CAClB,GAAGU,EACH,cAAe+B,CAAA,CAChB,CACH,EAGMC,EAAenD,GAAwBwB,EAEvC4B,EAAmBC,GAA8B,CACrDpD,EAAwBoD,CAAM,EAG1B1D,EAAmB,SACrB,aAAaA,EAAmB,OAAO,EAGzCA,EAAmB,QAAU,WAAW,IAAM,CAG5Cc,EAAoB,CAClB,GAAGU,EACH,aAAckC,CAAA,CACf,EAEDpD,EAAwB,IAAI,CAC9B,EAAG,GAAG,CACR,EAGMqD,EAAmCR,GAAgC,CAEvE,MAAMS,EAAa,CAAE,GAAGpB,CAAA,EAGlBqB,GAFgBD,EAAW,MAAQ,CAAA,GAEF,OAAQlB,GAC7CpB,EAAAA,sBAAsB6B,EAAYT,EAAK7C,CAAuB,CAAA,EAGhE,MAAO,CACL,GAAG+D,EACH,KAAMC,CAAA,CAEV,EAEMC,GAAmCT,GAA4B,CAEnE,MAAMO,EAAa,CAAE,GAAGpB,CAAA,EAClBuB,EAAgBH,EAAW,MAAQ,CAAA,EACnCI,EAAqBX,EAAM,OAAQX,GAAQqB,EAAc,SAASrB,CAAG,CAAC,EAE5E,MAAO,CACL,GAAGkB,EACH,KAAMI,CAAA,CAEV,EAEMC,GAA8BV,GAE3B,CAAC,GAAGhB,CAAW,EAAE,KAAK,CAAC2B,EAAGC,IAAM,CACrC,MAAMC,EAAUb,EAAQ,MAAM,SAASW,CAAC,EAAI,EAAI,EAEhD,OADgBX,EAAQ,MAAM,SAASY,CAAC,EAAI,EAAI,GAC/BC,CACnB,CAAC,EAIGC,GAA0BlB,GAAgC,CAC9D,MAAMS,EAAaD,EAAgCR,CAAU,EAC7DrC,EAAoB,CAClB,GAAGU,EACH,iBAAkB2B,EAClB,cAAeS,CAAA,CAChB,CACH,EAEMU,GAAqBjB,GAA4B,CAErD,MAAMkB,EAAgBlB,EAAM,OACzBhC,GAAOA,IAAOH,EAAAA,uBAAyBG,IAAOF,EAAAA,uBAAA,EAG3CyC,EAAaE,GAAgCS,CAAa,EAGhE5D,EAAuB4D,CAAa,EAGhCrE,EAAsB,SACxB,aAAaA,EAAsB,OAAO,EAI5CA,EAAsB,QAAU,WAAW,IAAM,CAC/CY,EAAoB,CAClB,GAAGU,EACH,YAAa+C,EACb,cAAeX,CAAA,CAChB,EAEDjD,EAAuB,IAAI,CAC7B,EAAG,GAAG,CACR,EAEM6D,GAAuBjB,GAAgC,CAC3D,MAAMkB,EAAWR,GAA2BV,CAAO,EACnDzC,EAAoB,CAClB,GAAGU,EACH,YAAaiD,EACb,cAAelB,CAAA,CAChB,CACH,EAEMmB,EAAiBC,GAA+B,CACpD7D,EAAoB,CAClB,GAAGU,EACH,QAASmD,CAAA,CACV,CACH,EAEMC,GAAsB,CAACC,EAAkBC,IAAsB,CACnEhE,EAAoB,CAClB,GAAGU,EACH,gBAAiB,CAAE,GAAGU,EAAqB,CAAC2C,CAAQ,EAAGC,CAAA,CAAK,CAC7D,CACH,EAEMC,GAA2B,CAACF,EAAkBG,IAAoB,CACtElE,EAAoB,CAClB,GAAGU,EACH,oBAAqB,CAAE,GAAGW,EAAyB,CAAC0C,CAAQ,EAAGG,CAAA,CAAM,CACtE,CACH,EAEMC,GAA4B,CAACJ,EAAkBK,IAA0B,CAC7EpE,EAAoB,CAClB,GAAGU,EACH,qBAAsB,CAAE,GAAGY,EAA0B,CAACyC,CAAQ,EAAGK,CAAA,CAAO,CACzE,CACH,EAEMC,GAAiBpD,GAAsC,CAC3DjB,EAAoB,CAClB,GAAGU,EACH,QAASO,CAAA,CACV,CACH,EAEMqD,GAAuBzF,GAA0B,CACrDmB,EAAoB,CAClB,GAAGU,EACH,cAAe,CACb,GAAGQ,EACH,GAAGrC,CAAA,CACL,CACD,CACH,EAGM0F,GAAkBtF,EAAM,YAC3BuF,GAAyB,CAExB,GAAIlF,EAAqB,UAAY,KAAM,CACzC,MAAMmF,EAAwB1D,EAAsB,WAAa,GAC3D2D,EAAmBvD,GAAmB,GAC5C7B,EAAqB,QAAUmF,EAAwBC,CACzD,CACA,MAAMC,EAAoBrF,EAAqB,QAAUkF,EAEzD7E,EAAqB6E,CAAY,EACjChF,EAAwB,CACtB,GAAID,GAAwBwB,EAC5B,UAAW4D,CAAA,CACZ,CACH,EACA,CAAC5D,EAAuBI,CAAe,CAAA,EAInCyD,GAAiC3F,EAAM,YAC1CuF,GAAyB,CAKxB,MAAMG,GAJwB5D,EAAsB,WAAa,KACxCI,GAAmB,IAGHqD,EAGzC7E,EAAqB6E,CAAY,EACjChF,EAAwB,CACtB,GAAID,GAAwBwB,EAC5B,UAAW4D,CAAA,CACZ,EAGGxF,EAAoB,SACtB,aAAaA,EAAoB,OAAO,EAI1CA,EAAoB,QAAU,WAAW,IAAM,CAE7Ca,EAAoB,CAClB,GAAGU,EACH,UAAW8D,EACX,aAAc,CACZ,GAAGzD,EACH,UAAW4D,CAAA,CACb,CACD,EAGDhF,EAAqB,IAAI,EACzBH,EAAwB,IAAI,EAC5BF,EAAqB,QAAU,IACjC,EAAG,GAAG,CACR,EACA,CACEoB,EACAV,EACAe,EACAI,EACA5B,CAAA,CACF,EAMIsF,GAAyDC,GAAY,CACzE,MAAMC,EAAW,OAAOD,GAAY,WAAaA,EAAQ3C,CAAgB,EAAI2C,EAGvEE,EAA8B,CAAA,EACpC,OAAO,KAAKD,CAAQ,EAAE,QAASE,GAAQ,CACrC,MAAMC,EAAe1E,EAAAA,sBAAsB,GAAIyE,EAAKlG,CAAuB,EACvEgG,EAASE,CAAG,IAAMC,IACpBF,EAAWC,CAAG,EAAIF,EAASE,CAAG,EAElC,CAAC,EAEGE,CAAAA,EAAAA,QAAQH,EAAY7C,CAAgB,GACxCC,EAAoB4C,CAAU,CAChC,EAEMI,GAAyDN,GAAY,CACzE,MAAMhC,EAAauC,EAAAA,iBAAiBP,EAASpD,CAAa,EACtDyD,EAAAA,QAAQrC,EAAYpB,CAAa,GACrCc,EAAiBM,CAAU,CAC7B,EAEMwC,GAAqDR,GAAY,CACrE,MAAMnB,EAAW0B,EAAAA,iBAAiBP,EAASrD,CAAW,EAClD0D,EAAAA,QAAQxB,EAAUlC,CAAW,GACjCa,EAAeqB,CAAQ,CACzB,EAEM4B,GAAuDT,GAAY,CACvE,MAAMU,EAAYH,EAAAA,iBAAiBP,EAASpC,CAAY,EACpDyC,EAAAA,QAAQK,EAAW9C,CAAY,GACnCC,EAAgB6C,CAAS,CAC3B,EAEMC,GAA6CX,GAAY,CAC7D,MAAMY,EAAaL,EAAAA,iBAAiBP,EAAStD,CAAO,EAChD2D,EAAAA,QAAQO,EAAYlE,CAAO,GAC/BoC,EAAc8B,CAAU,CAC1B,EAEA,OACEC,GAAAA,kBAAAA,IAACC,GAAAA,sBAAsB,SAAtB,CACC,MAAO,CAEL,cAAA9F,EAEA,iBAAAqC,EACA,wBAAApD,EACA,oBAAAqD,EACA,uBAAAmB,GACA,yBAAAsB,GAEA,cAAAnD,EACA,iBAAAc,EACA,oBAAAkB,GACA,sBAAA0B,GAEA,YAAA3D,EACA,eAAAa,EACA,kBAAAkB,GACA,oBAAA8B,GAEA,aAAA5C,EACA,gBAAAC,EACA,qBAAA4C,GAEA,gBAAiBnE,EACjB,oBAAA0C,GAEA,oBAAqBzC,EACrB,yBAAA4C,GAEA,qBAAsB3C,EACtB,0BAAA6C,GAEA,QAAA3C,EACA,cAAAoC,EACA,gBAAA6B,GAEA,QAAAxE,EACA,cAAAoD,GACA,cAAAnD,EACA,oBAAAoD,GAEA,UAAA/C,EACA,gBAAAgD,GACA,+BAAAK,GAGA,iBAAmB/F,GAA0BmB,EAAoBnB,CAAM,CAAA,EAGxE,SAAAD,CAAA,CAAA,CAGP"}