@ynput/ayon-frontend-shared 0.3.40 → 0.3.41

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 (419) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +23 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +219 -218
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/_virtual/index.cjs15.js +1 -1
  8. package/dist/_virtual/index.cjs19.js +1 -1
  9. package/dist/_virtual/index.cjs4.js +1 -1
  10. package/dist/_virtual/index.cjs5.js +1 -1
  11. package/dist/_virtual/index.es15.js +2 -2
  12. package/dist/_virtual/index.es16.js +2 -2
  13. package/dist/_virtual/index.es17.js +2 -2
  14. package/dist/_virtual/index.es18.js +2 -2
  15. package/dist/_virtual/index.es19.js +2 -2
  16. package/dist/_virtual/index.es4.js +5 -2
  17. package/dist/_virtual/index.es4.js.map +1 -1
  18. package/dist/_virtual/index.es5.js +2 -5
  19. package/dist/_virtual/index.es5.js.map +1 -1
  20. package/dist/api.cjs.js +1 -1
  21. package/dist/api.es.js +219 -220
  22. package/dist/index.cjs.js +1 -1
  23. package/dist/index.es.js +10 -9
  24. package/dist/index.es.js.map +1 -1
  25. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  26. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  27. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  28. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  29. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  30. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  31. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  32. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  33. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  34. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  35. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  36. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  37. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  38. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  39. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  40. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  41. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  42. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  43. package/dist/shared/src/api/generated/graphql.cjs.js +20 -58
  44. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  45. package/dist/shared/src/api/generated/graphql.es.js +37 -75
  46. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  47. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  48. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  49. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  50. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  51. package/dist/shared/src/api/queries/entityLists/getLists.es.js +14 -16
  52. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  53. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js +1 -1
  54. package/dist/shared/src/api/queries/grouping/getGrouping.cjs.js.map +1 -1
  55. package/dist/shared/src/api/queries/grouping/getGrouping.es.js +6 -21
  56. package/dist/shared/src/api/queries/grouping/getGrouping.es.js.map +1 -1
  57. package/dist/shared/src/api/queries/products/createProduct.cjs.js +1 -1
  58. package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -1
  59. package/dist/shared/src/api/queries/products/createProduct.es.js +7 -46
  60. package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -1
  61. package/dist/shared/src/api/queries/products/getProduct.cjs.js +2 -0
  62. package/dist/shared/src/api/queries/products/getProduct.cjs.js.map +1 -0
  63. package/dist/shared/src/api/queries/products/getProduct.es.js +52 -0
  64. package/dist/shared/src/api/queries/products/getProduct.es.js.map +1 -0
  65. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  66. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  67. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +3 -2
  68. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  69. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  70. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  71. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +3 -2
  72. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  73. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  74. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  75. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +3 -2
  76. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  77. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  78. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  79. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +3 -2
  80. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  81. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  82. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  83. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +3 -2
  84. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  85. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  86. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  87. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +5 -4
  88. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  89. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  90. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  91. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +3 -2
  92. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  93. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  94. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  95. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +3 -2
  96. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  97. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  98. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  99. package/dist/shared/src/components/RenameForm/RenameForm.es.js +3 -2
  100. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  101. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  102. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  103. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +3 -2
  104. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  105. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  106. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  107. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +4 -3
  108. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  109. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  110. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  111. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +3 -2
  112. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  113. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  114. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  115. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +3 -2
  116. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  117. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  118. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  119. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +339 -353
  120. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  121. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  122. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  123. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +5 -4
  124. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  125. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  126. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  127. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +3 -2
  128. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  129. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  130. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  131. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +3 -2
  132. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  133. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  134. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  135. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +7 -6
  136. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  137. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  138. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  139. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +3 -2
  140. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  141. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  142. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  143. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +3 -2
  144. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  145. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  146. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  147. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +113 -119
  148. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  149. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  150. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  151. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +3 -2
  152. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  153. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  154. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  155. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +3 -2
  156. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  157. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  158. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  159. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +132 -122
  160. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  161. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js +6 -6
  162. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js.map +1 -1
  163. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js +1 -1
  164. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js.map +1 -1
  165. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +2 -0
  166. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -0
  167. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +148 -0
  168. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -0
  169. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js +29 -0
  170. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js.map +1 -0
  171. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js +34 -0
  172. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js.map +1 -0
  173. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  174. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  175. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +3 -2
  176. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  177. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  178. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  179. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +3 -2
  180. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  181. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  182. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  183. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +17 -16
  184. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  185. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  186. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  187. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +3 -2
  188. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  189. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  190. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  191. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +3 -2
  192. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  193. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js +2 -0
  194. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js.map +1 -0
  195. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js +9 -0
  196. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js.map +1 -0
  197. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js +1 -1
  198. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js.map +1 -1
  199. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js +12 -12
  200. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js.map +1 -1
  201. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
  202. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
  203. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  204. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  205. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +3 -2
  206. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  207. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  208. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  209. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +3 -2
  210. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  211. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  212. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  213. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +3 -2
  214. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  215. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  216. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  217. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +3 -2
  218. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  219. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  220. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  221. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +3 -2
  222. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  223. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  224. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  225. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +3 -2
  226. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  227. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  228. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  229. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +3 -2
  230. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  231. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  232. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
  233. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +5 -4
  234. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -1
  235. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  236. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  237. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +3 -2
  238. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  239. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  240. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  241. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +7 -6
  242. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  243. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  244. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  245. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +3 -2
  246. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  247. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  248. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  249. package/dist/shared/src/containers/ListTable/ListTable.es.js +3 -2
  250. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  251. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  252. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  253. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +3 -2
  254. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  255. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  256. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  257. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +3 -2
  258. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  260. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  261. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +365 -363
  262. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  263. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  264. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +3 -2
  266. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  267. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  268. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  269. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +3 -2
  270. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  271. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  272. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +3 -2
  274. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  276. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  277. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +3 -2
  278. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  279. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  280. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  281. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +3 -2
  282. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  283. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  284. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  285. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +3 -2
  286. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  287. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  288. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  289. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +3 -2
  290. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  291. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  292. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  293. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +6 -5
  294. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  295. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  296. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  297. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +3 -2
  298. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  299. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  300. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  301. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +3 -2
  302. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  303. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  304. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  305. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +3 -2
  306. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  307. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  308. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  309. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +3 -2
  310. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  311. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  312. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  313. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +3 -2
  314. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  315. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  316. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  317. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +3 -2
  318. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  319. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  320. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  321. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +3 -2
  322. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  323. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  324. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  325. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +3 -2
  326. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  327. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  328. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  329. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +3 -2
  330. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  331. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  332. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  333. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +3 -2
  334. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  335. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  336. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  337. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +3 -2
  338. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  339. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  340. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  341. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +3 -2
  342. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  343. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  344. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  345. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +14 -13
  346. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  347. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  348. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  349. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +3 -2
  350. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  351. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  352. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  353. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +4 -3
  354. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  355. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +1 -1
  356. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  357. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +3 -2
  358. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  359. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  360. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  361. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +5 -4
  362. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  363. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  364. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  365. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +3 -2
  366. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  367. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  368. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  369. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +3 -2
  370. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  371. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  372. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  373. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +3 -2
  374. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  375. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  376. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  377. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +3 -2
  378. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  379. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  380. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  381. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +3 -2
  382. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  383. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
  384. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
  385. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +3 -2
  386. package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
  387. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  388. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  389. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +3 -2
  390. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  391. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  392. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  393. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +61 -82
  394. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  395. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  396. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  397. package/dist/shared/src/context/ProjectContext.es.js +83 -66
  398. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  399. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  400. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  401. package/dist/shared/src/context/WebsocketContext.es.js +5 -4
  402. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  403. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  404. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  405. package/dist/types/api/generated/graphql.d.ts +1 -34
  406. package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +3 -1
  407. package/dist/types/api/queries/entityLists/getLists.d.ts +2 -315
  408. package/dist/types/api/queries/products/createProduct.d.ts +2 -2
  409. package/dist/types/api/queries/products/getProduct.d.ts +259 -0
  410. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -1
  411. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.d.ts +3 -2
  412. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.d.ts +7 -0
  413. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.d.ts +2 -0
  414. package/dist/types/containers/DetailsPanel/helpers/buildEntityTypeIcons.d.ts +4 -0
  415. package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +1 -1
  416. package/dist/types/containers/ProjectTreeTable/types/index.d.ts +1 -0
  417. package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +1 -0
  418. package/dist/types/context/ProjectContext.d.ts +2 -1
  419. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BaseViewsTags.cjs.js","sources":["../../../../../../src/containers/Views/ViewsMenuContainer/BaseViewsTags.tsx"],"sourcesContent":["import { FC } from 'react'\nimport * as Styled from '@shared/containers/Views/Views.styled'\nimport { useViewsContext } from '@shared/containers'\nimport { confirmDialog } from 'primereact/confirmdialog'\nimport { usePowerpack } from '@shared/context'\nimport { SectionHeader } from '@shared/containers/Views/ViewsMenu/SectionHeader'\nimport { useLocalStorage } from '@shared/hooks'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\n\ntype BaseViewsTagContainerProps = {\n projectName?: string | undefined\n}\n\nconst BaseViewsTagContainer: FC<BaseViewsTagContainerProps> = ({ projectName }) => {\n const {\n projectBaseView,\n studioBaseView,\n onCreateBaseView,\n onDeleteBaseView,\n onLoadBaseView,\n viewAlias,\n } = useViewsContext()\n\n const { powerLicense, setPowerpackDialog } = usePowerpack()\n const [collapsed, setCollapsed] = useLocalStorage('collapsed-default-view', false)\n\n const handleBaseViewAction = async (isStudioScope: boolean, remove?: boolean) => {\n const existingBase = isStudioScope ? studioBaseView : projectBaseView\n\n const disabled = !isStudioScope && powerLicense === false\n if (disabled && !remove) {\n setPowerpackDialog('sharedViews')\n return\n }\n\n if (existingBase) {\n if (remove || disabled) {\n // remove button clicked, ask to remove the base view\n confirmDialog({\n message: `Are you sure you want to remove this default ${viewAlias.toLowerCase()}?`,\n header: `Remove Default ${viewAlias}`,\n acceptLabel: 'Remove',\n rejectLabel: 'Cancel',\n accept: async () => {\n await onDeleteBaseView(existingBase.id as string, isStudioScope)\n },\n })\n } else {\n // load the base view settings into working view\n await onLoadBaseView(isStudioScope)\n }\n } else {\n // create new base view\n await onCreateBaseView(isStudioScope)\n }\n }\n\n return (\n <>\n <SectionHeader\n onClick={() => setCollapsed(!collapsed)}\n collapsed={collapsed}\n id=\"default-views\"\n title={`Default ${viewAlias.toLowerCase()}`}\n style={{ marginBottom: '10px' }}\n />\n {!collapsed && (\n <Styled.BaseViewsContainer>\n <ScopeIcon\n existingView={!!studioBaseView}\n label={'Studio'}\n onClick={(r) => handleBaseViewAction(true, r)}\n />\n {projectName && (\n <ScopeIcon\n existingView={!!projectBaseView}\n label={'Project'}\n onClick={(r) => handleBaseViewAction(false, r)}\n powerLicense={powerLicense}\n />\n )}\n </Styled.BaseViewsContainer>\n )}\n </>\n )\n}\nexport default BaseViewsTagContainer\n\ntype ScopeIconProps = {\n existingView: boolean\n onClick: (remove?: boolean) => void\n label: string\n powerLicense?: boolean\n}\n\nconst ScopeIcon: FC<ScopeIconProps> = ({\n existingView,\n onClick,\n label,\n powerLicense = undefined,\n}) => {\n const handleClick = (e: React.MouseEvent) => {\n e.stopPropagation()\n onClick()\n }\n\n const handleRemove = (e: React.MouseEvent) => {\n e.stopPropagation()\n onClick(true)\n }\n\n return (\n <Styled.ViewButton\n className={clsx({\n ['powerpack-locked']: powerLicense === false,\n ['active']: existingView,\n })}\n onClick={handleClick}\n >\n <Icon\n icon={powerLicense === false ? 'bolt' : existingView ? 'close' : 'add'}\n onClick={(e) => existingView && handleRemove(e)}\n />\n {label}\n </Styled.ViewButton>\n )\n}\n"],"names":["BaseViewsTagContainer","projectName","projectBaseView","studioBaseView","onCreateBaseView","onDeleteBaseView","onLoadBaseView","viewAlias","useViewsContext","powerLicense","setPowerpackDialog","usePowerpack","collapsed","setCollapsed","useLocalStorage","handleBaseViewAction","isStudioScope","remove","existingBase","disabled","confirmDialog","jsxs","Fragment","jsx","SectionHeader","Styled.BaseViewsContainer","ScopeIcon","existingView","onClick","label","handleClick","handleRemove","Styled.ViewButton","clsx","Icon"],"mappings":"+wiBAcMA,EAAwD,CAAC,CAAE,YAAAC,KAAkB,CACjF,KAAM,CACJ,gBAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,UAAAC,CAAA,EACEC,kBAAA,EAEE,CAAE,aAAAC,EAAc,mBAAAC,CAAA,EAAuBC,eAAA,EACvC,CAACC,EAAWC,CAAY,EAAIC,EAAAA,gBAAgB,yBAA0B,EAAK,EAE3EC,EAAuB,MAAOC,EAAwBC,IAAqB,CAC/E,MAAMC,EAAeF,EAAgBb,EAAiBD,EAEhDiB,EAAW,CAACH,GAAiBP,IAAiB,GACpD,GAAIU,GAAY,CAACF,EAAQ,CACvBP,EAAmB,aAAa,EAChC,MACF,CAEIQ,EACED,GAAUE,EAEZC,gBAAc,CACZ,QAAS,gDAAgDb,EAAU,YAAA,CAAa,IAChF,OAAQ,kBAAkBA,CAAS,GACnC,YAAa,SACb,YAAa,SACb,OAAQ,SAAY,CAClB,MAAMF,EAAiBa,EAAa,GAAcF,CAAa,CACjE,CAAA,CACD,EAGD,MAAMV,EAAeU,CAAa,EAIpC,MAAMZ,EAAiBY,CAAa,CAExC,EAEA,OACEK,EAAAA,kBAAAA,KAAAC,6BAAA,CACE,SAAA,CAAAC,EAAAA,kBAAAA,IAACC,EAAAA,cAAA,CACC,QAAS,IAAMX,EAAa,CAACD,CAAS,EACtC,UAAAA,EACA,GAAG,gBACH,MAAO,WAAWL,EAAU,YAAA,CAAa,GACzC,MAAO,CAAE,aAAc,MAAA,CAAO,CAAA,EAE/B,CAACK,GACAS,EAAAA,kBAAAA,KAACI,EAAAA,mBAAA,CACC,SAAA,CAAAF,EAAAA,kBAAAA,IAACG,EAAA,CACC,aAAc,CAAC,CAACvB,EAChB,MAAO,SACP,QAAU,GAAMY,EAAqB,GAAM,CAAC,CAAA,CAAA,EAE7Cd,GACCsB,EAAAA,kBAAAA,IAACG,EAAA,CACC,aAAc,CAAC,CAACxB,EAChB,MAAO,UACP,QAAU,GAAMa,EAAqB,GAAO,CAAC,EAC7C,aAAAN,CAAA,CAAA,CACF,CAAA,CAEJ,CAAA,EAEJ,CAEJ,EAUMiB,EAAgC,CAAC,CACrC,aAAAC,EACA,QAAAC,EACA,MAAAC,EACA,aAAApB,EAAe,MACjB,IAAM,CACJ,MAAMqB,EAAe,GAAwB,CAC3C,EAAE,gBAAA,EACFF,EAAA,CACF,EAEMG,EAAgB,GAAwB,CAC5C,EAAE,gBAAA,EACFH,EAAQ,EAAI,CACd,EAEA,OACEP,EAAAA,kBAAAA,KAACW,EAAAA,WAAA,CACC,UAAWC,EAAK,CACb,mBAAqBxB,IAAiB,GACtC,OAAWkB,CAAA,CACb,EACD,QAASG,EAET,SAAA,CAAAP,EAAAA,kBAAAA,IAACW,EAAAA,KAAA,CACC,KAAMzB,IAAiB,GAAQ,OAASkB,EAAe,QAAU,MACjE,QAAU,GAAMA,GAAgBI,EAAa,CAAC,CAAA,CAAA,EAE/CF,CAAA,CAAA,CAAA,CAGP"}
1
+ {"version":3,"file":"BaseViewsTags.cjs.js","sources":["../../../../../../src/containers/Views/ViewsMenuContainer/BaseViewsTags.tsx"],"sourcesContent":["import { FC } from 'react'\nimport * as Styled from '@shared/containers/Views/Views.styled'\nimport { useViewsContext } from '@shared/containers'\nimport { confirmDialog } from 'primereact/confirmdialog'\nimport { usePowerpack } from '@shared/context'\nimport { SectionHeader } from '@shared/containers/Views/ViewsMenu/SectionHeader'\nimport { useLocalStorage } from '@shared/hooks'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\n\ntype BaseViewsTagContainerProps = {\n projectName?: string | undefined\n}\n\nconst BaseViewsTagContainer: FC<BaseViewsTagContainerProps> = ({ projectName }) => {\n const {\n projectBaseView,\n studioBaseView,\n onCreateBaseView,\n onDeleteBaseView,\n onLoadBaseView,\n viewAlias,\n } = useViewsContext()\n\n const { powerLicense, setPowerpackDialog } = usePowerpack()\n const [collapsed, setCollapsed] = useLocalStorage('collapsed-default-view', false)\n\n const handleBaseViewAction = async (isStudioScope: boolean, remove?: boolean) => {\n const existingBase = isStudioScope ? studioBaseView : projectBaseView\n\n const disabled = !isStudioScope && powerLicense === false\n if (disabled && !remove) {\n setPowerpackDialog('sharedViews')\n return\n }\n\n if (existingBase) {\n if (remove || disabled) {\n // remove button clicked, ask to remove the base view\n confirmDialog({\n message: `Are you sure you want to remove this default ${viewAlias.toLowerCase()}?`,\n header: `Remove Default ${viewAlias}`,\n acceptLabel: 'Remove',\n rejectLabel: 'Cancel',\n accept: async () => {\n await onDeleteBaseView(existingBase.id as string, isStudioScope)\n },\n })\n } else {\n // load the base view settings into working view\n await onLoadBaseView(isStudioScope)\n }\n } else {\n // create new base view\n await onCreateBaseView(isStudioScope)\n }\n }\n\n return (\n <>\n <SectionHeader\n onClick={() => setCollapsed(!collapsed)}\n collapsed={collapsed}\n id=\"default-views\"\n title={`Default ${viewAlias.toLowerCase()}`}\n style={{ marginBottom: '10px' }}\n />\n {!collapsed && (\n <Styled.BaseViewsContainer>\n <ScopeIcon\n existingView={!!studioBaseView}\n label={'Studio'}\n onClick={(r) => handleBaseViewAction(true, r)}\n />\n {projectName && (\n <ScopeIcon\n existingView={!!projectBaseView}\n label={'Project'}\n onClick={(r) => handleBaseViewAction(false, r)}\n powerLicense={powerLicense}\n />\n )}\n </Styled.BaseViewsContainer>\n )}\n </>\n )\n}\nexport default BaseViewsTagContainer\n\ntype ScopeIconProps = {\n existingView: boolean\n onClick: (remove?: boolean) => void\n label: string\n powerLicense?: boolean\n}\n\nconst ScopeIcon: FC<ScopeIconProps> = ({\n existingView,\n onClick,\n label,\n powerLicense = undefined,\n}) => {\n const handleClick = (e: React.MouseEvent) => {\n e.stopPropagation()\n onClick()\n }\n\n const handleRemove = (e: React.MouseEvent) => {\n e.stopPropagation()\n onClick(true)\n }\n\n return (\n <Styled.ViewButton\n className={clsx({\n ['powerpack-locked']: powerLicense === false,\n ['active']: existingView,\n })}\n onClick={handleClick}\n >\n <Icon\n icon={powerLicense === false ? 'bolt' : existingView ? 'close' : 'add'}\n onClick={(e) => existingView && handleRemove(e)}\n />\n {label}\n </Styled.ViewButton>\n )\n}\n"],"names":["BaseViewsTagContainer","projectName","projectBaseView","studioBaseView","onCreateBaseView","onDeleteBaseView","onLoadBaseView","viewAlias","useViewsContext","powerLicense","setPowerpackDialog","usePowerpack","collapsed","setCollapsed","useLocalStorage","handleBaseViewAction","isStudioScope","remove","existingBase","disabled","confirmDialog","jsxs","Fragment","jsx","SectionHeader","Styled.BaseViewsContainer","ScopeIcon","existingView","onClick","label","handleClick","handleRemove","Styled.ViewButton","clsx","Icon"],"mappings":"u2iBAcMA,EAAwD,CAAC,CAAE,YAAAC,KAAkB,CACjF,KAAM,CACJ,gBAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,UAAAC,CAAA,EACEC,kBAAA,EAEE,CAAE,aAAAC,EAAc,mBAAAC,CAAA,EAAuBC,eAAA,EACvC,CAACC,EAAWC,CAAY,EAAIC,EAAAA,gBAAgB,yBAA0B,EAAK,EAE3EC,EAAuB,MAAOC,EAAwBC,IAAqB,CAC/E,MAAMC,EAAeF,EAAgBb,EAAiBD,EAEhDiB,EAAW,CAACH,GAAiBP,IAAiB,GACpD,GAAIU,GAAY,CAACF,EAAQ,CACvBP,EAAmB,aAAa,EAChC,MACF,CAEIQ,EACED,GAAUE,EAEZC,gBAAc,CACZ,QAAS,gDAAgDb,EAAU,YAAA,CAAa,IAChF,OAAQ,kBAAkBA,CAAS,GACnC,YAAa,SACb,YAAa,SACb,OAAQ,SAAY,CAClB,MAAMF,EAAiBa,EAAa,GAAcF,CAAa,CACjE,CAAA,CACD,EAGD,MAAMV,EAAeU,CAAa,EAIpC,MAAMZ,EAAiBY,CAAa,CAExC,EAEA,OACEK,EAAAA,kBAAAA,KAAAC,6BAAA,CACE,SAAA,CAAAC,EAAAA,kBAAAA,IAACC,EAAAA,cAAA,CACC,QAAS,IAAMX,EAAa,CAACD,CAAS,EACtC,UAAAA,EACA,GAAG,gBACH,MAAO,WAAWL,EAAU,YAAA,CAAa,GACzC,MAAO,CAAE,aAAc,MAAA,CAAO,CAAA,EAE/B,CAACK,GACAS,EAAAA,kBAAAA,KAACI,EAAAA,mBAAA,CACC,SAAA,CAAAF,EAAAA,kBAAAA,IAACG,EAAA,CACC,aAAc,CAAC,CAACvB,EAChB,MAAO,SACP,QAAU,GAAMY,EAAqB,GAAM,CAAC,CAAA,CAAA,EAE7Cd,GACCsB,EAAAA,kBAAAA,IAACG,EAAA,CACC,aAAc,CAAC,CAACxB,EAChB,MAAO,UACP,QAAU,GAAMa,EAAqB,GAAO,CAAC,EAC7C,aAAAN,CAAA,CAAA,CACF,CAAA,CAEJ,CAAA,EAEJ,CAEJ,EAUMiB,EAAgC,CAAC,CACrC,aAAAC,EACA,QAAAC,EACA,MAAAC,EACA,aAAApB,EAAe,MACjB,IAAM,CACJ,MAAMqB,EAAe,GAAwB,CAC3C,EAAE,gBAAA,EACFF,EAAA,CACF,EAEMG,EAAgB,GAAwB,CAC5C,EAAE,gBAAA,EACFH,EAAQ,EAAI,CACd,EAEA,OACEP,EAAAA,kBAAAA,KAACW,EAAAA,WAAA,CACC,UAAWC,EAAK,CACb,mBAAqBxB,IAAiB,GACtC,OAAWkB,CAAA,CACb,EACD,QAASG,EAET,SAAA,CAAAP,EAAAA,kBAAAA,IAACW,EAAAA,KAAA,CACC,KAAMzB,IAAiB,GAAQ,OAASkB,EAAe,QAAU,MACjE,QAAU,GAAMA,GAAgBI,EAAa,CAAC,CAAA,CAAA,EAE/CF,CAAA,CAAA,CAAA,CAGP"}
@@ -274,6 +274,7 @@ import "../../ProjectTreeTable/components/HeaderActionButton.es.js";
274
274
  import "../../ProjectTreeTable/components/TableFooterRow.es.js";
275
275
  import "../../DetailsPanel/DetailsPanel.styled.es.js";
276
276
  import "../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.es.js";
277
+ import "../../DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.es.js";
277
278
  import "../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.es.js";
278
279
  import "../../../components/PlayableIcon/PlayableIcon.es.js";
279
280
  import "../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js";
@@ -291,7 +292,7 @@ import "../ViewsMenu/ViewsMenu.es.js";
291
292
  import "../../ListTable/ListTableRow.es.js";
292
293
  import "../../ListTable/ListTable.styled.es.js";
293
294
  import { SectionHeader as L } from "../ViewsMenu/SectionHeader.es.js";
294
- const Zm = ({ projectName: r }) => {
295
+ const _m = ({ projectName: r }) => {
295
296
  const {
296
297
  projectBaseView: m,
297
298
  studioBaseView: p,
@@ -379,6 +380,6 @@ const Zm = ({ projectName: r }) => {
379
380
  );
380
381
  };
381
382
  export {
382
- Zm as default
383
+ _m as default
383
384
  };
384
385
  //# sourceMappingURL=BaseViewsTags.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseViewsTags.es.js","sources":["../../../../../../src/containers/Views/ViewsMenuContainer/BaseViewsTags.tsx"],"sourcesContent":["import { FC } from 'react'\nimport * as Styled from '@shared/containers/Views/Views.styled'\nimport { useViewsContext } from '@shared/containers'\nimport { confirmDialog } from 'primereact/confirmdialog'\nimport { usePowerpack } from '@shared/context'\nimport { SectionHeader } from '@shared/containers/Views/ViewsMenu/SectionHeader'\nimport { useLocalStorage } from '@shared/hooks'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\n\ntype BaseViewsTagContainerProps = {\n projectName?: string | undefined\n}\n\nconst BaseViewsTagContainer: FC<BaseViewsTagContainerProps> = ({ projectName }) => {\n const {\n projectBaseView,\n studioBaseView,\n onCreateBaseView,\n onDeleteBaseView,\n onLoadBaseView,\n viewAlias,\n } = useViewsContext()\n\n const { powerLicense, setPowerpackDialog } = usePowerpack()\n const [collapsed, setCollapsed] = useLocalStorage('collapsed-default-view', false)\n\n const handleBaseViewAction = async (isStudioScope: boolean, remove?: boolean) => {\n const existingBase = isStudioScope ? studioBaseView : projectBaseView\n\n const disabled = !isStudioScope && powerLicense === false\n if (disabled && !remove) {\n setPowerpackDialog('sharedViews')\n return\n }\n\n if (existingBase) {\n if (remove || disabled) {\n // remove button clicked, ask to remove the base view\n confirmDialog({\n message: `Are you sure you want to remove this default ${viewAlias.toLowerCase()}?`,\n header: `Remove Default ${viewAlias}`,\n acceptLabel: 'Remove',\n rejectLabel: 'Cancel',\n accept: async () => {\n await onDeleteBaseView(existingBase.id as string, isStudioScope)\n },\n })\n } else {\n // load the base view settings into working view\n await onLoadBaseView(isStudioScope)\n }\n } else {\n // create new base view\n await onCreateBaseView(isStudioScope)\n }\n }\n\n return (\n <>\n <SectionHeader\n onClick={() => setCollapsed(!collapsed)}\n collapsed={collapsed}\n id=\"default-views\"\n title={`Default ${viewAlias.toLowerCase()}`}\n style={{ marginBottom: '10px' }}\n />\n {!collapsed && (\n <Styled.BaseViewsContainer>\n <ScopeIcon\n existingView={!!studioBaseView}\n label={'Studio'}\n onClick={(r) => handleBaseViewAction(true, r)}\n />\n {projectName && (\n <ScopeIcon\n existingView={!!projectBaseView}\n label={'Project'}\n onClick={(r) => handleBaseViewAction(false, r)}\n powerLicense={powerLicense}\n />\n )}\n </Styled.BaseViewsContainer>\n )}\n </>\n )\n}\nexport default BaseViewsTagContainer\n\ntype ScopeIconProps = {\n existingView: boolean\n onClick: (remove?: boolean) => void\n label: string\n powerLicense?: boolean\n}\n\nconst ScopeIcon: FC<ScopeIconProps> = ({\n existingView,\n onClick,\n label,\n powerLicense = undefined,\n}) => {\n const handleClick = (e: React.MouseEvent) => {\n e.stopPropagation()\n onClick()\n }\n\n const handleRemove = (e: React.MouseEvent) => {\n e.stopPropagation()\n onClick(true)\n }\n\n return (\n <Styled.ViewButton\n className={clsx({\n ['powerpack-locked']: powerLicense === false,\n ['active']: existingView,\n })}\n onClick={handleClick}\n >\n <Icon\n icon={powerLicense === false ? 'bolt' : existingView ? 'close' : 'add'}\n onClick={(e) => existingView && handleRemove(e)}\n />\n {label}\n </Styled.ViewButton>\n )\n}\n"],"names":["BaseViewsTagContainer","projectName","projectBaseView","studioBaseView","onCreateBaseView","onDeleteBaseView","onLoadBaseView","viewAlias","useViewsContext","powerLicense","setPowerpackDialog","usePowerpack","collapsed","setCollapsed","useLocalStorage","handleBaseViewAction","isStudioScope","remove","existingBase","disabled","confirmDialog","jsxs","Fragment","jsx","SectionHeader","Styled.BaseViewsContainer","ScopeIcon","r","existingView","onClick","label","handleClick","e","handleRemove","Styled.ViewButton","clsx","Icon"],"mappings":"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"}
1
+ {"version":3,"file":"BaseViewsTags.es.js","sources":["../../../../../../src/containers/Views/ViewsMenuContainer/BaseViewsTags.tsx"],"sourcesContent":["import { FC } from 'react'\nimport * as Styled from '@shared/containers/Views/Views.styled'\nimport { useViewsContext } from '@shared/containers'\nimport { confirmDialog } from 'primereact/confirmdialog'\nimport { usePowerpack } from '@shared/context'\nimport { SectionHeader } from '@shared/containers/Views/ViewsMenu/SectionHeader'\nimport { useLocalStorage } from '@shared/hooks'\nimport { Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\n\ntype BaseViewsTagContainerProps = {\n projectName?: string | undefined\n}\n\nconst BaseViewsTagContainer: FC<BaseViewsTagContainerProps> = ({ projectName }) => {\n const {\n projectBaseView,\n studioBaseView,\n onCreateBaseView,\n onDeleteBaseView,\n onLoadBaseView,\n viewAlias,\n } = useViewsContext()\n\n const { powerLicense, setPowerpackDialog } = usePowerpack()\n const [collapsed, setCollapsed] = useLocalStorage('collapsed-default-view', false)\n\n const handleBaseViewAction = async (isStudioScope: boolean, remove?: boolean) => {\n const existingBase = isStudioScope ? studioBaseView : projectBaseView\n\n const disabled = !isStudioScope && powerLicense === false\n if (disabled && !remove) {\n setPowerpackDialog('sharedViews')\n return\n }\n\n if (existingBase) {\n if (remove || disabled) {\n // remove button clicked, ask to remove the base view\n confirmDialog({\n message: `Are you sure you want to remove this default ${viewAlias.toLowerCase()}?`,\n header: `Remove Default ${viewAlias}`,\n acceptLabel: 'Remove',\n rejectLabel: 'Cancel',\n accept: async () => {\n await onDeleteBaseView(existingBase.id as string, isStudioScope)\n },\n })\n } else {\n // load the base view settings into working view\n await onLoadBaseView(isStudioScope)\n }\n } else {\n // create new base view\n await onCreateBaseView(isStudioScope)\n }\n }\n\n return (\n <>\n <SectionHeader\n onClick={() => setCollapsed(!collapsed)}\n collapsed={collapsed}\n id=\"default-views\"\n title={`Default ${viewAlias.toLowerCase()}`}\n style={{ marginBottom: '10px' }}\n />\n {!collapsed && (\n <Styled.BaseViewsContainer>\n <ScopeIcon\n existingView={!!studioBaseView}\n label={'Studio'}\n onClick={(r) => handleBaseViewAction(true, r)}\n />\n {projectName && (\n <ScopeIcon\n existingView={!!projectBaseView}\n label={'Project'}\n onClick={(r) => handleBaseViewAction(false, r)}\n powerLicense={powerLicense}\n />\n )}\n </Styled.BaseViewsContainer>\n )}\n </>\n )\n}\nexport default BaseViewsTagContainer\n\ntype ScopeIconProps = {\n existingView: boolean\n onClick: (remove?: boolean) => void\n label: string\n powerLicense?: boolean\n}\n\nconst ScopeIcon: FC<ScopeIconProps> = ({\n existingView,\n onClick,\n label,\n powerLicense = undefined,\n}) => {\n const handleClick = (e: React.MouseEvent) => {\n e.stopPropagation()\n onClick()\n }\n\n const handleRemove = (e: React.MouseEvent) => {\n e.stopPropagation()\n onClick(true)\n }\n\n return (\n <Styled.ViewButton\n className={clsx({\n ['powerpack-locked']: powerLicense === false,\n ['active']: existingView,\n })}\n onClick={handleClick}\n >\n <Icon\n icon={powerLicense === false ? 'bolt' : existingView ? 'close' : 'add'}\n onClick={(e) => existingView && handleRemove(e)}\n />\n {label}\n </Styled.ViewButton>\n )\n}\n"],"names":["BaseViewsTagContainer","projectName","projectBaseView","studioBaseView","onCreateBaseView","onDeleteBaseView","onLoadBaseView","viewAlias","useViewsContext","powerLicense","setPowerpackDialog","usePowerpack","collapsed","setCollapsed","useLocalStorage","handleBaseViewAction","isStudioScope","remove","existingBase","disabled","confirmDialog","jsxs","Fragment","jsx","SectionHeader","Styled.BaseViewsContainer","ScopeIcon","r","existingView","onClick","label","handleClick","e","handleRemove","Styled.ViewButton","clsx","Icon"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("../../context/ViewsContext.cjs.js");require("lodash");require("react-toastify");require("uuid");const C=require("../../../../util/columnConfigConverter.cjs.js");require("../../../../util/pubsub.cjs.js");const e=require("react"),D=({viewSettings:a,updateViewSettings:o})=>{const[p,k]=e.useState(null),[O,l]=e.useState(null),[g,i]=e.useState(null),{selectedView:T,workingView:H,isViewWorking:M,editingViewId:q}=A.useViewsContext(),[r,v]=e.useState({summaries:{},scopes:{},formats:{}}),B=M?q||H?.id||"working":T?.id;e.useEffect(()=>{v({summaries:{},scopes:{},formats:{}})},[B]);const f=a,b=f?.filter??{},j=f?.showHierarchy??!0,w=f?.sliceType,S=e.useMemo(()=>C.convertColumnConfigToTanstackStates(f),[JSON.stringify(a)]);e.useEffect(()=>{k(null)},[JSON.stringify(a?.filter)]),e.useEffect(()=>{l(null)},[a?.showHierarchy,a?.groupBy]),e.useEffect(()=>{i(null)},[JSON.stringify(a?.columns)]);const U=p!==null?p:b,E=O!==null?O:j,u=g||S,m=e.useMemo(()=>Object.keys(r.summaries).length||Object.keys(r.scopes).length||Object.keys(r.formats).length?{...u,columnSummaries:{...u.columnSummaries,...r.summaries},columnSummaryScopes:{...u.columnSummaryScopes,...r.scopes},columnSummaryFormats:{...u.columnSummaryFormats,...r.formats}}:u,[u,r]),L=e.useCallback(()=>{},[]),x=e.useCallback(async s=>{await o({sliceType:s},L,s,{errorMessage:"Failed to update slicer type"})},[o]),J=e.useCallback(async s=>{await o({filter:s},k,s,{errorMessage:"Failed to update filter settings"})},[o]),N=e.useCallback(async s=>{if(s&&m?.groupBy){const c={...m,groupBy:void 0};i(c);const t=C.convertTanstackStatesToColumnConfig(c);await o({...t,showHierarchy:!0},l,s,{errorMessage:"Failed to update hierarchy setting"});return}await o({showHierarchy:s},l,s,{errorMessage:"Failed to update hierarchy setting"})},[o,m]),P=e.useCallback(async(s,c)=>{(s.columnSummaries||s.columnSummaryScopes||s.columnSummaryFormats)&&v(n=>({summaries:{...n.summaries,...s.columnSummaries||{}},scopes:{...n.scopes,...s.columnSummaryScopes||{}},formats:{...n.formats,...s.columnSummaryFormats||{}}}));const t=c||[...s.columnOrder||[],...Object.keys(s.columnVisibility||{}),...s.columnPinning?.left||[],...s.columnPinning?.right||[]].filter(Boolean).filter((n,F,y)=>y.indexOf(n)===F),d=C.convertTanstackStatesToColumnConfig(s,t),h=!!s.groupBy;h&&l(!1),await o(h?{...d,showHierarchy:!1}:d,i,s,{errorMessage:"Failed to update columns"})},[o]),G=e.useCallback(async(s,c,t)=>{const d={showHierarchy:c,groupBy:s,groupSortByDesc:s?t??!1:void 0},n={...m,groupBy:s?{id:s,desc:t??!1}:void 0};await o(d,y=>{y===null?(l(null),i(null)):(l(y.showHierarchy),i(y.columns))},{showHierarchy:c,columns:n},{errorMessage:"Failed to update grouping"})},[o,m]);return{filters:U,onUpdateFilters:J,showHierarchy:E,onUpdateHierarchy:N,columns:m,onUpdateColumns:P,onUpdateGroupBy:G,sliceType:w,onUpdateSliceType:x}};exports.useOverviewViewSettings=D;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("lodash");require("react-toastify");require("uuid");const C=require("../../../../util/columnConfigConverter.cjs.js");require("../../../../util/pubsub.cjs.js");const o=require("react"),J=({viewSettings:l,updateViewSettings:s})=>{const[d,h]=o.useState(null),[p,c]=o.useState(null),[T,t]=o.useState(null),i=l,g=i?.filter??{},k=i?.showHierarchy??!0,F=i?.sliceType,H=o.useMemo(()=>C.convertColumnConfigToTanstackStates(i),[JSON.stringify(l)]);o.useEffect(()=>{h(null)},[JSON.stringify(l?.filter)]),o.useEffect(()=>{c(null)},[l?.showHierarchy,l?.groupBy]),o.useEffect(()=>{t(null)},[JSON.stringify(l?.columns)]);const O=d!==null?d:g,b=p!==null?p:k,n=T||H,M=o.useCallback(()=>{},[]),q=o.useCallback(async e=>{await s({sliceType:e},M,e,{errorMessage:"Failed to update slicer type"})},[s]),B=o.useCallback(async e=>{await s({filter:e},h,e,{errorMessage:"Failed to update filter settings"})},[s]),U=o.useCallback(async e=>{if(e&&n?.groupBy){const r={...n,groupBy:void 0};t(r);const a=C.convertTanstackStatesToColumnConfig(r);await s({...a,showHierarchy:!0},c,e,{errorMessage:"Failed to update hierarchy setting"});return}await s({showHierarchy:e},c,e,{errorMessage:"Failed to update hierarchy setting"})},[s,n]),L=o.useCallback(async(e,r)=>{const a=r||[...e.columnOrder||[],...Object.keys(e.columnVisibility||{}),...e.columnPinning?.left||[],...e.columnPinning?.right||[]].filter(Boolean).filter((m,v,u)=>u.indexOf(m)===v),y=C.convertTanstackStatesToColumnConfig(e,a),f=!!e.groupBy;f&&c(!1),await s(f?{...y,showHierarchy:!1}:y,t,e,{errorMessage:"Failed to update columns"})},[s]),E=o.useCallback(async(e,r,a)=>{const y={showHierarchy:r,groupBy:e,groupSortByDesc:e?a??!1:void 0},m={...n,groupBy:e?{id:e,desc:a??!1}:void 0};await s(y,u=>{u===null?(c(null),t(null)):(c(u.showHierarchy),t(u.columns))},{showHierarchy:r,columns:m},{errorMessage:"Failed to update grouping"})},[s,n]);return{filters:O,onUpdateFilters:B,showHierarchy:b,onUpdateHierarchy:U,columns:n,onUpdateColumns:L,onUpdateGroupBy:E,sliceType:F,onUpdateSliceType:q}};exports.useOverviewViewSettings=J;
2
2
  //# sourceMappingURL=useOverviewViewSettings.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOverviewViewSettings.cjs.js","sources":["../../../../../../../src/containers/Views/hooks/pages/useOverviewViewSettings.ts"],"sourcesContent":["/**\n * Unified hook for managing all overview page view settings.\n *\n * The hook handles:\n * - Filter settings (QueryFilter format)\n * - Hierarchy visibility toggle\n * - Column configurations (ColumnsConfig format)\n *\n * Must be used within a ViewsProvider context.\n */\n\nimport { useViewsContext } from '../../context/ViewsContext'\nimport { OverviewSettings } from '@shared/api'\nimport { ColumnsConfig } from '@shared/containers/ProjectTreeTable'\nimport {\n convertColumnConfigToTanstackStates,\n convertTanstackStatesToColumnConfig,\n} from '@shared/util'\nimport { UpdateViewSettingsFn } from '../../utils/viewUpdateHelper'\nimport { useState, useEffect, useCallback, useMemo } from 'react'\n\n// Import the internal QueryFilter type that the app uses\nimport { QueryFilter } from '@shared/containers/ProjectTreeTable/types/operations'\nimport {\n SummaryCalc,\n SummaryFormat,\n RowScope,\n} from '@shared/containers/ProjectTreeTable/types/summaryTypes'\n\ntype Return = {\n // Filter management\n filters: QueryFilter\n onUpdateFilters: (filters: QueryFilter) => void\n\n // Hierarchy management\n showHierarchy: boolean\n onUpdateHierarchy: (showHierarchy: boolean) => void\n\n // Column management\n columns: ColumnsConfig\n onUpdateColumns: (columns: ColumnsConfig, allColumnIds?: string[]) => void\n // Atomic groupBy + showHierarchy update (avoids 2-PATCH race)\n onUpdateGroupBy: (groupBy: string | undefined, showHierarchy: boolean, desc?: boolean) => void\n // Slicer type management\n sliceType: string | undefined\n onUpdateSliceType: (sliceType: string) => void\n}\n\ntype Props = {\n viewSettings: OverviewSettings | undefined\n updateViewSettings: UpdateViewSettingsFn\n}\n\nexport const useOverviewViewSettings = ({ viewSettings, updateViewSettings }: Props): Return => {\n // Local state for immediate updates\n const [localFilters, setLocalFilters] = useState<QueryFilter | null>(null)\n const [localHierarchy, setLocalHierarchy] = useState<boolean | null>(null)\n const [localColumns, setLocalColumns] = useState<ColumnsConfig | null>(null)\n\n // Backend drops summary/summaryScope/summaryFormat from ColumnItemModel, so\n // the post-save refetch would revert them — hold the selections here, session only.\n const { selectedView, workingView, isViewWorking, editingViewId } = useViewsContext()\n const [summaryOverrides, setSummaryOverrides] = useState<{\n summaries: Record<string, SummaryCalc>\n scopes: Record<string, RowScope>\n formats: Record<string, SummaryFormat>\n }>({ summaries: {}, scopes: {}, formats: {} })\n\n // Editing a named view forks to the working view (selectedView.id flips), but\n // editingViewId keeps pointing at the origin, so the key stays stable while editing.\n const viewKey = isViewWorking\n ? editingViewId || workingView?.id || 'working'\n : selectedView?.id\n\n // Reset overrides when a different view's settings come on screen\n useEffect(() => {\n setSummaryOverrides({ summaries: {}, scopes: {}, formats: {} })\n }, [viewKey])\n\n // Get server settings\n const overviewSettings = viewSettings as OverviewSettings\n const serverFilters = (overviewSettings?.filter as any) ?? {}\n const serverHierarchy = overviewSettings?.showHierarchy ?? true\n const serverSliceType = overviewSettings?.sliceType\n\n const serverColumns = useMemo(\n () => convertColumnConfigToTanstackStates(overviewSettings),\n [JSON.stringify(viewSettings)],\n )\n\n // Sync local state with server when the relevant setting fields change.\n // Use per-field deps (not JSON.stringify(viewSettings)) so a change to one\n // field does not clear in-flight local state for unrelated fields, which\n // would cause a visible flicker during rapid sequential updates.\n useEffect(() => {\n setLocalFilters(null)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify((viewSettings as OverviewSettings)?.filter)])\n\n useEffect(() => {\n setLocalHierarchy(null)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n (viewSettings as OverviewSettings)?.showHierarchy,\n (viewSettings as OverviewSettings)?.groupBy,\n ])\n\n useEffect(() => {\n setLocalColumns(null)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify((viewSettings as OverviewSettings)?.columns)])\n\n // Use local state if available, otherwise use server state\n const filters = localFilters !== null ? localFilters : serverFilters\n const showHierarchy = localHierarchy !== null ? localHierarchy : serverHierarchy\n const columnsBase = localColumns || serverColumns\n const columns = useMemo(() => {\n const hasOverrides =\n Object.keys(summaryOverrides.summaries).length ||\n Object.keys(summaryOverrides.scopes).length ||\n Object.keys(summaryOverrides.formats).length\n if (!hasOverrides) return columnsBase\n return {\n ...columnsBase,\n columnSummaries: { ...columnsBase.columnSummaries, ...summaryOverrides.summaries },\n columnSummaryScopes: {\n ...columnsBase.columnSummaryScopes,\n ...summaryOverrides.scopes,\n },\n columnSummaryFormats: {\n ...columnsBase.columnSummaryFormats,\n ...summaryOverrides.formats,\n },\n }\n }, [columnsBase, summaryOverrides])\n\n // Slice type update handler\n const noop = useCallback(() => {}, [])\n const onUpdateSliceType = useCallback(\n async (newSliceType: string) => {\n await updateViewSettings({ sliceType: newSliceType }, noop, newSliceType, {\n errorMessage: 'Failed to update slicer type',\n })\n },\n [updateViewSettings],\n )\n\n // Filter update handler\n const onUpdateFilters = useCallback(\n async (newFilters: QueryFilter) => {\n await updateViewSettings({ filter: newFilters as any }, setLocalFilters, newFilters, {\n errorMessage: 'Failed to update filter settings',\n })\n },\n [updateViewSettings],\n )\n\n // Hierarchy update handler\n const onUpdateHierarchy = useCallback(\n async (newShowHierarchy: boolean) => {\n // If turning hierarchy ON while grouped, clear groupBy in the same update\n if (newShowHierarchy && (columns as ColumnsConfig)?.groupBy) {\n const clearedColumns: ColumnsConfig = { ...columns, groupBy: undefined }\n // Optimistically update local columns to remove grouping\n setLocalColumns(clearedColumns)\n const settings = convertTanstackStatesToColumnConfig(clearedColumns)\n await updateViewSettings(\n { ...settings, showHierarchy: true },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n return\n }\n\n await updateViewSettings(\n { showHierarchy: newShowHierarchy },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n },\n [updateViewSettings, columns],\n )\n\n // Column update handler\n const onUpdateColumns = useCallback(\n async (tableSettings: ColumnsConfig, allColumnIds?: string[]) => {\n // Keep the summary footer choices alive across the working-view refetch\n // (backend drops these fields, so server state can't be trusted for them).\n if (\n tableSettings.columnSummaries ||\n tableSettings.columnSummaryScopes ||\n tableSettings.columnSummaryFormats\n ) {\n setSummaryOverrides((prev) => ({\n summaries: { ...prev.summaries, ...(tableSettings.columnSummaries || {}) },\n scopes: { ...prev.scopes, ...(tableSettings.columnSummaryScopes || {}) },\n formats: { ...prev.formats, ...(tableSettings.columnSummaryFormats || {}) },\n }))\n }\n\n // Derive a stable allColumnIds if not provided to preserve order and grouping on server\n const derivedAll =\n allColumnIds ||\n [\n ...(tableSettings.columnOrder || []),\n ...Object.keys(tableSettings.columnVisibility || {}),\n ...((tableSettings.columnPinning?.left as string[]) || []),\n ...((tableSettings.columnPinning?.right as string[]) || []),\n ]\n .filter(Boolean)\n .filter((v, i, a) => a.indexOf(v) === i)\n\n const settings = convertTanstackStatesToColumnConfig(tableSettings, derivedAll)\n const hasGroupBy = !!tableSettings.groupBy\n\n // If grouping is being set, turn off hierarchy in the same update for consistency\n if (hasGroupBy) {\n // Optimistically reflect hierarchy off\n setLocalHierarchy(false)\n }\n\n await updateViewSettings(\n hasGroupBy ? { ...settings, showHierarchy: false } : settings,\n setLocalColumns,\n tableSettings,\n { errorMessage: 'Failed to update columns' },\n )\n },\n [updateViewSettings],\n )\n\n // Atomic groupBy + showHierarchy update.\n // Merges both fields into a single PATCH to avoid a race where two sequential\n // updateViewSettings calls both capture the same pre-update viewSettings snapshot\n // and the second overwrites the first.\n const onUpdateGroupBy = useCallback(\n async (groupBy: string | undefined, newShowHierarchy: boolean, desc?: boolean) => {\n const updates: Partial<OverviewSettings> = {\n showHierarchy: newShowHierarchy,\n groupBy: groupBy,\n groupSortByDesc: groupBy ? desc ?? false : undefined,\n }\n\n const baseColumns = columns as ColumnsConfig\n const newLocalColumns: ColumnsConfig = {\n ...baseColumns,\n groupBy: groupBy ? { id: groupBy, desc: desc ?? false } : undefined,\n }\n\n // Combined setter lets updateViewSettings manage optimism/reset for both\n // local states atomically (so error paths don't leave one stale).\n const combinedSetter = (value: { showHierarchy: boolean; columns: ColumnsConfig } | null) => {\n if (value === null) {\n setLocalHierarchy(null)\n setLocalColumns(null)\n } else {\n setLocalHierarchy(value.showHierarchy)\n setLocalColumns(value.columns)\n }\n }\n\n await updateViewSettings(\n updates,\n combinedSetter,\n { showHierarchy: newShowHierarchy, columns: newLocalColumns },\n { errorMessage: 'Failed to update grouping' },\n )\n },\n [updateViewSettings, columns],\n )\n\n return {\n filters,\n onUpdateFilters,\n showHierarchy,\n onUpdateHierarchy,\n columns,\n onUpdateColumns,\n onUpdateGroupBy,\n sliceType: serverSliceType,\n onUpdateSliceType,\n }\n}\n"],"names":["useOverviewViewSettings","viewSettings","updateViewSettings","localFilters","setLocalFilters","useState","localHierarchy","setLocalHierarchy","localColumns","setLocalColumns","selectedView","workingView","isViewWorking","editingViewId","useViewsContext","summaryOverrides","setSummaryOverrides","viewKey","useEffect","overviewSettings","serverFilters","serverHierarchy","serverSliceType","serverColumns","useMemo","convertColumnConfigToTanstackStates","filters","showHierarchy","columnsBase","columns","noop","useCallback","onUpdateSliceType","newSliceType","onUpdateFilters","newFilters","onUpdateHierarchy","newShowHierarchy","clearedColumns","settings","convertTanstackStatesToColumnConfig","onUpdateColumns","tableSettings","allColumnIds","prev","derivedAll","v","i","a","hasGroupBy","onUpdateGroupBy","groupBy","desc","updates","newLocalColumns","value"],"mappings":"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"}
1
+ {"version":3,"file":"useOverviewViewSettings.cjs.js","sources":["../../../../../../../src/containers/Views/hooks/pages/useOverviewViewSettings.ts"],"sourcesContent":["/**\n * Unified hook for managing all overview page view settings.\n *\n * The hook handles:\n * - Filter settings (QueryFilter format)\n * - Hierarchy visibility toggle\n * - Column configurations (ColumnsConfig format)\n *\n * Must be used within a ViewsProvider context.\n */\n\nimport { OverviewSettings } from '@shared/api'\nimport { ColumnsConfig } from '@shared/containers/ProjectTreeTable'\nimport {\n convertColumnConfigToTanstackStates,\n convertTanstackStatesToColumnConfig,\n} from '@shared/util'\nimport { UpdateViewSettingsFn } from '../../utils/viewUpdateHelper'\nimport { useState, useEffect, useCallback, useMemo } from 'react'\n\n// Import the internal QueryFilter type that the app uses\nimport { QueryFilter } from '@shared/containers/ProjectTreeTable/types/operations'\n\ntype Return = {\n // Filter management\n filters: QueryFilter\n onUpdateFilters: (filters: QueryFilter) => void\n\n // Hierarchy management\n showHierarchy: boolean\n onUpdateHierarchy: (showHierarchy: boolean) => void\n\n // Column management\n columns: ColumnsConfig\n onUpdateColumns: (columns: ColumnsConfig, allColumnIds?: string[]) => void\n // Atomic groupBy + showHierarchy update (avoids 2-PATCH race)\n onUpdateGroupBy: (groupBy: string | undefined, showHierarchy: boolean, desc?: boolean) => void\n // Slicer type management\n sliceType: string | undefined\n onUpdateSliceType: (sliceType: string) => void\n}\n\ntype Props = {\n viewSettings: OverviewSettings | undefined\n updateViewSettings: UpdateViewSettingsFn\n}\n\nexport const useOverviewViewSettings = ({ viewSettings, updateViewSettings }: Props): Return => {\n // Local state for immediate updates\n const [localFilters, setLocalFilters] = useState<QueryFilter | null>(null)\n const [localHierarchy, setLocalHierarchy] = useState<boolean | null>(null)\n const [localColumns, setLocalColumns] = useState<ColumnsConfig | null>(null)\n\n // Get server settings\n const overviewSettings = viewSettings as OverviewSettings\n const serverFilters = (overviewSettings?.filter as any) ?? {}\n const serverHierarchy = overviewSettings?.showHierarchy ?? true\n const serverSliceType = overviewSettings?.sliceType\n\n const serverColumns = useMemo(\n () => convertColumnConfigToTanstackStates(overviewSettings),\n [JSON.stringify(viewSettings)],\n )\n\n // Sync local state with server when the relevant setting fields change.\n // Use per-field deps (not JSON.stringify(viewSettings)) so a change to one\n // field does not clear in-flight local state for unrelated fields, which\n // would cause a visible flicker during rapid sequential updates.\n useEffect(() => {\n setLocalFilters(null)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify((viewSettings as OverviewSettings)?.filter)])\n\n useEffect(() => {\n setLocalHierarchy(null)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n (viewSettings as OverviewSettings)?.showHierarchy,\n (viewSettings as OverviewSettings)?.groupBy,\n ])\n\n useEffect(() => {\n setLocalColumns(null)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify((viewSettings as OverviewSettings)?.columns)])\n\n // Use local state if available, otherwise use server state\n const filters = localFilters !== null ? localFilters : serverFilters\n const showHierarchy = localHierarchy !== null ? localHierarchy : serverHierarchy\n const columns = localColumns || serverColumns\n\n // Slice type update handler\n const noop = useCallback(() => {}, [])\n const onUpdateSliceType = useCallback(\n async (newSliceType: string) => {\n await updateViewSettings({ sliceType: newSliceType }, noop, newSliceType, {\n errorMessage: 'Failed to update slicer type',\n })\n },\n [updateViewSettings],\n )\n\n // Filter update handler\n const onUpdateFilters = useCallback(\n async (newFilters: QueryFilter) => {\n await updateViewSettings({ filter: newFilters as any }, setLocalFilters, newFilters, {\n errorMessage: 'Failed to update filter settings',\n })\n },\n [updateViewSettings],\n )\n\n // Hierarchy update handler\n const onUpdateHierarchy = useCallback(\n async (newShowHierarchy: boolean) => {\n // If turning hierarchy ON while grouped, clear groupBy in the same update\n if (newShowHierarchy && (columns as ColumnsConfig)?.groupBy) {\n const clearedColumns: ColumnsConfig = { ...columns, groupBy: undefined }\n // Optimistically update local columns to remove grouping\n setLocalColumns(clearedColumns)\n const settings = convertTanstackStatesToColumnConfig(clearedColumns)\n await updateViewSettings(\n { ...settings, showHierarchy: true },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n return\n }\n\n await updateViewSettings(\n { showHierarchy: newShowHierarchy },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n },\n [updateViewSettings, columns],\n )\n\n // Column update handler\n const onUpdateColumns = useCallback(\n async (tableSettings: ColumnsConfig, allColumnIds?: string[]) => {\n // Derive a stable allColumnIds if not provided to preserve order and grouping on server\n const derivedAll =\n allColumnIds ||\n [\n ...(tableSettings.columnOrder || []),\n ...Object.keys(tableSettings.columnVisibility || {}),\n ...((tableSettings.columnPinning?.left as string[]) || []),\n ...((tableSettings.columnPinning?.right as string[]) || []),\n ]\n .filter(Boolean)\n .filter((v, i, a) => a.indexOf(v) === i)\n\n const settings = convertTanstackStatesToColumnConfig(tableSettings, derivedAll)\n const hasGroupBy = !!tableSettings.groupBy\n\n // If grouping is being set, turn off hierarchy in the same update for consistency\n if (hasGroupBy) {\n // Optimistically reflect hierarchy off\n setLocalHierarchy(false)\n }\n\n await updateViewSettings(\n hasGroupBy ? { ...settings, showHierarchy: false } : settings,\n setLocalColumns,\n tableSettings,\n { errorMessage: 'Failed to update columns' },\n )\n },\n [updateViewSettings],\n )\n\n // Atomic groupBy + showHierarchy update.\n // Merges both fields into a single PATCH to avoid a race where two sequential\n // updateViewSettings calls both capture the same pre-update viewSettings snapshot\n // and the second overwrites the first.\n const onUpdateGroupBy = useCallback(\n async (groupBy: string | undefined, newShowHierarchy: boolean, desc?: boolean) => {\n const updates: Partial<OverviewSettings> = {\n showHierarchy: newShowHierarchy,\n groupBy: groupBy,\n groupSortByDesc: groupBy ? desc ?? false : undefined,\n }\n\n const baseColumns = columns as ColumnsConfig\n const newLocalColumns: ColumnsConfig = {\n ...baseColumns,\n groupBy: groupBy ? { id: groupBy, desc: desc ?? false } : undefined,\n }\n\n // Combined setter lets updateViewSettings manage optimism/reset for both\n // local states atomically (so error paths don't leave one stale).\n const combinedSetter = (value: { showHierarchy: boolean; columns: ColumnsConfig } | null) => {\n if (value === null) {\n setLocalHierarchy(null)\n setLocalColumns(null)\n } else {\n setLocalHierarchy(value.showHierarchy)\n setLocalColumns(value.columns)\n }\n }\n\n await updateViewSettings(\n updates,\n combinedSetter,\n { showHierarchy: newShowHierarchy, columns: newLocalColumns },\n { errorMessage: 'Failed to update grouping' },\n )\n },\n [updateViewSettings, columns],\n )\n\n return {\n filters,\n onUpdateFilters,\n showHierarchy,\n onUpdateHierarchy,\n columns,\n onUpdateColumns,\n onUpdateGroupBy,\n sliceType: serverSliceType,\n onUpdateSliceType,\n }\n}\n"],"names":["useOverviewViewSettings","viewSettings","updateViewSettings","localFilters","setLocalFilters","useState","localHierarchy","setLocalHierarchy","localColumns","setLocalColumns","overviewSettings","serverFilters","serverHierarchy","serverSliceType","serverColumns","useMemo","convertColumnConfigToTanstackStates","useEffect","filters","showHierarchy","columns","noop","useCallback","onUpdateSliceType","newSliceType","onUpdateFilters","newFilters","onUpdateHierarchy","newShowHierarchy","clearedColumns","settings","convertTanstackStatesToColumnConfig","onUpdateColumns","tableSettings","allColumnIds","derivedAll","v","i","a","hasGroupBy","onUpdateGroupBy","groupBy","desc","updates","newLocalColumns","value"],"mappings":"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"}
@@ -1,132 +1,111 @@
1
- import { useViewsContext as z } from "../../context/ViewsContext.es.js";
2
1
  import "lodash";
3
2
  import "react-toastify";
4
3
  import "uuid";
5
- import { convertColumnConfigToTanstackStates as Q, convertTanstackStatesToColumnConfig as T } from "../../../../util/columnConfigConverter.es.js";
4
+ import { convertColumnConfigToTanstackStates as b, convertTanstackStatesToColumnConfig as T } from "../../../../util/columnConfigConverter.es.js";
6
5
  import "../../../../util/pubsub.es.js";
7
- import { useState as d, useEffect as h, useMemo as B, useCallback as i } from "react";
8
- const S = ({ viewSettings: m, updateViewSettings: s }) => {
9
- const [O, F] = d(null), [k, n] = d(null), [M, t] = d(null), { selectedView: g, workingView: U, isViewWorking: j, editingViewId: L } = z(), [r, v] = d({ summaries: {}, scopes: {}, formats: {} }), x = j ? L || U?.id || "working" : g?.id;
10
- h(() => {
11
- v({ summaries: {}, scopes: {}, formats: {} });
12
- }, [x]);
13
- const f = m, J = f?.filter ?? {}, N = f?.showHierarchy ?? !0, w = f?.sliceType, G = B(
14
- () => Q(f),
15
- [JSON.stringify(m)]
6
+ import { useState as p, useMemo as j, useEffect as h, useCallback as a } from "react";
7
+ const K = ({ viewSettings: l, updateViewSettings: r }) => {
8
+ const [d, C] = p(null), [F, c] = p(null), [v, t] = p(null), u = l, M = u?.filter ?? {}, O = u?.showHierarchy ?? !0, B = u?.sliceType, g = j(
9
+ () => b(u),
10
+ [JSON.stringify(l)]
16
11
  );
17
12
  h(() => {
18
- F(null);
19
- }, [JSON.stringify(m?.filter)]), h(() => {
20
- n(null);
13
+ C(null);
14
+ }, [JSON.stringify(l?.filter)]), h(() => {
15
+ c(null);
21
16
  }, [
22
- m?.showHierarchy,
23
- m?.groupBy
17
+ l?.showHierarchy,
18
+ l?.groupBy
24
19
  ]), h(() => {
25
20
  t(null);
26
- }, [JSON.stringify(m?.columns)]);
27
- const P = O !== null ? O : J, A = k !== null ? k : N, l = M || G, a = B(() => Object.keys(r.summaries).length || Object.keys(r.scopes).length || Object.keys(r.formats).length ? {
28
- ...l,
29
- columnSummaries: { ...l.columnSummaries, ...r.summaries },
30
- columnSummaryScopes: {
31
- ...l.columnSummaryScopes,
32
- ...r.scopes
33
- },
34
- columnSummaryFormats: {
35
- ...l.columnSummaryFormats,
36
- ...r.formats
37
- }
38
- } : l, [l, r]), D = i(() => {
39
- }, []), E = i(
21
+ }, [JSON.stringify(l?.columns)]);
22
+ const U = d !== null ? d : M, k = F !== null ? F : O, e = v || g, L = a(() => {
23
+ }, []), J = a(
40
24
  async (o) => {
41
- await s({ sliceType: o }, D, o, {
25
+ await r({ sliceType: o }, L, o, {
42
26
  errorMessage: "Failed to update slicer type"
43
27
  });
44
28
  },
45
- [s]
46
- ), I = i(
29
+ [r]
30
+ ), N = a(
47
31
  async (o) => {
48
- await s({ filter: o }, F, o, {
32
+ await r({ filter: o }, C, o, {
49
33
  errorMessage: "Failed to update filter settings"
50
34
  });
51
35
  },
52
- [s]
53
- ), K = i(
36
+ [r]
37
+ ), x = a(
54
38
  async (o) => {
55
- if (o && a?.groupBy) {
56
- const e = { ...a, groupBy: void 0 };
57
- t(e);
58
- const u = T(e);
59
- await s(
60
- { ...u, showHierarchy: !0 },
61
- n,
39
+ if (o && e?.groupBy) {
40
+ const s = { ...e, groupBy: void 0 };
41
+ t(s);
42
+ const n = T(s);
43
+ await r(
44
+ { ...n, showHierarchy: !0 },
45
+ c,
62
46
  o,
63
47
  { errorMessage: "Failed to update hierarchy setting" }
64
48
  );
65
49
  return;
66
50
  }
67
- await s(
51
+ await r(
68
52
  { showHierarchy: o },
69
- n,
53
+ c,
70
54
  o,
71
55
  { errorMessage: "Failed to update hierarchy setting" }
72
56
  );
73
57
  },
74
- [s, a]
75
- ), W = i(
76
- async (o, e) => {
77
- (o.columnSummaries || o.columnSummaryScopes || o.columnSummaryFormats) && v((c) => ({
78
- summaries: { ...c.summaries, ...o.columnSummaries || {} },
79
- scopes: { ...c.scopes, ...o.columnSummaryScopes || {} },
80
- formats: { ...c.formats, ...o.columnSummaryFormats || {} }
81
- }));
82
- const u = e || [
58
+ [r, e]
59
+ ), G = a(
60
+ async (o, s) => {
61
+ const n = s || [
83
62
  ...o.columnOrder || [],
84
63
  ...Object.keys(o.columnVisibility || {}),
85
64
  ...o.columnPinning?.left || [],
86
65
  ...o.columnPinning?.right || []
87
- ].filter(Boolean).filter((c, H, y) => y.indexOf(c) === H), p = T(o, u), C = !!o.groupBy;
88
- C && n(!1), await s(
89
- C ? { ...p, showHierarchy: !1 } : p,
66
+ ].filter(Boolean).filter((f, H, i) => i.indexOf(f) === H), y = T(o, n), m = !!o.groupBy;
67
+ m && c(!1), await r(
68
+ m ? { ...y, showHierarchy: !1 } : y,
90
69
  t,
91
70
  o,
92
71
  { errorMessage: "Failed to update columns" }
93
72
  );
94
73
  },
95
- [s]
96
- ), q = i(
97
- async (o, e, u) => {
98
- const p = {
99
- showHierarchy: e,
74
+ [r]
75
+ ), P = a(
76
+ async (o, s, n) => {
77
+ const y = {
78
+ showHierarchy: s,
100
79
  groupBy: o,
101
- groupSortByDesc: o ? u ?? !1 : void 0
102
- }, c = {
103
- ...a,
104
- groupBy: o ? { id: o, desc: u ?? !1 } : void 0
80
+ groupSortByDesc: o ? n ?? !1 : void 0
81
+ }, f = {
82
+ ...e,
83
+ groupBy: o ? { id: o, desc: n ?? !1 } : void 0
105
84
  };
106
- await s(
107
- p,
108
- (y) => {
109
- y === null ? (n(null), t(null)) : (n(y.showHierarchy), t(y.columns));
85
+ await r(
86
+ y,
87
+ (i) => {
88
+ i === null ? (c(null), t(null)) : (c(i.showHierarchy), t(i.columns));
110
89
  },
111
- { showHierarchy: e, columns: c },
90
+ { showHierarchy: s, columns: f },
112
91
  { errorMessage: "Failed to update grouping" }
113
92
  );
114
93
  },
115
- [s, a]
94
+ [r, e]
116
95
  );
117
96
  return {
118
- filters: P,
119
- onUpdateFilters: I,
120
- showHierarchy: A,
121
- onUpdateHierarchy: K,
122
- columns: a,
123
- onUpdateColumns: W,
124
- onUpdateGroupBy: q,
125
- sliceType: w,
126
- onUpdateSliceType: E
97
+ filters: U,
98
+ onUpdateFilters: N,
99
+ showHierarchy: k,
100
+ onUpdateHierarchy: x,
101
+ columns: e,
102
+ onUpdateColumns: G,
103
+ onUpdateGroupBy: P,
104
+ sliceType: B,
105
+ onUpdateSliceType: J
127
106
  };
128
107
  };
129
108
  export {
130
- S as useOverviewViewSettings
109
+ K as useOverviewViewSettings
131
110
  };
132
111
  //# sourceMappingURL=useOverviewViewSettings.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOverviewViewSettings.es.js","sources":["../../../../../../../src/containers/Views/hooks/pages/useOverviewViewSettings.ts"],"sourcesContent":["/**\n * Unified hook for managing all overview page view settings.\n *\n * The hook handles:\n * - Filter settings (QueryFilter format)\n * - Hierarchy visibility toggle\n * - Column configurations (ColumnsConfig format)\n *\n * Must be used within a ViewsProvider context.\n */\n\nimport { useViewsContext } from '../../context/ViewsContext'\nimport { OverviewSettings } from '@shared/api'\nimport { ColumnsConfig } from '@shared/containers/ProjectTreeTable'\nimport {\n convertColumnConfigToTanstackStates,\n convertTanstackStatesToColumnConfig,\n} from '@shared/util'\nimport { UpdateViewSettingsFn } from '../../utils/viewUpdateHelper'\nimport { useState, useEffect, useCallback, useMemo } from 'react'\n\n// Import the internal QueryFilter type that the app uses\nimport { QueryFilter } from '@shared/containers/ProjectTreeTable/types/operations'\nimport {\n SummaryCalc,\n SummaryFormat,\n RowScope,\n} from '@shared/containers/ProjectTreeTable/types/summaryTypes'\n\ntype Return = {\n // Filter management\n filters: QueryFilter\n onUpdateFilters: (filters: QueryFilter) => void\n\n // Hierarchy management\n showHierarchy: boolean\n onUpdateHierarchy: (showHierarchy: boolean) => void\n\n // Column management\n columns: ColumnsConfig\n onUpdateColumns: (columns: ColumnsConfig, allColumnIds?: string[]) => void\n // Atomic groupBy + showHierarchy update (avoids 2-PATCH race)\n onUpdateGroupBy: (groupBy: string | undefined, showHierarchy: boolean, desc?: boolean) => void\n // Slicer type management\n sliceType: string | undefined\n onUpdateSliceType: (sliceType: string) => void\n}\n\ntype Props = {\n viewSettings: OverviewSettings | undefined\n updateViewSettings: UpdateViewSettingsFn\n}\n\nexport const useOverviewViewSettings = ({ viewSettings, updateViewSettings }: Props): Return => {\n // Local state for immediate updates\n const [localFilters, setLocalFilters] = useState<QueryFilter | null>(null)\n const [localHierarchy, setLocalHierarchy] = useState<boolean | null>(null)\n const [localColumns, setLocalColumns] = useState<ColumnsConfig | null>(null)\n\n // Backend drops summary/summaryScope/summaryFormat from ColumnItemModel, so\n // the post-save refetch would revert them — hold the selections here, session only.\n const { selectedView, workingView, isViewWorking, editingViewId } = useViewsContext()\n const [summaryOverrides, setSummaryOverrides] = useState<{\n summaries: Record<string, SummaryCalc>\n scopes: Record<string, RowScope>\n formats: Record<string, SummaryFormat>\n }>({ summaries: {}, scopes: {}, formats: {} })\n\n // Editing a named view forks to the working view (selectedView.id flips), but\n // editingViewId keeps pointing at the origin, so the key stays stable while editing.\n const viewKey = isViewWorking\n ? editingViewId || workingView?.id || 'working'\n : selectedView?.id\n\n // Reset overrides when a different view's settings come on screen\n useEffect(() => {\n setSummaryOverrides({ summaries: {}, scopes: {}, formats: {} })\n }, [viewKey])\n\n // Get server settings\n const overviewSettings = viewSettings as OverviewSettings\n const serverFilters = (overviewSettings?.filter as any) ?? {}\n const serverHierarchy = overviewSettings?.showHierarchy ?? true\n const serverSliceType = overviewSettings?.sliceType\n\n const serverColumns = useMemo(\n () => convertColumnConfigToTanstackStates(overviewSettings),\n [JSON.stringify(viewSettings)],\n )\n\n // Sync local state with server when the relevant setting fields change.\n // Use per-field deps (not JSON.stringify(viewSettings)) so a change to one\n // field does not clear in-flight local state for unrelated fields, which\n // would cause a visible flicker during rapid sequential updates.\n useEffect(() => {\n setLocalFilters(null)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify((viewSettings as OverviewSettings)?.filter)])\n\n useEffect(() => {\n setLocalHierarchy(null)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n (viewSettings as OverviewSettings)?.showHierarchy,\n (viewSettings as OverviewSettings)?.groupBy,\n ])\n\n useEffect(() => {\n setLocalColumns(null)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify((viewSettings as OverviewSettings)?.columns)])\n\n // Use local state if available, otherwise use server state\n const filters = localFilters !== null ? localFilters : serverFilters\n const showHierarchy = localHierarchy !== null ? localHierarchy : serverHierarchy\n const columnsBase = localColumns || serverColumns\n const columns = useMemo(() => {\n const hasOverrides =\n Object.keys(summaryOverrides.summaries).length ||\n Object.keys(summaryOverrides.scopes).length ||\n Object.keys(summaryOverrides.formats).length\n if (!hasOverrides) return columnsBase\n return {\n ...columnsBase,\n columnSummaries: { ...columnsBase.columnSummaries, ...summaryOverrides.summaries },\n columnSummaryScopes: {\n ...columnsBase.columnSummaryScopes,\n ...summaryOverrides.scopes,\n },\n columnSummaryFormats: {\n ...columnsBase.columnSummaryFormats,\n ...summaryOverrides.formats,\n },\n }\n }, [columnsBase, summaryOverrides])\n\n // Slice type update handler\n const noop = useCallback(() => {}, [])\n const onUpdateSliceType = useCallback(\n async (newSliceType: string) => {\n await updateViewSettings({ sliceType: newSliceType }, noop, newSliceType, {\n errorMessage: 'Failed to update slicer type',\n })\n },\n [updateViewSettings],\n )\n\n // Filter update handler\n const onUpdateFilters = useCallback(\n async (newFilters: QueryFilter) => {\n await updateViewSettings({ filter: newFilters as any }, setLocalFilters, newFilters, {\n errorMessage: 'Failed to update filter settings',\n })\n },\n [updateViewSettings],\n )\n\n // Hierarchy update handler\n const onUpdateHierarchy = useCallback(\n async (newShowHierarchy: boolean) => {\n // If turning hierarchy ON while grouped, clear groupBy in the same update\n if (newShowHierarchy && (columns as ColumnsConfig)?.groupBy) {\n const clearedColumns: ColumnsConfig = { ...columns, groupBy: undefined }\n // Optimistically update local columns to remove grouping\n setLocalColumns(clearedColumns)\n const settings = convertTanstackStatesToColumnConfig(clearedColumns)\n await updateViewSettings(\n { ...settings, showHierarchy: true },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n return\n }\n\n await updateViewSettings(\n { showHierarchy: newShowHierarchy },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n },\n [updateViewSettings, columns],\n )\n\n // Column update handler\n const onUpdateColumns = useCallback(\n async (tableSettings: ColumnsConfig, allColumnIds?: string[]) => {\n // Keep the summary footer choices alive across the working-view refetch\n // (backend drops these fields, so server state can't be trusted for them).\n if (\n tableSettings.columnSummaries ||\n tableSettings.columnSummaryScopes ||\n tableSettings.columnSummaryFormats\n ) {\n setSummaryOverrides((prev) => ({\n summaries: { ...prev.summaries, ...(tableSettings.columnSummaries || {}) },\n scopes: { ...prev.scopes, ...(tableSettings.columnSummaryScopes || {}) },\n formats: { ...prev.formats, ...(tableSettings.columnSummaryFormats || {}) },\n }))\n }\n\n // Derive a stable allColumnIds if not provided to preserve order and grouping on server\n const derivedAll =\n allColumnIds ||\n [\n ...(tableSettings.columnOrder || []),\n ...Object.keys(tableSettings.columnVisibility || {}),\n ...((tableSettings.columnPinning?.left as string[]) || []),\n ...((tableSettings.columnPinning?.right as string[]) || []),\n ]\n .filter(Boolean)\n .filter((v, i, a) => a.indexOf(v) === i)\n\n const settings = convertTanstackStatesToColumnConfig(tableSettings, derivedAll)\n const hasGroupBy = !!tableSettings.groupBy\n\n // If grouping is being set, turn off hierarchy in the same update for consistency\n if (hasGroupBy) {\n // Optimistically reflect hierarchy off\n setLocalHierarchy(false)\n }\n\n await updateViewSettings(\n hasGroupBy ? { ...settings, showHierarchy: false } : settings,\n setLocalColumns,\n tableSettings,\n { errorMessage: 'Failed to update columns' },\n )\n },\n [updateViewSettings],\n )\n\n // Atomic groupBy + showHierarchy update.\n // Merges both fields into a single PATCH to avoid a race where two sequential\n // updateViewSettings calls both capture the same pre-update viewSettings snapshot\n // and the second overwrites the first.\n const onUpdateGroupBy = useCallback(\n async (groupBy: string | undefined, newShowHierarchy: boolean, desc?: boolean) => {\n const updates: Partial<OverviewSettings> = {\n showHierarchy: newShowHierarchy,\n groupBy: groupBy,\n groupSortByDesc: groupBy ? desc ?? false : undefined,\n }\n\n const baseColumns = columns as ColumnsConfig\n const newLocalColumns: ColumnsConfig = {\n ...baseColumns,\n groupBy: groupBy ? { id: groupBy, desc: desc ?? false } : undefined,\n }\n\n // Combined setter lets updateViewSettings manage optimism/reset for both\n // local states atomically (so error paths don't leave one stale).\n const combinedSetter = (value: { showHierarchy: boolean; columns: ColumnsConfig } | null) => {\n if (value === null) {\n setLocalHierarchy(null)\n setLocalColumns(null)\n } else {\n setLocalHierarchy(value.showHierarchy)\n setLocalColumns(value.columns)\n }\n }\n\n await updateViewSettings(\n updates,\n combinedSetter,\n { showHierarchy: newShowHierarchy, columns: newLocalColumns },\n { errorMessage: 'Failed to update grouping' },\n )\n },\n [updateViewSettings, columns],\n )\n\n return {\n filters,\n onUpdateFilters,\n showHierarchy,\n onUpdateHierarchy,\n columns,\n onUpdateColumns,\n onUpdateGroupBy,\n sliceType: serverSliceType,\n onUpdateSliceType,\n }\n}\n"],"names":["useOverviewViewSettings","viewSettings","updateViewSettings","localFilters","setLocalFilters","useState","localHierarchy","setLocalHierarchy","localColumns","setLocalColumns","selectedView","workingView","isViewWorking","editingViewId","useViewsContext","summaryOverrides","setSummaryOverrides","viewKey","useEffect","overviewSettings","serverFilters","serverHierarchy","serverSliceType","serverColumns","useMemo","convertColumnConfigToTanstackStates","filters","showHierarchy","columnsBase","columns","noop","useCallback","onUpdateSliceType","newSliceType","onUpdateFilters","newFilters","onUpdateHierarchy","newShowHierarchy","clearedColumns","settings","convertTanstackStatesToColumnConfig","onUpdateColumns","tableSettings","allColumnIds","prev","derivedAll","v","i","a","hasGroupBy","onUpdateGroupBy","groupBy","desc","updates","newLocalColumns","value"],"mappings":"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"}
1
+ {"version":3,"file":"useOverviewViewSettings.es.js","sources":["../../../../../../../src/containers/Views/hooks/pages/useOverviewViewSettings.ts"],"sourcesContent":["/**\n * Unified hook for managing all overview page view settings.\n *\n * The hook handles:\n * - Filter settings (QueryFilter format)\n * - Hierarchy visibility toggle\n * - Column configurations (ColumnsConfig format)\n *\n * Must be used within a ViewsProvider context.\n */\n\nimport { OverviewSettings } from '@shared/api'\nimport { ColumnsConfig } from '@shared/containers/ProjectTreeTable'\nimport {\n convertColumnConfigToTanstackStates,\n convertTanstackStatesToColumnConfig,\n} from '@shared/util'\nimport { UpdateViewSettingsFn } from '../../utils/viewUpdateHelper'\nimport { useState, useEffect, useCallback, useMemo } from 'react'\n\n// Import the internal QueryFilter type that the app uses\nimport { QueryFilter } from '@shared/containers/ProjectTreeTable/types/operations'\n\ntype Return = {\n // Filter management\n filters: QueryFilter\n onUpdateFilters: (filters: QueryFilter) => void\n\n // Hierarchy management\n showHierarchy: boolean\n onUpdateHierarchy: (showHierarchy: boolean) => void\n\n // Column management\n columns: ColumnsConfig\n onUpdateColumns: (columns: ColumnsConfig, allColumnIds?: string[]) => void\n // Atomic groupBy + showHierarchy update (avoids 2-PATCH race)\n onUpdateGroupBy: (groupBy: string | undefined, showHierarchy: boolean, desc?: boolean) => void\n // Slicer type management\n sliceType: string | undefined\n onUpdateSliceType: (sliceType: string) => void\n}\n\ntype Props = {\n viewSettings: OverviewSettings | undefined\n updateViewSettings: UpdateViewSettingsFn\n}\n\nexport const useOverviewViewSettings = ({ viewSettings, updateViewSettings }: Props): Return => {\n // Local state for immediate updates\n const [localFilters, setLocalFilters] = useState<QueryFilter | null>(null)\n const [localHierarchy, setLocalHierarchy] = useState<boolean | null>(null)\n const [localColumns, setLocalColumns] = useState<ColumnsConfig | null>(null)\n\n // Get server settings\n const overviewSettings = viewSettings as OverviewSettings\n const serverFilters = (overviewSettings?.filter as any) ?? {}\n const serverHierarchy = overviewSettings?.showHierarchy ?? true\n const serverSliceType = overviewSettings?.sliceType\n\n const serverColumns = useMemo(\n () => convertColumnConfigToTanstackStates(overviewSettings),\n [JSON.stringify(viewSettings)],\n )\n\n // Sync local state with server when the relevant setting fields change.\n // Use per-field deps (not JSON.stringify(viewSettings)) so a change to one\n // field does not clear in-flight local state for unrelated fields, which\n // would cause a visible flicker during rapid sequential updates.\n useEffect(() => {\n setLocalFilters(null)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify((viewSettings as OverviewSettings)?.filter)])\n\n useEffect(() => {\n setLocalHierarchy(null)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n (viewSettings as OverviewSettings)?.showHierarchy,\n (viewSettings as OverviewSettings)?.groupBy,\n ])\n\n useEffect(() => {\n setLocalColumns(null)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify((viewSettings as OverviewSettings)?.columns)])\n\n // Use local state if available, otherwise use server state\n const filters = localFilters !== null ? localFilters : serverFilters\n const showHierarchy = localHierarchy !== null ? localHierarchy : serverHierarchy\n const columns = localColumns || serverColumns\n\n // Slice type update handler\n const noop = useCallback(() => {}, [])\n const onUpdateSliceType = useCallback(\n async (newSliceType: string) => {\n await updateViewSettings({ sliceType: newSliceType }, noop, newSliceType, {\n errorMessage: 'Failed to update slicer type',\n })\n },\n [updateViewSettings],\n )\n\n // Filter update handler\n const onUpdateFilters = useCallback(\n async (newFilters: QueryFilter) => {\n await updateViewSettings({ filter: newFilters as any }, setLocalFilters, newFilters, {\n errorMessage: 'Failed to update filter settings',\n })\n },\n [updateViewSettings],\n )\n\n // Hierarchy update handler\n const onUpdateHierarchy = useCallback(\n async (newShowHierarchy: boolean) => {\n // If turning hierarchy ON while grouped, clear groupBy in the same update\n if (newShowHierarchy && (columns as ColumnsConfig)?.groupBy) {\n const clearedColumns: ColumnsConfig = { ...columns, groupBy: undefined }\n // Optimistically update local columns to remove grouping\n setLocalColumns(clearedColumns)\n const settings = convertTanstackStatesToColumnConfig(clearedColumns)\n await updateViewSettings(\n { ...settings, showHierarchy: true },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n return\n }\n\n await updateViewSettings(\n { showHierarchy: newShowHierarchy },\n setLocalHierarchy,\n newShowHierarchy,\n { errorMessage: 'Failed to update hierarchy setting' },\n )\n },\n [updateViewSettings, columns],\n )\n\n // Column update handler\n const onUpdateColumns = useCallback(\n async (tableSettings: ColumnsConfig, allColumnIds?: string[]) => {\n // Derive a stable allColumnIds if not provided to preserve order and grouping on server\n const derivedAll =\n allColumnIds ||\n [\n ...(tableSettings.columnOrder || []),\n ...Object.keys(tableSettings.columnVisibility || {}),\n ...((tableSettings.columnPinning?.left as string[]) || []),\n ...((tableSettings.columnPinning?.right as string[]) || []),\n ]\n .filter(Boolean)\n .filter((v, i, a) => a.indexOf(v) === i)\n\n const settings = convertTanstackStatesToColumnConfig(tableSettings, derivedAll)\n const hasGroupBy = !!tableSettings.groupBy\n\n // If grouping is being set, turn off hierarchy in the same update for consistency\n if (hasGroupBy) {\n // Optimistically reflect hierarchy off\n setLocalHierarchy(false)\n }\n\n await updateViewSettings(\n hasGroupBy ? { ...settings, showHierarchy: false } : settings,\n setLocalColumns,\n tableSettings,\n { errorMessage: 'Failed to update columns' },\n )\n },\n [updateViewSettings],\n )\n\n // Atomic groupBy + showHierarchy update.\n // Merges both fields into a single PATCH to avoid a race where two sequential\n // updateViewSettings calls both capture the same pre-update viewSettings snapshot\n // and the second overwrites the first.\n const onUpdateGroupBy = useCallback(\n async (groupBy: string | undefined, newShowHierarchy: boolean, desc?: boolean) => {\n const updates: Partial<OverviewSettings> = {\n showHierarchy: newShowHierarchy,\n groupBy: groupBy,\n groupSortByDesc: groupBy ? desc ?? false : undefined,\n }\n\n const baseColumns = columns as ColumnsConfig\n const newLocalColumns: ColumnsConfig = {\n ...baseColumns,\n groupBy: groupBy ? { id: groupBy, desc: desc ?? false } : undefined,\n }\n\n // Combined setter lets updateViewSettings manage optimism/reset for both\n // local states atomically (so error paths don't leave one stale).\n const combinedSetter = (value: { showHierarchy: boolean; columns: ColumnsConfig } | null) => {\n if (value === null) {\n setLocalHierarchy(null)\n setLocalColumns(null)\n } else {\n setLocalHierarchy(value.showHierarchy)\n setLocalColumns(value.columns)\n }\n }\n\n await updateViewSettings(\n updates,\n combinedSetter,\n { showHierarchy: newShowHierarchy, columns: newLocalColumns },\n { errorMessage: 'Failed to update grouping' },\n )\n },\n [updateViewSettings, columns],\n )\n\n return {\n filters,\n onUpdateFilters,\n showHierarchy,\n onUpdateHierarchy,\n columns,\n onUpdateColumns,\n onUpdateGroupBy,\n sliceType: serverSliceType,\n onUpdateSliceType,\n }\n}\n"],"names":["useOverviewViewSettings","viewSettings","updateViewSettings","localFilters","setLocalFilters","useState","localHierarchy","setLocalHierarchy","localColumns","setLocalColumns","overviewSettings","serverFilters","serverHierarchy","serverSliceType","serverColumns","useMemo","convertColumnConfigToTanstackStates","useEffect","filters","showHierarchy","columns","noop","useCallback","onUpdateSliceType","newSliceType","onUpdateFilters","newFilters","onUpdateHierarchy","newShowHierarchy","clearedColumns","settings","convertTanstackStatesToColumnConfig","onUpdateColumns","tableSettings","allColumnIds","derivedAll","v","i","a","hasGroupBy","onUpdateGroupBy","groupBy","desc","updates","newLocalColumns","value"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("../../../_virtual/jsx-runtime.cjs.js"),u=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/dataImport.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/projectFolders.cjs.js");require("../api/generated/reviewables.cjs.js");require("../api/generated/services.cjs.js");require("../api/generated/system.cjs.js");require("../api/generated/tasks.cjs.js");require("../api/generated/teams.cjs.js");require("../api/generated/thumbnails.cjs.js");require("../api/generated/uRIs.cjs.js");require("../api/generated/users.cjs.js");require("../api/generated/versions.cjs.js");require("../api/generated/workfiles.cjs.js");require("../api/generated/ynputCloud.cjs.js");require("../api/generated/grouping.cjs.js");require("../api/generated/views.cjs.js");require("../api/queries/actions/getActions.cjs.js");require("../api/queries/activities/getActivities.cjs.js");require("../api/queries/activities/updateActivities.cjs.js");require("../api/queries/activities/updateReaction.cjs.js");require("../api/queries/activities/getMentions.cjs.js");require("../api/queries/activities/getCategories.cjs.js");require("../api/queries/addons/getAddons.cjs.js");require("../api/queries/addons/updateAddons.cjs.js");require("../api/queries/attributes/getAttributes.cjs.js");require("../api/queries/attributes/updateAttributes.cjs.js");require("../api/queries/authentication/getAuthentication.cjs.js");require("../api/queries/cloud/cloud.cjs.js");require("../api/queries/columnStats/metricTargets.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/overview/getOverview.cjs.js");require("../api/queries/overview/updateOverview.cjs.js");require("../api/queries/versions/getVersionsProducts.cjs.js");require("../api/queries/links/getEntityLinks.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/listItemsColumnStats.cjs.js");require("../api/queries/entityLists/updateListsAttributes.cjs.js");require("../api/queries/entityLists/listFolders.cjs.js");require("../api/queries/folders/getFolders.cjs.js");require("../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../api/queries/grouping/getGrouping.cjs.js");require("../api/queries/links/updateLinks.cjs.js");require("../api/queries/links/getLinks.cjs.js");require("../api/queries/permissions/getPermissions.cjs.js");require("../api/queries/products/createProduct.cjs.js");require("../api/queries/products/getFolderProducts.cjs.js");const a=require("../api/queries/project/getProject.cjs.js");require("../api/queries/project/updateProject.cjs.js");require("../api/queries/projectFolders/projectFolders.cjs.js");require("../api/queries/review/getReview.cjs.js");require("../api/queries/review/updateReview.cjs.js");require("../api/queries/share/share.cjs.js");require("../api/queries/system/getSystem.cjs.js");require("../api/queries/tasks/getTasks.cjs.js");require("../api/queries/tasks/updateTasks.cjs.js");require("../api/queries/teams/getTeams.cjs.js");require("../api/queries/userDashboard/getUserDashboard.cjs.js");require("../api/queries/users/getUsers.cjs.js");require("../api/queries/users/updateUsers.cjs.js");require("../api/queries/users/guests.cjs.js");require("../api/queries/versions/updateVersions.cjs.js");require("../api/queries/views/getViews.cjs.js");require("../api/queries/views/updateViews.cjs.js");require("../api/queries/watchers/getWatchers.cjs.js");require("../api/queries/uris/getUris.cjs.js");require("lodash");require("react-toastify");const d=require("../util/getEntityTypeIcon.cjs.js");require("uuid");require("../util/pubsub.cjs.js");const A={name:"",code:"",productTypes:[],folderTypes:[],taskTypes:[],tags:[],statuses:[],createdAt:"",updatedAt:"",active:!0,attrib:{},data:{},config:{},library:!1,linkTypes:[],ownAttrib:[]},l=u.createContext(void 0),E=({projectName:i,children:p})=>{const{data:o,isLoading:y,isFetching:P,isSuccess:f,isUninitialized:T,error:g,refetch:c}=a.useGetProjectQuery({projectName:i},{skip:!i}),{data:n={},refetch:s}=a.useGetProjectAnatomyQuery({projectName:i},{skip:!i}),t=n.product_base_types?.default,q=(n.product_base_types?.definitions||[]).map(r=>({name:r.name||"",icon:r.icon,color:r.color})),b=u.useCallback(r=>o?.folderTypes?.find(e=>e.name===r),[o]),m=u.useCallback(r=>o?.taskTypes?.find(e=>e.name===r),[o]),x=u.useCallback(r=>{const e=q.find(v=>v.name===r);return{icon:e?.icon||t?.icon||d.getEntityTypeIcon("product"),color:e?.color||t?.color}},[q,t]),C=u.useCallback(()=>q.map(e=>({value:e.name,label:e.name,icon:e.icon||t?.icon||d.getEntityTypeIcon("product"),color:e.color||t?.color||""})),[q,t]),j=u.useCallback(()=>{c(),s()},[c,s]),k={getFolderType:b,getTaskType:m,getProductType:x,getProductTypeOptions:C,refetch:j};return h.jsxRuntimeExports.jsx(l.Provider,{value:{...A,...o,projectName:i,productTypes:q,anatomy:n,isLoading:y||P,isSuccess:f,isUninitialized:T,error:g,...k},children:p})},w=()=>{const i=u.useContext(l);if(i===void 0)throw new Error("useProjectContext must be used within a ProjectProviderContext");return i};exports.ProjectContextProvider=E;exports.useProjectContext=w;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("../../../_virtual/jsx-runtime.cjs.js"),t=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/dataImport.cjs.js");require("../api/generated/desktop.cjs.js");require("../api/generated/entityLists.cjs.js");require("../api/generated/events.cjs.js");require("../api/generated/files.cjs.js");require("../api/generated/folders.cjs.js");require("../api/generated/inbox.cjs.js");require("../api/generated/links.cjs.js");require("../api/generated/market.cjs.js");require("../api/generated/onboarding.cjs.js");require("../api/generated/operations.cjs.js");require("../api/generated/products.cjs.js");require("../api/generated/projectDashboard.cjs.js");require("../api/generated/projects.cjs.js");require("../api/generated/projectFolders.cjs.js");require("../api/generated/reviewables.cjs.js");require("../api/generated/services.cjs.js");require("../api/generated/system.cjs.js");require("../api/generated/tasks.cjs.js");require("../api/generated/teams.cjs.js");require("../api/generated/thumbnails.cjs.js");require("../api/generated/uRIs.cjs.js");require("../api/generated/users.cjs.js");require("../api/generated/versions.cjs.js");require("../api/generated/workfiles.cjs.js");require("../api/generated/ynputCloud.cjs.js");require("../api/generated/grouping.cjs.js");require("../api/generated/views.cjs.js");require("../api/queries/actions/getActions.cjs.js");require("../api/queries/activities/getActivities.cjs.js");require("../api/queries/activities/updateActivities.cjs.js");require("../api/queries/activities/updateReaction.cjs.js");require("../api/queries/activities/getMentions.cjs.js");require("../api/queries/activities/getCategories.cjs.js");require("../api/queries/addons/getAddons.cjs.js");require("../api/queries/addons/updateAddons.cjs.js");require("../api/queries/attributes/getAttributes.cjs.js");require("../api/queries/attributes/updateAttributes.cjs.js");require("../api/queries/authentication/getAuthentication.cjs.js");require("../api/queries/cloud/cloud.cjs.js");require("../api/queries/columnStats/metricTargets.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/overview/getOverview.cjs.js");require("../api/queries/overview/updateOverview.cjs.js");require("../api/queries/versions/getVersionsProducts.cjs.js");require("../api/queries/links/getEntityLinks.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/listItemsColumnStats.cjs.js");require("../api/queries/entityLists/updateListsAttributes.cjs.js");require("../api/queries/entityLists/listFolders.cjs.js");require("../api/queries/folders/getFolders.cjs.js");require("../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../api/queries/grouping/getGrouping.cjs.js");require("../api/queries/links/updateLinks.cjs.js");require("../api/queries/links/getLinks.cjs.js");require("../api/queries/permissions/getPermissions.cjs.js");require("../api/queries/products/createProduct.cjs.js");require("../api/queries/products/getFolderProducts.cjs.js");const p=require("../api/queries/project/getProject.cjs.js");require("../api/queries/project/updateProject.cjs.js");require("../api/queries/projectFolders/projectFolders.cjs.js");require("../api/queries/review/getReview.cjs.js");require("../api/queries/review/updateReview.cjs.js");require("../api/queries/share/share.cjs.js");require("../api/queries/system/getSystem.cjs.js");require("../api/queries/tasks/getTasks.cjs.js");require("../api/queries/tasks/updateTasks.cjs.js");require("../api/queries/teams/getTeams.cjs.js");require("../api/queries/userDashboard/getUserDashboard.cjs.js");require("../api/queries/users/getUsers.cjs.js");require("../api/queries/users/updateUsers.cjs.js");require("../api/queries/users/guests.cjs.js");require("../api/queries/versions/updateVersions.cjs.js");require("../api/queries/views/getViews.cjs.js");require("../api/queries/views/updateViews.cjs.js");require("../api/queries/watchers/getWatchers.cjs.js");require("../api/queries/uris/getUris.cjs.js");require("lodash");require("react-toastify");const y=require("../util/getEntityTypeIcon.cjs.js");require("uuid");require("../util/pubsub.cjs.js");const w=require("../api/queries/products/getProduct.cjs.js"),B={name:"",code:"",productTypes:[],folderTypes:[],taskTypes:[],tags:[],statuses:[],createdAt:"",updatedAt:"",active:!0,attrib:{},data:{},config:{},library:!1,linkTypes:[],ownAttrib:[]};function G(e){if(!e)return{productTypes:[],productBaseTypes:[]};const c=e.productTypes||[],u=new Map;return c.forEach(i=>{u.has(i.baseType)||u.set(i.baseType,{name:i.baseType,icon:i.icon,color:i.color})}),{productTypes:c,productBaseTypes:Array.from(u.values())}}const l=t.createContext(void 0),I=({projectName:e,children:c})=>{const{data:u,isLoading:i,isFetching:T,isSuccess:P,isUninitialized:f,error:b,refetch:n}=p.useGetProjectQuery({projectName:e},{skip:!e}),{data:a={},refetch:d}=p.useGetProjectAnatomyQuery({projectName:e},{skip:!e}),o=a.product_base_types?.default,{data:g}=w.useGetProductTypesQuery({projectName:e},{skip:!e}),{productTypes:s,productBaseTypes:x}=G(g),C=t.useCallback(q=>u?.folderTypes?.find(r=>r.name===q),[u]),k=t.useCallback(q=>u?.taskTypes?.find(r=>r.name===q),[u]),j=t.useCallback(q=>{const r=s.find(A=>A.name===q);return{icon:r?.icon||o?.icon||y.getEntityTypeIcon("product"),color:r?.color||o?.color}},[s,o]),v=t.useCallback(()=>s.map(r=>({value:r.name,label:r.name,icon:r.icon||o?.icon||y.getEntityTypeIcon("product"),color:r.color||o?.color||""})),[s,o]),h=t.useCallback(()=>{n(),d()},[n,d]),m={getFolderType:C,getTaskType:k,getProductType:j,getProductTypeOptions:v,refetch:h};return E.jsxRuntimeExports.jsx(l.Provider,{value:{...B,...u,projectName:e,productTypes:s,productBaseTypes:x,anatomy:a,isLoading:i||T,isSuccess:P,isUninitialized:f,error:b,...m},children:c})},M=()=>{const e=t.useContext(l);if(e===void 0)throw new Error("useProjectContext must be used within a ProjectProviderContext");return e};exports.ProjectContextProvider=I;exports.useProjectContext=M;
2
2
  //# sourceMappingURL=ProjectContext.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectContext.cjs.js","sources":["../../../../src/context/ProjectContext.tsx"],"sourcesContent":["import { createContext, useContext, useCallback } from 'react'\nimport { useGetProjectQuery, useGetProjectAnatomyQuery } from '@shared/api'\nimport { getEntityTypeIcon } from '@shared/util'\n\nimport type { FolderType, TaskType, ProductTypeListItem, ProjectModel, Anatomy } from '@shared/api'\n\nexport type ProjectModelWithProducts = ProjectModel & {\n // Extend project with product types\n productTypes: ProductTypeListItem[]\n}\n\nconst emptyProject: ProjectModelWithProducts = {\n name: '',\n code: '',\n productTypes: [],\n folderTypes: [],\n taskTypes: [],\n tags: [],\n statuses: [],\n createdAt: '',\n updatedAt: '',\n active: true,\n attrib: {},\n data: {},\n config: {},\n library: false,\n linkTypes: [],\n ownAttrib: [],\n}\n\nexport interface ProjectContextValue extends ProjectModelWithProducts {\n projectName: string\n isLoading: boolean\n isSuccess: boolean\n isUninitialized: boolean\n error: any\n anatomy: Anatomy\n refetch: () => void\n getProductType: (productType: string) => {\n icon: string\n color: string | undefined\n }\n getFolderType: (name: string) => FolderType | undefined\n getTaskType: (name: string) => TaskType | undefined\n getProductTypeOptions: () => { value: string; label: string; icon?: string; color?: string }[]\n}\n\nconst ProjectContext = createContext<ProjectContextValue | undefined>(undefined)\n\n//\n// ProjectProvider\n//\n\ninterface ProjectProviderProps {\n projectName: string\n children: React.ReactNode\n}\n\nexport const ProjectContextProvider: React.FC<ProjectProviderProps> = ({\n projectName,\n children,\n}: ProjectProviderProps) => {\n // PROJECT\n const {\n data: project,\n isLoading,\n isFetching,\n isSuccess,\n isUninitialized,\n error,\n refetch: refetchProject,\n } = useGetProjectQuery({ projectName }, { skip: !projectName })\n // ANATOMY\n const { data: anatomy = {}, refetch: refetchAnatomy } = useGetProjectAnatomyQuery(\n { projectName },\n { skip: !projectName },\n )\n\n // Shorthands to access project data and type casting\n // (we're referencing nested objects. no need to use useMemo for these)\n\n const defaultProductType = anatomy.product_base_types?.['default']\n const productTypes: ProductTypeListItem[] = (anatomy.product_base_types?.definitions || []).map(\n (t) => ({\n name: t.name || '',\n icon: t.icon,\n color: t.color,\n }),\n )\n //\n // Magic functions\n //\n\n // Folder types\n\n const getFolderType = useCallback(\n (name: string): FolderType | undefined => {\n return project?.folderTypes?.find((type: FolderType) => type.name === name)\n },\n [project],\n )\n\n // Task types\n\n const getTaskType = useCallback(\n (name: string): TaskType | undefined => {\n return project?.taskTypes?.find((type: TaskType) => type.name === name)\n },\n [project],\n )\n\n // Product types\n\n const getProductType = useCallback(\n (productType: string) => {\n const type = productTypes.find((t) => t.name === productType)\n return {\n icon: type?.icon || defaultProductType?.icon || getEntityTypeIcon('product'),\n color: type?.color || defaultProductType?.color,\n }\n },\n [productTypes, defaultProductType],\n )\n\n const getProductTypeOptions = useCallback((): {\n value: string\n label: string\n icon: string\n }[] => {\n // Return a list of product type ready to be used in a select input\n const result = productTypes.map((type) => ({\n value: type.name,\n label: type.name,\n icon: type.icon || defaultProductType?.icon || getEntityTypeIcon('product'),\n color: type.color || defaultProductType?.color || '',\n }))\n return result\n }, [productTypes, defaultProductType])\n\n const refetch = useCallback(() => {\n refetchProject()\n refetchAnatomy()\n }, [refetchProject, refetchAnatomy])\n\n //\n // Put everything together\n //\n\n const functions = {\n getFolderType,\n getTaskType,\n getProductType,\n getProductTypeOptions,\n refetch,\n }\n\n return (\n <ProjectContext.Provider\n value={{\n ...emptyProject,\n ...project,\n projectName,\n productTypes: productTypes,\n anatomy,\n isLoading: isLoading || isFetching,\n isSuccess: isSuccess,\n isUninitialized,\n error,\n ...functions,\n }}\n >\n {children}\n </ProjectContext.Provider>\n )\n}\n\nexport const useProjectContext = () => {\n const context = useContext(ProjectContext)\n if (context === undefined) {\n throw new Error('useProjectContext must be used within a ProjectProviderContext')\n }\n return context\n}\n"],"names":["emptyProject","ProjectContext","createContext","ProjectContextProvider","projectName","children","project","isLoading","isFetching","isSuccess","isUninitialized","error","refetchProject","useGetProjectQuery","anatomy","refetchAnatomy","useGetProjectAnatomyQuery","defaultProductType","productTypes","t","getFolderType","useCallback","name","type","getTaskType","getProductType","productType","getEntityTypeIcon","getProductTypeOptions","refetch","functions","jsx","useProjectContext","context","useContext"],"mappings":"i+JAWA,MAAMA,EAAyC,CAC7C,KAAM,GACN,KAAM,GACN,aAAc,CAAA,EACd,YAAa,CAAA,EACb,UAAW,CAAA,EACX,KAAM,CAAA,EACN,SAAU,CAAA,EACV,UAAW,GACX,UAAW,GACX,OAAQ,GACR,OAAQ,CAAA,EACR,KAAM,CAAA,EACN,OAAQ,CAAA,EACR,QAAS,GACT,UAAW,CAAA,EACX,UAAW,CAAA,CACb,EAmBMC,EAAiBC,EAAAA,cAA+C,MAAS,EAWlEC,EAAyD,CAAC,CACrE,YAAAC,EACA,SAAAC,CACF,IAA4B,CAE1B,KAAM,CACJ,KAAMC,EACN,UAAAC,EACA,WAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,MAAAC,EACA,QAASC,CAAA,EACPC,EAAAA,mBAAmB,CAAE,YAAAT,CAAA,EAAe,CAAE,KAAM,CAACA,EAAa,EAExD,CAAE,KAAMU,EAAU,CAAA,EAAI,QAASC,GAAmBC,EAAAA,0BACtD,CAAE,YAAAZ,CAAA,EACF,CAAE,KAAM,CAACA,CAAA,CAAY,EAMjBa,EAAqBH,EAAQ,oBAAqB,QAClDI,GAAuCJ,EAAQ,oBAAoB,aAAe,CAAA,GAAI,IACzFK,IAAO,CACN,KAAMA,EAAE,MAAQ,GAChB,KAAMA,EAAE,KACR,MAAOA,EAAE,KAAA,EACX,EAQIC,EAAgBC,EAAAA,YACnBC,GACQhB,GAAS,aAAa,KAAMiB,GAAqBA,EAAK,OAASD,CAAI,EAE5E,CAAChB,CAAO,CAAA,EAKJkB,EAAcH,EAAAA,YACjBC,GACQhB,GAAS,WAAW,KAAMiB,GAAmBA,EAAK,OAASD,CAAI,EAExE,CAAChB,CAAO,CAAA,EAKJmB,EAAiBJ,EAAAA,YACpBK,GAAwB,CACvB,MAAMH,EAAOL,EAAa,KAAMC,GAAMA,EAAE,OAASO,CAAW,EAC5D,MAAO,CACL,KAAMH,GAAM,MAAQN,GAAoB,MAAQU,EAAAA,kBAAkB,SAAS,EAC3E,MAAOJ,GAAM,OAASN,GAAoB,KAAA,CAE9C,EACA,CAACC,EAAcD,CAAkB,CAAA,EAG7BW,EAAwBP,EAAAA,YAAY,IAMzBH,EAAa,IAAKK,IAAU,CACzC,MAAOA,EAAK,KACZ,MAAOA,EAAK,KACZ,KAAMA,EAAK,MAAQN,GAAoB,MAAQU,EAAAA,kBAAkB,SAAS,EAC1E,MAAOJ,EAAK,OAASN,GAAoB,OAAS,EAAA,EAClD,EAED,CAACC,EAAcD,CAAkB,CAAC,EAE/BY,EAAUR,EAAAA,YAAY,IAAM,CAChCT,EAAA,EACAG,EAAA,CACF,EAAG,CAACH,EAAgBG,CAAc,CAAC,EAM7Be,EAAY,CAChB,cAAAV,EACA,YAAAI,EACA,eAAAC,EACA,sBAAAG,EACA,QAAAC,CAAA,EAGF,OACEE,EAAAA,kBAAAA,IAAC9B,EAAe,SAAf,CACC,MAAO,CACL,GAAGD,EACH,GAAGM,EACH,YAAAF,EACA,aAAAc,EACA,QAAAJ,EACA,UAAWP,GAAaC,EACxB,UAAAC,EACA,gBAAAC,EACA,MAAAC,EACA,GAAGmB,CAAA,EAGJ,SAAAzB,CAAA,CAAA,CAGP,EAEa2B,EAAoB,IAAM,CACrC,MAAMC,EAAUC,EAAAA,WAAWjC,CAAc,EACzC,GAAIgC,IAAY,OACd,MAAM,IAAI,MAAM,gEAAgE,EAElF,OAAOA,CACT"}
1
+ {"version":3,"file":"ProjectContext.cjs.js","sources":["../../../../src/context/ProjectContext.tsx"],"sourcesContent":["import { createContext, useContext, useCallback } from 'react'\nimport { useGetProjectQuery, useGetProjectAnatomyQuery } from '@shared/api'\nimport { getEntityTypeIcon } from '@shared/util'\n\nimport type {\n FolderType,\n TaskType,\n ProductTypeListItem,\n ProjectModel,\n Anatomy,\n ProductType,\n ProductTypesList,\n} from '@shared/api'\nimport { useGetProductTypesQuery } from '@shared/api/queries/products/getProduct'\n\nexport type ProjectModelWithProducts = ProjectModel & {\n // Extend project with product types\n productTypes: ProductTypeListItem[]\n}\n\nconst emptyProject: ProjectModelWithProducts = {\n name: '',\n code: '',\n productTypes: [],\n folderTypes: [],\n taskTypes: [],\n tags: [],\n statuses: [],\n createdAt: '',\n updatedAt: '',\n active: true,\n attrib: {},\n data: {},\n config: {},\n library: false,\n linkTypes: [],\n ownAttrib: [],\n}\n\nfunction getProductTypesData(sourceData: ProductTypesList | undefined) {\n if (!sourceData) {\n return { productTypes: [], productBaseTypes: [] }\n }\n const productTypes = sourceData.productTypes || []\n\n // Create unique base types by mapping and filtering duplicates\n const baseTypesMap = new Map<string, ProductType>()\n\n productTypes.forEach((item: any) => {\n if (!baseTypesMap.has(item.baseType)) {\n baseTypesMap.set(item.baseType, {\n name: item.baseType,\n icon: item.icon,\n color: item.color,\n })\n }\n })\n\n return {\n productTypes,\n productBaseTypes: Array.from(baseTypesMap.values()),\n }\n}\n\nexport interface ProjectContextValue extends ProjectModelWithProducts {\n projectName: string\n isLoading: boolean\n isSuccess: boolean\n isUninitialized: boolean\n error: any\n anatomy: Anatomy\n productBaseTypes: ProductType[]\n\n refetch: () => void\n getProductType: (productType: string) => {\n icon: string\n color: string | undefined\n }\n getFolderType: (name: string) => FolderType | undefined\n getTaskType: (name: string) => TaskType | undefined\n getProductTypeOptions: () => { value: string; label: string; icon?: string; color?: string }[]\n}\n\nconst ProjectContext = createContext<ProjectContextValue | undefined>(undefined)\n\n//\n// ProjectProvider\n//\n\ninterface ProjectProviderProps {\n projectName: string\n children: React.ReactNode\n}\n\nexport const ProjectContextProvider: React.FC<ProjectProviderProps> = ({\n projectName,\n children,\n}: ProjectProviderProps) => {\n // PROJECT\n const {\n data: project,\n isLoading,\n isFetching,\n isSuccess,\n isUninitialized,\n error,\n refetch: refetchProject,\n } = useGetProjectQuery({ projectName }, { skip: !projectName })\n // ANATOMY\n const { data: anatomy = {}, refetch: refetchAnatomy } = useGetProjectAnatomyQuery(\n { projectName },\n { skip: !projectName },\n )\n\n // Shorthands to access project data and type casting\n // (we're referencing nested objects. no need to use useMemo for these)\n\n const defaultProductType = anatomy.product_base_types?.['default']\n\n const { data: productTypesAll } = useGetProductTypesQuery(\n { projectName: projectName },\n {\n skip: !projectName,\n },\n )\n\n const { productTypes, productBaseTypes } = getProductTypesData(productTypesAll)\n\n //\n // Magic functions\n //\n\n // Folder types\n const getFolderType = useCallback(\n (name: string): FolderType | undefined => {\n return project?.folderTypes?.find((type: FolderType) => type.name === name)\n },\n [project],\n )\n\n // Task types\n const getTaskType = useCallback(\n (name: string): TaskType | undefined => {\n return project?.taskTypes?.find((type: TaskType) => type.name === name)\n },\n [project],\n )\n\n // Product types\n const getProductType = useCallback(\n (productType: string) => {\n const type = productTypes.find((t) => t.name === productType)\n return {\n icon: type?.icon || defaultProductType?.icon || getEntityTypeIcon('product'),\n color: type?.color || defaultProductType?.color,\n }\n },\n [productTypes, defaultProductType],\n )\n\n const getProductTypeOptions = useCallback((): {\n value: string\n label: string\n icon: string\n }[] => {\n // Return a list of product type ready to be used in a select input\n const result = productTypes.map((type) => ({\n value: type.name,\n label: type.name,\n icon: type.icon || defaultProductType?.icon || getEntityTypeIcon('product'),\n color: type.color || defaultProductType?.color || '',\n }))\n return result\n }, [productTypes, defaultProductType])\n\n const refetch = useCallback(() => {\n refetchProject()\n refetchAnatomy()\n }, [refetchProject, refetchAnatomy])\n\n //\n // Put everything together\n //\n\n const functions = {\n getFolderType,\n getTaskType,\n getProductType,\n getProductTypeOptions,\n refetch,\n }\n\n return (\n <ProjectContext.Provider\n value={{\n ...emptyProject,\n ...project,\n projectName,\n productTypes,\n productBaseTypes,\n anatomy,\n isLoading: isLoading || isFetching,\n isSuccess: isSuccess,\n isUninitialized,\n error,\n ...functions,\n }}\n >\n {children}\n </ProjectContext.Provider>\n )\n}\n\nexport const useProjectContext = () => {\n const context = useContext(ProjectContext)\n if (context === undefined) {\n throw new Error('useProjectContext must be used within a ProjectProviderContext')\n }\n return context\n}\n"],"names":["emptyProject","getProductTypesData","sourceData","productTypes","baseTypesMap","item","ProjectContext","createContext","ProjectContextProvider","projectName","children","project","isLoading","isFetching","isSuccess","isUninitialized","error","refetchProject","useGetProjectQuery","anatomy","refetchAnatomy","useGetProjectAnatomyQuery","defaultProductType","productTypesAll","useGetProductTypesQuery","productBaseTypes","getFolderType","useCallback","name","type","getTaskType","getProductType","productType","t","getEntityTypeIcon","getProductTypeOptions","refetch","functions","jsx","useProjectContext","context","useContext"],"mappings":"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"}