@ynput/ayon-frontend-shared 0.3.10 → 0.3.13

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 (695) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +24 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +95 -96
  6. package/dist/Slicer.cjs.js +1 -1
  7. package/dist/Slicer.es.js +12 -11
  8. package/dist/Slicer.es.js.map +1 -1
  9. package/dist/_virtual/index.cjs3.js +1 -1
  10. package/dist/_virtual/index.cjs4.js +1 -1
  11. package/dist/_virtual/index.cjs5.js +1 -1
  12. package/dist/_virtual/index.es3.js +4 -4
  13. package/dist/_virtual/index.es4.js +5 -2
  14. package/dist/_virtual/index.es4.js.map +1 -1
  15. package/dist/_virtual/index.es5.js +2 -5
  16. package/dist/_virtual/index.es5.js.map +1 -1
  17. package/dist/_virtual/index.es6.js +2 -2
  18. package/dist/api.cjs.js +1 -1
  19. package/dist/api.es.js +177 -174
  20. package/dist/api.es.js.map +1 -1
  21. package/dist/components.cjs.js +1 -1
  22. package/dist/components.es.js +21 -17
  23. package/dist/components.es.js.map +1 -1
  24. package/dist/hooks.cjs.js +1 -1
  25. package/dist/hooks.es.js +20 -18
  26. package/dist/hooks.es.js.map +1 -1
  27. package/dist/index.cjs.js +1 -1
  28. package/dist/index.es.js +11 -9
  29. package/dist/index.es.js.map +1 -1
  30. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  31. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  32. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  33. package/dist/node_modules/remove-accents/index.es.js +1 -1
  34. package/dist/shared/node_modules/primereact/skeleton/skeleton.esm.cjs.js +2 -0
  35. package/dist/shared/node_modules/primereact/skeleton/skeleton.esm.cjs.js.map +1 -0
  36. package/dist/shared/node_modules/primereact/skeleton/skeleton.esm.es.js +51 -0
  37. package/dist/shared/node_modules/primereact/skeleton/skeleton.esm.es.js.map +1 -0
  38. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  39. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  40. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  41. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  42. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  43. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  44. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  45. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  46. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  47. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  48. package/dist/shared/src/api/generated/addons.cjs.js.map +1 -1
  49. package/dist/shared/src/api/generated/addons.es.js.map +1 -1
  50. package/dist/shared/src/api/generated/projects.cjs.js +1 -1
  51. package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
  52. package/dist/shared/src/api/generated/projects.es.js +36 -1
  53. package/dist/shared/src/api/generated/projects.es.js.map +1 -1
  54. package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
  55. package/dist/shared/src/api/generated/views.es.js.map +1 -1
  56. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js +1 -1
  57. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js.map +1 -1
  58. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js +3 -2
  59. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js.map +1 -1
  60. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
  61. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  62. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +4 -3
  63. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  64. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  65. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  66. package/dist/shared/src/api/queries/overview/updateOverview.es.js +7 -6
  67. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  68. package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -1
  69. package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
  70. package/dist/shared/src/api/queries/project/getProject.es.js +4 -6
  71. package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
  72. package/dist/shared/src/api/queries/tasks/getTasks.cjs.js +2 -0
  73. package/dist/shared/src/api/queries/tasks/getTasks.cjs.js.map +1 -0
  74. package/dist/shared/src/api/queries/tasks/getTasks.es.js +14 -0
  75. package/dist/shared/src/api/queries/tasks/getTasks.es.js.map +1 -0
  76. package/dist/shared/src/api/queries/tasks/updateTasks.cjs.js +1 -1
  77. package/dist/shared/src/api/queries/tasks/updateTasks.cjs.js.map +1 -1
  78. package/dist/shared/src/api/queries/tasks/updateTasks.es.js +40 -22
  79. package/dist/shared/src/api/queries/tasks/updateTasks.es.js.map +1 -1
  80. package/dist/shared/src/api/queries/users/getUsers.cjs.js +3 -3
  81. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  82. package/dist/shared/src/api/queries/users/getUsers.es.js +19 -18
  83. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  84. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js +1 -1
  85. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
  86. package/dist/shared/src/api/queries/versions/updateVersions.es.js +9 -7
  87. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
  88. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
  89. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  90. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +3 -2
  91. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  92. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +3 -3
  93. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  94. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +76 -71
  95. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  96. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  97. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  98. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +25 -24
  99. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  100. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.cjs.js +12 -5
  101. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.cjs.js.map +1 -1
  102. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.es.js +9 -2
  103. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.es.js.map +1 -1
  104. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
  105. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  106. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +3 -2
  107. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  108. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  109. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  110. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +3 -2
  111. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  112. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +2 -0
  113. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -0
  114. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +37 -0
  115. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -0
  116. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  117. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  118. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +30 -27
  119. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  120. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  121. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  122. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +5 -4
  123. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  124. package/dist/shared/src/components/FileThumbnail/FileThumbnail.cjs.js +13 -3
  125. package/dist/shared/src/components/FileThumbnail/FileThumbnail.cjs.js.map +1 -1
  126. package/dist/shared/src/components/FileThumbnail/FileThumbnail.es.js +29 -19
  127. package/dist/shared/src/components/FileThumbnail/FileThumbnail.es.js.map +1 -1
  128. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  129. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  130. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +48 -195
  131. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  132. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  133. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  134. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +28 -31
  135. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  136. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  137. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  138. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  139. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  140. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +4 -2
  141. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  142. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  143. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  144. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +3 -2
  145. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  146. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  147. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  148. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +4 -2
  149. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  150. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  151. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  152. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +6 -4
  153. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  154. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  155. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  156. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +4 -2
  157. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  158. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  159. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  160. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +4 -2
  161. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  162. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  163. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  164. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +4 -2
  165. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  166. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  167. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  168. package/dist/shared/src/components/RenameForm/RenameForm.es.js +4 -2
  169. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  170. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
  171. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  172. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +11 -10
  173. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  174. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  175. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  176. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +4 -2
  177. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  178. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  179. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  180. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +5 -3
  181. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  182. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  183. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  184. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -2
  185. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  186. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  187. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  188. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +3 -2
  189. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  190. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js +2 -0
  191. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js.map +1 -0
  192. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js +349 -0
  193. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js.map +1 -0
  194. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.styled.cjs.js +74 -0
  195. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.styled.cjs.js.map +1 -0
  196. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.styled.es.js +84 -0
  197. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.styled.es.js.map +1 -0
  198. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  199. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  200. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +121 -105
  201. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  202. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  203. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  204. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +4 -2
  205. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  206. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js +1 -1
  207. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js.map +1 -1
  208. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js +3 -2
  209. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
  210. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +2 -2
  211. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  212. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +5 -4
  213. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  214. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
  215. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
  216. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +27 -26
  217. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
  218. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.cjs.js +2 -2
  219. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.cjs.js.map +1 -1
  220. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.es.js +13 -13
  221. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.es.js.map +1 -1
  222. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +30 -6
  223. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  224. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +190 -95
  225. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  226. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  227. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  228. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +138 -128
  229. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  230. package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
  231. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  232. package/dist/shared/src/components/Watchers/Watchers.es.js +3 -2
  233. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  234. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  235. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  236. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -2
  237. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  238. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  239. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  240. package/dist/shared/src/containers/Actions/Actions.es.js +39 -39
  241. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  242. package/dist/shared/src/containers/Actions/Actions.styled.cjs.js +12 -16
  243. package/dist/shared/src/containers/Actions/Actions.styled.cjs.js.map +1 -1
  244. package/dist/shared/src/containers/Actions/Actions.styled.es.js +15 -19
  245. package/dist/shared/src/containers/Actions/Actions.styled.es.js.map +1 -1
  246. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js +1 -1
  247. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  248. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js +1 -1
  249. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  250. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js +8 -5
  251. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.cjs.js.map +1 -1
  252. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js +12 -9
  253. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.styled.es.js.map +1 -1
  254. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  255. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  256. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -2
  257. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  258. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  259. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  260. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -2
  261. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  262. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  263. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  264. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -2
  265. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  266. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  267. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  268. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +5 -3
  269. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  270. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  271. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  272. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +122 -125
  273. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  274. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js.map +1 -1
  275. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js.map +1 -1
  276. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  277. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  278. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +3 -2
  279. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  280. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.cjs.js +1 -1
  281. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.cjs.js.map +1 -1
  282. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.es.js +29 -25
  283. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.es.js.map +1 -1
  284. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +4 -5
  285. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  286. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +18 -17
  287. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  288. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  289. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  290. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +4 -2
  291. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  292. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  293. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  294. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +4 -2
  295. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  296. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  297. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  298. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +3 -2
  299. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  300. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  301. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  302. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +3 -2
  303. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  304. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  305. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  306. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +4 -2
  307. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  308. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  309. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  310. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +4 -2
  311. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  312. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  313. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  314. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +4 -2
  315. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  316. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  317. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  318. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +4 -2
  319. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  320. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  321. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  322. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +5 -3
  323. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  324. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +1 -1
  325. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -1
  326. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +32 -24
  327. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js.map +1 -1
  328. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  329. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  330. package/dist/shared/src/containers/Feed/Feed.es.js +132 -128
  331. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  332. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  333. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  334. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +4 -2
  335. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  336. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  337. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  338. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +89 -86
  339. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  340. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  341. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  342. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +4 -2
  343. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  344. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js +3 -3
  345. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js.map +1 -1
  346. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js +28 -27
  347. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js.map +1 -1
  348. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  349. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  350. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +4 -2
  351. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  352. package/dist/shared/src/containers/Feed/components/CommentInput/InputMarkdownConvert.cjs.js +6 -2
  353. package/dist/shared/src/containers/Feed/components/CommentInput/InputMarkdownConvert.cjs.js.map +1 -1
  354. package/dist/shared/src/containers/Feed/components/CommentInput/InputMarkdownConvert.es.js +64 -54
  355. package/dist/shared/src/containers/Feed/components/CommentInput/InputMarkdownConvert.es.js.map +1 -1
  356. package/dist/shared/src/containers/Feed/components/CommentInput/quillToMarkdown.cjs.js +5 -5
  357. package/dist/shared/src/containers/Feed/components/CommentInput/quillToMarkdown.cjs.js.map +1 -1
  358. package/dist/shared/src/containers/Feed/components/CommentInput/quillToMarkdown.es.js +37 -35
  359. package/dist/shared/src/containers/Feed/components/CommentInput/quillToMarkdown.es.js.map +1 -1
  360. package/dist/shared/src/containers/Feed/components/CommentMentionSelect/CommentMentionSelect.cjs.js +1 -1
  361. package/dist/shared/src/containers/Feed/components/CommentMentionSelect/CommentMentionSelect.cjs.js.map +1 -1
  362. package/dist/shared/src/containers/Feed/components/CommentMentionSelect/CommentMentionSelect.es.js +21 -21
  363. package/dist/shared/src/containers/Feed/components/CommentMentionSelect/CommentMentionSelect.es.js.map +1 -1
  364. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  365. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  366. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +4 -2
  367. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  368. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  369. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  370. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +6 -5
  371. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  372. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  373. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  374. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +3 -2
  375. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  376. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
  377. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
  378. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +7 -6
  379. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
  380. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  381. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  382. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +505 -489
  383. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  384. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  385. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  386. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +235 -218
  387. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  388. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  389. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  390. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +4 -2
  391. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  392. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  393. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  394. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +4 -2
  395. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  396. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  397. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  398. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +4 -2
  399. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  400. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  401. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  402. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +4 -2
  403. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  404. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +4 -4
  405. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  406. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +227 -226
  407. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  408. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  409. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  410. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +147 -146
  411. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  412. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  413. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  414. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +5 -4
  415. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  416. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  417. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  418. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +4 -2
  419. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  420. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  421. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  422. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +60 -57
  423. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  424. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  425. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  426. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +58 -64
  427. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  428. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  429. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  430. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +4 -2
  431. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  432. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  433. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  434. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +4 -2
  435. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  436. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  437. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  438. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +4 -2
  439. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  440. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  441. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  442. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +3 -2
  443. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  444. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  445. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  446. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +4 -2
  447. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  448. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  449. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  450. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +4 -2
  451. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  452. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  453. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  454. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +4 -2
  455. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  456. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  457. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  458. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +4 -2
  459. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  460. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  461. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  462. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +4 -2
  463. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  464. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  465. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  466. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +4 -2
  467. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  468. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  469. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  470. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +4 -2
  471. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  472. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  473. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  474. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +15 -13
  475. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  476. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +1 -1
  477. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
  478. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +2 -2
  479. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
  480. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js +1 -1
  481. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -1
  482. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js +24 -38
  483. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js.map +1 -1
  484. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
  485. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  486. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +25 -22
  487. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  488. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js +6 -6
  489. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
  490. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js +17 -16
  491. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
  492. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js +8 -8
  493. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -1
  494. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js +50 -49
  495. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -1
  496. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  497. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  498. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +6 -4
  499. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  500. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  501. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  502. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +4 -2
  503. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  504. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  505. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  506. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +4 -2
  507. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  508. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  509. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  510. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +4 -2
  511. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  512. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  513. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  514. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +4 -2
  515. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  516. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  517. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  518. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +4 -2
  519. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  520. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  521. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  522. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +5 -4
  523. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  524. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  525. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  526. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +10 -8
  527. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  528. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js +1 -1
  529. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
  530. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js +3 -2
  531. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
  532. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  533. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  534. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +3 -2
  535. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  536. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  537. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  538. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +4 -2
  539. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  540. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  541. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  542. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +5 -4
  543. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  544. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
  545. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
  546. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +3 -2
  547. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js.map +1 -1
  548. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  549. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  550. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +4 -3
  551. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  552. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
  553. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  554. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +3 -2
  555. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  556. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
  557. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  558. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +3 -2
  559. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  560. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
  561. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  562. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +3 -2
  563. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  564. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  565. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  566. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +3 -2
  567. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  568. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  569. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  570. package/dist/shared/src/context/AddonProjectContext.es.js +5 -4
  571. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  572. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  573. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  574. package/dist/shared/src/context/DetailsPanelContext.es.js +89 -82
  575. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  576. package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
  577. package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
  578. package/dist/shared/src/context/GlobalContext.es.js +5 -4
  579. package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
  580. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  581. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  582. package/dist/shared/src/context/PowerpackContext.es.js +7 -6
  583. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  584. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  585. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  586. package/dist/shared/src/context/ProjectContext.es.js +64 -61
  587. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  588. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  589. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  590. package/dist/shared/src/context/ProjectFoldersContext.es.js +5 -4
  591. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  592. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  593. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  594. package/dist/shared/src/context/RemoteModulesContext.es.js +5 -4
  595. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  596. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  597. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  598. package/dist/shared/src/context/SubtasksModulesContext.es.js +5 -4
  599. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  600. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  601. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  602. package/dist/shared/src/context/UriContext.es.js +6 -5
  603. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  604. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  605. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  606. package/dist/shared/src/context/WebsocketContext.es.js +6 -4
  607. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  608. package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
  609. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  610. package/dist/shared/src/hooks/useActionTriggers.es.js +3 -2
  611. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  612. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  613. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  614. package/dist/shared/src/hooks/useEntityUpdate.es.js +3 -2
  615. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  616. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
  617. package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
  618. package/dist/shared/src/hooks/useGetEntityGroups.es.js +3 -2
  619. package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
  620. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  621. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  622. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +3 -2
  623. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  624. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  625. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  626. package/dist/shared/src/hooks/useHierarchyTable.es.js +25 -24
  627. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  628. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
  629. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  630. package/dist/shared/src/hooks/useScopedStatuses.es.js +5 -4
  631. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  632. package/dist/shared/src/hooks/useScopedTypes.cjs.js +2 -0
  633. package/dist/shared/src/hooks/useScopedTypes.cjs.js.map +1 -0
  634. package/dist/shared/src/hooks/useScopedTypes.es.js +109 -0
  635. package/dist/shared/src/hooks/useScopedTypes.es.js.map +1 -0
  636. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  637. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  638. package/dist/shared/src/hooks/useUserProjectConfig.es.js +3 -2
  639. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  640. package/dist/shared/src/util/columnConfigConverter.cjs.js +1 -1
  641. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  642. package/dist/shared/src/util/columnConfigConverter.es.js +61 -60
  643. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  644. package/dist/shared/src/util/iconUtils.cjs.js +2 -0
  645. package/dist/shared/src/util/iconUtils.cjs.js.map +1 -0
  646. package/dist/shared/src/util/iconUtils.es.js +18 -0
  647. package/dist/shared/src/util/iconUtils.es.js.map +1 -0
  648. package/dist/shared/src/util/isHTMLElement.cjs.js +2 -0
  649. package/dist/shared/src/util/isHTMLElement.cjs.js.map +1 -0
  650. package/dist/shared/src/util/isHTMLElement.es.js +5 -0
  651. package/dist/shared/src/util/isHTMLElement.es.js.map +1 -0
  652. package/dist/shared/src/util/versionUploadHelpers.cjs.js.map +1 -1
  653. package/dist/shared/src/util/versionUploadHelpers.es.js.map +1 -1
  654. package/dist/types/api/generated/addons.d.ts +4 -0
  655. package/dist/types/api/generated/enums.d.ts +2 -0
  656. package/dist/types/api/generated/projects.d.ts +71 -3
  657. package/dist/types/api/generated/views.d.ts +2 -0
  658. package/dist/types/api/queries/entityLists/types.d.ts +1 -0
  659. package/dist/types/api/queries/project/getProject.d.ts +4 -185
  660. package/dist/types/api/queries/project/updateProject.d.ts +11 -11
  661. package/dist/types/api/queries/tasks/getTasks.d.ts +185 -0
  662. package/dist/types/api/queries/tasks/index.d.ts +1 -0
  663. package/dist/types/api/queries/tasks/updateTasks.d.ts +7 -0
  664. package/dist/types/api/queries/versions/updateVersions.d.ts +185 -1
  665. package/dist/types/components/EntityIcon/EntityIcon.d.ts +10 -0
  666. package/dist/types/components/EntityIcon/index.d.ts +1 -0
  667. package/dist/types/components/LinksManager/LinksManager.d.ts +1 -0
  668. package/dist/types/components/ReviewablesSelector/ReviewablesSelector.d.ts +12 -0
  669. package/dist/types/components/ReviewablesSelector/ReviewablesSelector.styled.d.ts +8 -0
  670. package/dist/types/components/ReviewablesSelector/index.d.ts +2 -0
  671. package/dist/types/components/Thumbnail/StackedThumbnails.d.ts +1 -0
  672. package/dist/types/components/Thumbnail/Thumbnail.d.ts +3 -2
  673. package/dist/types/components/VersionUploader/context/VersionUploadContext.d.ts +14 -2
  674. package/dist/types/components/index.d.ts +2 -0
  675. package/dist/types/containers/EntityPickerDialog/util/buildEntityPickerTableData.d.ts +1 -0
  676. package/dist/types/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.d.ts +2 -1
  677. package/dist/types/containers/Feed/components/CommentMentionSelect/CommentMentionSelect.d.ts +1 -0
  678. package/dist/types/containers/Feed/mentionHelpers/getMentionTasks.d.ts +1 -0
  679. package/dist/types/containers/ProjectTreeTable/types/project.d.ts +1 -0
  680. package/dist/types/containers/ProjectTreeTable/utils/linksToTableData.d.ts +2 -12
  681. package/dist/types/containers/ProjectTreeTable/widgets/EntityNameWidget.d.ts +3 -3
  682. package/dist/types/containers/ProjectTreeTable/widgets/EnumCellValue.d.ts +2 -1
  683. package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +0 -1
  684. package/dist/types/context/ProjectContext.d.ts +1 -2
  685. package/dist/types/hooks/index.d.ts +1 -0
  686. package/dist/types/hooks/useHierarchyTable.d.ts +2 -1
  687. package/dist/types/hooks/useScopedTypes.d.ts +4 -0
  688. package/dist/types/util/iconUtils.d.ts +4 -0
  689. package/dist/types/util/index.d.ts +2 -0
  690. package/dist/types/util/isHTMLElement.d.ts +2 -0
  691. package/dist/types/util/versionUploadHelpers.d.ts +1 -0
  692. package/dist/util.cjs.js +1 -1
  693. package/dist/util.es.js +20 -18
  694. package/dist/util.es.js.map +1 -1
  695. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SubtasksModulesContext.es.js","sources":["../../../../src/context/SubtasksModulesContext.tsx"],"sourcesContent":["import { FC, ReactNode, createContext, useContext, useEffect } from 'react'\nimport { useLoadModule } from '@shared/hooks'\nimport { SubtasksManagerProps } from '@shared/components'\nimport { usePowerpack } from './PowerpackContext'\n\nconst SubtasksManagerFallback: FC<SubtasksManagerProps> = (props) => {\n const { setPowerpackDialog } = usePowerpack()\n // open planner addon dialog\n useEffect(() => {\n setPowerpackDialog({ addon: 'planner', feature: 'subtasks' })\n // callback for when the module is not found, allowing parent components to handle this case (e.g. by hiding subtasks-related UI)\n props?.onNotFound?.()\n }, [setPowerpackDialog, props.onNotFound])\n\n return null\n}\n\ninterface SubtasksModulesContextType {\n SubtasksManager: typeof SubtasksManagerFallback\n requiredVersion: string | undefined\n isLoading: boolean\n}\n\nconst SubtasksModulesContext = createContext<SubtasksModulesContextType | undefined>(undefined)\n\nexport const SubtasksModulesProvider: FC<{ children: ReactNode }> = ({ children }) => {\n const [SubtasksManager, { outdated, isLoading }] = useLoadModule({\n addon: 'planner',\n remote: 'planner',\n module: 'SubtasksManager',\n fallback: SubtasksManagerFallback,\n })\n\n return (\n <SubtasksModulesContext.Provider\n value={{ SubtasksManager, requiredVersion: outdated?.required, isLoading }}\n >\n {children}\n </SubtasksModulesContext.Provider>\n )\n}\n\nexport const useSubtasksModulesContext = (): SubtasksModulesContextType => {\n const context = useContext(SubtasksModulesContext)\n if (!context) {\n throw new Error('useSubtasksModulesContext must be used within a SubtasksModulesProvider')\n }\n return context\n}\n"],"names":["SubtasksManagerFallback","props","setPowerpackDialog","usePowerpack","useEffect","SubtasksModulesContext","createContext","SubtasksModulesProvider","children","SubtasksManager","outdated","isLoading","useLoadModule","jsx","useSubtasksModulesContext","context","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,IAAoD,CAACC,MAAU;AACnE,QAAM,EAAE,oBAAAC,EAAA,IAAuBC,EAAA;AAE/B,SAAAC,EAAU,MAAM;AACd,IAAAF,EAAmB,EAAE,OAAO,WAAW,SAAS,YAAY,GAE5DD,GAAO,aAAA;AAAA,EACT,GAAG,CAACC,GAAoBD,EAAM,UAAU,CAAC,GAElC;AACT,GAQMI,IAAyBC,EAAsD,MAAS,GAEjFC,KAAuD,CAAC,EAAE,UAAAC,QAAe;AACpF,QAAM,CAACC,GAAiB,EAAE,UAAAC,GAAU,WAAAC,EAAA,CAAW,IAAIC,EAAc;AAAA,IAC/D,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAUZ;AAAA,EAAA,CACX;AAED,SACEa,gBAAAA,EAAAA;AAAAA,IAACR,EAAuB;AAAA,IAAvB;AAAA,MACC,OAAO,EAAE,iBAAAI,GAAiB,iBAAiBC,GAAU,UAAU,WAAAC,EAAA;AAAA,MAE9D,UAAAH;AAAA,IAAA;AAAA,EAAA;AAGP,GAEaM,KAA4B,MAAkC;AACzE,QAAMC,IAAUC,EAAWX,CAAsB;AACjD,MAAI,CAACU;AACH,UAAM,IAAI,MAAM,yEAAyE;AAE3F,SAAOA;AACT;"}
1
+ {"version":3,"file":"SubtasksModulesContext.es.js","sources":["../../../../src/context/SubtasksModulesContext.tsx"],"sourcesContent":["import { FC, ReactNode, createContext, useContext, useEffect } from 'react'\nimport { useLoadModule } from '@shared/hooks'\nimport { SubtasksManagerProps } from '@shared/components'\nimport { usePowerpack } from './PowerpackContext'\n\nconst SubtasksManagerFallback: FC<SubtasksManagerProps> = (props) => {\n const { setPowerpackDialog } = usePowerpack()\n // open planner addon dialog\n useEffect(() => {\n setPowerpackDialog({ addon: 'planner', feature: 'subtasks' })\n // callback for when the module is not found, allowing parent components to handle this case (e.g. by hiding subtasks-related UI)\n props?.onNotFound?.()\n }, [setPowerpackDialog, props.onNotFound])\n\n return null\n}\n\ninterface SubtasksModulesContextType {\n SubtasksManager: typeof SubtasksManagerFallback\n requiredVersion: string | undefined\n isLoading: boolean\n}\n\nconst SubtasksModulesContext = createContext<SubtasksModulesContextType | undefined>(undefined)\n\nexport const SubtasksModulesProvider: FC<{ children: ReactNode }> = ({ children }) => {\n const [SubtasksManager, { outdated, isLoading }] = useLoadModule({\n addon: 'planner',\n remote: 'planner',\n module: 'SubtasksManager',\n fallback: SubtasksManagerFallback,\n })\n\n return (\n <SubtasksModulesContext.Provider\n value={{ SubtasksManager, requiredVersion: outdated?.required, isLoading }}\n >\n {children}\n </SubtasksModulesContext.Provider>\n )\n}\n\nexport const useSubtasksModulesContext = (): SubtasksModulesContextType => {\n const context = useContext(SubtasksModulesContext)\n if (!context) {\n throw new Error('useSubtasksModulesContext must be used within a SubtasksModulesProvider')\n }\n return context\n}\n"],"names":["SubtasksManagerFallback","props","setPowerpackDialog","usePowerpack","useEffect","SubtasksModulesContext","createContext","SubtasksModulesProvider","children","SubtasksManager","outdated","isLoading","useLoadModule","jsx","useSubtasksModulesContext","context","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,IAAoD,CAACC,MAAU;AACnE,QAAM,EAAE,oBAAAC,EAAA,IAAuBC,EAAA;AAE/B,SAAAC,EAAU,MAAM;AACd,IAAAF,EAAmB,EAAE,OAAO,WAAW,SAAS,YAAY,GAE5DD,GAAO,aAAA;AAAA,EACT,GAAG,CAACC,GAAoBD,EAAM,UAAU,CAAC,GAElC;AACT,GAQMI,IAAyBC,EAAsD,MAAS,GAEjFC,KAAuD,CAAC,EAAE,UAAAC,QAAe;AACpF,QAAM,CAACC,GAAiB,EAAE,UAAAC,GAAU,WAAAC,EAAA,CAAW,IAAIC,EAAc;AAAA,IAC/D,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAUZ;AAAA,EAAA,CACX;AAED,SACEa,gBAAAA,EAAAA;AAAAA,IAACR,EAAuB;AAAA,IAAvB;AAAA,MACC,OAAO,EAAE,iBAAAI,GAAiB,iBAAiBC,GAAU,UAAU,WAAAC,EAAA;AAAA,MAE9D,UAAAH;AAAA,IAAA;AAAA,EAAA;AAGP,GAEaM,KAA4B,MAAkC;AACzE,QAAMC,IAAUC,EAAWX,CAAsB;AACjD,MAAI,CAACU;AACH,UAAM,IAAI,MAAM,yEAAyE;AAE3F,SAAOA;AACT;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("../../../_virtual/jsx-runtime.cjs.js"),r=require("react");require("lodash");require("react-toastify");require("uuid");const c=require("../util/uriUtils.cjs.js");require("../util/pubsub.cjs.js");require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/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/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/updateTasks.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");const h=require("../api/queries/uris/getUris.cjs.js"),C="uri",a=r.createContext(void 0),b=({children:t})=>{const o=location.pathname,[i,u]=r.useState(""),l=["projects","settings","dashboard/tasks"];r.useEffect(()=>{l.some(s=>o.startsWith(`/${s}`))||u("")},[o,u]);const{type:q,entity:U,settings:R}=c.parseUri(i),d=r.useCallback(({projectName:e,folderPath:s,taskName:x,productName:y,versionName:I})=>{const m=c.buildEntityUri({projectName:e,folderPath:s,taskName:x,productName:y,versionName:I});u(m)},[u]),[n]=h.useResolveUrisMutation(),v=r.useCallback(async()=>{if(q!=="entity"||!i)return[];try{const e=await n({resolveRequestModel:{uris:[i]}}).unwrap();return console.log("Resolved entity from URI:",e),e}catch(e){return console.warn("Failed to resolve URI:",e),[]}},[n,i,q]),p={uri:i,uriType:q,entity:U,settings:R,setUri:u,setEntityUri:d,getUriEntities:v};return g.jsxRuntimeExports.jsx(a.Provider,{value:p,children:t})},f=()=>{const t=r.useContext(a);if(t===void 0)throw new Error("useURIContext must be used within a URIProvider");return t};exports.URIProvider=b;exports.URL_PARAM_ID=C;exports.useURIContext=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("../../../_virtual/jsx-runtime.cjs.js"),r=require("react");require("lodash");require("react-toastify");require("uuid");const c=require("../util/uriUtils.cjs.js");require("../util/pubsub.cjs.js");require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/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/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/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");const h=require("../api/queries/uris/getUris.cjs.js"),C="uri",a=r.createContext(void 0),b=({children:t})=>{const o=location.pathname,[i,u]=r.useState(""),l=["projects","settings","dashboard/tasks"];r.useEffect(()=>{l.some(s=>o.startsWith(`/${s}`))||u("")},[o,u]);const{type:q,entity:U,settings:R}=c.parseUri(i),d=r.useCallback(({projectName:e,folderPath:s,taskName:x,productName:y,versionName:I})=>{const m=c.buildEntityUri({projectName:e,folderPath:s,taskName:x,productName:y,versionName:I});u(m)},[u]),[n]=h.useResolveUrisMutation(),v=r.useCallback(async()=>{if(q!=="entity"||!i)return[];try{const e=await n({resolveRequestModel:{uris:[i]}}).unwrap();return console.log("Resolved entity from URI:",e),e}catch(e){return console.warn("Failed to resolve URI:",e),[]}},[n,i,q]),p={uri:i,uriType:q,entity:U,settings:R,setUri:u,setEntityUri:d,getUriEntities:v};return g.jsxRuntimeExports.jsx(a.Provider,{value:p,children:t})},f=()=>{const t=r.useContext(a);if(t===void 0)throw new Error("useURIContext must be used within a URIProvider");return t};exports.URIProvider=b;exports.URL_PARAM_ID=C;exports.useURIContext=f;
2
2
  //# sourceMappingURL=UriContext.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UriContext.cjs.js","sources":["../../../../src/context/UriContext.tsx"],"sourcesContent":["// The URI is a unique AYON ID for entities and settings paths\n// Entity: ayon+entity://project_name/shots/000_logo/000_0010?task=lighting\n// Settings: ayon+settings://maya/ext_mapping/0/name\n\n// Components can update the URI when changing context, like opening the details panel or navigating to a settings page\n// Components state should not be directly synced to the URI, they should only read the URI on mount to set initial state\n\nimport { createContext, useContext, useEffect, ReactNode, FC, useCallback, useState } from 'react'\nimport { buildEntityUri, parseUri } from '../util'\nimport { ResolvedUriModel, useResolveUrisMutation } from '@shared/api'\n\nexport const URL_PARAM_ID = 'uri'\n\ntype SetEntityUriFunc = ({\n projectName,\n folderPath,\n taskName,\n productName,\n versionName,\n}: {\n projectName: string\n folderPath: string\n taskName?: string\n productName?: string\n versionName?: string\n}) => void\n\nexport type EntityUri = {\n projectName: string\n entityType: 'task' | 'folder' | 'product' | 'version'\n folderPath: string\n taskName?: string\n productName?: string\n versionName?: string\n}\n\nexport type SettingsUri = {\n addonName: string\n addonVersion: string\n settingsPath: string[]\n site: string | undefined\n project: string | undefined\n}\n\ninterface URIContextValue {\n uri: string\n uriType: 'settings' | 'entity' | undefined\n entity?: EntityUri\n settings?: SettingsUri\n setUri: (uri: string) => void\n setEntityUri: SetEntityUriFunc\n getUriEntities: () => Promise<ResolvedUriModel[]>\n}\n\ninterface URIProviderProps {\n children: ReactNode\n}\n\nconst URIContext = createContext<URIContextValue | undefined>(undefined)\n\nconst URIProvider: FC<URIProviderProps> = ({ children }) => {\n const pathname = location.pathname\n\n const [uri, setUri] = useState('')\n\n // when the scope is outside settings and project, set uri to null\n const scopes = ['projects', 'settings', 'dashboard/tasks']\n useEffect(() => {\n const matchingScope = scopes.some((scope) => pathname.startsWith(`/${scope}`))\n\n if (!matchingScope) {\n setUri('')\n }\n }, [pathname, setUri])\n\n const { type: uriType, entity, settings } = parseUri(uri)\n\n // helper function to set an entity URI\n const setEntityUri = useCallback<SetEntityUriFunc>(\n ({ projectName, folderPath, taskName, productName, versionName }) => {\n const uri = buildEntityUri({ projectName, folderPath, taskName, productName, versionName })\n setUri(uri)\n },\n [setUri],\n )\n\n // helper function to get entity ids from URI so that we can actually do something with it\n const [resolveUris] = useResolveUrisMutation()\n const getUriEntities = useCallback(async () => {\n if (uriType !== 'entity' || !uri) return []\n\n try {\n const entities = await resolveUris({ resolveRequestModel: { uris: [uri] } }).unwrap()\n // we could set more detailed entity info here if needed\n // for now we just log it\n console.log('Resolved entity from URI:', entities)\n\n return entities\n } catch (error) {\n console.warn('Failed to resolve URI:', error)\n return []\n }\n }, [resolveUris, uri, uriType])\n\n const contextValue: URIContextValue = {\n uri,\n uriType,\n entity,\n settings,\n setUri,\n setEntityUri,\n getUriEntities,\n }\n\n return <URIContext.Provider value={contextValue}>{children}</URIContext.Provider>\n}\n\nconst useURIContext = (): URIContextValue => {\n const context = useContext(URIContext)\n if (context === undefined) {\n throw new Error('useURIContext must be used within a URIProvider')\n }\n return context\n}\n\nexport { URIProvider, useURIContext }\n"],"names":["URL_PARAM_ID","URIContext","createContext","URIProvider","children","pathname","uri","setUri","useState","scopes","useEffect","scope","uriType","entity","settings","parseUri","setEntityUri","useCallback","projectName","folderPath","taskName","productName","versionName","buildEntityUri","resolveUris","useResolveUrisMutation","getUriEntities","entities","error","contextValue","useURIContext","context","useContext"],"mappings":"olJAWaA,EAAe,MA+CtBC,EAAaC,EAAAA,cAA2C,MAAS,EAEjEC,EAAoC,CAAC,CAAE,SAAAC,KAAe,CAC1D,MAAMC,EAAW,SAAS,SAEpB,CAACC,EAAKC,CAAM,EAAIC,EAAAA,SAAS,EAAE,EAG3BC,EAAS,CAAC,WAAY,WAAY,iBAAiB,EACzDC,EAAAA,UAAU,IAAM,CACQD,EAAO,KAAME,GAAUN,EAAS,WAAW,IAAIM,CAAK,EAAE,CAAC,GAG3EJ,EAAO,EAAE,CAEb,EAAG,CAACF,EAAUE,CAAM,CAAC,EAErB,KAAM,CAAE,KAAMK,EAAS,OAAAC,EAAQ,SAAAC,CAAA,EAAaC,EAAAA,SAAST,CAAG,EAGlDU,EAAeC,EAAAA,YACnB,CAAC,CAAE,YAAAC,EAAa,WAAAC,EAAY,SAAAC,EAAU,YAAAC,EAAa,YAAAC,KAAkB,CACnE,MAAMhB,EAAMiB,EAAAA,eAAe,CAAE,YAAAL,EAAa,WAAAC,EAAY,SAAAC,EAAU,YAAAC,EAAa,YAAAC,EAAa,EAC1Ff,EAAOD,CAAG,CACZ,EACA,CAACC,CAAM,CAAA,EAIH,CAACiB,CAAW,EAAIC,yBAAA,EAChBC,EAAiBT,EAAAA,YAAY,SAAY,CAC7C,GAAIL,IAAY,UAAY,CAACN,QAAY,CAAA,EAEzC,GAAI,CACF,MAAMqB,EAAW,MAAMH,EAAY,CAAE,oBAAqB,CAAE,KAAM,CAAClB,CAAG,CAAA,EAAK,EAAE,OAAA,EAG7E,eAAQ,IAAI,4BAA6BqB,CAAQ,EAE1CA,CACT,OAASC,EAAO,CACd,eAAQ,KAAK,yBAA0BA,CAAK,EACrC,CAAA,CACT,CACF,EAAG,CAACJ,EAAalB,EAAKM,CAAO,CAAC,EAExBiB,EAAgC,CACpC,IAAAvB,EACA,QAAAM,EACA,OAAAC,EACA,SAAAC,EACA,OAAAP,EACA,aAAAS,EACA,eAAAU,CAAA,EAGF,+BAAQzB,EAAW,SAAX,CAAoB,MAAO4B,EAAe,SAAAzB,EAAS,CAC7D,EAEM0B,EAAgB,IAAuB,CAC3C,MAAMC,EAAUC,EAAAA,WAAW/B,CAAU,EACrC,GAAI8B,IAAY,OACd,MAAM,IAAI,MAAM,iDAAiD,EAEnE,OAAOA,CACT"}
1
+ {"version":3,"file":"UriContext.cjs.js","sources":["../../../../src/context/UriContext.tsx"],"sourcesContent":["// The URI is a unique AYON ID for entities and settings paths\n// Entity: ayon+entity://project_name/shots/000_logo/000_0010?task=lighting\n// Settings: ayon+settings://maya/ext_mapping/0/name\n\n// Components can update the URI when changing context, like opening the details panel or navigating to a settings page\n// Components state should not be directly synced to the URI, they should only read the URI on mount to set initial state\n\nimport { createContext, useContext, useEffect, ReactNode, FC, useCallback, useState } from 'react'\nimport { buildEntityUri, parseUri } from '../util'\nimport { ResolvedUriModel, useResolveUrisMutation } from '@shared/api'\n\nexport const URL_PARAM_ID = 'uri'\n\ntype SetEntityUriFunc = ({\n projectName,\n folderPath,\n taskName,\n productName,\n versionName,\n}: {\n projectName: string\n folderPath: string\n taskName?: string\n productName?: string\n versionName?: string\n}) => void\n\nexport type EntityUri = {\n projectName: string\n entityType: 'task' | 'folder' | 'product' | 'version'\n folderPath: string\n taskName?: string\n productName?: string\n versionName?: string\n}\n\nexport type SettingsUri = {\n addonName: string\n addonVersion: string\n settingsPath: string[]\n site: string | undefined\n project: string | undefined\n}\n\ninterface URIContextValue {\n uri: string\n uriType: 'settings' | 'entity' | undefined\n entity?: EntityUri\n settings?: SettingsUri\n setUri: (uri: string) => void\n setEntityUri: SetEntityUriFunc\n getUriEntities: () => Promise<ResolvedUriModel[]>\n}\n\ninterface URIProviderProps {\n children: ReactNode\n}\n\nconst URIContext = createContext<URIContextValue | undefined>(undefined)\n\nconst URIProvider: FC<URIProviderProps> = ({ children }) => {\n const pathname = location.pathname\n\n const [uri, setUri] = useState('')\n\n // when the scope is outside settings and project, set uri to null\n const scopes = ['projects', 'settings', 'dashboard/tasks']\n useEffect(() => {\n const matchingScope = scopes.some((scope) => pathname.startsWith(`/${scope}`))\n\n if (!matchingScope) {\n setUri('')\n }\n }, [pathname, setUri])\n\n const { type: uriType, entity, settings } = parseUri(uri)\n\n // helper function to set an entity URI\n const setEntityUri = useCallback<SetEntityUriFunc>(\n ({ projectName, folderPath, taskName, productName, versionName }) => {\n const uri = buildEntityUri({ projectName, folderPath, taskName, productName, versionName })\n setUri(uri)\n },\n [setUri],\n )\n\n // helper function to get entity ids from URI so that we can actually do something with it\n const [resolveUris] = useResolveUrisMutation()\n const getUriEntities = useCallback(async () => {\n if (uriType !== 'entity' || !uri) return []\n\n try {\n const entities = await resolveUris({ resolveRequestModel: { uris: [uri] } }).unwrap()\n // we could set more detailed entity info here if needed\n // for now we just log it\n console.log('Resolved entity from URI:', entities)\n\n return entities\n } catch (error) {\n console.warn('Failed to resolve URI:', error)\n return []\n }\n }, [resolveUris, uri, uriType])\n\n const contextValue: URIContextValue = {\n uri,\n uriType,\n entity,\n settings,\n setUri,\n setEntityUri,\n getUriEntities,\n }\n\n return <URIContext.Provider value={contextValue}>{children}</URIContext.Provider>\n}\n\nconst useURIContext = (): URIContextValue => {\n const context = useContext(URIContext)\n if (context === undefined) {\n throw new Error('useURIContext must be used within a URIProvider')\n }\n return context\n}\n\nexport { URIProvider, useURIContext }\n"],"names":["URL_PARAM_ID","URIContext","createContext","URIProvider","children","pathname","uri","setUri","useState","scopes","useEffect","scope","uriType","entity","settings","parseUri","setEntityUri","useCallback","projectName","folderPath","taskName","productName","versionName","buildEntityUri","resolveUris","useResolveUrisMutation","getUriEntities","entities","error","contextValue","useURIContext","context","useContext"],"mappings":"ooJAWaA,EAAe,MA+CtBC,EAAaC,EAAAA,cAA2C,MAAS,EAEjEC,EAAoC,CAAC,CAAE,SAAAC,KAAe,CAC1D,MAAMC,EAAW,SAAS,SAEpB,CAACC,EAAKC,CAAM,EAAIC,EAAAA,SAAS,EAAE,EAG3BC,EAAS,CAAC,WAAY,WAAY,iBAAiB,EACzDC,EAAAA,UAAU,IAAM,CACQD,EAAO,KAAME,GAAUN,EAAS,WAAW,IAAIM,CAAK,EAAE,CAAC,GAG3EJ,EAAO,EAAE,CAEb,EAAG,CAACF,EAAUE,CAAM,CAAC,EAErB,KAAM,CAAE,KAAMK,EAAS,OAAAC,EAAQ,SAAAC,CAAA,EAAaC,EAAAA,SAAST,CAAG,EAGlDU,EAAeC,EAAAA,YACnB,CAAC,CAAE,YAAAC,EAAa,WAAAC,EAAY,SAAAC,EAAU,YAAAC,EAAa,YAAAC,KAAkB,CACnE,MAAMhB,EAAMiB,EAAAA,eAAe,CAAE,YAAAL,EAAa,WAAAC,EAAY,SAAAC,EAAU,YAAAC,EAAa,YAAAC,EAAa,EAC1Ff,EAAOD,CAAG,CACZ,EACA,CAACC,CAAM,CAAA,EAIH,CAACiB,CAAW,EAAIC,yBAAA,EAChBC,EAAiBT,EAAAA,YAAY,SAAY,CAC7C,GAAIL,IAAY,UAAY,CAACN,QAAY,CAAA,EAEzC,GAAI,CACF,MAAMqB,EAAW,MAAMH,EAAY,CAAE,oBAAqB,CAAE,KAAM,CAAClB,CAAG,CAAA,EAAK,EAAE,OAAA,EAG7E,eAAQ,IAAI,4BAA6BqB,CAAQ,EAE1CA,CACT,OAASC,EAAO,CACd,eAAQ,KAAK,yBAA0BA,CAAK,EACrC,CAAA,CACT,CACF,EAAG,CAACJ,EAAalB,EAAKM,CAAO,CAAC,EAExBiB,EAAgC,CACpC,IAAAvB,EACA,QAAAM,EACA,OAAAC,EACA,SAAAC,EACA,OAAAP,EACA,aAAAS,EACA,eAAAU,CAAA,EAGF,+BAAQzB,EAAW,SAAX,CAAoB,MAAO4B,EAAe,SAAAzB,EAAS,CAC7D,EAEM0B,EAAgB,IAAuB,CAC3C,MAAMC,EAAUC,EAAAA,WAAW/B,CAAU,EACrC,GAAI8B,IAAY,OACd,MAAM,IAAI,MAAM,iDAAiD,EAEnE,OAAOA,CACT"}
@@ -83,6 +83,7 @@ import "../api/queries/review/getReview.es.js";
83
83
  import "../api/queries/review/updateReview.es.js";
84
84
  import "../api/queries/share/share.es.js";
85
85
  import "../api/queries/system/getSystem.es.js";
86
+ import "../api/queries/tasks/getTasks.es.js";
86
87
  import "../api/queries/tasks/updateTasks.es.js";
87
88
  import "../api/queries/userDashboard/getUserDashboard.es.js";
88
89
  import "../api/queries/users/getUsers.es.js";
@@ -93,7 +94,7 @@ import "../api/queries/views/getViews.es.js";
93
94
  import "../api/queries/views/updateViews.es.js";
94
95
  import "../api/queries/watchers/getWatchers.es.js";
95
96
  import { useResolveUrisMutation as j } from "../api/queries/uris/getUris.es.js";
96
- const vo = "uri", c = I(void 0), xo = ({ children: i }) => {
97
+ const xo = "uri", c = I(void 0), fo = ({ children: i }) => {
97
98
  const e = location.pathname, [o, r] = g(""), a = ["projects", "settings", "dashboard/tasks"];
98
99
  w(() => {
99
100
  a.some((p) => e.startsWith(`/${p}`)) || r("");
@@ -122,15 +123,15 @@ const vo = "uri", c = I(void 0), xo = ({ children: i }) => {
122
123
  getUriEntities: R
123
124
  };
124
125
  return /* @__PURE__ */ y.jsx(c.Provider, { value: d, children: i });
125
- }, fo = () => {
126
+ }, ho = () => {
126
127
  const i = C(c);
127
128
  if (i === void 0)
128
129
  throw new Error("useURIContext must be used within a URIProvider");
129
130
  return i;
130
131
  };
131
132
  export {
132
- xo as URIProvider,
133
- vo as URL_PARAM_ID,
134
- fo as useURIContext
133
+ fo as URIProvider,
134
+ xo as URL_PARAM_ID,
135
+ ho as useURIContext
135
136
  };
136
137
  //# sourceMappingURL=UriContext.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UriContext.es.js","sources":["../../../../src/context/UriContext.tsx"],"sourcesContent":["// The URI is a unique AYON ID for entities and settings paths\n// Entity: ayon+entity://project_name/shots/000_logo/000_0010?task=lighting\n// Settings: ayon+settings://maya/ext_mapping/0/name\n\n// Components can update the URI when changing context, like opening the details panel or navigating to a settings page\n// Components state should not be directly synced to the URI, they should only read the URI on mount to set initial state\n\nimport { createContext, useContext, useEffect, ReactNode, FC, useCallback, useState } from 'react'\nimport { buildEntityUri, parseUri } from '../util'\nimport { ResolvedUriModel, useResolveUrisMutation } from '@shared/api'\n\nexport const URL_PARAM_ID = 'uri'\n\ntype SetEntityUriFunc = ({\n projectName,\n folderPath,\n taskName,\n productName,\n versionName,\n}: {\n projectName: string\n folderPath: string\n taskName?: string\n productName?: string\n versionName?: string\n}) => void\n\nexport type EntityUri = {\n projectName: string\n entityType: 'task' | 'folder' | 'product' | 'version'\n folderPath: string\n taskName?: string\n productName?: string\n versionName?: string\n}\n\nexport type SettingsUri = {\n addonName: string\n addonVersion: string\n settingsPath: string[]\n site: string | undefined\n project: string | undefined\n}\n\ninterface URIContextValue {\n uri: string\n uriType: 'settings' | 'entity' | undefined\n entity?: EntityUri\n settings?: SettingsUri\n setUri: (uri: string) => void\n setEntityUri: SetEntityUriFunc\n getUriEntities: () => Promise<ResolvedUriModel[]>\n}\n\ninterface URIProviderProps {\n children: ReactNode\n}\n\nconst URIContext = createContext<URIContextValue | undefined>(undefined)\n\nconst URIProvider: FC<URIProviderProps> = ({ children }) => {\n const pathname = location.pathname\n\n const [uri, setUri] = useState('')\n\n // when the scope is outside settings and project, set uri to null\n const scopes = ['projects', 'settings', 'dashboard/tasks']\n useEffect(() => {\n const matchingScope = scopes.some((scope) => pathname.startsWith(`/${scope}`))\n\n if (!matchingScope) {\n setUri('')\n }\n }, [pathname, setUri])\n\n const { type: uriType, entity, settings } = parseUri(uri)\n\n // helper function to set an entity URI\n const setEntityUri = useCallback<SetEntityUriFunc>(\n ({ projectName, folderPath, taskName, productName, versionName }) => {\n const uri = buildEntityUri({ projectName, folderPath, taskName, productName, versionName })\n setUri(uri)\n },\n [setUri],\n )\n\n // helper function to get entity ids from URI so that we can actually do something with it\n const [resolveUris] = useResolveUrisMutation()\n const getUriEntities = useCallback(async () => {\n if (uriType !== 'entity' || !uri) return []\n\n try {\n const entities = await resolveUris({ resolveRequestModel: { uris: [uri] } }).unwrap()\n // we could set more detailed entity info here if needed\n // for now we just log it\n console.log('Resolved entity from URI:', entities)\n\n return entities\n } catch (error) {\n console.warn('Failed to resolve URI:', error)\n return []\n }\n }, [resolveUris, uri, uriType])\n\n const contextValue: URIContextValue = {\n uri,\n uriType,\n entity,\n settings,\n setUri,\n setEntityUri,\n getUriEntities,\n }\n\n return <URIContext.Provider value={contextValue}>{children}</URIContext.Provider>\n}\n\nconst useURIContext = (): URIContextValue => {\n const context = useContext(URIContext)\n if (context === undefined) {\n throw new Error('useURIContext must be used within a URIProvider')\n }\n return context\n}\n\nexport { URIProvider, useURIContext }\n"],"names":["URL_PARAM_ID","URIContext","createContext","URIProvider","children","pathname","uri","setUri","useState","scopes","useEffect","scope","uriType","entity","settings","parseUri","setEntityUri","useCallback","projectName","folderPath","taskName","productName","versionName","buildEntityUri","resolveUris","useResolveUrisMutation","getUriEntities","entities","error","contextValue","useURIContext","context","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,MAAMA,KAAe,OA+CtBC,IAAaC,EAA2C,MAAS,GAEjEC,KAAoC,CAAC,EAAE,UAAAC,QAAe;AAC1D,QAAMC,IAAW,SAAS,UAEpB,CAACC,GAAKC,CAAM,IAAIC,EAAS,EAAE,GAG3BC,IAAS,CAAC,YAAY,YAAY,iBAAiB;AACzD,EAAAC,EAAU,MAAM;AAGd,IAFsBD,EAAO,KAAK,CAACE,MAAUN,EAAS,WAAW,IAAIM,CAAK,EAAE,CAAC,KAG3EJ,EAAO,EAAE;AAAA,EAEb,GAAG,CAACF,GAAUE,CAAM,CAAC;AAErB,QAAM,EAAE,MAAMK,GAAS,QAAAC,GAAQ,UAAAC,EAAA,IAAaC,EAAST,CAAG,GAGlDU,IAAeC;AAAA,IACnB,CAAC,EAAE,aAAAC,GAAa,YAAAC,GAAY,UAAAC,GAAU,aAAAC,GAAa,aAAAC,QAAkB;AACnE,YAAMhB,IAAMiB,EAAe,EAAE,aAAAL,GAAa,YAAAC,GAAY,UAAAC,GAAU,aAAAC,GAAa,aAAAC,GAAa;AAC1F,MAAAf,EAAOD,CAAG;AAAA,IACZ;AAAA,IACA,CAACC,CAAM;AAAA,EAAA,GAIH,CAACiB,CAAW,IAAIC,EAAA,GAChBC,IAAiBT,EAAY,YAAY;AAC7C,QAAIL,MAAY,YAAY,CAACN,UAAY,CAAA;AAEzC,QAAI;AACF,YAAMqB,IAAW,MAAMH,EAAY,EAAE,qBAAqB,EAAE,MAAM,CAAClB,CAAG,EAAA,GAAK,EAAE,OAAA;AAG7E,qBAAQ,IAAI,6BAA6BqB,CAAQ,GAE1CA;AAAA,IACT,SAASC,GAAO;AACd,qBAAQ,KAAK,0BAA0BA,CAAK,GACrC,CAAA;AAAA,IACT;AAAA,EACF,GAAG,CAACJ,GAAalB,GAAKM,CAAO,CAAC,GAExBiB,IAAgC;AAAA,IACpC,KAAAvB;AAAA,IACA,SAAAM;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,QAAAP;AAAA,IACA,cAAAS;AAAA,IACA,gBAAAU;AAAA,EAAA;AAGF,+BAAQzB,EAAW,UAAX,EAAoB,OAAO4B,GAAe,UAAAzB,GAAS;AAC7D,GAEM0B,KAAgB,MAAuB;AAC3C,QAAMC,IAAUC,EAAW/B,CAAU;AACrC,MAAI8B,MAAY;AACd,UAAM,IAAI,MAAM,iDAAiD;AAEnE,SAAOA;AACT;"}
1
+ {"version":3,"file":"UriContext.es.js","sources":["../../../../src/context/UriContext.tsx"],"sourcesContent":["// The URI is a unique AYON ID for entities and settings paths\n// Entity: ayon+entity://project_name/shots/000_logo/000_0010?task=lighting\n// Settings: ayon+settings://maya/ext_mapping/0/name\n\n// Components can update the URI when changing context, like opening the details panel or navigating to a settings page\n// Components state should not be directly synced to the URI, they should only read the URI on mount to set initial state\n\nimport { createContext, useContext, useEffect, ReactNode, FC, useCallback, useState } from 'react'\nimport { buildEntityUri, parseUri } from '../util'\nimport { ResolvedUriModel, useResolveUrisMutation } from '@shared/api'\n\nexport const URL_PARAM_ID = 'uri'\n\ntype SetEntityUriFunc = ({\n projectName,\n folderPath,\n taskName,\n productName,\n versionName,\n}: {\n projectName: string\n folderPath: string\n taskName?: string\n productName?: string\n versionName?: string\n}) => void\n\nexport type EntityUri = {\n projectName: string\n entityType: 'task' | 'folder' | 'product' | 'version'\n folderPath: string\n taskName?: string\n productName?: string\n versionName?: string\n}\n\nexport type SettingsUri = {\n addonName: string\n addonVersion: string\n settingsPath: string[]\n site: string | undefined\n project: string | undefined\n}\n\ninterface URIContextValue {\n uri: string\n uriType: 'settings' | 'entity' | undefined\n entity?: EntityUri\n settings?: SettingsUri\n setUri: (uri: string) => void\n setEntityUri: SetEntityUriFunc\n getUriEntities: () => Promise<ResolvedUriModel[]>\n}\n\ninterface URIProviderProps {\n children: ReactNode\n}\n\nconst URIContext = createContext<URIContextValue | undefined>(undefined)\n\nconst URIProvider: FC<URIProviderProps> = ({ children }) => {\n const pathname = location.pathname\n\n const [uri, setUri] = useState('')\n\n // when the scope is outside settings and project, set uri to null\n const scopes = ['projects', 'settings', 'dashboard/tasks']\n useEffect(() => {\n const matchingScope = scopes.some((scope) => pathname.startsWith(`/${scope}`))\n\n if (!matchingScope) {\n setUri('')\n }\n }, [pathname, setUri])\n\n const { type: uriType, entity, settings } = parseUri(uri)\n\n // helper function to set an entity URI\n const setEntityUri = useCallback<SetEntityUriFunc>(\n ({ projectName, folderPath, taskName, productName, versionName }) => {\n const uri = buildEntityUri({ projectName, folderPath, taskName, productName, versionName })\n setUri(uri)\n },\n [setUri],\n )\n\n // helper function to get entity ids from URI so that we can actually do something with it\n const [resolveUris] = useResolveUrisMutation()\n const getUriEntities = useCallback(async () => {\n if (uriType !== 'entity' || !uri) return []\n\n try {\n const entities = await resolveUris({ resolveRequestModel: { uris: [uri] } }).unwrap()\n // we could set more detailed entity info here if needed\n // for now we just log it\n console.log('Resolved entity from URI:', entities)\n\n return entities\n } catch (error) {\n console.warn('Failed to resolve URI:', error)\n return []\n }\n }, [resolveUris, uri, uriType])\n\n const contextValue: URIContextValue = {\n uri,\n uriType,\n entity,\n settings,\n setUri,\n setEntityUri,\n getUriEntities,\n }\n\n return <URIContext.Provider value={contextValue}>{children}</URIContext.Provider>\n}\n\nconst useURIContext = (): URIContextValue => {\n const context = useContext(URIContext)\n if (context === undefined) {\n throw new Error('useURIContext must be used within a URIProvider')\n }\n return context\n}\n\nexport { URIProvider, useURIContext }\n"],"names":["URL_PARAM_ID","URIContext","createContext","URIProvider","children","pathname","uri","setUri","useState","scopes","useEffect","scope","uriType","entity","settings","parseUri","setEntityUri","useCallback","projectName","folderPath","taskName","productName","versionName","buildEntityUri","resolveUris","useResolveUrisMutation","getUriEntities","entities","error","contextValue","useURIContext","context","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,MAAMA,KAAe,OA+CtBC,IAAaC,EAA2C,MAAS,GAEjEC,KAAoC,CAAC,EAAE,UAAAC,QAAe;AAC1D,QAAMC,IAAW,SAAS,UAEpB,CAACC,GAAKC,CAAM,IAAIC,EAAS,EAAE,GAG3BC,IAAS,CAAC,YAAY,YAAY,iBAAiB;AACzD,EAAAC,EAAU,MAAM;AAGd,IAFsBD,EAAO,KAAK,CAACE,MAAUN,EAAS,WAAW,IAAIM,CAAK,EAAE,CAAC,KAG3EJ,EAAO,EAAE;AAAA,EAEb,GAAG,CAACF,GAAUE,CAAM,CAAC;AAErB,QAAM,EAAE,MAAMK,GAAS,QAAAC,GAAQ,UAAAC,EAAA,IAAaC,EAAST,CAAG,GAGlDU,IAAeC;AAAA,IACnB,CAAC,EAAE,aAAAC,GAAa,YAAAC,GAAY,UAAAC,GAAU,aAAAC,GAAa,aAAAC,QAAkB;AACnE,YAAMhB,IAAMiB,EAAe,EAAE,aAAAL,GAAa,YAAAC,GAAY,UAAAC,GAAU,aAAAC,GAAa,aAAAC,GAAa;AAC1F,MAAAf,EAAOD,CAAG;AAAA,IACZ;AAAA,IACA,CAACC,CAAM;AAAA,EAAA,GAIH,CAACiB,CAAW,IAAIC,EAAA,GAChBC,IAAiBT,EAAY,YAAY;AAC7C,QAAIL,MAAY,YAAY,CAACN,UAAY,CAAA;AAEzC,QAAI;AACF,YAAMqB,IAAW,MAAMH,EAAY,EAAE,qBAAqB,EAAE,MAAM,CAAClB,CAAG,EAAA,GAAK,EAAE,OAAA;AAG7E,qBAAQ,IAAI,6BAA6BqB,CAAQ,GAE1CA;AAAA,IACT,SAASC,GAAO;AACd,qBAAQ,KAAK,0BAA0BA,CAAK,GACrC,CAAA;AAAA,IACT;AAAA,EACF,GAAG,CAACJ,GAAalB,GAAKM,CAAO,CAAC,GAExBiB,IAAgC;AAAA,IACpC,KAAAvB;AAAA,IACA,SAAAM;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,QAAAP;AAAA,IACA,cAAAS;AAAA,IACA,gBAAAU;AAAA,EAAA;AAGF,+BAAQzB,EAAW,UAAX,EAAoB,OAAO4B,GAAe,UAAAzB,GAAS;AAC7D,GAEM0B,KAAgB,MAAuB;AAC3C,QAAMC,IAAUC,EAAW/B,CAAU;AACrC,MAAI8B,MAAY;AACd,UAAM,IAAI,MAAM,iDAAiD;AAEnE,SAAOA;AACT;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("../../../_virtual/jsx-runtime.cjs.js"),e=require("react"),w=require("react-toastify"),x=require("lodash");require("uuid");const l=require("../util/pubsub.cjs.js"),C=require("../../../_virtual/index.cjs.js"),$=require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/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/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");const A=require("../api/queries/system/getSystem.cjs.js");require("../api/queries/tasks/updateTasks.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("../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("@ynput/ayon-react-components");require("../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../components/AccessUser/AccessUser.cjs.js");require("clsx");require("../components/AttributeEditor/components/MinMaxField.cjs.js");require("react-dom");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../components/EnumEditor/EnumEditor.styled.cjs.js");require("../components/Badge/Badge.cjs.js");require("../components/Chips/Chips.cjs.js");require("date-fns");require("../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../components/LinksManager/CellEditingDialog.cjs.js");require("../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../components/EarlyPreview/EarlyPreview.cjs.js");require("../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../containers/ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../containers/Feed/context/FeedContext.cjs.js");require("../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("./RemoteModulesContext.cjs.js");require("./DetailsPanelContext.cjs.js");require("./SubtasksModulesContext.cjs.js");require("./ThumbnailUploaderContext.cjs.js");require("./SettingsPanelContext.cjs.js");require("./pip/PiPProvider.cjs.js");require("./pip/PiPWrapper.cjs.js");require("./AddonProjectContext.cjs.js");require("./AddonContext.cjs.js");require("./PowerpackContext.cjs.js");require("./MoveEntityContext.cjs.js");require("./MenuContext.cjs.js");require("./GlobalContext.cjs.js");require("./ProjectContext.cjs.js");require("./ProjectFoldersContext.cjs.js");require("./UriContext.cjs.js");require("../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../containers/Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../containers/Feed/components/CommentInput/CommentInput.cjs.js");require("../containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../containers/Feed/components/ActivityDate.cjs.js");require("../containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../containers/Feed/Feed.styled.cjs.js");require("../containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../components/LinksManager/LinksManager.styled.cjs.js");require("../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../containers/ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("short-uuid");require("../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../_virtual/runtime.cjs.js");require("../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../containers/SimpleTable/SimpleTable.styled.cjs.js");require("@tanstack/match-sorter-utils");require("../containers/SimpleTable/context/SimpleTableContext.cjs.js");require("../containers/SimpleTable/SimpleTableRowTemplate.cjs.js");require("../containers/Slicer/hooks/useTableDataBySlice.cjs.js");require("../containers/Slicer/components/SlicerSearch.cjs.js");require("../containers/Slicer/context/SlicerContext.cjs.js");require("../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../components/PlayableIcon/PlayableIcon.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../containers/Actions/Actions.styled.cjs.js");require("../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../containers/Actions/ActionIcon.cjs.js");require("../containers/Views/context/ViewsContext.cjs.js");require("../containers/Views/Views.styled.cjs.js");require("../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../containers/Views/ViewsMenu/ViewsMenu.cjs.js");require("../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../components/EntityPath/EntityPath.styled.cjs.js");require("../components/EntityPath/SegmentProvider.cjs.js");require("../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../components/Feedback/FeedbackContext.cjs.js");require("../components/Feedback/SupportBubble.cjs.js");require("../components/FileThumbnail/FileThumbnail.cjs.js");require("../components/LegacyBadge/LegacyBadge.cjs.js");require("../components/Powerpack/PowerpackButton.cjs.js");require("../components/Powerpack/PricingLink.cjs.js");require("../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../components/Powerpack/CTAButton.cjs.js");require("../components/Powerpack/RequiredAddonVersion.cjs.js");require("../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../components/SizeSlider/SizeSlider.cjs.js");const J=require("../components/RefreshToast/RefreshToast.cjs.js");require("../components/ReviewableCard/ReviewableCard.cjs.js");require("../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../components/SearchFilter/filterDates.cjs.js");require("../components/SettingsPanel/SettingsPanel.cjs.js");require("../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../components/SortingSetting/SortingSetting.styled.cjs.js");require("../components/StyledLink/StyledLink.cjs.js");require("../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../components/Thumbnail/Thumbnail.styled.cjs.js");require("../components/Thumbnail/StackedThumbnails.cjs.js");require("../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../components/Watchers/Watchers.cjs.js");require("../components/Menu/Menu.styled.cjs.js");require("../components/Menu/MenuItem.cjs.js");const d=e.createContext(void 0),N=window.location.protocol.replace("http","ws"),V=`${N}//${window.location.host}/ws`,W=({children:q,userName:k,projectName:f,dispatch:v})=>{const[S,o]=e.useState(!1),[t,m]=e.useState([]),[R]=A.useLazyGetSiteInfoQuery(),y={shouldReconnect:()=>!k||!localStorage.getItem("accessToken")?!1:(R({full:!1}).unwrap(),!0)},{sendMessage:T,readyState:n,getWebSocket:c}=C.default(V,y),g=()=>{T(JSON.stringify({topic:"auth",token:localStorage.getItem("accessToken"),subscribe:t,project:f}))};e.useEffect(()=>{console.debug("Topics changed",t),g()},[t,f]);const E=x.debounce(r=>{x.isEqual(t,r)||(console.log("WS: Subscriptions changed"),m(r))},200);l.setOnSubscriptionsChange(r=>E(r));const[p,a]=e.useState(!1),[O,j]=e.useState(!1);e.useEffect(()=>(p&&(O||(w.toast.warning(b.jsxRuntimeExports.jsx(J.RefreshToast,{}),{autoClose:!1,closeButton:!1}),j(!0))),()=>{a(!1)}),[p,a]);const u=e.useRef({callCount:0,lastCall:Date.now()}),I=e.useCallback(r=>{if(u.current.callCount>1e3)return a(!0),console.log("Overload: Over 1000 messages per second. Ignoring subsequent messages.");let i;try{i=JSON.parse(r.data)}catch(M){console.error("Failed to parse websocket message:",M,r.data);return}const{topic:s,sender:P,summary:D}=i||{};if(s==="heartbeat"||(s==="server.restart_requested"&&o(!0),P===window.senderId))return;const h=Date.now();h-u.current.lastCall<1e3?u.current.callCount+=1:u.current.callCount=0,u.current.lastCall=h,s==="shout"&&i?.summary?.text&&w.toast.info(D.text),console.log("Event RX",i),l.publish(s,i)},[o]);return e.useEffect(()=>{n===C.distExports.ReadyState.OPEN&&(S&&(o(!1),v($.api.util.resetApiState())),c().onmessage=I,g(),l.publish("client.connected",{topic:"client.connected"}))},[n,c]),b.jsxRuntimeExports.jsx(d.Provider,{value:{getWebSocket:c,readyState:n,serverRestartingVisible:S},children:q})},z=()=>{const q=e.useContext(d);if(q===void 0)throw new Error("useSocketContext must be used within a SocketProvider");return q};exports.SocketContext=d;exports.SocketProvider=W;exports.useSocketContext=z;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("../../../_virtual/jsx-runtime.cjs.js"),e=require("react"),w=require("react-toastify"),x=require("lodash");require("uuid");const l=require("../util/pubsub.cjs.js"),C=require("../../../_virtual/index.cjs.js"),$=require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/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/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");const A=require("../api/queries/system/getSystem.cjs.js");require("../api/queries/tasks/getTasks.cjs.js");require("../api/queries/tasks/updateTasks.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("../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("@ynput/ayon-react-components");require("../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../components/AccessUser/AccessUser.cjs.js");require("clsx");require("../components/AttributeEditor/components/MinMaxField.cjs.js");require("react-dom");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../components/EnumEditor/EnumEditor.styled.cjs.js");require("../components/Badge/Badge.cjs.js");require("../components/Chips/Chips.cjs.js");require("date-fns");require("../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../components/LinksManager/CellEditingDialog.cjs.js");require("../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../components/EarlyPreview/EarlyPreview.cjs.js");require("../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../containers/ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../containers/Feed/context/FeedContext.cjs.js");require("../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("./RemoteModulesContext.cjs.js");require("./DetailsPanelContext.cjs.js");require("./SubtasksModulesContext.cjs.js");require("./ThumbnailUploaderContext.cjs.js");require("./SettingsPanelContext.cjs.js");require("./pip/PiPProvider.cjs.js");require("./pip/PiPWrapper.cjs.js");require("./AddonProjectContext.cjs.js");require("./AddonContext.cjs.js");require("./PowerpackContext.cjs.js");require("./MoveEntityContext.cjs.js");require("./MenuContext.cjs.js");require("./GlobalContext.cjs.js");require("./ProjectContext.cjs.js");require("./ProjectFoldersContext.cjs.js");require("./UriContext.cjs.js");require("../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../containers/Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../containers/Feed/components/CommentInput/CommentInput.cjs.js");require("../containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../containers/Feed/components/ActivityDate.cjs.js");require("../containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../containers/Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../containers/Feed/Feed.styled.cjs.js");require("../containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../components/LinksManager/LinksManager.styled.cjs.js");require("../containers/ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../containers/ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../containers/ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("short-uuid");require("../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../_virtual/runtime.cjs.js");require("../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../containers/SimpleTable/SimpleTable.styled.cjs.js");require("@tanstack/match-sorter-utils");require("../containers/SimpleTable/context/SimpleTableContext.cjs.js");require("../containers/SimpleTable/SimpleTableRowTemplate.cjs.js");require("../containers/Slicer/hooks/useTableDataBySlice.cjs.js");require("../containers/Slicer/components/SlicerSearch.cjs.js");require("../containers/Slicer/context/SlicerContext.cjs.js");require("../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../components/PlayableIcon/PlayableIcon.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../containers/Actions/Actions.styled.cjs.js");require("../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../containers/Actions/ActionIcon.cjs.js");require("../containers/Views/context/ViewsContext.cjs.js");require("../containers/Views/Views.styled.cjs.js");require("../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../containers/Views/ViewsMenu/ViewsMenu.cjs.js");require("../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../components/EntityPath/EntityPath.styled.cjs.js");require("../components/EntityPath/SegmentProvider.cjs.js");require("../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../components/Feedback/FeedbackContext.cjs.js");require("../components/Feedback/SupportBubble.cjs.js");require("../components/FileThumbnail/FileThumbnail.cjs.js");require("../components/LegacyBadge/LegacyBadge.cjs.js");require("../components/Powerpack/PowerpackButton.cjs.js");require("../components/Powerpack/PricingLink.cjs.js");require("../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../components/Powerpack/CTAButton.cjs.js");require("../components/Powerpack/RequiredAddonVersion.cjs.js");require("../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../components/SizeSlider/SizeSlider.cjs.js");const J=require("../components/RefreshToast/RefreshToast.cjs.js");require("../components/ReviewableCard/ReviewableCard.cjs.js");require("../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../components/SearchFilter/filterDates.cjs.js");require("../components/SettingsPanel/SettingsPanel.cjs.js");require("../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../components/SortingSetting/SortingSetting.styled.cjs.js");require("../components/StyledLink/StyledLink.cjs.js");require("../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../components/Thumbnail/Thumbnail.styled.cjs.js");require("../components/Thumbnail/StackedThumbnails.cjs.js");require("../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../components/Watchers/Watchers.cjs.js");require("../components/Menu/Menu.styled.cjs.js");require("../components/Menu/MenuItem.cjs.js");require("../components/ReviewablesSelector/ReviewablesSelector.styled.cjs.js");const d=e.createContext(void 0),N=window.location.protocol.replace("http","ws"),V=`${N}//${window.location.host}/ws`,W=({children:q,userName:k,projectName:f,dispatch:v})=>{const[S,o]=e.useState(!1),[t,m]=e.useState([]),[R]=A.useLazyGetSiteInfoQuery(),y={shouldReconnect:()=>!k||!localStorage.getItem("accessToken")?!1:(R({full:!1}).unwrap(),!0)},{sendMessage:T,readyState:n,getWebSocket:c}=C.default(V,y),g=()=>{T(JSON.stringify({topic:"auth",token:localStorage.getItem("accessToken"),subscribe:t,project:f}))};e.useEffect(()=>{console.debug("Topics changed",t),g()},[t,f]);const E=x.debounce(r=>{x.isEqual(t,r)||(console.log("WS: Subscriptions changed"),m(r))},200);l.setOnSubscriptionsChange(r=>E(r));const[p,a]=e.useState(!1),[O,j]=e.useState(!1);e.useEffect(()=>(p&&(O||(w.toast.warning(b.jsxRuntimeExports.jsx(J.RefreshToast,{}),{autoClose:!1,closeButton:!1}),j(!0))),()=>{a(!1)}),[p,a]);const u=e.useRef({callCount:0,lastCall:Date.now()}),I=e.useCallback(r=>{if(u.current.callCount>1e3)return a(!0),console.log("Overload: Over 1000 messages per second. Ignoring subsequent messages.");let i;try{i=JSON.parse(r.data)}catch(M){console.error("Failed to parse websocket message:",M,r.data);return}const{topic:s,sender:P,summary:D}=i||{};if(s==="heartbeat"||(s==="server.restart_requested"&&o(!0),P===window.senderId))return;const h=Date.now();h-u.current.lastCall<1e3?u.current.callCount+=1:u.current.callCount=0,u.current.lastCall=h,s==="shout"&&i?.summary?.text&&w.toast.info(D.text),console.log("Event RX",i),l.publish(s,i)},[o]);return e.useEffect(()=>{n===C.distExports.ReadyState.OPEN&&(S&&(o(!1),v($.api.util.resetApiState())),c().onmessage=I,g(),l.publish("client.connected",{topic:"client.connected"}))},[n,c]),b.jsxRuntimeExports.jsx(d.Provider,{value:{getWebSocket:c,readyState:n,serverRestartingVisible:S},children:q})},z=()=>{const q=e.useContext(d);if(q===void 0)throw new Error("useSocketContext must be used within a SocketProvider");return q};exports.SocketContext=d;exports.SocketProvider=W;exports.useSocketContext=z;
2
2
  //# sourceMappingURL=WebsocketContext.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WebsocketContext.cjs.js","sources":["../../../../src/context/WebsocketContext.tsx"],"sourcesContent":["import { useEffect, useState, createContext, useCallback, useRef, useContext } from 'react'\nimport { toast } from 'react-toastify'\nimport { PubSub } from '@shared/util'\nimport useWebSocket, { ReadyState } from 'react-use-websocket'\nimport { debounce, isEqual } from 'lodash'\nimport api from '@shared/api'\nimport { RefreshToast } from '@shared/components'\nimport { useLazyGetSiteInfoQuery } from '@shared/api'\nimport { WebSocketLike } from 'react-use-websocket/dist/lib/types'\n\nexport type WebsocketContextType = {\n getWebSocket: () => WebSocketLike | null\n readyState: ReadyState\n serverRestartingVisible: boolean\n}\n\nexport const SocketContext = createContext<WebsocketContextType | undefined>(undefined)\n\nconst proto = window.location.protocol.replace('http', 'ws')\nconst wsAddress = `${proto}//${window.location.host}/ws`\n\n// define global window senderId type\ndeclare global {\n interface Window {\n senderId: string\n }\n}\n\nexport type SocketProviderProps = {\n children: React.ReactNode\n userName?: string\n projectName?: string\n dispatch: any\n}\n\nexport const SocketProvider = ({\n children,\n userName,\n projectName,\n dispatch,\n}: SocketProviderProps) => {\n // get user logged in\n const [serverRestartingVisible, setServerRestartingVisible] = useState(false)\n const [topics, setTopics] = useState([])\n const [getInfo] = useLazyGetSiteInfoQuery()\n\n const wsOpts = {\n shouldReconnect: () => {\n if (!userName) return false\n // check if there is a token\n const accessToken = localStorage.getItem('accessToken')\n if (!accessToken) return false\n\n // test if the token is valid\n // if it's not then this will automatically log out the user\n getInfo({ full: false }).unwrap()\n\n return true\n },\n }\n\n const { sendMessage, readyState, getWebSocket } = useWebSocket(wsAddress, wsOpts)\n\n const subscribe = () => {\n sendMessage(\n JSON.stringify({\n topic: 'auth',\n token: localStorage.getItem('accessToken'),\n subscribe: topics,\n project: projectName,\n }),\n )\n }\n\n useEffect(() => {\n console.debug('Topics changed', topics)\n subscribe()\n }, [topics, projectName])\n\n const updateTopicsDebounce = debounce((newTopics) => {\n if (isEqual(topics, newTopics)) return\n console.log('WS: Subscriptions changed')\n setTopics(newTopics)\n }, 200)\n\n PubSub.setOnSubscriptionsChange((newTopics: string[]) => updateTopicsDebounce(newTopics))\n\n const [overloaded, setOverloaded] = useState(false)\n const [toastShown, setToastShown] = useState(false)\n\n // when overloaded is true, activate toast\n useEffect(() => {\n if (overloaded)\n if (!toastShown) {\n toast.warning(<RefreshToast />, {\n autoClose: false,\n closeButton: false,\n })\n setToastShown(true)\n }\n\n return () => {\n setOverloaded(false)\n }\n }, [overloaded, setOverloaded])\n\n // onMessage is a function that is called when a message comes in from the websocket\n // it is a closure that keeps track of the number of calls and the last call time\n // Using useRef to persist the closure state across renders\n const messageStatsRef = useRef({ callCount: 0, lastCall: Date.now() })\n\n const onMessage = useCallback(\n (message: any) => {\n // If the function is called more than 100 times per second, return early.\n const threshold = 1000\n if (messageStatsRef.current.callCount > threshold) {\n setOverloaded(true)\n return console.log(\n `Overload: Over ${threshold} messages per second. Ignoring subsequent messages.`,\n )\n }\n\n let data\n try {\n data = JSON.parse(message.data)\n } catch (error) {\n console.error('Failed to parse websocket message:', error, message.data)\n return\n }\n\n const { topic, sender, summary } = data || {}\n if (topic === 'heartbeat') return\n\n if (topic === 'server.restart_requested') setServerRestartingVisible(true)\n\n if (sender === window.senderId) {\n return // my own message. ignore\n }\n\n const now = Date.now()\n if (now - messageStatsRef.current.lastCall < 1000) {\n messageStatsRef.current.callCount += 1\n } else {\n messageStatsRef.current.callCount = 0\n }\n\n messageStatsRef.current.lastCall = now\n\n if (topic === 'shout' && data?.summary?.text) toast.info(summary.text)\n\n console.log('Event RX', data)\n PubSub.publish(topic, data)\n },\n [setServerRestartingVisible],\n )\n\n useEffect(() => {\n if (readyState === ReadyState.OPEN) {\n if (serverRestartingVisible) {\n setServerRestartingVisible(false)\n // clear ayonApi\n dispatch(api.util.resetApiState())\n }\n // @ts-ignore\n getWebSocket().onmessage = onMessage\n subscribe()\n // Dispatch a fake event to the frontend components\n // in case they depend on the event stream and may\n // miss some messages - this should force reloading\n // events using graphql\n PubSub.publish('client.connected', {\n topic: 'client.connected',\n })\n }\n }, [readyState, getWebSocket])\n\n return (\n <SocketContext.Provider\n value={{\n getWebSocket,\n readyState,\n serverRestartingVisible,\n }}\n >\n {children}\n </SocketContext.Provider>\n )\n}\n\nexport const useSocketContext = () => {\n const context = useContext(SocketContext)\n if (context === undefined) {\n throw new Error('useSocketContext must be used within a SocketProvider')\n }\n return context\n}\n"],"names":["SocketContext","createContext","proto","wsAddress","SocketProvider","children","userName","projectName","dispatch","serverRestartingVisible","setServerRestartingVisible","useState","topics","setTopics","getInfo","useLazyGetSiteInfoQuery","wsOpts","sendMessage","readyState","getWebSocket","useWebSocket","subscribe","useEffect","updateTopicsDebounce","debounce","newTopics","isEqual","PubSub","overloaded","setOverloaded","toastShown","setToastShown","toast","jsx","RefreshToast","messageStatsRef","useRef","onMessage","useCallback","message","data","error","topic","sender","summary","now","ReadyState","api","useSocketContext","context","useContext"],"mappings":"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"}
1
+ {"version":3,"file":"WebsocketContext.cjs.js","sources":["../../../../src/context/WebsocketContext.tsx"],"sourcesContent":["import { useEffect, useState, createContext, useCallback, useRef, useContext } from 'react'\nimport { toast } from 'react-toastify'\nimport { PubSub } from '@shared/util'\nimport useWebSocket, { ReadyState } from 'react-use-websocket'\nimport { debounce, isEqual } from 'lodash'\nimport api from '@shared/api'\nimport { RefreshToast } from '@shared/components'\nimport { useLazyGetSiteInfoQuery } from '@shared/api'\nimport { WebSocketLike } from 'react-use-websocket/dist/lib/types'\n\nexport type WebsocketContextType = {\n getWebSocket: () => WebSocketLike | null\n readyState: ReadyState\n serverRestartingVisible: boolean\n}\n\nexport const SocketContext = createContext<WebsocketContextType | undefined>(undefined)\n\nconst proto = window.location.protocol.replace('http', 'ws')\nconst wsAddress = `${proto}//${window.location.host}/ws`\n\n// define global window senderId type\ndeclare global {\n interface Window {\n senderId: string\n }\n}\n\nexport type SocketProviderProps = {\n children: React.ReactNode\n userName?: string\n projectName?: string\n dispatch: any\n}\n\nexport const SocketProvider = ({\n children,\n userName,\n projectName,\n dispatch,\n}: SocketProviderProps) => {\n // get user logged in\n const [serverRestartingVisible, setServerRestartingVisible] = useState(false)\n const [topics, setTopics] = useState([])\n const [getInfo] = useLazyGetSiteInfoQuery()\n\n const wsOpts = {\n shouldReconnect: () => {\n if (!userName) return false\n // check if there is a token\n const accessToken = localStorage.getItem('accessToken')\n if (!accessToken) return false\n\n // test if the token is valid\n // if it's not then this will automatically log out the user\n getInfo({ full: false }).unwrap()\n\n return true\n },\n }\n\n const { sendMessage, readyState, getWebSocket } = useWebSocket(wsAddress, wsOpts)\n\n const subscribe = () => {\n sendMessage(\n JSON.stringify({\n topic: 'auth',\n token: localStorage.getItem('accessToken'),\n subscribe: topics,\n project: projectName,\n }),\n )\n }\n\n useEffect(() => {\n console.debug('Topics changed', topics)\n subscribe()\n }, [topics, projectName])\n\n const updateTopicsDebounce = debounce((newTopics) => {\n if (isEqual(topics, newTopics)) return\n console.log('WS: Subscriptions changed')\n setTopics(newTopics)\n }, 200)\n\n PubSub.setOnSubscriptionsChange((newTopics: string[]) => updateTopicsDebounce(newTopics))\n\n const [overloaded, setOverloaded] = useState(false)\n const [toastShown, setToastShown] = useState(false)\n\n // when overloaded is true, activate toast\n useEffect(() => {\n if (overloaded)\n if (!toastShown) {\n toast.warning(<RefreshToast />, {\n autoClose: false,\n closeButton: false,\n })\n setToastShown(true)\n }\n\n return () => {\n setOverloaded(false)\n }\n }, [overloaded, setOverloaded])\n\n // onMessage is a function that is called when a message comes in from the websocket\n // it is a closure that keeps track of the number of calls and the last call time\n // Using useRef to persist the closure state across renders\n const messageStatsRef = useRef({ callCount: 0, lastCall: Date.now() })\n\n const onMessage = useCallback(\n (message: any) => {\n // If the function is called more than 100 times per second, return early.\n const threshold = 1000\n if (messageStatsRef.current.callCount > threshold) {\n setOverloaded(true)\n return console.log(\n `Overload: Over ${threshold} messages per second. Ignoring subsequent messages.`,\n )\n }\n\n let data\n try {\n data = JSON.parse(message.data)\n } catch (error) {\n console.error('Failed to parse websocket message:', error, message.data)\n return\n }\n\n const { topic, sender, summary } = data || {}\n if (topic === 'heartbeat') return\n\n if (topic === 'server.restart_requested') setServerRestartingVisible(true)\n\n if (sender === window.senderId) {\n return // my own message. ignore\n }\n\n const now = Date.now()\n if (now - messageStatsRef.current.lastCall < 1000) {\n messageStatsRef.current.callCount += 1\n } else {\n messageStatsRef.current.callCount = 0\n }\n\n messageStatsRef.current.lastCall = now\n\n if (topic === 'shout' && data?.summary?.text) toast.info(summary.text)\n\n console.log('Event RX', data)\n PubSub.publish(topic, data)\n },\n [setServerRestartingVisible],\n )\n\n useEffect(() => {\n if (readyState === ReadyState.OPEN) {\n if (serverRestartingVisible) {\n setServerRestartingVisible(false)\n // clear ayonApi\n dispatch(api.util.resetApiState())\n }\n // @ts-ignore\n getWebSocket().onmessage = onMessage\n subscribe()\n // Dispatch a fake event to the frontend components\n // in case they depend on the event stream and may\n // miss some messages - this should force reloading\n // events using graphql\n PubSub.publish('client.connected', {\n topic: 'client.connected',\n })\n }\n }, [readyState, getWebSocket])\n\n return (\n <SocketContext.Provider\n value={{\n getWebSocket,\n readyState,\n serverRestartingVisible,\n }}\n >\n {children}\n </SocketContext.Provider>\n )\n}\n\nexport const useSocketContext = () => {\n const context = useContext(SocketContext)\n if (context === undefined) {\n throw new Error('useSocketContext must be used within a SocketProvider')\n }\n return context\n}\n"],"names":["SocketContext","createContext","proto","wsAddress","SocketProvider","children","userName","projectName","dispatch","serverRestartingVisible","setServerRestartingVisible","useState","topics","setTopics","getInfo","useLazyGetSiteInfoQuery","wsOpts","sendMessage","readyState","getWebSocket","useWebSocket","subscribe","useEffect","updateTopicsDebounce","debounce","newTopics","isEqual","PubSub","overloaded","setOverloaded","toastShown","setToastShown","toast","jsx","RefreshToast","messageStatsRef","useRef","onMessage","useCallback","message","data","error","topic","sender","summary","now","ReadyState","api","useSocketContext","context","useContext"],"mappings":"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"}
@@ -83,6 +83,7 @@ import "../api/queries/review/getReview.es.js";
83
83
  import "../api/queries/review/updateReview.es.js";
84
84
  import "../api/queries/share/share.es.js";
85
85
  import { useLazyGetSiteInfoQuery as F } from "../api/queries/system/getSystem.es.js";
86
+ import "../api/queries/tasks/getTasks.es.js";
86
87
  import "../api/queries/tasks/updateTasks.es.js";
87
88
  import "../api/queries/userDashboard/getUserDashboard.es.js";
88
89
  import "../api/queries/users/getUsers.es.js";
@@ -260,7 +261,8 @@ import "../components/VersionUploader/context/VersionUploadContext.es.js";
260
261
  import "../components/Watchers/Watchers.es.js";
261
262
  import "../components/Menu/Menu.styled.es.js";
262
263
  import "../components/Menu/MenuItem.es.js";
263
- const C = W(void 0), L = window.location.protocol.replace("http", "ws"), Q = `${L}//${window.location.host}/ws`, zp = ({
264
+ import "../components/ReviewablesSelector/ReviewablesSelector.styled.es.js";
265
+ const C = W(void 0), L = window.location.protocol.replace("http", "ws"), Q = `${L}//${window.location.host}/ws`, Fp = ({
264
266
  children: i,
265
267
  userName: k,
266
268
  projectName: f,
@@ -328,7 +330,7 @@ const C = W(void 0), L = window.location.protocol.replace("http", "ws"), Q = `${
328
330
  children: i
329
331
  }
330
332
  );
331
- }, Bp = () => {
333
+ }, Gp = () => {
332
334
  const i = J(C);
333
335
  if (i === void 0)
334
336
  throw new Error("useSocketContext must be used within a SocketProvider");
@@ -336,7 +338,7 @@ const C = W(void 0), L = window.location.protocol.replace("http", "ws"), Q = `${
336
338
  };
337
339
  export {
338
340
  C as SocketContext,
339
- zp as SocketProvider,
340
- Bp as useSocketContext
341
+ Fp as SocketProvider,
342
+ Gp as useSocketContext
341
343
  };
342
344
  //# sourceMappingURL=WebsocketContext.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WebsocketContext.es.js","sources":["../../../../src/context/WebsocketContext.tsx"],"sourcesContent":["import { useEffect, useState, createContext, useCallback, useRef, useContext } from 'react'\nimport { toast } from 'react-toastify'\nimport { PubSub } from '@shared/util'\nimport useWebSocket, { ReadyState } from 'react-use-websocket'\nimport { debounce, isEqual } from 'lodash'\nimport api from '@shared/api'\nimport { RefreshToast } from '@shared/components'\nimport { useLazyGetSiteInfoQuery } from '@shared/api'\nimport { WebSocketLike } from 'react-use-websocket/dist/lib/types'\n\nexport type WebsocketContextType = {\n getWebSocket: () => WebSocketLike | null\n readyState: ReadyState\n serverRestartingVisible: boolean\n}\n\nexport const SocketContext = createContext<WebsocketContextType | undefined>(undefined)\n\nconst proto = window.location.protocol.replace('http', 'ws')\nconst wsAddress = `${proto}//${window.location.host}/ws`\n\n// define global window senderId type\ndeclare global {\n interface Window {\n senderId: string\n }\n}\n\nexport type SocketProviderProps = {\n children: React.ReactNode\n userName?: string\n projectName?: string\n dispatch: any\n}\n\nexport const SocketProvider = ({\n children,\n userName,\n projectName,\n dispatch,\n}: SocketProviderProps) => {\n // get user logged in\n const [serverRestartingVisible, setServerRestartingVisible] = useState(false)\n const [topics, setTopics] = useState([])\n const [getInfo] = useLazyGetSiteInfoQuery()\n\n const wsOpts = {\n shouldReconnect: () => {\n if (!userName) return false\n // check if there is a token\n const accessToken = localStorage.getItem('accessToken')\n if (!accessToken) return false\n\n // test if the token is valid\n // if it's not then this will automatically log out the user\n getInfo({ full: false }).unwrap()\n\n return true\n },\n }\n\n const { sendMessage, readyState, getWebSocket } = useWebSocket(wsAddress, wsOpts)\n\n const subscribe = () => {\n sendMessage(\n JSON.stringify({\n topic: 'auth',\n token: localStorage.getItem('accessToken'),\n subscribe: topics,\n project: projectName,\n }),\n )\n }\n\n useEffect(() => {\n console.debug('Topics changed', topics)\n subscribe()\n }, [topics, projectName])\n\n const updateTopicsDebounce = debounce((newTopics) => {\n if (isEqual(topics, newTopics)) return\n console.log('WS: Subscriptions changed')\n setTopics(newTopics)\n }, 200)\n\n PubSub.setOnSubscriptionsChange((newTopics: string[]) => updateTopicsDebounce(newTopics))\n\n const [overloaded, setOverloaded] = useState(false)\n const [toastShown, setToastShown] = useState(false)\n\n // when overloaded is true, activate toast\n useEffect(() => {\n if (overloaded)\n if (!toastShown) {\n toast.warning(<RefreshToast />, {\n autoClose: false,\n closeButton: false,\n })\n setToastShown(true)\n }\n\n return () => {\n setOverloaded(false)\n }\n }, [overloaded, setOverloaded])\n\n // onMessage is a function that is called when a message comes in from the websocket\n // it is a closure that keeps track of the number of calls and the last call time\n // Using useRef to persist the closure state across renders\n const messageStatsRef = useRef({ callCount: 0, lastCall: Date.now() })\n\n const onMessage = useCallback(\n (message: any) => {\n // If the function is called more than 100 times per second, return early.\n const threshold = 1000\n if (messageStatsRef.current.callCount > threshold) {\n setOverloaded(true)\n return console.log(\n `Overload: Over ${threshold} messages per second. Ignoring subsequent messages.`,\n )\n }\n\n let data\n try {\n data = JSON.parse(message.data)\n } catch (error) {\n console.error('Failed to parse websocket message:', error, message.data)\n return\n }\n\n const { topic, sender, summary } = data || {}\n if (topic === 'heartbeat') return\n\n if (topic === 'server.restart_requested') setServerRestartingVisible(true)\n\n if (sender === window.senderId) {\n return // my own message. ignore\n }\n\n const now = Date.now()\n if (now - messageStatsRef.current.lastCall < 1000) {\n messageStatsRef.current.callCount += 1\n } else {\n messageStatsRef.current.callCount = 0\n }\n\n messageStatsRef.current.lastCall = now\n\n if (topic === 'shout' && data?.summary?.text) toast.info(summary.text)\n\n console.log('Event RX', data)\n PubSub.publish(topic, data)\n },\n [setServerRestartingVisible],\n )\n\n useEffect(() => {\n if (readyState === ReadyState.OPEN) {\n if (serverRestartingVisible) {\n setServerRestartingVisible(false)\n // clear ayonApi\n dispatch(api.util.resetApiState())\n }\n // @ts-ignore\n getWebSocket().onmessage = onMessage\n subscribe()\n // Dispatch a fake event to the frontend components\n // in case they depend on the event stream and may\n // miss some messages - this should force reloading\n // events using graphql\n PubSub.publish('client.connected', {\n topic: 'client.connected',\n })\n }\n }, [readyState, getWebSocket])\n\n return (\n <SocketContext.Provider\n value={{\n getWebSocket,\n readyState,\n serverRestartingVisible,\n }}\n >\n {children}\n </SocketContext.Provider>\n )\n}\n\nexport const useSocketContext = () => {\n const context = useContext(SocketContext)\n if (context === undefined) {\n throw new Error('useSocketContext must be used within a SocketProvider')\n }\n return context\n}\n"],"names":["SocketContext","createContext","proto","wsAddress","SocketProvider","children","userName","projectName","dispatch","serverRestartingVisible","setServerRestartingVisible","useState","topics","setTopics","getInfo","useLazyGetSiteInfoQuery","wsOpts","sendMessage","readyState","getWebSocket","useWebSocket","subscribe","useEffect","updateTopicsDebounce","debounce","newTopics","isEqual","PubSub","overloaded","setOverloaded","toastShown","setToastShown","toast","jsx","RefreshToast","messageStatsRef","useRef","onMessage","useCallback","message","data","error","topic","sender","summary","now","ReadyState","api","useSocketContext","context","useContext"],"mappings":"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"}
1
+ {"version":3,"file":"WebsocketContext.es.js","sources":["../../../../src/context/WebsocketContext.tsx"],"sourcesContent":["import { useEffect, useState, createContext, useCallback, useRef, useContext } from 'react'\nimport { toast } from 'react-toastify'\nimport { PubSub } from '@shared/util'\nimport useWebSocket, { ReadyState } from 'react-use-websocket'\nimport { debounce, isEqual } from 'lodash'\nimport api from '@shared/api'\nimport { RefreshToast } from '@shared/components'\nimport { useLazyGetSiteInfoQuery } from '@shared/api'\nimport { WebSocketLike } from 'react-use-websocket/dist/lib/types'\n\nexport type WebsocketContextType = {\n getWebSocket: () => WebSocketLike | null\n readyState: ReadyState\n serverRestartingVisible: boolean\n}\n\nexport const SocketContext = createContext<WebsocketContextType | undefined>(undefined)\n\nconst proto = window.location.protocol.replace('http', 'ws')\nconst wsAddress = `${proto}//${window.location.host}/ws`\n\n// define global window senderId type\ndeclare global {\n interface Window {\n senderId: string\n }\n}\n\nexport type SocketProviderProps = {\n children: React.ReactNode\n userName?: string\n projectName?: string\n dispatch: any\n}\n\nexport const SocketProvider = ({\n children,\n userName,\n projectName,\n dispatch,\n}: SocketProviderProps) => {\n // get user logged in\n const [serverRestartingVisible, setServerRestartingVisible] = useState(false)\n const [topics, setTopics] = useState([])\n const [getInfo] = useLazyGetSiteInfoQuery()\n\n const wsOpts = {\n shouldReconnect: () => {\n if (!userName) return false\n // check if there is a token\n const accessToken = localStorage.getItem('accessToken')\n if (!accessToken) return false\n\n // test if the token is valid\n // if it's not then this will automatically log out the user\n getInfo({ full: false }).unwrap()\n\n return true\n },\n }\n\n const { sendMessage, readyState, getWebSocket } = useWebSocket(wsAddress, wsOpts)\n\n const subscribe = () => {\n sendMessage(\n JSON.stringify({\n topic: 'auth',\n token: localStorage.getItem('accessToken'),\n subscribe: topics,\n project: projectName,\n }),\n )\n }\n\n useEffect(() => {\n console.debug('Topics changed', topics)\n subscribe()\n }, [topics, projectName])\n\n const updateTopicsDebounce = debounce((newTopics) => {\n if (isEqual(topics, newTopics)) return\n console.log('WS: Subscriptions changed')\n setTopics(newTopics)\n }, 200)\n\n PubSub.setOnSubscriptionsChange((newTopics: string[]) => updateTopicsDebounce(newTopics))\n\n const [overloaded, setOverloaded] = useState(false)\n const [toastShown, setToastShown] = useState(false)\n\n // when overloaded is true, activate toast\n useEffect(() => {\n if (overloaded)\n if (!toastShown) {\n toast.warning(<RefreshToast />, {\n autoClose: false,\n closeButton: false,\n })\n setToastShown(true)\n }\n\n return () => {\n setOverloaded(false)\n }\n }, [overloaded, setOverloaded])\n\n // onMessage is a function that is called when a message comes in from the websocket\n // it is a closure that keeps track of the number of calls and the last call time\n // Using useRef to persist the closure state across renders\n const messageStatsRef = useRef({ callCount: 0, lastCall: Date.now() })\n\n const onMessage = useCallback(\n (message: any) => {\n // If the function is called more than 100 times per second, return early.\n const threshold = 1000\n if (messageStatsRef.current.callCount > threshold) {\n setOverloaded(true)\n return console.log(\n `Overload: Over ${threshold} messages per second. Ignoring subsequent messages.`,\n )\n }\n\n let data\n try {\n data = JSON.parse(message.data)\n } catch (error) {\n console.error('Failed to parse websocket message:', error, message.data)\n return\n }\n\n const { topic, sender, summary } = data || {}\n if (topic === 'heartbeat') return\n\n if (topic === 'server.restart_requested') setServerRestartingVisible(true)\n\n if (sender === window.senderId) {\n return // my own message. ignore\n }\n\n const now = Date.now()\n if (now - messageStatsRef.current.lastCall < 1000) {\n messageStatsRef.current.callCount += 1\n } else {\n messageStatsRef.current.callCount = 0\n }\n\n messageStatsRef.current.lastCall = now\n\n if (topic === 'shout' && data?.summary?.text) toast.info(summary.text)\n\n console.log('Event RX', data)\n PubSub.publish(topic, data)\n },\n [setServerRestartingVisible],\n )\n\n useEffect(() => {\n if (readyState === ReadyState.OPEN) {\n if (serverRestartingVisible) {\n setServerRestartingVisible(false)\n // clear ayonApi\n dispatch(api.util.resetApiState())\n }\n // @ts-ignore\n getWebSocket().onmessage = onMessage\n subscribe()\n // Dispatch a fake event to the frontend components\n // in case they depend on the event stream and may\n // miss some messages - this should force reloading\n // events using graphql\n PubSub.publish('client.connected', {\n topic: 'client.connected',\n })\n }\n }, [readyState, getWebSocket])\n\n return (\n <SocketContext.Provider\n value={{\n getWebSocket,\n readyState,\n serverRestartingVisible,\n }}\n >\n {children}\n </SocketContext.Provider>\n )\n}\n\nexport const useSocketContext = () => {\n const context = useContext(SocketContext)\n if (context === undefined) {\n throw new Error('useSocketContext must be used within a SocketProvider')\n }\n return context\n}\n"],"names":["SocketContext","createContext","proto","wsAddress","SocketProvider","children","userName","projectName","dispatch","serverRestartingVisible","setServerRestartingVisible","useState","topics","setTopics","getInfo","useLazyGetSiteInfoQuery","wsOpts","sendMessage","readyState","getWebSocket","useWebSocket","subscribe","useEffect","updateTopicsDebounce","debounce","newTopics","isEqual","PubSub","overloaded","setOverloaded","toastShown","setToastShown","toast","jsx","RefreshToast","messageStatsRef","useRef","onMessage","useCallback","message","data","error","topic","sender","summary","now","ReadyState","api","useSocketContext","context","useContext"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react-redux"),s=require("custom-protocol-check"),c=require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/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/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/updateTasks.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 d=({searchParams:q,onSetSearchParams:t,onNavigate:o})=>{const n=a.useDispatch();return{handleActionPayload:(u,e)=>{if(e){if(u==="launcher")e?.uri&&s(e.uri,()=>{},()=>{},2e3);else if(u==="query")if(Object.values(e.query).every(r=>typeof r=="string")){for(const[r,l]of Object.entries(e.query))q.set(r,l);t(q)}else throw new Error("Invalid payload: query");else if(u==="navigate"){if(typeof e.uri!="string")throw new Error("Invalid payload: navigate");o(e.uri)}else if(u==="redirect"){if(typeof e.uri!="string")throw new Error("Invalid payload: redirect");{const i=e?.new_tab||!1;window.open(e.uri,i?"_blank":"_self")}}if("extra_download"in e){if(typeof e.extra_download!="string")throw new Error("Invalid payload: extra_download");{const i=new URL(e.extra_download,window.location.origin).href;console.log(i);const r=document.createElement("a");r.href=i,r.target="_blank",r.rel="noopener noreferrer",r.download="",document.body.appendChild(r),r.click(),document.body.removeChild(r)}}if("extra_clipboard"in e){if(typeof e.extra_clipboard!="string")throw new Error("Invalid payload: extra_clipboard");navigator.clipboard&&window.isSecureContext&&navigator.clipboard.writeText(e.extra_clipboard).catch(i=>{i.name!=="NotAllowedError"&&!i.message.includes("not allowed")&&console.error("Failed to copy text to clipboard:",i)})}if("extra_reload"in e){if(!Array.isArray(e.extra_reload))throw new Error("Invalid payload: extra_reload");e.extra_reload.length&&n(c.api.util.invalidateTags(e.extra_reload))}}}}};exports.useActionTriggers=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react-redux"),s=require("custom-protocol-check"),c=require("../api/base/client.cjs.js");require("../api/generated/graphql.cjs.js");require("../api/generated/graphqlLinks.cjs.js");require("../api/generated/access.cjs.js");require("../api/generated/actions.cjs.js");require("../api/generated/activityFeed.cjs.js");require("../api/generated/addons.cjs.js");require("../api/generated/anatomy.cjs.js");require("../api/generated/attributes.cjs.js");require("../api/generated/authentication.cjs.js");require("../api/generated/bundles.cjs.js");require("../api/generated/configuration.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/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/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/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 d=({searchParams:q,onSetSearchParams:t,onNavigate:o})=>{const n=a.useDispatch();return{handleActionPayload:(u,e)=>{if(e){if(u==="launcher")e?.uri&&s(e.uri,()=>{},()=>{},2e3);else if(u==="query")if(Object.values(e.query).every(r=>typeof r=="string")){for(const[r,l]of Object.entries(e.query))q.set(r,l);t(q)}else throw new Error("Invalid payload: query");else if(u==="navigate"){if(typeof e.uri!="string")throw new Error("Invalid payload: navigate");o(e.uri)}else if(u==="redirect"){if(typeof e.uri!="string")throw new Error("Invalid payload: redirect");{const i=e?.new_tab||!1;window.open(e.uri,i?"_blank":"_self")}}if("extra_download"in e){if(typeof e.extra_download!="string")throw new Error("Invalid payload: extra_download");{const i=new URL(e.extra_download,window.location.origin).href;console.log(i);const r=document.createElement("a");r.href=i,r.target="_blank",r.rel="noopener noreferrer",r.download="",document.body.appendChild(r),r.click(),document.body.removeChild(r)}}if("extra_clipboard"in e){if(typeof e.extra_clipboard!="string")throw new Error("Invalid payload: extra_clipboard");navigator.clipboard&&window.isSecureContext&&navigator.clipboard.writeText(e.extra_clipboard).catch(i=>{i.name!=="NotAllowedError"&&!i.message.includes("not allowed")&&console.error("Failed to copy text to clipboard:",i)})}if("extra_reload"in e){if(!Array.isArray(e.extra_reload))throw new Error("Invalid payload: extra_reload");e.extra_reload.length&&n(c.api.util.invalidateTags(e.extra_reload))}}}}};exports.useActionTriggers=d;
2
2
  //# sourceMappingURL=useActionTriggers.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useActionTriggers.cjs.js","sources":["../../../../src/hooks/useActionTriggers.ts"],"sourcesContent":["import { useDispatch } from 'react-redux'\nimport customProtocolCheck from 'custom-protocol-check'\nimport { api } from '@shared/api'\n\n\nexport type ActionTriggersProps = {\n searchParams: URLSearchParams\n onSetSearchParams: (params: URLSearchParams) => void\n onNavigate: (uri: string) => void\n}\n\ninterface QueryParams {\n [key: string]: string\n}\n\ninterface ActionPayload {\n query?: QueryParams // adds query params to the URL\n uri?: string // navigates to a different page\n new_tab?: boolean // opens a new tab\n extra_download?: string // triggers a file download from a URL\n extra_clipboard?: string // copies string content to clipboard\n extra_reload?: string[] // list of tags to invalidate\n [key: string]: any\n}\n\nexport const useActionTriggers = ({\n searchParams,\n onSetSearchParams,\n onNavigate,\n}: ActionTriggersProps) => {\n const dispatch = useDispatch()\n const handleActionPayload = (actionType: string, payload: ActionPayload | null): void => {\n if (!payload) return\n\n if (actionType === 'launcher') {\n if (payload?.uri) {\n customProtocolCheck(\n payload.uri,\n () => {},\n () => {},\n 2000,\n )\n }\n } else if (actionType === 'query') {\n // Validate it is an object of key:value pairs with value being string\n const isValid = Object.values(payload.query as QueryParams).every((value) => {\n return typeof value === 'string'\n })\n\n if (!isValid) {\n throw new Error('Invalid payload: query')\n } else {\n // Add query params to URL\n for (const [key, value] of Object.entries(payload.query as QueryParams)) {\n searchParams.set(key, value)\n }\n onSetSearchParams(searchParams)\n }\n } else if (actionType === 'navigate') {\n // Validate it is a string\n if (typeof payload.uri !== 'string') {\n throw new Error('Invalid payload: navigate')\n } else {\n // Navigate to the specified page\n onNavigate(payload.uri)\n }\n } else if (actionType === 'redirect') {\n // Validate it is a string\n if (typeof payload.uri !== 'string') {\n throw new Error('Invalid payload: redirect')\n } else {\n const newTab = payload?.new_tab || false\n window.open(payload.uri, newTab ? '_blank' : '_self')\n }\n }\n\n //\n // Sub-actions\n //\n\n if ('extra_download' in payload) {\n // Validate it is a string\n if (typeof payload.extra_download !== 'string') {\n throw new Error('Invalid payload: extra_download')\n } else {\n // Trigger file download from the URL\n const downloadUrl = new URL(payload.extra_download, window.location.origin).href\n console.log(downloadUrl)\n // Create a hidden anchor element\n const link = document.createElement('a')\n link.href = downloadUrl\n link.target = '_blank'\n link.rel = 'noopener noreferrer'\n // Set download attribute if it's a direct file download\n // If it's an API endpoint that handles the download, this is still good\n link.download = ''\n // Append to document, click and then remove\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n }\n }\n\n if ('extra_clipboard' in payload) {\n // Validate it is a string\n if (typeof payload.extra_clipboard !== 'string') {\n throw new Error('Invalid payload: extra_clipboard')\n } else {\n // Copy content to clipboard\n if (navigator.clipboard && window.isSecureContext) {\n navigator.clipboard.writeText(payload.extra_clipboard).catch((err) => {\n // Only log unexpected errors, not permission denials\n if (err.name !== 'NotAllowedError' && !err.message.includes('not allowed')) {\n console.error('Failed to copy text to clipboard:', err)\n }\n })\n }\n }\n }\n\n if ('extra_reload' in payload) {\n if (!Array.isArray(payload.extra_reload)) {\n throw new Error('Invalid payload: extra_reload')\n }\n\n if (payload.extra_reload.length) {\n dispatch(api.util.invalidateTags(payload.extra_reload))\n }\n }\n\n }\n\n return { handleActionPayload }\n}"],"names":["useActionTriggers","searchParams","onSetSearchParams","onNavigate","dispatch","useDispatch","actionType","payload","customProtocolCheck","value","key","newTab","downloadUrl","link","err","api"],"mappings":"67IAyBO,MAAMA,EAAoB,CAAC,CAChC,aAAAC,EACA,kBAAAC,EACA,WAAAC,CACF,IAA2B,CACzB,MAAMC,EAAWC,EAAAA,YAAA,EAsGjB,MAAO,CAAE,oBArGmB,CAACC,EAAoBC,IAAwC,CACvF,GAAKA,EAEL,IAAID,IAAe,WACbC,GAAS,KACXC,EACED,EAAQ,IACR,IAAM,CAAC,EACP,IAAM,CAAC,EACP,GAAA,UAGKD,IAAe,QAMxB,GAJgB,OAAO,OAAOC,EAAQ,KAAoB,EAAE,MAAOE,GAC1D,OAAOA,GAAU,QACzB,EAIM,CAEL,SAAW,CAACC,EAAKD,CAAK,IAAK,OAAO,QAAQF,EAAQ,KAAoB,EACpEN,EAAa,IAAIS,EAAKD,CAAK,EAE7BP,EAAkBD,CAAY,CAChC,KAPE,OAAM,IAAI,MAAM,wBAAwB,UAQjCK,IAAe,WAAY,CAEpC,GAAI,OAAOC,EAAQ,KAAQ,SACzB,MAAM,IAAI,MAAM,2BAA2B,EAG3CJ,EAAWI,EAAQ,GAAG,CAE1B,SAAWD,IAAe,WAAY,CAEpC,GAAI,OAAOC,EAAQ,KAAQ,SACzB,MAAM,IAAI,MAAM,2BAA2B,EACtC,CACL,MAAMI,EAASJ,GAAS,SAAW,GACnC,OAAO,KAAKA,EAAQ,IAAKI,EAAS,SAAW,OAAO,CACtD,CACF,CAMA,GAAI,mBAAoBJ,EAAS,CAE/B,GAAI,OAAOA,EAAQ,gBAAmB,SACpC,MAAM,IAAI,MAAM,iCAAiC,EAC5C,CAEL,MAAMK,EAAc,IAAI,IAAIL,EAAQ,eAAgB,OAAO,SAAS,MAAM,EAAE,KAC5E,QAAQ,IAAIK,CAAW,EAEvB,MAAMC,EAAO,SAAS,cAAc,GAAG,EACvCA,EAAK,KAAOD,EACZC,EAAK,OAAS,SACdA,EAAK,IAAM,sBAGXA,EAAK,SAAW,GAEhB,SAAS,KAAK,YAAYA,CAAI,EAC9BA,EAAK,MAAA,EACL,SAAS,KAAK,YAAYA,CAAI,CAChC,CACF,CAEA,GAAI,oBAAqBN,EAAS,CAEhC,GAAI,OAAOA,EAAQ,iBAAoB,SACrC,MAAM,IAAI,MAAM,kCAAkC,EAG9C,UAAU,WAAa,OAAO,iBAChC,UAAU,UAAU,UAAUA,EAAQ,eAAe,EAAE,MAAOO,GAAQ,CAEhEA,EAAI,OAAS,mBAAqB,CAACA,EAAI,QAAQ,SAAS,aAAa,GACvE,QAAQ,MAAM,oCAAqCA,CAAG,CAE1D,CAAC,CAGP,CAEA,GAAI,iBAAkBP,EAAS,CAC7B,GAAI,CAAC,MAAM,QAAQA,EAAQ,YAAY,EACrC,MAAM,IAAI,MAAM,+BAA+B,EAG7CA,EAAQ,aAAa,QACvBH,EAASW,EAAAA,IAAI,KAAK,eAAeR,EAAQ,YAAY,CAAC,CAE1D,EAEF,CAES,CACX"}
1
+ {"version":3,"file":"useActionTriggers.cjs.js","sources":["../../../../src/hooks/useActionTriggers.ts"],"sourcesContent":["import { useDispatch } from 'react-redux'\nimport customProtocolCheck from 'custom-protocol-check'\nimport { api } from '@shared/api'\n\n\nexport type ActionTriggersProps = {\n searchParams: URLSearchParams\n onSetSearchParams: (params: URLSearchParams) => void\n onNavigate: (uri: string) => void\n}\n\ninterface QueryParams {\n [key: string]: string\n}\n\ninterface ActionPayload {\n query?: QueryParams // adds query params to the URL\n uri?: string // navigates to a different page\n new_tab?: boolean // opens a new tab\n extra_download?: string // triggers a file download from a URL\n extra_clipboard?: string // copies string content to clipboard\n extra_reload?: string[] // list of tags to invalidate\n [key: string]: any\n}\n\nexport const useActionTriggers = ({\n searchParams,\n onSetSearchParams,\n onNavigate,\n}: ActionTriggersProps) => {\n const dispatch = useDispatch()\n const handleActionPayload = (actionType: string, payload: ActionPayload | null): void => {\n if (!payload) return\n\n if (actionType === 'launcher') {\n if (payload?.uri) {\n customProtocolCheck(\n payload.uri,\n () => {},\n () => {},\n 2000,\n )\n }\n } else if (actionType === 'query') {\n // Validate it is an object of key:value pairs with value being string\n const isValid = Object.values(payload.query as QueryParams).every((value) => {\n return typeof value === 'string'\n })\n\n if (!isValid) {\n throw new Error('Invalid payload: query')\n } else {\n // Add query params to URL\n for (const [key, value] of Object.entries(payload.query as QueryParams)) {\n searchParams.set(key, value)\n }\n onSetSearchParams(searchParams)\n }\n } else if (actionType === 'navigate') {\n // Validate it is a string\n if (typeof payload.uri !== 'string') {\n throw new Error('Invalid payload: navigate')\n } else {\n // Navigate to the specified page\n onNavigate(payload.uri)\n }\n } else if (actionType === 'redirect') {\n // Validate it is a string\n if (typeof payload.uri !== 'string') {\n throw new Error('Invalid payload: redirect')\n } else {\n const newTab = payload?.new_tab || false\n window.open(payload.uri, newTab ? '_blank' : '_self')\n }\n }\n\n //\n // Sub-actions\n //\n\n if ('extra_download' in payload) {\n // Validate it is a string\n if (typeof payload.extra_download !== 'string') {\n throw new Error('Invalid payload: extra_download')\n } else {\n // Trigger file download from the URL\n const downloadUrl = new URL(payload.extra_download, window.location.origin).href\n console.log(downloadUrl)\n // Create a hidden anchor element\n const link = document.createElement('a')\n link.href = downloadUrl\n link.target = '_blank'\n link.rel = 'noopener noreferrer'\n // Set download attribute if it's a direct file download\n // If it's an API endpoint that handles the download, this is still good\n link.download = ''\n // Append to document, click and then remove\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n }\n }\n\n if ('extra_clipboard' in payload) {\n // Validate it is a string\n if (typeof payload.extra_clipboard !== 'string') {\n throw new Error('Invalid payload: extra_clipboard')\n } else {\n // Copy content to clipboard\n if (navigator.clipboard && window.isSecureContext) {\n navigator.clipboard.writeText(payload.extra_clipboard).catch((err) => {\n // Only log unexpected errors, not permission denials\n if (err.name !== 'NotAllowedError' && !err.message.includes('not allowed')) {\n console.error('Failed to copy text to clipboard:', err)\n }\n })\n }\n }\n }\n\n if ('extra_reload' in payload) {\n if (!Array.isArray(payload.extra_reload)) {\n throw new Error('Invalid payload: extra_reload')\n }\n\n if (payload.extra_reload.length) {\n dispatch(api.util.invalidateTags(payload.extra_reload))\n }\n }\n\n }\n\n return { handleActionPayload }\n}"],"names":["useActionTriggers","searchParams","onSetSearchParams","onNavigate","dispatch","useDispatch","actionType","payload","customProtocolCheck","value","key","newTab","downloadUrl","link","err","api"],"mappings":"6+IAyBO,MAAMA,EAAoB,CAAC,CAChC,aAAAC,EACA,kBAAAC,EACA,WAAAC,CACF,IAA2B,CACzB,MAAMC,EAAWC,EAAAA,YAAA,EAsGjB,MAAO,CAAE,oBArGmB,CAACC,EAAoBC,IAAwC,CACvF,GAAKA,EAEL,IAAID,IAAe,WACbC,GAAS,KACXC,EACED,EAAQ,IACR,IAAM,CAAC,EACP,IAAM,CAAC,EACP,GAAA,UAGKD,IAAe,QAMxB,GAJgB,OAAO,OAAOC,EAAQ,KAAoB,EAAE,MAAOE,GAC1D,OAAOA,GAAU,QACzB,EAIM,CAEL,SAAW,CAACC,EAAKD,CAAK,IAAK,OAAO,QAAQF,EAAQ,KAAoB,EACpEN,EAAa,IAAIS,EAAKD,CAAK,EAE7BP,EAAkBD,CAAY,CAChC,KAPE,OAAM,IAAI,MAAM,wBAAwB,UAQjCK,IAAe,WAAY,CAEpC,GAAI,OAAOC,EAAQ,KAAQ,SACzB,MAAM,IAAI,MAAM,2BAA2B,EAG3CJ,EAAWI,EAAQ,GAAG,CAE1B,SAAWD,IAAe,WAAY,CAEpC,GAAI,OAAOC,EAAQ,KAAQ,SACzB,MAAM,IAAI,MAAM,2BAA2B,EACtC,CACL,MAAMI,EAASJ,GAAS,SAAW,GACnC,OAAO,KAAKA,EAAQ,IAAKI,EAAS,SAAW,OAAO,CACtD,CACF,CAMA,GAAI,mBAAoBJ,EAAS,CAE/B,GAAI,OAAOA,EAAQ,gBAAmB,SACpC,MAAM,IAAI,MAAM,iCAAiC,EAC5C,CAEL,MAAMK,EAAc,IAAI,IAAIL,EAAQ,eAAgB,OAAO,SAAS,MAAM,EAAE,KAC5E,QAAQ,IAAIK,CAAW,EAEvB,MAAMC,EAAO,SAAS,cAAc,GAAG,EACvCA,EAAK,KAAOD,EACZC,EAAK,OAAS,SACdA,EAAK,IAAM,sBAGXA,EAAK,SAAW,GAEhB,SAAS,KAAK,YAAYA,CAAI,EAC9BA,EAAK,MAAA,EACL,SAAS,KAAK,YAAYA,CAAI,CAChC,CACF,CAEA,GAAI,oBAAqBN,EAAS,CAEhC,GAAI,OAAOA,EAAQ,iBAAoB,SACrC,MAAM,IAAI,MAAM,kCAAkC,EAG9C,UAAU,WAAa,OAAO,iBAChC,UAAU,UAAU,UAAUA,EAAQ,eAAe,EAAE,MAAOO,GAAQ,CAEhEA,EAAI,OAAS,mBAAqB,CAACA,EAAI,QAAQ,SAAS,aAAa,GACvE,QAAQ,MAAM,oCAAqCA,CAAG,CAE1D,CAAC,CAGP,CAEA,GAAI,iBAAkBP,EAAS,CAC7B,GAAI,CAAC,MAAM,QAAQA,EAAQ,YAAY,EACrC,MAAM,IAAI,MAAM,+BAA+B,EAG7CA,EAAQ,aAAa,QACvBH,EAASW,EAAAA,IAAI,KAAK,eAAeR,EAAQ,YAAY,CAAC,CAE1D,EAEF,CAES,CACX"}
@@ -78,6 +78,7 @@ import "../api/queries/review/getReview.es.js";
78
78
  import "../api/queries/review/updateReview.es.js";
79
79
  import "../api/queries/share/share.es.js";
80
80
  import "../api/queries/system/getSystem.es.js";
81
+ import "../api/queries/tasks/getTasks.es.js";
81
82
  import "../api/queries/tasks/updateTasks.es.js";
82
83
  import "../api/queries/userDashboard/getUserDashboard.es.js";
83
84
  import "../api/queries/users/getUsers.es.js";
@@ -88,7 +89,7 @@ import "../api/queries/views/getViews.es.js";
88
89
  import "../api/queries/views/updateViews.es.js";
89
90
  import "../api/queries/watchers/getWatchers.es.js";
90
91
  import "../api/queries/uris/getUris.es.js";
91
- const Wr = ({
92
+ const Xr = ({
92
93
  searchParams: e,
93
94
  onSetSearchParams: m,
94
95
  onNavigate: p
@@ -150,6 +151,6 @@ const Wr = ({
150
151
  } };
151
152
  };
152
153
  export {
153
- Wr as useActionTriggers
154
+ Xr as useActionTriggers
154
155
  };
155
156
  //# sourceMappingURL=useActionTriggers.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useActionTriggers.es.js","sources":["../../../../src/hooks/useActionTriggers.ts"],"sourcesContent":["import { useDispatch } from 'react-redux'\nimport customProtocolCheck from 'custom-protocol-check'\nimport { api } from '@shared/api'\n\n\nexport type ActionTriggersProps = {\n searchParams: URLSearchParams\n onSetSearchParams: (params: URLSearchParams) => void\n onNavigate: (uri: string) => void\n}\n\ninterface QueryParams {\n [key: string]: string\n}\n\ninterface ActionPayload {\n query?: QueryParams // adds query params to the URL\n uri?: string // navigates to a different page\n new_tab?: boolean // opens a new tab\n extra_download?: string // triggers a file download from a URL\n extra_clipboard?: string // copies string content to clipboard\n extra_reload?: string[] // list of tags to invalidate\n [key: string]: any\n}\n\nexport const useActionTriggers = ({\n searchParams,\n onSetSearchParams,\n onNavigate,\n}: ActionTriggersProps) => {\n const dispatch = useDispatch()\n const handleActionPayload = (actionType: string, payload: ActionPayload | null): void => {\n if (!payload) return\n\n if (actionType === 'launcher') {\n if (payload?.uri) {\n customProtocolCheck(\n payload.uri,\n () => {},\n () => {},\n 2000,\n )\n }\n } else if (actionType === 'query') {\n // Validate it is an object of key:value pairs with value being string\n const isValid = Object.values(payload.query as QueryParams).every((value) => {\n return typeof value === 'string'\n })\n\n if (!isValid) {\n throw new Error('Invalid payload: query')\n } else {\n // Add query params to URL\n for (const [key, value] of Object.entries(payload.query as QueryParams)) {\n searchParams.set(key, value)\n }\n onSetSearchParams(searchParams)\n }\n } else if (actionType === 'navigate') {\n // Validate it is a string\n if (typeof payload.uri !== 'string') {\n throw new Error('Invalid payload: navigate')\n } else {\n // Navigate to the specified page\n onNavigate(payload.uri)\n }\n } else if (actionType === 'redirect') {\n // Validate it is a string\n if (typeof payload.uri !== 'string') {\n throw new Error('Invalid payload: redirect')\n } else {\n const newTab = payload?.new_tab || false\n window.open(payload.uri, newTab ? '_blank' : '_self')\n }\n }\n\n //\n // Sub-actions\n //\n\n if ('extra_download' in payload) {\n // Validate it is a string\n if (typeof payload.extra_download !== 'string') {\n throw new Error('Invalid payload: extra_download')\n } else {\n // Trigger file download from the URL\n const downloadUrl = new URL(payload.extra_download, window.location.origin).href\n console.log(downloadUrl)\n // Create a hidden anchor element\n const link = document.createElement('a')\n link.href = downloadUrl\n link.target = '_blank'\n link.rel = 'noopener noreferrer'\n // Set download attribute if it's a direct file download\n // If it's an API endpoint that handles the download, this is still good\n link.download = ''\n // Append to document, click and then remove\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n }\n }\n\n if ('extra_clipboard' in payload) {\n // Validate it is a string\n if (typeof payload.extra_clipboard !== 'string') {\n throw new Error('Invalid payload: extra_clipboard')\n } else {\n // Copy content to clipboard\n if (navigator.clipboard && window.isSecureContext) {\n navigator.clipboard.writeText(payload.extra_clipboard).catch((err) => {\n // Only log unexpected errors, not permission denials\n if (err.name !== 'NotAllowedError' && !err.message.includes('not allowed')) {\n console.error('Failed to copy text to clipboard:', err)\n }\n })\n }\n }\n }\n\n if ('extra_reload' in payload) {\n if (!Array.isArray(payload.extra_reload)) {\n throw new Error('Invalid payload: extra_reload')\n }\n\n if (payload.extra_reload.length) {\n dispatch(api.util.invalidateTags(payload.extra_reload))\n }\n }\n\n }\n\n return { handleActionPayload }\n}"],"names":["useActionTriggers","searchParams","onSetSearchParams","onNavigate","dispatch","useDispatch","actionType","payload","customProtocolCheck","value","key","newTab","downloadUrl","link","err","api"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBO,MAAMA,KAAoB,CAAC;AAAA,EAChC,cAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,YAAAC;AACF,MAA2B;AACzB,QAAMC,IAAWC,EAAA;AAsGjB,SAAO,EAAE,qBArGmB,CAACC,GAAoBC,MAAwC;AACvF,QAAKA,GAEL;AAAA,UAAID,MAAe;AACjB,QAAIC,GAAS,OACXC;AAAA,UACED,EAAQ;AAAA,UACR,MAAM;AAAA,UAAC;AAAA,UACP,MAAM;AAAA,UAAC;AAAA,UACP;AAAA,QAAA;AAAA,eAGKD,MAAe;AAMxB,YAJgB,OAAO,OAAOC,EAAQ,KAAoB,EAAE,MAAM,CAACE,MAC1D,OAAOA,KAAU,QACzB,GAIM;AAEL,qBAAW,CAACC,GAAKD,CAAK,KAAK,OAAO,QAAQF,EAAQ,KAAoB;AACpE,YAAAN,EAAa,IAAIS,GAAKD,CAAK;AAE7B,UAAAP,EAAkBD,CAAY;AAAA,QAChC;AAPE,gBAAM,IAAI,MAAM,wBAAwB;AAAA,eAQjCK,MAAe,YAAY;AAEpC,YAAI,OAAOC,EAAQ,OAAQ;AACzB,gBAAM,IAAI,MAAM,2BAA2B;AAG3C,QAAAJ,EAAWI,EAAQ,GAAG;AAAA,MAE1B,WAAWD,MAAe,YAAY;AAEpC,YAAI,OAAOC,EAAQ,OAAQ;AACzB,gBAAM,IAAI,MAAM,2BAA2B;AACtC;AACL,gBAAMI,IAASJ,GAAS,WAAW;AACnC,iBAAO,KAAKA,EAAQ,KAAKI,IAAS,WAAW,OAAO;AAAA,QACtD;AAAA,MACF;AAMA,UAAI,oBAAoBJ,GAAS;AAE/B,YAAI,OAAOA,EAAQ,kBAAmB;AACpC,gBAAM,IAAI,MAAM,iCAAiC;AAC5C;AAEL,gBAAMK,IAAc,IAAI,IAAIL,EAAQ,gBAAgB,OAAO,SAAS,MAAM,EAAE;AAC5E,kBAAQ,IAAIK,CAAW;AAEvB,gBAAMC,IAAO,SAAS,cAAc,GAAG;AACvC,UAAAA,EAAK,OAAOD,GACZC,EAAK,SAAS,UACdA,EAAK,MAAM,uBAGXA,EAAK,WAAW,IAEhB,SAAS,KAAK,YAAYA,CAAI,GAC9BA,EAAK,MAAA,GACL,SAAS,KAAK,YAAYA,CAAI;AAAA,QAChC;AAAA,MACF;AAEA,UAAI,qBAAqBN,GAAS;AAEhC,YAAI,OAAOA,EAAQ,mBAAoB;AACrC,gBAAM,IAAI,MAAM,kCAAkC;AAGlD,QAAI,UAAU,aAAa,OAAO,mBAChC,UAAU,UAAU,UAAUA,EAAQ,eAAe,EAAE,MAAM,CAACO,MAAQ;AAEpE,UAAIA,EAAI,SAAS,qBAAqB,CAACA,EAAI,QAAQ,SAAS,aAAa,KACvE,QAAQ,MAAM,qCAAqCA,CAAG;AAAA,QAE1D,CAAC;AAAA,MAGP;AAEA,UAAI,kBAAkBP,GAAS;AAC7B,YAAI,CAAC,MAAM,QAAQA,EAAQ,YAAY;AACrC,gBAAM,IAAI,MAAM,+BAA+B;AAGjD,QAAIA,EAAQ,aAAa,UACvBH,EAASW,EAAI,KAAK,eAAeR,EAAQ,YAAY,CAAC;AAAA,MAE1D;AAAA;AAAA,EAEF,EAES;AACX;"}
1
+ {"version":3,"file":"useActionTriggers.es.js","sources":["../../../../src/hooks/useActionTriggers.ts"],"sourcesContent":["import { useDispatch } from 'react-redux'\nimport customProtocolCheck from 'custom-protocol-check'\nimport { api } from '@shared/api'\n\n\nexport type ActionTriggersProps = {\n searchParams: URLSearchParams\n onSetSearchParams: (params: URLSearchParams) => void\n onNavigate: (uri: string) => void\n}\n\ninterface QueryParams {\n [key: string]: string\n}\n\ninterface ActionPayload {\n query?: QueryParams // adds query params to the URL\n uri?: string // navigates to a different page\n new_tab?: boolean // opens a new tab\n extra_download?: string // triggers a file download from a URL\n extra_clipboard?: string // copies string content to clipboard\n extra_reload?: string[] // list of tags to invalidate\n [key: string]: any\n}\n\nexport const useActionTriggers = ({\n searchParams,\n onSetSearchParams,\n onNavigate,\n}: ActionTriggersProps) => {\n const dispatch = useDispatch()\n const handleActionPayload = (actionType: string, payload: ActionPayload | null): void => {\n if (!payload) return\n\n if (actionType === 'launcher') {\n if (payload?.uri) {\n customProtocolCheck(\n payload.uri,\n () => {},\n () => {},\n 2000,\n )\n }\n } else if (actionType === 'query') {\n // Validate it is an object of key:value pairs with value being string\n const isValid = Object.values(payload.query as QueryParams).every((value) => {\n return typeof value === 'string'\n })\n\n if (!isValid) {\n throw new Error('Invalid payload: query')\n } else {\n // Add query params to URL\n for (const [key, value] of Object.entries(payload.query as QueryParams)) {\n searchParams.set(key, value)\n }\n onSetSearchParams(searchParams)\n }\n } else if (actionType === 'navigate') {\n // Validate it is a string\n if (typeof payload.uri !== 'string') {\n throw new Error('Invalid payload: navigate')\n } else {\n // Navigate to the specified page\n onNavigate(payload.uri)\n }\n } else if (actionType === 'redirect') {\n // Validate it is a string\n if (typeof payload.uri !== 'string') {\n throw new Error('Invalid payload: redirect')\n } else {\n const newTab = payload?.new_tab || false\n window.open(payload.uri, newTab ? '_blank' : '_self')\n }\n }\n\n //\n // Sub-actions\n //\n\n if ('extra_download' in payload) {\n // Validate it is a string\n if (typeof payload.extra_download !== 'string') {\n throw new Error('Invalid payload: extra_download')\n } else {\n // Trigger file download from the URL\n const downloadUrl = new URL(payload.extra_download, window.location.origin).href\n console.log(downloadUrl)\n // Create a hidden anchor element\n const link = document.createElement('a')\n link.href = downloadUrl\n link.target = '_blank'\n link.rel = 'noopener noreferrer'\n // Set download attribute if it's a direct file download\n // If it's an API endpoint that handles the download, this is still good\n link.download = ''\n // Append to document, click and then remove\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n }\n }\n\n if ('extra_clipboard' in payload) {\n // Validate it is a string\n if (typeof payload.extra_clipboard !== 'string') {\n throw new Error('Invalid payload: extra_clipboard')\n } else {\n // Copy content to clipboard\n if (navigator.clipboard && window.isSecureContext) {\n navigator.clipboard.writeText(payload.extra_clipboard).catch((err) => {\n // Only log unexpected errors, not permission denials\n if (err.name !== 'NotAllowedError' && !err.message.includes('not allowed')) {\n console.error('Failed to copy text to clipboard:', err)\n }\n })\n }\n }\n }\n\n if ('extra_reload' in payload) {\n if (!Array.isArray(payload.extra_reload)) {\n throw new Error('Invalid payload: extra_reload')\n }\n\n if (payload.extra_reload.length) {\n dispatch(api.util.invalidateTags(payload.extra_reload))\n }\n }\n\n }\n\n return { handleActionPayload }\n}"],"names":["useActionTriggers","searchParams","onSetSearchParams","onNavigate","dispatch","useDispatch","actionType","payload","customProtocolCheck","value","key","newTab","downloadUrl","link","err","api"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBO,MAAMA,KAAoB,CAAC;AAAA,EAChC,cAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,YAAAC;AACF,MAA2B;AACzB,QAAMC,IAAWC,EAAA;AAsGjB,SAAO,EAAE,qBArGmB,CAACC,GAAoBC,MAAwC;AACvF,QAAKA,GAEL;AAAA,UAAID,MAAe;AACjB,QAAIC,GAAS,OACXC;AAAA,UACED,EAAQ;AAAA,UACR,MAAM;AAAA,UAAC;AAAA,UACP,MAAM;AAAA,UAAC;AAAA,UACP;AAAA,QAAA;AAAA,eAGKD,MAAe;AAMxB,YAJgB,OAAO,OAAOC,EAAQ,KAAoB,EAAE,MAAM,CAACE,MAC1D,OAAOA,KAAU,QACzB,GAIM;AAEL,qBAAW,CAACC,GAAKD,CAAK,KAAK,OAAO,QAAQF,EAAQ,KAAoB;AACpE,YAAAN,EAAa,IAAIS,GAAKD,CAAK;AAE7B,UAAAP,EAAkBD,CAAY;AAAA,QAChC;AAPE,gBAAM,IAAI,MAAM,wBAAwB;AAAA,eAQjCK,MAAe,YAAY;AAEpC,YAAI,OAAOC,EAAQ,OAAQ;AACzB,gBAAM,IAAI,MAAM,2BAA2B;AAG3C,QAAAJ,EAAWI,EAAQ,GAAG;AAAA,MAE1B,WAAWD,MAAe,YAAY;AAEpC,YAAI,OAAOC,EAAQ,OAAQ;AACzB,gBAAM,IAAI,MAAM,2BAA2B;AACtC;AACL,gBAAMI,IAASJ,GAAS,WAAW;AACnC,iBAAO,KAAKA,EAAQ,KAAKI,IAAS,WAAW,OAAO;AAAA,QACtD;AAAA,MACF;AAMA,UAAI,oBAAoBJ,GAAS;AAE/B,YAAI,OAAOA,EAAQ,kBAAmB;AACpC,gBAAM,IAAI,MAAM,iCAAiC;AAC5C;AAEL,gBAAMK,IAAc,IAAI,IAAIL,EAAQ,gBAAgB,OAAO,SAAS,MAAM,EAAE;AAC5E,kBAAQ,IAAIK,CAAW;AAEvB,gBAAMC,IAAO,SAAS,cAAc,GAAG;AACvC,UAAAA,EAAK,OAAOD,GACZC,EAAK,SAAS,UACdA,EAAK,MAAM,uBAGXA,EAAK,WAAW,IAEhB,SAAS,KAAK,YAAYA,CAAI,GAC9BA,EAAK,MAAA,GACL,SAAS,KAAK,YAAYA,CAAI;AAAA,QAChC;AAAA,MACF;AAEA,UAAI,qBAAqBN,GAAS;AAEhC,YAAI,OAAOA,EAAQ,mBAAoB;AACrC,gBAAM,IAAI,MAAM,kCAAkC;AAGlD,QAAI,UAAU,aAAa,OAAO,mBAChC,UAAU,UAAU,UAAUA,EAAQ,eAAe,EAAE,MAAM,CAACO,MAAQ;AAEpE,UAAIA,EAAI,SAAS,qBAAqB,CAACA,EAAI,QAAQ,SAAS,aAAa,KACvE,QAAQ,MAAM,qCAAqCA,CAAG;AAAA,QAE1D,CAAC;AAAA,MAGP;AAEA,UAAI,kBAAkBP,GAAS;AAC7B,YAAI,CAAC,MAAM,QAAQA,EAAQ,YAAY;AACrC,gBAAM,IAAI,MAAM,+BAA+B;AAGjD,QAAIA,EAAQ,aAAa,UACvBH,EAASW,EAAI,KAAK,eAAeR,EAAQ,YAAY,CAAC;AAAA,MAE1D;AAAA;AAAA,EAEF,EAES;AACX;"}