@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
@@ -1,5 +1,5 @@
1
1
  import "../../base/client.es.js";
2
- import { api as R } from "../../generated/graphql.es.js";
2
+ import { api as E } from "../../generated/graphql.es.js";
3
3
  import "../../generated/graphqlLinks.es.js";
4
4
  import "../../generated/access.es.js";
5
5
  import "../../generated/actions.es.js";
@@ -11,7 +11,7 @@ import "../../generated/authentication.es.js";
11
11
  import "../../generated/bundles.es.js";
12
12
  import "../../generated/configuration.es.js";
13
13
  import "../../generated/desktop.es.js";
14
- import "../../generated/entityLists.es.js";
14
+ import { api as w } from "../../generated/entityLists.es.js";
15
15
  import "../../generated/events.es.js";
16
16
  import "../../generated/files.es.js";
17
17
  import "../../generated/folders.es.js";
@@ -43,59 +43,69 @@ import "lodash";
43
43
  import "react-toastify";
44
44
  import "uuid";
45
45
  import d from "../../../util/pubsub.es.js";
46
- const T = 500, v = 100, h = R.enhanceEndpoints({
46
+ const T = (i) => {
47
+ if (!i) return {};
48
+ try {
49
+ return typeof i != "string" ? i ?? {} : JSON.parse(i);
50
+ } catch (t) {
51
+ return console.warn("Failed to parse entity list data field:", t), {};
52
+ }
53
+ }, R = 500, v = 100, h = E.enhanceEndpoints({
47
54
  endpoints: {
48
55
  GetLists: {
49
- transformResponse: (o) => ({
56
+ transformResponse: (i) => ({
50
57
  // @ts-expect-error - entityType is string
51
- lists: o.project.entityLists.edges.map((e) => e.node),
52
- pageInfo: o.project.entityLists.pageInfo
58
+ lists: i.project.entityLists.edges.map((t) => ({
59
+ ...t.node,
60
+ data: T(t.node.data)
61
+ })),
62
+ pageInfo: i.project.entityLists.pageInfo
53
63
  })
54
64
  },
55
65
  GetListItems: {
56
- transformResponse: (o) => ({
57
- items: o.project.entityLists.edges.flatMap(
58
- (e) => e.node.items.edges.map(({ node: t, ...n }) => ({
59
- ...t,
66
+ transformResponse: (i) => ({
67
+ items: i.project.entityLists.edges.flatMap(
68
+ (t) => t.node.items.edges.map(({ node: e, ...n }) => ({
69
+ ...e,
60
70
  ...n,
61
71
  attrib: C(n.allAttrib)
62
72
  }))
63
73
  ),
64
- pageInfo: o.project.entityLists.edges[0].node.items.pageInfo
74
+ pageInfo: i.project.entityLists.edges[0].node.items.pageInfo
65
75
  })
66
76
  },
67
77
  GetListsItemsForReviewSession: {
68
- transformResponse: (o) => ({
69
- lists: o.project.entityLists.edges.map((e) => e.node),
70
- pageInfo: o.project.entityLists.pageInfo
78
+ transformResponse: (i) => ({
79
+ lists: i.project.entityLists.edges.map((t) => t.node),
80
+ pageInfo: i.project.entityLists.pageInfo
71
81
  })
72
82
  }
73
83
  }
74
- }), _ = h.injectEndpoints({
75
- endpoints: (o) => ({
76
- getListsInfinite: o.infiniteQuery({
84
+ }), G = h.injectEndpoints({
85
+ endpoints: (i) => ({
86
+ getListsInfinite: i.infiniteQuery({
77
87
  infiniteQueryOptions: {
78
88
  initialPageParam: { cursor: "" },
79
- getNextPageParam: (e) => {
80
- const { pageInfo: t } = e;
81
- if (!(!t.hasNextPage || !t.endCursor))
89
+ getNextPageParam: (t) => {
90
+ const { pageInfo: e } = t;
91
+ if (!(!e.hasNextPage || !e.endCursor))
82
92
  return {
83
- cursor: t.endCursor
93
+ cursor: e.endCursor
84
94
  };
85
95
  }
86
96
  },
87
- queryFn: async ({ queryArg: e, pageParam: t }, n) => {
97
+ queryFn: async ({ queryArg: t, pageParam: e }, n) => {
88
98
  try {
89
- const { cursor: i } = t, s = {
90
- ...e,
91
- first: T,
92
- after: i || void 0
93
- }, r = await n.dispatch(
94
- h.endpoints.GetLists.initiate(s, { forceRefetch: !0 })
99
+ const { cursor: s } = e, r = {
100
+ ...t,
101
+ first: R,
102
+ after: s || void 0
103
+ }, a = await n.dispatch(
104
+ h.endpoints.GetLists.initiate(r, { forceRefetch: !0 })
95
105
  );
96
- if (r.error) throw r.error;
106
+ if (a.error) throw a.error;
97
107
  return {
98
- data: r.data || {
108
+ data: a.data || {
99
109
  lists: [],
100
110
  pageInfo: {
101
111
  hasNextPage: !1,
@@ -105,68 +115,68 @@ const T = 500, v = 100, h = R.enhanceEndpoints({
105
115
  }
106
116
  }
107
117
  };
108
- } catch (i) {
109
- return console.error("Error in getListsInfinite queryFn:", i), { error: { status: "FETCH_ERROR", error: i.message } };
118
+ } catch (s) {
119
+ return console.error("Error in getListsInfinite queryFn:", s), { error: { status: "FETCH_ERROR", error: s.message } };
110
120
  }
111
121
  },
112
- providesTags: (e) => [
122
+ providesTags: (t) => [
113
123
  { type: "entityList", id: "LIST" },
114
- ...((e == null ? void 0 : e.pages.flatMap((t) => t.lists)) || []).map((t) => ({
124
+ ...((t == null ? void 0 : t.pages.flatMap((e) => e.lists)) || []).map((e) => ({
115
125
  type: "entityList",
116
- id: t.id
126
+ id: e.id
117
127
  })),
118
- ...((e == null ? void 0 : e.pages.flatMap((t) => t.lists)) || []).map((t) => ({
128
+ ...((t == null ? void 0 : t.pages.flatMap((e) => e.lists)) || []).map((e) => ({
119
129
  type: "entityList",
120
- id: t.entityListType
130
+ id: e.entityListType
121
131
  }))
122
132
  ],
123
- async onCacheEntryAdded(e, { cacheDataLoaded: t, cacheEntryRemoved: n, dispatch: i, updateCachedData: s }) {
124
- let r;
133
+ async onCacheEntryAdded(t, { cacheDataLoaded: e, cacheEntryRemoved: n, dispatch: s, updateCachedData: r }) {
134
+ let a;
125
135
  try {
126
- await t;
127
- const p = (a, c) => {
128
- if (a !== "entity_list.changed") return;
129
- const y = c.summary, f = y.id;
130
- f && (s((L) => {
131
- const u = L.pages.flatMap((g) => g.lists).find((g) => g.id === f);
136
+ await e;
137
+ const p = (o, c) => {
138
+ if (o !== "entity_list.changed") return;
139
+ const m = c.summary, f = m.id;
140
+ f && (r((l) => {
141
+ const u = l.pages.flatMap((g) => g.lists).find((g) => g.id === f);
132
142
  if (!u) return;
133
143
  const I = {
134
144
  ...u,
135
- label: y.label,
136
- entityType: y.entity_type,
137
- entityListType: y.entity_list_type,
138
- count: y.count
145
+ label: m.label,
146
+ entityType: m.entity_type,
147
+ entityListType: m.entity_list_type,
148
+ count: m.count
139
149
  };
140
150
  Object.assign(u, I);
141
- }), i(R.util.invalidateTags([{ type: "entityList", id: "LIST" }])));
151
+ }), s(E.util.invalidateTags([{ type: "entityList", id: "LIST" }])));
142
152
  };
143
- r = d.subscribe("entity_list.changed", p);
153
+ a = d.subscribe("entity_list.changed", p);
144
154
  } catch {
145
155
  }
146
- await n, d.unsubscribe(r);
156
+ await n, d.unsubscribe(a);
147
157
  }
148
158
  }),
149
- getListItemsInfinite: o.infiniteQuery({
159
+ getListItemsInfinite: i.infiniteQuery({
150
160
  infiniteQueryOptions: {
151
161
  initialPageParam: { cursor: "" },
152
- getNextPageParam: (e) => {
153
- const { pageInfo: t } = e;
154
- if (!(!t.hasNextPage || !t.endCursor))
162
+ getNextPageParam: (t) => {
163
+ const { pageInfo: e } = t;
164
+ if (!(!e.hasNextPage || !e.endCursor))
155
165
  return {
156
- cursor: t.endCursor
166
+ cursor: e.endCursor
157
167
  };
158
168
  }
159
169
  },
160
- queryFn: async ({ queryArg: e, pageParam: t }, n) => {
170
+ queryFn: async ({ queryArg: t, pageParam: e }, n) => {
161
171
  try {
162
- const { sortBy: i, desc: s, ...r } = e, { cursor: p } = t, a = {
163
- ...r,
172
+ const { sortBy: s, desc: r, ...a } = t, { cursor: p } = e, o = {
173
+ ...a,
164
174
  first: v,
165
175
  after: p || void 0
166
176
  };
167
- a.after = p || void 0, a.first = v, i && (a.sortBy = i, s && (a.before = p || void 0, a.after = void 0, a.last = v, a.first = void 0));
177
+ o.after = p || void 0, o.first = v, s && (o.sortBy = s, r && (o.before = p || void 0, o.after = void 0, o.last = v, o.first = void 0));
168
178
  const c = await n.dispatch(
169
- h.endpoints.GetListItems.initiate(a, {
179
+ h.endpoints.GetListItems.initiate(o, {
170
180
  forceRefetch: !0
171
181
  })
172
182
  );
@@ -182,71 +192,71 @@ const T = 500, v = 100, h = R.enhanceEndpoints({
182
192
  }
183
193
  }
184
194
  };
185
- } catch (i) {
186
- return console.error("Error in getListsInfinite queryFn:", i), { error: { status: "FETCH_ERROR", error: i.message } };
195
+ } catch (s) {
196
+ return console.error("Error in getListsInfinite queryFn:", s), { error: { status: "FETCH_ERROR", error: s.message } };
187
197
  }
188
198
  },
189
- providesTags: (e, t, { listId: n, projectName: i }) => [
199
+ providesTags: (t, e, { listId: n, projectName: s }) => [
190
200
  { type: "entityListItem", id: "LIST" },
191
201
  { type: "entityListItem", id: n },
192
- { type: "entityListItem", id: i },
193
- ...((e == null ? void 0 : e.pages.flatMap((s) => s.items)) || []).filter((s) => !!s).flatMap((s) => [
202
+ { type: "entityListItem", id: s },
203
+ ...((t == null ? void 0 : t.pages.flatMap((r) => r.items)) || []).filter((r) => !!r).flatMap((r) => [
194
204
  {
195
205
  type: "entityListItem",
196
- id: s.id
206
+ id: r.id
197
207
  },
198
208
  {
199
209
  type: "entityListItem",
200
- id: s.entityId
210
+ id: r.entityId
201
211
  }
202
212
  ])
203
213
  ],
204
- async onCacheEntryAdded(e, { cacheDataLoaded: t, cacheEntryRemoved: n, dispatch: i }) {
214
+ async onCacheEntryAdded(t, { cacheDataLoaded: e, cacheEntryRemoved: n, dispatch: s }) {
205
215
  var p;
206
- let s, r;
216
+ let r, a;
207
217
  try {
208
- const f = (p = (await t).data.pages.flatMap((m) => m.items)[0]) == null ? void 0 : p.entityType, L = "entity_list.changed", u = `entity.${f}`, I = (m) => {
209
- i(R.util.invalidateTags([{ type: "entityListItem", id: m }]));
210
- }, g = (m, P) => {
211
- if (m !== L) return;
212
- const l = P.summary.id;
213
- l && I(l);
214
- }, b = (m, P) => {
215
- if (!m.startsWith(u)) return;
216
- const l = P.summary.entityId;
217
- l && I(l);
218
+ const f = (p = (await e).data.pages.flatMap((y) => y.items)[0]) == null ? void 0 : p.entityType, l = "entity_list.changed", u = `entity.${f}`, I = (y) => {
219
+ s(E.util.invalidateTags([{ type: "entityListItem", id: y }]));
220
+ }, g = (y, P) => {
221
+ if (y !== l) return;
222
+ const L = P.summary.id;
223
+ L && I(L);
224
+ }, b = (y, P) => {
225
+ if (!y.startsWith(u)) return;
226
+ const L = P.summary.entityId;
227
+ L && I(L);
218
228
  };
219
- s = d.subscribe(L, g), f && (r = d.subscribe(u, b));
229
+ r = d.subscribe(l, g), f && (a = d.subscribe(u, b));
220
230
  } catch {
221
231
  }
222
- await n, d.unsubscribe(s), d.unsubscribe(r);
232
+ await n, d.unsubscribe(r), d.unsubscribe(a);
223
233
  }
224
234
  }),
225
- getListsItemsForReviewSession: o.infiniteQuery({
235
+ getListsItemsForReviewSession: i.infiniteQuery({
226
236
  infiniteQueryOptions: {
227
237
  initialPageParam: { cursor: "" },
228
- getNextPageParam: (e) => {
229
- const { pageInfo: t } = e;
230
- if (!(!t.hasNextPage || !t.endCursor))
238
+ getNextPageParam: (t) => {
239
+ const { pageInfo: e } = t;
240
+ if (!(!e.hasNextPage || !e.endCursor))
231
241
  return {
232
- cursor: t.endCursor
242
+ cursor: e.endCursor
233
243
  };
234
244
  }
235
245
  },
236
- queryFn: async ({ queryArg: e, pageParam: t }, n) => {
246
+ queryFn: async ({ queryArg: t, pageParam: e }, n) => {
237
247
  try {
238
- const { cursor: i } = t, s = {
239
- ...e,
240
- first: T,
241
- after: i || void 0
242
- }, r = await n.dispatch(
243
- h.endpoints.GetListsItemsForReviewSession.initiate(s, {
248
+ const { cursor: s } = e, r = {
249
+ ...t,
250
+ first: R,
251
+ after: s || void 0
252
+ }, a = await n.dispatch(
253
+ h.endpoints.GetListsItemsForReviewSession.initiate(r, {
244
254
  forceRefetch: !0
245
255
  })
246
256
  );
247
- if (r.error) throw r.error;
257
+ if (a.error) throw a.error;
248
258
  return {
249
- data: r.data || {
259
+ data: a.data || {
250
260
  lists: [],
251
261
  pageInfo: {
252
262
  hasNextPage: !1,
@@ -256,36 +266,51 @@ const T = 500, v = 100, h = R.enhanceEndpoints({
256
266
  }
257
267
  }
258
268
  };
259
- } catch (i) {
260
- return console.error("Error in getListsInfinite queryFn:", i), { error: { status: "FETCH_ERROR", error: i.message } };
269
+ } catch (s) {
270
+ return console.error("Error in getListsInfinite queryFn:", s), { error: { status: "FETCH_ERROR", error: s.message } };
261
271
  }
262
272
  },
263
- providesTags: (e) => [
273
+ providesTags: (t) => [
264
274
  { type: "entityList", id: "LIST" },
265
- ...((e == null ? void 0 : e.pages.flatMap((t) => t.lists)) || []).map((t) => ({
275
+ ...((t == null ? void 0 : t.pages.flatMap((e) => e.lists)) || []).map((e) => ({
266
276
  type: "entityList",
267
- id: t.id
277
+ id: e.id
268
278
  }))
269
279
  ]
270
280
  })
271
281
  })
282
+ }), S = w.enhanceEndpoints({
283
+ endpoints: {
284
+ getEntityList: {
285
+ transformResponse: (i) => ({
286
+ ...i,
287
+ data: T(i.data)
288
+ }),
289
+ providesTags: (i, t, { listId: e, projectName: n }) => [
290
+ { type: "entityList", id: e },
291
+ { type: "entityList", id: n },
292
+ ...i ? [{ type: "entityList", id: i.entityListType }] : []
293
+ ]
294
+ }
295
+ }
272
296
  }), {
273
- useGetListsInfiniteInfiniteQuery: ht,
274
- useGetListItemsInfiniteInfiniteQuery: Pt,
275
- useGetListsItemsForReviewSessionInfiniteQuery: vt,
276
- useLazyGetListsQuery: Rt,
277
- useLazyGetListsItemsForReviewSessionQuery: Tt,
278
- useLazyGetListItemsQuery: bt
279
- } = _;
297
+ useGetListsInfiniteInfiniteQuery: Et,
298
+ useGetListItemsInfiniteInfiniteQuery: Rt,
299
+ useGetListsItemsForReviewSessionInfiniteQuery: Tt,
300
+ useLazyGetListsQuery: bt,
301
+ useLazyGetListsItemsForReviewSessionQuery: _t,
302
+ useLazyGetListItemsQuery: wt
303
+ } = G, { useGetEntityListQuery: Ct } = S;
280
304
  export {
281
- T as LISTS_PER_PAGE,
305
+ R as LISTS_PER_PAGE,
282
306
  v as LIST_ITEMS_PER_PAGE,
283
- _ as default,
284
- Pt as useGetListItemsInfiniteInfiniteQuery,
285
- ht as useGetListsInfiniteInfiniteQuery,
286
- vt as useGetListsItemsForReviewSessionInfiniteQuery,
287
- bt as useLazyGetListItemsQuery,
288
- Tt as useLazyGetListsItemsForReviewSessionQuery,
289
- Rt as useLazyGetListsQuery
307
+ G as default,
308
+ Ct as useGetEntityListQuery,
309
+ Rt as useGetListItemsInfiniteInfiniteQuery,
310
+ Et as useGetListsInfiniteInfiniteQuery,
311
+ Tt as useGetListsItemsForReviewSessionInfiniteQuery,
312
+ wt as useLazyGetListItemsQuery,
313
+ _t as useLazyGetListsItemsForReviewSessionQuery,
314
+ bt as useLazyGetListsQuery
290
315
  };
291
316
  //# sourceMappingURL=getLists.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getLists.es.js","sources":["../../../../../../src/api/queries/entityLists/getLists.ts"],"sourcesContent":["import { gqlApi } from '@shared/api/generated'\nimport {\n FetchBaseQueryError,\n DefinitionsFromApi,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\nimport type {\n GetListItemsQuery,\n GetListItemsQueryVariables,\n GetListsItemsForReviewSessionQuery,\n GetListsItemsForReviewSessionResult,\n GetListsQuery,\n GetListsQueryVariables,\n} from '@shared/api'\nimport { parseAllAttribs } from '../overview'\nimport { PubSub } from '@shared/util'\nimport {\n GetListItemsResult,\n GetListsResult,\n ListItemMessage,\n ListItemsPageParam,\n ListsPageParam,\n} from './types'\n\n// GRAPHQL API (getLists and getListItems)\n// Define the LISTS_PER_PAGE constant for pagination\nexport const LISTS_PER_PAGE = 500\nexport const LIST_ITEMS_PER_PAGE = 100\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetLists' | 'GetListItems'> & {\n GetLists: OverrideResultType<Definitions['GetLists'], GetListsResult>\n GetListItems: OverrideResultType<Definitions['GetListItems'], GetListItemsResult>\n GetListsItemsForReviewSession: OverrideResultType<\n Definitions['GetListsItemsForReviewSession'],\n GetListsItemsForReviewSessionResult\n >\n}\n\nconst getListsGqlApiEnhanced = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetLists: {\n transformResponse: (response: GetListsQuery): GetListsResult => {\n return {\n // @ts-expect-error - entityType is string\n lists: response.project.entityLists.edges.map((edge) => edge.node),\n pageInfo: response.project.entityLists.pageInfo,\n }\n },\n },\n GetListItems: {\n transformResponse: (response: GetListItemsQuery): GetListItemsResult => {\n return {\n items: response.project.entityLists.edges.flatMap((listEdge) =>\n listEdge.node.items.edges.map(({ node, ...edge }) => {\n return {\n ...node,\n ...edge,\n attrib: parseAllAttribs(edge.allAttrib),\n } as GetListItemsResult['items'][number]\n }),\n ),\n pageInfo: response.project.entityLists.edges[0].node.items.pageInfo,\n }\n },\n },\n GetListsItemsForReviewSession: {\n transformResponse: (\n response: GetListsItemsForReviewSessionQuery,\n ): GetListsItemsForReviewSessionResult => {\n return {\n lists: response.project.entityLists.edges.map((edge) => edge.node),\n pageInfo: response.project.entityLists.pageInfo,\n }\n },\n },\n },\n})\n\nconst getListsGqlApiInjected = getListsGqlApiEnhanced.injectEndpoints({\n endpoints: (build) => ({\n getListsInfinite: build.infiniteQuery<\n GetListsResult,\n Omit<GetListsQueryVariables, 'first' | 'after' | 'before'>,\n ListsPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '' },\n getNextPageParam: (lastPage) => {\n const { pageInfo } = lastPage\n if (!pageInfo.hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { cursor } = pageParam\n\n // Build the query parameters for GetLists\n const queryParams = {\n ...queryArg,\n first: LISTS_PER_PAGE,\n after: cursor || undefined,\n }\n\n // Call the existing GetLists endpoint\n const result = await api.dispatch(\n getListsGqlApiEnhanced.endpoints.GetLists.initiate(queryParams, { forceRefetch: true }),\n )\n\n if (result.error) throw result.error\n\n return {\n data: result.data || {\n lists: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n },\n }\n } catch (e: any) {\n console.error('Error in getListsInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result) => [\n { type: 'entityList', id: 'LIST' },\n ...(result?.pages.flatMap((page) => page.lists) || []).map((list) => ({\n type: 'entityList' as const,\n id: list.id,\n })),\n ...(result?.pages.flatMap((page) => page.lists) || []).map((list) => ({\n type: 'entityList' as const,\n id: list.entityListType,\n })),\n ],\n async onCacheEntryAdded(\n _args,\n { cacheDataLoaded, cacheEntryRemoved, dispatch, updateCachedData },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const handlePubSub = (topic: string, message: ListItemMessage) => {\n if (topic !== 'entity_list.changed') return\n const summary = message.summary\n const id = summary.id\n if (!id) return\n\n // We have all the data we need to update the cache\n updateCachedData((draft) => {\n const list = draft.pages.flatMap((page) => page.lists).find((l) => l.id === id)\n if (!list) return\n const newList = {\n ...list,\n label: summary.label,\n entityType: summary.entity_type,\n entityListType: summary.entity_list_type,\n count: summary.count,\n }\n\n Object.assign(list, newList)\n })\n // NOTE: We have to invalidate here as we don't know if other fields are updated not included in the updateCachedData\n // invalidates lists list cache\n dispatch(gqlApi.util.invalidateTags([{ type: 'entityList', id: `LIST` }]))\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity_list.changed', handlePubSub)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n }),\n getListItemsInfinite: build.infiniteQuery<\n GetListItemsResult,\n Omit<GetListItemsQueryVariables, 'first' | 'after' | 'before' | 'last'> & { desc?: boolean },\n ListItemsPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '' },\n getNextPageParam: (lastPage) => {\n const { pageInfo } = lastPage\n if (!pageInfo.hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { sortBy, desc, ...rest } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetLists\n const queryParams: GetListItemsQueryVariables = {\n ...rest,\n first: LIST_ITEMS_PER_PAGE,\n after: cursor || undefined,\n }\n\n // Add cursor-based pagination\n queryParams.after = cursor || undefined\n queryParams.first = LIST_ITEMS_PER_PAGE\n\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.after = undefined\n queryParams.last = LIST_ITEMS_PER_PAGE\n queryParams.first = undefined\n }\n }\n\n // Call the existing GetLists endpoint\n const result = await api.dispatch(\n getListsGqlApiEnhanced.endpoints.GetListItems.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n\n return {\n data: result.data || {\n items: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n },\n }\n } catch (e: any) {\n console.error('Error in getListsInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { listId, projectName }) => [\n { type: 'entityListItem', id: 'LIST' },\n { type: 'entityListItem', id: listId },\n { type: 'entityListItem', id: projectName },\n ...(result?.pages.flatMap((page) => page.items) || [])\n .filter((i) => !!i)\n .flatMap((item) => [\n {\n type: 'entityListItem',\n id: item.id,\n },\n {\n type: 'entityListItem',\n id: item.entityId,\n },\n ]),\n ],\n async onCacheEntryAdded(_args, { cacheDataLoaded, cacheEntryRemoved, dispatch }) {\n let token, token2\n try {\n // wait for the initial query to resolve before proceeding\n const cache = await cacheDataLoaded\n const pages = cache.data.pages\n const items = pages.flatMap((page) => page.items)\n // get entityType of first item\n const entityType = items[0]?.entityType\n\n const listTopic = `entity_list.changed`\n const entityTypeTopic = `entity.${entityType}`\n\n const invalidateListItems = (id: string) => {\n dispatch(gqlApi.util.invalidateTags([{ type: 'entityListItem', id: id }]))\n }\n\n const handleListMessage = (topic: string, message: ListItemMessage) => {\n if (topic !== listTopic) return\n const summary = message.summary\n const id = summary.id\n if (!id) return\n invalidateListItems(id)\n }\n\n const handleEntityMessage = (topic: string, message: ListItemMessage) => {\n if (!topic.startsWith(entityTypeTopic)) return\n const summary = message.summary\n const id = summary.entityId\n // check for id\n if (!id) return\n invalidateListItems(id)\n }\n\n // sub to websocket topic\n token = PubSub.subscribe(listTopic, handleListMessage)\n if (entityType) token2 = PubSub.subscribe(entityTypeTopic, handleEntityMessage)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n PubSub.unsubscribe(token2)\n },\n }),\n getListsItemsForReviewSession: build.infiniteQuery<\n GetListsItemsForReviewSessionResult,\n Omit<GetListsQueryVariables, 'first' | 'after' | 'before' | 'filter'>,\n ListsPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '' },\n getNextPageParam: (lastPage) => {\n const { pageInfo } = lastPage\n if (!pageInfo.hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { cursor } = pageParam\n\n // Build the query parameters for GetLists\n const queryParams = {\n ...queryArg,\n first: LISTS_PER_PAGE,\n after: cursor || undefined,\n }\n\n // Call the existing GetLists endpoint\n const result = await api.dispatch(\n getListsGqlApiEnhanced.endpoints.GetListsItemsForReviewSession.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n\n return {\n data: result.data || {\n lists: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n },\n }\n } catch (e: any) {\n console.error('Error in getListsInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result) => [\n { type: 'entityList', id: 'LIST' },\n ...(result?.pages.flatMap((page) => page.lists) || []).map((list) => ({\n type: 'entityList' as const,\n id: list.id,\n })),\n ],\n }),\n }),\n})\n\nexport default getListsGqlApiInjected\n\nexport const {\n useGetListsInfiniteInfiniteQuery,\n useGetListItemsInfiniteInfiniteQuery,\n useGetListsItemsForReviewSessionInfiniteQuery,\n useLazyGetListsQuery,\n useLazyGetListsItemsForReviewSessionQuery,\n useLazyGetListItemsQuery,\n} = getListsGqlApiInjected\n"],"names":["LISTS_PER_PAGE","LIST_ITEMS_PER_PAGE","getListsGqlApiEnhanced","gqlApi","response","edge","listEdge","node","parseAllAttribs","getListsGqlApiInjected","build","lastPage","pageInfo","queryArg","pageParam","api","cursor","queryParams","result","e","page","list","_args","cacheDataLoaded","cacheEntryRemoved","dispatch","updateCachedData","token","handlePubSub","topic","message","summary","id","draft","l","newList","PubSub","sortBy","desc","rest","_e","listId","projectName","i","item","token2","entityType","_a","listTopic","entityTypeTopic","invalidateListItems","handleListMessage","handleEntityMessage","useGetListsInfiniteInfiniteQuery","useGetListItemsInfiniteInfiniteQuery","useGetListsItemsForReviewSessionInfiniteQuery","useLazyGetListsQuery","useLazyGetListsItemsForReviewSessionQuery","useLazyGetListItemsQuery"],"mappings":"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"}
1
+ {"version":3,"file":"getLists.es.js","sources":["../../../../../../src/api/queries/entityLists/getLists.ts"],"sourcesContent":["import { entityListsApi, gqlApi } from '@shared/api/generated'\nimport {\n FetchBaseQueryError,\n DefinitionsFromApi,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\nimport type {\n GetListItemsQuery,\n GetListItemsQueryVariables,\n GetListsItemsForReviewSessionQuery,\n GetListsItemsForReviewSessionResult,\n GetListsQuery,\n GetListsQueryVariables,\n} from '@shared/api'\nimport { parseAllAttribs } from '../overview'\nimport { PubSub } from '@shared/util'\nimport {\n GetListItemsResult,\n GetListsResult,\n ListItemMessage,\n ListItemsPageParam,\n ListsPageParam,\n} from './types'\n\n// Helper function to safely parse entity list data field from JSON string to object\nconst parseEntityListData = (data: string | null | undefined): Record<string, any> => {\n if (!data) return {}\n\n try {\n if (typeof data !== 'string') {\n return (data as unknown as Record<string, any>) ?? {}\n }\n return JSON.parse(data)\n } catch (e) {\n console.warn('Failed to parse entity list data field:', e)\n return {}\n }\n}\n\n// GRAPHQL API (getLists and getListItems)\n// Define the LISTS_PER_PAGE constant for pagination\nexport const LISTS_PER_PAGE = 500\nexport const LIST_ITEMS_PER_PAGE = 100\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetLists' | 'GetListItems'> & {\n GetLists: OverrideResultType<Definitions['GetLists'], GetListsResult>\n GetListItems: OverrideResultType<Definitions['GetListItems'], GetListItemsResult>\n GetListsItemsForReviewSession: OverrideResultType<\n Definitions['GetListsItemsForReviewSession'],\n GetListsItemsForReviewSessionResult\n >\n}\n\nconst getListsGqlApiEnhanced = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetLists: {\n transformResponse: (response: GetListsQuery): GetListsResult => {\n return {\n // @ts-expect-error - entityType is string\n lists: response.project.entityLists.edges.map((edge) => ({\n ...edge.node,\n data: parseEntityListData(edge.node.data),\n })),\n pageInfo: response.project.entityLists.pageInfo,\n }\n },\n },\n GetListItems: {\n transformResponse: (response: GetListItemsQuery): GetListItemsResult => {\n return {\n items: response.project.entityLists.edges.flatMap((listEdge) =>\n listEdge.node.items.edges.map(({ node, ...edge }) => {\n return {\n ...node,\n ...edge,\n attrib: parseAllAttribs(edge.allAttrib),\n } as GetListItemsResult['items'][number]\n }),\n ),\n pageInfo: response.project.entityLists.edges[0].node.items.pageInfo,\n }\n },\n },\n GetListsItemsForReviewSession: {\n transformResponse: (\n response: GetListsItemsForReviewSessionQuery,\n ): GetListsItemsForReviewSessionResult => {\n return {\n lists: response.project.entityLists.edges.map((edge) => edge.node),\n pageInfo: response.project.entityLists.pageInfo,\n }\n },\n },\n },\n})\n\nconst getListsGqlApiInjected = getListsGqlApiEnhanced.injectEndpoints({\n endpoints: (build) => ({\n getListsInfinite: build.infiniteQuery<\n GetListsResult,\n Omit<GetListsQueryVariables, 'first' | 'after' | 'before'>,\n ListsPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '' },\n getNextPageParam: (lastPage) => {\n const { pageInfo } = lastPage\n if (!pageInfo.hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { cursor } = pageParam\n\n // Build the query parameters for GetLists\n const queryParams = {\n ...queryArg,\n first: LISTS_PER_PAGE,\n after: cursor || undefined,\n }\n\n // Call the existing GetLists endpoint\n const result = await api.dispatch(\n getListsGqlApiEnhanced.endpoints.GetLists.initiate(queryParams, { forceRefetch: true }),\n )\n\n if (result.error) throw result.error\n\n return {\n data: result.data || {\n lists: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n },\n }\n } catch (e: any) {\n console.error('Error in getListsInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result) => [\n { type: 'entityList', id: 'LIST' },\n ...(result?.pages.flatMap((page) => page.lists) || []).map((list) => ({\n type: 'entityList' as const,\n id: list.id,\n })),\n ...(result?.pages.flatMap((page) => page.lists) || []).map((list) => ({\n type: 'entityList' as const,\n id: list.entityListType,\n })),\n ],\n async onCacheEntryAdded(\n _args,\n { cacheDataLoaded, cacheEntryRemoved, dispatch, updateCachedData },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const handlePubSub = (topic: string, message: ListItemMessage) => {\n if (topic !== 'entity_list.changed') return\n const summary = message.summary\n const id = summary.id\n if (!id) return\n\n // We have all the data we need to update the cache\n updateCachedData((draft) => {\n const list = draft.pages.flatMap((page) => page.lists).find((l) => l.id === id)\n if (!list) return\n const newList = {\n ...list,\n label: summary.label,\n entityType: summary.entity_type,\n entityListType: summary.entity_list_type,\n count: summary.count,\n }\n\n Object.assign(list, newList)\n })\n // NOTE: We have to invalidate here as we don't know if other fields are updated not included in the updateCachedData\n // invalidates lists list cache\n dispatch(gqlApi.util.invalidateTags([{ type: 'entityList', id: `LIST` }]))\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity_list.changed', handlePubSub)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n }),\n getListItemsInfinite: build.infiniteQuery<\n GetListItemsResult,\n Omit<GetListItemsQueryVariables, 'first' | 'after' | 'before' | 'last'> & { desc?: boolean },\n ListItemsPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '' },\n getNextPageParam: (lastPage) => {\n const { pageInfo } = lastPage\n if (!pageInfo.hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { sortBy, desc, ...rest } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetLists\n const queryParams: GetListItemsQueryVariables = {\n ...rest,\n first: LIST_ITEMS_PER_PAGE,\n after: cursor || undefined,\n }\n\n // Add cursor-based pagination\n queryParams.after = cursor || undefined\n queryParams.first = LIST_ITEMS_PER_PAGE\n\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.after = undefined\n queryParams.last = LIST_ITEMS_PER_PAGE\n queryParams.first = undefined\n }\n }\n\n // Call the existing GetLists endpoint\n const result = await api.dispatch(\n getListsGqlApiEnhanced.endpoints.GetListItems.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n\n return {\n data: result.data || {\n items: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n },\n }\n } catch (e: any) {\n console.error('Error in getListsInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { listId, projectName }) => [\n { type: 'entityListItem', id: 'LIST' },\n { type: 'entityListItem', id: listId },\n { type: 'entityListItem', id: projectName },\n ...(result?.pages.flatMap((page) => page.items) || [])\n .filter((i) => !!i)\n .flatMap((item) => [\n {\n type: 'entityListItem',\n id: item.id,\n },\n {\n type: 'entityListItem',\n id: item.entityId,\n },\n ]),\n ],\n async onCacheEntryAdded(_args, { cacheDataLoaded, cacheEntryRemoved, dispatch }) {\n let token, token2\n try {\n // wait for the initial query to resolve before proceeding\n const cache = await cacheDataLoaded\n const pages = cache.data.pages\n const items = pages.flatMap((page) => page.items)\n // get entityType of first item\n const entityType = items[0]?.entityType\n\n const listTopic = `entity_list.changed`\n const entityTypeTopic = `entity.${entityType}`\n\n const invalidateListItems = (id: string) => {\n dispatch(gqlApi.util.invalidateTags([{ type: 'entityListItem', id: id }]))\n }\n\n const handleListMessage = (topic: string, message: ListItemMessage) => {\n if (topic !== listTopic) return\n const summary = message.summary\n const id = summary.id\n if (!id) return\n invalidateListItems(id)\n }\n\n const handleEntityMessage = (topic: string, message: ListItemMessage) => {\n if (!topic.startsWith(entityTypeTopic)) return\n const summary = message.summary\n const id = summary.entityId\n // check for id\n if (!id) return\n invalidateListItems(id)\n }\n\n // sub to websocket topic\n token = PubSub.subscribe(listTopic, handleListMessage)\n if (entityType) token2 = PubSub.subscribe(entityTypeTopic, handleEntityMessage)\n } catch {\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n PubSub.unsubscribe(token2)\n },\n }),\n getListsItemsForReviewSession: build.infiniteQuery<\n GetListsItemsForReviewSessionResult,\n Omit<GetListsQueryVariables, 'first' | 'after' | 'before' | 'filter'>,\n ListsPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '' },\n getNextPageParam: (lastPage) => {\n const { pageInfo } = lastPage\n if (!pageInfo.hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { cursor } = pageParam\n\n // Build the query parameters for GetLists\n const queryParams = {\n ...queryArg,\n first: LISTS_PER_PAGE,\n after: cursor || undefined,\n }\n\n // Call the existing GetLists endpoint\n const result = await api.dispatch(\n getListsGqlApiEnhanced.endpoints.GetListsItemsForReviewSession.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n\n return {\n data: result.data || {\n lists: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n },\n }\n } catch (e: any) {\n console.error('Error in getListsInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result) => [\n { type: 'entityList', id: 'LIST' },\n ...(result?.pages.flatMap((page) => page.lists) || []).map((list) => ({\n type: 'entityList' as const,\n id: list.id,\n })),\n ],\n }),\n }),\n})\n\nconst getListsApiEnhanced = entityListsApi.enhanceEndpoints({\n endpoints: {\n getEntityList: {\n transformResponse: (response: any) => {\n return {\n ...response,\n data: parseEntityListData(response.data),\n }\n },\n providesTags: (result, _e, { listId, projectName }) => [\n { type: 'entityList', id: listId },\n { type: 'entityList', id: projectName },\n ...(result ? [{ type: 'entityList', id: result.entityListType }] : []),\n ],\n },\n },\n})\n\nexport default getListsGqlApiInjected\n\nexport const {\n useGetListsInfiniteInfiniteQuery,\n useGetListItemsInfiniteInfiniteQuery,\n useGetListsItemsForReviewSessionInfiniteQuery,\n useLazyGetListsQuery,\n useLazyGetListsItemsForReviewSessionQuery,\n useLazyGetListItemsQuery,\n} = getListsGqlApiInjected\n\nexport const { useGetEntityListQuery } = getListsApiEnhanced\n"],"names":["parseEntityListData","data","e","LISTS_PER_PAGE","LIST_ITEMS_PER_PAGE","getListsGqlApiEnhanced","gqlApi","response","edge","listEdge","node","parseAllAttribs","getListsGqlApiInjected","build","lastPage","pageInfo","queryArg","pageParam","api","cursor","queryParams","result","page","list","_args","cacheDataLoaded","cacheEntryRemoved","dispatch","updateCachedData","token","handlePubSub","topic","message","summary","id","draft","l","newList","PubSub","sortBy","desc","rest","_e","listId","projectName","i","item","token2","entityType","_a","listTopic","entityTypeTopic","invalidateListItems","handleListMessage","handleEntityMessage","getListsApiEnhanced","entityListsApi","useGetListsInfiniteInfiniteQuery","useGetListItemsInfiniteInfiniteQuery","useGetListsItemsForReviewSessionInfiniteQuery","useLazyGetListsQuery","useLazyGetListsItemsForReviewSessionQuery","useLazyGetListItemsQuery","useGetEntityListQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAMA,IAAsB,CAACC,MAAyD;AAChF,MAAA,CAACA,EAAM,QAAO,CAAC;AAEf,MAAA;AACE,WAAA,OAAOA,KAAS,WACVA,KAA2C,CAAC,IAE/C,KAAK,MAAMA,CAAI;AAAA,WACfC,GAAG;AACF,mBAAA,KAAK,2CAA2CA,CAAC,GAClD,CAAC;AAAA,EAAA;AAEZ,GAIaC,IAAiB,KACjBC,IAAsB,KAc7BC,IAAyBC,EAAO,iBAA+C;AAAA,EACnF,WAAW;AAAA,IACT,UAAU;AAAA,MACR,mBAAmB,CAACC,OACX;AAAA;AAAA,QAEL,OAAOA,EAAS,QAAQ,YAAY,MAAM,IAAI,CAACC,OAAU;AAAA,UACvD,GAAGA,EAAK;AAAA,UACR,MAAMR,EAAoBQ,EAAK,KAAK,IAAI;AAAA,QAAA,EACxC;AAAA,QACF,UAAUD,EAAS,QAAQ,YAAY;AAAA,MACzC;AAAA,IAEJ;AAAA,IACA,cAAc;AAAA,MACZ,mBAAmB,CAACA,OACX;AAAA,QACL,OAAOA,EAAS,QAAQ,YAAY,MAAM;AAAA,UAAQ,CAACE,MACjDA,EAAS,KAAK,MAAM,MAAM,IAAI,CAAC,EAAE,MAAAC,GAAM,GAAGF,SACjC;AAAA,YACL,GAAGE;AAAA,YACH,GAAGF;AAAA,YACH,QAAQG,EAAgBH,EAAK,SAAS;AAAA,UACxC,EACD;AAAA,QACH;AAAA,QACA,UAAUD,EAAS,QAAQ,YAAY,MAAM,CAAC,EAAE,KAAK,MAAM;AAAA,MAC7D;AAAA,IAEJ;AAAA,IACA,+BAA+B;AAAA,MAC7B,mBAAmB,CACjBA,OAEO;AAAA,QACL,OAAOA,EAAS,QAAQ,YAAY,MAAM,IAAI,CAACC,MAASA,EAAK,IAAI;AAAA,QACjE,UAAUD,EAAS,QAAQ,YAAY;AAAA,MACzC;AAAA,IACF;AAAA,EACF;AAEJ,CAAC,GAEKK,IAAyBP,EAAuB,gBAAgB;AAAA,EACpE,WAAW,CAACQ,OAAW;AAAA,IACrB,kBAAkBA,EAAM,cAItB;AAAA,MACA,sBAAsB;AAAA,QACpB,kBAAkB,EAAE,QAAQ,GAAG;AAAA,QAC/B,kBAAkB,CAACC,MAAa;AACxB,gBAAA,EAAE,UAAAC,MAAaD;AACrB,cAAI,GAACC,EAAS,eAAe,CAACA,EAAS;AAEhC,mBAAA;AAAA,cACL,QAAQA,EAAS;AAAA,YACnB;AAAA,QAAA;AAAA,MAEJ;AAAA,MACA,SAAS,OAAO,EAAE,UAAAC,GAAU,WAAAC,EAAA,GAAaC,MAAQ;AAC3C,YAAA;AACI,gBAAA,EAAE,QAAAC,MAAWF,GAGbG,IAAc;AAAA,YAClB,GAAGJ;AAAA,YACH,OAAOb;AAAA,YACP,OAAOgB,KAAU;AAAA,UACnB,GAGME,IAAS,MAAMH,EAAI;AAAA,YACvBb,EAAuB,UAAU,SAAS,SAASe,GAAa,EAAE,cAAc,GAAM,CAAA;AAAA,UACxF;AAEI,cAAAC,EAAO,MAAO,OAAMA,EAAO;AAExB,iBAAA;AAAA,YACL,MAAMA,EAAO,QAAQ;AAAA,cACnB,OAAO,CAAC;AAAA,cACR,UAAU;AAAA,gBACR,aAAa;AAAA,gBACb,WAAW;AAAA,gBACX,aAAa;AAAA,gBACb,iBAAiB;AAAA,cAAA;AAAA,YACnB;AAAA,UAEJ;AAAA,iBACOnB,GAAQ;AACP,yBAAA,MAAM,sCAAsCA,CAAC,GAC9C,EAAE,OAAO,EAAE,QAAQ,eAAe,OAAOA,EAAE,UAAiC;AAAA,QAAA;AAAA,MAEvF;AAAA,MACA,cAAc,CAACmB,MAAW;AAAA,QACxB,EAAE,MAAM,cAAc,IAAI,OAAO;AAAA,QACjC,KAAIA,KAAA,gBAAAA,EAAQ,MAAM,QAAQ,CAACC,MAASA,EAAK,WAAU,CAAA,GAAI,IAAI,CAACC,OAAU;AAAA,UACpE,MAAM;AAAA,UACN,IAAIA,EAAK;AAAA,QAAA,EACT;AAAA,QACF,KAAIF,KAAA,gBAAAA,EAAQ,MAAM,QAAQ,CAACC,MAASA,EAAK,WAAU,CAAA,GAAI,IAAI,CAACC,OAAU;AAAA,UACpE,MAAM;AAAA,UACN,IAAIA,EAAK;AAAA,QAAA,EACT;AAAA,MACJ;AAAA,MACA,MAAM,kBACJC,GACA,EAAE,iBAAAC,GAAiB,mBAAAC,GAAmB,UAAAC,GAAU,kBAAAC,KAChD;AACI,YAAAC;AACA,YAAA;AAEI,gBAAAJ;AAEA,gBAAAK,IAAe,CAACC,GAAeC,MAA6B;AAChE,gBAAID,MAAU,sBAAuB;AACrC,kBAAME,IAAUD,EAAQ,SAClBE,IAAKD,EAAQ;AACnB,YAAKC,MAGLN,EAAiB,CAACO,MAAU;AAC1B,oBAAMZ,IAAOY,EAAM,MAAM,QAAQ,CAACb,MAASA,EAAK,KAAK,EAAE,KAAK,CAACc,MAAMA,EAAE,OAAOF,CAAE;AAC9E,kBAAI,CAACX,EAAM;AACX,oBAAMc,IAAU;AAAA,gBACd,GAAGd;AAAA,gBACH,OAAOU,EAAQ;AAAA,gBACf,YAAYA,EAAQ;AAAA,gBACpB,gBAAgBA,EAAQ;AAAA,gBACxB,OAAOA,EAAQ;AAAA,cACjB;AAEO,qBAAA,OAAOV,GAAMc,CAAO;AAAA,YAAA,CAC5B,GAGQV,EAAArB,EAAO,KAAK,eAAe,CAAC,EAAE,MAAM,cAAc,IAAI,OAAA,CAAQ,CAAC,CAAC;AAAA,UAC3E;AAGQ,UAAAuB,IAAAS,EAAO,UAAU,uBAAuBR,CAAY;AAAA,QAAA,QACtD;AAAA,QAAA;AAKF,cAAAJ,GAENY,EAAO,YAAYT,CAAK;AAAA,MAAA;AAAA,IAC1B,CACD;AAAA,IACD,sBAAsBhB,EAAM,cAI1B;AAAA,MACA,sBAAsB;AAAA,QACpB,kBAAkB,EAAE,QAAQ,GAAG;AAAA,QAC/B,kBAAkB,CAACC,MAAa;AACxB,gBAAA,EAAE,UAAAC,MAAaD;AACrB,cAAI,GAACC,EAAS,eAAe,CAACA,EAAS;AAEhC,mBAAA;AAAA,cACL,QAAQA,EAAS;AAAA,YACnB;AAAA,QAAA;AAAA,MAEJ;AAAA,MACA,SAAS,OAAO,EAAE,UAAAC,GAAU,WAAAC,EAAA,GAAaC,MAAQ;AAC3C,YAAA;AACF,gBAAM,EAAE,QAAAqB,GAAQ,MAAAC,GAAM,GAAGC,EAAS,IAAAzB,GAC5B,EAAE,QAAAG,MAAWF,GAGbG,IAA0C;AAAA,YAC9C,GAAGqB;AAAA,YACH,OAAOrC;AAAA,YACP,OAAOe,KAAU;AAAA,UACnB;AAGA,UAAAC,EAAY,QAAQD,KAAU,QAC9BC,EAAY,QAAQhB,GAEhBmC,MACFnB,EAAY,SAASmB,GACjBC,MACFpB,EAAY,SAASD,KAAU,QAC/BC,EAAY,QAAQ,QACpBA,EAAY,OAAOhB,GACnBgB,EAAY,QAAQ;AAKlB,gBAAAC,IAAS,MAAMH,EAAI;AAAA,YACvBb,EAAuB,UAAU,aAAa,SAASe,GAAa;AAAA,cAClE,cAAc;AAAA,YACf,CAAA;AAAA,UACH;AAEI,cAAAC,EAAO,MAAO,OAAMA,EAAO;AAExB,iBAAA;AAAA,YACL,MAAMA,EAAO,QAAQ;AAAA,cACnB,OAAO,CAAC;AAAA,cACR,UAAU;AAAA,gBACR,aAAa;AAAA,gBACb,WAAW;AAAA,gBACX,aAAa;AAAA,gBACb,iBAAiB;AAAA,cAAA;AAAA,YACnB;AAAA,UAEJ;AAAA,iBACOnB,GAAQ;AACP,yBAAA,MAAM,sCAAsCA,CAAC,GAC9C,EAAE,OAAO,EAAE,QAAQ,eAAe,OAAOA,EAAE,UAAiC;AAAA,QAAA;AAAA,MAEvF;AAAA,MACA,cAAc,CAACmB,GAAQqB,GAAI,EAAE,QAAAC,GAAQ,aAAAC,QAAkB;AAAA,QACrD,EAAE,MAAM,kBAAkB,IAAI,OAAO;AAAA,QACrC,EAAE,MAAM,kBAAkB,IAAID,EAAO;AAAA,QACrC,EAAE,MAAM,kBAAkB,IAAIC,EAAY;AAAA,QAC1C,KAAIvB,KAAA,gBAAAA,EAAQ,MAAM,QAAQ,CAACC,MAASA,EAAK,WAAU,IAChD,OAAO,CAACuB,MAAM,CAAC,CAACA,CAAC,EACjB,QAAQ,CAACC,MAAS;AAAA,UACjB;AAAA,YACE,MAAM;AAAA,YACN,IAAIA,EAAK;AAAA,UACX;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,IAAIA,EAAK;AAAA,UAAA;AAAA,QAEZ,CAAA;AAAA,MACL;AAAA,MACA,MAAM,kBAAkBtB,GAAO,EAAE,iBAAAC,GAAiB,mBAAAC,GAAmB,UAAAC,KAAY;;AAC/E,YAAIE,GAAOkB;AACP,YAAA;AAMI,gBAAAC,KAAaC,KAJL,MAAMxB,GACA,KAAK,MACL,QAAQ,CAACH,MAASA,EAAK,KAAK,EAEvB,CAAC,MAAP,gBAAA2B,EAAU,YAEvBC,IAAY,uBACZC,IAAkB,UAAUH,CAAU,IAEtCI,IAAsB,CAAClB,MAAe;AACjC,YAAAP,EAAArB,EAAO,KAAK,eAAe,CAAC,EAAE,MAAM,kBAAkB,IAAA4B,EAAQ,CAAA,CAAC,CAAC;AAAA,UAC3E,GAEMmB,IAAoB,CAACtB,GAAeC,MAA6B;AACrE,gBAAID,MAAUmB,EAAW;AAEzB,kBAAMhB,IADUF,EAAQ,QACL;AACnB,YAAKE,KACLkB,EAAoBlB,CAAE;AAAA,UACxB,GAEMoB,IAAsB,CAACvB,GAAeC,MAA6B;AACvE,gBAAI,CAACD,EAAM,WAAWoB,CAAe,EAAG;AAExC,kBAAMjB,IADUF,EAAQ,QACL;AAEnB,YAAKE,KACLkB,EAAoBlB,CAAE;AAAA,UACxB;AAGQ,UAAAL,IAAAS,EAAO,UAAUY,GAAWG,CAAiB,GACjDL,MAAYD,IAAST,EAAO,UAAUa,GAAiBG,CAAmB;AAAA,QAAA,QACxE;AAAA,QAAA;AAKF,cAAA5B,GAENY,EAAO,YAAYT,CAAK,GACxBS,EAAO,YAAYS,CAAM;AAAA,MAAA;AAAA,IAC3B,CACD;AAAA,IACD,+BAA+BlC,EAAM,cAInC;AAAA,MACA,sBAAsB;AAAA,QACpB,kBAAkB,EAAE,QAAQ,GAAG;AAAA,QAC/B,kBAAkB,CAACC,MAAa;AACxB,gBAAA,EAAE,UAAAC,MAAaD;AACrB,cAAI,GAACC,EAAS,eAAe,CAACA,EAAS;AAEhC,mBAAA;AAAA,cACL,QAAQA,EAAS;AAAA,YACnB;AAAA,QAAA;AAAA,MAEJ;AAAA,MACA,SAAS,OAAO,EAAE,UAAAC,GAAU,WAAAC,EAAA,GAAaC,MAAQ;AAC3C,YAAA;AACI,gBAAA,EAAE,QAAAC,MAAWF,GAGbG,IAAc;AAAA,YAClB,GAAGJ;AAAA,YACH,OAAOb;AAAA,YACP,OAAOgB,KAAU;AAAA,UACnB,GAGME,IAAS,MAAMH,EAAI;AAAA,YACvBb,EAAuB,UAAU,8BAA8B,SAASe,GAAa;AAAA,cACnF,cAAc;AAAA,YACf,CAAA;AAAA,UACH;AAEI,cAAAC,EAAO,MAAO,OAAMA,EAAO;AAExB,iBAAA;AAAA,YACL,MAAMA,EAAO,QAAQ;AAAA,cACnB,OAAO,CAAC;AAAA,cACR,UAAU;AAAA,gBACR,aAAa;AAAA,gBACb,WAAW;AAAA,gBACX,aAAa;AAAA,gBACb,iBAAiB;AAAA,cAAA;AAAA,YACnB;AAAA,UAEJ;AAAA,iBACOnB,GAAQ;AACP,yBAAA,MAAM,sCAAsCA,CAAC,GAC9C,EAAE,OAAO,EAAE,QAAQ,eAAe,OAAOA,EAAE,UAAiC;AAAA,QAAA;AAAA,MAEvF;AAAA,MACA,cAAc,CAACmB,MAAW;AAAA,QACxB,EAAE,MAAM,cAAc,IAAI,OAAO;AAAA,QACjC,KAAIA,KAAA,gBAAAA,EAAQ,MAAM,QAAQ,CAACC,MAASA,EAAK,WAAU,CAAA,GAAI,IAAI,CAACC,OAAU;AAAA,UACpE,MAAM;AAAA,UACN,IAAIA,EAAK;AAAA,QAAA,EACT;AAAA,MAAA;AAAA,IAEL,CAAA;AAAA,EACH;AACF,CAAC,GAEKgC,IAAsBC,EAAe,iBAAiB;AAAA,EAC1D,WAAW;AAAA,IACT,eAAe;AAAA,MACb,mBAAmB,CAACjD,OACX;AAAA,QACL,GAAGA;AAAA,QACH,MAAMP,EAAoBO,EAAS,IAAI;AAAA,MACzC;AAAA,MAEF,cAAc,CAACc,GAAQqB,GAAI,EAAE,QAAAC,GAAQ,aAAAC,QAAkB;AAAA,QACrD,EAAE,MAAM,cAAc,IAAID,EAAO;AAAA,QACjC,EAAE,MAAM,cAAc,IAAIC,EAAY;AAAA,QACtC,GAAIvB,IAAS,CAAC,EAAE,MAAM,cAAc,IAAIA,EAAO,eAAA,CAAgB,IAAI,CAAA;AAAA,MAAC;AAAA,IACtE;AAAA,EACF;AAEJ,CAAC,GAIY;AAAA,EACX,kCAAAoC;AAAA,EACA,sCAAAC;AAAA,EACA,+CAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,2CAAAC;AAAA,EACA,0BAAAC;AACF,IAAIlD,GAES,EAAE,uBAAAmD,OAA0BR;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");const M=require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");const L=require("./getLists.cjs.js"),b=M.api.enhanceEndpoints({endpoints:{createEntityList:{invalidatesTags:[{type:"entityList",id:"LIST"}]},updateEntityList:{async onQueryStarted({listId:n,entityListPatchModel:e},{dispatch:i,queryFulfilled:d,getState:f}){const u=f(),m=[{type:"entityList",id:n}],g=L.default.util.selectInvalidatedBy(u,m).filter(t=>t.endpointName==="getListsInfinite");let y=[];for(const t of g){const I=i(L.default.util.updateQueryData("getListsInfinite",t.originalArgs,l=>{for(const c of l.pages){const p=c.lists.findIndex(s=>s.id===n);if(p!==-1){const s=c.lists[p];Object.assign(s,e);break}}}));y.push(I)}try{await d}catch{y.forEach(t=>{t.undo()})}},invalidatesTags:(n,e,{listId:i})=>[{type:"entityList",id:i}]},deleteEntityList:{invalidatesTags:[{type:"entityList",id:"LIST"}]},updateEntityListItems:{async onQueryStarted({listId:n,entityListMultiPatchModel:e},{dispatch:i,queryFulfilled:d,getState:f}){const u=f(),m=[{type:"entityListItem",id:n}],g=L.default.util.selectInvalidatedBy(u,m).filter(t=>t.endpointName==="getListItemsInfinite");let y=[];if(!e.items||e.items.length===0){await d;return}for(const t of g){if(t.originalArgs.listId!==n)continue;const I=i(L.default.util.updateQueryData("getListItemsInfinite",t.originalArgs,l=>{var p;let c=!1;for(const s of l.pages)(p=e.items)==null||p.forEach(r=>{const a=s.items.findIndex(o=>o.id===r.id||o.entityId===r.entityId);if(a!==-1){const o=s.items[a],q={...o,...r,attrib:{...o.attrib,...r.attrib||{}}};Object.assign(s.items[a],q),r.position!==void 0&&(c=!0)}});if(c){let s=l.pages.flatMap(a=>a.items);s.sort((a,o)=>{const q=typeof a.position=="number"?a.position:1/0,h=typeof o.position=="number"?o.position:1/0;return q-h});let r=0;for(const a of l.pages){const o=a.items.length;a.items=s.slice(r,r+o),r+=o}}}));y.push(I)}try{await d}catch{y.forEach(t=>{t.undo()})}},invalidatesTags:(n,e,{listId:i,entityListMultiPatchModel:{items:d}})=>[{type:"entityList",id:i},{type:"entityListItem",id:i},...(d||[]).flatMap(u=>(u.id?[{type:"entityListItem",id:u.id}]:[]).concat(u.entityId?[{type:"entityListItem",id:u.entityId}]:[]))]},updateEntityListItem:{async onQueryStarted({listItemId:n,entityListItemPatchModel:e},{dispatch:i,queryFulfilled:d,getState:f}){const u=f(),m=[{type:"entityListItem",id:n}],g=L.default.util.selectInvalidatedBy(u,m).filter(t=>t.endpointName==="getListItemsInfinite");let y=[];for(const t of g){const I=i(L.default.util.updateQueryData("getListItemsInfinite",t.originalArgs,l=>{for(const c of l.pages){const p=c.items.findIndex(s=>s.id===n);if(p!==-1){const s=c.items[p],r={...s,attrib:{...s.attrib,...e.attrib}};Object.assign(s,r);break}}}));y.push(I)}try{await d}catch{y.forEach(t=>{t.undo()})}}},createEntityListItem:{invalidatesTags:(n,e,{listId:i})=>[{type:"entityList",id:i},{type:"entityListItem",id:i}]},deleteEntityListItem:{invalidatesTags:(n,e,{listId:i})=>[{type:"entityList",id:i},{type:"entityListItem",id:i}]}}}),E=b.injectEndpoints({endpoints:n=>({createSessionFromList:n.mutation({query:e=>({url:`/api/addons/review/${e.addonVersion}/${e.projectName}/sessions/fromList`,method:"POST",body:e.sessionFromListRequest}),transformErrorResponse:e=>e.data.detail,invalidatesTags:()=>[{type:"entityList",id:"LIST"}]})})}),{useCreateEntityListMutation:v,useUpdateEntityListMutation:S,useDeleteEntityListMutation:T,useUpdateEntityListItemsMutation:R,useUpdateEntityListItemMutation:x,useCreateEntityListItemMutation:C,useDeleteEntityListItemMutation:Q,useCreateSessionFromListMutation:_}=E;exports.entityListsQueriesGql=L.default;exports.entityListsQueriesRest=E;exports.useCreateEntityListItemMutation=C;exports.useCreateEntityListMutation=v;exports.useCreateSessionFromListMutation=_;exports.useDeleteEntityListItemMutation=Q;exports.useDeleteEntityListMutation=T;exports.useUpdateEntityListItemMutation=x;exports.useUpdateEntityListItemsMutation=R;exports.useUpdateEntityListMutation=S;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/desktop.cjs.js");const E=require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");const f=require("./getLists.cjs.js"),M=E.api.enhanceEndpoints({endpoints:{createEntityList:{invalidatesTags:[{type:"entityList",id:"LIST"}]},updateEntityList:{async onQueryStarted({listId:n,entityListPatchModel:t},{dispatch:e,queryFulfilled:l,getState:m}){const o=m(),g=[{type:"entityList",id:n}],I=f.default.util.selectInvalidatedBy(o,g).filter(a=>a.endpointName==="getListsInfinite");let c=[];for(const a of I){const p=e(f.default.util.updateQueryData("getListsInfinite",a.originalArgs,y=>{for(const L of y.pages){const i=L.lists.findIndex(s=>s.id===n);if(i!==-1){const s=L.lists[i];Object.assign(s,t);break}}}));c.push(p)}const r=E.api.util.selectInvalidatedBy(o,g).filter(a=>a.endpointName==="getEntityList"&&a.originalArgs.listId===n);for(const a of r){const p=e(E.api.util.updateQueryData("getEntityList",a.originalArgs,y=>{Object.assign(y,{...y,...t})}));c.push(p)}try{await l}catch{c.forEach(a=>{a.undo()})}}},deleteEntityList:{invalidatesTags:[{type:"entityList",id:"LIST"}]},updateEntityListItems:{async onQueryStarted({listId:n,entityListMultiPatchModel:t},{dispatch:e,queryFulfilled:l,getState:m}){const o=m(),g=[{type:"entityListItem",id:n}],I=f.default.util.selectInvalidatedBy(o,g).filter(r=>r.endpointName==="getListItemsInfinite");let c=[];if(!t.items||t.items.length===0){await l;return}for(const r of I){if(r.originalArgs.listId!==n)continue;const a=e(f.default.util.updateQueryData("getListItemsInfinite",r.originalArgs,p=>{var L;let y=!1;for(const i of p.pages)(L=t.items)==null||L.forEach(s=>{const u=i.items.findIndex(d=>d.id===s.id||d.entityId===s.entityId);if(u!==-1){const d=i.items[u],q={...d,...s,attrib:{...d.attrib,...s.attrib||{}}};Object.assign(i.items[u],q),s.position!==void 0&&(y=!0)}});if(y){let i=p.pages.flatMap(u=>u.items);i.sort((u,d)=>{const q=typeof u.position=="number"?u.position:1/0,b=typeof d.position=="number"?d.position:1/0;return q-b});let s=0;for(const u of p.pages){const d=u.items.length;u.items=i.slice(s,s+d),s+=d}}}));c.push(a)}try{await l}catch{c.forEach(r=>{r.undo()})}},invalidatesTags:(n,t,{listId:e,entityListMultiPatchModel:{items:l}})=>[{type:"entityList",id:e},{type:"entityListItem",id:e},...(l||[]).flatMap(o=>(o.id?[{type:"entityListItem",id:o.id}]:[]).concat(o.entityId?[{type:"entityListItem",id:o.entityId}]:[]))]},updateEntityListItem:{async onQueryStarted({listItemId:n,entityListItemPatchModel:t},{dispatch:e,queryFulfilled:l,getState:m}){const o=m(),g=[{type:"entityListItem",id:n}],I=f.default.util.selectInvalidatedBy(o,g).filter(r=>r.endpointName==="getListItemsInfinite");let c=[];for(const r of I){const a=e(f.default.util.updateQueryData("getListItemsInfinite",r.originalArgs,p=>{for(const y of p.pages){const L=y.items.findIndex(i=>i.id===n);if(L!==-1){const i=y.items[L],s={...i,attrib:{...i.attrib,...t.attrib}};Object.assign(i,s);break}}}));c.push(a)}try{await l}catch{c.forEach(r=>{r.undo()})}}},createEntityListItem:{invalidatesTags:(n,t,{listId:e})=>[{type:"entityList",id:e},{type:"entityListItem",id:e}]},deleteEntityListItem:{invalidatesTags:(n,t,{listId:e})=>[{type:"entityList",id:e},{type:"entityListItem",id:e}]}}}),h=M.injectEndpoints({endpoints:n=>({createSessionFromList:n.mutation({query:t=>({url:`/api/addons/review/${t.addonVersion}/${t.projectName}/sessions/fromList`,method:"POST",body:t.sessionFromListRequest}),transformErrorResponse:t=>t.data.detail,invalidatesTags:()=>[{type:"entityList",id:"LIST"}]})})}),{useCreateEntityListMutation:v,useUpdateEntityListMutation:S,useDeleteEntityListMutation:T,useUpdateEntityListItemsMutation:R,useUpdateEntityListItemMutation:Q,useCreateEntityListItemMutation:j,useDeleteEntityListItemMutation:x,useCreateSessionFromListMutation:C}=h;exports.entityListsQueriesGql=f.default;exports.entityListsQueriesRest=h;exports.useCreateEntityListItemMutation=j;exports.useCreateEntityListMutation=v;exports.useCreateSessionFromListMutation=C;exports.useDeleteEntityListItemMutation=x;exports.useDeleteEntityListMutation=T;exports.useUpdateEntityListItemMutation=Q;exports.useUpdateEntityListItemsMutation=R;exports.useUpdateEntityListMutation=S;
2
2
  //# sourceMappingURL=updateLists.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"updateLists.cjs.js","sources":["../../../../../../src/api/queries/entityLists/updateLists.ts"],"sourcesContent":["import { entityListsApi } from '@shared/api/generated'\nimport gqlApi from './getLists'\nimport { CreateSessionFromListApiArg, CreateSessionFromListApiResponse } from './types'\n\nconst updateListsEnhancedApi = entityListsApi.enhanceEndpoints({\n endpoints: {\n // LIST MUTATIONS\n createEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n updateEntityList: {\n async onQueryStarted(\n { listId, entityListPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityList', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.lists.findIndex((list) => list.id === listId)\n if (listIndex !== -1) {\n const list = page.lists[listIndex]\n // Update the list with the new data\n Object.assign(list, entityListPatchModel)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId }) => {\n const tags = [{ type: 'entityList', id: listId }]\n return tags\n },\n },\n deleteEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n // LIST ITEM MUTATIONS\n updateEntityListItems: {\n async onQueryStarted(\n { listId, entityListMultiPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n // We are primarily interested in updating the items within a specific list\n const tags = [{ type: 'entityListItem', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n\n if (!entityListMultiPatchModel.items || entityListMultiPatchModel.items.length === 0) {\n // No items to update, proceed without optimistic update\n await queryFulfilled\n return\n }\n\n for (const entry of infiniteEntries) {\n // only update entries that match the listId\n if (entry.originalArgs.listId !== listId) continue\n\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n let overallPositionChanged = false\n // First pass: update items in place and check if any position changed\n for (const page of draft.pages) {\n entityListMultiPatchModel.items?.forEach((patchItem) => {\n const itemIndex = page.items.findIndex(\n (item) => item.id === patchItem.id || item.entityId === patchItem.entityId,\n )\n\n if (itemIndex !== -1) {\n const existingItem = page.items[itemIndex]\n // Merge existing item with patchItem, ensuring attrib is also merged\n const updatedItem = {\n ...existingItem,\n ...patchItem, // Apply all top-level fields from patchItem\n attrib: {\n ...existingItem.attrib,\n ...(patchItem.attrib || {}), // Merge attrib safely\n },\n }\n Object.assign(page.items[itemIndex], updatedItem)\n\n if (patchItem.position !== undefined) {\n overallPositionChanged = true\n }\n }\n })\n }\n\n if (overallPositionChanged) {\n // Collect all items from all pages for this specific cache entry\n let allItems = draft.pages.flatMap((page) => page.items)\n\n // Sort all items based on position\n allItems.sort((a, b) => {\n const posA = typeof a.position === 'number' ? a.position : Infinity\n const posB = typeof b.position === 'number' ? b.position : Infinity\n return posA - posB\n })\n\n // Re-distribute sorted items back into pages, maintaining original page sizes\n let currentItemIndex = 0\n for (const page of draft.pages) {\n const pageItemCount = page.items.length // Get original item count for this page\n // Replace page items with the corresponding slice from the globally sorted list\n page.items = allItems.slice(currentItemIndex, currentItemIndex + pageItemCount)\n currentItemIndex += pageItemCount\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, entityListMultiPatchModel: { items } }) => {\n const tags = [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ...(items || []).flatMap((i) =>\n (i.id ? [{ type: 'entityListItem', id: i.id }] : []).concat(\n i.entityId ? [{ type: 'entityListItem', id: i.entityId }] : [],\n ),\n ),\n ]\n return tags\n },\n },\n updateEntityListItem: {\n async onQueryStarted(\n { listItemId, entityListItemPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityListItem', id: listItemId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.items.findIndex((list) => list.id === listItemId)\n if (listIndex !== -1) {\n const list = page.items[listIndex]\n const newListItem = {\n ...list,\n attrib: {\n ...list.attrib,\n ...entityListItemPatchModel.attrib,\n },\n }\n // Update the list with the new data\n Object.assign(list, newListItem)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n },\n createEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n deleteEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n },\n})\n\n// inject review addon endpoint Create Session From List\nconst updateListsInjectedApi = updateListsEnhancedApi.injectEndpoints({\n endpoints: (build) => ({\n createSessionFromList: build.mutation<\n CreateSessionFromListApiResponse,\n CreateSessionFromListApiArg\n >({\n query: (queryArg) => ({\n url: `/api/addons/review/${queryArg.addonVersion}/${queryArg.projectName}/sessions/fromList`,\n method: 'POST',\n body: queryArg.sessionFromListRequest,\n }),\n transformErrorResponse: (error: any) => error.data.detail,\n invalidatesTags: () => [{ type: 'entityList', id: 'LIST' }],\n }),\n }),\n})\n\nexport const {\n // LIST MUTATIONS\n useCreateEntityListMutation,\n useUpdateEntityListMutation,\n useDeleteEntityListMutation,\n // LIST ITEM MUTATIONS\n useUpdateEntityListItemsMutation,\n useUpdateEntityListItemMutation,\n useCreateEntityListItemMutation,\n useDeleteEntityListItemMutation,\n // REVIEW SESSION MUTATIONS\n useCreateSessionFromListMutation,\n} = updateListsInjectedApi\nexport { updateListsInjectedApi as entityListsQueriesRest, gqlApi as entityListsQueriesGql }\n"],"names":["updateListsEnhancedApi","entityListsApi","listId","entityListPatchModel","dispatch","queryFulfilled","getState","state","tags","infiniteEntries","gqlApi","e","patchResults","entry","patchResult","draft","page","listIndex","list","_s","_e","entityListMultiPatchModel","overallPositionChanged","_a","patchItem","itemIndex","item","existingItem","updatedItem","allItems","b","posA","posB","currentItemIndex","pageItemCount","items","i","listItemId","entityListItemPatchModel","newListItem","updateListsInjectedApi","build","queryArg","error","useCreateEntityListMutation","useUpdateEntityListMutation","useDeleteEntityListMutation","useUpdateEntityListItemsMutation","useUpdateEntityListItemMutation","useCreateEntityListItemMutation","useDeleteEntityListItemMutation","useCreateSessionFromListMutation"],"mappings":"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"}
1
+ {"version":3,"file":"updateLists.cjs.js","sources":["../../../../../../src/api/queries/entityLists/updateLists.ts"],"sourcesContent":["import { entityListsApi } from '@shared/api/generated'\nimport gqlApi from './getLists'\nimport { CreateSessionFromListApiArg, CreateSessionFromListApiResponse } from './types'\n\nconst updateListsEnhancedApi = entityListsApi.enhanceEndpoints({\n endpoints: {\n // LIST MUTATIONS\n createEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n updateEntityList: {\n async onQueryStarted(\n { listId, entityListPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityList', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListsInfinite')\n\n let patchResults: any[] = []\n\n // Update getListsInfinite cache (GraphQL)\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.lists.findIndex((list) => list.id === listId)\n if (listIndex !== -1) {\n const list = page.lists[listIndex]\n // Update the list with the new data\n Object.assign(list, entityListPatchModel)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n // Update getEntityList cache (REST API)\n const entityListEntries = entityListsApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getEntityList' && e.originalArgs.listId === listId)\n\n for (const entry of entityListEntries) {\n const patchResult = dispatch(\n entityListsApi.util.updateQueryData('getEntityList', entry.originalArgs, (draft) => {\n // Update the entity list with the new data\n Object.assign(draft, {\n ...draft,\n ...entityListPatchModel,\n })\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n // invalidatesTags: (_s, _e, { listId }) => {\n // const tags = [{ type: 'entityList', id: listId }]\n // return tags\n // },\n },\n deleteEntityList: {\n invalidatesTags: [{ type: 'entityList', id: 'LIST' }],\n },\n // LIST ITEM MUTATIONS\n updateEntityListItems: {\n async onQueryStarted(\n { listId, entityListMultiPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n // We are primarily interested in updating the items within a specific list\n const tags = [{ type: 'entityListItem', id: listId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n\n if (!entityListMultiPatchModel.items || entityListMultiPatchModel.items.length === 0) {\n // No items to update, proceed without optimistic update\n await queryFulfilled\n return\n }\n\n for (const entry of infiniteEntries) {\n // only update entries that match the listId\n if (entry.originalArgs.listId !== listId) continue\n\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n let overallPositionChanged = false\n // First pass: update items in place and check if any position changed\n for (const page of draft.pages) {\n entityListMultiPatchModel.items?.forEach((patchItem) => {\n const itemIndex = page.items.findIndex(\n (item) => item.id === patchItem.id || item.entityId === patchItem.entityId,\n )\n\n if (itemIndex !== -1) {\n const existingItem = page.items[itemIndex]\n // Merge existing item with patchItem, ensuring attrib is also merged\n const updatedItem = {\n ...existingItem,\n ...patchItem, // Apply all top-level fields from patchItem\n attrib: {\n ...existingItem.attrib,\n ...(patchItem.attrib || {}), // Merge attrib safely\n },\n }\n Object.assign(page.items[itemIndex], updatedItem)\n\n if (patchItem.position !== undefined) {\n overallPositionChanged = true\n }\n }\n })\n }\n\n if (overallPositionChanged) {\n // Collect all items from all pages for this specific cache entry\n let allItems = draft.pages.flatMap((page) => page.items)\n\n // Sort all items based on position\n allItems.sort((a, b) => {\n const posA = typeof a.position === 'number' ? a.position : Infinity\n const posB = typeof b.position === 'number' ? b.position : Infinity\n return posA - posB\n })\n\n // Re-distribute sorted items back into pages, maintaining original page sizes\n let currentItemIndex = 0\n for (const page of draft.pages) {\n const pageItemCount = page.items.length // Get original item count for this page\n // Replace page items with the corresponding slice from the globally sorted list\n page.items = allItems.slice(currentItemIndex, currentItemIndex + pageItemCount)\n currentItemIndex += pageItemCount\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n invalidatesTags: (_s, _e, { listId, entityListMultiPatchModel: { items } }) => {\n const tags = [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ...(items || []).flatMap((i) =>\n (i.id ? [{ type: 'entityListItem', id: i.id }] : []).concat(\n i.entityId ? [{ type: 'entityListItem', id: i.entityId }] : [],\n ),\n ),\n ]\n return tags\n },\n },\n updateEntityListItem: {\n async onQueryStarted(\n { listItemId, entityListItemPatchModel },\n { dispatch, queryFulfilled, getState },\n ) {\n const state = getState()\n // Find all caches that are invalidated by this mutation\n const tags = [{ type: 'entityListItem', id: listItemId }]\n const infiniteEntries = gqlApi.util\n .selectInvalidatedBy(state, tags)\n .filter((e) => e.endpointName === 'getListItemsInfinite')\n\n let patchResults: any[] = []\n for (const entry of infiniteEntries) {\n const patchResult = dispatch(\n gqlApi.util.updateQueryData('getListItemsInfinite', entry.originalArgs, (draft) => {\n for (const page of draft.pages) {\n const listIndex = page.items.findIndex((list) => list.id === listItemId)\n if (listIndex !== -1) {\n const list = page.items[listIndex]\n const newListItem = {\n ...list,\n attrib: {\n ...list.attrib,\n ...entityListItemPatchModel.attrib,\n },\n }\n // Update the list with the new data\n Object.assign(list, newListItem)\n break\n }\n }\n }),\n )\n // Store the patch result to undo it later if needed\n patchResults.push(patchResult)\n }\n try {\n await queryFulfilled\n } catch {\n patchResults.forEach((patchResult) => {\n // Undo the optimistic update if the mutation fails\n patchResult.undo()\n })\n }\n },\n },\n createEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n deleteEntityListItem: {\n invalidatesTags: (_s, _e, { listId }) => [\n { type: 'entityList', id: listId },\n { type: 'entityListItem', id: listId },\n ],\n },\n },\n})\n\n// inject review addon endpoint Create Session From List\nconst updateListsInjectedApi = updateListsEnhancedApi.injectEndpoints({\n endpoints: (build) => ({\n createSessionFromList: build.mutation<\n CreateSessionFromListApiResponse,\n CreateSessionFromListApiArg\n >({\n query: (queryArg) => ({\n url: `/api/addons/review/${queryArg.addonVersion}/${queryArg.projectName}/sessions/fromList`,\n method: 'POST',\n body: queryArg.sessionFromListRequest,\n }),\n transformErrorResponse: (error: any) => error.data.detail,\n invalidatesTags: () => [{ type: 'entityList', id: 'LIST' }],\n }),\n }),\n})\n\nexport const {\n // LIST MUTATIONS\n useCreateEntityListMutation,\n useUpdateEntityListMutation,\n useDeleteEntityListMutation,\n // LIST ITEM MUTATIONS\n useUpdateEntityListItemsMutation,\n useUpdateEntityListItemMutation,\n useCreateEntityListItemMutation,\n useDeleteEntityListItemMutation,\n // REVIEW SESSION MUTATIONS\n useCreateSessionFromListMutation,\n} = updateListsInjectedApi\nexport { updateListsInjectedApi as entityListsQueriesRest, gqlApi as entityListsQueriesGql }\n"],"names":["updateListsEnhancedApi","entityListsApi","listId","entityListPatchModel","dispatch","queryFulfilled","getState","state","tags","infiniteEntries","gqlApi","e","patchResults","entry","patchResult","draft","page","listIndex","list","entityListEntries","entityListMultiPatchModel","overallPositionChanged","_a","patchItem","itemIndex","item","existingItem","updatedItem","allItems","a","b","posA","posB","currentItemIndex","pageItemCount","_s","_e","items","i","listItemId","entityListItemPatchModel","newListItem","updateListsInjectedApi","build","queryArg","error","useCreateEntityListMutation","useUpdateEntityListMutation","useDeleteEntityListMutation","useUpdateEntityListItemsMutation","useUpdateEntityListItemMutation","useCreateEntityListItemMutation","useDeleteEntityListItemMutation","useCreateSessionFromListMutation"],"mappings":"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"}