@ynput/ayon-frontend-shared 0.3.16 → 0.3.17

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 (414) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +28 -24
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/Views.cjs.js +1 -1
  5. package/dist/Views.cjs.js.map +1 -1
  6. package/dist/Views.es.js +36 -41
  7. package/dist/Views.es.js.map +1 -1
  8. package/dist/_virtual/index.cjs.js +1 -1
  9. package/dist/_virtual/index.cjs2.js +1 -1
  10. package/dist/_virtual/index.cjs3.js +1 -1
  11. package/dist/_virtual/index.cjs4.js +1 -1
  12. package/dist/_virtual/index.cjs5.js +1 -1
  13. package/dist/_virtual/index.cjs6.js +1 -1
  14. package/dist/_virtual/index.cjs8.js +1 -1
  15. package/dist/_virtual/index.es.js +4 -5
  16. package/dist/_virtual/index.es2.js +6 -2
  17. package/dist/_virtual/index.es2.js.map +1 -1
  18. package/dist/_virtual/index.es3.js +2 -5
  19. package/dist/_virtual/index.es3.js.map +1 -1
  20. package/dist/_virtual/index.es4.js +5 -2
  21. package/dist/_virtual/index.es4.js.map +1 -1
  22. package/dist/_virtual/index.es5.js +2 -5
  23. package/dist/_virtual/index.es5.js.map +1 -1
  24. package/dist/_virtual/index.es6.js +5 -2
  25. package/dist/_virtual/index.es6.js.map +1 -1
  26. package/dist/_virtual/index.es7.js +2 -2
  27. package/dist/_virtual/index.es8.js +2 -5
  28. package/dist/_virtual/index.es8.js.map +1 -1
  29. package/dist/index.cjs.js +1 -1
  30. package/dist/index.es.js +15 -11
  31. package/dist/index.es.js.map +1 -1
  32. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  33. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  34. package/dist/node_modules/react-use-websocket/dist/index.cjs.js +1 -1
  35. package/dist/node_modules/react-use-websocket/dist/index.es.js +1 -1
  36. package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
  37. package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js.map +1 -1
  38. package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
  39. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  40. package/dist/node_modules/remove-accents/index.es.js +1 -1
  41. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  42. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  43. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  44. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  45. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  46. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  47. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  48. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  49. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  50. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  51. package/dist/shared/src/api/generated/access.cjs.js.map +1 -1
  52. package/dist/shared/src/api/generated/access.es.js.map +1 -1
  53. package/dist/shared/src/api/generated/graphql.cjs.js +5 -3
  54. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  55. package/dist/shared/src/api/generated/graphql.es.js +2 -0
  56. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  57. package/dist/shared/src/api/generated/users.cjs.js.map +1 -1
  58. package/dist/shared/src/api/generated/users.es.js.map +1 -1
  59. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +13 -1
  60. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  61. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +72 -25
  62. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  63. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  64. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  65. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +25 -21
  66. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  67. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  68. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  69. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +14 -14
  70. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  71. package/dist/shared/src/components/LinksManager/CellEditingDialog.cjs.js +1 -1
  72. package/dist/shared/src/components/LinksManager/CellEditingDialog.cjs.js.map +1 -1
  73. package/dist/shared/src/components/LinksManager/CellEditingDialog.es.js +23 -23
  74. package/dist/shared/src/components/LinksManager/CellEditingDialog.es.js.map +1 -1
  75. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  76. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  77. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +71 -36
  78. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  79. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  80. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  81. package/dist/shared/src/components/LinksManager/LinksManager.es.js +120 -89
  82. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  83. package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js +52 -12
  84. package/dist/shared/src/components/LinksManager/LinksManager.styled.cjs.js.map +1 -1
  85. package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js +63 -21
  86. package/dist/shared/src/components/LinksManager/LinksManager.styled.es.js.map +1 -1
  87. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  88. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  89. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +8 -4
  90. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  91. package/dist/shared/src/components/LinksManager/utils/groupLinks.cjs.js +2 -0
  92. package/dist/shared/src/components/LinksManager/utils/groupLinks.cjs.js.map +1 -0
  93. package/dist/shared/src/components/LinksManager/utils/groupLinks.es.js +18 -0
  94. package/dist/shared/src/components/LinksManager/utils/groupLinks.es.js.map +1 -0
  95. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  96. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  97. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +8 -4
  98. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  99. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  100. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  101. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +10 -6
  102. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  103. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  104. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  105. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +8 -4
  106. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  107. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  108. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  109. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +8 -4
  110. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  111. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  112. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  113. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +8 -4
  114. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  115. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  116. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  117. package/dist/shared/src/components/RenameForm/RenameForm.es.js +9 -5
  118. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  119. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  120. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  121. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +139 -128
  122. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  123. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  124. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  125. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +90 -81
  126. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  127. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  128. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  129. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +8 -4
  130. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  131. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js +1 -1
  132. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js.map +1 -1
  133. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js +9 -5
  134. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js.map +1 -1
  135. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  136. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  137. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +8 -4
  138. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  139. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  140. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  141. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +8 -4
  142. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  143. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  144. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  145. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +8 -4
  146. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  147. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  148. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  149. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +8 -4
  150. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  151. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  152. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  153. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +20 -16
  154. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  155. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  156. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  157. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +8 -4
  158. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  159. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  160. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  161. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +9 -5
  162. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  163. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  164. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  165. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +12 -8
  166. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  167. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  168. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  169. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +22 -18
  170. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  171. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  172. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  173. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +8 -4
  174. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  175. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  176. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  177. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +8 -4
  178. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  179. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
  180. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  181. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +57 -45
  182. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  183. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  184. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  185. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +8 -4
  186. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  187. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  188. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  189. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +8 -4
  190. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  191. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  192. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  193. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +8 -4
  194. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  195. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  196. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  197. package/dist/shared/src/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.cjs.js +2 -0
  198. package/dist/shared/src/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.cjs.js.map +1 -0
  199. package/dist/shared/src/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.es.js +70 -0
  200. package/dist/shared/src/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.es.js.map +1 -0
  201. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  202. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  203. package/dist/shared/src/containers/Feed/Feed.es.js +247 -151
  204. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  205. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  206. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  207. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +8 -4
  208. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  209. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  210. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  211. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +6 -2
  212. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  213. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js +1 -0
  214. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js.map +1 -1
  215. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js +1 -0
  216. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js.map +1 -1
  217. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  218. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  219. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +9 -5
  220. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  221. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  222. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  223. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +8 -4
  224. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  225. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js +1 -1
  226. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js.map +1 -1
  227. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.es.js +3 -3
  228. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.es.js.map +1 -1
  229. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  230. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  231. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +8 -4
  232. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  233. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  234. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  235. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +59 -55
  236. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  237. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  238. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  239. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +9 -5
  240. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  241. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  242. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  243. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +8 -4
  244. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  245. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  246. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  247. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +6 -2
  248. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  249. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  250. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  251. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +8 -4
  252. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  253. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  254. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  255. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +8 -4
  256. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  257. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js +1 -1
  258. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +16 -16
  260. package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -1
  261. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  262. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  263. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +6 -2
  264. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  266. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  267. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +9 -5
  268. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  269. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  270. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  271. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +6 -2
  272. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  274. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +8 -4
  276. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  277. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  278. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  279. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +8 -4
  280. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  281. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  282. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  283. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +6 -2
  284. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  285. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  286. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  287. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +6 -2
  288. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  289. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  290. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  291. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +6 -2
  292. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  293. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  294. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  295. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +8 -4
  296. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  297. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  298. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  299. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +8 -4
  300. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  301. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  302. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  303. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +6 -2
  304. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  305. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  306. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  307. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +6 -2
  308. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  309. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  310. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  311. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +6 -2
  312. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  314. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  315. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +17 -13
  316. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  317. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  318. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  319. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +7 -3
  320. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  321. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  322. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  323. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +60 -48
  324. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  325. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  326. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  327. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +6 -2
  328. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  329. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  330. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  331. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +8 -4
  332. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  333. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  334. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +24 -24
  335. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  336. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  337. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +8 -4
  338. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  339. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  340. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  341. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +8 -4
  342. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  343. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -1
  344. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -1
  345. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  346. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  347. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +8 -4
  348. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  349. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  350. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  351. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +24 -23
  352. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  353. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  354. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  355. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +83 -88
  356. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  357. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
  358. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
  359. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +1 -1
  360. package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js.map +1 -1
  361. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  362. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  363. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +56 -53
  364. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  365. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
  366. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  367. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +23 -144
  368. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  369. package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.cjs.js.map +1 -1
  370. package/dist/shared/src/containers/Views/hooks/useViewSettingsChanged.es.js.map +1 -1
  371. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  372. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  373. package/dist/shared/src/containers/Views/types.cjs.js +2 -0
  374. package/dist/shared/src/containers/Views/types.cjs.js.map +1 -0
  375. package/dist/shared/src/containers/Views/types.es.js +15 -0
  376. package/dist/shared/src/containers/Views/types.es.js.map +1 -0
  377. package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.cjs.js.map +1 -1
  378. package/dist/shared/src/containers/Views/utils/getCustomViewsFallback.es.js.map +1 -1
  379. package/dist/shared/src/containers/Views/utils/isViewStudioScope.cjs.js +2 -0
  380. package/dist/shared/src/containers/Views/utils/isViewStudioScope.cjs.js.map +1 -0
  381. package/dist/shared/src/containers/Views/utils/isViewStudioScope.es.js +5 -0
  382. package/dist/shared/src/containers/Views/utils/isViewStudioScope.es.js.map +1 -0
  383. package/dist/shared/src/containers/Views/utils/portalUtils.cjs.js.map +1 -1
  384. package/dist/shared/src/containers/Views/utils/portalUtils.es.js.map +1 -1
  385. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  386. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  387. package/dist/shared/src/context/DetailsPanelContext.es.js +76 -77
  388. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  389. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  390. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  391. package/dist/shared/src/context/WebsocketContext.es.js +9 -5
  392. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  393. package/dist/types/api/generated/access.d.ts +6 -0
  394. package/dist/types/api/generated/graphql.d.ts +8 -4
  395. package/dist/types/api/generated/users.d.ts +6 -1
  396. package/dist/types/components/LinksManager/LinkManagerItem.d.ts +2 -0
  397. package/dist/types/components/LinksManager/LinksManager.styled.d.ts +6 -0
  398. package/dist/types/components/LinksManager/utils/groupLinks.d.ts +14 -0
  399. package/dist/types/components/ReviewablesList/ReviewablesUpload.d.ts +1 -0
  400. package/dist/types/containers/EntityPickerDialog/hooks/useGetEntityPickerData.d.ts +1 -1
  401. package/dist/types/containers/EntityPickerDialog/hooks/usePreserveChildSelectionByName.d.ts +11 -0
  402. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +1 -0
  403. package/dist/types/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.d.ts +2 -1
  404. package/dist/types/containers/Views/ViewsMenuContainer/ViewsMenuContainer.d.ts +2 -2
  405. package/dist/types/containers/Views/context/ViewsContext.d.ts +3 -2
  406. package/dist/types/containers/Views/hooks/useBaseViewMutations.d.ts +1 -1
  407. package/dist/types/containers/Views/hooks/useBuildViewMenuItems.d.ts +2 -3
  408. package/dist/types/containers/Views/hooks/useSaveViewFromCurrent.d.ts +2 -1
  409. package/dist/types/containers/Views/hooks/useViewSettingsChanged.d.ts +1 -1
  410. package/dist/types/containers/Views/index.d.ts +1 -7
  411. package/dist/types/containers/Views/types.d.ts +10 -0
  412. package/dist/types/containers/Views/utils/isViewStudioScope.d.ts +2 -0
  413. package/dist/types/containers/Views/utils/portalUtils.d.ts +1 -1
  414. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ViewsContext.cjs.js","sources":["../../../../../../src/containers/Views/context/ViewsContext.tsx"],"sourcesContent":["import { createContext, useContext, FC, ReactNode, useState, useMemo, useCallback } from 'react'\nimport { ViewType, WORKING_VIEW_ID } from '../index'\nimport {\n GetDefaultViewApiResponse,\n useGetWorkingViewQuery,\n useGetViewQuery,\n useListViewsQuery,\n UserModel,\n ViewListItemModel,\n viewsQueries,\n useGetShareOptionsQuery,\n ShareOption,\n useGetBaseViewQuery,\n} from '@shared/api'\nimport useBuildViewMenuItems, { BASE_VIEW_ID } from '../hooks/useBuildViewMenuItems'\nimport { ViewMenuItem } from '../ViewsMenu/ViewsMenu'\nimport { useGlobalContext, usePowerpack } from '@shared/context'\nimport { useSelectedView } from '../hooks/useSelectedView'\nimport { UseViewMutations, useViewsMutations } from '../hooks/useViewsMutations'\nimport { useBaseViewMutations } from '../hooks/useBaseViewMutations'\nimport { useSaveViewFromCurrent } from '../hooks/useSaveViewFromCurrent'\nimport { useViewSettingsChanged } from '../hooks/useViewSettingsChanged'\nimport { useLocalStorage } from '@shared/hooks'\n\nexport type ViewData = GetDefaultViewApiResponse\nexport type ViewSettings = GetDefaultViewApiResponse['settings']\nexport type SelectedViewState = ViewData | undefined // id of view otherwise null with use working\nexport type EditingViewState = string | true | null // id of view being edited otherwise null\n\nexport type CollapsedViewState = Record<string, boolean>\n\nexport interface ViewsContextValue {\n // State\n viewType?: ViewType\n projectName?: string\n currentUser?: UserModel\n isMenuOpen: boolean\n editingView: EditingViewState\n selectedView: SelectedViewState\n\n // Views data\n viewsList: ViewListItemModel[]\n viewSettings: ViewSettings | undefined\n // Working view\n workingSettings: ViewSettings | undefined\n workingView: ViewListItemModel | undefined\n isViewWorking: boolean\n onUpdateWorkingView: (\n payload: Partial<ViewData>,\n options?: { selectView?: boolean },\n ) => Promise<void>\n // base views\n projectBaseView: ViewListItemModel | undefined\n studioBaseView: ViewListItemModel | undefined\n editingViewId: string | undefined\n viewMenuItems: ViewMenuItem[]\n editingViewData?: ViewData\n isLoadingEditingViewData: boolean\n isLoadingViews: boolean\n\n // Data\n shareOptions?: ShareOption[] // available users to share with (undefined means loading)\n\n // Actions\n setIsMenuOpen: (open: boolean) => void\n setEditingView: (editing: EditingViewState) => void\n setSelectedView: (viewId: string) => void\n onSettingsChanged: (changed: boolean) => void\n\n // Mutations\n onCreateView: UseViewMutations['onCreateView']\n onDeleteView: UseViewMutations['onDeleteView']\n onUpdateView: UseViewMutations['onUpdateView']\n\n // Base view mutations\n onCreateBaseView: (isStudioScope: boolean) => Promise<void>\n onUpdateBaseView: (baseViewId: string, isStudioScope: boolean) => Promise<void>\n onDeleteBaseView: (baseViewId: string, isStudioScope: boolean) => Promise<void>\n onLoadBaseView: (isStudioScope: boolean) => Promise<void>\n\n // Actions (shared)\n resetWorkingView: () => Promise<void>\n\n // api\n api: typeof viewsQueries\n dispatch: any // dispatch is used to dispatch api mutations in pp like the share one.\n}\n\nconst ViewsContext = createContext<ViewsContextValue | null>(null)\n\nexport interface ViewsProviderProps {\n children: ReactNode\n viewType?: string\n projectName?: string\n dispatch?: any\n debug?: {\n powerLicense?: boolean\n }\n}\n\nexport const ViewsProvider: FC<ViewsProviderProps> = ({\n children,\n viewType,\n projectName,\n dispatch,\n debug,\n}) => {\n let { powerLicense } = usePowerpack()\n if (debug?.powerLicense !== undefined) {\n console.warn('Using debug power license:', debug.powerLicense)\n powerLicense = debug.powerLicense\n }\n\n const { user: currentUser } = useGlobalContext()\n\n const [isMenuOpen, setIsMenuOpen] = useState(false)\n const [editingView, setEditingView] = useState<EditingViewState>(null)\n // Collapsed state persisted globally across all viewTypes and projects\n const stateKey = 'viewsMenuCollapsed'\n\n const [collapsedSections, setCollapsedSections] = useLocalStorage<CollapsedViewState>(\n stateKey,\n {},\n )\n\n // anything extra to do when a view is created successfully\n const handleOnViewCreated = (view: ViewData) => {\n const key = view.visibility === 'private' ? 'myViews' : 'sharedViews'\n // if the section is collapsed, expand it\n if (collapsedSections[key]) {\n const newCollapsedSections = { ...collapsedSections }\n newCollapsedSections[key] = false\n setCollapsedSections(newCollapsedSections)\n }\n }\n\n // when editing the view, get all users that can be shared to that view\n const { data: shareOptions } = useGetShareOptionsQuery(\n { projectName },\n { skip: !powerLicense || !editingView },\n )\n\n // setting of default views\n const [selectedView, setSelectedView, previousSelectedViewId] = useSelectedView({\n viewType: viewType as string,\n projectName: projectName,\n })\n\n const [viewSettingsChanged, setViewSettingsChanged] = useViewSettingsChanged({\n viewType: viewType as ViewType,\n })\n\n // Fetch views data and filter out base views\n const { currentData: viewsListRaw = [], isLoading: isLoadingViews } = useListViewsQuery(\n { projectName: projectName, viewType: viewType as string },\n { skip: !viewType },\n )\n\n // Filter out base views from the list\n // Filter out studio working view if in project scope\n const viewsList = useMemo(\n () =>\n viewsListRaw.filter(\n (view) =>\n view.label !== BASE_VIEW_ID && !(projectName && view.working && view.scope === 'studio'),\n ),\n [viewsListRaw],\n )\n\n const { onCreateView, onDeleteView, onUpdateView, onResetWorkingView } = useViewsMutations({\n viewType,\n projectName,\n viewsList,\n onCreate: handleOnViewCreated,\n })\n\n // always get your working view\n const { currentData: workingView } = useGetWorkingViewQuery(\n { projectName: projectName, viewType: viewType as string },\n { skip: !viewType },\n )\n\n // Fetch both project and studio base views\n const { currentData: projectBaseView } = useGetBaseViewQuery(\n { projectName: projectName, viewType: viewType as string },\n { skip: !viewType },\n )\n const { currentData: studioBaseView } = useGetBaseViewQuery(\n { projectName: undefined, viewType: viewType as string },\n { skip: !viewType },\n )\n\n const workingSettings = workingView?.settings\n\n // which settings to use for the view\n const viewSettings =\n selectedView?.id === WORKING_VIEW_ID ? workingSettings : selectedView?.settings\n\n // is the working view selected?\n const isViewWorking = selectedView?.id === workingView?.id\n // were we just on a custom view and then edited it and ended up on the working view\n const editingViewId =\n viewSettingsChanged &&\n isViewWorking &&\n !!previousSelectedViewId &&\n previousSelectedViewId !== workingView?.id\n ? previousSelectedViewId\n : undefined\n\n // get data for the view we are editing\n const { currentData: editingViewDataData, isFetching: isLoadingEditingViewData } =\n useGetViewQuery(\n {\n viewId: editingView as string,\n projectName: isViewStudioScope(editingView as string, viewsList) ? undefined : projectName,\n viewType: viewType as string,\n },\n { skip: !(typeof editingView === 'string') || !powerLicense },\n )\n\n const editingViewData = useMemo(\n () => (editingView === editingViewDataData?.id ? editingViewDataData : undefined),\n [editingView, editingViewDataData],\n )\n\n const { onSaveViewFromCurrent } = useSaveViewFromCurrent({\n viewType: viewType,\n projectName,\n viewsList,\n sourceSettings: viewSettings,\n onUpdateView: onUpdateView,\n })\n\n // Base view mutations\n const { onCreateBaseView, onUpdateBaseView, onDeleteBaseView, onLoadBaseView } =\n useBaseViewMutations({\n viewType: viewType as string,\n projectName,\n viewSettings,\n workingView,\n dispatch,\n })\n\n const onUpdateWorkingView = useCallback(\n async (payload: Partial<ViewData>, { selectView }: { selectView?: boolean } = {}) => {\n if (!workingView?.id) {\n console.error('No working view to update')\n return\n }\n await onUpdateView(workingView.id, payload, !projectName)\n if (selectView) {\n setSelectedView(workingView.id)\n }\n },\n [onUpdateView, workingView],\n )\n\n // Reset working view to default (empty) settings\n const resetWorkingView = useCallback(async () => {\n try {\n await onResetWorkingView({\n existingWorkingViewId: workingView?.id,\n selectedViewId: selectedView?.id,\n setSelectedView,\n setSettingsChanged: setViewSettingsChanged,\n notify: true,\n })\n } catch (error) {\n console.error('Failed to reset view:', error)\n }\n }, [workingView, onResetWorkingView, selectedView, setSelectedView, setViewSettingsChanged])\n\n // build the menu items for the views\n const viewMenuItems = useBuildViewMenuItems({\n viewsList,\n workingView,\n viewType,\n projectName,\n currentUser,\n useWorkingView: !powerLicense,\n editingViewId,\n selectedId: selectedView?.id,\n collapsed: collapsedSections,\n setCollapsed: setCollapsedSections,\n onResetWorkingView: resetWorkingView,\n onSelect: (viewId) => {\n setSelectedView(viewId)\n // reset the settings changed state when switching views\n setViewSettingsChanged(false)\n // close the menu when selecting a view\n setIsMenuOpen(false)\n },\n onEdit: (viewId) => setEditingView(viewId),\n onSave: async (viewId) => onSaveViewFromCurrent(viewId),\n })\n\n const value: ViewsContextValue = {\n viewType,\n projectName,\n isMenuOpen,\n editingView,\n currentUser,\n selectedView,\n viewSettings,\n editingViewData,\n isLoadingEditingViewData,\n viewsList,\n // Working view\n workingSettings,\n workingView,\n isViewWorking,\n onUpdateWorkingView,\n // base views\n projectBaseView,\n studioBaseView,\n // base view mutations\n onCreateBaseView,\n onUpdateBaseView,\n onDeleteBaseView,\n onLoadBaseView,\n editingViewId,\n viewMenuItems,\n isLoadingViews,\n // data\n shareOptions,\n setIsMenuOpen,\n setEditingView,\n setSelectedView,\n onSettingsChanged: setViewSettingsChanged,\n // mutations\n onCreateView,\n onUpdateView,\n onDeleteView,\n // shared actions\n resetWorkingView,\n // api\n api: viewsQueries,\n dispatch,\n }\n\n return <ViewsContext.Provider value={value}>{children}</ViewsContext.Provider>\n}\n\nexport const useViewsContext = (): ViewsContextValue => {\n const context = useContext(ViewsContext)\n if (!context) {\n throw new Error('useViewsContext must be used within a ViewsProvider')\n }\n return context\n}\n\nexport const isViewStudioScope = (viewId: string | undefined, viewsList: ViewListItemModel[]) => {\n if (!viewId) return true\n const view = viewsList.find((v) => v.id === viewId)\n return view?.scope === 'studio'\n}\n"],"names":["ViewsContext","createContext","ViewsProvider","children","viewType","projectName","dispatch","debug","powerLicense","usePowerpack","currentUser","useGlobalContext","isMenuOpen","setIsMenuOpen","useState","editingView","setEditingView","stateKey","collapsedSections","setCollapsedSections","useLocalStorage","handleOnViewCreated","view","key","newCollapsedSections","shareOptions","useGetShareOptionsQuery","selectedView","setSelectedView","previousSelectedViewId","useSelectedView","viewSettingsChanged","setViewSettingsChanged","useViewSettingsChanged","viewsListRaw","isLoadingViews","useListViewsQuery","viewsList","useMemo","BASE_VIEW_ID","onCreateView","onDeleteView","onUpdateView","onResetWorkingView","useViewsMutations","workingView","useGetWorkingViewQuery","projectBaseView","useGetBaseViewQuery","studioBaseView","workingSettings","viewSettings","WORKING_VIEW_ID","isViewWorking","editingViewId","editingViewDataData","isLoadingEditingViewData","useGetViewQuery","isViewStudioScope","editingViewData","onSaveViewFromCurrent","useSaveViewFromCurrent","onCreateBaseView","onUpdateBaseView","onDeleteBaseView","onLoadBaseView","useBaseViewMutations","onUpdateWorkingView","useCallback","payload","selectView","resetWorkingView","error","viewMenuItems","useBuildViewMenuItems","viewId","value","viewsQueries","jsx","useViewsContext","context","useContext","v"],"mappings":"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"}
