@ynput/ayon-frontend-shared 0.3.26 → 0.3.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 (672) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +25 -23
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +404 -190
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +19 -18
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/_virtual/index.cjs14.js +1 -1
  11. package/dist/_virtual/index.cjs8.js +1 -1
  12. package/dist/_virtual/index.es14.js +5 -2
  13. package/dist/_virtual/index.es14.js.map +1 -1
  14. package/dist/_virtual/index.es8.js +2 -5
  15. package/dist/_virtual/index.es8.js.map +1 -1
  16. package/dist/api.cjs.js +1 -1
  17. package/dist/api.es.js +406 -402
  18. package/dist/api.es.js.map +1 -1
  19. package/dist/hooks.cjs.js +1 -1
  20. package/dist/hooks.es.js +15 -13
  21. package/dist/hooks.es.js.map +1 -1
  22. package/dist/index.cjs.js +1 -1
  23. package/dist/index.es.js +12 -10
  24. package/dist/index.es.js.map +1 -1
  25. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  26. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  27. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  28. package/dist/node_modules/remove-accents/index.cjs.js.map +1 -1
  29. package/dist/node_modules/remove-accents/index.es.js +1 -1
  30. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.cjs.js +1 -1
  31. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.es.js +1 -1
  32. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.cjs.js +1 -1
  33. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.es.js +1 -1
  34. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  35. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  36. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  37. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js.map +1 -1
  38. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  39. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  40. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js.map +1 -1
  41. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  42. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  43. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js.map +1 -1
  44. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  45. package/dist/shared/src/api/base/client.cjs.js +1 -1
  46. package/dist/shared/src/api/base/client.cjs.js.map +1 -1
  47. package/dist/shared/src/api/base/client.es.js +1 -0
  48. package/dist/shared/src/api/base/client.es.js.map +1 -1
  49. package/dist/shared/src/api/generated/graphql.cjs.js +58 -36
  50. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  51. package/dist/shared/src/api/generated/graphql.es.js +125 -99
  52. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  53. package/dist/shared/src/api/generated/graphqlLinks.cjs.js +69 -9
  54. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  55. package/dist/shared/src/api/generated/graphqlLinks.es.js +95 -35
  56. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  57. package/dist/shared/src/api/generated/projectFolders.cjs.js.map +1 -1
  58. package/dist/shared/src/api/generated/projectFolders.es.js.map +1 -1
  59. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js +1 -1
  60. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js.map +1 -1
  61. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js +20 -19
  62. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js.map +1 -1
  63. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
  64. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  65. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +4 -3
  66. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  67. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.cjs.js +2 -0
  68. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.cjs.js.map +1 -0
  69. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.es.js +64 -0
  70. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.es.js.map +1 -0
  71. package/dist/shared/src/api/queries/links/getLinks.cjs.js +1 -1
  72. package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -1
  73. package/dist/shared/src/api/queries/links/getLinks.es.js +27 -26
  74. package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -1
  75. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  76. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  77. package/dist/shared/src/api/queries/overview/getOverview.es.js +104 -103
  78. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  79. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  80. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  81. package/dist/shared/src/api/queries/overview/updateOverview.es.js +118 -111
  82. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  83. package/dist/shared/src/api/queries/project/updateProject.cjs.js +1 -1
  84. package/dist/shared/src/api/queries/project/updateProject.cjs.js.map +1 -1
  85. package/dist/shared/src/api/queries/project/updateProject.es.js +43 -19
  86. package/dist/shared/src/api/queries/project/updateProject.es.js.map +1 -1
  87. package/dist/shared/src/api/queries/users/getUsers.cjs.js +1 -1
  88. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  89. package/dist/shared/src/api/queries/users/getUsers.es.js +22 -21
  90. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  91. package/dist/shared/src/api/queries/views/getViews.cjs.js +1 -1
  92. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
  93. package/dist/shared/src/api/queries/views/getViews.es.js +24 -20
  94. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
  95. package/dist/shared/src/components/DateRangePicker/DateRangePicker.cjs.js +1 -1
  96. package/dist/shared/src/components/DateRangePicker/DateRangePicker.cjs.js.map +1 -1
  97. package/dist/shared/src/components/DateRangePicker/DateRangePicker.es.js +89 -88
  98. package/dist/shared/src/components/DateRangePicker/DateRangePicker.es.js.map +1 -1
  99. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
  100. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  101. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +3 -2
  102. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  103. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  104. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  105. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +6 -2
  106. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  107. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  108. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  109. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +3 -2
  110. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  111. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
  112. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  113. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +3 -2
  114. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  115. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  116. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  117. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +5 -2
  118. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  119. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  120. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  121. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +9 -7
  122. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  123. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  124. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  125. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +5 -3
  126. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  127. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  128. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  129. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +5 -4
  130. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  131. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  132. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  133. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +3 -2
  134. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  135. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  136. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  137. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +3 -2
  138. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  139. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  140. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  141. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +9 -7
  142. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  143. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  144. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  145. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +3 -2
  146. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  147. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  148. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  149. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +5 -3
  150. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  151. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  152. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  153. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +46 -43
  154. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  155. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  156. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  157. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +5 -3
  158. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  159. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  160. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  161. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +5 -3
  162. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  163. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  164. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  165. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +23 -21
  166. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  167. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  168. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  169. package/dist/shared/src/components/RenameForm/RenameForm.es.js +9 -7
  170. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  171. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
  172. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  173. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +3 -2
  174. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  175. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  176. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  177. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +5 -3
  178. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  179. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  180. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  181. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +6 -4
  182. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  183. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  184. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  185. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +5 -3
  186. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  187. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  188. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  189. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +3 -2
  190. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  191. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  192. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  193. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +5 -2
  194. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  195. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js +1 -1
  196. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js.map +1 -1
  197. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js +67 -77
  198. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js.map +1 -1
  199. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  200. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  201. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +192 -141
  202. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  203. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  204. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  205. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +7 -5
  206. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  207. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  208. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  209. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +5 -3
  210. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  211. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js +1 -1
  212. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js.map +1 -1
  213. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js +3 -2
  214. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
  215. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
  216. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
  217. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +41 -44
  218. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
  219. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +4 -4
  220. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  221. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +5 -3
  222. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  223. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  224. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  225. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +7 -5
  226. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  227. package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
  228. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  229. package/dist/shared/src/components/Watchers/Watchers.es.js +3 -2
  230. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  231. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  232. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  233. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +5 -3
  234. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  235. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  236. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  237. package/dist/shared/src/containers/Actions/Actions.es.js +5 -2
  238. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  239. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  240. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  241. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +5 -3
  242. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  243. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  244. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  245. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +5 -3
  246. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  247. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  248. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  249. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +5 -3
  250. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  251. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  252. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  253. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +5 -3
  254. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  255. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  256. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  257. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +5 -3
  258. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  259. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  260. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  261. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +3 -2
  262. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  263. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  264. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  265. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +20 -18
  266. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  267. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  268. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  269. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +5 -3
  270. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  271. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  272. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  273. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +5 -3
  274. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  275. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  276. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  277. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +5 -2
  278. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  279. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  280. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  281. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +5 -2
  282. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  283. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
  284. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  285. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +67 -64
  286. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  287. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  288. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  289. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +5 -3
  290. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  291. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  292. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  293. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +5 -3
  294. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  295. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  296. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  297. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +5 -3
  298. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  299. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  300. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  301. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +5 -2
  302. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  303. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  304. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  305. package/dist/shared/src/containers/Feed/Feed.es.js +5 -4
  306. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  307. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  308. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  309. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +5 -3
  310. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  311. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  312. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  313. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +5 -3
  314. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  315. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  316. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  317. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +5 -3
  318. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  319. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  320. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  321. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +5 -3
  322. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  323. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  324. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  325. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +9 -7
  326. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  327. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  328. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  329. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +5 -3
  330. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  331. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js +1 -1
  332. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js.map +1 -1
  333. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.es.js +3 -2
  334. package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.es.js.map +1 -1
  335. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  336. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  337. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +6 -5
  338. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  339. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  340. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  341. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +3 -2
  342. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  343. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  344. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  345. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +565 -563
  346. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  347. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  348. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  349. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +61 -50
  350. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  351. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  352. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  353. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +9 -7
  354. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  355. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +2 -2
  356. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  357. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +104 -102
  358. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  359. package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.cjs.js +10 -0
  360. package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.cjs.js.map +1 -0
  361. package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.es.js +25 -0
  362. package/dist/shared/src/containers/ProjectTreeTable/components/DeleteConfirmContent.es.js.map +1 -0
  363. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  364. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  365. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +5 -3
  366. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  367. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  368. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  369. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +114 -112
  370. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  371. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +3 -3
  372. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  373. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +5 -4
  374. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  375. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  376. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  377. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +8 -8
  378. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  379. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  380. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  381. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +5 -4
  382. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  383. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  384. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  385. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +21 -19
  386. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  387. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  388. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  389. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +113 -111
  390. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  391. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  392. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  393. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +109 -107
  394. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  395. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  396. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  397. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +106 -105
  398. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  399. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  400. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  401. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +107 -105
  402. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  403. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  404. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  405. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +101 -99
  406. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  407. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  408. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  409. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +337 -40
  410. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  411. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  412. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  413. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +123 -119
  414. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  415. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  416. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  417. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +100 -98
  418. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  419. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  420. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  421. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +125 -120
  422. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  423. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  424. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  425. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +103 -101
  426. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  427. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  428. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  429. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +9 -7
  430. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  431. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  432. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  433. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +9 -7
  434. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  435. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  436. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  437. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +112 -110
  438. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  439. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  440. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  441. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +100 -98
  442. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  443. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  444. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  445. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +110 -108
  446. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  447. package/dist/shared/src/containers/ProjectTreeTable/utils/expandRelativeDates.cjs.js.map +1 -1
  448. package/dist/shared/src/containers/ProjectTreeTable/utils/expandRelativeDates.es.js.map +1 -1
  449. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +1 -1
  450. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
  451. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +89 -356
  452. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
  453. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  454. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  455. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +41 -39
  456. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  457. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js +1 -1
  458. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js.map +1 -1
  459. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js +29 -28
  460. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js.map +1 -1
  461. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.cjs.js +2 -2
  462. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.cjs.js.map +1 -1
  463. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.es.js +31 -32
  464. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.es.js.map +1 -1
  465. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  466. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  467. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +7 -5
  468. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  469. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  470. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  471. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +98 -96
  472. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  473. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  474. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  475. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +5 -3
  476. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  477. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +1 -1
  478. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  479. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +3 -2
  480. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  481. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  482. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  483. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +5 -3
  484. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  485. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  486. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  487. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +5 -3
  488. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  489. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  490. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  491. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +5 -3
  492. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  493. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  494. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  495. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +53 -49
  496. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  497. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  498. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  499. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +3 -2
  500. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  501. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  502. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  503. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +9 -7
  504. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  505. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js +1 -1
  506. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js.map +1 -1
  507. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js +21 -149
  508. package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js.map +1 -1
  509. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  510. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  511. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +54 -53
  512. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  513. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js +1 -1
  514. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
  515. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js +3 -2
  516. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
  517. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  518. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  519. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +5 -2
  520. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  521. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  522. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  523. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +10 -8
  524. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  525. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  526. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  527. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +23 -20
  528. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  529. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
  530. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
  531. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +3 -2
  532. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js.map +1 -1
  533. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  534. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  535. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +8 -5
  536. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  537. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
  538. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  539. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +3 -2
  540. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  541. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
  542. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  543. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +3 -2
  544. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  545. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  546. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  547. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +32 -26
  548. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  549. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  550. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  551. package/dist/shared/src/context/AddonProjectContext.es.js +5 -4
  552. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  553. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  554. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  555. package/dist/shared/src/context/DetailsPanelContext.es.js +7 -4
  556. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  557. package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
  558. package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
  559. package/dist/shared/src/context/GlobalContext.es.js +5 -4
  560. package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
  561. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  562. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  563. package/dist/shared/src/context/PowerpackContext.es.js +9 -6
  564. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  565. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  566. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  567. package/dist/shared/src/context/ProjectContext.es.js +5 -4
  568. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  569. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  570. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  571. package/dist/shared/src/context/ProjectFoldersContext.es.js +7 -4
  572. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  573. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  574. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  575. package/dist/shared/src/context/RemoteModulesContext.es.js +5 -4
  576. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  577. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  578. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  579. package/dist/shared/src/context/SubtasksModulesContext.es.js +7 -4
  580. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  581. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  582. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  583. package/dist/shared/src/context/UriContext.es.js +6 -5
  584. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  585. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  586. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  587. package/dist/shared/src/context/WebsocketContext.es.js +7 -5
  588. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  589. package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
  590. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  591. package/dist/shared/src/hooks/useActionTriggers.es.js +3 -2
  592. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  593. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  594. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  595. package/dist/shared/src/hooks/useEntityUpdate.es.js +3 -2
  596. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  597. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
  598. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
  599. package/dist/shared/src/hooks/useGetEntityGroups.es.js +3 -2
  600. package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
  601. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  602. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  603. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +5 -2
  604. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  605. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +2 -0
  606. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -0
  607. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +31 -0
  608. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js.map +1 -0
  609. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
  610. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  611. package/dist/shared/src/hooks/useScopedStatuses.es.js +5 -4
  612. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  613. package/dist/shared/src/hooks/useScopedTypes.cjs.js +1 -1
  614. package/dist/shared/src/hooks/useScopedTypes.cjs.js.map +1 -1
  615. package/dist/shared/src/hooks/useScopedTypes.es.js +3 -2
  616. package/dist/shared/src/hooks/useScopedTypes.es.js.map +1 -1
  617. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  618. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  619. package/dist/shared/src/hooks/useUserProjectConfig.es.js +3 -2
  620. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  621. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js +1 -1
  622. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js.map +1 -1
  623. package/dist/shared/src/util/buildHierarchicalTableRows.es.js +43 -44
  624. package/dist/shared/src/util/buildHierarchicalTableRows.es.js.map +1 -1
  625. package/dist/shared/src/util/confirmDelete.cjs.js.map +1 -1
  626. package/dist/shared/src/util/confirmDelete.es.js.map +1 -1
  627. package/dist/shared/src/util/formatUTCDate.cjs.js +2 -0
  628. package/dist/shared/src/util/formatUTCDate.cjs.js.map +1 -0
  629. package/dist/shared/src/util/formatUTCDate.es.js +9 -0
  630. package/dist/shared/src/util/formatUTCDate.es.js.map +1 -0
  631. package/dist/shared/src/util/getProjectDisplayName.cjs.js +2 -0
  632. package/dist/shared/src/util/getProjectDisplayName.cjs.js.map +1 -0
  633. package/dist/shared/src/util/getProjectDisplayName.es.js +5 -0
  634. package/dist/shared/src/util/getProjectDisplayName.es.js.map +1 -0
  635. package/dist/types/api/generated/graphql.d.ts +38 -0
  636. package/dist/types/api/generated/graphqlLinks.d.ts +10 -4
  637. package/dist/types/api/generated/projectFolders.d.ts +1 -0
  638. package/dist/types/api/queries/activities/getActivities.d.ts +7 -0
  639. package/dist/types/api/queries/activities/updateActivities.d.ts +14 -0
  640. package/dist/types/api/queries/entities/getEntity.d.ts +7 -0
  641. package/dist/types/api/queries/entities/getEntityPanel.d.ts +7 -0
  642. package/dist/types/api/queries/entities/updateEntity.d.ts +7 -0
  643. package/dist/types/api/queries/entityLists/getLists.d.ts +7 -0
  644. package/dist/types/api/queries/folders/getFolderDeleteInfo.d.ts +566 -0
  645. package/dist/types/api/queries/folders/index.d.ts +1 -0
  646. package/dist/types/api/queries/links/getLinks.d.ts +1 -0
  647. package/dist/types/api/queries/overview/getOverview.d.ts +7 -0
  648. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +7 -0
  649. package/dist/types/api/queries/users/getUsers.d.ts +7 -0
  650. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +14 -0
  651. package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +1 -0
  652. package/dist/types/components/ReviewablesSelector/ReviewablesSelector.d.ts +7 -2
  653. package/dist/types/components/ReviewablesSelector/index.d.ts +1 -0
  654. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +2 -1
  655. package/dist/types/containers/EntityPickerDialog/EntityPickerDialog.d.ts +1 -0
  656. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +2 -1
  657. package/dist/types/containers/ProjectTreeTable/components/DeleteConfirmContent.d.ts +6 -0
  658. package/dist/types/containers/ProjectTreeTable/utils/expandRelativeDates.d.ts +1 -1
  659. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +1 -0
  660. package/dist/types/containers/Slicer/hooks/useSlicerViewSync.d.ts +3 -7
  661. package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +2 -0
  662. package/dist/types/hooks/index.d.ts +1 -0
  663. package/dist/types/hooks/useReviewablesKeyboardNavigation.d.ts +13 -0
  664. package/dist/types/util/buildHierarchicalTableRows.d.ts +2 -0
  665. package/dist/types/util/confirmDelete.d.ts +1 -1
  666. package/dist/types/util/formatUTCDate.d.ts +1 -0
  667. package/dist/types/util/getProjectDisplayName.d.ts +6 -0
  668. package/dist/types/util/index.d.ts +1 -0
  669. package/dist/util.cjs.js +1 -1
  670. package/dist/util.es.js +23 -21
  671. package/dist/util.es.js.map +1 -1
  672. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"viewUpdateHelper.cjs.js","sources":["../../../../../../src/containers/Views/utils/viewUpdateHelper.ts"],"sourcesContent":["/**\n * Shared helper for updating view settings with optimistic local state management.\n *\n * Sequential updateViewSettings calls in the same event tick MUST chain correctly:\n * the second call has to see the first call's changes. Closure-captured\n * `viewSettings` does not refresh between sync calls (no re-render yet), so we\n * read the latest settings from the RTK Query cache at call time instead.\n * RTK's updateView mutation performs an optimistic cache write in\n * `onQueryStarted`, so the cache is already up-to-date by the time the next\n * call reads it.\n */\n\nimport {\n CreateViewApiArg,\n EntityIdResponse,\n useCreateViewMutation,\n useUpdateViewMutation,\n viewsQueries,\n} from '@shared/api'\nimport { generateWorkingView } from './generateWorkingView'\nimport { toast } from 'react-toastify'\nimport { useCallback } from 'react'\nimport { useStore } from 'react-redux'\nimport { useViewsContext, ViewsContextValue, ViewSettings } from '../context/ViewsContext'\n\ninterface UpdateOptions {\n successMessage?: string\n errorMessage?: string\n}\n\n// Module-level flag shared across every useViewUpdateHelper instance. Set true\n// when a mutation has been dispatched in the current tick (RTK cache is now\n// optimistically fresh); reset on the next microtask. Must be module-level so\n// that two different hook instances (e.g. ProjectOverviewDataProvider +\n// ProjectOverviewContext) coordinate correctly when writes flow through one\n// and subsequent reads come from the other in the same event tick.\nlet cacheDirtyThisTick = false\nconst markCacheDirty = () => {\n if (cacheDirtyThisTick) return\n cacheDirtyThisTick = true\n queueMicrotask(() => {\n cacheDirtyThisTick = false\n })\n}\n\nexport type UpdateViewSettingsFn = (\n updatedSettings: any,\n localStateSetter: (value: any) => void,\n newLocalValue: any,\n options: UpdateOptions,\n) => Promise<void>\n\nexport const updateViewSettings = async (\n updatedSettings: any,\n localStateSetter: (value: any) => void,\n newLocalValue: any,\n options: UpdateOptions = {},\n viewContext: ViewsContextValue,\n onApplyViewChanges: (arg: any, viewId?: string) => Promise<EntityIdResponse | void>,\n // Reads latest effective settings from RTK Query cache at call time. Required to\n // prevent stale-closure races when two updates fire in the same tick.\n getLatestSettings: () => ViewSettings | undefined,\n // Invoked synchronously right after the mutation is dispatched. The caller\n // uses this to flip a \"cache is fresh this tick\" flag so subsequent sync\n // calls in the same tick read the just-updated cache instead of stale state.\n markCacheDirty: () => void,\n): Promise<void> => {\n const {\n viewSettings,\n viewType,\n projectName,\n selectedView,\n setSelectedView,\n workingView,\n onSettingsChanged,\n } = viewContext\n\n if (!viewType) throw new Error('No view type provided for updating view settings')\n\n const previousSelectedViewId = selectedView?.id\n const wasWorking = selectedView?.working\n\n try {\n // Immediately update local state for fast UI response\n localStateSetter(newLocalValue)\n\n // Read latest settings from RTK cache (includes prior same-tick optimistic writes).\n // Fallback to closure-captured value if cache has nothing (first render, etc.).\n const latestSettings = getLatestSettings() ?? viewSettings\n\n // Create settings with updates\n const newSettings = { ...latestSettings, ...updatedSettings }\n\n // always update the working view no matter what\n const newWorkingView = generateWorkingView(newSettings)\n\n // Ensure the payload uses the consistent ID if we already have a working view\n const viewId = workingView?.id\n if (viewId) {\n newWorkingView.id = viewId\n }\n const newWorkingViewId = newWorkingView.id\n\n // Make API call in background\n // only include the fields that are updating (just settings)\n const payload = viewId ? { settings: newSettings } : newWorkingView\n\n const promise = onApplyViewChanges(\n {\n payload,\n viewType: viewType,\n projectName: projectName,\n },\n viewId,\n )\n\n // Mutation dispatch above ran onQueryStarted synchronously → RTK cache now\n // reflects `newSettings`. Signal this so any subsequent sync call in the\n // same tick reads the fresh cache instead of the stale closure baseline.\n markCacheDirty()\n\n // if not already on the working view: set that the settings have been changed to show the little blue save button and switch to the working view\n if (!wasWorking) {\n if (selectedView) {\n onSettingsChanged(true)\n }\n setSelectedView(newWorkingViewId as string)\n }\n\n await promise\n\n // Clear local state after successful API call - the server data will take over\n localStateSetter(null)\n\n if (options.successMessage) {\n toast.success(options.successMessage)\n }\n } catch (error) {\n // Revert local state on error\n localStateSetter(null)\n\n if (previousSelectedViewId) {\n setSelectedView(previousSelectedViewId)\n }\n\n if (selectedView && !wasWorking) {\n onSettingsChanged(false)\n }\n\n console.error(error)\n const errorMsg = options.errorMessage || `Failed to update view settings: ${error}`\n toast.error(errorMsg)\n }\n}\n\nexport const useViewUpdateHelper = () => {\n const [createView] = useCreateViewMutation()\n const [updateView] = useUpdateViewMutation()\n\n const viewContext = useViewsContext()\n const store = useStore()\n\n const onApplyViewChanges = useCallback(\n async (arg: any, viewId?: string) => {\n if (viewId) {\n // Filter the payload to only include valid patch fields\n // and ideally only include fields that are actually being updated.\n // Expecting the caller to provide only the fields they want to update in the payload.\n const patchPayload: any = {}\n const patchFields = ['label', 'owner', 'settings']\n patchFields.forEach((key) => {\n if (arg.payload[key] !== undefined) {\n patchPayload[key] = arg.payload[key]\n }\n })\n\n return await updateView({\n viewType: arg.viewType,\n projectName: arg.projectName,\n viewId,\n payload: patchPayload,\n }).unwrap()\n } else {\n return await createView(arg).unwrap()\n }\n },\n [createView, updateView],\n )\n\n // Returns cached settings when a same-tick prior write has refreshed the\n // cache. Otherwise returns undefined and the caller falls back to the\n // closure-captured viewSettings (correct baseline for the first write in a\n // tick, including the named-view → working-view fork).\n const getLatestSettings = useCallback((): ViewSettings | undefined => {\n if (!cacheDirtyThisTick) return undefined\n const { viewType, projectName } = viewContext\n if (!viewType) return undefined\n // RTK selector state is typed against the full RootState; we don't have that\n // type in @shared and the store is project-specific. Cast is safe: the\n // selector only touches the api slice, which exists in every consumer app.\n const entry = viewsQueries.endpoints.getWorkingView.select({ viewType, projectName })(\n store.getState() as any,\n )\n return entry?.data?.settings\n }, [store, viewContext])\n\n const updateViewSettingsHandler = useCallback<UpdateViewSettingsFn>(\n async (...args) =>\n await updateViewSettings(\n ...args,\n viewContext,\n onApplyViewChanges,\n getLatestSettings,\n markCacheDirty,\n ),\n [viewContext, onApplyViewChanges, getLatestSettings],\n )\n\n return { updateViewSettings: updateViewSettingsHandler, onCreateView: onApplyViewChanges }\n}\n"],"names":["cacheDirtyThisTick","markCacheDirty","updateViewSettings","updatedSettings","localStateSetter","newLocalValue","options","viewContext","onApplyViewChanges","getLatestSettings","viewSettings","viewType","projectName","selectedView","setSelectedView","workingView","onSettingsChanged","previousSelectedViewId","wasWorking","newSettings","newWorkingView","generateWorkingView","viewId","newWorkingViewId","promise","toast","error","errorMsg","useViewUpdateHelper","createView","useCreateViewMutation","updateView","useUpdateViewMutation","useViewsContext","store","useStore","useCallback","arg","patchPayload","key","viewsQueries","args"],"mappings":"uxKAoCA,IAAIA,EAAqB,GACzB,MAAMC,EAAiB,IAAM,CACvBD,IACJA,EAAqB,GACrB,eAAe,IAAM,CACnBA,EAAqB,EACvB,CAAC,EACH,EASaE,EAAqB,MAChCC,EACAC,EACAC,EACAC,EAAyB,CAAA,EACzBC,EACAC,EAGAC,EAIAR,IACkB,CAClB,KAAM,CACJ,aAAAS,EACA,SAAAC,EACA,YAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,YAAAC,EACA,kBAAAC,CAAA,EACET,EAEJ,GAAI,CAACI,EAAU,MAAM,IAAI,MAAM,kDAAkD,EAEjF,MAAMM,EAAyBJ,GAAc,GACvCK,EAAaL,GAAc,QAEjC,GAAI,CAEFT,EAAiBC,CAAa,EAO9B,MAAMc,EAAc,CAAE,GAHCV,KAAuBC,EAGL,GAAGP,CAAA,EAGtCiB,EAAiBC,EAAAA,oBAAoBF,CAAW,EAGhDG,EAASP,GAAa,GACxBO,IACFF,EAAe,GAAKE,GAEtB,MAAMC,EAAmBH,EAAe,GAMlCI,EAAUhB,EACd,CACE,QAJYc,EAAS,CAAE,SAAUH,GAAgBC,EAKjD,SAAAT,EACA,YAAAC,CAAA,EAEFU,CAAA,EAMFrB,EAAAA,EAGKiB,IACCL,GACFG,EAAkB,EAAI,EAExBF,EAAgBS,CAA0B,GAG5C,MAAMC,EAGNpB,EAAiB,IAAI,EAEjBE,EAAQ,gBACVmB,QAAM,QAAQnB,EAAQ,cAAc,CAExC,OAASoB,EAAO,CAEdtB,EAAiB,IAAI,EAEjBa,GACFH,EAAgBG,CAAsB,EAGpCJ,GAAgB,CAACK,GACnBF,EAAkB,EAAK,EAGzB,QAAQ,MAAMU,CAAK,EACnB,MAAMC,EAAWrB,EAAQ,cAAgB,mCAAmCoB,CAAK,GACjFD,EAAAA,MAAM,MAAME,CAAQ,CACtB,CACF,EAEaC,EAAsB,IAAM,CACvC,KAAM,CAACC,CAAU,EAAIC,wBAAA,EACf,CAACC,CAAU,EAAIC,wBAAA,EAEfzB,EAAc0B,EAAAA,gBAAA,EACdC,EAAQC,EAAAA,SAAA,EAER3B,EAAqB4B,EAAAA,YACzB,MAAOC,EAAUf,IAAoB,CACnC,GAAIA,EAAQ,CAIV,MAAMgB,EAAoB,CAAA,EAE1B,MADoB,CAAC,QAAS,QAAS,UAAU,EACrC,QAASC,GAAQ,CACvBF,EAAI,QAAQE,CAAG,IAAM,SACvBD,EAAaC,CAAG,EAAIF,EAAI,QAAQE,CAAG,EAEvC,CAAC,EAEM,MAAMR,EAAW,CACtB,SAAUM,EAAI,SACd,YAAaA,EAAI,YACjB,OAAAf,EACA,QAASgB,CAAA,CACV,EAAE,OAAA,CACL,KACE,QAAO,MAAMT,EAAWQ,CAAG,EAAE,OAAA,CAEjC,EACA,CAACR,EAAYE,CAAU,CAAA,EAOnBtB,EAAoB2B,EAAAA,YAAY,IAAgC,CACpE,GAAI,CAACpC,EAAoB,OACzB,KAAM,CAAE,SAAAW,EAAU,YAAAC,CAAA,EAAgBL,EAClC,OAAKI,EAIS6B,EAAAA,aAAa,UAAU,eAAe,OAAO,CAAE,SAAA7B,EAAU,YAAAC,EAAa,EAClFsB,EAAM,SAAA,CAAS,GAEH,MAAM,SAPL,MAQjB,EAAG,CAACA,EAAO3B,CAAW,CAAC,EAcvB,MAAO,CAAE,mBAZyB6B,EAAAA,YAChC,SAAUK,IACR,MAAMvC,EACJ,GAAGuC,EACHlC,EACAC,EACAC,EACAR,CAAA,EAEJ,CAACM,EAAaC,EAAoBC,CAAiB,CAAA,EAGG,aAAcD,CAAA,CACxE"}
