@ynput/ayon-frontend-shared 0.2.26 → 0.2.28

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 (367) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +25 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/Views.cjs.js +1 -1
  5. package/dist/Views.cjs.js.map +1 -1
  6. package/dist/Views.es.js +13 -11
  7. package/dist/Views.es.js.map +1 -1
  8. package/dist/api.cjs.js +1 -1
  9. package/dist/api.es.js +153 -151
  10. package/dist/components.cjs.js +1 -1
  11. package/dist/components.es.js +62 -51
  12. package/dist/components.es.js.map +1 -1
  13. package/dist/index.cjs.js +1 -1
  14. package/dist/index.es.js +12 -6
  15. package/dist/index.es.js.map +1 -1
  16. package/dist/shared/src/api/generated/entityLists.cjs.js.map +1 -1
  17. package/dist/shared/src/api/generated/entityLists.es.js.map +1 -1
  18. package/dist/shared/src/api/generated/users.cjs.js.map +1 -1
  19. package/dist/shared/src/api/generated/users.es.js.map +1 -1
  20. package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
  21. package/dist/shared/src/api/generated/views.es.js.map +1 -1
  22. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  23. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  24. package/dist/shared/src/api/queries/entityLists/getLists.es.js +142 -117
  25. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  26. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -1
  27. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  28. package/dist/shared/src/api/queries/entityLists/updateLists.es.js +110 -95
  29. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  30. package/dist/shared/src/api/queries/users/getUsers.cjs.js +1 -1
  31. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  32. package/dist/shared/src/api/queries/users/getUsers.es.js +21 -17
  33. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  34. package/dist/shared/src/components/AccessUser/AccessUser.cjs.js +2 -0
  35. package/dist/shared/src/components/AccessUser/AccessUser.cjs.js.map +1 -0
  36. package/dist/shared/src/components/AccessUser/AccessUser.es.js +33 -0
  37. package/dist/shared/src/components/AccessUser/AccessUser.es.js.map +1 -0
  38. package/dist/shared/src/components/AccessUser/AccessUser.styled.cjs.js +42 -0
  39. package/dist/shared/src/components/AccessUser/AccessUser.styled.cjs.js.map +1 -0
  40. package/dist/shared/src/components/AccessUser/AccessUser.styled.es.js +46 -0
  41. package/dist/shared/src/components/AccessUser/AccessUser.styled.es.js.map +1 -0
  42. package/dist/shared/src/components/DetailsMetaData/DetailsMetaData.cjs.js +34 -0
  43. package/dist/shared/src/components/DetailsMetaData/DetailsMetaData.cjs.js.map +1 -0
  44. package/dist/shared/src/components/DetailsMetaData/DetailsMetaData.es.js +46 -0
  45. package/dist/shared/src/components/DetailsMetaData/DetailsMetaData.es.js.map +1 -0
  46. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +20 -10
  47. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  48. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +81 -67
  49. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  50. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +3 -3
  51. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  52. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +59 -52
  53. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  54. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  55. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  56. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +5 -2
  57. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  58. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  59. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  60. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +5 -2
  61. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  62. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  63. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  64. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +5 -2
  65. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  66. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +2 -0
  67. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -0
  68. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +205 -0
  69. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -0
  70. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +2 -0
  71. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -0
  72. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +25 -0
  73. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -0
  74. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +3 -3
  75. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  76. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +5 -5
  77. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  78. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  79. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  80. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +5 -2
  81. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  82. package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.cjs.js +9 -0
  83. package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.cjs.js.map +1 -0
  84. package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.es.js +25 -0
  85. package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.es.js.map +1 -0
  86. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  87. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  88. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +7 -4
  89. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  90. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  91. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  92. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +18 -21
  93. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  94. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  95. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  96. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +5 -2
  97. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  98. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  99. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  100. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +6 -3
  101. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  102. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  103. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  104. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +5 -2
  105. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  106. package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.cjs.js +2 -0
  107. package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.cjs.js.map +1 -0
  108. package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.es.js +17 -0
  109. package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.es.js.map +1 -0
  110. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +2 -2
  111. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  112. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +5 -2
  113. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  114. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  115. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  116. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +5 -2
  117. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  118. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  119. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  120. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +5 -2
  121. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  122. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  123. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  124. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +5 -2
  125. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  126. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  127. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  128. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +146 -157
  129. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  130. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.cjs.js +7 -1
  131. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.cjs.js.map +1 -1
  132. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.es.js +13 -6
  133. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.styled.es.js.map +1 -1
  134. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  135. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  136. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +5 -2
  137. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  138. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  139. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  140. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +6 -3
  141. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  142. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  143. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  144. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +6 -3
  145. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  146. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  147. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  148. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +5 -2
  149. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  150. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  151. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  152. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +5 -2
  153. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  154. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  155. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  156. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +5 -2
  157. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  158. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  159. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  160. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +5 -2
  161. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  162. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  163. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  164. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +413 -396
  165. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  166. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +104 -25
  167. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
  168. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +131 -52
  169. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
  170. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  171. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  172. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +136 -129
  173. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  174. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +16 -53
  175. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  176. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +100 -120
  177. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  178. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  179. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  180. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +5 -2
  181. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  182. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js +7 -3
  183. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js.map +1 -1
  184. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js +12 -8
  185. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js.map +1 -1
  186. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  187. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  188. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +5 -2
  189. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  190. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +3 -3
  191. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  192. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +250 -235
  193. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  194. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  195. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  196. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +24 -21
  197. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  198. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  199. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  200. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +5 -2
  201. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  202. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.cjs.js.map +1 -1
  203. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.es.js.map +1 -1
  204. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
  205. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  206. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +10 -10
  207. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  208. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  209. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  210. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +13 -9
  211. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  212. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  213. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  214. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +65 -60
  215. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  216. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  217. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  218. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +5 -2
  219. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  220. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  221. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  222. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +5 -2
  223. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  224. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  225. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  226. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +5 -2
  227. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  228. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  229. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  230. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +5 -2
  231. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  232. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  233. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  234. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +5 -2
  235. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  236. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  237. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  238. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +5 -2
  239. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  240. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  241. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  242. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +16 -13
  243. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  244. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.cjs.js +1 -1
  245. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.cjs.js.map +1 -1
  246. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.es.js +41 -14
  247. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.es.js.map +1 -1
  248. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  249. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  250. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +7 -7
  251. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  252. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
  253. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  254. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +110 -104
  255. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  256. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js +2 -2
  257. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -1
  258. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js +8 -8
  259. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -1
  260. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +2 -2
  261. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  262. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +44 -43
  263. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  264. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  266. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +7 -4
  267. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  268. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  269. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  270. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +5 -2
  271. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  272. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  273. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  274. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +118 -103
  275. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  276. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js +16 -4
  277. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.cjs.js.map +1 -1
  278. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js +13 -1
  279. package/dist/shared/src/containers/SimpleTable/SimpleTable.styled.es.js.map +1 -1
  280. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js +1 -1
  281. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.cjs.js.map +1 -1
  282. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js +62 -50
  283. package/dist/shared/src/containers/SimpleTable/SimpleTableRowTemplate.es.js.map +1 -1
  284. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  285. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  286. package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.cjs.js +2 -0
  287. package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.cjs.js.map +1 -0
  288. package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.es.js +64 -0
  289. package/dist/shared/src/containers/Views/hooks/pages/useReportsViewSettings.es.js.map +1 -0
  290. package/dist/shared/src/context/MenuContext.cjs.js +2 -0
  291. package/dist/shared/src/context/MenuContext.cjs.js.map +1 -0
  292. package/dist/shared/src/context/MenuContext.es.js +28 -0
  293. package/dist/shared/src/context/MenuContext.es.js.map +1 -0
  294. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  295. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  296. package/dist/shared/src/context/PowerpackContext.es.js +20 -15
  297. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  298. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  299. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  300. package/dist/shared/src/context/RemoteModulesContext.es.js +19 -19
  301. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  302. package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
  303. package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
  304. package/dist/src/components/Menu/MenuComponents/Menu.cjs.js +2 -0
  305. package/dist/src/components/Menu/MenuComponents/Menu.cjs.js.map +1 -0
  306. package/dist/src/components/Menu/MenuComponents/Menu.es.js +55 -0
  307. package/dist/src/components/Menu/MenuComponents/Menu.es.js.map +1 -0
  308. package/dist/src/components/Menu/MenuComponents/Menu.styled.cjs.js +254 -0
  309. package/dist/src/components/Menu/MenuComponents/Menu.styled.cjs.js.map +1 -0
  310. package/dist/src/components/Menu/MenuComponents/Menu.styled.es.js +265 -0
  311. package/dist/src/components/Menu/MenuComponents/Menu.styled.es.js.map +1 -0
  312. package/dist/src/components/Menu/MenuComponents/MenuContainer2.cjs.js +2 -0
  313. package/dist/src/components/Menu/MenuComponents/MenuContainer2.cjs.js.map +1 -0
  314. package/dist/src/components/Menu/MenuComponents/MenuContainer2.es.js +80 -0
  315. package/dist/src/components/Menu/MenuComponents/MenuContainer2.es.js.map +1 -0
  316. package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js +2 -0
  317. package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js.map +1 -0
  318. package/dist/src/components/Menu/MenuComponents/MenuItem.es.js +59 -0
  319. package/dist/src/components/Menu/MenuComponents/MenuItem.es.js.map +1 -0
  320. package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js +2 -0
  321. package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js.map +1 -0
  322. package/dist/src/components/Menu/MenuComponents/MenuList.es.js +112 -0
  323. package/dist/src/components/Menu/MenuComponents/MenuList.es.js.map +1 -0
  324. package/dist/src/components/Menu/MenuComponents/useMenuPosition.cjs.js +2 -0
  325. package/dist/src/components/Menu/MenuComponents/useMenuPosition.cjs.js.map +1 -0
  326. package/dist/src/components/Menu/MenuComponents/useMenuPosition.es.js +35 -0
  327. package/dist/src/components/Menu/MenuComponents/useMenuPosition.es.js.map +1 -0
  328. package/dist/types/api/generated/entityLists.d.ts +8 -8
  329. package/dist/types/api/generated/users.d.ts +18 -14
  330. package/dist/types/api/generated/views.d.ts +47 -9
  331. package/dist/types/api/queries/entityLists/getLists.d.ts +133 -0
  332. package/dist/types/api/queries/entityLists/types.d.ts +2 -1
  333. package/dist/types/api/queries/permissions/getPermissions.d.ts +22 -22
  334. package/dist/types/api/queries/users/getUsers.d.ts +132 -0
  335. package/dist/types/api/queries/users/updateUsers.d.ts +3 -3
  336. package/dist/types/components/AccessUser/AccessUser.d.ts +22 -0
  337. package/dist/types/components/AccessUser/AccessUser.styled.d.ts +1 -0
  338. package/dist/types/components/AccessUser/index.d.ts +1 -0
  339. package/dist/types/components/DetailsMetaData/DetailsMetaData.d.ts +8 -0
  340. package/dist/types/components/DetailsMetaData/index.d.ts +1 -0
  341. package/dist/types/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.d.ts +4 -0
  342. package/dist/types/components/ListAttributeForm/ListAttributeForm.d.ts +13 -0
  343. package/dist/types/components/ListAttributeForm/index.d.ts +1 -0
  344. package/dist/types/components/ListMetaData/ListMetaData.d.ts +8 -0
  345. package/dist/types/components/ListMetaData/index.d.ts +1 -0
  346. package/dist/types/components/Powerpack/RequiredPowerpackVersion.d.ts +5 -0
  347. package/dist/types/components/Powerpack/index.d.ts +1 -0
  348. package/dist/types/components/ShareOptionIcon/ShareOptionIcon.d.ts +10 -0
  349. package/dist/types/components/ShareOptionIcon/index.d.ts +2 -0
  350. package/dist/types/components/index.d.ts +4 -0
  351. package/dist/types/containers/DetailsPanel/DetailsPanel.styled.d.ts +7 -0
  352. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.styled.d.ts +3 -1
  353. package/dist/types/containers/ProjectTreeTable/components/ColumnHeaderMenu.d.ts +4 -1
  354. package/dist/types/containers/ProjectTreeTable/context/ProjectDataContext.d.ts +1 -0
  355. package/dist/types/containers/ProjectTreeTable/context/clipboard/clipboardTypes.d.ts +3 -1
  356. package/dist/types/containers/ProjectTreeTable/hooks/useAttributesList.d.ts +1 -0
  357. package/dist/types/containers/ProjectTreeTable/utils/getReadOnlyLists.d.ts +1 -1
  358. package/dist/types/containers/ProjectTreeTable/widgets/BooleanWidget.d.ts +1 -0
  359. package/dist/types/containers/ProjectTreeTable/widgets/EnumCellValue.d.ts +2 -2
  360. package/dist/types/containers/SimpleTable/SimpleTable.d.ts +3 -0
  361. package/dist/types/containers/SimpleTable/SimpleTableRowTemplate.d.ts +5 -1
  362. package/dist/types/containers/Views/hooks/pages/useReportsViewSettings.d.ts +11 -0
  363. package/dist/types/containers/Views/index.d.ts +6 -2
  364. package/dist/types/context/MenuContext.d.ts +12 -0
  365. package/dist/types/context/PowerpackContext.d.ts +1 -1
  366. package/dist/types/index.d.ts +1 -0
  367. package/package.json +1 -1
@@ -192,6 +192,7 @@ import "../../../components/Powerpack/PowerpackButton.es.js";
192
192
  import "../../../components/Powerpack/PricingLink.es.js";
193
193
  import "../../../components/Powerpack/PowerpackDialog.styled.es.js";
194
194
  import "../../../components/Powerpack/CTAButton.es.js";
195
+ import "../../../components/Powerpack/RequiredPowerpackVersion.es.js";
195
196
  import "../../../components/SettingsPanel/SettingsPanel.es.js";
196
197
  import "../../../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
197
198
  import "../../../components/AttributeEditor/components/MinMaxField.es.js";
@@ -205,12 +206,14 @@ import "../../../components/Feedback/SupportBubble.es.js";
205
206
  import "../../../components/Chips/Chips.es.js";
206
207
  import "../../../components/LinksManager/LinksManager.styled.es.js";
207
208
  import "../../EntityPickerDialog/EntityPickerDialog.es.js";
209
+ import "../../../components/DetailsMetaData/DetailsMetaData.es.js";
210
+ import "../../../components/AccessUser/AccessUser.es.js";
208
211
  import "../../../components/LinksManager/LinksManagerDialog.es.js";
209
212
  import "../ProjectTreeTable.styled.es.js";
210
213
  import "../widgets/LoadMoreWidget.es.js";