1
+ {"version":3,"file":"ViewsContext.cjs.js","sources":["../../../../../../src/containers/Views/context/ViewsContext.tsx"],"sourcesContent":["import { createContext, useContext, FC, ReactNode, useState, useMemo, useCallback } from 'react'\nimport { type ViewType, WORKING_VIEW_ID, BASE_VIEW_ID } from '../types'\nimport {\n GetDefaultViewApiResponse,\n useGetWorkingViewQuery,\n useGetViewQuery,\n useListViewsQuery,\n UserModel,\n ViewListItemModel,\n viewsQueries,\n useGetShareOptionsQuery,\n ShareOption,\n useGetBaseViewQuery,\n} from '@shared/api'\nimport useBuildViewMenuItems from '../hooks/useBuildViewMenuItems'\nimport { ViewMenuItem } from '../ViewsMenu/ViewsMenu'\nimport { useGlobalContext, usePowerpack } from '@shared/context'\nimport { useSelectedView } from '../hooks/useSelectedView'\nimport { type UseViewMutations, useViewsMutations } from '../hooks/useViewsMutations'\nimport { useBaseViewMutations } from '../hooks/useBaseViewMutations'\nimport { useSaveViewFromCurrent } from '../hooks/useSaveViewFromCurrent'\nimport { useViewSettingsChanged } from '../hooks/useViewSettingsChanged'\nimport { useLocalStorage } from '@shared/hooks'\n\nexport type ViewData = GetDefaultViewApiResponse\nexport type ViewSettings = GetDefaultViewApiResponse['settings']\nexport type SelectedViewState = ViewData | undefined // id of view otherwise null with use working\nexport type EditingViewState = string | true | null // id of view being edited otherwise null\n\nexport type CollapsedViewState = Record<string, boolean>\n\nexport interface ViewsContextValue {\n // State\n viewType?: ViewType\n projectName?: string\n currentUser?: UserModel\n isMenuOpen: boolean\n editingView: EditingViewState\n selectedView: SelectedViewState\n\n // Views data\n viewsList: ViewListItemModel[]\n viewSettings: ViewSettings | undefined\n // Working view\n workingSettings: ViewSettings | undefined\n workingView: ViewListItemModel | undefined\n isViewWorking: boolean\n onUpdateWorkingView: (\n payload: Partial<ViewData>,\n options?: { selectView?: boolean },\n ) => Promise<void>\n // base views\n projectBaseView: ViewListItemModel | undefined\n studioBaseView: ViewListItemModel | undefined\n editingViewId: string | undefined\n viewMenuItems: ViewMenuItem[]\n editingViewData?: ViewData\n isLoadingEditingViewData: boolean\n isLoadingViews: boolean\n\n // Data\n shareOptions?: ShareOption[] // available users to share with (undefined means loading)\n\n // Actions\n setIsMenuOpen: (open: boolean) => void\n setEditingView: (editing: EditingViewState) => void\n setSelectedView: (viewId: string) => void\n onSettingsChanged: (changed: boolean) => void\n\n // Mutations\n onCreateView: UseViewMutations['onCreateView']\n onDeleteView: UseViewMutations['onDeleteView']\n onUpdateView: UseViewMutations['onUpdateView']\n\n // Base view mutations\n onCreateBaseView: (isStudioScope: boolean) => Promise<void>\n onUpdateBaseView: (baseViewId: string, isStudioScope: boolean) => Promise<void>\n onDeleteBaseView: (baseViewId: string, isStudioScope: boolean) => Promise<void>\n onLoadBaseView: (isStudioScope: boolean) => Promise<void>\n\n // Actions (shared)\n resetWorkingView: () => Promise<void>\n\n // api\n api: typeof viewsQueries\n dispatch: any // dispatch is used to dispatch api mutations in pp like the share one.\n}\n\nconst ViewsContext = createContext<ViewsContextValue | null>(null)\n\nexport interface ViewsProviderProps {\n children: ReactNode\n viewType?: string\n projectName?: string\n dispatch?: any\n debug?: {\n powerLicense?: boolean\n }\n}\n\nexport const ViewsProvider: FC<ViewsProviderProps> = ({\n children,\n viewType,\n projectName,\n dispatch,\n debug,\n}) => {\n let { powerLicense } = usePowerpack()\n if (debug?.powerLicense !== undefined) {\n console.warn('Using debug power license:', debug.powerLicense)\n powerLicense = debug.powerLicense\n }\n\n const { user: currentUser } = useGlobalContext()\n\n const [isMenuOpen, setIsMenuOpen] = useState(false)\n const [editingView, setEditingView] = useState<EditingViewState>(null)\n // Collapsed state persisted globally across all viewTypes and projects\n const stateKey = 'viewsMenuCollapsed'\n\n const [collapsedSections, setCollapsedSections] = useLocalStorage<CollapsedViewState>(\n stateKey,\n {},\n )\n\n // anything extra to do when a view is created successfully\n const handleOnViewCreated = (view: ViewData) => {\n const key = view.visibility === 'private' ? 'myViews' : 'sharedViews'\n // if the section is collapsed, expand it\n if (collapsedSections[key]) {\n const newCollapsedSections = { ...collapsedSections }\n newCollapsedSections[key] = false\n setCollapsedSections(newCollapsedSections)\n }\n }\n\n // when editing the view, get all users that can be shared to that view\n const { data: shareOptions } = useGetShareOptionsQuery(\n { projectName },\n { skip: !powerLicense || !editingView },\n )\n\n // setting of default views\n const [selectedView, setSelectedView, previousSelectedViewId] = useSelectedView({\n viewType: viewType as string,\n projectName: projectName,\n })\n\n const [viewSettingsChanged, setViewSettingsChanged] = useViewSettingsChanged({\n viewType: viewType as ViewType,\n })\n\n // Fetch views data and filter out base views\n const { currentData: viewsListRaw = [], isLoading: isLoadingViews } = useListViewsQuery(\n { projectName: projectName, viewType: viewType as string },\n { skip: !viewType },\n )\n\n // Filter out base views from the list\n // Filter out studio working view if in project scope\n const viewsList = useMemo(\n () =>\n viewsListRaw.filter(\n (view) =>\n view.label !== BASE_VIEW_ID && !(projectName && view.working && view.scope === 'studio'),\n ),\n [viewsListRaw],\n )\n\n const { onCreateView, onDeleteView, onUpdateView, onResetWorkingView } = useViewsMutations({\n viewType,\n projectName,\n viewsList,\n onCreate: handleOnViewCreated,\n })\n\n // always get your working view\n const { currentData: workingView } = useGetWorkingViewQuery(\n { projectName: projectName, viewType: viewType as string },\n { skip: !viewType },\n )\n\n // Fetch both project and studio base views\n const { currentData: projectBaseView } = useGetBaseViewQuery(\n { projectName: projectName, viewType: viewType as string },\n { skip: !viewType },\n )\n const { currentData: studioBaseView } = useGetBaseViewQuery(\n { projectName: undefined, viewType: viewType as string },\n { skip: !viewType },\n )\n\n const workingSettings = workingView?.settings\n\n // which settings to use for the view\n const viewSettings =\n selectedView?.id === WORKING_VIEW_ID ? workingSettings : selectedView?.settings\n\n // is the working view selected?\n const isViewWorking = selectedView?.id === workingView?.id\n // were we just on a custom view and then edited it and ended up on the working view\n const editingViewId =\n viewSettingsChanged &&\n isViewWorking &&\n !!previousSelectedViewId &&\n previousSelectedViewId !== workingView?.id\n ? previousSelectedViewId\n : undefined\n\n // get data for the view we are editing\n const { currentData: editingViewDataData, isFetching: isLoadingEditingViewData } =\n useGetViewQuery(\n {\n viewId: editingView as string,\n projectName: isViewStudioScope(editingView as string, viewsList) ? undefined : projectName,\n viewType: viewType as string,\n },\n { skip: !(typeof editingView === 'string') || !powerLicense },\n )\n\n const editingViewData = useMemo(\n () => (editingView === editingViewDataData?.id ? editingViewDataData : undefined),\n [editingView, editingViewDataData],\n )\n\n const { onSaveViewFromCurrent } = useSaveViewFromCurrent({\n viewType: viewType,\n projectName,\n viewsList,\n sourceSettings: viewSettings,\n onUpdateView: onUpdateView,\n })\n\n // Base view mutations\n const { onCreateBaseView, onUpdateBaseView, onDeleteBaseView, onLoadBaseView } =\n useBaseViewMutations({\n viewType: viewType as string,\n projectName,\n viewSettings,\n workingView,\n dispatch,\n })\n\n const onUpdateWorkingView = useCallback(\n async (payload: Partial<ViewData>, { selectView }: { selectView?: boolean } = {}) => {\n if (!workingView?.id) {\n console.error('No working view to update')\n return\n }\n await onUpdateView(workingView.id, payload, !projectName)\n if (selectView) {\n setSelectedView(workingView.id)\n }\n },\n [onUpdateView, workingView],\n )\n\n // Reset working view to default (empty) settings\n const resetWorkingView = useCallback(async () => {\n try {\n await onResetWorkingView({\n existingWorkingViewId: workingView?.id,\n selectedViewId: selectedView?.id,\n setSelectedView,\n setSettingsChanged: setViewSettingsChanged,\n notify: true,\n })\n } catch (error) {\n console.error('Failed to reset view:', error)\n }\n }, [workingView, onResetWorkingView, selectedView, setSelectedView, setViewSettingsChanged])\n\n // build the menu items for the views\n const viewMenuItems = useBuildViewMenuItems({\n viewsList,\n workingView,\n viewType,\n projectName,\n currentUser,\n useWorkingView: !powerLicense,\n editingViewId,\n selectedId: selectedView?.id,\n collapsed: collapsedSections,\n setCollapsed: setCollapsedSections,\n onResetWorkingView: resetWorkingView,\n onSelect: (viewId) => {\n setSelectedView(viewId)\n // reset the settings changed state when switching views\n setViewSettingsChanged(false)\n // close the menu when selecting a view\n setIsMenuOpen(false)\n },\n onEdit: (viewId) => setEditingView(viewId),\n onSave: async (viewId) => onSaveViewFromCurrent(viewId),\n })\n\n const value: ViewsContextValue = {\n viewType,\n projectName,\n isMenuOpen,\n editingView,\n currentUser,\n selectedView,\n viewSettings,\n editingViewData,\n isLoadingEditingViewData,\n viewsList,\n // Working view\n workingSettings,\n workingView,\n isViewWorking,\n onUpdateWorkingView,\n // base views\n projectBaseView,\n studioBaseView,\n // base view mutations\n onCreateBaseView,\n onUpdateBaseView,\n onDeleteBaseView,\n onLoadBaseView,\n editingViewId,\n viewMenuItems,\n isLoadingViews,\n // data\n shareOptions,\n setIsMenuOpen,\n setEditingView,\n setSelectedView,\n onSettingsChanged: setViewSettingsChanged,\n // mutations\n onCreateView,\n onUpdateView,\n onDeleteView,\n // shared actions\n resetWorkingView,\n // api\n api: viewsQueries,\n dispatch,\n }\n\n return <ViewsContext.Provider value={value}>{children}</ViewsContext.Provider>\n}\n\nexport const useViewsContext = (): ViewsContextValue => {\n const context = useContext(ViewsContext)\n if (!context) {\n throw new Error('useViewsContext must be used within a ViewsProvider')\n }\n return context\n}\n\nimport { isViewStudioScope } from '../utils/isViewStudioScope'\nexport { isViewStudioScope }\n"],"names":["ViewsContext","createContext","ViewsProvider","children","viewType","projectName","dispatch","debug","powerLicense","usePowerpack","currentUser","useGlobalContext","isMenuOpen","setIsMenuOpen","useState","editingView","setEditingView","stateKey","collapsedSections","setCollapsedSections","useLocalStorage","handleOnViewCreated","view","key","newCollapsedSections","shareOptions","useGetShareOptionsQuery","selectedView","setSelectedView","previousSelectedViewId","useSelectedView","viewSettingsChanged","setViewSettingsChanged","useViewSettingsChanged","viewsListRaw","isLoadingViews","useListViewsQuery","viewsList","useMemo","BASE_VIEW_ID","onCreateView","onDeleteView","onUpdateView","onResetWorkingView","useViewsMutations","workingView","useGetWorkingViewQuery","projectBaseView","useGetBaseViewQuery","studioBaseView","workingSettings","viewSettings","WORKING_VIEW_ID","isViewWorking","editingViewId","editingViewDataData","isLoadingEditingViewData","useGetViewQuery","isViewStudioScope","editingViewData","onSaveViewFromCurrent","useSaveViewFromCurrent","onCreateBaseView","onUpdateBaseView","onDeleteBaseView","onLoadBaseView","useBaseViewMutations","onUpdateWorkingView","useCallback","payload","selectView","resetWorkingView","error","viewMenuItems","useBuildViewMenuItems","viewId","value","viewsQueries","jsx","useViewsContext","context","useContext"],"mappings":"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"}
@@ -1,13 +1,6 @@
1
1
  import { j as it } from "../../../../../_virtual/jsx-runtime.es.js";