1
+ {"version":3,"file":"viewUpdateHelper.cjs.js","sources":["../../../../../../src/containers/Views/utils/viewUpdateHelper.ts"],"sourcesContent":["/**\n * Shared helper for updating view settings with optimistic local state management.\n *\n * Sequential updateViewSettings calls in the same event tick MUST chain correctly:\n * the second call has to see the first call's changes. Closure-captured\n * `viewSettings` does not refresh between sync calls (no re-render yet), so we\n * read the latest settings from the RTK Query cache at call time instead.\n * RTK's updateView mutation performs an optimistic cache write in\n * `onQueryStarted`, so the cache is already up-to-date by the time the next\n * call reads it.\n */\n\nimport {\n CreateViewApiArg,\n EntityIdResponse,\n useCreateViewMutation,\n useUpdateViewMutation,\n viewsQueries,\n} from '@shared/api'\nimport { generateWorkingView } from './generateWorkingView'\nimport { toast } from 'react-toastify'\nimport { useCallback } from 'react'\nimport { useStore } from 'react-redux'\nimport { useViewsContext, ViewsContextValue, ViewSettings } from '../context/ViewsContext'\n\ninterface UpdateOptions {\n successMessage?: string\n errorMessage?: string\n}\n\n// Module-level flag shared across every useViewUpdateHelper instance. Set true\n// when a mutation has been dispatched in the current tick (RTK cache is now\n// optimistically fresh); reset on the next microtask. Must be module-level so\n// that two different hook instances (e.g. ProjectOverviewDataProvider +\n// ProjectOverviewContext) coordinate correctly when writes flow through one\n// and subsequent reads come from the other in the same event tick.\nlet cacheDirtyThisTick = false\nconst markCacheDirty = () => {\n if (cacheDirtyThisTick) return\n cacheDirtyThisTick = true\n queueMicrotask(() => {\n cacheDirtyThisTick = false\n })\n}\n\nexport type UpdateViewSettingsFn = (\n updatedSettings: any,\n localStateSetter: (value: any) => void,\n newLocalValue: any,\n options: UpdateOptions,\n) => Promise<void>\n\nexport const updateViewSettings = async (\n updatedSettings: any,\n localStateSetter: (value: any) => void,\n newLocalValue: any,\n options: UpdateOptions = {},\n viewContext: ViewsContextValue,\n onApplyViewChanges: (arg: any, viewId?: string) => Promise<EntityIdResponse | void>,\n // Reads latest effective settings from RTK Query cache at call time. Required to\n // prevent stale-closure races when two updates fire in the same tick.\n getLatestSettings: () => ViewSettings | undefined,\n // Invoked synchronously right after the mutation is dispatched. The caller\n // uses this to flip a \"cache is fresh this tick\" flag so subsequent sync\n // calls in the same tick read the just-updated cache instead of stale state.\n markCacheDirty: () => void,\n): Promise<void> => {\n const {\n viewSettings,\n viewType,\n projectName,\n selectedView,\n setSelectedView,\n workingView,\n onSettingsChanged,\n } = viewContext\n\n if (!viewType) throw new Error('No view type provided for updating view settings')\n\n const previousSelectedViewId = selectedView?.id\n const wasWorking = selectedView?.working\n\n try {\n // Immediately update local state for fast UI response\n localStateSetter(newLocalValue)\n\n // Read latest settings from RTK cache (includes prior same-tick optimistic writes).\n // Fallback to closure-captured value if cache has nothing (first render, etc.).\n const latestSettings = getLatestSettings() ?? viewSettings\n\n // Create settings with updates\n const newSettings = { ...latestSettings, ...updatedSettings }\n\n // always update the working view no matter what\n const newWorkingView = generateWorkingView(newSettings)\n\n // Ensure the payload uses the consistent ID if we already have a working view\n const viewId = workingView?.id\n if (viewId) {\n newWorkingView.id = viewId\n }\n const newWorkingViewId = newWorkingView.id\n\n // Make API call in background\n // only include the fields that are updating (just settings)\n const payload = viewId ? { settings: newSettings } : newWorkingView\n\n const promise = onApplyViewChanges(\n {\n payload,\n viewType: viewType,\n projectName: projectName,\n },\n viewId,\n )\n\n // Mutation dispatch above ran onQueryStarted synchronously → RTK cache now\n // reflects `newSettings`. Signal this so any subsequent sync call in the\n // same tick reads the fresh cache instead of the stale closure baseline.\n markCacheDirty()\n\n // if not already on the working view: set that the settings have been changed to show the little blue save button and switch to the working view\n if (!wasWorking) {\n if (selectedView) {\n onSettingsChanged(true)\n }\n setSelectedView(newWorkingViewId as string)\n }\n\n await promise\n\n // Clear local state after successful API call - the server data will take over\n localStateSetter(null)\n\n if (options.successMessage) {\n toast.success(options.successMessage)\n }\n } catch (error) {\n // Revert local state on error\n localStateSetter(null)\n\n if (previousSelectedViewId) {\n setSelectedView(previousSelectedViewId)\n }\n\n if (selectedView && !wasWorking) {\n onSettingsChanged(false)\n }\n\n console.error(error)\n const errorMsg = options.errorMessage || `Failed to update view settings: ${error}`\n toast.error(errorMsg)\n }\n}\n\nexport const useViewUpdateHelper = () => {\n const [createView] = useCreateViewMutation()\n const [updateView] = useUpdateViewMutation()\n\n const viewContext = useViewsContext()\n const store = useStore()\n\n const onApplyViewChanges = useCallback(\n async (arg: any, viewId?: string) => {\n if (viewId) {\n // Filter the payload to only include valid patch fields\n // and ideally only include fields that are actually being updated.\n // Expecting the caller to provide only the fields they want to update in the payload.\n const patchPayload: any = {}\n const patchFields = ['label', 'owner', 'settings']\n patchFields.forEach((key) => {\n if (arg.payload[key] !== undefined) {\n patchPayload[key] = arg.payload[key]\n }\n })\n\n return await updateView({\n viewType: arg.viewType,\n projectName: arg.projectName,\n viewId,\n payload: patchPayload,\n }).unwrap()\n } else {\n return await createView(arg).unwrap()\n }\n },\n [createView, updateView],\n )\n\n // Returns cached settings when a same-tick prior write has refreshed the\n // cache. Otherwise returns undefined and the caller falls back to the\n // closure-captured viewSettings (correct baseline for the first write in a\n // tick, including the named-view → working-view fork).\n const getLatestSettings = useCallback((): ViewSettings | undefined => {\n if (!cacheDirtyThisTick) return undefined\n const { viewType, projectName } = viewContext\n if (!viewType) return undefined\n // RTK selector state is typed against the full RootState; we don't have that\n // type in @shared and the store is project-specific. Cast is safe: the\n // selector only touches the api slice, which exists in every consumer app.\n const entry = viewsQueries.endpoints.getWorkingView.select({ viewType, projectName })(\n store.getState() as any,\n )\n return entry?.data?.settings\n }, [store, viewContext])\n\n const updateViewSettingsHandler = useCallback<UpdateViewSettingsFn>(\n async (...args) =>\n await updateViewSettings(\n ...args,\n viewContext,\n onApplyViewChanges,\n getLatestSettings,\n markCacheDirty,\n ),\n [viewContext, onApplyViewChanges, getLatestSettings],\n )\n\n return {\n updateViewSettings: updateViewSettingsHandler,\n onCreateView: onApplyViewChanges,\n getLatestSettings,\n markCacheDirty,\n }\n}\n"],"names":["cacheDirtyThisTick","markCacheDirty","updateViewSettings","updatedSettings","localStateSetter","newLocalValue","options","viewContext","onApplyViewChanges","getLatestSettings","viewSettings","viewType","projectName","selectedView","setSelectedView","workingView","onSettingsChanged","previousSelectedViewId","wasWorking","newSettings","newWorkingView","generateWorkingView","viewId","newWorkingViewId","promise","toast","error","errorMsg","useViewUpdateHelper","createView","useCreateViewMutation","updateView","useUpdateViewMutation","useViewsContext","store","useStore","useCallback","arg","patchPayload","key","viewsQueries","args"],"mappings":"01KAoCA,IAAIA,EAAqB,GACzB,MAAMC,EAAiB,IAAM,CACvBD,IACJA,EAAqB,GACrB,eAAe,IAAM,CACnBA,EAAqB,EACvB,CAAC,EACH,EASaE,EAAqB,MAChCC,EACAC,EACAC,EACAC,EAAyB,CAAA,EACzBC,EACAC,EAGAC,EAIAR,IACkB,CAClB,KAAM,CACJ,aAAAS,EACA,SAAAC,EACA,YAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,YAAAC,EACA,kBAAAC,CAAA,EACET,EAEJ,GAAI,CAACI,EAAU,MAAM,IAAI,MAAM,kDAAkD,EAEjF,MAAMM,EAAyBJ,GAAc,GACvCK,EAAaL,GAAc,QAEjC,GAAI,CAEFT,EAAiBC,CAAa,EAO9B,MAAMc,EAAc,CAAE,GAHCV,KAAuBC,EAGL,GAAGP,CAAA,EAGtCiB,EAAiBC,EAAAA,oBAAoBF,CAAW,EAGhDG,EAASP,GAAa,GACxBO,IACFF,EAAe,GAAKE,GAEtB,MAAMC,EAAmBH,EAAe,GAMlCI,EAAUhB,EACd,CACE,QAJYc,EAAS,CAAE,SAAUH,GAAgBC,EAKjD,SAAAT,EACA,YAAAC,CAAA,EAEFU,CAAA,EAMFrB,EAAAA,EAGKiB,IACCL,GACFG,EAAkB,EAAI,EAExBF,EAAgBS,CAA0B,GAG5C,MAAMC,EAGNpB,EAAiB,IAAI,EAEjBE,EAAQ,gBACVmB,QAAM,QAAQnB,EAAQ,cAAc,CAExC,OAASoB,EAAO,CAEdtB,EAAiB,IAAI,EAEjBa,GACFH,EAAgBG,CAAsB,EAGpCJ,GAAgB,CAACK,GACnBF,EAAkB,EAAK,EAGzB,QAAQ,MAAMU,CAAK,EACnB,MAAMC,EAAWrB,EAAQ,cAAgB,mCAAmCoB,CAAK,GACjFD,EAAAA,MAAM,MAAME,CAAQ,CACtB,CACF,EAEaC,EAAsB,IAAM,CACvC,KAAM,CAACC,CAAU,EAAIC,wBAAA,EACf,CAACC,CAAU,EAAIC,wBAAA,EAEfzB,EAAc0B,EAAAA,gBAAA,EACdC,EAAQC,EAAAA,SAAA,EAER3B,EAAqB4B,EAAAA,YACzB,MAAOC,EAAUf,IAAoB,CACnC,GAAIA,EAAQ,CAIV,MAAMgB,EAAoB,CAAA,EAE1B,MADoB,CAAC,QAAS,QAAS,UAAU,EACrC,QAASC,GAAQ,CACvBF,EAAI,QAAQE,CAAG,IAAM,SACvBD,EAAaC,CAAG,EAAIF,EAAI,QAAQE,CAAG,EAEvC,CAAC,EAEM,MAAMR,EAAW,CACtB,SAAUM,EAAI,SACd,YAAaA,EAAI,YACjB,OAAAf,EACA,QAASgB,CAAA,CACV,EAAE,OAAA,CACL,KACE,QAAO,MAAMT,EAAWQ,CAAG,EAAE,OAAA,CAEjC,EACA,CAACR,EAAYE,CAAU,CAAA,EAOnBtB,EAAoB2B,EAAAA,YAAY,IAAgC,CACpE,GAAI,CAACpC,EAAoB,OACzB,KAAM,CAAE,SAAAW,EAAU,YAAAC,CAAA,EAAgBL,EAClC,OAAKI,EAIS6B,EAAAA,aAAa,UAAU,eAAe,OAAO,CAAE,SAAA7B,EAAU,YAAAC,EAAa,EAClFsB,EAAM,SAAA,CAAS,GAEH,MAAM,SAPL,MAQjB,EAAG,CAACA,EAAO3B,CAAW,CAAC,EAcvB,MAAO,CACL,mBAbgC6B,EAAAA,YAChC,SAAUK,IACR,MAAMvC,EACJ,GAAGuC,EACHlC,EACAC,EACAC,EACAR,CAAA,EAEJ,CAACM,EAAaC,EAAoBC,CAAiB,CAAA,EAKnD,aAAcD,EACd,kBAAAC,EACA,eAAAR,CAAA,CAEJ"}
@@ -61,6 +61,7 @@ import "../../../api/queries/entityLists/getListsAttributes.es.js";
61
61
  import "../../../api/queries/entityLists/updateListsAttributes.es.js";