211
214
  import "../components/GroupSettingsFallback.es.js";
212
215
  import { useCheckSelectedCellsVisible as io } from "../hooks/useCheckSelectedCellsVisible.es.js";
213
- const te = ({ children: q }) => {
216
+ const ee = ({ children: q }) => {
214
217
  const [m, I] = g(/* @__PURE__ */ new Set()), [u, c] = g(null), [M, b] = g(!1), [w, x] = g(null), [S, K] = g({
215
218
  rowIdToIndex: /* @__PURE__ */ new Map(),
216
219
  colIdToIndex: /* @__PURE__ */ new Map(),
@@ -383,6 +386,6 @@ const te = ({ children: q }) => {
383
386
  return /* @__PURE__ */ Z.jsx(ro.Provider, { value: Q, children: q });
384
387
  };
385
388
  export {
386
- te as SelectionCellsProvider
389
+ ee as SelectionCellsProvider
387
390
  };
388
391
  //# sourceMappingURL=SelectionCellsProvider.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionCellsProvider.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/SelectionCellsProvider.tsx"],"sourcesContent":["import React, { useState, useCallback, useMemo, ReactNode, useRef } from 'react'\nimport {\n CellId,\n RowId,\n ColId,\n CellPosition,\n getCellId,\n parseCellId,\n BorderPosition,\n getBorderClasses,\n} from '../utils/cellUtils'\nimport { DRAG_HANDLE_COLUMN_ID } from '../ProjectTreeTable'\nimport { SelectionCellsContext, GridMap, ROW_SELECTION_COLUMN_ID } from './SelectionCellsContext'\nimport { useCheckSelectedCellsVisible } from '../hooks'\n\nexport const SelectionCellsProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n const [selectedCells, setSelectedCells] = useState<Set<CellId>>(new Set())\n const [focusedCellId, setFocusedCellId] = useState<CellId | null>(null)\n const [selectionInProgress, setSelectionInProgress] = useState<boolean>(false)\n const [anchorCell, setAnchorCell] = useState<CellPosition | null>(null)\n const [gridMap, setGridMap] = useState<GridMap>({\n rowIdToIndex: new Map(),\n colIdToIndex: new Map(),\n indexToRowId: new Map(),\n indexToColId: new Map(),\n })\n const mapToString = (map: Map<any, any>) => {\n return JSON.stringify(Array.from(map.entries()))\n }\n\n const stableGridMap = useMemo(\n () => gridMap,\n [\n mapToString(gridMap.rowIdToIndex),\n mapToString(gridMap.colIdToIndex),\n mapToString(gridMap.indexToRowId),\n mapToString(gridMap.indexToColId),\n ],\n )\n // Track whether we're selecting or unselecting during drag\n const initialCellSelected = useRef<boolean>(false)\n\n const selectedRows = useMemo(\n () =>\n Array.from(selectedCells)\n .filter(\n (cellId) =>\n parseCellId(cellId)?.colId === ROW_SELECTION_COLUMN_ID && parseCellId(cellId)?.rowId,\n )\n .map((cellId) => parseCellId(cellId)?.rowId) as string[],\n [selectedCells],\n )\n\n useCheckSelectedCellsVisible({\n selectedCells,\n setSelectedCells,\n focusedCellId,\n setFocusedCellId,\n })\n\n // Register grid structure for range selections\n const registerGrid = useCallback((rows: RowId[], columns: ColId[]) => {\n const rowIdToIndex = new Map<RowId, number>()\n const colIdToIndex = new Map<ColId, number>()\n const indexToRowId = new Map<number, RowId>()\n const indexToColId = new Map<number, ColId>()\n\n rows.forEach((rowId, index) => {\n rowIdToIndex.set(rowId, index)\n indexToRowId.set(index, rowId)\n })\n\n columns.forEach((colId, index) => {\n colIdToIndex.set(colId, index)\n indexToColId.set(index, colId)\n })\n\n setGridMap({ rowIdToIndex, colIdToIndex, indexToRowId, indexToColId })\n }, [])\n\n // update the selection whilst properly handling the row-selection column\n const updateSelection = useCallback((selection: Set<CellId>, position: CellPosition) => {\n setSelectedCells((prevSelectedCells) => {\n let newSelection = new Set(selection)\n if (position.colId !== ROW_SELECTION_COLUMN_ID && position.colId !== DRAG_HANDLE_COLUMN_ID) {\n const rowSelection = Array.from(prevSelectedCells).filter(\n (id) => parseCellId(id)?.colId === ROW_SELECTION_COLUMN_ID,\n )\n if (rowSelection.length) {\n newSelection = new Set([...newSelection, ...rowSelection])\n }\n }\n return newSelection\n })\n }, [])\n\n // Select cells between two points in the grid\n const selectCellRange = useCallback(\n (start: CellPosition, end: CellPosition, additive: boolean): Set<CellId> => {\n if (!additive) {\n // Clear existing selection if not additive\n updateSelection(new Set(), start)\n }\n\n const startRowIdx = stableGridMap.rowIdToIndex.get(start.rowId) ?? 0\n const startColIdx = stableGridMap.colIdToIndex.get(start.colId) ?? 0\n const endRowIdx = stableGridMap.rowIdToIndex.get(end.rowId) ?? 0\n const endColIdx = stableGridMap.colIdToIndex.get(end.colId) ?? 0\n\n const minRowIdx = Math.min(startRowIdx, endRowIdx)\n const maxRowIdx = Math.max(startRowIdx, endRowIdx)\n const minColIdx = Math.min(startColIdx, endColIdx)\n const maxColIdx = Math.max(startColIdx, endColIdx)\n\n const newSelection = new Set(additive ? selectedCells : [])\n\n for (let r = minRowIdx; r <= maxRowIdx; r++) {\n const rowId = stableGridMap.indexToRowId.get(r)\n if (!rowId) continue\n\n for (let c = minColIdx; c <= maxColIdx; c++) {\n const colId = stableGridMap.indexToColId.get(c)\n if (!colId) continue\n\n newSelection.add(getCellId(rowId, colId))\n }\n }\n\n return newSelection\n },\n [stableGridMap, selectedCells, updateSelection],\n )\n\n // Start a selection operation\n const startSelection = useCallback(\n (cellId: CellId, additive: boolean) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n setSelectionInProgress(true)\n // Store whether the initial cell was selected to determine drag behavior\n initialCellSelected.current = selectedCells.has(cellId)\n\n if (additive) {\n // Toggle this cell in multi-select mode\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n if (newSelection.has(cellId)) {\n newSelection.delete(cellId)\n // If this was the focused cell, set focus to another cell in the selection or null\n if (focusedCellId === cellId) {\n if (newSelection.size > 0) {\n setFocusedCellId(Array.from(newSelection)[Array.from(newSelection).length - 1])\n } else {\n setFocusedCellId(null)\n }\n }\n } else {\n newSelection.add(cellId)\n setFocusedCellId(cellId)\n setAnchorCell(position)\n }\n return newSelection\n })\n } else {\n // Single cell selection\n // If this cell is already the only selected cell, deselect it\n // and it is from name column\n if (\n selectedCells.size === 1 &&\n selectedCells.has(cellId) &&\n [ROW_SELECTION_COLUMN_ID, 'name'].includes(position.colId)\n ) {\n setSelectedCells(new Set())\n setAnchorCell(null)\n setFocusedCellId(null)\n } else {\n updateSelection(new Set([cellId]), position)\n setAnchorCell(position)\n setFocusedCellId(cellId)\n }\n }\n },\n [selectedCells, focusedCellId, updateSelection],\n )\n\n // Extend the current selection during drag\n const extendSelection = useCallback(\n (cellId: CellId, isRowSelectionColumn?: boolean) => {\n if (!selectionInProgress || !anchorCell) return\n\n const currentPosition = parseCellId(cellId)\n if (!currentPosition) return\n\n if (isRowSelectionColumn) {\n // Handle row selection column differently during drag\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n const position = parseCellId(cellId)\n\n if (!position) return newSelection\n\n // We're either selecting or unselecting based on the initial cell's state\n if (initialCellSelected.current) {\n // If we started on a selected cell, we're removing cells during drag\n newSelection.delete(cellId)\n } else {\n // If we started on an unselected cell, we're adding cells during drag\n newSelection.add(cellId)\n }\n\n return newSelection\n })\n } else {\n // For normal cells, use the range selection behavior\n const newSelection = selectCellRange(anchorCell, currentPosition, false)\n updateSelection(newSelection, currentPosition)\n }\n },\n [selectionInProgress, anchorCell, selectCellRange, updateSelection],\n )\n\n // End a selection operation\n const endSelection = useCallback(() => {\n setSelectionInProgress(false)\n }, [])\n\n // Select a cell (click or programmatically)\n const selectCell = useCallback(\n (cellId: CellId, additive: boolean, range: boolean) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n if (range && anchorCell) {\n // Shift+click for range selection - select cells between anchor and current\n const newSelection = selectCellRange(anchorCell, position, additive)\n updateSelection(newSelection, position)\n } else if (additive) {\n // Ctrl/Cmd+click for toggling selection\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n if (newSelection.has(cellId)) {\n newSelection.delete(cellId)\n } else {\n newSelection.add(cellId)\n }\n return newSelection\n })\n } else {\n // Normal click - select just this cell and set as new anchor\n updateSelection(new Set([cellId]), position)\n setAnchorCell(position)\n }\n },\n [anchorCell, selectCellRange, updateSelection],\n )\n\n // Focus a cell without changing selection\n const focusCell = useCallback((cellId: CellId | null) => {\n setFocusedCellId(cellId)\n }, [])\n\n // Clear all selections\n const clearSelection = useCallback(() => {\n setSelectedCells(new Set())\n setAnchorCell(null)\n setFocusedCellId(null)\n }, [])\n\n // Check if a cell is selected\n const isCellSelected = useCallback((cellId: CellId) => selectedCells.has(cellId), [selectedCells])\n\n // Check if a cell is focused\n const isCellFocused = useCallback((cellId: CellId) => cellId === focusedCellId, [focusedCellId])\n\n // Get position from cell ID - using shared utility\n const getCellPositionFromId = useCallback((cellId: CellId) => parseCellId(cellId), [])\n\n // Get border classes for a cell based on its selection state and neighbors\n const getCellBorderClasses = useCallback(\n (cellId: CellId): string[] => {\n if (!isCellSelected(cellId)) return []\n\n const position = parseCellId(cellId)\n if (!position) return []\n\n const rowIndex = stableGridMap.rowIdToIndex.get(position.rowId)\n const colIndex = stableGridMap.colIdToIndex.get(position.colId)\n\n if (rowIndex === undefined || colIndex === undefined) return []\n\n // Check if the cell's neighbors in all four directions are selected\n const top = stableGridMap.indexToRowId.get(rowIndex - 1)\n const right = stableGridMap.indexToColId.get(colIndex + 1)\n const bottom = stableGridMap.indexToRowId.get(rowIndex + 1)\n const left = stableGridMap.indexToColId.get(colIndex - 1)\n\n // Default to no borders\n let borderPos = BorderPosition.None\n\n // Top edge check: show border if we're at the top of the grid or the cell above is not selected\n if (!top || !selectedCells.has(getCellId(top, position.colId))) {\n borderPos |= BorderPosition.Top\n }\n\n // Right edge check: show border if we're at the right edge of the grid or the cell to the right is not selected\n if (!right || !selectedCells.has(getCellId(position.rowId, right))) {\n borderPos |= BorderPosition.Right\n }\n\n // Bottom edge check: show border if we're at the bottom of the grid or the cell below is not selected\n if (!bottom || !selectedCells.has(getCellId(bottom, position.colId))) {\n borderPos |= BorderPosition.Bottom\n }\n\n // Left edge check: show border if we're at the left edge of the grid or the cell to the left is not selected\n if (!left || !selectedCells.has(getCellId(position.rowId, left))) {\n borderPos |= BorderPosition.Left\n }\n\n return getBorderClasses(borderPos)\n },\n [selectedCells, stableGridMap, isCellSelected],\n )\n\n // Memoize context value to prevent unnecessary re-renders\n const value = useMemo(\n () => ({\n selectedCells,\n selectedRows,\n focusedCellId,\n selectionInProgress,\n anchorCell,\n gridMap: stableGridMap,\n setSelectedCells,\n setFocusedCellId,\n setAnchorCell,\n registerGrid,\n selectCell,\n startSelection,\n extendSelection,\n endSelection,\n focusCell,\n clearSelection,\n isCellSelected,\n isCellFocused,\n getCellPositionFromId,\n getCellBorderClasses,\n }),\n [\n selectedCells,\n selectedRows,\n focusedCellId,\n selectionInProgress,\n anchorCell,\n stableGridMap,\n setSelectedCells,\n setFocusedCellId,\n setAnchorCell,\n registerGrid,\n selectCell,\n startSelection,\n extendSelection,\n endSelection,\n focusCell,\n clearSelection,\n isCellSelected,\n isCellFocused,\n getCellPositionFromId,\n getCellBorderClasses,\n ],\n )\n\n return <SelectionCellsContext.Provider value={value}>{children}</SelectionCellsContext.Provider>\n}\n"],"names":["SelectionCellsProvider","children","selectedCells","setSelectedCells","useState","focusedCellId","setFocusedCellId","selectionInProgress","setSelectionInProgress","anchorCell","setAnchorCell","gridMap","setGridMap","mapToString","map","stableGridMap","useMemo","initialCellSelected","useRef","selectedRows","cellId","_a","parseCellId","ROW_SELECTION_COLUMN_ID","_b","useCheckSelectedCellsVisible","registerGrid","useCallback","rows","columns","rowIdToIndex","colIdToIndex","indexToRowId","indexToColId","rowId","index","colId","updateSelection","selection","position","prevSelectedCells","newSelection","DRAG_HANDLE_COLUMN_ID","rowSelection","id","selectCellRange","start","end","additive","startRowIdx","startColIdx","endRowIdx","endColIdx","minRowIdx","maxRowIdx","minColIdx","maxColIdx","r","c","getCellId","startSelection","prev","extendSelection","isRowSelectionColumn","currentPosition","endSelection","selectCell","range","focusCell","clearSelection","isCellSelected","isCellFocused","getCellPositionFromId","getCellBorderClasses","rowIndex","colIndex","top","right","bottom","left","borderPos","BorderPosition","getBorderClasses","value","jsx","SelectionCellsContext"],"mappings":"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"}
1
+ {"version":3,"file":"SelectionCellsProvider.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/SelectionCellsProvider.tsx"],"sourcesContent":["import React, { useState, useCallback, useMemo, ReactNode, useRef } from 'react'\nimport {\n CellId,\n RowId,\n ColId,\n CellPosition,\n getCellId,\n parseCellId,\n BorderPosition,\n getBorderClasses,\n} from '../utils/cellUtils'\nimport { DRAG_HANDLE_COLUMN_ID } from '../ProjectTreeTable'\nimport { SelectionCellsContext, GridMap, ROW_SELECTION_COLUMN_ID } from './SelectionCellsContext'\nimport { useCheckSelectedCellsVisible } from '../hooks'\n\nexport const SelectionCellsProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n const [selectedCells, setSelectedCells] = useState<Set<CellId>>(new Set())\n const [focusedCellId, setFocusedCellId] = useState<CellId | null>(null)\n const [selectionInProgress, setSelectionInProgress] = useState<boolean>(false)\n const [anchorCell, setAnchorCell] = useState<CellPosition | null>(null)\n const [gridMap, setGridMap] = useState<GridMap>({\n rowIdToIndex: new Map(),\n colIdToIndex: new Map(),\n indexToRowId: new Map(),\n indexToColId: new Map(),\n })\n const mapToString = (map: Map<any, any>) => {\n return JSON.stringify(Array.from(map.entries()))\n }\n\n const stableGridMap = useMemo(\n () => gridMap,\n [\n mapToString(gridMap.rowIdToIndex),\n mapToString(gridMap.colIdToIndex),\n mapToString(gridMap.indexToRowId),\n mapToString(gridMap.indexToColId),\n ],\n )\n // Track whether we're selecting or unselecting during drag\n const initialCellSelected = useRef<boolean>(false)\n\n const selectedRows = useMemo(\n () =>\n Array.from(selectedCells)\n .filter(\n (cellId) =>\n parseCellId(cellId)?.colId === ROW_SELECTION_COLUMN_ID && parseCellId(cellId)?.rowId,\n )\n .map((cellId) => parseCellId(cellId)?.rowId) as string[],\n [selectedCells],\n )\n\n useCheckSelectedCellsVisible({\n selectedCells,\n setSelectedCells,\n focusedCellId,\n setFocusedCellId,\n })\n\n // Register grid structure for range selections\n const registerGrid = useCallback((rows: RowId[], columns: ColId[]) => {\n const rowIdToIndex = new Map<RowId, number>()\n const colIdToIndex = new Map<ColId, number>()\n const indexToRowId = new Map<number, RowId>()\n const indexToColId = new Map<number, ColId>()\n\n rows.forEach((rowId, index) => {\n rowIdToIndex.set(rowId, index)\n indexToRowId.set(index, rowId)\n })\n\n columns.forEach((colId, index) => {\n colIdToIndex.set(colId, index)\n indexToColId.set(index, colId)\n })\n\n setGridMap({ rowIdToIndex, colIdToIndex, indexToRowId, indexToColId })\n }, [])\n\n // update the selection whilst properly handling the row-selection column\n const updateSelection = useCallback((selection: Set<CellId>, position: CellPosition) => {\n setSelectedCells((prevSelectedCells) => {\n let newSelection = new Set(selection)\n if (position.colId !== ROW_SELECTION_COLUMN_ID && position.colId !== DRAG_HANDLE_COLUMN_ID) {\n const rowSelection = Array.from(prevSelectedCells).filter(\n (id) => parseCellId(id)?.colId === ROW_SELECTION_COLUMN_ID,\n )\n if (rowSelection.length) {\n newSelection = new Set([...newSelection, ...rowSelection])\n }\n }\n return newSelection\n })\n }, [])\n\n // Select cells between two points in the grid\n const selectCellRange = useCallback(\n (start: CellPosition, end: CellPosition, additive: boolean): Set<CellId> => {\n if (!additive) {\n // Clear existing selection if not additive\n updateSelection(new Set(), start)\n }\n\n const startRowIdx = stableGridMap.rowIdToIndex.get(start.rowId) ?? 0\n const startColIdx = stableGridMap.colIdToIndex.get(start.colId) ?? 0\n const endRowIdx = stableGridMap.rowIdToIndex.get(end.rowId) ?? 0\n const endColIdx = stableGridMap.colIdToIndex.get(end.colId) ?? 0\n\n const minRowIdx = Math.min(startRowIdx, endRowIdx)\n const maxRowIdx = Math.max(startRowIdx, endRowIdx)\n const minColIdx = Math.min(startColIdx, endColIdx)\n const maxColIdx = Math.max(startColIdx, endColIdx)\n\n const newSelection = new Set(additive ? selectedCells : [])\n\n for (let r = minRowIdx; r <= maxRowIdx; r++) {\n const rowId = stableGridMap.indexToRowId.get(r)\n if (!rowId) continue\n\n for (let c = minColIdx; c <= maxColIdx; c++) {\n const colId = stableGridMap.indexToColId.get(c)\n if (!colId) continue\n\n newSelection.add(getCellId(rowId, colId))\n }\n }\n\n return newSelection\n },\n [stableGridMap, selectedCells, updateSelection],\n )\n\n // Start a selection operation\n const startSelection = useCallback(\n (cellId: CellId, additive: boolean) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n setSelectionInProgress(true)\n // Store whether the initial cell was selected to determine drag behavior\n initialCellSelected.current = selectedCells.has(cellId)\n\n if (additive) {\n // Toggle this cell in multi-select mode\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n if (newSelection.has(cellId)) {\n newSelection.delete(cellId)\n // If this was the focused cell, set focus to another cell in the selection or null\n if (focusedCellId === cellId) {\n if (newSelection.size > 0) {\n setFocusedCellId(Array.from(newSelection)[Array.from(newSelection).length - 1])\n } else {\n setFocusedCellId(null)\n }\n }\n } else {\n newSelection.add(cellId)\n setFocusedCellId(cellId)\n setAnchorCell(position)\n }\n return newSelection\n })\n } else {\n // Single cell selection\n // If this cell is already the only selected cell, deselect it\n // and it is from name column\n if (\n selectedCells.size === 1 &&\n selectedCells.has(cellId) &&\n [ROW_SELECTION_COLUMN_ID, 'name'].includes(position.colId)\n ) {\n setSelectedCells(new Set())\n setAnchorCell(null)\n setFocusedCellId(null)\n } else {\n updateSelection(new Set([cellId]), position)\n setAnchorCell(position)\n setFocusedCellId(cellId)\n }\n }\n },\n [selectedCells, focusedCellId, updateSelection],\n )\n\n // Extend the current selection during drag\n const extendSelection = useCallback(\n (cellId: CellId, isRowSelectionColumn?: boolean) => {\n if (!selectionInProgress || !anchorCell) return\n\n const currentPosition = parseCellId(cellId)\n if (!currentPosition) return\n\n if (isRowSelectionColumn) {\n // Handle row selection column differently during drag\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n const position = parseCellId(cellId)\n\n if (!position) return newSelection\n\n // We're either selecting or unselecting based on the initial cell's state\n if (initialCellSelected.current) {\n // If we started on a selected cell, we're removing cells during drag\n newSelection.delete(cellId)\n } else {\n // If we started on an unselected cell, we're adding cells during drag\n newSelection.add(cellId)\n }\n\n return newSelection\n })\n } else {\n // For normal cells, use the range selection behavior\n const newSelection = selectCellRange(anchorCell, currentPosition, false)\n updateSelection(newSelection, currentPosition)\n }\n },\n [selectionInProgress, anchorCell, selectCellRange, updateSelection],\n )\n\n // End a selection operation\n const endSelection = useCallback(() => {\n setSelectionInProgress(false)\n }, [])\n\n // Select a cell (click or programmatically)\n const selectCell = useCallback(\n (cellId: CellId, additive: boolean, range: boolean) => {\n const position = parseCellId(cellId)\n if (!position) return\n\n if (range && anchorCell) {\n // Shift+click for range selection - select cells between anchor and current\n const newSelection = selectCellRange(anchorCell, position, additive)\n updateSelection(newSelection, position)\n } else if (additive) {\n // Ctrl/Cmd+click for toggling selection\n setSelectedCells((prev) => {\n const newSelection = new Set(prev)\n if (newSelection.has(cellId)) {\n newSelection.delete(cellId)\n } else {\n newSelection.add(cellId)\n }\n return newSelection\n })\n } else {\n // Normal click - select just this cell and set as new anchor\n updateSelection(new Set([cellId]), position)\n setAnchorCell(position)\n }\n },\n [anchorCell, selectCellRange, updateSelection],\n )\n\n // Focus a cell without changing selection\n const focusCell = useCallback((cellId: CellId | null) => {\n setFocusedCellId(cellId)\n }, [])\n\n // Clear all selections\n const clearSelection = useCallback(() => {\n setSelectedCells(new Set())\n setAnchorCell(null)\n setFocusedCellId(null)\n }, [])\n\n // Check if a cell is selected\n const isCellSelected = useCallback((cellId: CellId) => selectedCells.has(cellId), [selectedCells])\n\n // Check if a cell is focused\n const isCellFocused = useCallback((cellId: CellId) => cellId === focusedCellId, [focusedCellId])\n\n // Get position from cell ID - using shared utility\n const getCellPositionFromId = useCallback((cellId: CellId) => parseCellId(cellId), [])\n\n // Get border classes for a cell based on its selection state and neighbors\n const getCellBorderClasses = useCallback(\n (cellId: CellId): string[] => {\n if (!isCellSelected(cellId)) return []\n\n const position = parseCellId(cellId)\n if (!position) return []\n\n const rowIndex = stableGridMap.rowIdToIndex.get(position.rowId)\n const colIndex = stableGridMap.colIdToIndex.get(position.colId)\n\n if (rowIndex === undefined || colIndex === undefined) return []\n\n // Check if the cell's neighbors in all four directions are selected\n const top = stableGridMap.indexToRowId.get(rowIndex - 1)\n const right = stableGridMap.indexToColId.get(colIndex + 1)\n const bottom = stableGridMap.indexToRowId.get(rowIndex + 1)\n const left = stableGridMap.indexToColId.get(colIndex - 1)\n\n // Default to no borders\n let borderPos = BorderPosition.None\n\n // Top edge check: show border if we're at the top of the grid or the cell above is not selected\n if (!top || !selectedCells.has(getCellId(top, position.colId))) {\n borderPos |= BorderPosition.Top\n }\n\n // Right edge check: show border if we're at the right edge of the grid or the cell to the right is not selected\n if (!right || !selectedCells.has(getCellId(position.rowId, right))) {\n borderPos |= BorderPosition.Right\n }\n\n // Bottom edge check: show border if we're at the bottom of the grid or the cell below is not selected\n if (!bottom || !selectedCells.has(getCellId(bottom, position.colId))) {\n borderPos |= BorderPosition.Bottom\n }\n\n // Left edge check: show border if we're at the left edge of the grid or the cell to the left is not selected\n if (!left || !selectedCells.has(getCellId(position.rowId, left))) {\n borderPos |= BorderPosition.Left\n }\n\n return getBorderClasses(borderPos)\n },\n [selectedCells, stableGridMap, isCellSelected],\n )\n\n // Memoize context value to prevent unnecessary re-renders\n const value = useMemo(\n () => ({\n selectedCells,\n selectedRows,\n focusedCellId,\n selectionInProgress,\n anchorCell,\n gridMap: stableGridMap,\n setSelectedCells,\n setFocusedCellId,\n setAnchorCell,\n registerGrid,\n selectCell,\n startSelection,\n extendSelection,\n endSelection,\n focusCell,\n clearSelection,\n isCellSelected,\n isCellFocused,\n getCellPositionFromId,\n getCellBorderClasses,\n }),\n [\n selectedCells,\n selectedRows,\n focusedCellId,\n selectionInProgress,\n anchorCell,\n stableGridMap,\n setSelectedCells,\n setFocusedCellId,\n setAnchorCell,\n registerGrid,\n selectCell,\n startSelection,\n extendSelection,\n endSelection,\n focusCell,\n clearSelection,\n isCellSelected,\n isCellFocused,\n getCellPositionFromId,\n getCellBorderClasses,\n ],\n )\n\n return <SelectionCellsContext.Provider value={value}>{children}</SelectionCellsContext.Provider>\n}\n"],"names":["SelectionCellsProvider","children","selectedCells","setSelectedCells","useState","focusedCellId","setFocusedCellId","selectionInProgress","setSelectionInProgress","anchorCell","setAnchorCell","gridMap","setGridMap","mapToString","map","stableGridMap","useMemo","initialCellSelected","useRef","selectedRows","cellId","_a","parseCellId","ROW_SELECTION_COLUMN_ID","_b","useCheckSelectedCellsVisible","registerGrid","useCallback","rows","columns","rowIdToIndex","colIdToIndex","indexToRowId","indexToColId","rowId","index","colId","updateSelection","selection","position","prevSelectedCells","newSelection","DRAG_HANDLE_COLUMN_ID","rowSelection","id","selectCellRange","start","end","additive","startRowIdx","startColIdx","endRowIdx","endColIdx","minRowIdx","maxRowIdx","minColIdx","maxColIdx","r","c","getCellId","startSelection","prev","extendSelection","isRowSelectionColumn","currentPosition","endSelection","selectCell","range","focusCell","clearSelection","isCellSelected","isCellFocused","getCellPositionFromId","getCellBorderClasses","rowIndex","colIndex","top","right","bottom","left","borderPos","BorderPosition","getBorderClasses","value","jsx","SelectionCellsContext"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"clipboardTypes.cjs.js","sources":["../../../../../../../src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.ts"],"sourcesContent":["import { ReactNode } from 'react'\nimport { EntitiesMap } from '../../types/table'\nimport { AttributeEnumItem, BuiltInFieldOptions } from '../../types'\n\n// Constants for field mappings\nexport const builtInFieldMappings = {\n status: 'statuses',\n folderType: 'folderTypes',\n taskType: 'taskTypes',\n}\n\nexport interface ColumnEnums extends BuiltInFieldOptions {\n [attrib: string]: AttributeEnumItem[]\n}\nexport type PasteMethod = 'replace' | 'merge'\nexport interface ClipboardContextType {\n copyToClipboard: (selected?: string[], fullRow?: boolean) => Promise<void>\n pasteFromClipboard: (selected: string[], config?: { method?: PasteMethod }) => Promise<void>\n exportCSV: (selected: string[], projectName: string, fullRow?: boolean) => void\n}\n\nexport interface ClipboardProviderProps {\n children: ReactNode\n entitiesMap: EntitiesMap\n columnEnums: ColumnEnums\n columnReadOnly: string[]\n}\n\nexport interface ParsedClipboardData {\n values: string[]\n colIds: string[]\n}\n"],"names":["builtInFieldMappings"],"mappings":"gFAKO,MAAMA,EAAuB,CAClC,OAAQ,WACR,WAAY,cACZ,SAAU,WACZ"}
1
+ {"version":3,"file":"clipboardTypes.cjs.js","sources":["../../../../../../../src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.ts"],"sourcesContent":["import { ReactNode } from 'react'\nimport { Column } from '@tanstack/react-table'\nimport { EntitiesMap, TableRow } from '../../types/table'\nimport { AttributeEnumItem, BuiltInFieldOptions } from '../../types'\n\n// Constants for field mappings\nexport const builtInFieldMappings = {\n status: 'statuses',\n folderType: 'folderTypes',\n taskType: 'taskTypes',\n}\n\nexport interface ColumnEnums extends BuiltInFieldOptions {\n [attrib: string]: AttributeEnumItem[]\n}\nexport type PasteMethod = 'replace' | 'merge'\nexport interface ClipboardContextType {\n copyToClipboard: (selected?: string[], fullRow?: boolean) => Promise<void>\n pasteFromClipboard: (selected: string[], config?: { method?: PasteMethod }) => Promise<void>\n exportCSV: (selected: string[], projectName: string, fullRow?: boolean) => void\n}\n\nexport interface ClipboardProviderProps {\n children: ReactNode\n entitiesMap: EntitiesMap\n columnEnums: ColumnEnums\n columnReadOnly: string[]\n visibleColumns: Column<TableRow, unknown>[]\n}\n\nexport interface ParsedClipboardData {\n values: string[]\n colIds: string[]\n}\n"],"names":["builtInFieldMappings"],"mappings":"gFAMO,MAAMA,EAAuB,CAClC,OAAQ,WACR,WAAY,cACZ,SAAU,WACZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"clipboardTypes.es.js","sources":["../../../../../../../src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.ts"],"sourcesContent":["import { ReactNode } from 'react'\nimport { EntitiesMap } from '../../types/table'\nimport { AttributeEnumItem, BuiltInFieldOptions } from '../../types'\n\n// Constants for field mappings\nexport const builtInFieldMappings = {\n status: 'statuses',\n folderType: 'folderTypes',\n taskType: 'taskTypes',\n}\n\nexport interface ColumnEnums extends BuiltInFieldOptions {\n [attrib: string]: AttributeEnumItem[]\n}\nexport type PasteMethod = 'replace' | 'merge'\nexport interface ClipboardContextType {\n copyToClipboard: (selected?: string[], fullRow?: boolean) => Promise<void>\n pasteFromClipboard: (selected: string[], config?: { method?: PasteMethod }) => Promise<void>\n exportCSV: (selected: string[], projectName: string, fullRow?: boolean) => void\n}\n\nexport interface ClipboardProviderProps {\n children: ReactNode\n entitiesMap: EntitiesMap\n columnEnums: ColumnEnums\n columnReadOnly: string[]\n}\n\nexport interface ParsedClipboardData {\n values: string[]\n colIds: string[]\n}\n"],"names":["builtInFieldMappings"],"mappings":"AAKO,MAAMA,IAAuB;AAAA,EAClC,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AACZ;"}
1
+ {"version":3,"file":"clipboardTypes.es.js","sources":["../../../../../../../src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.ts"],"sourcesContent":["import { ReactNode } from 'react'\nimport { Column } from '@tanstack/react-table'\nimport { EntitiesMap, TableRow } from '../../types/table'\nimport { AttributeEnumItem, BuiltInFieldOptions } from '../../types'\n\n// Constants for field mappings\nexport const builtInFieldMappings = {\n status: 'statuses',\n folderType: 'folderTypes',\n taskType: 'taskTypes',\n}\n\nexport interface ColumnEnums extends BuiltInFieldOptions {\n [attrib: string]: AttributeEnumItem[]\n}\nexport type PasteMethod = 'replace' | 'merge'\nexport interface ClipboardContextType {\n copyToClipboard: (selected?: string[], fullRow?: boolean) => Promise<void>\n pasteFromClipboard: (selected: string[], config?: { method?: PasteMethod }) => Promise<void>\n exportCSV: (selected: string[], projectName: string, fullRow?: boolean) => void\n}\n\nexport interface ClipboardProviderProps {\n children: ReactNode\n entitiesMap: EntitiesMap\n columnEnums: ColumnEnums\n columnReadOnly: string[]\n visibleColumns: Column<TableRow, unknown>[]\n}\n\nexport interface ParsedClipboardData {\n values: string[]\n colIds: string[]\n}\n"],"names":["builtInFieldMappings"],"mappings":"AAMO,MAAMA,IAAuB;AAAA,EAClC,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AACZ;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("lodash");require("react-toastify");const g=require("../../../../util/getEntityId.cjs.js");require("../../../../util/pubsub.cjs.js");const I=require("./clipboardTypes.cjs.js"),c=require("./clipboardUtils.cjs.js"),E=y=>{const{colId:r,isFolder:p,pasteValue:i,parsedData:n,columnEnums:u,columnReadOnly:f,rowIndex:m,colIndex:b,isSingleCellValue:v}=y;if(!i)return!0;if(r.startsWith("attrib_")&&f.includes(r.replace("attrib_","")))return c.clipboardError(`This column is read-only: "${r}". Paste operation cancelled.`),!1;if(r.startsWith("link_"))return i.split(",").map(a=>a.trim()).every(a=>g.validateEntityId(a))?!0:(c.clipboardError(`Invalid link id format: "${i}". Paste operation cancelled.`),!1);if(r==="assignees"){const e=i.split(",").map(s=>s.trim()),l=u.assignee||[],a=e.filter(s=>l.some(o=>o.value===s||o.label===s));if(v)n[0].values[0]=a.join(", ");else{const s=m%n.length,o=b%n[s].values.length;n[s].values[o]=a.join(", ")}return!0}let t=r==="subType"?p?"folderType":"taskType":r;if(t=I.builtInFieldMappings[t]||t,!(t in u))return!0;const d=u[t];if(!Array.isArray(d)||d.length===0)return!0;if(!i.split(",").map(e=>e.trim()).every(e=>d.some(l=>l.value===e||l.label===e))){const e=t==="folderType"||t==="taskType"?`${p?"folder":"task"} type`:t;return c.clipboardError(`Invalid ${e} value: "${i}". Paste operation cancelled.`),!1}return!0};exports.validateClipboardData=E;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("lodash");require("react-toastify");const g=require("../../../../util/getEntityId.cjs.js");require("../../../../util/pubsub.cjs.js");const I=require("./clipboardTypes.cjs.js"),c=require("./clipboardUtils.cjs.js"),E=y=>{const{colId:s,isFolder:p,pasteValue:i,parsedData:n,columnEnums:u,columnReadOnly:f,rowIndex:m,colIndex:v,isSingleCellValue:b}=y;if(!i)return!0;if(f.includes(s.replace("attrib_","")))return c.clipboardError(`This column is read-only: "${s}". Paste operation cancelled.`),!1;if(s.startsWith("link_"))return i.split(",").map(a=>a.trim()).every(a=>g.validateEntityId(a))?!0:(c.clipboardError(`Invalid link id format: "${i}". Paste operation cancelled.`),!1);if(s==="assignees"){const e=i.split(",").map(r=>r.trim()),l=u.assignee||[],a=e.filter(r=>l.some(o=>o.value===r||o.label===r));if(b)n[0].values[0]=a.join(", ");else{const r=m%n.length,o=v%n[r].values.length;n[r].values[o]=a.join(", ")}return!0}let t=s==="subType"?p?"folderType":"taskType":s;if(t=I.builtInFieldMappings[t]||t,!(t in u))return!0;const d=u[t];if(!Array.isArray(d)||d.length===0)return!0;if(!i.split(",").map(e=>e.trim()).every(e=>d.some(l=>l.value===e||l.label===e))){const e=t==="folderType"||t==="taskType"?`${p?"folder":"task"} type`:t;return c.clipboardError(`Invalid ${e} value: "${i}". Paste operation cancelled.`),!1}return!0};exports.validateClipboardData=E;
2
2
  //# sourceMappingURL=clipboardValidation.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clipboardValidation.cjs.js","sources":["../../../../../../../src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.ts"],"sourcesContent":["import { validateEntityId } from '@shared/util'\nimport { ColumnEnums, builtInFieldMappings, ParsedClipboardData } from './clipboardTypes'\nimport { clipboardError } from './clipboardUtils'\n\n// Validate clipboard data for enum fields and handle special cases\nexport const validateClipboardData = (params: {\n colId: string\n isFolder: boolean\n pasteValue: string\n parsedData: ParsedClipboardData[]\n columnEnums: ColumnEnums\n columnReadOnly: string[]\n rowIndex: number\n colIndex: number\n isSingleCellValue: boolean\n}): boolean => {\n const {\n colId,\n isFolder,\n pasteValue,\n parsedData,\n columnEnums,\n columnReadOnly,\n rowIndex,\n colIndex,\n isSingleCellValue,\n } = params\n\n // Skip validation for empty values\n if (!pasteValue) return true\n\n // Check if the column is read-only\n if (colId.startsWith('attrib_') && columnReadOnly.includes(colId.replace('attrib_', ''))) {\n clipboardError(`This column is read-only: \"${colId}\". Paste operation cancelled.`)\n return false\n }\n\n // special handling for links\n if (colId.startsWith('link_')) {\n // Split entity Ids by comma\n const entityIds = pasteValue.split(',').map((v) => v.trim())\n\n // check every id is valid\n const isValid = entityIds.every((id) => validateEntityId(id))\n if (isValid) return true\n else {\n clipboardError(`Invalid link id format: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n }\n\n // Special handling for assignees - filter out invalid values instead of canceling\n if (colId === 'assignees') {\n // Split assignees by comma\n const assigneeValues = pasteValue.split(',').map((v) => v.trim())\n\n // Get assignee options from columnEnums\n const assigneeOptions = columnEnums['assignee'] || []\n\n // Filter to keep only valid assignees\n const validAssignees = assigneeValues.filter((v) =>\n assigneeOptions.some((opt) => opt.value === v || opt.label === v),\n )\n\n // Update the paste value in the parsed data\n if (isSingleCellValue) {\n parsedData[0].values[0] = validAssignees.join(', ')\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const pasteColIndex = colIndex % parsedData[pasteRowIndex].values.length\n parsedData[pasteRowIndex].values[pasteColIndex] = validAssignees.join(', ')\n }\n\n return true\n }\n\n // Map subType to the actual field name\n let fieldId = colId === 'subType' ? (isFolder ? 'folderType' : 'taskType') : colId\n // Check if fieldId has a mapping to plural enum\n fieldId = builtInFieldMappings[fieldId as keyof typeof builtInFieldMappings] || fieldId\n\n // Skip validation for fields that don't have enums\n if (!(fieldId in columnEnums)) return true\n\n // Get the enum values for this field\n const enumOptions = columnEnums[fieldId as keyof typeof columnEnums]\n\n // Skip if no enum options are available\n if (!Array.isArray(enumOptions) || enumOptions.length === 0) return true\n\n // Check if the pasted value exists in the enum options\n const enumValues = pasteValue.split(',').map((v) => v.trim())\n const valueExists = enumValues.every((v) =>\n enumOptions.some((opt) => opt.value === v || opt.label === v),\n )\n\n if (!valueExists) {\n // Get a display name for the field (folderType/taskType → Type)\n const displayName =\n fieldId === 'folderType' || fieldId === 'taskType'\n ? `${isFolder ? 'folder' : 'task'} type`\n : fieldId\n\n clipboardError(`Invalid ${displayName} value: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n\n return true\n}\n"],"names":["validateClipboardData","params","colId","isFolder","pasteValue","parsedData","columnEnums","columnReadOnly","rowIndex","colIndex","isSingleCellValue","clipboardError","v","id","validateEntityId","assigneeValues","assigneeOptions","validAssignees","opt","pasteRowIndex","pasteColIndex","fieldId","builtInFieldMappings","enumOptions","displayName"],"mappings":"6SAKaA,EAAyBC,GAUvB,CACP,KAAA,CACJ,MAAAC,EACA,SAAAC,EACA,WAAAC,EACA,WAAAC,EACA,YAAAC,EACA,eAAAC,EACA,SAAAC,EACA,SAAAC,EACA,kBAAAC,CAAA,EACET,EAGA,GAAA,CAACG,EAAmB,MAAA,GAGpB,GAAAF,EAAM,WAAW,SAAS,GAAKK,EAAe,SAASL,EAAM,QAAQ,UAAW,EAAE,CAAC,EACtES,OAAAA,EAAAA,eAAA,8BAA8BT,CAAK,+BAA+B,EAC1E,GAIL,GAAAA,EAAM,WAAW,OAAO,EAM1B,OAJkBE,EAAW,MAAM,GAAG,EAAE,IAAKQ,GAAMA,EAAE,MAAM,EAGjC,MAAOC,GAAOC,EAAAA,iBAAiBD,CAAE,CAAC,EACxC,IAEHF,EAAAA,eAAA,4BAA4BP,CAAU,+BAA+B,EAC7E,IAKX,GAAIF,IAAU,YAAa,CAEnB,MAAAa,EAAiBX,EAAW,MAAM,GAAG,EAAE,IAAKQ,GAAMA,EAAE,MAAM,EAG1DI,EAAkBV,EAAY,UAAe,CAAC,EAG9CW,EAAiBF,EAAe,OAAQH,GAC5CI,EAAgB,KAAME,GAAQA,EAAI,QAAUN,GAAKM,EAAI,QAAUN,CAAC,CAClE,EAGA,GAAIF,EACFL,EAAW,CAAC,EAAE,OAAO,CAAC,EAAIY,EAAe,KAAK,IAAI,MAC7C,CACC,MAAAE,EAAgBX,EAAWH,EAAW,OACtCe,EAAgBX,EAAWJ,EAAWc,CAAa,EAAE,OAAO,OAClEd,EAAWc,CAAa,EAAE,OAAOC,CAAa,EAAIH,EAAe,KAAK,IAAI,CAAA,CAGrE,MAAA,EAAA,CAIT,IAAII,EAAUnB,IAAU,UAAaC,EAAW,aAAe,WAAcD,EAKzE,GAHMmB,EAAAC,EAAAA,qBAAqBD,CAA4C,GAAKA,EAG5E,EAAEA,KAAWf,GAAqB,MAAA,GAGhC,MAAAiB,EAAcjB,EAAYe,CAAmC,EAG/D,GAAA,CAAC,MAAM,QAAQE,CAAW,GAAKA,EAAY,SAAW,EAAU,MAAA,GAQpE,GAAI,CALenB,EAAW,MAAM,GAAG,EAAE,IAAKQ,GAAMA,EAAE,MAAM,EAC7B,MAAOA,GACpCW,EAAY,KAAML,GAAQA,EAAI,QAAUN,GAAKM,EAAI,QAAUN,CAAC,CAC9D,EAEkB,CAEV,MAAAY,EACJH,IAAY,cAAgBA,IAAY,WACpC,GAAGlB,EAAW,SAAW,MAAM,QAC/BkB,EAENV,OAAAA,EAAA,eAAe,WAAWa,CAAW,YAAYpB,CAAU,+BAA+B,EACnF,EAAA,CAGF,MAAA,EACT"}
1
+ {"version":3,"file":"clipboardValidation.cjs.js","sources":["../../../../../../../src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.ts"],"sourcesContent":["import { validateEntityId } from '@shared/util'\nimport { ColumnEnums, builtInFieldMappings, ParsedClipboardData } from './clipboardTypes'\nimport { clipboardError } from './clipboardUtils'\n\n// Validate clipboard data for enum fields and handle special cases\nexport const validateClipboardData = (params: {\n colId: string\n isFolder: boolean\n pasteValue: string\n parsedData: ParsedClipboardData[]\n columnEnums: ColumnEnums\n columnReadOnly: string[]\n rowIndex: number\n colIndex: number\n isSingleCellValue: boolean\n}): boolean => {\n const {\n colId,\n isFolder,\n pasteValue,\n parsedData,\n columnEnums,\n columnReadOnly,\n rowIndex,\n colIndex,\n isSingleCellValue,\n } = params\n\n // Skip validation for empty values\n if (!pasteValue) return true\n\n // Check if the column is read-only\n if (columnReadOnly.includes(colId.replace('attrib_', ''))) {\n clipboardError(`This column is read-only: \"${colId}\". Paste operation cancelled.`)\n return false\n }\n\n // special handling for links\n if (colId.startsWith('link_')) {\n // Split entity Ids by comma\n const entityIds = pasteValue.split(',').map((v) => v.trim())\n\n // check every id is valid\n const isValid = entityIds.every((id) => validateEntityId(id))\n if (isValid) return true\n else {\n clipboardError(`Invalid link id format: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n }\n\n // Special handling for assignees - filter out invalid values instead of canceling\n if (colId === 'assignees') {\n // Split assignees by comma\n const assigneeValues = pasteValue.split(',').map((v) => v.trim())\n\n // Get assignee options from columnEnums\n const assigneeOptions = columnEnums['assignee'] || []\n\n // Filter to keep only valid assignees\n const validAssignees = assigneeValues.filter((v) =>\n assigneeOptions.some((opt) => opt.value === v || opt.label === v),\n )\n\n // Update the paste value in the parsed data\n if (isSingleCellValue) {\n parsedData[0].values[0] = validAssignees.join(', ')\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const pasteColIndex = colIndex % parsedData[pasteRowIndex].values.length\n parsedData[pasteRowIndex].values[pasteColIndex] = validAssignees.join(', ')\n }\n\n return true\n }\n\n // Map subType to the actual field name\n let fieldId = colId === 'subType' ? (isFolder ? 'folderType' : 'taskType') : colId\n // Check if fieldId has a mapping to plural enum\n fieldId = builtInFieldMappings[fieldId as keyof typeof builtInFieldMappings] || fieldId\n\n // Skip validation for fields that don't have enums\n if (!(fieldId in columnEnums)) return true\n\n // Get the enum values for this field\n const enumOptions = columnEnums[fieldId as keyof typeof columnEnums]\n\n // Skip if no enum options are available\n if (!Array.isArray(enumOptions) || enumOptions.length === 0) return true\n\n // Check if the pasted value exists in the enum options\n const enumValues = pasteValue.split(',').map((v) => v.trim())\n const valueExists = enumValues.every((v) =>\n enumOptions.some((opt) => opt.value === v || opt.label === v),\n )\n\n if (!valueExists) {\n // Get a display name for the field (folderType/taskType → Type)\n const displayName =\n fieldId === 'folderType' || fieldId === 'taskType'\n ? `${isFolder ? 'folder' : 'task'} type`\n : fieldId\n\n clipboardError(`Invalid ${displayName} value: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n\n return true\n}\n"],"names":["validateClipboardData","params","colId","isFolder","pasteValue","parsedData","columnEnums","columnReadOnly","rowIndex","colIndex","isSingleCellValue","clipboardError","v","id","validateEntityId","assigneeValues","assigneeOptions","validAssignees","opt","pasteRowIndex","pasteColIndex","fieldId","builtInFieldMappings","enumOptions","displayName"],"mappings":"6SAKaA,EAAyBC,GAUvB,CACP,KAAA,CACJ,MAAAC,EACA,SAAAC,EACA,WAAAC,EACA,WAAAC,EACA,YAAAC,EACA,eAAAC,EACA,SAAAC,EACA,SAAAC,EACA,kBAAAC,CAAA,EACET,EAGA,GAAA,CAACG,EAAmB,MAAA,GAGxB,GAAIG,EAAe,SAASL,EAAM,QAAQ,UAAW,EAAE,CAAC,EACvCS,OAAAA,EAAAA,eAAA,8BAA8BT,CAAK,+BAA+B,EAC1E,GAIL,GAAAA,EAAM,WAAW,OAAO,EAM1B,OAJkBE,EAAW,MAAM,GAAG,EAAE,IAAKQ,GAAMA,EAAE,MAAM,EAGjC,MAAOC,GAAOC,EAAAA,iBAAiBD,CAAE,CAAC,EACxC,IAEHF,EAAAA,eAAA,4BAA4BP,CAAU,+BAA+B,EAC7E,IAKX,GAAIF,IAAU,YAAa,CAEnB,MAAAa,EAAiBX,EAAW,MAAM,GAAG,EAAE,IAAKQ,GAAMA,EAAE,MAAM,EAG1DI,EAAkBV,EAAY,UAAe,CAAC,EAG9CW,EAAiBF,EAAe,OAAQH,GAC5CI,EAAgB,KAAME,GAAQA,EAAI,QAAUN,GAAKM,EAAI,QAAUN,CAAC,CAClE,EAGA,GAAIF,EACFL,EAAW,CAAC,EAAE,OAAO,CAAC,EAAIY,EAAe,KAAK,IAAI,MAC7C,CACC,MAAAE,EAAgBX,EAAWH,EAAW,OACtCe,EAAgBX,EAAWJ,EAAWc,CAAa,EAAE,OAAO,OAClEd,EAAWc,CAAa,EAAE,OAAOC,CAAa,EAAIH,EAAe,KAAK,IAAI,CAAA,CAGrE,MAAA,EAAA,CAIT,IAAII,EAAUnB,IAAU,UAAaC,EAAW,aAAe,WAAcD,EAKzE,GAHMmB,EAAAC,EAAAA,qBAAqBD,CAA4C,GAAKA,EAG5E,EAAEA,KAAWf,GAAqB,MAAA,GAGhC,MAAAiB,EAAcjB,EAAYe,CAAmC,EAG/D,GAAA,CAAC,MAAM,QAAQE,CAAW,GAAKA,EAAY,SAAW,EAAU,MAAA,GAQpE,GAAI,CALenB,EAAW,MAAM,GAAG,EAAE,IAAKQ,GAAMA,EAAE,MAAM,EAC7B,MAAOA,GACpCW,EAAY,KAAML,GAAQA,EAAI,QAAUN,GAAKM,EAAI,QAAUN,CAAC,CAC9D,EAEkB,CAEV,MAAAY,EACJH,IAAY,cAAgBA,IAAY,WACpC,GAAGlB,EAAW,SAAW,MAAM,QAC/BkB,EAENV,OAAAA,EAAA,eAAe,WAAWa,CAAW,YAAYpB,CAAU,+BAA+B,EACnF,EAAA,CAGF,MAAA,EACT"}
@@ -6,7 +6,7 @@ import { builtInFieldMappings as b } from "./clipboardTypes.es.js";
6
6
  import { clipboardError as p } from "./clipboardUtils.es.js";
7
7
  const C = (m) => {
8
8
  const {
9
- colId: s,
9
+ colId: a,
10
10
  isFolder: c,
11
11
  pasteValue: i,
12
12
  parsedData: r,
@@ -17,23 +17,23 @@ const C = (m) => {
17
17
  isSingleCellValue: I
18
18
  } = m;
19
19
  if (!i) return !0;
20
- if (s.startsWith("attrib_") && f.includes(s.replace("attrib_", "")))
21
- return p(`This column is read-only: "${s}". Paste operation cancelled.`), !1;
22
- if (s.startsWith("link_"))
20
+ if (f.includes(a.replace("attrib_", "")))
21
+ return p(`This column is read-only: "${a}". Paste operation cancelled.`), !1;
22
+ if (a.startsWith("link_"))
23
23
  return i.split(",").map((l) => l.trim()).every((l) => g(l)) ? !0 : (p(`Invalid link id format: "${i}". Paste operation cancelled.`), !1);
24
- if (s === "assignees") {
25
- const t = i.split(",").map((a) => a.trim()), n = u.assignee || [], l = t.filter(
26
- (a) => n.some((o) => o.value === a || o.label === a)
24
+ if (a === "assignees") {
25
+ const t = i.split(",").map((s) => s.trim()), n = u.assignee || [], l = t.filter(
26
+ (s) => n.some((o) => o.value === s || o.label === s)
27
27
  );
28
28
  if (I)
29
29
  r[0].values[0] = l.join(", ");
30
30
  else {
31
- const a = y % r.length, o = v % r[a].values.length;
32
- r[a].values[o] = l.join(", ");
31
+ const s = y % r.length, o = v % r[s].values.length;
32
+ r[s].values[o] = l.join(", ");
33
33
  }
34
34
  return !0;
35
35
  }
36
- let e = s === "subType" ? c ? "folderType" : "taskType" : s;
36
+ let e = a === "subType" ? c ? "folderType" : "taskType" : a;
37
37
  if (e = b[e] || e, !(e in u)) return !0;
38
38
  const d = u[e];
39
39
  return !Array.isArray(d) || d.length === 0 || i.split(",").map((t) => t.trim()).every(
@@ -1 +1 @@
1
- {"version":3,"file":"clipboardValidation.es.js","sources":["../../../../../../../src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.ts"],"sourcesContent":["import { validateEntityId } from '@shared/util'\nimport { ColumnEnums, builtInFieldMappings, ParsedClipboardData } from './clipboardTypes'\nimport { clipboardError } from './clipboardUtils'\n\n// Validate clipboard data for enum fields and handle special cases\nexport const validateClipboardData = (params: {\n colId: string\n isFolder: boolean\n pasteValue: string\n parsedData: ParsedClipboardData[]\n columnEnums: ColumnEnums\n columnReadOnly: string[]\n rowIndex: number\n colIndex: number\n isSingleCellValue: boolean\n}): boolean => {\n const {\n colId,\n isFolder,\n pasteValue,\n parsedData,\n columnEnums,\n columnReadOnly,\n rowIndex,\n colIndex,\n isSingleCellValue,\n } = params\n\n // Skip validation for empty values\n if (!pasteValue) return true\n\n // Check if the column is read-only\n if (colId.startsWith('attrib_') && columnReadOnly.includes(colId.replace('attrib_', ''))) {\n clipboardError(`This column is read-only: \"${colId}\". Paste operation cancelled.`)\n return false\n }\n\n // special handling for links\n if (colId.startsWith('link_')) {\n // Split entity Ids by comma\n const entityIds = pasteValue.split(',').map((v) => v.trim())\n\n // check every id is valid\n const isValid = entityIds.every((id) => validateEntityId(id))\n if (isValid) return true\n else {\n clipboardError(`Invalid link id format: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n }\n\n // Special handling for assignees - filter out invalid values instead of canceling\n if (colId === 'assignees') {\n // Split assignees by comma\n const assigneeValues = pasteValue.split(',').map((v) => v.trim())\n\n // Get assignee options from columnEnums\n const assigneeOptions = columnEnums['assignee'] || []\n\n // Filter to keep only valid assignees\n const validAssignees = assigneeValues.filter((v) =>\n assigneeOptions.some((opt) => opt.value === v || opt.label === v),\n )\n\n // Update the paste value in the parsed data\n if (isSingleCellValue) {\n parsedData[0].values[0] = validAssignees.join(', ')\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const pasteColIndex = colIndex % parsedData[pasteRowIndex].values.length\n parsedData[pasteRowIndex].values[pasteColIndex] = validAssignees.join(', ')\n }\n\n return true\n }\n\n // Map subType to the actual field name\n let fieldId = colId === 'subType' ? (isFolder ? 'folderType' : 'taskType') : colId\n // Check if fieldId has a mapping to plural enum\n fieldId = builtInFieldMappings[fieldId as keyof typeof builtInFieldMappings] || fieldId\n\n // Skip validation for fields that don't have enums\n if (!(fieldId in columnEnums)) return true\n\n // Get the enum values for this field\n const enumOptions = columnEnums[fieldId as keyof typeof columnEnums]\n\n // Skip if no enum options are available\n if (!Array.isArray(enumOptions) || enumOptions.length === 0) return true\n\n // Check if the pasted value exists in the enum options\n const enumValues = pasteValue.split(',').map((v) => v.trim())\n const valueExists = enumValues.every((v) =>\n enumOptions.some((opt) => opt.value === v || opt.label === v),\n )\n\n if (!valueExists) {\n // Get a display name for the field (folderType/taskType → Type)\n const displayName =\n fieldId === 'folderType' || fieldId === 'taskType'\n ? `${isFolder ? 'folder' : 'task'} type`\n : fieldId\n\n clipboardError(`Invalid ${displayName} value: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n\n return true\n}\n"],"names":["validateClipboardData","params","colId","isFolder","pasteValue","parsedData","columnEnums","columnReadOnly","rowIndex","colIndex","isSingleCellValue","clipboardError","v","id","validateEntityId","assigneeValues","assigneeOptions","validAssignees","opt","pasteRowIndex","pasteColIndex","fieldId","builtInFieldMappings","enumOptions"],"mappings":";;;;;;AAKa,MAAAA,IAAwB,CAACC,MAUvB;AACP,QAAA;AAAA,IACJ,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,YAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,mBAAAC;AAAA,EAAA,IACET;AAGA,MAAA,CAACG,EAAmB,QAAA;AAGpB,MAAAF,EAAM,WAAW,SAAS,KAAKK,EAAe,SAASL,EAAM,QAAQ,WAAW,EAAE,CAAC;AACtE,WAAAS,EAAA,8BAA8BT,CAAK,+BAA+B,GAC1E;AAIL,MAAAA,EAAM,WAAW,OAAO;AAM1B,WAJkBE,EAAW,MAAM,GAAG,EAAE,IAAI,CAACQ,MAAMA,EAAE,MAAM,EAGjC,MAAM,CAACC,MAAOC,EAAiBD,CAAE,CAAC,IACxC,MAEHF,EAAA,4BAA4BP,CAAU,+BAA+B,GAC7E;AAKX,MAAIF,MAAU,aAAa;AAEnB,UAAAa,IAAiBX,EAAW,MAAM,GAAG,EAAE,IAAI,CAACQ,MAAMA,EAAE,MAAM,GAG1DI,IAAkBV,EAAY,YAAe,CAAC,GAG9CW,IAAiBF,EAAe;AAAA,MAAO,CAACH,MAC5CI,EAAgB,KAAK,CAACE,MAAQA,EAAI,UAAUN,KAAKM,EAAI,UAAUN,CAAC;AAAA,IAClE;AAGA,QAAIF;AACF,MAAAL,EAAW,CAAC,EAAE,OAAO,CAAC,IAAIY,EAAe,KAAK,IAAI;AAAA,SAC7C;AACC,YAAAE,IAAgBX,IAAWH,EAAW,QACtCe,IAAgBX,IAAWJ,EAAWc,CAAa,EAAE,OAAO;AAClE,MAAAd,EAAWc,CAAa,EAAE,OAAOC,CAAa,IAAIH,EAAe,KAAK,IAAI;AAAA,IAAA;AAGrE,WAAA;AAAA,EAAA;AAIT,MAAII,IAAUnB,MAAU,YAAaC,IAAW,eAAe,aAAcD;AAKzE,MAHMmB,IAAAC,EAAqBD,CAA4C,KAAKA,GAG5E,EAAEA,KAAWf,GAAqB,QAAA;AAGhC,QAAAiB,IAAcjB,EAAYe,CAAmC;AAG/D,SAAA,CAAC,MAAM,QAAQE,CAAW,KAAKA,EAAY,WAAW,KAGvCnB,EAAW,MAAM,GAAG,EAAE,IAAI,CAACQ,MAAMA,EAAE,MAAM,EAC7B;AAAA,IAAM,CAACA,MACpCW,EAAY,KAAK,CAACL,MAAQA,EAAI,UAAUN,KAAKM,EAAI,UAAUN,CAAC;AAAA,EAC9D,IANoE,MAelED,EAAe,WAJbU,MAAY,gBAAgBA,MAAY,aACpC,GAAGlB,IAAW,WAAW,MAAM,UAC/BkB,CAE+B,YAAYjB,CAAU,+BAA+B,GACnF;AAIX;"}
1
+ {"version":3,"file":"clipboardValidation.es.js","sources":["../../../../../../../src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.ts"],"sourcesContent":["import { validateEntityId } from '@shared/util'\nimport { ColumnEnums, builtInFieldMappings, ParsedClipboardData } from './clipboardTypes'\nimport { clipboardError } from './clipboardUtils'\n\n// Validate clipboard data for enum fields and handle special cases\nexport const validateClipboardData = (params: {\n colId: string\n isFolder: boolean\n pasteValue: string\n parsedData: ParsedClipboardData[]\n columnEnums: ColumnEnums\n columnReadOnly: string[]\n rowIndex: number\n colIndex: number\n isSingleCellValue: boolean\n}): boolean => {\n const {\n colId,\n isFolder,\n pasteValue,\n parsedData,\n columnEnums,\n columnReadOnly,\n rowIndex,\n colIndex,\n isSingleCellValue,\n } = params\n\n // Skip validation for empty values\n if (!pasteValue) return true\n\n // Check if the column is read-only\n if (columnReadOnly.includes(colId.replace('attrib_', ''))) {\n clipboardError(`This column is read-only: \"${colId}\". Paste operation cancelled.`)\n return false\n }\n\n // special handling for links\n if (colId.startsWith('link_')) {\n // Split entity Ids by comma\n const entityIds = pasteValue.split(',').map((v) => v.trim())\n\n // check every id is valid\n const isValid = entityIds.every((id) => validateEntityId(id))\n if (isValid) return true\n else {\n clipboardError(`Invalid link id format: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n }\n\n // Special handling for assignees - filter out invalid values instead of canceling\n if (colId === 'assignees') {\n // Split assignees by comma\n const assigneeValues = pasteValue.split(',').map((v) => v.trim())\n\n // Get assignee options from columnEnums\n const assigneeOptions = columnEnums['assignee'] || []\n\n // Filter to keep only valid assignees\n const validAssignees = assigneeValues.filter((v) =>\n assigneeOptions.some((opt) => opt.value === v || opt.label === v),\n )\n\n // Update the paste value in the parsed data\n if (isSingleCellValue) {\n parsedData[0].values[0] = validAssignees.join(', ')\n } else {\n const pasteRowIndex = rowIndex % parsedData.length\n const pasteColIndex = colIndex % parsedData[pasteRowIndex].values.length\n parsedData[pasteRowIndex].values[pasteColIndex] = validAssignees.join(', ')\n }\n\n return true\n }\n\n // Map subType to the actual field name\n let fieldId = colId === 'subType' ? (isFolder ? 'folderType' : 'taskType') : colId\n // Check if fieldId has a mapping to plural enum\n fieldId = builtInFieldMappings[fieldId as keyof typeof builtInFieldMappings] || fieldId\n\n // Skip validation for fields that don't have enums\n if (!(fieldId in columnEnums)) return true\n\n // Get the enum values for this field\n const enumOptions = columnEnums[fieldId as keyof typeof columnEnums]\n\n // Skip if no enum options are available\n if (!Array.isArray(enumOptions) || enumOptions.length === 0) return true\n\n // Check if the pasted value exists in the enum options\n const enumValues = pasteValue.split(',').map((v) => v.trim())\n const valueExists = enumValues.every((v) =>\n enumOptions.some((opt) => opt.value === v || opt.label === v),\n )\n\n if (!valueExists) {\n // Get a display name for the field (folderType/taskType → Type)\n const displayName =\n fieldId === 'folderType' || fieldId === 'taskType'\n ? `${isFolder ? 'folder' : 'task'} type`\n : fieldId\n\n clipboardError(`Invalid ${displayName} value: \"${pasteValue}\". Paste operation cancelled.`)\n return false\n }\n\n return true\n}\n"],"names":["validateClipboardData","params","colId","isFolder","pasteValue","parsedData","columnEnums","columnReadOnly","rowIndex","colIndex","isSingleCellValue","clipboardError","v","id","validateEntityId","assigneeValues","assigneeOptions","validAssignees","opt","pasteRowIndex","pasteColIndex","fieldId","builtInFieldMappings","enumOptions"],"mappings":";;;;;;AAKa,MAAAA,IAAwB,CAACC,MAUvB;AACP,QAAA;AAAA,IACJ,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,YAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,mBAAAC;AAAA,EAAA,IACET;AAGA,MAAA,CAACG,EAAmB,QAAA;AAGxB,MAAIG,EAAe,SAASL,EAAM,QAAQ,WAAW,EAAE,CAAC;AACvC,WAAAS,EAAA,8BAA8BT,CAAK,+BAA+B,GAC1E;AAIL,MAAAA,EAAM,WAAW,OAAO;AAM1B,WAJkBE,EAAW,MAAM,GAAG,EAAE,IAAI,CAACQ,MAAMA,EAAE,MAAM,EAGjC,MAAM,CAACC,MAAOC,EAAiBD,CAAE,CAAC,IACxC,MAEHF,EAAA,4BAA4BP,CAAU,+BAA+B,GAC7E;AAKX,MAAIF,MAAU,aAAa;AAEnB,UAAAa,IAAiBX,EAAW,MAAM,GAAG,EAAE,IAAI,CAACQ,MAAMA,EAAE,MAAM,GAG1DI,IAAkBV,EAAY,YAAe,CAAC,GAG9CW,IAAiBF,EAAe;AAAA,MAAO,CAACH,MAC5CI,EAAgB,KAAK,CAACE,MAAQA,EAAI,UAAUN,KAAKM,EAAI,UAAUN,CAAC;AAAA,IAClE;AAGA,QAAIF;AACF,MAAAL,EAAW,CAAC,EAAE,OAAO,CAAC,IAAIY,EAAe,KAAK,IAAI;AAAA,SAC7C;AACC,YAAAE,IAAgBX,IAAWH,EAAW,QACtCe,IAAgBX,IAAWJ,EAAWc,CAAa,EAAE,OAAO;AAClE,MAAAd,EAAWc,CAAa,EAAE,OAAOC,CAAa,IAAIH,EAAe,KAAK,IAAI;AAAA,IAAA;AAGrE,WAAA;AAAA,EAAA;AAIT,MAAII,IAAUnB,MAAU,YAAaC,IAAW,eAAe,aAAcD;AAKzE,MAHMmB,IAAAC,EAAqBD,CAA4C,KAAKA,GAG5E,EAAEA,KAAWf,GAAqB,QAAA;AAGhC,QAAAiB,IAAcjB,EAAYe,CAAmC;AAG/D,SAAA,CAAC,MAAM,QAAQE,CAAW,KAAKA,EAAY,WAAW,KAGvCnB,EAAW,MAAM,GAAG,EAAE,IAAI,CAACQ,MAAMA,EAAE,MAAM,EAC7B;AAAA,IAAM,CAACA,MACpCW,EAAY,KAAK,CAACL,MAAQA,EAAI,UAAUN,KAAKM,EAAI,UAAUN,CAAC;AAAA,EAC9D,IANoE,MAelED,EAAe,WAJbU,MAAY,gBAAgBA,MAAY,aACpC,GAAGlB,IAAW,WAAW,MAAM,UAC/BkB,CAE+B,YAAYjB,CAAU,+BAA+B,GACnF;AAIX;"}
@@ -1,2 +1,2 @@
1
- "use strict";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/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/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.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/updateListsAttributes.cjs.js");require("../../../api/queries/folders/getFolders.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/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");const b=require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");const m=require("../../../api/queries/system/getSystem.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/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");const f=({projectName:u})=>{const{data:q,isSuccess:t,isFetching:s}=m.useGetSiteInfoQuery({full:!0}),{attributes:n=[]}=q||{},{data:a}=b.useGetMyProjectPermissionsQuery({projectName:u},{skip:!u}),{attrib_read:c,attrib_write:o}=a||{},{enabled:l,attributes:r}=c||{},{enabled:d,attributes:i}=o||{};return{attribFields:n.filter(e=>!l||(r==null?void 0:r.includes(e.name))).map(e=>({...e,readOnly:d?!(i!=null&&i.includes(e.name)):!1})),isSuccess:t,isFetching:s}};module.exports=f;
1
+ "use strict";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/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/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.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/updateListsAttributes.cjs.js");require("../../../api/queries/folders/getFolders.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/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");const f=require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");const m=require("../../../api/queries/system/getSystem.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/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");const y=({projectName:u})=>{const{data:q,isSuccess:t,isFetching:s}=m.useGetSiteInfoQuery({full:!0}),{attributes:n=[]}=q||{},{data:a}=f.useGetMyProjectPermissionsQuery({projectName:u},{skip:!u}),{attrib_read:c,attrib_write:l}=a||{},{enabled:o,attributes:r}=c||{},{enabled:d,attributes:i,fields:b}=l||{};return{attribFields:n.filter(e=>!o||(r==null?void 0:r.includes(e.name))).map(e=>({...e,readOnly:d?!(i!=null&&i.includes(e.name)):!1})),writableFields:b,isSuccess:t,isFetching:s}};module.exports=y;
2
2
  //# sourceMappingURL=useAttributesList.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAttributesList.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useAttributesList.ts"],"sourcesContent":["import { useGetSiteInfoQuery, useGetMyProjectPermissionsQuery, AttributeModel } from '@shared/api'\n\nexport interface ProjectTableAttribute extends AttributeModel {\n readOnly?: boolean\n}\n\nconst useAttributeFields = ({ projectName }: { projectName: string }) => {\n const { data: info, isSuccess, isFetching } = useGetSiteInfoQuery({ full: true })\n const { attributes = [] } = info || {}\n\n const { data: projectPermissions } = useGetMyProjectPermissionsQuery(\n { projectName },\n { skip: !projectName },\n )\n const { attrib_read, attrib_write } = projectPermissions || {}\n const { enabled: attribReadEnabled, attributes: attribReadAttributes } = attrib_read || {}\n const { enabled: attribWriteEnabled, attributes: attribWriteAttributes } = attrib_write || {}\n\n // filter out scopes and filter out attributes that do not have read access\n const attribFields: ProjectTableAttribute[] = attributes\n .filter((a) => !attribReadEnabled || attribReadAttributes?.includes(a.name))\n .map((a) => ({\n ...a,\n readOnly: attribWriteEnabled ? !attribWriteAttributes?.includes(a.name) : false,\n }))\n\n return { attribFields, isSuccess, isFetching }\n}\n\nexport default useAttributeFields\n"],"names":["useAttributeFields","projectName","info","isSuccess","isFetching","useGetSiteInfoQuery","attributes","projectPermissions","useGetMyProjectPermissionsQuery","attrib_read","attrib_write","attribReadEnabled","attribReadAttributes","attribWriteEnabled","attribWriteAttributes","a"],"mappings":"kwIAMA,MAAMA,EAAqB,CAAC,CAAE,YAAAC,KAA2C,CACjE,KAAA,CAAE,KAAMC,EAAM,UAAAC,EAAW,WAAAC,GAAeC,sBAAoB,CAAE,KAAM,GAAM,EAC1E,CAAE,WAAAC,EAAa,EAAG,EAAIJ,GAAQ,CAAC,EAE/B,CAAE,KAAMK,CAAA,EAAuBC,EAAA,gCACnC,CAAE,YAAAP,CAAY,EACd,CAAE,KAAM,CAACA,CAAY,CACvB,EACM,CAAE,YAAAQ,EAAa,aAAAC,CAAa,EAAIH,GAAsB,CAAC,EACvD,CAAE,QAASI,EAAmB,WAAYC,CAAqB,EAAIH,GAAe,CAAC,EACnF,CAAE,QAASI,EAAoB,WAAYC,CAAsB,EAAIJ,GAAgB,CAAC,EAUrF,MAAA,CAAE,aAPqCJ,EAC3C,OAAQS,GAAM,CAACJ,IAAqBC,GAAA,YAAAA,EAAsB,SAASG,EAAE,MAAK,EAC1E,IAAKA,IAAO,CACX,GAAGA,EACH,SAAUF,EAAqB,EAACC,GAAA,MAAAA,EAAuB,SAASC,EAAE,OAAQ,EAAA,EAC1E,EAEmB,UAAAZ,EAAW,WAAAC,CAAW,CAC/C"}
1
+ {"version":3,"file":"useAttributesList.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useAttributesList.ts"],"sourcesContent":["import { useGetSiteInfoQuery, useGetMyProjectPermissionsQuery, AttributeModel } from '@shared/api'\n\nexport interface ProjectTableAttribute extends AttributeModel {\n readOnly?: boolean\n}\n\nconst useAttributeFields = ({ projectName }: { projectName: string }) => {\n const { data: info, isSuccess, isFetching } = useGetSiteInfoQuery({ full: true })\n const { attributes = [] } = info || {}\n\n const { data: projectPermissions } = useGetMyProjectPermissionsQuery(\n { projectName },\n { skip: !projectName },\n )\n const { attrib_read, attrib_write } = projectPermissions || {}\n const { enabled: attribReadEnabled, attributes: attribReadAttributes } = attrib_read || {}\n const {\n enabled: attribWriteEnabled,\n attributes: attribWriteAttributes,\n fields: writableFields,\n } = attrib_write || {}\n\n // filter out scopes and filter out attributes that do not have read access\n const attribFields: ProjectTableAttribute[] = attributes\n .filter((a) => !attribReadEnabled || attribReadAttributes?.includes(a.name))\n .map((a) => ({\n ...a,\n readOnly: attribWriteEnabled ? !attribWriteAttributes?.includes(a.name) : false,\n }))\n\n return { attribFields, writableFields, isSuccess, isFetching }\n}\n\nexport default useAttributeFields\n"],"names":["useAttributeFields","projectName","info","isSuccess","isFetching","useGetSiteInfoQuery","attributes","projectPermissions","useGetMyProjectPermissionsQuery","attrib_read","attrib_write","attribReadEnabled","attribReadAttributes","attribWriteEnabled","attribWriteAttributes","writableFields","a"],"mappings":"kwIAMA,MAAMA,EAAqB,CAAC,CAAE,YAAAC,KAA2C,CACjE,KAAA,CAAE,KAAMC,EAAM,UAAAC,EAAW,WAAAC,GAAeC,sBAAoB,CAAE,KAAM,GAAM,EAC1E,CAAE,WAAAC,EAAa,EAAG,EAAIJ,GAAQ,CAAC,EAE/B,CAAE,KAAMK,CAAA,EAAuBC,EAAA,gCACnC,CAAE,YAAAP,CAAY,EACd,CAAE,KAAM,CAACA,CAAY,CACvB,EACM,CAAE,YAAAQ,EAAa,aAAAC,CAAa,EAAIH,GAAsB,CAAC,EACvD,CAAE,QAASI,EAAmB,WAAYC,CAAqB,EAAIH,GAAe,CAAC,EACnF,CACJ,QAASI,EACT,WAAYC,EACZ,OAAQC,CACV,EAAIL,GAAgB,CAAC,EAUrB,MAAO,CAAE,aAPqCJ,EAC3C,OAAQU,GAAM,CAACL,IAAqBC,GAAA,YAAAA,EAAsB,SAASI,EAAE,MAAK,EAC1E,IAAKA,IAAO,CACX,GAAGA,EACH,SAAUH,EAAqB,EAACC,GAAA,MAAAA,EAAuB,SAASE,EAAE,OAAQ,EAAA,EAC1E,EAEmB,eAAAD,EAAgB,UAAAZ,EAAW,WAAAC,CAAW,CAC/D"}
@@ -61,14 +61,14 @@ import "../../../api/queries/links/getLinks.es.js";
61
61
  import "../../../api/queries/links/getEntityLinks.es.js";
62
62
  import "../../../api/queries/overview/getOverview.es.js";
63
63
  import "../../../api/queries/overview/updateOverview.es.js";
64
- import { useGetMyProjectPermissionsQuery as u } from "../../../api/queries/permissions/getPermissions.es.js";
64
+ import { useGetMyProjectPermissionsQuery as b } from "../../../api/queries/permissions/getPermissions.es.js";
65
65
  import "../../../api/queries/products/createProduct.es.js";
66
66
  import "../../../api/queries/project/getProject.es.js";
67
67
  import "../../../api/queries/project/updateProject.es.js";
68
68
  import "../../../api/queries/review/getReview.es.js";
69
69
  import "../../../api/queries/review/updateReview.es.js";
70
70
  import "../../../api/queries/share/share.es.js";
71
- import { useGetSiteInfoQuery as b } from "../../../api/queries/system/getSystem.es.js";
71
+ import { useGetSiteInfoQuery as f } from "../../../api/queries/system/getSystem.es.js";
72
72
  import "../../../api/queries/userDashboard/getUserDashboard.es.js";
73
73
  import "../../../api/queries/users/getUsers.es.js";
74
74
  import "../../../api/queries/users/updateUsers.es.js";
@@ -76,17 +76,21 @@ import "../../../api/queries/versions/updateVersions.es.js";
76
76
  import "../../../api/queries/views/getViews.es.js";
77
77
  import "../../../api/queries/views/updateViews.es.js";
78
78
  import "../../../api/queries/watchers/getWatchers.es.js";
79
- const Jt = ({ projectName: o }) => {
80
- const { data: m, isSuccess: p, isFetching: e } = b({ full: !0 }), { attributes: s = [] } = m || {}, { data: n } = u(
79
+ const Kt = ({ projectName: o }) => {
80
+ const { data: m, isSuccess: p, isFetching: e } = f({ full: !0 }), { attributes: s = [] } = m || {}, { data: n } = b(
81
81
  { projectName: o },
82
82
  { skip: !o }
83
- ), { attrib_read: a, attrib_write: l } = n || {}, { enabled: c, attributes: i } = a || {}, { enabled: d, attributes: r } = l || {};
84
- return { attribFields: s.filter((t) => !c || (i == null ? void 0 : i.includes(t.name))).map((t) => ({
83
+ ), { attrib_read: a, attrib_write: l } = n || {}, { enabled: d, attributes: i } = a || {}, {
84
+ enabled: c,
85
+ attributes: r,
86
+ fields: u
87
+ } = l || {};
88
+ return { attribFields: s.filter((t) => !d || (i == null ? void 0 : i.includes(t.name))).map((t) => ({
85
89
  ...t,
86
- readOnly: d ? !(r != null && r.includes(t.name)) : !1
87
- })), isSuccess: p, isFetching: e };
90
+ readOnly: c ? !(r != null && r.includes(t.name)) : !1
91
+ })), writableFields: u, isSuccess: p, isFetching: e };
88
92
  };
89
93
  export {
90
- Jt as default
94
+ Kt as default
91
95
  };
92
96
  //# sourceMappingURL=useAttributesList.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAttributesList.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useAttributesList.ts"],"sourcesContent":["import { useGetSiteInfoQuery, useGetMyProjectPermissionsQuery, AttributeModel } from '@shared/api'\n\nexport interface ProjectTableAttribute extends AttributeModel {\n readOnly?: boolean\n}\n\nconst useAttributeFields = ({ projectName }: { projectName: string }) => {\n const { data: info, isSuccess, isFetching } = useGetSiteInfoQuery({ full: true })\n const { attributes = [] } = info || {}\n\n const { data: projectPermissions } = useGetMyProjectPermissionsQuery(\n { projectName },\n { skip: !projectName },\n )\n const { attrib_read, attrib_write } = projectPermissions || {}\n const { enabled: attribReadEnabled, attributes: attribReadAttributes } = attrib_read || {}\n const { enabled: attribWriteEnabled, attributes: attribWriteAttributes } = attrib_write || {}\n\n // filter out scopes and filter out attributes that do not have read access\n const attribFields: ProjectTableAttribute[] = attributes\n .filter((a) => !attribReadEnabled || attribReadAttributes?.includes(a.name))\n .map((a) => ({\n ...a,\n readOnly: attribWriteEnabled ? !attribWriteAttributes?.includes(a.name) : false,\n }))\n\n return { attribFields, isSuccess, isFetching }\n}\n\nexport default useAttributeFields\n"],"names":["useAttributeFields","projectName","info","isSuccess","isFetching","useGetSiteInfoQuery","attributes","projectPermissions","useGetMyProjectPermissionsQuery","attrib_read","attrib_write","attribReadEnabled","attribReadAttributes","attribWriteEnabled","attribWriteAttributes","a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAMA,KAAqB,CAAC,EAAE,aAAAC,QAA2C;AACjE,QAAA,EAAE,MAAMC,GAAM,WAAAC,GAAW,YAAAC,MAAeC,EAAoB,EAAE,MAAM,IAAM,GAC1E,EAAE,YAAAC,IAAa,GAAG,IAAIJ,KAAQ,CAAC,GAE/B,EAAE,MAAMK,EAAA,IAAuBC;AAAA,IACnC,EAAE,aAAAP,EAAY;AAAA,IACd,EAAE,MAAM,CAACA,EAAY;AAAA,EACvB,GACM,EAAE,aAAAQ,GAAa,cAAAC,EAAa,IAAIH,KAAsB,CAAC,GACvD,EAAE,SAASI,GAAmB,YAAYC,EAAqB,IAAIH,KAAe,CAAC,GACnF,EAAE,SAASI,GAAoB,YAAYC,EAAsB,IAAIJ,KAAgB,CAAC;AAUrF,SAAA,EAAE,cAPqCJ,EAC3C,OAAO,CAACS,MAAM,CAACJ,MAAqBC,KAAA,gBAAAA,EAAsB,SAASG,EAAE,MAAK,EAC1E,IAAI,CAACA,OAAO;AAAA,IACX,GAAGA;AAAA,IACH,UAAUF,IAAqB,EAACC,KAAA,QAAAA,EAAuB,SAASC,EAAE,SAAQ;AAAA,EAAA,EAC1E,GAEmB,WAAAZ,GAAW,YAAAC,EAAW;AAC/C;"}
1
+ {"version":3,"file":"useAttributesList.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/hooks/useAttributesList.ts"],"sourcesContent":["import { useGetSiteInfoQuery, useGetMyProjectPermissionsQuery, AttributeModel } from '@shared/api'\n\nexport interface ProjectTableAttribute extends AttributeModel {\n readOnly?: boolean\n}\n\nconst useAttributeFields = ({ projectName }: { projectName: string }) => {\n const { data: info, isSuccess, isFetching } = useGetSiteInfoQuery({ full: true })\n const { attributes = [] } = info || {}\n\n const { data: projectPermissions } = useGetMyProjectPermissionsQuery(\n { projectName },\n { skip: !projectName },\n )\n const { attrib_read, attrib_write } = projectPermissions || {}\n const { enabled: attribReadEnabled, attributes: attribReadAttributes } = attrib_read || {}\n const {\n enabled: attribWriteEnabled,\n attributes: attribWriteAttributes,\n fields: writableFields,\n } = attrib_write || {}\n\n // filter out scopes and filter out attributes that do not have read access\n const attribFields: ProjectTableAttribute[] = attributes\n .filter((a) => !attribReadEnabled || attribReadAttributes?.includes(a.name))\n .map((a) => ({\n ...a,\n readOnly: attribWriteEnabled ? !attribWriteAttributes?.includes(a.name) : false,\n }))\n\n return { attribFields, writableFields, isSuccess, isFetching }\n}\n\nexport default useAttributeFields\n"],"names":["useAttributeFields","projectName","info","isSuccess","isFetching","useGetSiteInfoQuery","attributes","projectPermissions","useGetMyProjectPermissionsQuery","attrib_read","attrib_write","attribReadEnabled","attribReadAttributes","attribWriteEnabled","attribWriteAttributes","writableFields","a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAMA,KAAqB,CAAC,EAAE,aAAAC,QAA2C;AACjE,QAAA,EAAE,MAAMC,GAAM,WAAAC,GAAW,YAAAC,MAAeC,EAAoB,EAAE,MAAM,IAAM,GAC1E,EAAE,YAAAC,IAAa,GAAG,IAAIJ,KAAQ,CAAC,GAE/B,EAAE,MAAMK,EAAA,IAAuBC;AAAA,IACnC,EAAE,aAAAP,EAAY;AAAA,IACd,EAAE,MAAM,CAACA,EAAY;AAAA,EACvB,GACM,EAAE,aAAAQ,GAAa,cAAAC,EAAa,IAAIH,KAAsB,CAAC,GACvD,EAAE,SAASI,GAAmB,YAAYC,EAAqB,IAAIH,KAAe,CAAC,GACnF;AAAA,IACJ,SAASI;AAAA,IACT,YAAYC;AAAA,IACZ,QAAQC;AAAA,EACV,IAAIL,KAAgB,CAAC;AAUrB,SAAO,EAAE,cAPqCJ,EAC3C,OAAO,CAACU,MAAM,CAACL,MAAqBC,KAAA,gBAAAA,EAAsB,SAASI,EAAE,MAAK,EAC1E,IAAI,CAACA,OAAO;AAAA,IACX,GAAGA;AAAA,IACH,UAAUH,IAAqB,EAACC,KAAA,QAAAA,EAAuB,SAASE,EAAE,SAAQ;AAAA,EAAA,EAC1E,GAEmB,gBAAAD,GAAgB,WAAAZ,GAAW,YAAAC,EAAW;AAC/D;"}
@@ -1,2 +1,2 @@
1
- "use strict";const $=require("../../ContextMenu/useCreateContextMenu.cjs.js"),z=require("./useDeleteEntities.cjs.js"),h=require("../../../util/platform.cjs.js"),p=require("../utils/cellUtils.cjs.js"),J=require("../context/ClipboardContext.cjs.js"),f=require("../context/SelectionCellsContext.cjs.js"),Q=require("../context/ProjectTableContext.cjs.js"),X=require("../context/CellEditingContext.cjs.js"),P=require("./useBuildGroupByTableData.cjs.js");require("@ynput/ayon-react-components");require("lodash");require("react-toastify");require("uuid");require("../../../util/pubsub.cjs.js");const Z=require("../utils/getEntityViewerIds.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/TextWidget.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("clsx");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/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/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.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/updateListsAttributes.cjs.js");require("../../../api/queries/folders/getFolders.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/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.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/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.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("react");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.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("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("date-fns");require("../ProjectTreeTable.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/ColumnHeaderMenu.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Feedback/FeedbackContext.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/LinksManager/LinksManagerDialog.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");const O=({attribs:x,headerLabels:A=[],onOpenNew:s})=>{const{projectName:D,showHierarchy:C,getEntityById:y,toggleExpandAll:g,toggleExpands:w,expanded:R,contextMenuItems:B=[],powerpack:v,onOpenPlayer:T}=Q.useProjectTableContext(),{copyToClipboard:G,exportCSV:L,pasteFromClipboard:U}=J.useClipboard(),{selectedCells:E,clearSelection:V,selectCell:S,focusCell:W}=f.useSelectionCellsContext(),{inheritFromParent:K,history:k}=X.useCellEditing(),j=z({}),[Y]=$.useCreateContextMenu([],v),H=o=>o.reduce((e,u)=>{var m;const{rowId:r,colId:t}=p.parseCellId(u)||{};if(!r||!t||!t.startsWith("attrib_"))return e;const i=y(r);if(!i)return e;const d=i.entityId||i.id,l=t.replace("attrib_",""),a=x.find(c=>c.name===l),I=a==null?void 0:a.data.inherit;if((m=i.ownAttrib)!=null&&m.includes(l)&&I){const c=e.findIndex(_=>_.entityId===d);c>=0?e[c].attribs.includes(l)||e[c].attribs.push(l):e.push({rowId:d,entityId:d,entityType:"folderId"in i?"task":"folder",attribs:[l],ownAttrib:i.ownAttrib||[],folderId:i.parentId??i.folderId})}return e},[]),b={"copy-paste":(o,e,u,r)=>{var t;return[{label:"Copy",icon:"content_copy",shortcut:h.getPlatformShortcutKey("c",[h.KeyMode.Ctrl]),command:()=>G(r.selectedCells),hidden:e.isGroup||e.columnId==="thumbnail"},{label:`Copy row${r.selectedFullRows.length>1?"s":""}`,icon:"content_copy",command:()=>G(r.selectedFullRows,!0),hidden:e.columnId!=="name"||!r.selectedFullRows.some(i=>{var d,l;return((d=p.parseCellId(i))==null?void 0:d.rowId)===((l=p.parseCellId(e.cellId))==null?void 0:l.rowId)})},{label:"Paste",icon:"content_paste",shortcut:h.getPlatformShortcutKey("v",[h.KeyMode.Ctrl]),command:()=>U(r.selectedCells),hidden:e.columnId==="name"||e.columnId==="thumbnail"||e.isGroup,disabled:(t=e.attribField)==null?void 0:t.readOnly}]},"show-details":(o,e,u,r)=>({label:"Show details",icon:"dock_to_left",shortcut:"Double click",command:()=>{const t=p.getCellId(e.entityId,f.ROW_SELECTION_COLUMN_ID);S(t,!1,!1)},hidden:e.columnId!=="name"||r.selectedRows.length>1||e.isGroup}),"expand-collapse":(o,e,u,r)=>[{label:"Expand children",icon:"expand_all",shortcut:"Alt + click",command:()=>g(r.selectedRows,!0),hidden:e.columnId!=="name"||e.entityType!=="folder"},{label:"Collapse children",icon:"collapse_all",shortcut:"Alt + click",command:()=>g(r.selectedRows,!1),hidden:e.columnId!=="name"||e.entityType!=="folder"},{label:"Expand",icon:"expand_all",command:()=>w(r.selectedRows,!0),hidden:e.columnId!=="name"||!e.isGroup||R[e.entityId]},{label:"Collapse",icon:"collapse_all",command:()=>w(r.selectedRows,!1),hidden:e.columnId!=="name"||!e.isGroup||!R[e.entityId]}],delete:(o,e,u,r)=>({label:"Delete",icon:"delete",danger:!0,command:()=>j(r.selectedRows),hidden:e.columnId!=="name"||e.isGroup}),inherit:(o,e,u,r)=>{const t=H(r.selectedCells),i=t.length>0&&C&&!(r.selectedRows.length>1&&r.selectedColumns.length>1);return{label:"Inherit from parent",icon:"disabled_by_default",command:()=>K(t),hidden:!i}},export:(o,e)=>({label:"Export selection",icon:"download",command:()=>L(Array.from(E),D),hidden:e.isGroup}),"create-folder":(o,e)=>[{label:"Create folder",icon:"create_new_folder",command:()=>s==null?void 0:s("folder"),hidden:e.columnId!=="name"||!C||!s},{label:"Create root folder",icon:"create_new_folder",command:()=>{V(),s==null||s("folder")},hidden:e.columnId!=="name"||!C||!s}],"create-task":(o,e)=>({label:"Create task",icon:"add_task",command:()=>s==null?void 0:s("task"),hidden:e.columnId!=="name"||!C||!s}),"open-viewer":(o,e,u,r)=>({label:"Open in viewer",icon:"play_circle",shortcut:"Spacebar",command:()=>{if(T){const t=y(e.entityId);if(t){const i=Z.getEntityViewierIds(t);T(i,{quickView:!0})}}},hidden:e.columnId!=="thumbnail"&&e.columnId!=="name"||e.isGroup})},F=o=>{const{rowId:e,colId:u}=p.parseCellId(o)||{};if(!e||!u)return;const r=y(e),t=x.find(l=>l.name===(u==null?void 0:u.replace("attrib_",""))),i=A.find(l=>l.id===u),d=r?"parentId"in r?r.parentId:"folderId"in r?r.folderId:void 0:void 0;return{cellId:o,columnId:u,entityId:(r==null?void 0:r.entityId)||(r==null?void 0:r.id)||e,entityType:r==null?void 0:r.entityType,parentId:d,attribField:t,isGroup:e.startsWith(P.GROUP_BY_ID),column:{id:u,label:(i==null?void 0:i.label)||""}}};return{handleTableBodyContextMenu:o=>{var M;const u=o.target.closest("td"),r=(M=u==null?void 0:u.firstElementChild)==null?void 0:M.id;if(!r)return;const t=F(r);if(!t)return;let i=Array.from(E);(!i.includes(r)||!i.length)&&(i=[r],S(r,!1,!1),W(r));const d=i.filter(n=>{var q;return((q=p.parseCellId(n))==null?void 0:q.colId)!==f.ROW_SELECTION_COLUMN_ID}),l=i.flatMap(n=>F(n)||[]),a=[],I=[],m=[],c=[];for(const{entityId:n,columnId:q}of l)n&&!a.includes(n)&&a.push(n),q&&!I.includes(q)&&I.push(q),q===f.ROW_SELECTION_COLUMN_ID&&!m.includes(n)&&m.push(n),n.startsWith(P.GROUP_BY_ID)&&c.push(n);const _=B.flatMap(n=>{var q;return typeof n=="function"?n(o,t,l,{selectedCells:d,selectedRows:a,selectedColumns:I,selectedFullRows:m,selectedGroups:c},{history:k}):(q=b[n])==null?void 0:q.call(b,o,t,l,{selectedCells:d,selectedRows:a,selectedColumns:I,selectedFullRows:m,selectedGroups:c},{history:k})});Y(o,_)}}};module.exports=O;
1
+ "use strict";const z=require("../../ContextMenu/useCreateContextMenu.cjs.js"),J=require("./useDeleteEntities.cjs.js"),f=require("../../../util/platform.cjs.js"),p=require("../utils/cellUtils.cjs.js"),Q=require("../context/ClipboardContext.cjs.js"),y=require("../context/SelectionCellsContext.cjs.js"),X=require("../context/ProjectTableContext.cjs.js"),Z=require("../context/CellEditingContext.cjs.js"),P=require("./useBuildGroupByTableData.cjs.js");require("@ynput/ayon-react-components");require("lodash");require("react-toastify");require("uuid");require("../../../util/pubsub.cjs.js");const O=require("../utils/getEntityViewerIds.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("@tanstack/react-table");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/TextWidget.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("clsx");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/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/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.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/updateListsAttributes.cjs.js");require("../../../api/queries/folders/getFolders.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/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.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/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.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("react");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.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("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("date-fns");require("../ProjectTreeTable.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/ColumnHeaderMenu.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredPowerpackVersion.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Feedback/FeedbackContext.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/DetailsMetaData/DetailsMetaData.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("../../../components/LinksManager/LinksManagerDialog.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");const N=({attribs:x,headerLabels:A=[],onOpenNew:s})=>{const{projectName:D,showHierarchy:h,getEntityById:b,toggleExpandAll:w,toggleExpands:g,expanded:R,contextMenuItems:v=[],powerpack:B,onOpenPlayer:T}=X.useProjectTableContext(),{copyToClipboard:G,exportCSV:L,pasteFromClipboard:U}=Q.useClipboard(),{selectedCells:S,clearSelection:V,selectCell:E,focusCell:W}=y.useSelectionCellsContext(),{inheritFromParent:K,history:M}=Z.useCellEditing(),j=J({}),[Y]=z.useCreateContextMenu([],B),H=l=>l.reduce((e,u)=>{var m;const{rowId:r,colId:t}=p.parseCellId(u)||{};if(!r||!t||!t.startsWith("attrib_"))return e;const i=b(r);if(!i)return e;const d=i.entityId||i.id,n=t.replace("attrib_",""),a=x.find(q=>q.name===n),I=a==null?void 0:a.data.inherit;if((m=i.ownAttrib)!=null&&m.includes(n)&&I){const q=e.findIndex(C=>C.entityId===d);q>=0?e[q].attribs.includes(n)||e[q].attribs.push(n):e.push({rowId:d,entityId:d,entityType:"folderId"in i?"task":"folder",attribs:[n],ownAttrib:i.ownAttrib||[],folderId:i.parentId??i.folderId})}return e},[]),_={"copy-paste":(l,e,u,r)=>{var t;return[{label:"Copy",icon:"content_copy",shortcut:f.getPlatformShortcutKey("c",[f.KeyMode.Ctrl]),command:()=>G(r.selectedCells),hidden:e.isGroup||e.columnId==="thumbnail"},{label:`Copy row${r.selectedFullRows.length>1?"s":""}`,icon:"content_copy",command:()=>G(r.selectedFullRows,!0),hidden:e.columnId!=="name"||!r.selectedFullRows.some(i=>{var d,n;return((d=p.parseCellId(i))==null?void 0:d.rowId)===((n=p.parseCellId(e.cellId))==null?void 0:n.rowId)})},{label:"Paste",icon:"content_paste",shortcut:f.getPlatformShortcutKey("v",[f.KeyMode.Ctrl]),command:()=>U(r.selectedCells),hidden:e.columnId==="name"||e.columnId==="thumbnail"||e.isGroup,disabled:(t=e.attribField)==null?void 0:t.readOnly}]},"show-details":(l,e,u,r)=>({label:"Show details",icon:"dock_to_left",shortcut:"Double click",command:()=>{const t=p.getCellId(e.entityId,y.ROW_SELECTION_COLUMN_ID);E(t,!1,!1)},hidden:e.columnId!=="name"||r.selectedRows.length>1||e.isGroup}),"expand-collapse":(l,e,u,r)=>[{label:"Expand children",icon:"expand_all",shortcut:"Alt + click",command:()=>w(r.selectedRows,!0),hidden:e.columnId!=="name"||e.entityType!=="folder"},{label:"Collapse children",icon:"collapse_all",shortcut:"Alt + click",command:()=>w(r.selectedRows,!1),hidden:e.columnId!=="name"||e.entityType!=="folder"},{label:"Expand",icon:"expand_all",command:()=>g(r.selectedRows,!0),hidden:e.columnId!=="name"||!e.isGroup||R[e.entityId]},{label:"Collapse",icon:"collapse_all",command:()=>g(r.selectedRows,!1),hidden:e.columnId!=="name"||!e.isGroup||!R[e.entityId]}],delete:(l,e,u,r)=>({label:"Delete",icon:"delete",danger:!0,command:()=>j(r.selectedRows),hidden:e.columnId!=="name"||e.isGroup}),inherit:(l,e,u,r)=>{const t=H(r.selectedCells),i=t.length>0&&h&&!(r.selectedRows.length>1&&r.selectedColumns.length>1);return{label:"Inherit from parent",icon:"disabled_by_default",command:()=>K(t),hidden:!i}},export:(l,e)=>({label:"Export selection",icon:"download",command:()=>L(Array.from(S),D),hidden:e.isGroup}),"create-folder":(l,e)=>[{label:"Create folder",icon:"create_new_folder",command:()=>s==null?void 0:s("folder"),hidden:e.columnId!=="name"||!h||!s},{label:"Create root folder",icon:"create_new_folder",command:()=>{V(),s==null||s("folder")},hidden:e.columnId!=="name"||!h||!s}],"create-task":(l,e)=>({label:"Create task",icon:"add_task",command:()=>s==null?void 0:s("task"),hidden:e.columnId!=="name"||!h||!s}),"open-viewer":(l,e,u,r)=>({label:"Open in viewer",icon:"play_circle",shortcut:"Spacebar",command:()=>{if(T){const t=b(e.entityId);if(t){const i=O.getEntityViewierIds(t);T(i,{quickView:!0})}}},hidden:e.columnId!=="thumbnail"&&e.columnId!=="name"||e.isGroup})},k=l=>{const{rowId:e,colId:u}=p.parseCellId(l)||{};if(!e||!u)return;const r=b(e),t=x.find(n=>n.name===(u==null?void 0:u.replace("attrib_",""))),i=A.find(n=>n.id===u),d=r?"parentId"in r?r.parentId:"folderId"in r?r.folderId:void 0:void 0;return{cellId:l,columnId:u,entityId:(r==null?void 0:r.entityId)||(r==null?void 0:r.id)||e,entityType:r==null?void 0:r.entityType,parentId:d,attribField:t,isGroup:e.startsWith(P.GROUP_BY_ID),column:{id:u,label:(i==null?void 0:i.label)||""}}};return{handleTableBodyContextMenu:l=>{var F;const u=l.target.closest("td"),r=(F=u==null?void 0:u.firstElementChild)==null?void 0:F.id;if(!r)return;const t=k(r);if(!t)return;let i=Array.from(S);(!i.includes(r)||!i.length)&&(i=[r],E(r,!1,!1),W(r));const d=i.filter(o=>{var c;return((c=p.parseCellId(o))==null?void 0:c.colId)!==y.ROW_SELECTION_COLUMN_ID}),n=i.flatMap(o=>k(o)||[]),a=[...new Map(n.map(o=>[o.entityId,o])).values()],I=[],m=[],q=[],C=[];for(const{entityId:o,columnId:c}of a)o&&!I.includes(o)&&I.push(o),c&&!m.includes(c)&&m.push(c),c===y.ROW_SELECTION_COLUMN_ID&&!q.includes(o)&&q.push(o),o.startsWith(P.GROUP_BY_ID)&&C.push(o);const $=v.flatMap(o=>{var c;return typeof o=="function"?o(l,t,a,{selectedCells:d,selectedRows:I,selectedColumns:m,selectedFullRows:q,selectedGroups:C},{history:M}):(c=_[o])==null?void 0:c.call(_,l,t,a,{selectedCells:d,selectedRows:I,selectedColumns:m,selectedFullRows:q,selectedGroups:C},{history:M})});Y(l,$)}}};module.exports=N;
2
2
  //# sourceMappingURL=useCellContextMenu.cjs.js.map