2
- import { createContext as ot, useState as M, useMemo as G, useCallback as O, useContext as rt } from "react";
3
- import "react-dom";
4
- import "../Views.styled.es.js";
5
- import "clsx";
6
- import { WORKING_VIEW_ID as et } from "../ViewsMenuContainer/ViewsMenuContainer.es.js";
7
- import { useLocalStorage as st } from "../../../hooks/useLocalStorage.es.js";
8
- import "../../../context/RemoteModulesContext.es.js";
9
- import "../../../../../_virtual/runtime.es.js";
10
- import "../../../../../_virtual/semver.es.js";
2
+ import { createContext as ot, useState as M, useMemo as G, useCallback as O, useContext as et } from "react";
3
+ import { BASE_VIEW_ID as rt, WORKING_VIEW_ID as st } from "../types.es.js";
11
4
  import "../../../api/base/client.es.js";
12
5
  import "../../../api/generated/graphql.es.js";
13
6
  import "../../../api/generated/graphqlLinks.es.js";
@@ -97,17 +90,18 @@ import { useListViewsQuery as mt, useGetWorkingViewQuery as pt, useGetBaseViewQu
97
90
  import { viewsQueries as dt } from "../../../api/queries/views/updateViews.es.js";
98
91
  import "../../../api/queries/watchers/getWatchers.es.js";
99
92
  import "../../../api/queries/uris/getUris.es.js";
100
- import "lodash";
101
- import "react-toastify";
93
+ import ct from "../hooks/useBuildViewMenuItems.es.js";
94
+ import "../../../context/RemoteModulesContext.es.js";
102
95
  import "../../../context/DetailsPanelContext.es.js";
103
96
  import "../../../context/SubtasksModulesContext.es.js";
104
97
  import "../../../context/ThumbnailUploaderContext.es.js";
105
98
  import "../../../context/SettingsPanelContext.es.js";
106
99
  import "../../../context/pip/PiPProvider.es.js";
100
+ import "react-dom";
107
101
  import "../../../context/pip/PiPWrapper.es.js";
108
102
  import "../../../context/AddonProjectContext.es.js";
109
103
  import "../../../context/AddonContext.es.js";
110
- import { usePowerpack as ct } from "../../../context/PowerpackContext.es.js";
104
+ import { usePowerpack as wt } from "../../../context/PowerpackContext.es.js";
111
105
  import "../../../context/MoveEntityContext.es.js";
112
106
  import "../../../context/MenuContext.es.js";
113
107
  import "../../../context/WebsocketContext.es.js";
@@ -115,59 +109,60 @@ import { useGlobalContext as ut } from "../../../context/GlobalContext.es.js";
115
109
  import "../../../context/ProjectContext.es.js";
116
110
  import "../../../context/ProjectFoldersContext.es.js";
117
111
  import "../../../context/UriContext.es.js";
112
+ import { useSelectedView as Vt } from "../hooks/useSelectedView.es.js";
113
+ import { useViewsMutations as lt } from "../hooks/useViewsMutations.es.js";
114
+ import { useBaseViewMutations as gt } from "../hooks/useBaseViewMutations.es.js";
115
+ import { useSaveViewFromCurrent as ft } from "../hooks/useSaveViewFromCurrent.es.js";
116
+ import { useViewSettingsChanged as St } from "../hooks/useViewSettingsChanged.es.js";
117
+ import { useLocalStorage as Ct } from "../../../hooks/useLocalStorage.es.js";
118
+ import "../../../../../_virtual/runtime.es.js";
119
+ import "../../../../../_virtual/semver.es.js";
120
+ import "lodash";
121
+ import "react-toastify";
118
122
  import "react-redux";
119
123
  import "custom-protocol-check";
120
124
  import "../../ProjectTreeTable/components/GroupSettingsFallback.es.js";
121
- import "@ynput/ayon-react-components";
122
- import "../ViewsMenu/ViewsMenu.es.js";
123
- import "uuid";
124
- import wt, { BASE_VIEW_ID as Vt } from "../hooks/useBuildViewMenuItems.es.js";
125
- import { useBaseViewMutations as lt } from "../hooks/useBaseViewMutations.es.js";
126
- import { useSaveViewFromCurrent as gt } from "../hooks/useSaveViewFromCurrent.es.js";
127
- import { useSelectedView as ft } from "../hooks/useSelectedView.es.js";
128
- import { useViewsMutations as St } from "../hooks/useViewsMutations.es.js";
129
- import "../../../util/pubsub.es.js";
130
- import { useViewSettingsChanged as Ct } from "../hooks/useViewSettingsChanged.es.js";
131
- const R = ot(null), zo = ({
132
- children: e,
125
+ import { isViewStudioScope as kt } from "../utils/isViewStudioScope.es.js";
126
+ const R = ot(null), _o = ({
127
+ children: p,
133
128
  viewType: t,
134
129
  projectName: o,
135
- dispatch: a,
136
- debug: V
130
+ dispatch: S,
131
+ debug: u
137
132
  }) => {
138
- let { powerLicense: d } = ct();
139
- V?.powerLicense !== void 0 && (console.warn("Using debug power license:", V.powerLicense), d = V.powerLicense);
140
- const { user: C } = ut(), [U, k] = M(!1), [s, D] = M(null), b = "viewsMenuCollapsed", [l, I] = st(
133
+ let { powerLicense: a } = wt();
134
+ u?.powerLicense !== void 0 && (console.warn("Using debug power license:", u.powerLicense), a = u.powerLicense);
135
+ const { user: C } = ut(), [U, k] = M(!1), [r, I] = M(null), b = "viewsMenuCollapsed", [V, D] = Ct(
141
136
  b,
142
137
  {}
143
138
  ), F = (i) => {
144
139
  const w = i.visibility === "private" ? "myViews" : "sharedViews";
145
- if (l[w]) {
146
- const E = { ...l };
147
- E[w] = !1, I(E);
140
+ if (V[w]) {
141
+ const E = { ...V };
142
+ E[w] = !1, D(E);
148
143
  }
149
144
  }, { data: P } = nt(
150
145
  { projectName: o },
151
- { skip: !d || !s }
152
- ), [n, m, g] = ft({
146
+ { skip: !a || !r }
147
+ ), [s, n, l] = Vt({
153
148
  viewType: t,
154
149
  projectName: o
155
- }), [_, c] = Ct({
150
+ }), [_, d] = St({
156
151
  viewType: t
157
152
  }), { currentData: h = [], isLoading: A } = mt(
158
153
  { projectName: o, viewType: t },
159
154
  { skip: !t }
160
- ), p = G(
155
+ ), m = G(
161
156
  () => h.filter(
162
- (i) => i.label !== Vt && !(o && i.working && i.scope === "studio")
157
+ (i) => i.label !== rt && !(o && i.working && i.scope === "studio")
163
158
  ),
164
159
  [h]
165
- ), { onCreateView: K, onDeleteView: q, onUpdateView: u, onResetWorkingView: x } = St({
160
+ ), { onCreateView: K, onDeleteView: q, onUpdateView: c, onResetWorkingView: x } = lt({
166
161
  viewType: t,
167
162
  projectName: o,
168
- viewsList: p,
163
+ viewsList: m,
169
164
  onCreate: F
170
- }), { currentData: r } = pt(
165
+ }), { currentData: e } = pt(
171
166
  { projectName: o, viewType: t },
172
167
  { skip: !t }
173
168
  ), { currentData: y } = Q(
@@ -176,80 +171,80 @@ const R = ot(null), zo = ({
176
171
  ), { currentData: z } = Q(
177
172
  { projectName: void 0, viewType: t },
178
173
  { skip: !t }
179
- ), L = r?.settings, f = n?.id === et ? L : n?.settings, W = n?.id === r?.id, B = _ && W && g && g !== r?.id ? g : void 0, { currentData: S, isFetching: H } = at(
174
+ ), L = e?.settings, g = s?.id === st ? L : s?.settings, W = s?.id === e?.id, B = _ && W && l && l !== e?.id ? l : void 0, { currentData: f, isFetching: H } = at(
180
175
  {
181
- viewId: s,
182
- projectName: kt(s, p) ? void 0 : o,
176
+ viewId: r,
177
+ projectName: kt(r, m) ? void 0 : o,
183
178
  viewType: t
184
179
  },
185
- { skip: typeof s != "string" || !d }
180
+ { skip: typeof r != "string" || !a }
186
181
  ), J = G(
187
- () => s === S?.id ? S : void 0,
188
- [s, S]
189
- ), { onSaveViewFromCurrent: X } = gt({
182
+ () => r === f?.id ? f : void 0,
183
+ [r, f]
184
+ ), { onSaveViewFromCurrent: X } = ft({
190
185
  viewType: t,
191
186
  projectName: o,
192
- viewsList: p,
193
- sourceSettings: f,
194
- onUpdateView: u
195
- }), { onCreateBaseView: Y, onUpdateBaseView: Z, onDeleteBaseView: $, onLoadBaseView: j } = lt({
187
+ viewsList: m,
188
+ sourceSettings: g,
189
+ onUpdateView: c
190
+ }), { onCreateBaseView: Y, onUpdateBaseView: Z, onDeleteBaseView: $, onLoadBaseView: j } = gt({
196
191
  viewType: t,
197
192
  projectName: o,
198
- viewSettings: f,
199
- workingView: r,
200
- dispatch: a
193
+ viewSettings: g,
194
+ workingView: e,
195
+ dispatch: S
201
196
  }), N = O(
202
197
  async (i, { selectView: w } = {}) => {
203
- if (!r?.id) {
198
+ if (!e?.id) {
204
199
  console.error("No working view to update");
205
200
  return;
206
201
  }
207
- await u(r.id, i, !o), w && m(r.id);
202
+ await c(e.id, i, !o), w && n(e.id);
208
203
  },
209
- [u, r]
204
+ [c, e]
210
205
  ), v = O(async () => {
211
206
  try {
212
207
  await x({
213
- existingWorkingViewId: r?.id,
214
- selectedViewId: n?.id,
215
- setSelectedView: m,
216
- setSettingsChanged: c,
208
+ existingWorkingViewId: e?.id,
209
+ selectedViewId: s?.id,
210
+ setSelectedView: n,
211
+ setSettingsChanged: d,
217
212
  notify: !0
218
213
  });
219
214
  } catch (i) {
220
215
  console.error("Failed to reset view:", i);
221
216
  }
222
- }, [r, x, n, m, c]), T = wt({
223
- viewsList: p,
224
- workingView: r,
217
+ }, [e, x, s, n, d]), T = ct({
218
+ viewsList: m,
219
+ workingView: e,
225
220
  viewType: t,
226
221
  projectName: o,
227
222
  currentUser: C,
228
- useWorkingView: !d,
223
+ useWorkingView: !a,
229
224
  editingViewId: B,
230
- selectedId: n?.id,
231
- collapsed: l,
232
- setCollapsed: I,
225
+ selectedId: s?.id,
226
+ collapsed: V,
227
+ setCollapsed: D,
233
228
  onResetWorkingView: v,
234
229
  onSelect: (i) => {
235
- m(i), c(!1), k(!1);
230
+ n(i), d(!1), k(!1);
236
231
  },
237
- onEdit: (i) => D(i),
232
+ onEdit: (i) => I(i),
238
233
  onSave: async (i) => X(i)
239
234
  }), tt = {
240
235
  viewType: t,
241
236
  projectName: o,
242
237
  isMenuOpen: U,
243
- editingView: s,
238
+ editingView: r,
244
239
  currentUser: C,
245
- selectedView: n,
246
- viewSettings: f,
240
+ selectedView: s,
241
+ viewSettings: g,
247
242
  editingViewData: J,
248
243
  isLoadingEditingViewData: H,
249
- viewsList: p,
244
+ viewsList: m,
250
245
  // Working view
251
246
  workingSettings: L,
252
- workingView: r,
247
+ workingView: e,
253
248
  isViewWorking: W,
254
249
  onUpdateWorkingView: N,
255
250
  // base views
@@ -266,29 +261,29 @@ const R = ot(null), zo = ({
266
261
  // data
267
262
  shareOptions: P,
268
263
  setIsMenuOpen: k,
269
- setEditingView: D,
270
- setSelectedView: m,
271
- onSettingsChanged: c,
264
+ setEditingView: I,
265
+ setSelectedView: n,
266
+ onSettingsChanged: d,
272
267
  // mutations
273
268
  onCreateView: K,
274
- onUpdateView: u,
269
+ onUpdateView: c,
275
270
  onDeleteView: q,
276
271
  // shared actions
277
272
  resetWorkingView: v,
278
273
  // api
279
274
  api: dt,
280
- dispatch: a
275
+ dispatch: S
281
276
  };
282
- return /* @__PURE__ */ it.jsx(R.Provider, { value: tt, children: e });
283
- }, Ho = () => {
284
- const e = rt(R);
285
- if (!e)
277
+ return /* @__PURE__ */ it.jsx(R.Provider, { value: tt, children: p });
278
+ }, Ao = () => {
279
+ const p = et(R);
280
+ if (!p)
286
281
  throw new Error("useViewsContext must be used within a ViewsProvider");
287
- return e;
288
- }, kt = (e, t) => e ? t.find((a) => a.id === e)?.scope === "studio" : !0;
282
+ return p;
283
+ };
289
284
  export {
290
- zo as ViewsProvider,
285
+ _o as ViewsProvider,
291
286
  kt as isViewStudioScope,
292
- Ho as useViewsContext
287
+ Ao as useViewsContext
293
288
  };
294
289
  //# sourceMappingURL=ViewsContext.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ViewsContext.es.js","sources":["../../../../../../src/containers/Views/context/ViewsContext.tsx"],"sourcesContent":["import { createContext, useContext, FC, ReactNode, useState, useMemo, useCallback } from 'react'\nimport { ViewType, WORKING_VIEW_ID } from '../index'\nimport {\n GetDefaultViewApiResponse,\n useGetWorkingViewQuery,\n useGetViewQuery,\n useListViewsQuery,\n UserModel,\n ViewListItemModel,\n viewsQueries,\n useGetShareOptionsQuery,\n ShareOption,\n useGetBaseViewQuery,\n} from '@shared/api'\nimport useBuildViewMenuItems, { BASE_VIEW_ID } from '../hooks/useBuildViewMenuItems'\nimport { ViewMenuItem } from '../ViewsMenu/ViewsMenu'\nimport { useGlobalContext, usePowerpack } from '@shared/context'\nimport { useSelectedView } from '../hooks/useSelectedView'\nimport { UseViewMutations, useViewsMutations } from '../hooks/useViewsMutations'\nimport { useBaseViewMutations } from '../hooks/useBaseViewMutations'\nimport { useSaveViewFromCurrent } from '../hooks/useSaveViewFromCurrent'\nimport { useViewSettingsChanged } from '../hooks/useViewSettingsChanged'\nimport { useLocalStorage } from '@shared/hooks'\n\nexport type ViewData = GetDefaultViewApiResponse\nexport type ViewSettings = GetDefaultViewApiResponse['settings']\nexport type SelectedViewState = ViewData | undefined // id of view otherwise null with use working\nexport type EditingViewState = string | true | null // id of view being edited otherwise null\n\nexport type CollapsedViewState = Record<string, boolean>\n\nexport interface ViewsContextValue {\n // State\n viewType?: ViewType\n projectName?: string\n currentUser?: UserModel\n isMenuOpen: boolean\n editingView: EditingViewState\n selectedView: SelectedViewState\n\n // Views data\n viewsList: ViewListItemModel[]\n viewSettings: ViewSettings | undefined\n // Working view\n workingSettings: ViewSettings | undefined\n workingView: ViewListItemModel | undefined\n isViewWorking: boolean\n onUpdateWorkingView: (\n payload: Partial<ViewData>,\n options?: { selectView?: boolean },\n ) => Promise<void>\n // base views\n projectBaseView: ViewListItemModel | undefined\n studioBaseView: ViewListItemModel | undefined\n editingViewId: string | undefined\n viewMenuItems: ViewMenuItem[]\n editingViewData?: ViewData\n isLoadingEditingViewData: boolean\n isLoadingViews: boolean\n\n // Data\n shareOptions?: ShareOption[] // available users to share with (undefined means loading)\n\n // Actions\n setIsMenuOpen: (open: boolean) => void\n setEditingView: (editing: EditingViewState) => void\n setSelectedView: (viewId: string) => void\n onSettingsChanged: (changed: boolean) => void\n\n // Mutations\n onCreateView: UseViewMutations['onCreateView']\n onDeleteView: UseViewMutations['onDeleteView']\n onUpdateView: UseViewMutations['onUpdateView']\n\n // Base view mutations\n onCreateBaseView: (isStudioScope: boolean) => Promise<void>\n onUpdateBaseView: (baseViewId: string, isStudioScope: boolean) => Promise<void>\n onDeleteBaseView: (baseViewId: string, isStudioScope: boolean) => Promise<void>\n onLoadBaseView: (isStudioScope: boolean) => Promise<void>\n\n // Actions (shared)\n resetWorkingView: () => Promise<void>\n\n // api\n api: typeof viewsQueries\n dispatch: any // dispatch is used to dispatch api mutations in pp like the share one.\n}\n\nconst ViewsContext = createContext<ViewsContextValue | null>(null)\n\nexport interface ViewsProviderProps {\n children: ReactNode\n viewType?: string\n projectName?: string\n dispatch?: any\n debug?: {\n powerLicense?: boolean\n }\n}\n\nexport const ViewsProvider: FC<ViewsProviderProps> = ({\n children,\n viewType,\n projectName,\n dispatch,\n debug,\n}) => {\n let { powerLicense } = usePowerpack()\n if (debug?.powerLicense !== undefined) {\n console.warn('Using debug power license:', debug.powerLicense)\n powerLicense = debug.powerLicense\n }\n\n const { user: currentUser } = useGlobalContext()\n\n const [isMenuOpen, setIsMenuOpen] = useState(false)\n const [editingView, setEditingView] = useState<EditingViewState>(null)\n // Collapsed state persisted globally across all viewTypes and projects\n const stateKey = 'viewsMenuCollapsed'\n\n const [collapsedSections, setCollapsedSections] = useLocalStorage<CollapsedViewState>(\n stateKey,\n {},\n )\n\n // anything extra to do when a view is created successfully\n const handleOnViewCreated = (view: ViewData) => {\n const key = view.visibility === 'private' ? 'myViews' : 'sharedViews'\n // if the section is collapsed, expand it\n if (collapsedSections[key]) {\n const newCollapsedSections = { ...collapsedSections }\n newCollapsedSections[key] = false\n setCollapsedSections(newCollapsedSections)\n }\n }\n\n // when editing the view, get all users that can be shared to that view\n const { data: shareOptions } = useGetShareOptionsQuery(\n { projectName },\n { skip: !powerLicense || !editingView },\n )\n\n // setting of default views\n const [selectedView, setSelectedView, previousSelectedViewId] = useSelectedView({\n viewType: viewType as string,\n projectName: projectName,\n })\n\n const [viewSettingsChanged, setViewSettingsChanged] = useViewSettingsChanged({\n viewType: viewType as ViewType,\n })\n\n // Fetch views data and filter out base views\n const { currentData: viewsListRaw = [], isLoading: isLoadingViews } = useListViewsQuery(\n { projectName: projectName, viewType: viewType as string },\n { skip: !viewType },\n )\n\n // Filter out base views from the list\n // Filter out studio working view if in project scope\n const viewsList = useMemo(\n () =>\n viewsListRaw.filter(\n (view) =>\n view.label !== BASE_VIEW_ID && !(projectName && view.working && view.scope === 'studio'),\n ),\n [viewsListRaw],\n )\n\n const { onCreateView, onDeleteView, onUpdateView, onResetWorkingView } = useViewsMutations({\n viewType,\n projectName,\n viewsList,\n onCreate: handleOnViewCreated,\n })\n\n // always get your working view\n const { currentData: workingView } = useGetWorkingViewQuery(\n { projectName: projectName, viewType: viewType as string },\n { skip: !viewType },\n )\n\n // Fetch both project and studio base views\n const { currentData: projectBaseView } = useGetBaseViewQuery(\n { projectName: projectName, viewType: viewType as string },\n { skip: !viewType },\n )\n const { currentData: studioBaseView } = useGetBaseViewQuery(\n { projectName: undefined, viewType: viewType as string },\n { skip: !viewType },\n )\n\n const workingSettings = workingView?.settings\n\n // which settings to use for the view\n const viewSettings =\n selectedView?.id === WORKING_VIEW_ID ? workingSettings : selectedView?.settings\n\n // is the working view selected?\n const isViewWorking = selectedView?.id === workingView?.id\n // were we just on a custom view and then edited it and ended up on the working view\n const editingViewId =\n viewSettingsChanged &&\n isViewWorking &&\n !!previousSelectedViewId &&\n previousSelectedViewId !== workingView?.id\n ? previousSelectedViewId\n : undefined\n\n // get data for the view we are editing\n const { currentData: editingViewDataData, isFetching: isLoadingEditingViewData } =\n useGetViewQuery(\n {\n viewId: editingView as string,\n projectName: isViewStudioScope(editingView as string, viewsList) ? undefined : projectName,\n viewType: viewType as string,\n },\n { skip: !(typeof editingView === 'string') || !powerLicense },\n )\n\n const editingViewData = useMemo(\n () => (editingView === editingViewDataData?.id ? editingViewDataData : undefined),\n [editingView, editingViewDataData],\n )\n\n const { onSaveViewFromCurrent } = useSaveViewFromCurrent({\n viewType: viewType,\n projectName,\n viewsList,\n sourceSettings: viewSettings,\n onUpdateView: onUpdateView,\n })\n\n // Base view mutations\n const { onCreateBaseView, onUpdateBaseView, onDeleteBaseView, onLoadBaseView } =\n useBaseViewMutations({\n viewType: viewType as string,\n projectName,\n viewSettings,\n workingView,\n dispatch,\n })\n\n const onUpdateWorkingView = useCallback(\n async (payload: Partial<ViewData>, { selectView }: { selectView?: boolean } = {}) => {\n if (!workingView?.id) {\n console.error('No working view to update')\n return\n }\n await onUpdateView(workingView.id, payload, !projectName)\n if (selectView) {\n setSelectedView(workingView.id)\n }\n },\n [onUpdateView, workingView],\n )\n\n // Reset working view to default (empty) settings\n const resetWorkingView = useCallback(async () => {\n try {\n await onResetWorkingView({\n existingWorkingViewId: workingView?.id,\n selectedViewId: selectedView?.id,\n setSelectedView,\n setSettingsChanged: setViewSettingsChanged,\n notify: true,\n })\n } catch (error) {\n console.error('Failed to reset view:', error)\n }\n }, [workingView, onResetWorkingView, selectedView, setSelectedView, setViewSettingsChanged])\n\n // build the menu items for the views\n const viewMenuItems = useBuildViewMenuItems({\n viewsList,\n workingView,\n viewType,\n projectName,\n currentUser,\n useWorkingView: !powerLicense,\n editingViewId,\n selectedId: selectedView?.id,\n collapsed: collapsedSections,\n setCollapsed: setCollapsedSections,\n onResetWorkingView: resetWorkingView,\n onSelect: (viewId) => {\n setSelectedView(viewId)\n // reset the settings changed state when switching views\n setViewSettingsChanged(false)\n // close the menu when selecting a view\n setIsMenuOpen(false)\n },\n onEdit: (viewId) => setEditingView(viewId),\n onSave: async (viewId) => onSaveViewFromCurrent(viewId),\n })\n\n const value: ViewsContextValue = {\n viewType,\n projectName,\n isMenuOpen,\n editingView,\n currentUser,\n selectedView,\n viewSettings,\n editingViewData,\n isLoadingEditingViewData,\n viewsList,\n // Working view\n workingSettings,\n workingView,\n isViewWorking,\n onUpdateWorkingView,\n // base views\n projectBaseView,\n studioBaseView,\n // base view mutations\n onCreateBaseView,\n onUpdateBaseView,\n onDeleteBaseView,\n onLoadBaseView,\n editingViewId,\n viewMenuItems,\n isLoadingViews,\n // data\n shareOptions,\n setIsMenuOpen,\n setEditingView,\n setSelectedView,\n onSettingsChanged: setViewSettingsChanged,\n // mutations\n onCreateView,\n onUpdateView,\n onDeleteView,\n // shared actions\n resetWorkingView,\n // api\n api: viewsQueries,\n dispatch,\n }\n\n return <ViewsContext.Provider value={value}>{children}</ViewsContext.Provider>\n}\n\nexport const useViewsContext = (): ViewsContextValue => {\n const context = useContext(ViewsContext)\n if (!context) {\n throw new Error('useViewsContext must be used within a ViewsProvider')\n }\n return context\n}\n\nexport const isViewStudioScope = (viewId: string | undefined, viewsList: ViewListItemModel[]) => {\n if (!viewId) return true\n const view = viewsList.find((v) => v.id === viewId)\n return view?.scope === 'studio'\n}\n"],"names":["ViewsContext","createContext","ViewsProvider","children","viewType","projectName","dispatch","debug","powerLicense","usePowerpack","currentUser","useGlobalContext","isMenuOpen","setIsMenuOpen","useState","editingView","setEditingView","stateKey","collapsedSections","setCollapsedSections","useLocalStorage","handleOnViewCreated","view","key","newCollapsedSections","shareOptions","useGetShareOptionsQuery","selectedView","setSelectedView","previousSelectedViewId","useSelectedView","viewSettingsChanged","setViewSettingsChanged","useViewSettingsChanged","viewsListRaw","isLoadingViews","useListViewsQuery","viewsList","useMemo","BASE_VIEW_ID","onCreateView","onDeleteView","onUpdateView","onResetWorkingView","useViewsMutations","workingView","useGetWorkingViewQuery","projectBaseView","useGetBaseViewQuery","studioBaseView","workingSettings","viewSettings","WORKING_VIEW_ID","isViewWorking","editingViewId","editingViewDataData","isLoadingEditingViewData","useGetViewQuery","isViewStudioScope","editingViewData","onSaveViewFromCurrent","useSaveViewFromCurrent","onCreateBaseView","onUpdateBaseView","onDeleteBaseView","onLoadBaseView","useBaseViewMutations","onUpdateWorkingView","useCallback","payload","selectView","resetWorkingView","error","viewMenuItems","useBuildViewMenuItems","viewId","value","viewsQueries","jsx","useViewsContext","context","useContext","v"],"mappings":"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"}
1
+ {"version":3,"file":"ViewsContext.es.js","sources":["../../../../../../src/containers/Views/context/ViewsContext.tsx"],"sourcesContent":["import { createContext, useContext, FC, ReactNode, useState, useMemo, useCallback } from 'react'\nimport { type ViewType, WORKING_VIEW_ID, BASE_VIEW_ID } from '../types'\nimport {\n GetDefaultViewApiResponse,\n useGetWorkingViewQuery,\n useGetViewQuery,\n useListViewsQuery,\n UserModel,\n ViewListItemModel,\n viewsQueries,\n useGetShareOptionsQuery,\n ShareOption,\n useGetBaseViewQuery,\n} from '@shared/api'\nimport useBuildViewMenuItems from '../hooks/useBuildViewMenuItems'\nimport { ViewMenuItem } from '../ViewsMenu/ViewsMenu'\nimport { useGlobalContext, usePowerpack } from '@shared/context'\nimport { useSelectedView } from '../hooks/useSelectedView'\nimport { type UseViewMutations, useViewsMutations } from '../hooks/useViewsMutations'\nimport { useBaseViewMutations } from '../hooks/useBaseViewMutations'\nimport { useSaveViewFromCurrent } from '../hooks/useSaveViewFromCurrent'\nimport { useViewSettingsChanged } from '../hooks/useViewSettingsChanged'\nimport { useLocalStorage } from '@shared/hooks'\n\nexport type ViewData = GetDefaultViewApiResponse\nexport type ViewSettings = GetDefaultViewApiResponse['settings']\nexport type SelectedViewState = ViewData | undefined // id of view otherwise null with use working\nexport type EditingViewState = string | true | null // id of view being edited otherwise null\n\nexport type CollapsedViewState = Record<string, boolean>\n\nexport interface ViewsContextValue {\n // State\n viewType?: ViewType\n projectName?: string\n currentUser?: UserModel\n isMenuOpen: boolean\n editingView: EditingViewState\n selectedView: SelectedViewState\n\n // Views data\n viewsList: ViewListItemModel[]\n viewSettings: ViewSettings | undefined\n // Working view\n workingSettings: ViewSettings | undefined\n workingView: ViewListItemModel | undefined\n isViewWorking: boolean\n onUpdateWorkingView: (\n payload: Partial<ViewData>,\n options?: { selectView?: boolean },\n ) => Promise<void>\n // base views\n projectBaseView: ViewListItemModel | undefined\n studioBaseView: ViewListItemModel | undefined\n editingViewId: string | undefined\n viewMenuItems: ViewMenuItem[]\n editingViewData?: ViewData\n isLoadingEditingViewData: boolean\n isLoadingViews: boolean\n\n // Data\n shareOptions?: ShareOption[] // available users to share with (undefined means loading)\n\n // Actions\n setIsMenuOpen: (open: boolean) => void\n setEditingView: (editing: EditingViewState) => void\n setSelectedView: (viewId: string) => void\n onSettingsChanged: (changed: boolean) => void\n\n // Mutations\n onCreateView: UseViewMutations['onCreateView']\n onDeleteView: UseViewMutations['onDeleteView']\n onUpdateView: UseViewMutations['onUpdateView']\n\n // Base view mutations\n onCreateBaseView: (isStudioScope: boolean) => Promise<void>\n onUpdateBaseView: (baseViewId: string, isStudioScope: boolean) => Promise<void>\n onDeleteBaseView: (baseViewId: string, isStudioScope: boolean) => Promise<void>\n onLoadBaseView: (isStudioScope: boolean) => Promise<void>\n\n // Actions (shared)\n resetWorkingView: () => Promise<void>\n\n // api\n api: typeof viewsQueries\n dispatch: any // dispatch is used to dispatch api mutations in pp like the share one.\n}\n\nconst ViewsContext = createContext<ViewsContextValue | null>(null)\n\nexport interface ViewsProviderProps {\n children: ReactNode\n viewType?: string\n projectName?: string\n dispatch?: any\n debug?: {\n powerLicense?: boolean\n }\n}\n\nexport const ViewsProvider: FC<ViewsProviderProps> = ({\n children,\n viewType,\n projectName,\n dispatch,\n debug,\n}) => {\n let { powerLicense } = usePowerpack()\n if (debug?.powerLicense !== undefined) {\n console.warn('Using debug power license:', debug.powerLicense)\n powerLicense = debug.powerLicense\n }\n\n const { user: currentUser } = useGlobalContext()\n\n const [isMenuOpen, setIsMenuOpen] = useState(false)\n const [editingView, setEditingView] = useState<EditingViewState>(null)\n // Collapsed state persisted globally across all viewTypes and projects\n const stateKey = 'viewsMenuCollapsed'\n\n const [collapsedSections, setCollapsedSections] = useLocalStorage<CollapsedViewState>(\n stateKey,\n {},\n )\n\n // anything extra to do when a view is created successfully\n const handleOnViewCreated = (view: ViewData) => {\n const key = view.visibility === 'private' ? 'myViews' : 'sharedViews'\n // if the section is collapsed, expand it\n if (collapsedSections[key]) {\n const newCollapsedSections = { ...collapsedSections }\n newCollapsedSections[key] = false\n setCollapsedSections(newCollapsedSections)\n }\n }\n\n // when editing the view, get all users that can be shared to that view\n const { data: shareOptions } = useGetShareOptionsQuery(\n { projectName },\n { skip: !powerLicense || !editingView },\n )\n\n // setting of default views\n const [selectedView, setSelectedView, previousSelectedViewId] = useSelectedView({\n viewType: viewType as string,\n projectName: projectName,\n })\n\n const [viewSettingsChanged, setViewSettingsChanged] = useViewSettingsChanged({\n viewType: viewType as ViewType,\n })\n\n // Fetch views data and filter out base views\n const { currentData: viewsListRaw = [], isLoading: isLoadingViews } = useListViewsQuery(\n { projectName: projectName, viewType: viewType as string },\n { skip: !viewType },\n )\n\n // Filter out base views from the list\n // Filter out studio working view if in project scope\n const viewsList = useMemo(\n () =>\n viewsListRaw.filter(\n (view) =>\n view.label !== BASE_VIEW_ID && !(projectName && view.working && view.scope === 'studio'),\n ),\n [viewsListRaw],\n )\n\n const { onCreateView, onDeleteView, onUpdateView, onResetWorkingView } = useViewsMutations({\n viewType,\n projectName,\n viewsList,\n onCreate: handleOnViewCreated,\n })\n\n // always get your working view\n const { currentData: workingView } = useGetWorkingViewQuery(\n { projectName: projectName, viewType: viewType as string },\n { skip: !viewType },\n )\n\n // Fetch both project and studio base views\n const { currentData: projectBaseView } = useGetBaseViewQuery(\n { projectName: projectName, viewType: viewType as string },\n { skip: !viewType },\n )\n const { currentData: studioBaseView } = useGetBaseViewQuery(\n { projectName: undefined, viewType: viewType as string },\n { skip: !viewType },\n )\n\n const workingSettings = workingView?.settings\n\n // which settings to use for the view\n const viewSettings =\n selectedView?.id === WORKING_VIEW_ID ? workingSettings : selectedView?.settings\n\n // is the working view selected?\n const isViewWorking = selectedView?.id === workingView?.id\n // were we just on a custom view and then edited it and ended up on the working view\n const editingViewId =\n viewSettingsChanged &&\n isViewWorking &&\n !!previousSelectedViewId &&\n previousSelectedViewId !== workingView?.id\n ? previousSelectedViewId\n : undefined\n\n // get data for the view we are editing\n const { currentData: editingViewDataData, isFetching: isLoadingEditingViewData } =\n useGetViewQuery(\n {\n viewId: editingView as string,\n projectName: isViewStudioScope(editingView as string, viewsList) ? undefined : projectName,\n viewType: viewType as string,\n },\n { skip: !(typeof editingView === 'string') || !powerLicense },\n )\n\n const editingViewData = useMemo(\n () => (editingView === editingViewDataData?.id ? editingViewDataData : undefined),\n [editingView, editingViewDataData],\n )\n\n const { onSaveViewFromCurrent } = useSaveViewFromCurrent({\n viewType: viewType,\n projectName,\n viewsList,\n sourceSettings: viewSettings,\n onUpdateView: onUpdateView,\n })\n\n // Base view mutations\n const { onCreateBaseView, onUpdateBaseView, onDeleteBaseView, onLoadBaseView } =\n useBaseViewMutations({\n viewType: viewType as string,\n projectName,\n viewSettings,\n workingView,\n dispatch,\n })\n\n const onUpdateWorkingView = useCallback(\n async (payload: Partial<ViewData>, { selectView }: { selectView?: boolean } = {}) => {\n if (!workingView?.id) {\n console.error('No working view to update')\n return\n }\n await onUpdateView(workingView.id, payload, !projectName)\n if (selectView) {\n setSelectedView(workingView.id)\n }\n },\n [onUpdateView, workingView],\n )\n\n // Reset working view to default (empty) settings\n const resetWorkingView = useCallback(async () => {\n try {\n await onResetWorkingView({\n existingWorkingViewId: workingView?.id,\n selectedViewId: selectedView?.id,\n setSelectedView,\n setSettingsChanged: setViewSettingsChanged,\n notify: true,\n })\n } catch (error) {\n console.error('Failed to reset view:', error)\n }\n }, [workingView, onResetWorkingView, selectedView, setSelectedView, setViewSettingsChanged])\n\n // build the menu items for the views\n const viewMenuItems = useBuildViewMenuItems({\n viewsList,\n workingView,\n viewType,\n projectName,\n currentUser,\n useWorkingView: !powerLicense,\n editingViewId,\n selectedId: selectedView?.id,\n collapsed: collapsedSections,\n setCollapsed: setCollapsedSections,\n onResetWorkingView: resetWorkingView,\n onSelect: (viewId) => {\n setSelectedView(viewId)\n // reset the settings changed state when switching views\n setViewSettingsChanged(false)\n // close the menu when selecting a view\n setIsMenuOpen(false)\n },\n onEdit: (viewId) => setEditingView(viewId),\n onSave: async (viewId) => onSaveViewFromCurrent(viewId),\n })\n\n const value: ViewsContextValue = {\n viewType,\n projectName,\n isMenuOpen,\n editingView,\n currentUser,\n selectedView,\n viewSettings,\n editingViewData,\n isLoadingEditingViewData,\n viewsList,\n // Working view\n workingSettings,\n workingView,\n isViewWorking,\n onUpdateWorkingView,\n // base views\n projectBaseView,\n studioBaseView,\n // base view mutations\n onCreateBaseView,\n onUpdateBaseView,\n onDeleteBaseView,\n onLoadBaseView,\n editingViewId,\n viewMenuItems,\n isLoadingViews,\n // data\n shareOptions,\n setIsMenuOpen,\n setEditingView,\n setSelectedView,\n onSettingsChanged: setViewSettingsChanged,\n // mutations\n onCreateView,\n onUpdateView,\n onDeleteView,\n // shared actions\n resetWorkingView,\n // api\n api: viewsQueries,\n dispatch,\n }\n\n return <ViewsContext.Provider value={value}>{children}</ViewsContext.Provider>\n}\n\nexport const useViewsContext = (): ViewsContextValue => {\n const context = useContext(ViewsContext)\n if (!context) {\n throw new Error('useViewsContext must be used within a ViewsProvider')\n }\n return context\n}\n\nimport { isViewStudioScope } from '../utils/isViewStudioScope'\nexport { isViewStudioScope }\n"],"names":["ViewsContext","createContext","ViewsProvider","children","viewType","projectName","dispatch","debug","powerLicense","usePowerpack","currentUser","useGlobalContext","isMenuOpen","setIsMenuOpen","useState","editingView","setEditingView","stateKey","collapsedSections","setCollapsedSections","useLocalStorage","handleOnViewCreated","view","key","newCollapsedSections","shareOptions","useGetShareOptionsQuery","selectedView","setSelectedView","previousSelectedViewId","useSelectedView","viewSettingsChanged","setViewSettingsChanged","useViewSettingsChanged","viewsListRaw","isLoadingViews","useListViewsQuery","viewsList","useMemo","BASE_VIEW_ID","onCreateView","onDeleteView","onUpdateView","onResetWorkingView","useViewsMutations","workingView","useGetWorkingViewQuery","projectBaseView","useGetBaseViewQuery","studioBaseView","workingSettings","viewSettings","WORKING_VIEW_ID","isViewWorking","editingViewId","editingViewDataData","isLoadingEditingViewData","useGetViewQuery","isViewStudioScope","editingViewData","onSaveViewFromCurrent","useSaveViewFromCurrent","onCreateBaseView","onUpdateBaseView","onDeleteBaseView","onLoadBaseView","useBaseViewMutations","onUpdateWorkingView","useCallback","payload","selectView","resetWorkingView","error","viewMenuItems","useBuildViewMenuItems","viewId","value","viewsQueries","jsx","useViewsContext","context","useContext"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react");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");const v=require("../../../api/queries/views/getViews.cjs.js"),o=require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");const q=require("react-toastify"),y=require("./useBuildViewMenuItems.cjs.js"),F=({viewType:u,projectName:t,viewSettings:n,workingView:c,dispatch:a})=>{const[b]=o.useCreateViewMutation(),[l]=o.useUpdateViewMutation(),[g]=o.useDeleteViewMutation(),[V]=o.useSetDefaultViewMutation(),f=d.useCallback(async i=>{try{const e=n||{},r={label:y.BASE_VIEW_ID,working:!1,settings:e},s=await b({payload:r,viewType:u,projectName:i?void 0:t}).unwrap();a(o.viewsQueries.util.invalidateTags([{type:"view",id:s.id},v.getScopeTag(u,i?void 0:t)]));const w=i?"Studio":"Project";q.toast.success(`${w} default view created successfully`)}catch(e){const r=i?"studio":"project";console.error(`Failed to create ${r} base view:`,e),q.toast.error(`Failed to create ${r} base view: ${e?.message||e}`)}},[b,u,t,n,a]),$=d.useCallback(async(i,e)=>{try{await l({viewId:i,viewType:u,projectName:e?void 0:t,payload:{settings:n||{}}}).unwrap(),a(o.viewsQueries.util.invalidateTags([{type:"view",id:i},v.getScopeTag(u,e?void 0:t)]));const s=e?"Studio":"Project";q.toast.success(`${s} default view updated successfully`)}catch(r){const s=e?"studio":"project";console.error(`Failed to update ${s} base view:`,r),q.toast.error(`Failed to update ${s} base view: ${r?.message||r}`)}},[l,u,t,n,a]),M=d.useCallback(async(i,e)=>{try{await g({viewId:i,viewType:u,projectName:e?void 0:t}).unwrap(),a(o.viewsQueries.util.invalidateTags([{type:"view",id:i},v.getScopeTag(u,e?void 0:t)]));const r=e?"Studio":"Project";q.toast.success(`${r} default view removed successfully`)}catch(r){const s=e?"studio":"project";console.error(`Failed to remove ${s} base view:`,r),q.toast.error(`Failed to remove ${s} base view: ${r?.message||r}`)}},[g,u,t,a]),B=d.useCallback(async i=>{try{if(!c?.id)throw new Error("No working view available to update");const s=(await a(o.viewsQueries.endpoints.getBaseView.initiate({viewType:u,projectName:i?void 0:t},{subscribe:!1,forceRefetch:!0}))).data;if(!s||!s.settings)throw new Error("Base view not found or has no settings");await l({viewId:c.id,viewType:u,projectName:t,payload:{settings:s.settings}}).unwrap(),await V({viewType:u,projectName:t,setDefaultViewRequestModel:{viewId:c.id}}).unwrap();const w=i?"Studio":"Project";q.toast.success(`Loaded ${w} default view to working view`)}catch(e){const r=i?"studio":"project";console.error(`Failed to load ${r} base view:`,e),q.toast.error(`Failed to load ${r} base view: ${e?.message||e}`)}},[c,l,V,u,t,a]);return{onCreateBaseView:f,onUpdateBaseView:$,onDeleteBaseView:M,onLoadBaseView:B}};exports.useBaseViewMutations=F;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react");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");const v=require("../../../api/queries/views/getViews.cjs.js"),o=require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");const q=require("react-toastify"),B=require("../types.cjs.js"),F=({viewType:u,projectName:t,viewSettings:n,workingView:c,dispatch:a})=>{const[b]=o.useCreateViewMutation(),[l]=o.useUpdateViewMutation(),[g]=o.useDeleteViewMutation(),[V]=o.useSetDefaultViewMutation(),f=d.useCallback(async i=>{try{const e=n||{},r={label:B.BASE_VIEW_ID,working:!1,settings:e},s=await b({payload:r,viewType:u,projectName:i?void 0:t}).unwrap();a(o.viewsQueries.util.invalidateTags([{type:"view",id:s.id},v.getScopeTag(u,i?void 0:t)]));const w=i?"Studio":"Project";q.toast.success(`${w} default view created successfully`)}catch(e){const r=i?"studio":"project";console.error(`Failed to create ${r} base view:`,e),q.toast.error(`Failed to create ${r} base view: ${e?.message||e}`)}},[b,u,t,n,a]),$=d.useCallback(async(i,e)=>{try{await l({viewId:i,viewType:u,projectName:e?void 0:t,payload:{settings:n||{}}}).unwrap(),a(o.viewsQueries.util.invalidateTags([{type:"view",id:i},v.getScopeTag(u,e?void 0:t)]));const s=e?"Studio":"Project";q.toast.success(`${s} default view updated successfully`)}catch(r){const s=e?"studio":"project";console.error(`Failed to update ${s} base view:`,r),q.toast.error(`Failed to update ${s} base view: ${r?.message||r}`)}},[l,u,t,n,a]),M=d.useCallback(async(i,e)=>{try{await g({viewId:i,viewType:u,projectName:e?void 0:t}).unwrap(),a(o.viewsQueries.util.invalidateTags([{type:"view",id:i},v.getScopeTag(u,e?void 0:t)]));const r=e?"Studio":"Project";q.toast.success(`${r} default view removed successfully`)}catch(r){const s=e?"studio":"project";console.error(`Failed to remove ${s} base view:`,r),q.toast.error(`Failed to remove ${s} base view: ${r?.message||r}`)}},[g,u,t,a]),y=d.useCallback(async i=>{try{if(!c?.id)throw new Error("No working view available to update");const s=(await a(o.viewsQueries.endpoints.getBaseView.initiate({viewType:u,projectName:i?void 0:t},{subscribe:!1,forceRefetch:!0}))).data;if(!s||!s.settings)throw new Error("Base view not found or has no settings");await l({viewId:c.id,viewType:u,projectName:t,payload:{settings:s.settings}}).unwrap(),await V({viewType:u,projectName:t,setDefaultViewRequestModel:{viewId:c.id}}).unwrap();const w=i?"Studio":"Project";q.toast.success(`Loaded ${w} default view to working view`)}catch(e){const r=i?"studio":"project";console.error(`Failed to load ${r} base view:`,e),q.toast.error(`Failed to load ${r} base view: ${e?.message||e}`)}},[c,l,V,u,t,a]);return{onCreateBaseView:f,onUpdateBaseView:$,onDeleteBaseView:M,onLoadBaseView:y}};exports.useBaseViewMutations=F;
2
2
  //# sourceMappingURL=useBaseViewMutations.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBaseViewMutations.cjs.js","sources":["../../../../../../src/containers/Views/hooks/useBaseViewMutations.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport {\n useCreateViewMutation,\n useUpdateViewMutation,\n useDeleteViewMutation,\n useSetDefaultViewMutation,\n viewsQueries,\n ViewListItemModel,\n} from '@shared/api'\nimport { toast } from 'react-toastify'\nimport { getScopeTag } from '@shared/api/queries/views/getViews'\nimport { BASE_VIEW_ID } from './useBuildViewMenuItems'\nimport { ViewSettings } from '@shared/containers'\n\ntype Props = {\n viewType?: string\n projectName?: string\n viewSettings?: ViewSettings\n workingView?: ViewListItemModel\n dispatch?: any\n}\n\nexport type UseBaseViewMutations = {\n onCreateBaseView: (isStudioScope: boolean) => Promise<void>\n onUpdateBaseView: (baseViewId: string, isStudioScope: boolean) => Promise<void>\n onDeleteBaseView: (baseViewId: string, isStudioScope: boolean) => Promise<void>\n onLoadBaseView: (isStudioScope: boolean) => Promise<void>\n}\n\nexport const useBaseViewMutations = ({\n viewType,\n projectName,\n viewSettings,\n workingView,\n dispatch,\n}: Props): UseBaseViewMutations => {\n const [createViewMutation] = useCreateViewMutation()\n const [updateViewMutation] = useUpdateViewMutation()\n const [deleteViewMutation] = useDeleteViewMutation()\n const [setDefaultViewMutation] = useSetDefaultViewMutation()\n\n const onCreateBaseView = useCallback(\n async (isStudioScope: boolean) => {\n try {\n const settings = viewSettings || {}\n const baseViewPayload = {\n label: BASE_VIEW_ID,\n working: false,\n settings,\n } as any\n\n const result = await createViewMutation({\n payload: baseViewPayload,\n viewType: viewType as string,\n projectName: isStudioScope ? undefined : projectName,\n }).unwrap()\n\n dispatch(\n viewsQueries.util.invalidateTags([\n { type: 'view', id: result.id },\n getScopeTag(viewType as string, isStudioScope ? undefined : projectName),\n ]),\n )\n\n const scope = isStudioScope ? 'Studio' : 'Project'\n toast.success(`${scope} default view created successfully`)\n } catch (error: any) {\n const scope = isStudioScope ? 'studio' : 'project'\n console.error(`Failed to create ${scope} base view:`, error)\n toast.error(`Failed to create ${scope} base view: ${error?.message || error}`)\n }\n },\n [createViewMutation, viewType, projectName, viewSettings, dispatch],\n )\n\n const onUpdateBaseView = useCallback(\n async (baseViewId: string, isStudioScope: boolean) => {\n try {\n const settings = viewSettings || {}\n await updateViewMutation({\n viewId: baseViewId,\n viewType: viewType as string,\n projectName: isStudioScope ? undefined : projectName,\n payload: { settings },\n }).unwrap()\n\n dispatch(\n viewsQueries.util.invalidateTags([\n { type: 'view', id: baseViewId },\n getScopeTag(viewType as string, isStudioScope ? undefined : projectName),\n ]),\n )\n\n const scope = isStudioScope ? 'Studio' : 'Project'\n toast.success(`${scope} default view updated successfully`)\n } catch (error: any) {\n const scope = isStudioScope ? 'studio' : 'project'\n console.error(`Failed to update ${scope} base view:`, error)\n toast.error(`Failed to update ${scope} base view: ${error?.message || error}`)\n }\n },\n [updateViewMutation, viewType, projectName, viewSettings, dispatch],\n )\n\n const onDeleteBaseView = useCallback(\n async (baseViewId: string, isStudioScope: boolean) => {\n try {\n await deleteViewMutation({\n viewId: baseViewId,\n viewType: viewType as string,\n projectName: isStudioScope ? undefined : projectName,\n }).unwrap()\n\n // Invalidate tags to force refetch - use the same tag format as getBaseView\n dispatch(\n viewsQueries.util.invalidateTags([\n { type: 'view', id: baseViewId },\n getScopeTag(viewType as string, isStudioScope ? undefined : projectName),\n ]),\n )\n\n const scope = isStudioScope ? 'Studio' : 'Project'\n toast.success(`${scope} default view removed successfully`)\n } catch (error: any) {\n const scope = isStudioScope ? 'studio' : 'project'\n console.error(`Failed to remove ${scope} base view:`, error)\n toast.error(`Failed to remove ${scope} base view: ${error?.message || error}`)\n }\n },\n [deleteViewMutation, viewType, projectName, dispatch],\n )\n\n const onLoadBaseView = useCallback(\n async (isStudioScope: boolean) => {\n try {\n if (!workingView?.id) {\n throw new Error('No working view available to update')\n }\n\n // Fetch the specific base view (project or studio)\n const baseViewPromise = dispatch(\n viewsQueries.endpoints.getBaseView.initiate(\n {\n viewType: viewType as string,\n projectName: isStudioScope ? undefined : projectName,\n },\n { subscribe: false, forceRefetch: true },\n ),\n )\n const baseViewResult = await baseViewPromise\n const baseView = baseViewResult.data\n\n if (!baseView || !baseView.settings) {\n throw new Error('Base view not found or has no settings')\n }\n\n // Update the working view with the base view settings\n await updateViewMutation({\n viewId: workingView.id,\n viewType: viewType as string,\n projectName,\n payload: { settings: baseView.settings },\n }).unwrap()\n\n // Set the working view as the default view\n await setDefaultViewMutation({\n viewType: viewType as string,\n projectName,\n setDefaultViewRequestModel: { viewId: workingView.id },\n }).unwrap()\n\n const scope = isStudioScope ? 'Studio' : 'Project'\n toast.success(`Loaded ${scope} default view to working view`)\n } catch (error: any) {\n const scope = isStudioScope ? 'studio' : 'project'\n console.error(`Failed to load ${scope} base view:`, error)\n toast.error(`Failed to load ${scope} base view: ${error?.message || error}`)\n }\n },\n [\n workingView,\n updateViewMutation,\n setDefaultViewMutation,\n viewType,\n projectName,\n dispatch,\n ],\n )\n\n return {\n onCreateBaseView,\n onUpdateBaseView,\n onDeleteBaseView,\n onLoadBaseView,\n }\n}\n"],"names":["useBaseViewMutations","viewType","projectName","viewSettings","workingView","dispatch","createViewMutation","useCreateViewMutation","updateViewMutation","useUpdateViewMutation","deleteViewMutation","useDeleteViewMutation","setDefaultViewMutation","useSetDefaultViewMutation","onCreateBaseView","useCallback","isStudioScope","settings","baseViewPayload","BASE_VIEW_ID","result","viewsQueries","getScopeTag","scope","toast","error","onUpdateBaseView","baseViewId","onDeleteBaseView","onLoadBaseView","baseView"],"mappings":"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"}
1
+ {"version":3,"file":"useBaseViewMutations.cjs.js","sources":["../../../../../../src/containers/Views/hooks/useBaseViewMutations.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport {\n useCreateViewMutation,\n useUpdateViewMutation,\n useDeleteViewMutation,\n useSetDefaultViewMutation,\n viewsQueries,\n ViewListItemModel,\n} from '@shared/api'\nimport { toast } from 'react-toastify'\nimport { getScopeTag } from '@shared/api/queries/views/getViews'\nimport { BASE_VIEW_ID } from '../types'\nimport type { ViewSettings } from '../context/ViewsContext'\n\ntype Props = {\n viewType?: string\n projectName?: string\n viewSettings?: ViewSettings\n workingView?: ViewListItemModel\n dispatch?: any\n}\n\nexport type UseBaseViewMutations = {\n onCreateBaseView: (isStudioScope: boolean) => Promise<void>\n onUpdateBaseView: (baseViewId: string, isStudioScope: boolean) => Promise<void>\n onDeleteBaseView: (baseViewId: string, isStudioScope: boolean) => Promise<void>\n onLoadBaseView: (isStudioScope: boolean) => Promise<void>\n}\n\nexport const useBaseViewMutations = ({\n viewType,\n projectName,\n viewSettings,\n workingView,\n dispatch,\n}: Props): UseBaseViewMutations => {\n const [createViewMutation] = useCreateViewMutation()\n const [updateViewMutation] = useUpdateViewMutation()\n const [deleteViewMutation] = useDeleteViewMutation()\n const [setDefaultViewMutation] = useSetDefaultViewMutation()\n\n const onCreateBaseView = useCallback(\n async (isStudioScope: boolean) => {\n try {\n const settings = viewSettings || {}\n const baseViewPayload = {\n label: BASE_VIEW_ID,\n working: false,\n settings,\n } as any\n\n const result = await createViewMutation({\n payload: baseViewPayload,\n viewType: viewType as string,\n projectName: isStudioScope ? undefined : projectName,\n }).unwrap()\n\n dispatch(\n viewsQueries.util.invalidateTags([\n { type: 'view', id: result.id },\n getScopeTag(viewType as string, isStudioScope ? undefined : projectName),\n ]),\n )\n\n const scope = isStudioScope ? 'Studio' : 'Project'\n toast.success(`${scope} default view created successfully`)\n } catch (error: any) {\n const scope = isStudioScope ? 'studio' : 'project'\n console.error(`Failed to create ${scope} base view:`, error)\n toast.error(`Failed to create ${scope} base view: ${error?.message || error}`)\n }\n },\n [createViewMutation, viewType, projectName, viewSettings, dispatch],\n )\n\n const onUpdateBaseView = useCallback(\n async (baseViewId: string, isStudioScope: boolean) => {\n try {\n const settings = viewSettings || {}\n await updateViewMutation({\n viewId: baseViewId,\n viewType: viewType as string,\n projectName: isStudioScope ? undefined : projectName,\n payload: { settings },\n }).unwrap()\n\n dispatch(\n viewsQueries.util.invalidateTags([\n { type: 'view', id: baseViewId },\n getScopeTag(viewType as string, isStudioScope ? undefined : projectName),\n ]),\n )\n\n const scope = isStudioScope ? 'Studio' : 'Project'\n toast.success(`${scope} default view updated successfully`)\n } catch (error: any) {\n const scope = isStudioScope ? 'studio' : 'project'\n console.error(`Failed to update ${scope} base view:`, error)\n toast.error(`Failed to update ${scope} base view: ${error?.message || error}`)\n }\n },\n [updateViewMutation, viewType, projectName, viewSettings, dispatch],\n )\n\n const onDeleteBaseView = useCallback(\n async (baseViewId: string, isStudioScope: boolean) => {\n try {\n await deleteViewMutation({\n viewId: baseViewId,\n viewType: viewType as string,\n projectName: isStudioScope ? undefined : projectName,\n }).unwrap()\n\n // Invalidate tags to force refetch - use the same tag format as getBaseView\n dispatch(\n viewsQueries.util.invalidateTags([\n { type: 'view', id: baseViewId },\n getScopeTag(viewType as string, isStudioScope ? undefined : projectName),\n ]),\n )\n\n const scope = isStudioScope ? 'Studio' : 'Project'\n toast.success(`${scope} default view removed successfully`)\n } catch (error: any) {\n const scope = isStudioScope ? 'studio' : 'project'\n console.error(`Failed to remove ${scope} base view:`, error)\n toast.error(`Failed to remove ${scope} base view: ${error?.message || error}`)\n }\n },\n [deleteViewMutation, viewType, projectName, dispatch],\n )\n\n const onLoadBaseView = useCallback(\n async (isStudioScope: boolean) => {\n try {\n if (!workingView?.id) {\n throw new Error('No working view available to update')\n }\n\n // Fetch the specific base view (project or studio)\n const baseViewPromise = dispatch(\n viewsQueries.endpoints.getBaseView.initiate(\n {\n viewType: viewType as string,\n projectName: isStudioScope ? undefined : projectName,\n },\n { subscribe: false, forceRefetch: true },\n ),\n )\n const baseViewResult = await baseViewPromise\n const baseView = baseViewResult.data\n\n if (!baseView || !baseView.settings) {\n throw new Error('Base view not found or has no settings')\n }\n\n // Update the working view with the base view settings\n await updateViewMutation({\n viewId: workingView.id,\n viewType: viewType as string,\n projectName,\n payload: { settings: baseView.settings },\n }).unwrap()\n\n // Set the working view as the default view\n await setDefaultViewMutation({\n viewType: viewType as string,\n projectName,\n setDefaultViewRequestModel: { viewId: workingView.id },\n }).unwrap()\n\n const scope = isStudioScope ? 'Studio' : 'Project'\n toast.success(`Loaded ${scope} default view to working view`)\n } catch (error: any) {\n const scope = isStudioScope ? 'studio' : 'project'\n console.error(`Failed to load ${scope} base view:`, error)\n toast.error(`Failed to load ${scope} base view: ${error?.message || error}`)\n }\n },\n [\n workingView,\n updateViewMutation,\n setDefaultViewMutation,\n viewType,\n projectName,\n dispatch,\n ],\n )\n\n return {\n onCreateBaseView,\n onUpdateBaseView,\n onDeleteBaseView,\n onLoadBaseView,\n }\n}\n"],"names":["useBaseViewMutations","viewType","projectName","viewSettings","workingView","dispatch","createViewMutation","useCreateViewMutation","updateViewMutation","useUpdateViewMutation","deleteViewMutation","useDeleteViewMutation","setDefaultViewMutation","useSetDefaultViewMutation","onCreateBaseView","useCallback","isStudioScope","settings","baseViewPayload","BASE_VIEW_ID","result","viewsQueries","getScopeTag","scope","toast","error","onUpdateBaseView","baseViewId","onDeleteBaseView","onLoadBaseView","baseView"],"mappings":"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"}
@@ -89,7 +89,7 @@ import { useCreateViewMutation as B, useUpdateViewMutation as F, useDeleteViewMu
89
89
  import "../../../api/queries/watchers/getWatchers.es.js";
90
90
  import "../../../api/queries/uris/getUris.es.js";
91
91
  import { toast as m } from "react-toastify";
92
- import { BASE_VIEW_ID as D } from "./useBuildViewMenuItems.es.js";
92
+ import { BASE_VIEW_ID as D } from "../types.es.js";
93
93
  const lo = ({
94
94
  viewType: i,
95
95
  projectName: e,