62
62
  import "../../../api/queries/entityLists/listFolders.es.js";
63
63
  import "../../../api/queries/folders/getFolders.es.js";
64
+ import "../../../api/queries/folders/getFolderDeleteInfo.es.js";
64
65
  import "../../../api/queries/grouping/getGrouping.es.js";
65
66
  import "../../../api/queries/links/updateLinks.es.js";
66
67
  import "../../../api/queries/links/getLinks.es.js";
@@ -87,36 +88,36 @@ import "../../../api/queries/users/updateUsers.es.js";
87
88
  import "../../../api/queries/users/guests.es.js";
88
89
  import "../../../api/queries/versions/updateVersions.es.js";
89
90
  import "../../../api/queries/views/getViews.es.js";
90
- import { useCreateViewMutation as N, useUpdateViewMutation as W, viewsQueries as j } from "../../../api/queries/views/updateViews.es.js";
91
+ import { useCreateViewMutation as W, useUpdateViewMutation as j, viewsQueries as x } from "../../../api/queries/views/updateViews.es.js";
91
92
  import "../../../api/queries/watchers/getWatchers.es.js";
92
93
  import "../../../api/queries/uris/getUris.es.js";
93
- import { generateWorkingView as x } from "./generateWorkingView.es.js";
94
+ import { generateWorkingView as F } from "./generateWorkingView.es.js";
94
95
  import { toast as k } from "react-toastify";
95
96
  import { useCallback as l } from "react";
96
- import { useStore as F } from "react-redux";
97
- import { useViewsContext as H } from "../context/ViewsContext.es.js";
97
+ import { useStore as H } from "react-redux";
98
+ import { useViewsContext as b } from "../context/ViewsContext.es.js";
98
99
  let d = !1;
99
- const b = () => {
100
+ const C = () => {
100
101
  d || (d = !0, queueMicrotask(() => {
101
102
  d = !1;
102
103
  }));
103
- }, A = async (n, o, r, e = {}, s, a, f, t) => {
104
+ }, A = async (a, o, r, e = {}, s, n, f, t) => {
104
105
  const {
105
106
  viewSettings: p,
106
107
  viewType: m,
107
108
  projectName: V,
108
109
  selectedView: i,
109
110
  setSelectedView: y,
110
- workingView: C,
111
+ workingView: M,
111
112
  onSettingsChanged: v
112
113
  } = s;
113
114
  if (!m) throw new Error("No view type provided for updating view settings");
114
115
  const h = i?.id, S = i?.working;
115
116
  try {
116
117
  o(r);
117
- const c = { ...f() ?? p, ...n }, g = x(c), w = C?.id;
118
+ const c = { ...f() ?? p, ...a }, g = F(c), w = M?.id;
118
119
  w && (g.id = w);
119
- const M = g.id, T = a(
120
+ const T = g.id, N = n(
120
121
  {
121
122
  payload: w ? { settings: c } : g,
122
123
  viewType: m,
@@ -124,14 +125,14 @@ const b = () => {
124
125
  },
125
126
  w
126
127
  );
127
- t(), S || (i && v(!0), y(M)), await T, o(null), e.successMessage && k.success(e.successMessage);
128
+ t(), S || (i && v(!0), y(T)), await N, o(null), e.successMessage && k.success(e.successMessage);
128
129
  } catch (u) {
129
130
  o(null), h && y(h), i && !S && v(!1), console.error(u);
130
131
  const c = e.errorMessage || `Failed to update view settings: ${u}`;
131
132
  k.error(c);
132
133
  }
133
- }, Mi = () => {
134
- const [n] = N(), [o] = W(), r = H(), e = F(), s = l(
134
+ }, Ti = () => {
135
+ const [a] = W(), [o] = j(), r = b(), e = H(), s = l(
135
136
  async (t, p) => {
136
137
  if (p) {
137
138
  const m = {};
@@ -144,29 +145,34 @@ const b = () => {
144
145
  payload: m
145
146
  }).unwrap();
146
147
  } else
147
- return await n(t).unwrap();
148
+ return await a(t).unwrap();
148
149
  },
149
- [n, o]
150
- ), a = l(() => {
150
+ [a, o]
151
+ ), n = l(() => {
151
152
  if (!d) return;
152
153
  const { viewType: t, projectName: p } = r;
153
- return t ? j.endpoints.getWorkingView.select({ viewType: t, projectName: p })(
154
+ return t ? x.endpoints.getWorkingView.select({ viewType: t, projectName: p })(
154
155
  e.getState()
155
156
  )?.data?.settings : void 0;
156
157
  }, [e, r]);
157
- return { updateViewSettings: l(
158
- async (...t) => await A(
159
- ...t,
160
- r,
161
- s,
162
- a,
163
- b
158
+ return {
159
+ updateViewSettings: l(
160
+ async (...t) => await A(
161
+ ...t,
162
+ r,
163
+ s,
164
+ n,
165
+ C
166
+ ),
167
+ [r, s, n]
164
168
  ),
165
- [r, s, a]
166
- ), onCreateView: s };
169
+ onCreateView: s,
170
+ getLatestSettings: n,
171
+ markCacheDirty: C
172
+ };
167
173
  };
168
174
  export {
169
175
  A as updateViewSettings,
170
- Mi as useViewUpdateHelper
176
+ Ti as useViewUpdateHelper
171
177
  };
172
178
  //# sourceMappingURL=viewUpdateHelper.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"viewUpdateHelper.es.js","sources":["../../../../../../src/containers/Views/utils/viewUpdateHelper.ts"],"sourcesContent":["/**\n * Shared helper for updating view settings with optimistic local state management.\n *\n * Sequential updateViewSettings calls in the same event tick MUST chain correctly:\n * the second call has to see the first call's changes. Closure-captured\n * `viewSettings` does not refresh between sync calls (no re-render yet), so we\n * read the latest settings from the RTK Query cache at call time instead.\n * RTK's updateView mutation performs an optimistic cache write in\n * `onQueryStarted`, so the cache is already up-to-date by the time the next\n * call reads it.\n */\n\nimport {\n CreateViewApiArg,\n EntityIdResponse,\n useCreateViewMutation,\n useUpdateViewMutation,\n viewsQueries,\n} from '@shared/api'\nimport { generateWorkingView } from './generateWorkingView'\nimport { toast } from 'react-toastify'\nimport { useCallback } from 'react'\nimport { useStore } from 'react-redux'\nimport { useViewsContext, ViewsContextValue, ViewSettings } from '../context/ViewsContext'\n\ninterface UpdateOptions {\n successMessage?: string\n errorMessage?: string\n}\n\n// Module-level flag shared across every useViewUpdateHelper instance. Set true\n// when a mutation has been dispatched in the current tick (RTK cache is now\n// optimistically fresh); reset on the next microtask. Must be module-level so\n// that two different hook instances (e.g. ProjectOverviewDataProvider +\n// ProjectOverviewContext) coordinate correctly when writes flow through one\n// and subsequent reads come from the other in the same event tick.\nlet cacheDirtyThisTick = false\nconst markCacheDirty = () => {\n if (cacheDirtyThisTick) return\n cacheDirtyThisTick = true\n queueMicrotask(() => {\n cacheDirtyThisTick = false\n })\n}\n\nexport type UpdateViewSettingsFn = (\n updatedSettings: any,\n localStateSetter: (value: any) => void,\n newLocalValue: any,\n options: UpdateOptions,\n) => Promise<void>\n\nexport const updateViewSettings = async (\n updatedSettings: any,\n localStateSetter: (value: any) => void,\n newLocalValue: any,\n options: UpdateOptions = {},\n viewContext: ViewsContextValue,\n onApplyViewChanges: (arg: any, viewId?: string) => Promise<EntityIdResponse | void>,\n // Reads latest effective settings from RTK Query cache at call time. Required to\n // prevent stale-closure races when two updates fire in the same tick.\n getLatestSettings: () => ViewSettings | undefined,\n // Invoked synchronously right after the mutation is dispatched. The caller\n // uses this to flip a \"cache is fresh this tick\" flag so subsequent sync\n // calls in the same tick read the just-updated cache instead of stale state.\n markCacheDirty: () => void,\n): Promise<void> => {\n const {\n viewSettings,\n viewType,\n projectName,\n selectedView,\n setSelectedView,\n workingView,\n onSettingsChanged,\n } = viewContext\n\n if (!viewType) throw new Error('No view type provided for updating view settings')\n\n const previousSelectedViewId = selectedView?.id\n const wasWorking = selectedView?.working\n\n try {\n // Immediately update local state for fast UI response\n localStateSetter(newLocalValue)\n\n // Read latest settings from RTK cache (includes prior same-tick optimistic writes).\n // Fallback to closure-captured value if cache has nothing (first render, etc.).\n const latestSettings = getLatestSettings() ?? viewSettings\n\n // Create settings with updates\n const newSettings = { ...latestSettings, ...updatedSettings }\n\n // always update the working view no matter what\n const newWorkingView = generateWorkingView(newSettings)\n\n // Ensure the payload uses the consistent ID if we already have a working view\n const viewId = workingView?.id\n if (viewId) {\n newWorkingView.id = viewId\n }\n const newWorkingViewId = newWorkingView.id\n\n // Make API call in background\n // only include the fields that are updating (just settings)\n const payload = viewId ? { settings: newSettings } : newWorkingView\n\n const promise = onApplyViewChanges(\n {\n payload,\n viewType: viewType,\n projectName: projectName,\n },\n viewId,\n )\n\n // Mutation dispatch above ran onQueryStarted synchronously → RTK cache now\n // reflects `newSettings`. Signal this so any subsequent sync call in the\n // same tick reads the fresh cache instead of the stale closure baseline.\n markCacheDirty()\n\n // if not already on the working view: set that the settings have been changed to show the little blue save button and switch to the working view\n if (!wasWorking) {\n if (selectedView) {\n onSettingsChanged(true)\n }\n setSelectedView(newWorkingViewId as string)\n }\n\n await promise\n\n // Clear local state after successful API call - the server data will take over\n localStateSetter(null)\n\n if (options.successMessage) {\n toast.success(options.successMessage)\n }\n } catch (error) {\n // Revert local state on error\n localStateSetter(null)\n\n if (previousSelectedViewId) {\n setSelectedView(previousSelectedViewId)\n }\n\n if (selectedView && !wasWorking) {\n onSettingsChanged(false)\n }\n\n console.error(error)\n const errorMsg = options.errorMessage || `Failed to update view settings: ${error}`\n toast.error(errorMsg)\n }\n}\n\nexport const useViewUpdateHelper = () => {\n const [createView] = useCreateViewMutation()\n const [updateView] = useUpdateViewMutation()\n\n const viewContext = useViewsContext()\n const store = useStore()\n\n const onApplyViewChanges = useCallback(\n async (arg: any, viewId?: string) => {\n if (viewId) {\n // Filter the payload to only include valid patch fields\n // and ideally only include fields that are actually being updated.\n // Expecting the caller to provide only the fields they want to update in the payload.\n const patchPayload: any = {}\n const patchFields = ['label', 'owner', 'settings']\n patchFields.forEach((key) => {\n if (arg.payload[key] !== undefined) {\n patchPayload[key] = arg.payload[key]\n }\n })\n\n return await updateView({\n viewType: arg.viewType,\n projectName: arg.projectName,\n viewId,\n payload: patchPayload,\n }).unwrap()\n } else {\n return await createView(arg).unwrap()\n }\n },\n [createView, updateView],\n )\n\n // Returns cached settings when a same-tick prior write has refreshed the\n // cache. Otherwise returns undefined and the caller falls back to the\n // closure-captured viewSettings (correct baseline for the first write in a\n // tick, including the named-view → working-view fork).\n const getLatestSettings = useCallback((): ViewSettings | undefined => {\n if (!cacheDirtyThisTick) return undefined\n const { viewType, projectName } = viewContext\n if (!viewType) return undefined\n // RTK selector state is typed against the full RootState; we don't have that\n // type in @shared and the store is project-specific. Cast is safe: the\n // selector only touches the api slice, which exists in every consumer app.\n const entry = viewsQueries.endpoints.getWorkingView.select({ viewType, projectName })(\n store.getState() as any,\n )\n return entry?.data?.settings\n }, [store, viewContext])\n\n const updateViewSettingsHandler = useCallback<UpdateViewSettingsFn>(\n async (...args) =>\n await updateViewSettings(\n ...args,\n viewContext,\n onApplyViewChanges,\n getLatestSettings,\n markCacheDirty,\n ),\n [viewContext, onApplyViewChanges, getLatestSettings],\n )\n\n return { updateViewSettings: updateViewSettingsHandler, onCreateView: onApplyViewChanges }\n}\n"],"names":["cacheDirtyThisTick","markCacheDirty","updateViewSettings","updatedSettings","localStateSetter","newLocalValue","options","viewContext","onApplyViewChanges","getLatestSettings","viewSettings","viewType","projectName","selectedView","setSelectedView","workingView","onSettingsChanged","previousSelectedViewId","wasWorking","newSettings","newWorkingView","generateWorkingView","viewId","newWorkingViewId","promise","toast","error","errorMsg","useViewUpdateHelper","createView","useCreateViewMutation","updateView","useUpdateViewMutation","useViewsContext","store","useStore","useCallback","arg","patchPayload","key","viewsQueries","args"],"mappings":"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"}
1
+ {"version":3,"file":"viewUpdateHelper.es.js","sources":["../../../../../../src/containers/Views/utils/viewUpdateHelper.ts"],"sourcesContent":["/**\n * Shared helper for updating view settings with optimistic local state management.\n *\n * Sequential updateViewSettings calls in the same event tick MUST chain correctly:\n * the second call has to see the first call's changes. Closure-captured\n * `viewSettings` does not refresh between sync calls (no re-render yet), so we\n * read the latest settings from the RTK Query cache at call time instead.\n * RTK's updateView mutation performs an optimistic cache write in\n * `onQueryStarted`, so the cache is already up-to-date by the time the next\n * call reads it.\n */\n\nimport {\n CreateViewApiArg,\n EntityIdResponse,\n useCreateViewMutation,\n useUpdateViewMutation,\n viewsQueries,\n} from '@shared/api'\nimport { generateWorkingView } from './generateWorkingView'\nimport { toast } from 'react-toastify'\nimport { useCallback } from 'react'\nimport { useStore } from 'react-redux'\nimport { useViewsContext, ViewsContextValue, ViewSettings } from '../context/ViewsContext'\n\ninterface UpdateOptions {\n successMessage?: string\n errorMessage?: string\n}\n\n// Module-level flag shared across every useViewUpdateHelper instance. Set true\n// when a mutation has been dispatched in the current tick (RTK cache is now\n// optimistically fresh); reset on the next microtask. Must be module-level so\n// that two different hook instances (e.g. ProjectOverviewDataProvider +\n// ProjectOverviewContext) coordinate correctly when writes flow through one\n// and subsequent reads come from the other in the same event tick.\nlet cacheDirtyThisTick = false\nconst markCacheDirty = () => {\n if (cacheDirtyThisTick) return\n cacheDirtyThisTick = true\n queueMicrotask(() => {\n cacheDirtyThisTick = false\n })\n}\n\nexport type UpdateViewSettingsFn = (\n updatedSettings: any,\n localStateSetter: (value: any) => void,\n newLocalValue: any,\n options: UpdateOptions,\n) => Promise<void>\n\nexport const updateViewSettings = async (\n updatedSettings: any,\n localStateSetter: (value: any) => void,\n newLocalValue: any,\n options: UpdateOptions = {},\n viewContext: ViewsContextValue,\n onApplyViewChanges: (arg: any, viewId?: string) => Promise<EntityIdResponse | void>,\n // Reads latest effective settings from RTK Query cache at call time. Required to\n // prevent stale-closure races when two updates fire in the same tick.\n getLatestSettings: () => ViewSettings | undefined,\n // Invoked synchronously right after the mutation is dispatched. The caller\n // uses this to flip a \"cache is fresh this tick\" flag so subsequent sync\n // calls in the same tick read the just-updated cache instead of stale state.\n markCacheDirty: () => void,\n): Promise<void> => {\n const {\n viewSettings,\n viewType,\n projectName,\n selectedView,\n setSelectedView,\n workingView,\n onSettingsChanged,\n } = viewContext\n\n if (!viewType) throw new Error('No view type provided for updating view settings')\n\n const previousSelectedViewId = selectedView?.id\n const wasWorking = selectedView?.working\n\n try {\n // Immediately update local state for fast UI response\n localStateSetter(newLocalValue)\n\n // Read latest settings from RTK cache (includes prior same-tick optimistic writes).\n // Fallback to closure-captured value if cache has nothing (first render, etc.).\n const latestSettings = getLatestSettings() ?? viewSettings\n\n // Create settings with updates\n const newSettings = { ...latestSettings, ...updatedSettings }\n\n // always update the working view no matter what\n const newWorkingView = generateWorkingView(newSettings)\n\n // Ensure the payload uses the consistent ID if we already have a working view\n const viewId = workingView?.id\n if (viewId) {\n newWorkingView.id = viewId\n }\n const newWorkingViewId = newWorkingView.id\n\n // Make API call in background\n // only include the fields that are updating (just settings)\n const payload = viewId ? { settings: newSettings } : newWorkingView\n\n const promise = onApplyViewChanges(\n {\n payload,\n viewType: viewType,\n projectName: projectName,\n },\n viewId,\n )\n\n // Mutation dispatch above ran onQueryStarted synchronously → RTK cache now\n // reflects `newSettings`. Signal this so any subsequent sync call in the\n // same tick reads the fresh cache instead of the stale closure baseline.\n markCacheDirty()\n\n // if not already on the working view: set that the settings have been changed to show the little blue save button and switch to the working view\n if (!wasWorking) {\n if (selectedView) {\n onSettingsChanged(true)\n }\n setSelectedView(newWorkingViewId as string)\n }\n\n await promise\n\n // Clear local state after successful API call - the server data will take over\n localStateSetter(null)\n\n if (options.successMessage) {\n toast.success(options.successMessage)\n }\n } catch (error) {\n // Revert local state on error\n localStateSetter(null)\n\n if (previousSelectedViewId) {\n setSelectedView(previousSelectedViewId)\n }\n\n if (selectedView && !wasWorking) {\n onSettingsChanged(false)\n }\n\n console.error(error)\n const errorMsg = options.errorMessage || `Failed to update view settings: ${error}`\n toast.error(errorMsg)\n }\n}\n\nexport const useViewUpdateHelper = () => {\n const [createView] = useCreateViewMutation()\n const [updateView] = useUpdateViewMutation()\n\n const viewContext = useViewsContext()\n const store = useStore()\n\n const onApplyViewChanges = useCallback(\n async (arg: any, viewId?: string) => {\n if (viewId) {\n // Filter the payload to only include valid patch fields\n // and ideally only include fields that are actually being updated.\n // Expecting the caller to provide only the fields they want to update in the payload.\n const patchPayload: any = {}\n const patchFields = ['label', 'owner', 'settings']\n patchFields.forEach((key) => {\n if (arg.payload[key] !== undefined) {\n patchPayload[key] = arg.payload[key]\n }\n })\n\n return await updateView({\n viewType: arg.viewType,\n projectName: arg.projectName,\n viewId,\n payload: patchPayload,\n }).unwrap()\n } else {\n return await createView(arg).unwrap()\n }\n },\n [createView, updateView],\n )\n\n // Returns cached settings when a same-tick prior write has refreshed the\n // cache. Otherwise returns undefined and the caller falls back to the\n // closure-captured viewSettings (correct baseline for the first write in a\n // tick, including the named-view → working-view fork).\n const getLatestSettings = useCallback((): ViewSettings | undefined => {\n if (!cacheDirtyThisTick) return undefined\n const { viewType, projectName } = viewContext\n if (!viewType) return undefined\n // RTK selector state is typed against the full RootState; we don't have that\n // type in @shared and the store is project-specific. Cast is safe: the\n // selector only touches the api slice, which exists in every consumer app.\n const entry = viewsQueries.endpoints.getWorkingView.select({ viewType, projectName })(\n store.getState() as any,\n )\n return entry?.data?.settings\n }, [store, viewContext])\n\n const updateViewSettingsHandler = useCallback<UpdateViewSettingsFn>(\n async (...args) =>\n await updateViewSettings(\n ...args,\n viewContext,\n onApplyViewChanges,\n getLatestSettings,\n markCacheDirty,\n ),\n [viewContext, onApplyViewChanges, getLatestSettings],\n )\n\n return {\n updateViewSettings: updateViewSettingsHandler,\n onCreateView: onApplyViewChanges,\n getLatestSettings,\n markCacheDirty,\n }\n}\n"],"names":["cacheDirtyThisTick","markCacheDirty","updateViewSettings","updatedSettings","localStateSetter","newLocalValue","options","viewContext","onApplyViewChanges","getLatestSettings","viewSettings","viewType","projectName","selectedView","setSelectedView","workingView","onSettingsChanged","previousSelectedViewId","wasWorking","newSettings","newWorkingView","generateWorkingView","viewId","newWorkingViewId","promise","toast","error","errorMsg","useViewUpdateHelper","createView","useCreateViewMutation","updateView","useUpdateViewMutation","useViewsContext","store","useStore","useCallback","arg","patchPayload","key","viewsQueries","args"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../../../_virtual/jsx-runtime.cjs.js");require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/dataImport.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/projectFolders.cjs.js");require("../api/generated/reviewables.cjs.js");require("../api/generated/services.cjs.js");require("../api/generated/system.cjs.js");require("../api/generated/tasks.cjs.js");require("../api/generated/teams.cjs.js");require("../api/generated/thumbnails.cjs.js");require("../api/generated/uRIs.cjs.js");require("../api/generated/users.cjs.js");require("../api/generated/versions.cjs.js");require("../api/generated/workfiles.cjs.js");require("../api/generated/ynputCloud.cjs.js");require("../api/generated/grouping.cjs.js");require("../api/generated/views.cjs.js");require("../api/queries/actions/getActions.cjs.js");require("../api/queries/activities/getActivities.cjs.js");require("../api/queries/activities/updateActivities.cjs.js");require("../api/queries/activities/updateReaction.cjs.js");require("../api/queries/activities/getMentions.cjs.js");require("../api/queries/activities/getCategories.cjs.js");require("../api/queries/addons/getAddons.cjs.js");require("../api/queries/addons/updateAddons.cjs.js");require("../api/queries/attributes/getAttributes.cjs.js");require("../api/queries/attributes/updateAttributes.cjs.js");require("../api/queries/authentication/getAuthentication.cjs.js");require("../api/queries/cloud/cloud.cjs.js");require("../api/queries/config/getConfig.cjs.js");require("../api/queries/config/updateConfig.cjs.js");require("../api/queries/entities/getEntity.cjs.js");require("../api/queries/entities/getEntityPanel.cjs.js");require("../api/queries/entities/updateEntity.cjs.js");require("../api/queries/entityLists/getLists.cjs.js");require("../api/queries/entityLists/updateLists.cjs.js");require("../api/queries/entityLists/getListsAttributes.cjs.js");require("../api/queries/entityLists/updateListsAttributes.cjs.js");require("../api/queries/entityLists/listFolders.cjs.js");require("../api/queries/folders/getFolders.cjs.js");require("../api/queries/grouping/getGrouping.cjs.js");require("../api/queries/links/updateLinks.cjs.js");require("../api/queries/links/getLinks.cjs.js");require("../api/queries/links/getEntityLinks.cjs.js");require("../api/queries/overview/getOverview.cjs.js");require("../api/queries/overview/updateOverview.cjs.js");require("../api/queries/versions/getVersionsProducts.cjs.js");require("../api/queries/permissions/getPermissions.cjs.js");require("../api/queries/products/createProduct.cjs.js");require("../api/queries/products/getFolderProducts.cjs.js");const c=require("../api/queries/project/getProject.cjs.js");require("../api/queries/project/updateProject.cjs.js");require("../api/queries/projectFolders/projectFolders.cjs.js");require("../api/queries/review/getReview.cjs.js");require("../api/queries/review/updateReview.cjs.js");require("../api/queries/share/share.cjs.js");require("../api/queries/system/getSystem.cjs.js");require("../api/queries/tasks/getTasks.cjs.js");require("../api/queries/tasks/updateTasks.cjs.js");require("../api/queries/teams/getTeams.cjs.js");require("../api/queries/userDashboard/getUserDashboard.cjs.js");require("../api/queries/users/getUsers.cjs.js");require("../api/queries/users/updateUsers.cjs.js");require("../api/queries/users/guests.cjs.js");require("../api/queries/versions/updateVersions.cjs.js");require("../api/queries/views/getViews.cjs.js");require("../api/queries/views/updateViews.cjs.js");require("../api/queries/watchers/getWatchers.cjs.js");require("../api/queries/uris/getUris.cjs.js");const u=require("react"),d=require("./GlobalContext.cjs.js"),i=u.createContext(void 0),x=({children:e,projectName:r,toast:q,...t})=>{const{data:o}=c.useGetProjectQuery({projectName:r},{skip:!r}),{user:n}=d.useGlobalContext();return s.jsxRuntimeExports.jsx(i.Provider,{value:{...t,projectName:r,project:o,user:n,toast:q},children:e})},P=()=>{const e=u.useContext(i);if(!e)throw new Error("useAddonProjectContext must be used within a AddonProjectContext");return e};exports.AddonProjectProvider=x;exports.useAddonProjectContext=P;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../../../_virtual/jsx-runtime.cjs.js");require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/dataImport.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/projectFolders.cjs.js");require("../api/generated/reviewables.cjs.js");require("../api/generated/services.cjs.js");require("../api/generated/system.cjs.js");require("../api/generated/tasks.cjs.js");require("../api/generated/teams.cjs.js");require("../api/generated/thumbnails.cjs.js");require("../api/generated/uRIs.cjs.js");require("../api/generated/users.cjs.js");require("../api/generated/versions.cjs.js");require("../api/generated/workfiles.cjs.js");require("../api/generated/ynputCloud.cjs.js");require("../api/generated/grouping.cjs.js");require("../api/generated/views.cjs.js");require("../api/queries/actions/getActions.cjs.js");require("../api/queries/activities/getActivities.cjs.js");require("../api/queries/activities/updateActivities.cjs.js");require("../api/queries/activities/updateReaction.cjs.js");require("../api/queries/activities/getMentions.cjs.js");require("../api/queries/activities/getCategories.cjs.js");require("../api/queries/addons/getAddons.cjs.js");require("../api/queries/addons/updateAddons.cjs.js");require("../api/queries/attributes/getAttributes.cjs.js");require("../api/queries/attributes/updateAttributes.cjs.js");require("../api/queries/authentication/getAuthentication.cjs.js");require("../api/queries/cloud/cloud.cjs.js");require("../api/queries/config/getConfig.cjs.js");require("../api/queries/config/updateConfig.cjs.js");require("../api/queries/entities/getEntity.cjs.js");require("../api/queries/entities/getEntityPanel.cjs.js");require("../api/queries/entities/updateEntity.cjs.js");require("../api/queries/entityLists/getLists.cjs.js");require("../api/queries/entityLists/updateLists.cjs.js");require("../api/queries/entityLists/getListsAttributes.cjs.js");require("../api/queries/entityLists/updateListsAttributes.cjs.js");require("../api/queries/entityLists/listFolders.cjs.js");require("../api/queries/folders/getFolders.cjs.js");require("../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../api/queries/grouping/getGrouping.cjs.js");require("../api/queries/links/updateLinks.cjs.js");require("../api/queries/links/getLinks.cjs.js");require("../api/queries/links/getEntityLinks.cjs.js");require("../api/queries/overview/getOverview.cjs.js");require("../api/queries/overview/updateOverview.cjs.js");require("../api/queries/versions/getVersionsProducts.cjs.js");require("../api/queries/permissions/getPermissions.cjs.js");require("../api/queries/products/createProduct.cjs.js");require("../api/queries/products/getFolderProducts.cjs.js");const c=require("../api/queries/project/getProject.cjs.js");require("../api/queries/project/updateProject.cjs.js");require("../api/queries/projectFolders/projectFolders.cjs.js");require("../api/queries/review/getReview.cjs.js");require("../api/queries/review/updateReview.cjs.js");require("../api/queries/share/share.cjs.js");require("../api/queries/system/getSystem.cjs.js");require("../api/queries/tasks/getTasks.cjs.js");require("../api/queries/tasks/updateTasks.cjs.js");require("../api/queries/teams/getTeams.cjs.js");require("../api/queries/userDashboard/getUserDashboard.cjs.js");require("../api/queries/users/getUsers.cjs.js");require("../api/queries/users/updateUsers.cjs.js");require("../api/queries/users/guests.cjs.js");require("../api/queries/versions/updateVersions.cjs.js");require("../api/queries/views/getViews.cjs.js");require("../api/queries/views/updateViews.cjs.js");require("../api/queries/watchers/getWatchers.cjs.js");require("../api/queries/uris/getUris.cjs.js");const u=require("react"),d=require("./GlobalContext.cjs.js"),i=u.createContext(void 0),x=({children:e,projectName:r,toast:q,...t})=>{const{data:o}=c.useGetProjectQuery({projectName:r},{skip:!r}),{user:n}=d.useGlobalContext();return s.jsxRuntimeExports.jsx(i.Provider,{value:{...t,projectName:r,project:o,user:n,toast:q},children:e})},P=()=>{const e=u.useContext(i);if(!e)throw new Error("useAddonProjectContext must be used within a AddonProjectContext");return e};exports.AddonProjectProvider=x;exports.useAddonProjectContext=P;
2
2
  //# sourceMappingURL=AddonProjectContext.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddonProjectContext.cjs.js","sources":["../../../../src/context/AddonProjectContext.tsx"],"sourcesContent":["// NOT USED IN AYON-FRONTEND, ONLY IN ADDONS\n\nimport { ProjectModel, useGetProjectQuery, UserModel } from '@shared/api'\nimport { createContext, FC, useContext } from 'react'\nimport type { toast } from 'react-toastify'\nimport { useGlobalContext } from './GlobalContext'\nimport { RemotePageProps } from '@shared/components'\n\ntype ToastFunc = typeof toast\n\nexport interface RemoteAddonProjectProps extends RemotePageProps {}\n\nexport type RemoteAddonProjectComponent = FC<RemoteAddonProjectProps>\nexport type RemoteAddonProject = {\n id: string\n component: RemoteAddonProjectComponent\n name: string\n module: string\n viewType?: string // if the addon is using views\n slicer?: { fields: string[] }\n}\n\n// types for props passed to the provider\nexport interface AddonProjectContextValue extends RemoteAddonProjectProps {\n children: React.ReactNode\n}\n\n// types returned by context\nexport interface AddonProjectContextType extends RemoteAddonProjectProps {\n project: ProjectModel | undefined\n user: UserModel | undefined\n toast: ToastFunc\n}\n\nconst AddonProjectContext = createContext<AddonProjectContextType | undefined>(undefined)\n\nexport const AddonProjectProvider = ({\n children,\n projectName,\n // utils\n toast,\n ...props\n}: AddonProjectContextValue) => {\n // get current project data\n const { data: project } = useGetProjectQuery(\n { projectName: projectName as string },\n { skip: !projectName },\n )\n\n const { user } = useGlobalContext()\n\n return (\n <AddonProjectContext.Provider\n value={{\n ...props,\n projectName,\n project,\n user,\n toast,\n }}\n >\n {children}\n </AddonProjectContext.Provider>\n )\n}\n\nexport const useAddonProjectContext = () => {\n const context = useContext(AddonProjectContext)\n if (!context) {\n throw new Error('useAddonProjectContext must be used within a AddonProjectContext')\n }\n return context\n}\n"],"names":["AddonProjectContext","createContext","AddonProjectProvider","children","projectName","toast","props","project","useGetProjectQuery","user","useGlobalContext","jsx","useAddonProjectContext","context","useContext"],"mappings":"gsJAkCMA,EAAsBC,EAAAA,cAAmD,MAAS,EAE3EC,EAAuB,CAAC,CACnC,SAAAC,EACA,YAAAC,EAEA,MAAAC,EACA,GAAGC,CACL,IAAgC,CAE9B,KAAM,CAAE,KAAMC,CAAA,EAAYC,EAAAA,mBACxB,CAAE,YAAAJ,CAAA,EACF,CAAE,KAAM,CAACA,CAAA,CAAY,EAGjB,CAAE,KAAAK,CAAA,EAASC,mBAAA,EAEjB,OACEC,EAAAA,kBAAAA,IAACX,EAAoB,SAApB,CACC,MAAO,CACL,GAAGM,EACH,YAAAF,EACA,QAAAG,EACA,KAAAE,EACA,MAAAJ,CAAA,EAGD,SAAAF,CAAA,CAAA,CAGP,EAEaS,EAAyB,IAAM,CAC1C,MAAMC,EAAUC,EAAAA,WAAWd,CAAmB,EAC9C,GAAI,CAACa,EACH,MAAM,IAAI,MAAM,kEAAkE,EAEpF,OAAOA,CACT"}
1
+ {"version":3,"file":"AddonProjectContext.cjs.js","sources":["../../../../src/context/AddonProjectContext.tsx"],"sourcesContent":["// NOT USED IN AYON-FRONTEND, ONLY IN ADDONS\n\nimport { ProjectModel, useGetProjectQuery, UserModel } from '@shared/api'\nimport { createContext, FC, useContext } from 'react'\nimport type { toast } from 'react-toastify'\nimport { useGlobalContext } from './GlobalContext'\nimport { RemotePageProps } from '@shared/components'\n\ntype ToastFunc = typeof toast\n\nexport interface RemoteAddonProjectProps extends RemotePageProps {}\n\nexport type RemoteAddonProjectComponent = FC<RemoteAddonProjectProps>\nexport type RemoteAddonProject = {\n id: string\n component: RemoteAddonProjectComponent\n name: string\n module: string\n viewType?: string // if the addon is using views\n slicer?: { fields: string[] }\n}\n\n// types for props passed to the provider\nexport interface AddonProjectContextValue extends RemoteAddonProjectProps {\n children: React.ReactNode\n}\n\n// types returned by context\nexport interface AddonProjectContextType extends RemoteAddonProjectProps {\n project: ProjectModel | undefined\n user: UserModel | undefined\n toast: ToastFunc\n}\n\nconst AddonProjectContext = createContext<AddonProjectContextType | undefined>(undefined)\n\nexport const AddonProjectProvider = ({\n children,\n projectName,\n // utils\n toast,\n ...props\n}: AddonProjectContextValue) => {\n // get current project data\n const { data: project } = useGetProjectQuery(\n { projectName: projectName as string },\n { skip: !projectName },\n )\n\n const { user } = useGlobalContext()\n\n return (\n <AddonProjectContext.Provider\n value={{\n ...props,\n projectName,\n project,\n user,\n toast,\n }}\n >\n {children}\n </AddonProjectContext.Provider>\n )\n}\n\nexport const useAddonProjectContext = () => {\n const context = useContext(AddonProjectContext)\n if (!context) {\n throw new Error('useAddonProjectContext must be used within a AddonProjectContext')\n }\n return context\n}\n"],"names":["AddonProjectContext","createContext","AddonProjectProvider","children","projectName","toast","props","project","useGetProjectQuery","user","useGlobalContext","jsx","useAddonProjectContext","context","useContext"],"mappings":"6vJAkCMA,EAAsBC,EAAAA,cAAmD,MAAS,EAE3EC,EAAuB,CAAC,CACnC,SAAAC,EACA,YAAAC,EAEA,MAAAC,EACA,GAAGC,CACL,IAAgC,CAE9B,KAAM,CAAE,KAAMC,CAAA,EAAYC,EAAAA,mBACxB,CAAE,YAAAJ,CAAA,EACF,CAAE,KAAM,CAACA,CAAA,CAAY,EAGjB,CAAE,KAAAK,CAAA,EAASC,mBAAA,EAEjB,OACEC,EAAAA,kBAAAA,IAACX,EAAoB,SAApB,CACC,MAAO,CACL,GAAGM,EACH,YAAAF,EACA,QAAAG,EACA,KAAAE,EACA,MAAAJ,CAAA,EAGD,SAAAF,CAAA,CAAA,CAGP,EAEaS,EAAyB,IAAM,CAC1C,MAAMC,EAAUC,EAAAA,WAAWd,CAAmB,EAC9C,GAAI,CAACa,EACH,MAAM,IAAI,MAAM,kEAAkE,EAEpF,OAAOA,CACT"}
@@ -62,6 +62,7 @@ import "../api/queries/entityLists/getListsAttributes.es.js";
62
62
  import "../api/queries/entityLists/updateListsAttributes.es.js";
63
63
  import "../api/queries/entityLists/listFolders.es.js";
64
64
  import "../api/queries/folders/getFolders.es.js";
65
+ import "../api/queries/folders/getFolderDeleteInfo.es.js";
65
66
  import "../api/queries/grouping/getGrouping.es.js";
66
67
  import "../api/queries/links/updateLinks.es.js";
67
68
  import "../api/queries/links/getLinks.es.js";
@@ -93,7 +94,7 @@ import "../api/queries/watchers/getWatchers.es.js";
93
94
  import "../api/queries/uris/getUris.es.js";
94
95
  import { createContext as d, useContext as c } from "react";
95
96
  import { useGlobalContext as u } from "./GlobalContext.es.js";
96
- const r = d(void 0), Nt = ({
97
+ const r = d(void 0), to = ({
97
98
  children: t,
98
99
  projectName: o,
99
100
  // utils
@@ -117,14 +118,14 @@ const r = d(void 0), Nt = ({
117
118
  children: t
118
119
  }
119
120
  );
120
- }, to = () => {
121
+ }, oo = () => {
121
122
  const t = c(r);
122
123
  if (!t)
123
124
  throw new Error("useAddonProjectContext must be used within a AddonProjectContext");
124
125
  return t;
125
126
  };
126
127
  export {
127
- Nt as AddonProjectProvider,
128
- to as useAddonProjectContext
128
+ to as AddonProjectProvider,
129
+ oo as useAddonProjectContext
129
130
  };
130
131
  //# sourceMappingURL=AddonProjectContext.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddonProjectContext.es.js","sources":["../../../../src/context/AddonProjectContext.tsx"],"sourcesContent":["// NOT USED IN AYON-FRONTEND, ONLY IN ADDONS\n\nimport { ProjectModel, useGetProjectQuery, UserModel } from '@shared/api'\nimport { createContext, FC, useContext } from 'react'\nimport type { toast } from 'react-toastify'\nimport { useGlobalContext } from './GlobalContext'\nimport { RemotePageProps } from '@shared/components'\n\ntype ToastFunc = typeof toast\n\nexport interface RemoteAddonProjectProps extends RemotePageProps {}\n\nexport type RemoteAddonProjectComponent = FC<RemoteAddonProjectProps>\nexport type RemoteAddonProject = {\n id: string\n component: RemoteAddonProjectComponent\n name: string\n module: string\n viewType?: string // if the addon is using views\n slicer?: { fields: string[] }\n}\n\n// types for props passed to the provider\nexport interface AddonProjectContextValue extends RemoteAddonProjectProps {\n children: React.ReactNode\n}\n\n// types returned by context\nexport interface AddonProjectContextType extends RemoteAddonProjectProps {\n project: ProjectModel | undefined\n user: UserModel | undefined\n toast: ToastFunc\n}\n\nconst AddonProjectContext = createContext<AddonProjectContextType | undefined>(undefined)\n\nexport const AddonProjectProvider = ({\n children,\n projectName,\n // utils\n toast,\n ...props\n}: AddonProjectContextValue) => {\n // get current project data\n const { data: project } = useGetProjectQuery(\n { projectName: projectName as string },\n { skip: !projectName },\n )\n\n const { user } = useGlobalContext()\n\n return (\n <AddonProjectContext.Provider\n value={{\n ...props,\n projectName,\n project,\n user,\n toast,\n }}\n >\n {children}\n </AddonProjectContext.Provider>\n )\n}\n\nexport const useAddonProjectContext = () => {\n const context = useContext(AddonProjectContext)\n if (!context) {\n throw new Error('useAddonProjectContext must be used within a AddonProjectContext')\n }\n return context\n}\n"],"names":["AddonProjectContext","createContext","AddonProjectProvider","children","projectName","toast","props","project","useGetProjectQuery","user","useGlobalContext","jsx","useAddonProjectContext","context","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAMA,IAAsBC,EAAmD,MAAS,GAE3EC,KAAuB,CAAC;AAAA,EACnC,UAAAC;AAAA,EACA,aAAAC;AAAA;AAAA,EAEA,OAAAC;AAAA,EACA,GAAGC;AACL,MAAgC;AAE9B,QAAM,EAAE,MAAMC,EAAA,IAAYC;AAAA,IACxB,EAAE,aAAAJ,EAAA;AAAA,IACF,EAAE,MAAM,CAACA,EAAA;AAAA,EAAY,GAGjB,EAAE,MAAAK,EAAA,IAASC,EAAA;AAEjB,SACEC,gBAAAA,EAAAA;AAAAA,IAACX,EAAoB;AAAA,IAApB;AAAA,MACC,OAAO;AAAA,QACL,GAAGM;AAAA,QACH,aAAAF;AAAA,QACA,SAAAG;AAAA,QACA,MAAAE;AAAA,QACA,OAAAJ;AAAA,MAAA;AAAA,MAGD,UAAAF;AAAA,IAAA;AAAA,EAAA;AAGP,GAEaS,KAAyB,MAAM;AAC1C,QAAMC,IAAUC,EAAWd,CAAmB;AAC9C,MAAI,CAACa;AACH,UAAM,IAAI,MAAM,kEAAkE;AAEpF,SAAOA;AACT;"}
1
+ {"version":3,"file":"AddonProjectContext.es.js","sources":["../../../../src/context/AddonProjectContext.tsx"],"sourcesContent":["// NOT USED IN AYON-FRONTEND, ONLY IN ADDONS\n\nimport { ProjectModel, useGetProjectQuery, UserModel } from '@shared/api'\nimport { createContext, FC, useContext } from 'react'\nimport type { toast } from 'react-toastify'\nimport { useGlobalContext } from './GlobalContext'\nimport { RemotePageProps } from '@shared/components'\n\ntype ToastFunc = typeof toast\n\nexport interface RemoteAddonProjectProps extends RemotePageProps {}\n\nexport type RemoteAddonProjectComponent = FC<RemoteAddonProjectProps>\nexport type RemoteAddonProject = {\n id: string\n component: RemoteAddonProjectComponent\n name: string\n module: string\n viewType?: string // if the addon is using views\n slicer?: { fields: string[] }\n}\n\n// types for props passed to the provider\nexport interface AddonProjectContextValue extends RemoteAddonProjectProps {\n children: React.ReactNode\n}\n\n// types returned by context\nexport interface AddonProjectContextType extends RemoteAddonProjectProps {\n project: ProjectModel | undefined\n user: UserModel | undefined\n toast: ToastFunc\n}\n\nconst AddonProjectContext = createContext<AddonProjectContextType | undefined>(undefined)\n\nexport const AddonProjectProvider = ({\n children,\n projectName,\n // utils\n toast,\n ...props\n}: AddonProjectContextValue) => {\n // get current project data\n const { data: project } = useGetProjectQuery(\n { projectName: projectName as string },\n { skip: !projectName },\n )\n\n const { user } = useGlobalContext()\n\n return (\n <AddonProjectContext.Provider\n value={{\n ...props,\n projectName,\n project,\n user,\n toast,\n }}\n >\n {children}\n </AddonProjectContext.Provider>\n )\n}\n\nexport const useAddonProjectContext = () => {\n const context = useContext(AddonProjectContext)\n if (!context) {\n throw new Error('useAddonProjectContext must be used within a AddonProjectContext')\n }\n return context\n}\n"],"names":["AddonProjectContext","createContext","AddonProjectProvider","children","projectName","toast","props","project","useGetProjectQuery","user","useGlobalContext","jsx","useAddonProjectContext","context","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAMA,IAAsBC,EAAmD,MAAS,GAE3EC,KAAuB,CAAC;AAAA,EACnC,UAAAC;AAAA,EACA,aAAAC;AAAA;AAAA,EAEA,OAAAC;AAAA,EACA,GAAGC;AACL,MAAgC;AAE9B,QAAM,EAAE,MAAMC,EAAA,IAAYC;AAAA,IACxB,EAAE,aAAAJ,EAAA;AAAA,IACF,EAAE,MAAM,CAACA,EAAA;AAAA,EAAY,GAGjB,EAAE,MAAAK,EAAA,IAASC,EAAA;AAEjB,SACEC,gBAAAA,EAAAA;AAAAA,IAACX,EAAoB;AAAA,IAApB;AAAA,MACC,OAAO;AAAA,QACL,GAAGM;AAAA,QACH,aAAAF;AAAA,QACA,SAAAG;AAAA,QACA,MAAAE;AAAA,QACA,OAAAJ;AAAA,MAAA;AAAA,MAGD,UAAAF;AAAA,IAAA;AAAA,EAAA;AAGP,GAEaS,KAAyB,MAAM;AAC1C,QAAMC,IAAUC,EAAWd,CAAmB;AAC9C,MAAI,CAACa;AACH,UAAM,IAAI,MAAM,kEAAkE;AAEpF,SAAOA;AACT;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ee=require("../../../_virtual/jsx-runtime.cjs.js"),e=require("react"),re=require("./PowerpackContext.cjs.js"),ie=require("./UriContext.cjs.js"),w=require("../hooks/useLocalStorage.cjs.js");require("./RemoteModulesContext.cjs.js");require("../../../_virtual/runtime.cjs.js");require("../../../_virtual/semver.cjs.js");require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/dataImport.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/projectFolders.cjs.js");require("../api/generated/reviewables.cjs.js");require("../api/generated/services.cjs.js");require("../api/generated/system.cjs.js");require("../api/generated/tasks.cjs.js");require("../api/generated/teams.cjs.js");require("../api/generated/thumbnails.cjs.js");require("../api/generated/uRIs.cjs.js");require("../api/generated/users.cjs.js");require("../api/generated/versions.cjs.js");require("../api/generated/workfiles.cjs.js");require("../api/generated/ynputCloud.cjs.js");require("../api/generated/grouping.cjs.js");require("../api/generated/views.cjs.js");require("../api/queries/actions/getActions.cjs.js");require("../api/queries/activities/getActivities.cjs.js");require("../api/queries/activities/updateActivities.cjs.js");require("../api/queries/activities/updateReaction.cjs.js");require("../api/queries/activities/getMentions.cjs.js");require("../api/queries/activities/getCategories.cjs.js");require("../api/queries/addons/getAddons.cjs.js");require("../api/queries/addons/updateAddons.cjs.js");require("../api/queries/attributes/getAttributes.cjs.js");require("../api/queries/attributes/updateAttributes.cjs.js");require("../api/queries/authentication/getAuthentication.cjs.js");require("../api/queries/cloud/cloud.cjs.js");require("../api/queries/config/getConfig.cjs.js");require("../api/queries/config/updateConfig.cjs.js");require("../api/queries/entities/getEntity.cjs.js");require("../api/queries/entities/getEntityPanel.cjs.js");require("../api/queries/entities/updateEntity.cjs.js");require("../api/queries/entityLists/getLists.cjs.js");require("../api/queries/entityLists/updateLists.cjs.js");require("../api/queries/entityLists/getListsAttributes.cjs.js");require("../api/queries/entityLists/updateListsAttributes.cjs.js");require("../api/queries/entityLists/listFolders.cjs.js");require("../api/queries/folders/getFolders.cjs.js");require("../api/queries/grouping/getGrouping.cjs.js");require("../api/queries/links/updateLinks.cjs.js");require("../api/queries/links/getLinks.cjs.js");require("../api/queries/links/getEntityLinks.cjs.js");require("../api/queries/overview/getOverview.cjs.js");require("../api/queries/overview/updateOverview.cjs.js");require("../api/queries/versions/getVersionsProducts.cjs.js");require("../api/queries/permissions/getPermissions.cjs.js");require("../api/queries/products/createProduct.cjs.js");require("../api/queries/products/getFolderProducts.cjs.js");require("../api/queries/project/getProject.cjs.js");require("../api/queries/project/updateProject.cjs.js");require("../api/queries/projectFolders/projectFolders.cjs.js");require("../api/queries/review/getReview.cjs.js");require("../api/queries/review/updateReview.cjs.js");require("../api/queries/share/share.cjs.js");require("../api/queries/system/getSystem.cjs.js");require("../api/queries/tasks/getTasks.cjs.js");require("../api/queries/tasks/updateTasks.cjs.js");require("../api/queries/teams/getTeams.cjs.js");require("../api/queries/userDashboard/getUserDashboard.cjs.js");require("../api/queries/users/getUsers.cjs.js");require("../api/queries/users/updateUsers.cjs.js");require("../api/queries/users/guests.cjs.js");require("../api/queries/versions/updateVersions.cjs.js");require("../api/queries/views/getViews.cjs.js");require("../api/queries/views/updateViews.cjs.js");require("../api/queries/watchers/getWatchers.cjs.js");require("../api/queries/uris/getUris.cjs.js");require("lodash");require("react-toastify");require("./SubtasksModulesContext.cjs.js");require("./ThumbnailUploaderContext.cjs.js");require("./SettingsPanelContext.cjs.js");require("./pip/PiPProvider.cjs.js");require("react-dom");require("./pip/PiPWrapper.cjs.js");require("./AddonProjectContext.cjs.js");require("./AddonContext.cjs.js");require("./MoveEntityContext.cjs.js");require("./MenuContext.cjs.js");require("./WebsocketContext.cjs.js");require("./GlobalContext.cjs.js");require("./ProjectContext.cjs.js");require("./ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");require("../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");const te=["feed","subtasks","details","files"],F=i=>typeof i=="string"&&te.includes(i),I=e.createContext(void 0),ue=({children:i,defaultTab:c="feed",hasLicense:y,debug:s={},...n})=>{const a=n.user,l="isDeveloperMode"in s?s.isDeveloperMode:a?.attrib?.developerMode??!1,P="isGuest"in s?s.isGuest:a?.data?.isGuest,{powerLicense:b,setPowerpackDialog:f}=re.usePowerpack(),u="hasLicense"in s?s.hasLicense:!!b||y,[q,T]=e.useState({}),[B,M]=e.useState([]),N=e.useCallback(r=>q[r]?q[r]:!1,[q]),R=e.useCallback((r,o)=>{const t={...q};t[r]=o,T(t)},[q]),[p,U]=w.useLocalStorage("details/tabs-by-scope",{}),G=e.useCallback(r=>{const o=p[r];return F(o)?o:c},[p,c]),[k,x]=e.useState(null),_=e.useCallback(r=>{x(r)},[]),O=e.useCallback(()=>{x(null),k&&g([])},[]);e.useEffect(()=>{O()},[n.useLocation().pathname]);const[H,m]=e.useState(null),z=e.useCallback(r=>{m(r)},[]),J=e.useCallback(()=>{m(null)},[]),[K,v]=e.useState(null),[Q,g]=e.useState([]),{uriType:V,uri:W,entity:d,getUriEntities:X}=ie.useURIContext(),[S]=n.useSearchParams(),h=S.get("project"),D=S.get("type"),C=S.get("id"),E=S.get("activity");e.useEffect(()=>{if(V==="entity"&&d&&d.entityType!=="product"){X().then(r=>{if(r.length===0)return;const o=r.find($=>$.uri===W),t=o?.entities?.[0];if(!o||!t)return;const L=t?.projectName||d.projectName||"",j=t.representationId||t.versionId||t.productId||t.taskId||t.folderId;if(!L||!j)return;const Z={entityType:d.entityType,entities:[{id:j,projectName:L}],source:"uri"};v(Z)}).catch(r=>{console.warn("Failed to get URI entities:",r)});return}h&&D&&C&&(v({entityType:D,entities:[{id:C,projectName:h}],source:"url"}),E&&(g([E]),U({...p,overview:"feed"})))},[h,D,C]);const Y={panelOpenByScope:q,getOpenForScope:N,setPanelOpen:R,setPanelOpenByScope:T,tabsByScope:p,getTabForScope:G,slideOut:k,openSlideOut:_,closeSlideOut:O,highlightedActivities:Q,setHighlightedActivities:g,pip:H,openPip:z,closePip:J,entities:K,setEntities:v,feedAnnotations:B,setFeedAnnotations:M,isDeveloperMode:l,isGuest:P,hasLicense:u,onPowerFeature:f,...n};return ee.jsxRuntimeExports.jsx(I.Provider,{value:Y,children:i})},A=()=>{const i=e.useContext(I);if(i===void 0)throw new Error("useDetailsPanel must be used within a DetailsPanelProvider");return i},se=i=>{const{getOpenForScope:c,setPanelOpen:y,getTabForScope:s}=A(),[n,a]=w.useLocalStorage("details/tabs-by-scope",{}),[l,P]=e.useState(()=>{const u=n[i];return F(u)?u:s(i)}),b=e.useCallback(u=>{P(u),a({...n,[i]:u})},[i,a]),f=l==="feed";return{isOpen:c(i),setOpen:u=>y(i,u),currentTab:l,setTab:b,isFeed:f}};exports.DetailsPanelProvider=ue;exports.useDetailsPanelContext=A;exports.useScopedDetailsPanel=se;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ee=require("../../../_virtual/jsx-runtime.cjs.js"),e=require("react"),re=require("./PowerpackContext.cjs.js"),ie=require("./UriContext.cjs.js"),w=require("../hooks/useLocalStorage.cjs.js");require("./RemoteModulesContext.cjs.js");require("../../../_virtual/runtime.cjs.js");require("../../../_virtual/semver.cjs.js");require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/dataImport.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/projectFolders.cjs.js");require("../api/generated/reviewables.cjs.js");require("../api/generated/services.cjs.js");require("../api/generated/system.cjs.js");require("../api/generated/tasks.cjs.js");require("../api/generated/teams.cjs.js");require("../api/generated/thumbnails.cjs.js");require("../api/generated/uRIs.cjs.js");require("../api/generated/users.cjs.js");require("../api/generated/versions.cjs.js");require("../api/generated/workfiles.cjs.js");require("../api/generated/ynputCloud.cjs.js");require("../api/generated/grouping.cjs.js");require("../api/generated/views.cjs.js");require("../api/queries/actions/getActions.cjs.js");require("../api/queries/activities/getActivities.cjs.js");require("../api/queries/activities/updateActivities.cjs.js");require("../api/queries/activities/updateReaction.cjs.js");require("../api/queries/activities/getMentions.cjs.js");require("../api/queries/activities/getCategories.cjs.js");require("../api/queries/addons/getAddons.cjs.js");require("../api/queries/addons/updateAddons.cjs.js");require("../api/queries/attributes/getAttributes.cjs.js");require("../api/queries/attributes/updateAttributes.cjs.js");require("../api/queries/authentication/getAuthentication.cjs.js");require("../api/queries/cloud/cloud.cjs.js");require("../api/queries/config/getConfig.cjs.js");require("../api/queries/config/updateConfig.cjs.js");require("../api/queries/entities/getEntity.cjs.js");require("../api/queries/entities/getEntityPanel.cjs.js");require("../api/queries/entities/updateEntity.cjs.js");require("../api/queries/entityLists/getLists.cjs.js");require("../api/queries/entityLists/updateLists.cjs.js");require("../api/queries/entityLists/getListsAttributes.cjs.js");require("../api/queries/entityLists/updateListsAttributes.cjs.js");require("../api/queries/entityLists/listFolders.cjs.js");require("../api/queries/folders/getFolders.cjs.js");require("../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../api/queries/grouping/getGrouping.cjs.js");require("../api/queries/links/updateLinks.cjs.js");require("../api/queries/links/getLinks.cjs.js");require("../api/queries/links/getEntityLinks.cjs.js");require("../api/queries/overview/getOverview.cjs.js");require("../api/queries/overview/updateOverview.cjs.js");require("../api/queries/versions/getVersionsProducts.cjs.js");require("../api/queries/permissions/getPermissions.cjs.js");require("../api/queries/products/createProduct.cjs.js");require("../api/queries/products/getFolderProducts.cjs.js");require("../api/queries/project/getProject.cjs.js");require("../api/queries/project/updateProject.cjs.js");require("../api/queries/projectFolders/projectFolders.cjs.js");require("../api/queries/review/getReview.cjs.js");require("../api/queries/review/updateReview.cjs.js");require("../api/queries/share/share.cjs.js");require("../api/queries/system/getSystem.cjs.js");require("../api/queries/tasks/getTasks.cjs.js");require("../api/queries/tasks/updateTasks.cjs.js");require("../api/queries/teams/getTeams.cjs.js");require("../api/queries/userDashboard/getUserDashboard.cjs.js");require("../api/queries/users/getUsers.cjs.js");require("../api/queries/users/updateUsers.cjs.js");require("../api/queries/users/guests.cjs.js");require("../api/queries/versions/updateVersions.cjs.js");require("../api/queries/views/getViews.cjs.js");require("../api/queries/views/updateViews.cjs.js");require("../api/queries/watchers/getWatchers.cjs.js");require("../api/queries/uris/getUris.cjs.js");require("lodash");require("react-toastify");require("./SubtasksModulesContext.cjs.js");require("./ThumbnailUploaderContext.cjs.js");require("./SettingsPanelContext.cjs.js");require("./pip/PiPProvider.cjs.js");require("react-dom");require("./pip/PiPWrapper.cjs.js");require("./AddonProjectContext.cjs.js");require("./AddonContext.cjs.js");require("./MoveEntityContext.cjs.js");require("./MenuContext.cjs.js");require("./WebsocketContext.cjs.js");require("./GlobalContext.cjs.js");require("./ProjectContext.cjs.js");require("./ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");require("../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("uuid");require("../util/pubsub.cjs.js");const te=["feed","subtasks","details","files"],F=i=>typeof i=="string"&&te.includes(i),I=e.createContext(void 0),ue=({children:i,defaultTab:c="feed",hasLicense:y,debug:s={},...n})=>{const a=n.user,l="isDeveloperMode"in s?s.isDeveloperMode:a?.attrib?.developerMode??!1,P="isGuest"in s?s.isGuest:a?.data?.isGuest,{powerLicense:b,setPowerpackDialog:f}=re.usePowerpack(),u="hasLicense"in s?s.hasLicense:!!b||y,[q,T]=e.useState({}),[B,M]=e.useState([]),N=e.useCallback(r=>q[r]?q[r]:!1,[q]),R=e.useCallback((r,o)=>{const t={...q};t[r]=o,T(t)},[q]),[p,U]=w.useLocalStorage("details/tabs-by-scope",{}),G=e.useCallback(r=>{const o=p[r];return F(o)?o:c},[p,c]),[k,x]=e.useState(null),_=e.useCallback(r=>{x(r)},[]),O=e.useCallback(()=>{x(null),k&&g([])},[]);e.useEffect(()=>{O()},[n.useLocation().pathname]);const[H,m]=e.useState(null),z=e.useCallback(r=>{m(r)},[]),J=e.useCallback(()=>{m(null)},[]),[K,v]=e.useState(null),[Q,g]=e.useState([]),{uriType:V,uri:W,entity:d,getUriEntities:X}=ie.useURIContext(),[S]=n.useSearchParams(),h=S.get("project"),D=S.get("type"),C=S.get("id"),E=S.get("activity");e.useEffect(()=>{if(V==="entity"&&d&&d.entityType!=="product"){X().then(r=>{if(r.length===0)return;const o=r.find($=>$.uri===W),t=o?.entities?.[0];if(!o||!t)return;const L=t?.projectName||d.projectName||"",j=t.representationId||t.versionId||t.productId||t.taskId||t.folderId;if(!L||!j)return;const Z={entityType:d.entityType,entities:[{id:j,projectName:L}],source:"uri"};v(Z)}).catch(r=>{console.warn("Failed to get URI entities:",r)});return}h&&D&&C&&(v({entityType:D,entities:[{id:C,projectName:h}],source:"url"}),E&&(g([E]),U({...p,overview:"feed"})))},[h,D,C]);const Y={panelOpenByScope:q,getOpenForScope:N,setPanelOpen:R,setPanelOpenByScope:T,tabsByScope:p,getTabForScope:G,slideOut:k,openSlideOut:_,closeSlideOut:O,highlightedActivities:Q,setHighlightedActivities:g,pip:H,openPip:z,closePip:J,entities:K,setEntities:v,feedAnnotations:B,setFeedAnnotations:M,isDeveloperMode:l,isGuest:P,hasLicense:u,onPowerFeature:f,...n};return ee.jsxRuntimeExports.jsx(I.Provider,{value:Y,children:i})},A=()=>{const i=e.useContext(I);if(i===void 0)throw new Error("useDetailsPanel must be used within a DetailsPanelProvider");return i},se=i=>{const{getOpenForScope:c,setPanelOpen:y,getTabForScope:s}=A(),[n,a]=w.useLocalStorage("details/tabs-by-scope",{}),[l,P]=e.useState(()=>{const u=n[i];return F(u)?u:s(i)}),b=e.useCallback(u=>{P(u),a({...n,[i]:u})},[i,a]),f=l==="feed";return{isOpen:c(i),setOpen:u=>y(i,u),currentTab:l,setTab:b,isFeed:f}};exports.DetailsPanelProvider=ue;exports.useDetailsPanelContext=A;exports.useScopedDetailsPanel=se;
2
2
  //# sourceMappingURL=DetailsPanelContext.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DetailsPanelContext.cjs.js","sources":["../../../../src/context/DetailsPanelContext.tsx"],"sourcesContent":["import React, {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport { QueryFilter, UserModel, DetailsPanelEntityType } from '@shared/api'\nimport { useLocation, useNavigate, useParams, useSearchParams } from 'react-router-dom'\nimport { SavedAnnotationMetadata } from '@shared/containers'\nimport { PowerpackFeature, usePowerpack } from './PowerpackContext'\nimport { useURIContext } from './UriContext'\nimport { useLocalStorage } from '@shared/hooks'\nimport type { SubtasksManagerProps } from '@shared/components'\n\n// High-level tabs for the details panel\nexport type DetailsPanelTab = 'feed' | 'subtasks' | 'details' | 'files'\n\n// Filters within the feed tab\nexport type FeedFilter = QueryFilter\n\nexport type SlideOut = {\n entityId: string\n entityType: DetailsPanelEntityType\n projectName: string\n}\n\nexport type DetailsPanelPip = {\n entityType: DetailsPanelEntityType\n entities: { id: string; projectName: string }[]\n scope: string\n}\n\nexport type Entities = {\n entityType: DetailsPanelEntityType\n entities: { id: string; projectName: string }[]\n entitySubTypes?: string[]\n source?: 'uri' | 'url' | 'related' // uri = ayon+entity://..., url = ?project=...&type=...&id=...\n}\n\nexport interface OpenStateByScope {\n [scope: string]: boolean\n}\n\n// Create a new interface for managing tab state by scope\nexport interface TabStateByScope {\n [scope: string]: DetailsPanelTab\n}\n\nconst DETAILS_PANEL_TABS: DetailsPanelTab[] = ['feed', 'subtasks', 'details', 'files']\n\nconst isDetailsPanelTab = (tab: unknown): tab is DetailsPanelTab =>\n typeof tab === 'string' && DETAILS_PANEL_TABS.includes(tab as DetailsPanelTab)\n\n// these props get forwarded to the details panel value\n// it's mainly redux callbacks that cannot be used in shared library\nexport interface DetailsPanelContextProps {\n dispatch?: any // this is a redux dispatch function and it's quite annoying we need to do this\n user: UserModel\n viewer?: {\n reviewableIds: string[]\n taskId?: string | null\n folderId?: string | null\n }\n // redux callback actions\n onOpenImage?: (args: any) => void\n onGoToFrame?: (frame: number) => void\n onOpenViewer?: (args: any) => void\n onUpdateEntity?: (data: { operations: any[]; entityType: string }) => void\n // route hooks\n useParams: typeof useParams\n useNavigate: typeof useNavigate\n useLocation: typeof useLocation\n useSearchParams: typeof useSearchParams\n feedAnnotationsEnabled?: boolean\n hasLicense?: boolean\n // SubtasksManager component\n SubtasksManager?: React.ComponentType<SubtasksManagerProps>\n // debugging used to simulate different values\n debug?: {\n isDeveloperMode?: boolean\n isGuest?: boolean\n hasLicense?: boolean\n }\n}\n\n// Interface for our simplified context\nexport interface DetailsPanelContextType extends DetailsPanelContextProps {\n // user\n isDeveloperMode: boolean\n isGuest: boolean\n // Open state for the panel by scope\n panelOpenByScope: OpenStateByScope\n getOpenForScope: (scope: string) => boolean\n setPanelOpen: (scope: string, isOpen: boolean) => void\n setPanelOpenByScope: (newState: OpenStateByScope) => void\n\n // Tab preferences by scope\n tabsByScope: TabStateByScope\n getTabForScope: (scope: string) => DetailsPanelTab\n\n // Slide out state\n slideOut: null | SlideOut\n openSlideOut: (slideOut: SlideOut) => void\n closeSlideOut: () => void\n\n // Highlighted activities\n highlightedActivities: string[]\n setHighlightedActivities: (activities: string[]) => void\n\n // PiP state\n pip: DetailsPanelPip | null\n openPip: (pip: DetailsPanelPip) => void\n closePip: () => void\n\n // Entities state\n entities: Entities | null\n setEntities: (entities: Entities | null) => void\n\n // Annotations\n feedAnnotations: SavedAnnotationMetadata[]\n setFeedAnnotations: (annotations: SavedAnnotationMetadata[]) => void\n\n // powerpack\n onPowerFeature: (feature: PowerpackFeature) => void\n}\n\n// Create the context\nconst DetailsPanelContext = createContext<DetailsPanelContextType | undefined>(undefined)\n\n// Provider component\nexport interface DetailsPanelProviderProps extends DetailsPanelContextProps {\n children: ReactNode\n defaultTab?: DetailsPanelTab\n}\n\nexport const DetailsPanelProvider: React.FC<DetailsPanelProviderProps> = ({\n children,\n defaultTab = 'feed',\n hasLicense: hasLicenseProp,\n debug = {},\n ...forwardedProps\n}) => {\n const user = forwardedProps.user\n const isDeveloperMode =\n 'isDeveloperMode' in debug\n ? (debug.isDeveloperMode as boolean)\n : user?.attrib?.developerMode ?? false\n const isGuest = 'isGuest' in debug ? (debug.isGuest as boolean) : user?.data?.isGuest\n\n // get license from powerpack or forwarded down from props\n const { powerLicense, setPowerpackDialog } = usePowerpack()\n const hasLicense =\n 'hasLicense' in debug ? (debug.hasLicense as boolean) : !!powerLicense || hasLicenseProp\n\n // keep track of the currently open panel by scope\n const [panelOpenByScope, setPanelOpenByScope] = useState<OpenStateByScope>({})\n const [feedAnnotations, setFeedAnnotations] = useState<SavedAnnotationMetadata[]>([])\n\n // get the current open state for a specific scope\n const getOpenForScope = useCallback(\n (scope: string): boolean => {\n // Check if we have a saved preference for this scope\n if (panelOpenByScope[scope]) {\n return panelOpenByScope[scope]\n }\n\n // Fall back to default\n return false\n },\n [panelOpenByScope],\n )\n // Set open state for a scope\n const setPanelOpen = useCallback(\n (scope: string, isOpen: boolean) => {\n // Create a new state object based on current open state\n const newState = { ...panelOpenByScope }\n newState[scope] = isOpen\n\n // Update the state with the new object\n setPanelOpenByScope(newState)\n },\n [panelOpenByScope],\n )\n\n // Use localStorage to persist tab preferences by scope\n const [tabsByScope, setTabByScope] = useLocalStorage<TabStateByScope>('details/tabs-by-scope', {})\n\n // Get the current tab for a specific scope\n const getTabForScope = useCallback(\n (scope: string): DetailsPanelTab => {\n // Check if we have a saved preference for this scope\n const tab = tabsByScope[scope]\n if (isDetailsPanelTab(tab)) {\n return tab\n }\n\n // Fall back to default\n return defaultTab\n },\n [tabsByScope, defaultTab],\n )\n\n // Set tab for a scope\n\n // is the slide out open?\n const [slideOut, setSlideOut] = useState<null | SlideOut>(null)\n\n // open the slide out\n const openSlideOut = useCallback<DetailsPanelContextType['openSlideOut']>((params) => {\n setSlideOut(params)\n }, [])\n\n // close the slide out\n const closeSlideOut = useCallback(() => {\n setSlideOut(null)\n if (slideOut) {\n setHighlightedActivities([])\n }\n }, [])\n\n // close slide out whenever the page changes\n useEffect(() => {\n closeSlideOut()\n }, [forwardedProps.useLocation().pathname])\n\n const [pip, setPip] = useState<DetailsPanelPip | null>(null)\n\n const openPip = useCallback((pip: DetailsPanelPip) => {\n setPip(pip)\n }, [])\n const closePip = useCallback(() => {\n setPip(null)\n }, [])\n\n const [entities, setEntities] = useState<Entities | null>(null)\n\n const [highlightedActivities, setHighlightedActivities] = useState<string[]>([])\n\n const { uriType, uri, entity, getUriEntities } = useURIContext()\n const [searchParams] = forwardedProps.useSearchParams()\n\n const project = searchParams.get('project')\n const type = searchParams.get('type')\n const id = searchParams.get('id')\n const activity = searchParams.get('activity')\n\n // on first load or URL param change, check if there is a uri or URL params and open details panel if present\n useEffect(() => {\n // Priority 1: Check for 'uri' parameter (ayon+entity://...)\n if (uriType === 'entity' && entity && entity.entityType !== 'product') {\n getUriEntities()\n .then((result) => {\n if (result.length === 0) return\n\n const entityUriData = result.find((r) => r.uri === uri)\n const entityData = entityUriData?.entities?.[0]\n\n if (!entityUriData || !entityData) return\n const projectName = entityData?.projectName || entity.projectName || ''\n const id =\n entityData.representationId ||\n entityData.versionId ||\n entityData.productId ||\n entityData.taskId ||\n entityData.folderId\n\n if (!projectName || !id) return\n\n const newEntities: Entities = {\n entityType: entity.entityType as DetailsPanelEntityType,\n entities: [\n {\n id: id,\n projectName: projectName,\n },\n ],\n source: 'uri',\n }\n\n setEntities(newEntities)\n })\n .catch((err) => {\n console.warn('Failed to get URI entities:', err)\n })\n return\n }\n\n // Priority 2: Check for URL params (project, type, id)\n if (project && type && id) {\n const newEntities: Entities = {\n entityType: type as DetailsPanelEntityType,\n entities: [\n {\n id,\n projectName: project,\n },\n ],\n source: 'url',\n }\n\n setEntities(newEntities)\n\n // if there is an activity param, open the feed tab (activity is shown by default)\n\n if (activity) {\n setHighlightedActivities([activity])\n setTabByScope({\n ...tabsByScope,\n overview: 'feed',\n })\n }\n }\n }, [project, type, id])\n\n const value = {\n // open state for the panel by scope\n panelOpenByScope,\n getOpenForScope,\n setPanelOpen,\n setPanelOpenByScope,\n // tab preferences\n tabsByScope,\n getTabForScope,\n // slide out state\n slideOut,\n openSlideOut,\n closeSlideOut,\n // highlighted activities\n highlightedActivities,\n setHighlightedActivities,\n // PiP state\n pip,\n openPip,\n closePip,\n // entities state\n entities,\n setEntities,\n feedAnnotations,\n setFeedAnnotations,\n isDeveloperMode,\n isGuest,\n hasLicense,\n onPowerFeature: setPowerpackDialog,\n ...forwardedProps,\n }\n\n return <DetailsPanelContext.Provider value={value}>{children}</DetailsPanelContext.Provider>\n}\n\n// Custom hook to use the details context\nexport const useDetailsPanelContext = (): DetailsPanelContextType => {\n const context = useContext(DetailsPanelContext)\n if (context === undefined) {\n throw new Error('useDetailsPanel must be used within a DetailsPanelProvider')\n }\n return context\n}\n\n// Add a specialized hook for using a panel in a specific scope\nexport const useScopedDetailsPanel = (scope: string) => {\n const { getOpenForScope, setPanelOpen, getTabForScope } = useDetailsPanelContext()\n\n const [tabsByScope, setTabsByScope] = useLocalStorage<TabStateByScope>(\n 'details/tabs-by-scope',\n {},\n )\n\n const [currentTab, setTab] = useState<DetailsPanelTab>(() => {\n const tab = tabsByScope[scope]\n return isDetailsPanelTab(tab) ? tab : getTabForScope(scope)\n })\n\n // Keep localStorage and local state in sync\n const updateTab = useCallback(\n (newTab: DetailsPanelTab) => {\n setTab(newTab)\n setTabsByScope({ ...tabsByScope, [scope]: newTab })\n },\n [scope, setTabsByScope],\n )\n\n const isFeed = currentTab === 'feed'\n\n return {\n isOpen: getOpenForScope(scope),\n setOpen: (isOpen: boolean) => setPanelOpen(scope, isOpen),\n currentTab,\n setTab: updateTab,\n isFeed,\n }\n}\n"],"names":["DETAILS_PANEL_TABS","isDetailsPanelTab","tab","DetailsPanelContext","createContext","DetailsPanelProvider","children","defaultTab","hasLicenseProp","debug","forwardedProps","user","isDeveloperMode","isGuest","powerLicense","setPowerpackDialog","usePowerpack","hasLicense","panelOpenByScope","setPanelOpenByScope","useState","feedAnnotations","setFeedAnnotations","getOpenForScope","useCallback","scope","setPanelOpen","isOpen","newState","tabsByScope","setTabByScope","useLocalStorage","getTabForScope","slideOut","setSlideOut","openSlideOut","params","closeSlideOut","setHighlightedActivities","useEffect","pip","setPip","openPip","closePip","entities","setEntities","highlightedActivities","uriType","uri","entity","getUriEntities","useURIContext","searchParams","project","type","id","activity","result","entityUriData","r","entityData","projectName","newEntities","err","value","jsx","useDetailsPanelContext","context","useContext","useScopedDetailsPanel","setTabsByScope","currentTab","setTab","updateTab","newTab","isFeed"],"mappings":"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"}
1
+ {"version":3,"file":"DetailsPanelContext.cjs.js","sources":["../../../../src/context/DetailsPanelContext.tsx"],"sourcesContent":["import React, {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport { QueryFilter, UserModel, DetailsPanelEntityType } from '@shared/api'\nimport { useLocation, useNavigate, useParams, useSearchParams } from 'react-router-dom'\nimport { SavedAnnotationMetadata } from '@shared/containers'\nimport { PowerpackFeature, usePowerpack } from './PowerpackContext'\nimport { useURIContext } from './UriContext'\nimport { useLocalStorage } from '@shared/hooks'\nimport type { SubtasksManagerProps } from '@shared/components'\n\n// High-level tabs for the details panel\nexport type DetailsPanelTab = 'feed' | 'subtasks' | 'details' | 'files'\n\n// Filters within the feed tab\nexport type FeedFilter = QueryFilter\n\nexport type SlideOut = {\n entityId: string\n entityType: DetailsPanelEntityType\n projectName: string\n}\n\nexport type DetailsPanelPip = {\n entityType: DetailsPanelEntityType\n entities: { id: string; projectName: string }[]\n scope: string\n}\n\nexport type Entities = {\n entityType: DetailsPanelEntityType\n entities: { id: string; projectName: string }[]\n entitySubTypes?: string[]\n source?: 'uri' | 'url' | 'related' // uri = ayon+entity://..., url = ?project=...&type=...&id=...\n}\n\nexport interface OpenStateByScope {\n [scope: string]: boolean\n}\n\n// Create a new interface for managing tab state by scope\nexport interface TabStateByScope {\n [scope: string]: DetailsPanelTab\n}\n\nconst DETAILS_PANEL_TABS: DetailsPanelTab[] = ['feed', 'subtasks', 'details', 'files']\n\nconst isDetailsPanelTab = (tab: unknown): tab is DetailsPanelTab =>\n typeof tab === 'string' && DETAILS_PANEL_TABS.includes(tab as DetailsPanelTab)\n\n// these props get forwarded to the details panel value\n// it's mainly redux callbacks that cannot be used in shared library\nexport interface DetailsPanelContextProps {\n dispatch?: any // this is a redux dispatch function and it's quite annoying we need to do this\n user: UserModel\n viewer?: {\n reviewableIds: string[]\n taskId?: string | null\n folderId?: string | null\n }\n // redux callback actions\n onOpenImage?: (args: any) => void\n onGoToFrame?: (frame: number) => void\n onOpenViewer?: (args: any) => void\n onUpdateEntity?: (data: { operations: any[]; entityType: string }) => void\n // route hooks\n useParams: typeof useParams\n useNavigate: typeof useNavigate\n useLocation: typeof useLocation\n useSearchParams: typeof useSearchParams\n feedAnnotationsEnabled?: boolean\n hasLicense?: boolean\n // SubtasksManager component\n SubtasksManager?: React.ComponentType<SubtasksManagerProps>\n // debugging used to simulate different values\n debug?: {\n isDeveloperMode?: boolean\n isGuest?: boolean\n hasLicense?: boolean\n }\n}\n\n// Interface for our simplified context\nexport interface DetailsPanelContextType extends DetailsPanelContextProps {\n // user\n isDeveloperMode: boolean\n isGuest: boolean\n // Open state for the panel by scope\n panelOpenByScope: OpenStateByScope\n getOpenForScope: (scope: string) => boolean\n setPanelOpen: (scope: string, isOpen: boolean) => void\n setPanelOpenByScope: (newState: OpenStateByScope) => void\n\n // Tab preferences by scope\n tabsByScope: TabStateByScope\n getTabForScope: (scope: string) => DetailsPanelTab\n\n // Slide out state\n slideOut: null | SlideOut\n openSlideOut: (slideOut: SlideOut) => void\n closeSlideOut: () => void\n\n // Highlighted activities\n highlightedActivities: string[]\n setHighlightedActivities: (activities: string[]) => void\n\n // PiP state\n pip: DetailsPanelPip | null\n openPip: (pip: DetailsPanelPip) => void\n closePip: () => void\n\n // Entities state\n entities: Entities | null\n setEntities: (entities: Entities | null) => void\n\n // Annotations\n feedAnnotations: SavedAnnotationMetadata[]\n setFeedAnnotations: (annotations: SavedAnnotationMetadata[]) => void\n\n // powerpack\n onPowerFeature: (feature: PowerpackFeature) => void\n}\n\n// Create the context\nconst DetailsPanelContext = createContext<DetailsPanelContextType | undefined>(undefined)\n\n// Provider component\nexport interface DetailsPanelProviderProps extends DetailsPanelContextProps {\n children: ReactNode\n defaultTab?: DetailsPanelTab\n}\n\nexport const DetailsPanelProvider: React.FC<DetailsPanelProviderProps> = ({\n children,\n defaultTab = 'feed',\n hasLicense: hasLicenseProp,\n debug = {},\n ...forwardedProps\n}) => {\n const user = forwardedProps.user\n const isDeveloperMode =\n 'isDeveloperMode' in debug\n ? (debug.isDeveloperMode as boolean)\n : user?.attrib?.developerMode ?? false\n const isGuest = 'isGuest' in debug ? (debug.isGuest as boolean) : user?.data?.isGuest\n\n // get license from powerpack or forwarded down from props\n const { powerLicense, setPowerpackDialog } = usePowerpack()\n const hasLicense =\n 'hasLicense' in debug ? (debug.hasLicense as boolean) : !!powerLicense || hasLicenseProp\n\n // keep track of the currently open panel by scope\n const [panelOpenByScope, setPanelOpenByScope] = useState<OpenStateByScope>({})\n const [feedAnnotations, setFeedAnnotations] = useState<SavedAnnotationMetadata[]>([])\n\n // get the current open state for a specific scope\n const getOpenForScope = useCallback(\n (scope: string): boolean => {\n // Check if we have a saved preference for this scope\n if (panelOpenByScope[scope]) {\n return panelOpenByScope[scope]\n }\n\n // Fall back to default\n return false\n },\n [panelOpenByScope],\n )\n // Set open state for a scope\n const setPanelOpen = useCallback(\n (scope: string, isOpen: boolean) => {\n // Create a new state object based on current open state\n const newState = { ...panelOpenByScope }\n newState[scope] = isOpen\n\n // Update the state with the new object\n setPanelOpenByScope(newState)\n },\n [panelOpenByScope],\n )\n\n // Use localStorage to persist tab preferences by scope\n const [tabsByScope, setTabByScope] = useLocalStorage<TabStateByScope>('details/tabs-by-scope', {})\n\n // Get the current tab for a specific scope\n const getTabForScope = useCallback(\n (scope: string): DetailsPanelTab => {\n // Check if we have a saved preference for this scope\n const tab = tabsByScope[scope]\n if (isDetailsPanelTab(tab)) {\n return tab\n }\n\n // Fall back to default\n return defaultTab\n },\n [tabsByScope, defaultTab],\n )\n\n // Set tab for a scope\n\n // is the slide out open?\n const [slideOut, setSlideOut] = useState<null | SlideOut>(null)\n\n // open the slide out\n const openSlideOut = useCallback<DetailsPanelContextType['openSlideOut']>((params) => {\n setSlideOut(params)\n }, [])\n\n // close the slide out\n const closeSlideOut = useCallback(() => {\n setSlideOut(null)\n if (slideOut) {\n setHighlightedActivities([])\n }\n }, [])\n\n // close slide out whenever the page changes\n useEffect(() => {\n closeSlideOut()\n }, [forwardedProps.useLocation().pathname])\n\n const [pip, setPip] = useState<DetailsPanelPip | null>(null)\n\n const openPip = useCallback((pip: DetailsPanelPip) => {\n setPip(pip)\n }, [])\n const closePip = useCallback(() => {\n setPip(null)\n }, [])\n\n const [entities, setEntities] = useState<Entities | null>(null)\n\n const [highlightedActivities, setHighlightedActivities] = useState<string[]>([])\n\n const { uriType, uri, entity, getUriEntities } = useURIContext()\n const [searchParams] = forwardedProps.useSearchParams()\n\n const project = searchParams.get('project')\n const type = searchParams.get('type')\n const id = searchParams.get('id')\n const activity = searchParams.get('activity')\n\n // on first load or URL param change, check if there is a uri or URL params and open details panel if present\n useEffect(() => {\n // Priority 1: Check for 'uri' parameter (ayon+entity://...)\n if (uriType === 'entity' && entity && entity.entityType !== 'product') {\n getUriEntities()\n .then((result) => {\n if (result.length === 0) return\n\n const entityUriData = result.find((r) => r.uri === uri)\n const entityData = entityUriData?.entities?.[0]\n\n if (!entityUriData || !entityData) return\n const projectName = entityData?.projectName || entity.projectName || ''\n const id =\n entityData.representationId ||\n entityData.versionId ||\n entityData.productId ||\n entityData.taskId ||\n entityData.folderId\n\n if (!projectName || !id) return\n\n const newEntities: Entities = {\n entityType: entity.entityType as DetailsPanelEntityType,\n entities: [\n {\n id: id,\n projectName: projectName,\n },\n ],\n source: 'uri',\n }\n\n setEntities(newEntities)\n })\n .catch((err) => {\n console.warn('Failed to get URI entities:', err)\n })\n return\n }\n\n // Priority 2: Check for URL params (project, type, id)\n if (project && type && id) {\n const newEntities: Entities = {\n entityType: type as DetailsPanelEntityType,\n entities: [\n {\n id,\n projectName: project,\n },\n ],\n source: 'url',\n }\n\n setEntities(newEntities)\n\n // if there is an activity param, open the feed tab (activity is shown by default)\n\n if (activity) {\n setHighlightedActivities([activity])\n setTabByScope({\n ...tabsByScope,\n overview: 'feed',\n })\n }\n }\n }, [project, type, id])\n\n const value = {\n // open state for the panel by scope\n panelOpenByScope,\n getOpenForScope,\n setPanelOpen,\n setPanelOpenByScope,\n // tab preferences\n tabsByScope,\n getTabForScope,\n // slide out state\n slideOut,\n openSlideOut,\n closeSlideOut,\n // highlighted activities\n highlightedActivities,\n setHighlightedActivities,\n // PiP state\n pip,\n openPip,\n closePip,\n // entities state\n entities,\n setEntities,\n feedAnnotations,\n setFeedAnnotations,\n isDeveloperMode,\n isGuest,\n hasLicense,\n onPowerFeature: setPowerpackDialog,\n ...forwardedProps,\n }\n\n return <DetailsPanelContext.Provider value={value}>{children}</DetailsPanelContext.Provider>\n}\n\n// Custom hook to use the details context\nexport const useDetailsPanelContext = (): DetailsPanelContextType => {\n const context = useContext(DetailsPanelContext)\n if (context === undefined) {\n throw new Error('useDetailsPanel must be used within a DetailsPanelProvider')\n }\n return context\n}\n\n// Add a specialized hook for using a panel in a specific scope\nexport const useScopedDetailsPanel = (scope: string) => {\n const { getOpenForScope, setPanelOpen, getTabForScope } = useDetailsPanelContext()\n\n const [tabsByScope, setTabsByScope] = useLocalStorage<TabStateByScope>(\n 'details/tabs-by-scope',\n {},\n )\n\n const [currentTab, setTab] = useState<DetailsPanelTab>(() => {\n const tab = tabsByScope[scope]\n return isDetailsPanelTab(tab) ? tab : getTabForScope(scope)\n })\n\n // Keep localStorage and local state in sync\n const updateTab = useCallback(\n (newTab: DetailsPanelTab) => {\n setTab(newTab)\n setTabsByScope({ ...tabsByScope, [scope]: newTab })\n },\n [scope, setTabsByScope],\n )\n\n const isFeed = currentTab === 'feed'\n\n return {\n isOpen: getOpenForScope(scope),\n setOpen: (isOpen: boolean) => setPanelOpen(scope, isOpen),\n currentTab,\n setTab: updateTab,\n isFeed,\n }\n}\n"],"names":["DETAILS_PANEL_TABS","isDetailsPanelTab","tab","DetailsPanelContext","createContext","DetailsPanelProvider","children","defaultTab","hasLicenseProp","debug","forwardedProps","user","isDeveloperMode","isGuest","powerLicense","setPowerpackDialog","usePowerpack","hasLicense","panelOpenByScope","setPanelOpenByScope","useState","feedAnnotations","setFeedAnnotations","getOpenForScope","useCallback","scope","setPanelOpen","isOpen","newState","tabsByScope","setTabByScope","useLocalStorage","getTabForScope","slideOut","setSlideOut","openSlideOut","params","closeSlideOut","setHighlightedActivities","useEffect","pip","setPip","openPip","closePip","entities","setEntities","highlightedActivities","uriType","uri","entity","getUriEntities","useURIContext","searchParams","project","type","id","activity","result","entityUriData","r","entityData","projectName","newEntities","err","value","jsx","useDetailsPanelContext","context","useContext","useScopedDetailsPanel","setTabsByScope","currentTab","setTab","updateTab","newTab","isFeed"],"mappings":"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"}
@@ -69,6 +69,7 @@ import "../api/queries/entityLists/getListsAttributes.es.js";
69
69
  import "../api/queries/entityLists/updateListsAttributes.es.js";
70
70
  import "../api/queries/entityLists/listFolders.es.js";
71
71
  import "../api/queries/folders/getFolders.es.js";
72
+ import "../api/queries/folders/getFolderDeleteInfo.es.js";
72
73
  import "../api/queries/grouping/getGrouping.es.js";
73
74
  import "../api/queries/links/updateLinks.es.js";
74
75
  import "../api/queries/links/getLinks.es.js";
@@ -117,7 +118,9 @@ import "./ProjectFoldersContext.es.js";
117
118
  import "react-redux";
118
119
  import "custom-protocol-check";
119
120
  import "../containers/ProjectTreeTable/components/GroupSettingsFallback.es.js";
120
- const st = ["feed", "subtasks", "details", "files"], k = (i) => typeof i == "string" && st.includes(i), N = ot(void 0), Do = ({
121
+ import "uuid";
122
+ import "../util/pubsub.es.js";
123
+ const st = ["feed", "subtasks", "details", "files"], k = (i) => typeof i == "string" && st.includes(i), N = ot(void 0), go = ({
121
124
  children: i,
122
125
  defaultTab: l = "feed",
123
126
  hasLicense: S,
@@ -227,7 +230,7 @@ const st = ["feed", "subtasks", "details", "files"], k = (i) => typeof i == "str
227
230
  if (i === void 0)
228
231
  throw new Error("useDetailsPanel must be used within a DetailsPanelProvider");
229
232
  return i;
230
- }, To = (i) => {
233
+ }, Oo = (i) => {
231
234
  const { getOpenForScope: l, setPanelOpen: S, getTabForScope: r } = nt(), [s, a] = C(
232
235
  "details/tabs-by-scope",
233
236
  {}
@@ -249,8 +252,8 @@ const st = ["feed", "subtasks", "details", "files"], k = (i) => typeof i == "str
249
252
  };
250
253
  };
251
254
  export {
252
- Do as DetailsPanelProvider,
255
+ go as DetailsPanelProvider,
253
256
  nt as useDetailsPanelContext,
254
- To as useScopedDetailsPanel
257
+ Oo as useScopedDetailsPanel
255
258
  };
256
259
  //# sourceMappingURL=DetailsPanelContext.es.js.map