@ynput/ayon-frontend-shared 0.2.13 → 0.2.15

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 (382) hide show
  1. package/dist/DetailsPanel.cjs.js +8 -0
  2. package/dist/DetailsPanel.cjs.js.map +1 -1
  3. package/dist/DetailsPanel.es.js +8 -0
  4. package/dist/DetailsPanel.es.js.map +1 -1
  5. package/dist/ProjectTreeTable.cjs.js +5 -0
  6. package/dist/ProjectTreeTable.cjs.js.map +1 -1
  7. package/dist/ProjectTreeTable.es.js +5 -0
  8. package/dist/ProjectTreeTable.es.js.map +1 -1
  9. package/dist/Slicer.cjs.js +2 -0
  10. package/dist/Slicer.cjs.js.map +1 -1
  11. package/dist/Slicer.es.js +3 -1
  12. package/dist/Slicer.es.js.map +1 -1
  13. package/dist/_virtual/index.cjs10.js +3 -5
  14. package/dist/_virtual/index.cjs10.js.map +1 -1
  15. package/dist/_virtual/index.cjs7.js +5 -3
  16. package/dist/_virtual/index.cjs7.js.map +1 -1
  17. package/dist/_virtual/index.cjs8.js +4 -4
  18. package/dist/_virtual/index.cjs9.js +4 -4
  19. package/dist/_virtual/index.es10.js +2 -5
  20. package/dist/_virtual/index.es10.js.map +1 -1
  21. package/dist/_virtual/index.es7.js +5 -2
  22. package/dist/_virtual/index.es7.js.map +1 -1
  23. package/dist/_virtual/index.es8.js +4 -4
  24. package/dist/_virtual/index.es9.js +4 -4
  25. package/dist/api.cjs.js +2 -0
  26. package/dist/api.cjs.js.map +1 -1
  27. package/dist/api.es.js +3 -1
  28. package/dist/components.cjs.js +15 -0
  29. package/dist/components.cjs.js.map +1 -1
  30. package/dist/components.es.js +16 -1
  31. package/dist/components.es.js.map +1 -1
  32. package/dist/context.cjs.js +4 -0
  33. package/dist/context.cjs.js.map +1 -1
  34. package/dist/context.es.js +4 -0
  35. package/dist/context.es.js.map +1 -1
  36. package/dist/index.cjs.js +8 -0
  37. package/dist/index.cjs.js.map +1 -1
  38. package/dist/index.es.js +8 -0
  39. package/dist/index.es.js.map +1 -1
  40. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +2 -2
  41. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  42. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  43. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  44. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  45. package/dist/node_modules/remove-accents/index.es.js +1 -1
  46. package/dist/node_modules/vfile/lib/index.cjs.js +1 -1
  47. package/dist/node_modules/vfile/lib/index.es.js +1 -1
  48. package/dist/shared/src/api/generated/actions.cjs.js.map +1 -1
  49. package/dist/shared/src/api/generated/actions.es.js.map +1 -1
  50. package/dist/shared/src/api/generated/addons.cjs.js.map +1 -1
  51. package/dist/shared/src/api/generated/addons.es.js.map +1 -1
  52. package/dist/shared/src/api/generated/anatomy.cjs.js.map +1 -1
  53. package/dist/shared/src/api/generated/anatomy.es.js.map +1 -1
  54. package/dist/shared/src/api/generated/attributes.cjs.js.map +1 -1
  55. package/dist/shared/src/api/generated/attributes.es.js.map +1 -1
  56. package/dist/shared/src/api/generated/configuration.cjs.js.map +1 -1
  57. package/dist/shared/src/api/generated/configuration.es.js.map +1 -1
  58. package/dist/shared/src/api/generated/entityLists.cjs.js.map +1 -1
  59. package/dist/shared/src/api/generated/entityLists.es.js.map +1 -1
  60. package/dist/shared/src/api/generated/events.cjs.js.map +1 -1
  61. package/dist/shared/src/api/generated/events.es.js.map +1 -1
  62. package/dist/shared/src/api/generated/files.cjs.js +5 -0
  63. package/dist/shared/src/api/generated/files.cjs.js.map +1 -1
  64. package/dist/shared/src/api/generated/files.es.js +5 -0
  65. package/dist/shared/src/api/generated/files.es.js.map +1 -1
  66. package/dist/shared/src/api/generated/operations.cjs.js.map +1 -1
  67. package/dist/shared/src/api/generated/operations.es.js.map +1 -1
  68. package/dist/shared/src/api/generated/projects.cjs.js +16 -0
  69. package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
  70. package/dist/shared/src/api/generated/projects.es.js +16 -0
  71. package/dist/shared/src/api/generated/projects.es.js.map +1 -1
  72. package/dist/shared/src/api/generated/reviewables.cjs.js.map +1 -1
  73. package/dist/shared/src/api/generated/reviewables.es.js.map +1 -1
  74. package/dist/shared/src/api/generated/system.cjs.js.map +1 -1
  75. package/dist/shared/src/api/generated/system.es.js.map +1 -1
  76. package/dist/shared/src/api/generated/tasks.cjs.js +8 -0
  77. package/dist/shared/src/api/generated/tasks.cjs.js.map +1 -1
  78. package/dist/shared/src/api/generated/tasks.es.js +8 -0
  79. package/dist/shared/src/api/generated/tasks.es.js.map +1 -1
  80. package/dist/shared/src/api/generated/users.cjs.js.map +1 -1
  81. package/dist/shared/src/api/generated/users.es.js.map +1 -1
  82. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +66 -4
  83. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  84. package/dist/shared/src/api/queries/overview/getOverview.es.js +66 -4
  85. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  86. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -0
  87. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  88. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +1 -0
  89. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  90. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js +8 -0
  91. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js.map +1 -1
  92. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js +8 -0
  93. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js.map +1 -1
  94. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +69 -0
  95. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -0
  96. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +69 -0
  97. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -0
  98. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +48 -0
  99. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -0
  100. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +48 -0
  101. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -0
  102. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js +102 -0
  103. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.cjs.js.map +1 -0
  104. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js +102 -0
  105. package/dist/shared/src/components/Powerpack/PowerpackDialog.styled.es.js.map +1 -0
  106. package/dist/shared/src/components/Powerpack/PricingLink.cjs.js +13 -0
  107. package/dist/shared/src/components/Powerpack/PricingLink.cjs.js.map +1 -0
  108. package/dist/shared/src/components/Powerpack/PricingLink.es.js +13 -0
  109. package/dist/shared/src/components/Powerpack/PricingLink.es.js.map +1 -0
  110. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +4 -10
  111. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  112. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +1 -7
  113. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  114. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +5 -1
  115. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  116. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +5 -1
  117. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  118. package/dist/shared/src/components/ProjectTableSettings/TableSettings.styled.cjs.js +13 -0
  119. package/dist/shared/src/components/ProjectTableSettings/TableSettings.styled.cjs.js.map +1 -0
  120. package/dist/shared/src/components/ProjectTableSettings/TableSettings.styled.es.js +13 -0
  121. package/dist/shared/src/components/ProjectTableSettings/TableSettings.styled.es.js.map +1 -0
  122. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +50 -0
  123. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -0
  124. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +50 -0
  125. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -0
  126. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +8 -0
  127. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  128. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +8 -0
  129. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  130. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +8 -0
  131. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  132. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +8 -0
  133. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  134. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +8 -0
  135. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  136. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +8 -0
  137. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  138. package/dist/shared/src/components/SearchFilter/filterDates.cjs.js +167 -0
  139. package/dist/shared/src/components/SearchFilter/filterDates.cjs.js.map +1 -0
  140. package/dist/shared/src/components/SearchFilter/filterDates.es.js +167 -0
  141. package/dist/shared/src/components/SearchFilter/filterDates.es.js.map +1 -0
  142. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +547 -0
  143. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -0
  144. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +547 -0
  145. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -0
  146. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +6 -2
  147. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  148. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +6 -2
  149. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  150. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +19 -3
  151. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  152. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +20 -4
  153. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  154. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -0
  155. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  156. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +1 -0
  157. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  158. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +8 -0
  159. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  160. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +8 -0
  161. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  162. package/dist/shared/src/containers/Actions/Actions.cjs.js +2 -0
  163. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  164. package/dist/shared/src/containers/Actions/Actions.es.js +2 -0
  165. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  166. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +8 -0
  167. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  168. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +8 -0
  169. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  170. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +8 -0
  171. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  172. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +8 -0
  173. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  174. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +8 -0
  175. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  176. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +8 -0
  177. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  178. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +8 -0
  179. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  180. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +8 -0
  181. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  182. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +9 -1
  183. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  184. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +9 -1
  185. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  186. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -0
  187. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  188. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +1 -0
  189. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  190. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -0
  191. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
  192. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +1 -0
  193. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
  194. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -0
  195. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  196. package/dist/shared/src/containers/Feed/Feed.es.js +1 -0
  197. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  198. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +2 -1
  199. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  200. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +2 -1
  201. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  202. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -0
  203. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  204. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +1 -0
  205. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  206. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +5 -1
  207. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  208. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +5 -1
  209. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  210. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.cjs.js.map +1 -1
  211. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.es.js.map +1 -1
  212. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -0
  213. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  214. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +1 -0
  215. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  216. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +22 -11
  217. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  218. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +22 -11
  219. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  220. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js +6 -0
  221. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js.map +1 -1
  222. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.es.js +6 -0
  223. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.es.js.map +1 -1
  224. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.cjs.js +3 -3
  225. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.cjs.js.map +1 -1
  226. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.es.js +3 -3
  227. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.es.js.map +1 -1
  228. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -0
  229. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  230. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +1 -0
  231. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  232. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -0
  233. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  234. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +1 -0
  235. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  236. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.cjs.js +2 -1
  237. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.cjs.js.map +1 -1
  238. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.es.js +2 -1
  239. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.es.js.map +1 -1
  240. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +45 -16
  241. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  242. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +45 -16
  243. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  244. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +45 -7
  245. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  246. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +45 -7
  247. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  248. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +202 -0
  249. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -0
  250. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +202 -0
  251. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -0
  252. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +14 -6
  253. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  254. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +14 -6
  255. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  256. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js +11 -1
  257. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
  258. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js +11 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
  260. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +22 -2
  261. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  262. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +22 -2
  263. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  264. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.cjs.js +116 -0
  265. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.cjs.js.map +1 -0
  266. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.es.js +116 -0
  267. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableModulesContext.es.js.map +1 -0
  268. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js +1 -0
  269. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js.map +1 -1
  270. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js +1 -0
  271. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js.map +1 -1
  272. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  274. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +1 -1
  275. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  276. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +137 -0
  277. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -0
  278. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +137 -0
  279. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -0
  280. package/dist/shared/src/containers/ProjectTreeTable/hooks/{useOverviewTable.cjs.js → useBuildProjectDataTable.cjs.js} +3 -3
  281. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -0
  282. package/dist/shared/src/containers/ProjectTreeTable/hooks/{useOverviewTable.es.js → useBuildProjectDataTable.es.js} +3 -3
  283. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -0
  284. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +39 -19
  285. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  286. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +39 -19
  287. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  288. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js +108 -0
  289. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js.map +1 -0
  290. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js +108 -0
  291. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js.map +1 -0
  292. package/dist/shared/src/containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js +29 -0
  293. package/dist/shared/src/containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js.map +1 -0
  294. package/dist/shared/src/containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js +30 -0
  295. package/dist/shared/src/containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js.map +1 -0
  296. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +8 -0
  297. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  298. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +8 -0
  299. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  300. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.cjs.js +37 -0
  301. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.cjs.js.map +1 -0
  302. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.es.js +37 -0
  303. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.es.js.map +1 -0
  304. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -0
  305. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  306. package/dist/shared/src/context/DetailsPanelContext.es.js +1 -0
  307. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  308. package/dist/shared/src/context/PowerpackContext.cjs.js +65 -0
  309. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -0
  310. package/dist/shared/src/context/PowerpackContext.es.js +65 -0
  311. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -0
  312. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -0
  313. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  314. package/dist/shared/src/hooks/useEntityUpdate.es.js +1 -0
  315. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  316. package/dist/shared/src/util/getAttributeIcon.cjs.js +7 -1
  317. package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -1
  318. package/dist/shared/src/util/getAttributeIcon.es.js +7 -1
  319. package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -1
  320. package/dist/shared/src/util/getEntityTypeIcon.cjs.js +9 -0
  321. package/dist/shared/src/util/getEntityTypeIcon.cjs.js.map +1 -1
  322. package/dist/shared/src/util/getEntityTypeIcon.es.js +9 -0
  323. package/dist/shared/src/util/getEntityTypeIcon.es.js.map +1 -1
  324. package/dist/types/api/generated/actions.d.ts +3 -2
  325. package/dist/types/api/generated/addons.d.ts +8 -1
  326. package/dist/types/api/generated/anatomy.d.ts +1 -14
  327. package/dist/types/api/generated/attributes.d.ts +4 -2
  328. package/dist/types/api/generated/configuration.d.ts +6 -0
  329. package/dist/types/api/generated/entityLists.d.ts +2 -0
  330. package/dist/types/api/generated/events.d.ts +1 -1
  331. package/dist/types/api/generated/files.d.ts +11 -0
  332. package/dist/types/api/generated/operations.d.ts +1 -1
  333. package/dist/types/api/generated/projects.d.ts +59 -0
  334. package/dist/types/api/generated/reviewables.d.ts +1 -0
  335. package/dist/types/api/generated/system.d.ts +5 -2
  336. package/dist/types/api/generated/tasks.d.ts +48 -9
  337. package/dist/types/api/generated/users.d.ts +1 -4
  338. package/dist/types/api/queries/overview/getOverview.d.ts +350 -482
  339. package/dist/types/api/queries/project/getProject.d.ts +6 -0
  340. package/dist/types/components/Powerpack/PowerpackButton.d.ts +7 -0
  341. package/dist/types/components/Powerpack/PowerpackDialog.d.ts +4 -0
  342. package/dist/types/components/Powerpack/PowerpackDialog.styled.d.ts +8 -0
  343. package/dist/types/components/Powerpack/PricingLink.d.ts +4 -0
  344. package/dist/types/components/Powerpack/index.d.ts +3 -0
  345. package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +2 -1
  346. package/dist/types/components/ProjectTableSettings/TableSettings.styled.d.ts +1 -0
  347. package/dist/types/components/ProjectTableSettings/TableSettingsFallback.d.ts +10 -0
  348. package/dist/types/components/ProjectTableSettings/index.d.ts +1 -0
  349. package/dist/types/components/SearchFilter/filterDates.d.ts +56 -0
  350. package/dist/types/components/SearchFilter/index.d.ts +2 -0
  351. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +30 -0
  352. package/dist/types/components/index.d.ts +2 -0
  353. package/dist/types/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.d.ts +1 -1
  354. package/dist/types/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.d.ts +1 -1
  355. package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.d.ts +4 -3
  356. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +5 -1
  357. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +3 -1
  358. package/dist/types/containers/ProjectTreeTable/components/GroupSettingsFallback.d.ts +11 -0
  359. package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +7 -0
  360. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +11 -5
  361. package/dist/types/containers/ProjectTreeTable/context/ProjectTableModulesContext.d.ts +12 -0
  362. package/dist/types/containers/ProjectTreeTable/context/index.d.ts +1 -0
  363. package/dist/types/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.d.ts +25 -0
  364. package/dist/types/containers/ProjectTreeTable/hooks/{useOverviewTable.d.ts → useBuildProjectDataTable.d.ts} +3 -1
  365. package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +2 -0
  366. package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +1 -1
  367. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +13 -5
  368. package/dist/types/containers/ProjectTreeTable/widgets/GroupHeaderWidget.d.ts +13 -0
  369. package/dist/types/containers/ProjectTreeTable/widgets/LoadMoreWidget.d.ts +8 -0
  370. package/dist/types/containers/ProjectTreeTable/widgets/index.d.ts +1 -0
  371. package/dist/types/containers/Slicer/index.d.ts +1 -0
  372. package/dist/types/containers/Slicer/useFiltersWithHierarchy.d.ts +10 -0
  373. package/dist/types/context/PowerpackContext.d.ts +20 -0
  374. package/dist/types/context/index.d.ts +1 -0
  375. package/dist/types/util/getAttributeIcon.d.ts +1 -1
  376. package/dist/types/util/getEntityTypeIcon.d.ts +1 -0
  377. package/dist/util.cjs.js +1 -0
  378. package/dist/util.cjs.js.map +1 -1
  379. package/dist/util.es.js +2 -1
  380. package/package.json +1 -1
  381. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.cjs.js.map +0 -1
  382. package/dist/shared/src/containers/ProjectTreeTable/hooks/useOverviewTable.es.js.map +0 -1
@@ -49,12 +49,14 @@ const transformFilteredEntitiesByParent = (response) => {
49
49
  tasks.push({
50
50
  ...taskNode,
51
51
  folderId: taskNode.folderId || "root",
52
- attrib: parseAllAttribs(taskNode.allAttrib)
52
+ attrib: parseAllAttribs(taskNode.allAttrib),
53
+ entityId: taskNode.id,
54
+ entityType: "task"
53
55
  });
54
56
  }
55
57
  return tasks;
56
58
  };
57
- const getOverviewTaskTags = (result, projectName, parentIds) => {
59
+ const getOverviewTaskTags = (result = [], projectName, parentIds) => {
58
60
  const taskTags = (result == null ? void 0 : result.map((task) => ({ type: "overviewTask", id: task.id }))) || [];
59
61
  if (!parentIds) return taskTags;
60
62
  const parentTags = (Array.isArray(parentIds) ? parentIds : [parentIds]).map((id) => ({
@@ -88,9 +90,11 @@ const enhancedApi = injectedRtkApi.enhanceEndpoints({
88
90
  });
89
91
  const foldersApiEnhanced = injectedRtkApi$1.enhanceEndpoints({
90
92
  endpoints: {
91
- queryTasksFolders: {}
93
+ queryTasksFolders: {},
94
+ getTaskGroups: {}
92
95
  }
93
96
  });
97
+ const { useGetTaskGroupsQuery } = foldersApiEnhanced;
94
98
  const TASKS_INFINITE_QUERY_COUNT = 100;
95
99
  const injectedApi = enhancedApi.injectEndpoints({
96
100
  endpoints: (build) => ({
@@ -223,6 +227,61 @@ const injectedApi = enhancedApi.injectEndpoints({
223
227
  }
224
228
  },
225
229
  providesTags: (result, _e, { projectName }) => getOverviewTaskTags((result == null ? void 0 : result.pages.flatMap((p) => p.tasks)) || [], projectName)
230
+ }),
231
+ getGroupedTasksList: build.query({
232
+ queryFn: async ({ projectName, groups, search, desc, sortBy }, api) => {
233
+ var _a, _b, _c, _d, _e, _f;
234
+ try {
235
+ let promises = [];
236
+ for (const group of groups) {
237
+ const count = group.count || 500;
238
+ const queryParams = {
239
+ projectName,
240
+ filter: group.filter,
241
+ search,
242
+ sortBy,
243
+ // @ts-expect-error - we know group does not exist on query variables but we need it for later
244
+ group: group.value
245
+ };
246
+ if (desc) {
247
+ queryParams.last = count;
248
+ } else {
249
+ queryParams.first = count;
250
+ }
251
+ const promise = api.dispatch(
252
+ enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true })
253
+ );
254
+ promises.push(promise);
255
+ }
256
+ const result = await Promise.all(promises);
257
+ const tasks = [];
258
+ for (const res of result) {
259
+ if (res.error) throw res.error;
260
+ const groupValue = (_a = res.originalArgs) == null ? void 0 : _a.group;
261
+ const hasNextPage = ((_c = (_b = res.data) == null ? void 0 : _b.pageInfo) == null ? void 0 : _c.hasNextPage) || ((_e = (_d = res.data) == null ? void 0 : _d.pageInfo) == null ? void 0 : _e.hasPreviousPage) || false;
262
+ const groupTasks = ((_f = res.data) == null ? void 0 : _f.tasks.map((task, i, a) => ({
263
+ ...task,
264
+ groups: [
265
+ {
266
+ value: groupValue,
267
+ hasNextPage: i === a.length - 1 && hasNextPage ? groupValue : void 0
268
+ // Only add hasNextPage to the last task in the group
269
+ }
270
+ ]
271
+ }))) || [];
272
+ tasks.push(...groupTasks);
273
+ }
274
+ return {
275
+ data: {
276
+ tasks
277
+ }
278
+ };
279
+ } catch (error) {
280
+ console.error("Error in getGroupedTasksList queryFn:", error);
281
+ return { error: { status: "FETCH_ERROR", error: error.message } };
282
+ }
283
+ },
284
+ providesTags: (result, _e, { projectName }) => getOverviewTaskTags(result == null ? void 0 : result.tasks, projectName)
226
285
  })
227
286
  })
228
287
  });
@@ -231,14 +290,17 @@ const {
231
290
  useGetQueryTasksFoldersQuery,
232
291
  useGetTasksListQuery,
233
292
  useGetTasksListInfiniteInfiniteQuery,
234
- useLazyGetTasksByParentQuery
293
+ useLazyGetTasksByParentQuery,
294
+ useGetGroupedTasksListQuery
235
295
  } = injectedApi;
236
296
  export {
237
297
  TASKS_INFINITE_QUERY_COUNT,
238
298
  injectedApi as default,
239
299
  parseAllAttribs,
300
+ useGetGroupedTasksListQuery,
240
301
  useGetOverviewTasksByFoldersQuery,
241
302
  useGetQueryTasksFoldersQuery,
303
+ useGetTaskGroupsQuery,
242
304
  useGetTasksListInfiniteInfiniteQuery,
243
305
  useGetTasksListQuery,
244
306
  useLazyGetTasksByParentQuery
@@ -1 +1 @@
1
- {"version":3,"file":"getOverview.es.js","sources":["../../../../../../src/api/queries/overview/getOverview.ts"],"sourcesContent":["import {\n gqlApi,\n GetTasksByParentQuery,\n GetTasksListQuery,\n tasksApi,\n QueryTasksFoldersApiArg,\n} from '@shared/api/generated'\nimport { EditorTaskNode } from '@shared/containers/ProjectTreeTable'\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\n\n// parse attribs JSON string to object\nexport const parseAllAttribs = (allAttrib: string) => {\n try {\n return JSON.parse(allAttrib)\n } catch (e) {\n return {}\n }\n}\n\nconst transformFilteredEntitiesByParent = (response: GetTasksByParentQuery): EditorTaskNode[] => {\n if (!response.project) {\n return []\n }\n\n const tasks: EditorTaskNode[] = []\n for (const { node: taskNode } of response.project.tasks.edges) {\n tasks.push({\n ...taskNode,\n folderId: taskNode.folderId || 'root',\n attrib: parseAllAttribs(taskNode.allAttrib),\n })\n }\n\n return tasks\n}\n\nconst getOverviewTaskTags = (\n result: EditorTaskNode[] | undefined,\n projectName: string,\n parentIds?: string | string[],\n) => {\n const taskTags = result?.map((task) => ({ type: 'overviewTask', id: task.id })) || []\n\n if (!parentIds) return taskTags\n\n const parentTags = (Array.isArray(parentIds) ? parentIds : [parentIds]).map((id) => ({\n type: 'overviewTask',\n id,\n }))\n\n return [\n ...taskTags,\n ...parentTags,\n { type: 'overviewTask', id: projectName },\n { type: 'overviewTask', id: 'LIST' },\n ]\n}\n\ntype GetTasksListResult = {\n pageInfo: GetTasksListQuery['project']['tasks']['pageInfo']\n tasks: EditorTaskNode[]\n}\n\n// Define the page param type for infinite query\ntype TasksListPageParam = {\n cursor: string\n desc?: boolean\n}\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\ntype UpdatedDefinitions = Omit<Definitions, 'GetFilteredEntities'> & {\n GetTasksByParent: OverrideResultType<Definitions['GetTasksByParent'], EditorTaskNode[]>\n GetTasksList: OverrideResultType<Definitions['GetTasksList'], GetTasksListResult>\n}\n\n// GRAPHQL API\nconst enhancedApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // This gets tasks for all parent folders provided\n // But in this case it will only ever receive one parent folder from the getOverviewTasksByFolders query\n // It is only used by getOverviewTasksByFolders in this file\n GetTasksByParent: {\n transformResponse: transformFilteredEntitiesByParent,\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n },\n GetTasksList: {\n transformResponse: (result: GetTasksListQuery) => ({\n tasks: transformFilteredEntitiesByParent(result),\n pageInfo: result.project.tasks.pageInfo,\n }),\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks || [], projectName),\n },\n },\n})\n\n// REST FOLDERS API\nconst foldersApiEnhanced = tasksApi.enhanceEndpoints({\n endpoints: {\n queryTasksFolders: {},\n },\n})\n\nexport const TASKS_INFINITE_QUERY_COUNT = 100 // Number of items to fetch per page\n\nconst injectedApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // Each project has one cache for all the tasks of the expanded folders\n // Changing the expanded folders will trigger a refetch but not a new cache\n // Each expanded folder has it's own query that is looped over here\n // When new folders are expanded, the new tasks are fetched and we use the cache for the rest\n // This also solves the pagination issue of getting all tasks in one query, splitting it up in multiple queries to avoid pagination limits\n getOverviewTasksByFolders: build.query<\n EditorTaskNode[],\n { projectName: string; parentIds: string[]; filter?: string; search?: string }\n >({\n async queryFn({ projectName, parentIds, filter, search }, { dispatch, forced }) {\n try {\n // Process parent IDs in sequential batches\n const BATCH_SIZE = 20 // Process x parentIds at a time\n const allTasks: EditorTaskNode[] = []\n\n // Process batches one after another\n for (let i = 0; i < parentIds.length; i += BATCH_SIZE) {\n const batchParentIds = parentIds.slice(i, i + BATCH_SIZE)\n\n // Process this batch in parallel\n const batchResults = await Promise.all(\n batchParentIds.map(async (parentId) =>\n dispatch(\n enhancedApi.endpoints.GetTasksByParent.initiate(\n {\n projectName,\n parentIds: [parentId],\n filter,\n search,\n },\n { forceRefetch: forced },\n ),\n ),\n ),\n )\n\n // Add the results from this batch to our accumulated results\n const batchTasks = batchResults\n .filter((r) => !!r.data)\n .flatMap((result) => result.data as EditorTaskNode[])\n\n allTasks.push(...batchTasks)\n }\n\n return { data: allTasks }\n } catch (e: any) {\n // handle errors appropriately\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n // keep one cache per project\n serializeQueryArgs: ({ queryArgs: { parentIds, ...rest } }) => ({\n ...rest,\n }),\n // Refetch when the page arg changes\n forceRefetch({ currentArg, previousArg }) {\n return JSON.stringify(currentArg) !== JSON.stringify(previousArg)\n },\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n }),\n // queryTasksFolders is a post so it's a bit annoying to consume\n // we wrap it in a queryFn to make it easier to consume as a query hook\n getQueryTasksFolders: build.query<string[], QueryTasksFoldersApiArg>({\n async queryFn({ projectName, tasksFoldersQuery }, { dispatch }) {\n try {\n const result = await dispatch(\n foldersApiEnhanced.endpoints.queryTasksFolders.initiate({\n projectName,\n tasksFoldersQuery,\n }),\n )\n\n const data = result.data?.folderIds || []\n\n return { data }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n }),\n // Add new infinite query endpoint for tasks list\n getTasksListInfinite: build.infiniteQuery<\n GetTasksListResult,\n {\n projectName: string\n filter?: string\n search?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n },\n TasksListPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo.hasPreviousPage : pageInfo.hasNextPage\n\n if (!hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { projectName, filter, search, folderIds, sortBy, desc } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetTasksList\n const queryParams: any = {\n projectName,\n filter,\n search,\n folderIds,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = TASKS_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n\n // Call the existing GetTasksList endpoint\n const result = await api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n tasks: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the tasks directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getTasksListInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.pages.flatMap((p) => p.tasks) || [], projectName),\n }),\n }),\n})\n\nexport const {\n useGetOverviewTasksByFoldersQuery,\n useGetQueryTasksFoldersQuery,\n useGetTasksListQuery,\n useGetTasksListInfiniteInfiniteQuery,\n useLazyGetTasksByParentQuery,\n} = injectedApi\nexport default injectedApi\n"],"names":["gqlApi","tasksApi"],"mappings":"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"}
1
+ {"version":3,"file":"getOverview.es.js","sources":["../../../../../../src/api/queries/overview/getOverview.ts"],"sourcesContent":["import {\n gqlApi,\n GetTasksByParentQuery,\n GetTasksListQuery,\n tasksApi,\n QueryTasksFoldersApiArg,\n GetTasksListQueryVariables,\n} from '@shared/api/generated'\nimport { EditorTaskNode, TableGroupBy } from '@shared/containers/ProjectTreeTable'\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\n\n// parse attribs JSON string to object\nexport const parseAllAttribs = (allAttrib: string) => {\n try {\n return JSON.parse(allAttrib)\n } catch (e) {\n return {}\n }\n}\n\nconst transformFilteredEntitiesByParent = (response: GetTasksByParentQuery): EditorTaskNode[] => {\n if (!response.project) {\n return []\n }\n\n const tasks: EditorTaskNode[] = []\n for (const { node: taskNode } of response.project.tasks.edges) {\n tasks.push({\n ...taskNode,\n folderId: taskNode.folderId || 'root',\n attrib: parseAllAttribs(taskNode.allAttrib),\n entityId: taskNode.id,\n entityType: 'task',\n })\n }\n\n return tasks\n}\n\nconst getOverviewTaskTags = (\n result: EditorTaskNode[] | undefined = [],\n projectName: string,\n parentIds?: string | string[],\n) => {\n const taskTags = result?.map((task) => ({ type: 'overviewTask', id: task.id })) || []\n\n if (!parentIds) return taskTags\n\n const parentTags = (Array.isArray(parentIds) ? parentIds : [parentIds]).map((id) => ({\n type: 'overviewTask',\n id,\n }))\n\n return [\n ...taskTags,\n ...parentTags,\n { type: 'overviewTask', id: projectName },\n { type: 'overviewTask', id: 'LIST' },\n ]\n}\n\nexport type GetTasksListResult = {\n pageInfo: GetTasksListQuery['project']['tasks']['pageInfo']\n tasks: EditorTaskNode[]\n}\n\nexport type GetTasksListArgs = {\n projectName: string\n filter?: string\n search?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n}\n\nexport type GetGroupedTasksListResult = {\n tasks: EditorTaskNode[]\n}\n\nexport type GetGroupedTasksListArgs = {\n projectName: string\n groups: { filter: string; count: number; value: string }[]\n search?: string\n desc?: boolean\n sortBy?: string\n}\n\n// Define the page param type for infinite query\ntype TasksListPageParam = {\n cursor: string\n desc?: boolean\n}\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\ntype UpdatedDefinitions = Omit<Definitions, 'GetFilteredEntities'> & {\n GetTasksByParent: OverrideResultType<Definitions['GetTasksByParent'], EditorTaskNode[]>\n GetTasksList: OverrideResultType<Definitions['GetTasksList'], GetTasksListResult>\n}\n\n// GRAPHQL API\nconst enhancedApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // This gets tasks for all parent folders provided\n // But in this case it will only ever receive one parent folder from the getOverviewTasksByFolders query\n // It is only used by getOverviewTasksByFolders in this file\n GetTasksByParent: {\n transformResponse: transformFilteredEntitiesByParent,\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n },\n GetTasksList: {\n transformResponse: (result: GetTasksListQuery) => ({\n tasks: transformFilteredEntitiesByParent(result),\n pageInfo: result.project.tasks.pageInfo,\n }),\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks || [], projectName),\n },\n },\n})\n\n// REST FOLDERS API\nconst foldersApiEnhanced = tasksApi.enhanceEndpoints({\n endpoints: {\n queryTasksFolders: {},\n getTaskGroups: {},\n },\n})\n\nexport const { useGetTaskGroupsQuery } = foldersApiEnhanced\n\nexport const TASKS_INFINITE_QUERY_COUNT = 100 // Number of items to fetch per page\n\nconst injectedApi = enhancedApi.injectEndpoints({\n endpoints: (build) => ({\n // Each project has one cache for all the tasks of the expanded folders\n // Changing the expanded folders will trigger a refetch but not a new cache\n // Each expanded folder has it's own query that is looped over here\n // When new folders are expanded, the new tasks are fetched and we use the cache for the rest\n // This also solves the pagination issue of getting all tasks in one query, splitting it up in multiple queries to avoid pagination limits\n getOverviewTasksByFolders: build.query<\n EditorTaskNode[],\n { projectName: string; parentIds: string[]; filter?: string; search?: string }\n >({\n async queryFn({ projectName, parentIds, filter, search }, { dispatch, forced }) {\n try {\n // Process parent IDs in sequential batches\n const BATCH_SIZE = 20 // Process x parentIds at a time\n const allTasks: EditorTaskNode[] = []\n\n // Process batches one after another\n for (let i = 0; i < parentIds.length; i += BATCH_SIZE) {\n const batchParentIds = parentIds.slice(i, i + BATCH_SIZE)\n\n // Process this batch in parallel\n const batchResults = await Promise.all(\n batchParentIds.map(async (parentId) =>\n dispatch(\n enhancedApi.endpoints.GetTasksByParent.initiate(\n {\n projectName,\n parentIds: [parentId],\n filter,\n search,\n },\n { forceRefetch: forced },\n ),\n ),\n ),\n )\n\n // Add the results from this batch to our accumulated results\n const batchTasks = batchResults\n .filter((r) => !!r.data)\n .flatMap((result) => result.data as EditorTaskNode[])\n\n allTasks.push(...batchTasks)\n }\n\n return { data: allTasks }\n } catch (e: any) {\n // handle errors appropriately\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n // keep one cache per project\n serializeQueryArgs: ({ queryArgs: { parentIds, ...rest } }) => ({\n ...rest,\n }),\n // Refetch when the page arg changes\n forceRefetch({ currentArg, previousArg }) {\n return JSON.stringify(currentArg) !== JSON.stringify(previousArg)\n },\n providesTags: (result, _e, { parentIds, projectName }) =>\n getOverviewTaskTags(result, projectName, parentIds),\n }),\n // queryTasksFolders is a post so it's a bit annoying to consume\n // we wrap it in a queryFn to make it easier to consume as a query hook\n getQueryTasksFolders: build.query<string[], QueryTasksFoldersApiArg>({\n async queryFn({ projectName, tasksFoldersQuery }, { dispatch }) {\n try {\n const result = await dispatch(\n foldersApiEnhanced.endpoints.queryTasksFolders.initiate({\n projectName,\n tasksFoldersQuery,\n }),\n )\n\n const data = result.data?.folderIds || []\n\n return { data }\n } catch (e: any) {\n console.error(e)\n const error = { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError\n return { error }\n }\n },\n }),\n // Add new infinite query endpoint for tasks list\n getTasksListInfinite: build.infiniteQuery<\n GetTasksListResult,\n GetTasksListArgs,\n TasksListPageParam\n >({\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo.hasPreviousPage : pageInfo.hasNextPage\n\n if (!hasNextPage || !pageInfo.endCursor) return undefined\n\n return {\n cursor: pageInfo.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { projectName, filter, search, folderIds, sortBy, desc } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetTasksList\n const queryParams: any = {\n projectName,\n filter,\n search,\n folderIds,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = TASKS_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = TASKS_INFINITE_QUERY_COUNT\n }\n\n // Call the existing GetTasksList endpoint\n const result = await api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n tasks: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the tasks directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getTasksListInfinite queryFn:', e)\n return { error: { status: 'FETCH_ERROR', error: e.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.pages.flatMap((p) => p.tasks) || [], projectName),\n }),\n getGroupedTasksList: build.query<GetGroupedTasksListResult, GetGroupedTasksListArgs>({\n queryFn: async ({ projectName, groups, search, desc, sortBy }, api) => {\n try {\n let promises = []\n for (const group of groups) {\n const count = group.count || 500\n\n const queryParams: GetTasksListQueryVariables = {\n projectName,\n filter: group.filter,\n search,\n sortBy: sortBy,\n // @ts-expect-error - we know group does not exist on query variables but we need it for later\n group: group.value,\n }\n if (desc) {\n queryParams.last = count\n } else {\n queryParams.first = count\n }\n\n const promise = api.dispatch(\n enhancedApi.endpoints.GetTasksList.initiate(queryParams, { forceRefetch: true }),\n )\n promises.push(promise)\n }\n\n const result = await Promise.all(promises)\n const tasks: EditorTaskNode[] = []\n for (const res of result) {\n if (res.error) throw res.error\n // get group value\n // @ts-expect-error - we know group does exist on res.originalArgs from line 319\n const groupValue = res.originalArgs?.group as string\n\n const hasNextPage =\n res.data?.pageInfo?.hasNextPage || res.data?.pageInfo?.hasPreviousPage || false\n const groupTasks =\n res.data?.tasks.map((task, i, a) => ({\n ...task,\n groups: [\n {\n value: groupValue,\n hasNextPage: i === a.length - 1 && hasNextPage ? groupValue : undefined, // Only add hasNextPage to the last task in the group\n },\n ],\n })) || []\n\n tasks.push(...groupTasks)\n }\n\n // Return the tasks directly as required by the query format\n return {\n data: {\n tasks,\n },\n }\n } catch (error: any) {\n console.error('Error in getGroupedTasksList queryFn:', error)\n return { error: { status: 'FETCH_ERROR', error: error.message } as FetchBaseQueryError }\n }\n },\n providesTags: (result, _e, { projectName }) =>\n getOverviewTaskTags(result?.tasks, projectName),\n }),\n }),\n})\n\nexport const {\n useGetOverviewTasksByFoldersQuery,\n useGetQueryTasksFoldersQuery,\n useGetTasksListQuery,\n useGetTasksListInfiniteInfiniteQuery,\n useLazyGetTasksByParentQuery,\n useGetGroupedTasksListQuery,\n} = injectedApi\nexport default injectedApi\n"],"names":["gqlApi","tasksApi"],"mappings":"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"}
@@ -21,6 +21,7 @@ require("react-dom");
21
21
  require("../../context/pip/PiPWrapper.cjs.js");
22
22
  require("../../context/AddonProjectContext.cjs.js");
23
23
  require("../../context/AddonContext.cjs.js");
24
+ require("../../context/PowerpackContext.cjs.js");
24
25
  const SegmentProvider = React.forwardRef(
25
26
  ({ children, segment, isOpen, scope, projectName, ...props }, ref) => {
26
27
  const { openSlideOut } = DetailsPanelContext.useDetailsPanelContext();
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentProvider.cjs.js","sources":["../../../../../src/components/EntityPath/SegmentProvider.tsx"],"sourcesContent":["import { forwardRef, MouseEvent } from 'react'\nimport { ActiveSegment } from './EntityPath.styled'\nimport { classNames } from 'primereact/utils'\nimport { PathSegment } from './EntityPath'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { copyToClipboard } from '@shared/util'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface SegmentProviderProps extends React.HTMLAttributes<HTMLDivElement> {\n segment?: PathSegment\n isOpen?: boolean\n scope: string\n projectName: string\n}\n\nconst SegmentProvider = forwardRef<HTMLDivElement, SegmentProviderProps>(\n ({ children, segment, isOpen, scope, projectName, ...props }, ref) => {\n const { openSlideOut } = useDetailsPanelContext()\n // is the segment NOT a product || project?\n const isLinkable = segment?.type !== 'product' && segment?.type !== 'project'\n\n const handleClick = () => {\n if (!isLinkable) return\n\n const { type: entityType, id: entityId } = segment || {}\n\n if (!entityType || entityType === 'project' || entityType === 'product' || !entityId) return\n\n openSlideOut({\n entityType,\n entityId,\n projectName,\n })\n }\n\n const buildContextMenu = (id: string) => [\n {\n label: `ID: ${id}`,\n icon: 'content_copy',\n command: () => copyToClipboard(id),\n },\n ]\n\n const [contextMenuShow] = useCreateContextMenu()\n\n const handleOnContext = (e: MouseEvent<HTMLDivElement>) => {\n if (!segment) return\n const menu = buildContextMenu(segment.id)\n\n contextMenuShow(e, menu)\n }\n\n return (\n <ActiveSegment\n onClick={handleClick}\n onContextMenu={handleOnContext}\n className={classNames({ link: isLinkable, open: isOpen })}\n {...props}\n ref={ref}\n >\n {children}\n </ActiveSegment>\n )\n },\n)\n\nexport default SegmentProvider\n"],"names":["forwardRef","useDetailsPanelContext","copyToClipboard","useCreateContextMenu","jsx","ActiveSegment","classNames"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,kBAAkBA,MAAA;AAAA,EACtB,CAAC,EAAE,UAAU,SAAS,QAAQ,OAAO,aAAa,GAAG,MAAM,GAAG,QAAQ;AAC9D,UAAA,EAAE,aAAa,IAAIC,2CAAuB;AAEhD,UAAM,cAAa,mCAAS,UAAS,cAAa,mCAAS,UAAS;AAEpE,UAAM,cAAc,MAAM;AACxB,UAAI,CAAC,WAAY;AAEjB,YAAM,EAAE,MAAM,YAAY,IAAI,SAAS,IAAI,WAAW,CAAC;AAEvD,UAAI,CAAC,cAAc,eAAe,aAAa,eAAe,aAAa,CAAC,SAAU;AAEzE,mBAAA;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IACH;AAEM,UAAA,mBAAmB,CAAC,OAAe;AAAA,MACvC;AAAA,QACE,OAAO,OAAO,EAAE;AAAA,QAChB,MAAM;AAAA,QACN,SAAS,MAAMC,gBAAAA,gBAAgB,EAAE;AAAA,MAAA;AAAA,IAErC;AAEM,UAAA,CAAC,eAAe,IAAIC,0CAAqB;AAEzC,UAAA,kBAAkB,CAAC,MAAkC;AACzD,UAAI,CAAC,QAAS;AACR,YAAA,OAAO,iBAAiB,QAAQ,EAAE;AAExC,sBAAgB,GAAG,IAAI;AAAA,IACzB;AAGE,WAAAC,2BAAA,kBAAA;AAAA,MAACC,kBAAA;AAAA,MAAA;AAAA,QACC,SAAS;AAAA,QACT,eAAe;AAAA,QACf,WAAWC,UAAW,WAAA,EAAE,MAAM,YAAY,MAAM,QAAQ;AAAA,QACvD,GAAG;AAAA,QACJ;AAAA,QAEC;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;;"}
1
+ {"version":3,"file":"SegmentProvider.cjs.js","sources":["../../../../../src/components/EntityPath/SegmentProvider.tsx"],"sourcesContent":["import { forwardRef, MouseEvent } from 'react'\nimport { ActiveSegment } from './EntityPath.styled'\nimport { classNames } from 'primereact/utils'\nimport { PathSegment } from './EntityPath'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { copyToClipboard } from '@shared/util'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface SegmentProviderProps extends React.HTMLAttributes<HTMLDivElement> {\n segment?: PathSegment\n isOpen?: boolean\n scope: string\n projectName: string\n}\n\nconst SegmentProvider = forwardRef<HTMLDivElement, SegmentProviderProps>(\n ({ children, segment, isOpen, scope, projectName, ...props }, ref) => {\n const { openSlideOut } = useDetailsPanelContext()\n // is the segment NOT a product || project?\n const isLinkable = segment?.type !== 'product' && segment?.type !== 'project'\n\n const handleClick = () => {\n if (!isLinkable) return\n\n const { type: entityType, id: entityId } = segment || {}\n\n if (!entityType || entityType === 'project' || entityType === 'product' || !entityId) return\n\n openSlideOut({\n entityType,\n entityId,\n projectName,\n })\n }\n\n const buildContextMenu = (id: string) => [\n {\n label: `ID: ${id}`,\n icon: 'content_copy',\n command: () => copyToClipboard(id),\n },\n ]\n\n const [contextMenuShow] = useCreateContextMenu()\n\n const handleOnContext = (e: MouseEvent<HTMLDivElement>) => {\n if (!segment) return\n const menu = buildContextMenu(segment.id)\n\n contextMenuShow(e, menu)\n }\n\n return (\n <ActiveSegment\n onClick={handleClick}\n onContextMenu={handleOnContext}\n className={classNames({ link: isLinkable, open: isOpen })}\n {...props}\n ref={ref}\n >\n {children}\n </ActiveSegment>\n )\n },\n)\n\nexport default SegmentProvider\n"],"names":["forwardRef","useDetailsPanelContext","copyToClipboard","useCreateContextMenu","jsx","ActiveSegment","classNames"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,kBAAkBA,MAAA;AAAA,EACtB,CAAC,EAAE,UAAU,SAAS,QAAQ,OAAO,aAAa,GAAG,MAAM,GAAG,QAAQ;AAC9D,UAAA,EAAE,aAAa,IAAIC,2CAAuB;AAEhD,UAAM,cAAa,mCAAS,UAAS,cAAa,mCAAS,UAAS;AAEpE,UAAM,cAAc,MAAM;AACxB,UAAI,CAAC,WAAY;AAEjB,YAAM,EAAE,MAAM,YAAY,IAAI,SAAS,IAAI,WAAW,CAAC;AAEvD,UAAI,CAAC,cAAc,eAAe,aAAa,eAAe,aAAa,CAAC,SAAU;AAEzE,mBAAA;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IACH;AAEM,UAAA,mBAAmB,CAAC,OAAe;AAAA,MACvC;AAAA,QACE,OAAO,OAAO,EAAE;AAAA,QAChB,MAAM;AAAA,QACN,SAAS,MAAMC,gBAAAA,gBAAgB,EAAE;AAAA,MAAA;AAAA,IAErC;AAEM,UAAA,CAAC,eAAe,IAAIC,0CAAqB;AAEzC,UAAA,kBAAkB,CAAC,MAAkC;AACzD,UAAI,CAAC,QAAS;AACR,YAAA,OAAO,iBAAiB,QAAQ,EAAE;AAExC,sBAAgB,GAAG,IAAI;AAAA,IACzB;AAGE,WAAAC,2BAAA,kBAAA;AAAA,MAACC,kBAAA;AAAA,MAAA;AAAA,QACC,SAAS;AAAA,QACT,eAAe;AAAA,QACf,WAAWC,UAAW,WAAA,EAAE,MAAM,YAAY,MAAM,QAAQ;AAAA,QACvD,GAAG;AAAA,QACJ;AAAA,QAEC;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;;"}
@@ -20,6 +20,7 @@ import "react-dom";
20
20
  import "../../context/pip/PiPWrapper.es.js";
21
21
  import "../../context/AddonProjectContext.es.js";
22
22
  import "../../context/AddonContext.es.js";
23
+ import "../../context/PowerpackContext.es.js";
23
24
  const SegmentProvider = forwardRef(
24
25
  ({ children, segment, isOpen, scope, projectName, ...props }, ref) => {
25
26
  const { openSlideOut } = useDetailsPanelContext();
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentProvider.es.js","sources":["../../../../../src/components/EntityPath/SegmentProvider.tsx"],"sourcesContent":["import { forwardRef, MouseEvent } from 'react'\nimport { ActiveSegment } from './EntityPath.styled'\nimport { classNames } from 'primereact/utils'\nimport { PathSegment } from './EntityPath'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { copyToClipboard } from '@shared/util'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface SegmentProviderProps extends React.HTMLAttributes<HTMLDivElement> {\n segment?: PathSegment\n isOpen?: boolean\n scope: string\n projectName: string\n}\n\nconst SegmentProvider = forwardRef<HTMLDivElement, SegmentProviderProps>(\n ({ children, segment, isOpen, scope, projectName, ...props }, ref) => {\n const { openSlideOut } = useDetailsPanelContext()\n // is the segment NOT a product || project?\n const isLinkable = segment?.type !== 'product' && segment?.type !== 'project'\n\n const handleClick = () => {\n if (!isLinkable) return\n\n const { type: entityType, id: entityId } = segment || {}\n\n if (!entityType || entityType === 'project' || entityType === 'product' || !entityId) return\n\n openSlideOut({\n entityType,\n entityId,\n projectName,\n })\n }\n\n const buildContextMenu = (id: string) => [\n {\n label: `ID: ${id}`,\n icon: 'content_copy',\n command: () => copyToClipboard(id),\n },\n ]\n\n const [contextMenuShow] = useCreateContextMenu()\n\n const handleOnContext = (e: MouseEvent<HTMLDivElement>) => {\n if (!segment) return\n const menu = buildContextMenu(segment.id)\n\n contextMenuShow(e, menu)\n }\n\n return (\n <ActiveSegment\n onClick={handleClick}\n onContextMenu={handleOnContext}\n className={classNames({ link: isLinkable, open: isOpen })}\n {...props}\n ref={ref}\n >\n {children}\n </ActiveSegment>\n )\n },\n)\n\nexport default SegmentProvider\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,kBAAkB;AAAA,EACtB,CAAC,EAAE,UAAU,SAAS,QAAQ,OAAO,aAAa,GAAG,MAAM,GAAG,QAAQ;AAC9D,UAAA,EAAE,aAAa,IAAI,uBAAuB;AAEhD,UAAM,cAAa,mCAAS,UAAS,cAAa,mCAAS,UAAS;AAEpE,UAAM,cAAc,MAAM;AACxB,UAAI,CAAC,WAAY;AAEjB,YAAM,EAAE,MAAM,YAAY,IAAI,SAAS,IAAI,WAAW,CAAC;AAEvD,UAAI,CAAC,cAAc,eAAe,aAAa,eAAe,aAAa,CAAC,SAAU;AAEzE,mBAAA;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IACH;AAEM,UAAA,mBAAmB,CAAC,OAAe;AAAA,MACvC;AAAA,QACE,OAAO,OAAO,EAAE;AAAA,QAChB,MAAM;AAAA,QACN,SAAS,MAAM,gBAAgB,EAAE;AAAA,MAAA;AAAA,IAErC;AAEM,UAAA,CAAC,eAAe,IAAI,qBAAqB;AAEzC,UAAA,kBAAkB,CAAC,MAAkC;AACzD,UAAI,CAAC,QAAS;AACR,YAAA,OAAO,iBAAiB,QAAQ,EAAE;AAExC,sBAAgB,GAAG,IAAI;AAAA,IACzB;AAGE,WAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS;AAAA,QACT,eAAe;AAAA,QACf,WAAW,WAAW,EAAE,MAAM,YAAY,MAAM,QAAQ;AAAA,QACvD,GAAG;AAAA,QACJ;AAAA,QAEC;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"SegmentProvider.es.js","sources":["../../../../../src/components/EntityPath/SegmentProvider.tsx"],"sourcesContent":["import { forwardRef, MouseEvent } from 'react'\nimport { ActiveSegment } from './EntityPath.styled'\nimport { classNames } from 'primereact/utils'\nimport { PathSegment } from './EntityPath'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { copyToClipboard } from '@shared/util'\nimport { useDetailsPanelContext } from '@shared/context'\n\ninterface SegmentProviderProps extends React.HTMLAttributes<HTMLDivElement> {\n segment?: PathSegment\n isOpen?: boolean\n scope: string\n projectName: string\n}\n\nconst SegmentProvider = forwardRef<HTMLDivElement, SegmentProviderProps>(\n ({ children, segment, isOpen, scope, projectName, ...props }, ref) => {\n const { openSlideOut } = useDetailsPanelContext()\n // is the segment NOT a product || project?\n const isLinkable = segment?.type !== 'product' && segment?.type !== 'project'\n\n const handleClick = () => {\n if (!isLinkable) return\n\n const { type: entityType, id: entityId } = segment || {}\n\n if (!entityType || entityType === 'project' || entityType === 'product' || !entityId) return\n\n openSlideOut({\n entityType,\n entityId,\n projectName,\n })\n }\n\n const buildContextMenu = (id: string) => [\n {\n label: `ID: ${id}`,\n icon: 'content_copy',\n command: () => copyToClipboard(id),\n },\n ]\n\n const [contextMenuShow] = useCreateContextMenu()\n\n const handleOnContext = (e: MouseEvent<HTMLDivElement>) => {\n if (!segment) return\n const menu = buildContextMenu(segment.id)\n\n contextMenuShow(e, menu)\n }\n\n return (\n <ActiveSegment\n onClick={handleClick}\n onContextMenu={handleOnContext}\n className={classNames({ link: isLinkable, open: isOpen })}\n {...props}\n ref={ref}\n >\n {children}\n </ActiveSegment>\n )\n },\n)\n\nexport default SegmentProvider\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,kBAAkB;AAAA,EACtB,CAAC,EAAE,UAAU,SAAS,QAAQ,OAAO,aAAa,GAAG,MAAM,GAAG,QAAQ;AAC9D,UAAA,EAAE,aAAa,IAAI,uBAAuB;AAEhD,UAAM,cAAa,mCAAS,UAAS,cAAa,mCAAS,UAAS;AAEpE,UAAM,cAAc,MAAM;AACxB,UAAI,CAAC,WAAY;AAEjB,YAAM,EAAE,MAAM,YAAY,IAAI,SAAS,IAAI,WAAW,CAAC;AAEvD,UAAI,CAAC,cAAc,eAAe,aAAa,eAAe,aAAa,CAAC,SAAU;AAEzE,mBAAA;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IACH;AAEM,UAAA,mBAAmB,CAAC,OAAe;AAAA,MACvC;AAAA,QACE,OAAO,OAAO,EAAE;AAAA,QAChB,MAAM;AAAA,QACN,SAAS,MAAM,gBAAgB,EAAE;AAAA,MAAA;AAAA,IAErC;AAEM,UAAA,CAAC,eAAe,IAAI,qBAAqB;AAEzC,UAAA,kBAAkB,CAAC,MAAkC;AACzD,UAAI,CAAC,QAAS;AACR,YAAA,OAAO,iBAAiB,QAAQ,EAAE;AAExC,sBAAgB,GAAG,IAAI;AAAA,IACzB;AAGE,WAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS;AAAA,QACT,eAAe;AAAA,QACf,WAAW,WAAW,EAAE,MAAM,YAAY,MAAM,QAAQ;AAAA,QACvD,GAAG;AAAA,QACJ;AAAA,QAEC;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;"}
@@ -91,6 +91,7 @@ require("react-dom");
91
91
  require("../../context/pip/PiPWrapper.cjs.js");
92
92
  require("../../context/AddonProjectContext.cjs.js");
93
93
  require("../../context/AddonContext.cjs.js");
94
+ require("../../context/PowerpackContext.cjs.js");
94
95
  require("../ReviewableCard/ReviewableCard.cjs.js");
95
96
  require("../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");
96
97
  require("../FileThumbnail/FileThumbnail.cjs.js");
@@ -134,6 +135,7 @@ require("../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");
134
135
  require("../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");
135
136
  require("../../containers/ProjectTreeTable/context/ProjectTableSelectionContext.cjs.js");
136
137
  require("../../containers/ProjectTreeTable/context/ProjectDataContext.cjs.js");
138
+ require("../../containers/ProjectTreeTable/context/ProjectTableModulesContext.cjs.js");
137
139
  require("@tanstack/react-table");
138
140
  require("../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");
139
141
  require("../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js");
@@ -142,10 +144,12 @@ require("../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js");
142
144
  require("../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");
143
145
  require("../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");
144
146
  require("../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");
147
+ require("../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");
145
148
  require("../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");
146
149
  require("../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");
147
150
  require("../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");
148
151
  require("../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");
152
+ require("../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");
149
153
  require("../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");
150
154
  require("../../../../_virtual/runtime.cjs.js");
151
155
  require("../../../../_virtual/semver.cjs.js");
@@ -167,10 +171,14 @@ require("../EntityPath/SegmentProvider.cjs.js");
167
171
  require("../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");
168
172
  require("../Watchers/Watchers.cjs.js");
169
173
  require("../ProjectTableSettings/ProjectTableSettings.cjs.js");
174
+ require("../Powerpack/PowerpackButton.cjs.js");
175
+ require("../Powerpack/PricingLink.cjs.js");
176
+ require("../Powerpack/PowerpackDialog.styled.cjs.js");
170
177
  require("../SettingsPanel/SettingsPanel.cjs.js");
171
178
  require("../SettingsPanel/SettingsPanelItemTemplate.cjs.js");
172
179
  require("../AttributeEditor/components/MinMaxField.cjs.js");
173
180
  require("../EnumEditor/EnumEditor.styled.cjs.js");
181
+ require("../SearchFilter/filterDates.cjs.js");
174
182
  const EntityThumbnailUploader = ({
175
183
  children = [],
176
184
  entityType,
@@ -1 +1 @@
1
- {"version":3,"file":"EntityThumbnailUploader.cjs.js","sources":["../../../../../src/components/EntityThumbnailUploader/EntityThumbnailUploader.tsx"],"sourcesContent":["import { useRef, useState } from 'react'\nimport clsx from 'clsx'\n\nimport { ThumbnailUploader } from '@shared/components'\nimport { ThumbnailWrapper } from '@shared/containers'\nimport { useUpdateEntitiesMutation } from '@shared/api'\nimport * as Styled from './EntityThumbnailUploader.styled'\nimport { ThumbnailUploadProvider } from '../../context/ThumbnailUploaderContext'\n\ntype Operation = {\n id: string\n projectName: string\n currentAssignees: any[]\n data: { updatedAt: string }\n}\nexport type EntityThumbnailUploaderProps = {\n entityType: string\n entities: any[]\n isCompact?: boolean\n projectName: any\n children?: JSX.Element | JSX.Element[]\n onUploaded?: (operations: Operation[]) => void\n resetFileUploadState?: () => void\n}\n\nexport const EntityThumbnailUploader = ({\n children = [],\n entityType,\n entities = [],\n isCompact = false,\n onUploaded,\n}: EntityThumbnailUploaderProps) => {\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n const [isUploadingFile, setIsUploadingFile] = useState(false)\n\n const [updateEntities] = useUpdateEntitiesMutation()\n\n const handleThumbnailUpload = async (thumbnails: any[] = []) => {\n // always set isDraggingFile to false\n setIsDraggingFile(false)\n setIsUploadingFile(false)\n\n // check something was actually uploaded\n if (!entities.length) {\n return\n }\n\n // patching the updatedAt will force a refresh of the thumbnail url\n const newUpdatedAt = new Date().toISOString()\n\n let operations: Operation[] = []\n let versionPatches = []\n\n for (const entity of thumbnails) {\n const entityToPatch = entities.find((e) => e.id === entity.id)\n if (!entityToPatch) continue\n const thumbnailId = entity.thumbnailId\n const currentAssignees = entity.users || []\n\n operations.push({\n id: entityToPatch.id,\n projectName: entityToPatch.projectName,\n data: { updatedAt: newUpdatedAt },\n currentAssignees,\n })\n\n const versionPatch = {\n productId: entityToPatch.productId,\n versionUpdatedAt: newUpdatedAt,\n versionThumbnailId: thumbnailId,\n }\n\n versionPatches.push(versionPatch)\n }\n\n try {\n await updateEntities({ operations, entityType })\n onUploaded && onUploaded(operations)\n } catch (error) {\n console.error('Error uploading thumbnail:', error)\n }\n }\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n return (\n <ThumbnailUploadProvider\n entities={entities}\n handleThumbnailUpload={handleThumbnailUpload}\n inputRef={inputRef}\n >\n <Styled.DragAndDropWrapper\n className={clsx({ isCompact })}\n onDragEnter={() => setIsDraggingFile(true)}\n >\n <ThumbnailWrapper>\n <div>{children}</div>\n </ThumbnailWrapper>\n <ThumbnailUploader\n entities={entities}\n inputRef={inputRef}\n className={clsx('thumbnail-uploader', { hidden: !isDraggingFile && !isUploadingFile })}\n onUploadInProgress={() => setIsUploadingFile(true)}\n onFinish={handleThumbnailUpload}\n onDragLeave={() => setIsDraggingFile(false)}\n onDragOver={(e) => e.preventDefault()}\n />\n </Styled.DragAndDropWrapper>\n </ThumbnailUploadProvider>\n )\n}\n"],"names":["useState","useUpdateEntitiesMutation","useRef","jsx","ThumbnailUploadProvider","jsxs","Styled.DragAndDropWrapper","ThumbnailWrapper","ThumbnailUploader"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBO,MAAM,0BAA0B,CAAC;AAAA,EACtC,WAAW,CAAC;AAAA,EACZ;AAAA,EACA,WAAW,CAAC;AAAA,EACZ,YAAY;AAAA,EACZ;AACF,MAAoC;AAClC,QAAM,CAAC,gBAAgB,iBAAiB,IAAIA,MAAAA,SAAS,KAAK;AAC1D,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,MAAAA,SAAS,KAAK;AAEtD,QAAA,CAAC,cAAc,IAAIC,uCAA0B;AAEnD,QAAM,wBAAwB,OAAO,aAAoB,OAAO;AAE9D,sBAAkB,KAAK;AACvB,uBAAmB,KAAK;AAGpB,QAAA,CAAC,SAAS,QAAQ;AACpB;AAAA,IAAA;AAIF,UAAM,gBAAe,oBAAI,KAAK,GAAE,YAAY;AAE5C,QAAI,aAA0B,CAAC;AAG/B,eAAW,UAAU,YAAY;AACzB,YAAA,gBAAgB,SAAS,KAAK,CAAC,MAAM,EAAE,OAAO,OAAO,EAAE;AAC7D,UAAI,CAAC,cAAe;AACA,aAAO;AACrB,YAAA,mBAAmB,OAAO,SAAS,CAAC;AAE1C,iBAAW,KAAK;AAAA,QACd,IAAI,cAAc;AAAA,QAClB,aAAa,cAAc;AAAA,QAC3B,MAAM,EAAE,WAAW,aAAa;AAAA,QAChC;AAAA,MAAA,CACD;AAEoB,OAAA;AAAA,QACnB,WAAW,cAAc;AAAA,MAG3B;AAAA,IAEgC;AAG9B,QAAA;AACF,YAAM,eAAe,EAAE,YAAY,YAAY;AAC/C,oBAAc,WAAW,UAAU;AAAA,aAC5B,OAAO;AACN,cAAA,MAAM,8BAA8B,KAAK;AAAA,IAAA;AAAA,EAErD;AAEM,QAAA,WAAWC,aAAyB,IAAI;AAG5C,SAAAC,2BAAA,kBAAA;AAAA,IAACC,yBAAA;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MAEA,UAAAC,2BAAA,kBAAA;AAAA,QAACC,+BAAO;AAAA,QAAP;AAAA,UACC,WAAW,KAAK,EAAE,WAAW;AAAA,UAC7B,aAAa,MAAM,kBAAkB,IAAI;AAAA,UAEzC,UAAA;AAAA,YAAAH,iDAACI,0BAAAA,kBACC,EAAA,UAAAJ,2BAAAA,kBAAAA,IAAC,OAAK,EAAA,SAAS,CAAA,GACjB;AAAA,YACAA,2BAAA,kBAAA;AAAA,cAACK,kBAAA;AAAA,cAAA;AAAA,gBACC;AAAA,gBACA;AAAA,gBACA,WAAW,KAAK,sBAAsB,EAAE,QAAQ,CAAC,kBAAkB,CAAC,iBAAiB;AAAA,gBACrF,oBAAoB,MAAM,mBAAmB,IAAI;AAAA,gBACjD,UAAU;AAAA,gBACV,aAAa,MAAM,kBAAkB,KAAK;AAAA,gBAC1C,YAAY,CAAC,MAAM,EAAE,eAAe;AAAA,cAAA;AAAA,YAAA;AAAA,UACtC;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;;"}
1
+ {"version":3,"file":"EntityThumbnailUploader.cjs.js","sources":["../../../../../src/components/EntityThumbnailUploader/EntityThumbnailUploader.tsx"],"sourcesContent":["import { useRef, useState } from 'react'\nimport clsx from 'clsx'\n\nimport { ThumbnailUploader } from '@shared/components'\nimport { ThumbnailWrapper } from '@shared/containers'\nimport { useUpdateEntitiesMutation } from '@shared/api'\nimport * as Styled from './EntityThumbnailUploader.styled'\nimport { ThumbnailUploadProvider } from '../../context/ThumbnailUploaderContext'\n\ntype Operation = {\n id: string\n projectName: string\n currentAssignees: any[]\n data: { updatedAt: string }\n}\nexport type EntityThumbnailUploaderProps = {\n entityType: string\n entities: any[]\n isCompact?: boolean\n projectName: any\n children?: JSX.Element | JSX.Element[]\n onUploaded?: (operations: Operation[]) => void\n resetFileUploadState?: () => void\n}\n\nexport const EntityThumbnailUploader = ({\n children = [],\n entityType,\n entities = [],\n isCompact = false,\n onUploaded,\n}: EntityThumbnailUploaderProps) => {\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n const [isUploadingFile, setIsUploadingFile] = useState(false)\n\n const [updateEntities] = useUpdateEntitiesMutation()\n\n const handleThumbnailUpload = async (thumbnails: any[] = []) => {\n // always set isDraggingFile to false\n setIsDraggingFile(false)\n setIsUploadingFile(false)\n\n // check something was actually uploaded\n if (!entities.length) {\n return\n }\n\n // patching the updatedAt will force a refresh of the thumbnail url\n const newUpdatedAt = new Date().toISOString()\n\n let operations: Operation[] = []\n let versionPatches = []\n\n for (const entity of thumbnails) {\n const entityToPatch = entities.find((e) => e.id === entity.id)\n if (!entityToPatch) continue\n const thumbnailId = entity.thumbnailId\n const currentAssignees = entity.users || []\n\n operations.push({\n id: entityToPatch.id,\n projectName: entityToPatch.projectName,\n data: { updatedAt: newUpdatedAt },\n currentAssignees,\n })\n\n const versionPatch = {\n productId: entityToPatch.productId,\n versionUpdatedAt: newUpdatedAt,\n versionThumbnailId: thumbnailId,\n }\n\n versionPatches.push(versionPatch)\n }\n\n try {\n await updateEntities({ operations, entityType })\n onUploaded && onUploaded(operations)\n } catch (error) {\n console.error('Error uploading thumbnail:', error)\n }\n }\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n return (\n <ThumbnailUploadProvider\n entities={entities}\n handleThumbnailUpload={handleThumbnailUpload}\n inputRef={inputRef}\n >\n <Styled.DragAndDropWrapper\n className={clsx({ isCompact })}\n onDragEnter={() => setIsDraggingFile(true)}\n >\n <ThumbnailWrapper>\n <div>{children}</div>\n </ThumbnailWrapper>\n <ThumbnailUploader\n entities={entities}\n inputRef={inputRef}\n className={clsx('thumbnail-uploader', { hidden: !isDraggingFile && !isUploadingFile })}\n onUploadInProgress={() => setIsUploadingFile(true)}\n onFinish={handleThumbnailUpload}\n onDragLeave={() => setIsDraggingFile(false)}\n onDragOver={(e) => e.preventDefault()}\n />\n </Styled.DragAndDropWrapper>\n </ThumbnailUploadProvider>\n )\n}\n"],"names":["useState","useUpdateEntitiesMutation","useRef","jsx","ThumbnailUploadProvider","jsxs","Styled.DragAndDropWrapper","ThumbnailWrapper","ThumbnailUploader"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBO,MAAM,0BAA0B,CAAC;AAAA,EACtC,WAAW,CAAC;AAAA,EACZ;AAAA,EACA,WAAW,CAAC;AAAA,EACZ,YAAY;AAAA,EACZ;AACF,MAAoC;AAClC,QAAM,CAAC,gBAAgB,iBAAiB,IAAIA,MAAAA,SAAS,KAAK;AAC1D,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,MAAAA,SAAS,KAAK;AAEtD,QAAA,CAAC,cAAc,IAAIC,uCAA0B;AAEnD,QAAM,wBAAwB,OAAO,aAAoB,OAAO;AAE9D,sBAAkB,KAAK;AACvB,uBAAmB,KAAK;AAGpB,QAAA,CAAC,SAAS,QAAQ;AACpB;AAAA,IAAA;AAIF,UAAM,gBAAe,oBAAI,KAAK,GAAE,YAAY;AAE5C,QAAI,aAA0B,CAAC;AAG/B,eAAW,UAAU,YAAY;AACzB,YAAA,gBAAgB,SAAS,KAAK,CAAC,MAAM,EAAE,OAAO,OAAO,EAAE;AAC7D,UAAI,CAAC,cAAe;AACA,aAAO;AACrB,YAAA,mBAAmB,OAAO,SAAS,CAAC;AAE1C,iBAAW,KAAK;AAAA,QACd,IAAI,cAAc;AAAA,QAClB,aAAa,cAAc;AAAA,QAC3B,MAAM,EAAE,WAAW,aAAa;AAAA,QAChC;AAAA,MAAA,CACD;AAEoB,OAAA;AAAA,QACnB,WAAW,cAAc;AAAA,MAG3B;AAAA,IAEgC;AAG9B,QAAA;AACF,YAAM,eAAe,EAAE,YAAY,YAAY;AAC/C,oBAAc,WAAW,UAAU;AAAA,aAC5B,OAAO;AACN,cAAA,MAAM,8BAA8B,KAAK;AAAA,IAAA;AAAA,EAErD;AAEM,QAAA,WAAWC,aAAyB,IAAI;AAG5C,SAAAC,2BAAA,kBAAA;AAAA,IAACC,yBAAA;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MAEA,UAAAC,2BAAA,kBAAA;AAAA,QAACC,+BAAO;AAAA,QAAP;AAAA,UACC,WAAW,KAAK,EAAE,WAAW;AAAA,UAC7B,aAAa,MAAM,kBAAkB,IAAI;AAAA,UAEzC,UAAA;AAAA,YAAAH,iDAACI,0BAAAA,kBACC,EAAA,UAAAJ,2BAAAA,kBAAAA,IAAC,OAAK,EAAA,SAAS,CAAA,GACjB;AAAA,YACAA,2BAAA,kBAAA;AAAA,cAACK,kBAAA;AAAA,cAAA;AAAA,gBACC;AAAA,gBACA;AAAA,gBACA,WAAW,KAAK,sBAAsB,EAAE,QAAQ,CAAC,kBAAkB,CAAC,iBAAiB;AAAA,gBACrF,oBAAoB,MAAM,mBAAmB,IAAI;AAAA,gBACjD,UAAU;AAAA,gBACV,aAAa,MAAM,kBAAkB,KAAK;AAAA,gBAC1C,YAAY,CAAC,MAAM,EAAE,eAAe;AAAA,cAAA;AAAA,YAAA;AAAA,UACtC;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;;"}
@@ -89,6 +89,7 @@ import "react-dom";
89
89
  import "../../context/pip/PiPWrapper.es.js";
90
90
  import "../../context/AddonProjectContext.es.js";
91
91
  import "../../context/AddonContext.es.js";
92
+ import "../../context/PowerpackContext.es.js";
92
93
  import "../ReviewableCard/ReviewableCard.es.js";
93
94
  import "../ReviewableProgressCard/ReviewableProgressCard.styled.es.js";
94
95
  import "../FileThumbnail/FileThumbnail.es.js";
@@ -132,6 +133,7 @@ import "../../containers/ProjectTreeTable/context/CellEditingContext.es.js";
132
133
  import "../../containers/ProjectTreeTable/context/ClipboardContext.es.js";
133
134
  import "../../containers/ProjectTreeTable/context/ProjectTableSelectionContext.es.js";
134
135
  import "../../containers/ProjectTreeTable/context/ProjectDataContext.es.js";
136
+ import "../../containers/ProjectTreeTable/context/ProjectTableModulesContext.es.js";
135
137
  import "@tanstack/react-table";
136
138
  import "../../containers/ProjectTreeTable/widgets/CollapsedWidget.es.js";
137
139
  import "../../containers/ProjectTreeTable/widgets/DateWidget.es.js";
@@ -140,10 +142,12 @@ import "../../containers/ProjectTreeTable/widgets/TextWidget.es.js";
140
142
  import "../../containers/ProjectTreeTable/widgets/BooleanWidget.es.js";
141
143
  import "../../containers/ProjectTreeTable/widgets/CellWidget.es.js";
142
144
  import "../../containers/ProjectTreeTable/widgets/EntityNameWidget.es.js";
145
+ import "../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js";
143
146
  import "../../containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js";
144
147
  import "../../containers/ProjectTreeTable/ProjectTreeTable.styled.es.js";
145
148
  import "../../containers/ProjectTreeTable/components/SelectionCell.es.js";
146
149
  import "../../containers/ProjectTreeTable/components/RowSelectionHeader.es.js";
150
+ import "../../containers/ProjectTreeTable/widgets/LoadMoreWidget.es.js";
147
151
  import "../../containers/DetailsPanel/DetailsPanel.styled.es.js";
148
152
  import "../../../../_virtual/runtime.es.js";
149
153
  import "../../../../_virtual/semver.es.js";
@@ -165,10 +169,14 @@ import "../EntityPath/SegmentProvider.es.js";
165
169
  import "../DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js";
166
170
  import "../Watchers/Watchers.es.js";
167
171
  import "../ProjectTableSettings/ProjectTableSettings.es.js";
172
+ import "../Powerpack/PowerpackButton.es.js";
173
+ import "../Powerpack/PricingLink.es.js";
174
+ import "../Powerpack/PowerpackDialog.styled.es.js";
168
175
  import "../SettingsPanel/SettingsPanel.es.js";
169
176
  import "../SettingsPanel/SettingsPanelItemTemplate.es.js";
170
177
  import "../AttributeEditor/components/MinMaxField.es.js";
171
178
  import "../EnumEditor/EnumEditor.styled.es.js";
179
+ import "../SearchFilter/filterDates.es.js";
172
180
  const EntityThumbnailUploader = ({
173
181
  children = [],
174
182
  entityType,
@@ -1 +1 @@
1
- {"version":3,"file":"EntityThumbnailUploader.es.js","sources":["../../../../../src/components/EntityThumbnailUploader/EntityThumbnailUploader.tsx"],"sourcesContent":["import { useRef, useState } from 'react'\nimport clsx from 'clsx'\n\nimport { ThumbnailUploader } from '@shared/components'\nimport { ThumbnailWrapper } from '@shared/containers'\nimport { useUpdateEntitiesMutation } from '@shared/api'\nimport * as Styled from './EntityThumbnailUploader.styled'\nimport { ThumbnailUploadProvider } from '../../context/ThumbnailUploaderContext'\n\ntype Operation = {\n id: string\n projectName: string\n currentAssignees: any[]\n data: { updatedAt: string }\n}\nexport type EntityThumbnailUploaderProps = {\n entityType: string\n entities: any[]\n isCompact?: boolean\n projectName: any\n children?: JSX.Element | JSX.Element[]\n onUploaded?: (operations: Operation[]) => void\n resetFileUploadState?: () => void\n}\n\nexport const EntityThumbnailUploader = ({\n children = [],\n entityType,\n entities = [],\n isCompact = false,\n onUploaded,\n}: EntityThumbnailUploaderProps) => {\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n const [isUploadingFile, setIsUploadingFile] = useState(false)\n\n const [updateEntities] = useUpdateEntitiesMutation()\n\n const handleThumbnailUpload = async (thumbnails: any[] = []) => {\n // always set isDraggingFile to false\n setIsDraggingFile(false)\n setIsUploadingFile(false)\n\n // check something was actually uploaded\n if (!entities.length) {\n return\n }\n\n // patching the updatedAt will force a refresh of the thumbnail url\n const newUpdatedAt = new Date().toISOString()\n\n let operations: Operation[] = []\n let versionPatches = []\n\n for (const entity of thumbnails) {\n const entityToPatch = entities.find((e) => e.id === entity.id)\n if (!entityToPatch) continue\n const thumbnailId = entity.thumbnailId\n const currentAssignees = entity.users || []\n\n operations.push({\n id: entityToPatch.id,\n projectName: entityToPatch.projectName,\n data: { updatedAt: newUpdatedAt },\n currentAssignees,\n })\n\n const versionPatch = {\n productId: entityToPatch.productId,\n versionUpdatedAt: newUpdatedAt,\n versionThumbnailId: thumbnailId,\n }\n\n versionPatches.push(versionPatch)\n }\n\n try {\n await updateEntities({ operations, entityType })\n onUploaded && onUploaded(operations)\n } catch (error) {\n console.error('Error uploading thumbnail:', error)\n }\n }\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n return (\n <ThumbnailUploadProvider\n entities={entities}\n handleThumbnailUpload={handleThumbnailUpload}\n inputRef={inputRef}\n >\n <Styled.DragAndDropWrapper\n className={clsx({ isCompact })}\n onDragEnter={() => setIsDraggingFile(true)}\n >\n <ThumbnailWrapper>\n <div>{children}</div>\n </ThumbnailWrapper>\n <ThumbnailUploader\n entities={entities}\n inputRef={inputRef}\n className={clsx('thumbnail-uploader', { hidden: !isDraggingFile && !isUploadingFile })}\n onUploadInProgress={() => setIsUploadingFile(true)}\n onFinish={handleThumbnailUpload}\n onDragLeave={() => setIsDraggingFile(false)}\n onDragOver={(e) => e.preventDefault()}\n />\n </Styled.DragAndDropWrapper>\n </ThumbnailUploadProvider>\n )\n}\n"],"names":["jsx","jsxs","Styled.DragAndDropWrapper"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBO,MAAM,0BAA0B,CAAC;AAAA,EACtC,WAAW,CAAC;AAAA,EACZ;AAAA,EACA,WAAW,CAAC;AAAA,EACZ,YAAY;AAAA,EACZ;AACF,MAAoC;AAClC,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,KAAK;AAC1D,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,KAAK;AAEtD,QAAA,CAAC,cAAc,IAAI,0BAA0B;AAEnD,QAAM,wBAAwB,OAAO,aAAoB,OAAO;AAE9D,sBAAkB,KAAK;AACvB,uBAAmB,KAAK;AAGpB,QAAA,CAAC,SAAS,QAAQ;AACpB;AAAA,IAAA;AAIF,UAAM,gBAAe,oBAAI,KAAK,GAAE,YAAY;AAE5C,QAAI,aAA0B,CAAC;AAG/B,eAAW,UAAU,YAAY;AACzB,YAAA,gBAAgB,SAAS,KAAK,CAAC,MAAM,EAAE,OAAO,OAAO,EAAE;AAC7D,UAAI,CAAC,cAAe;AACA,aAAO;AACrB,YAAA,mBAAmB,OAAO,SAAS,CAAC;AAE1C,iBAAW,KAAK;AAAA,QACd,IAAI,cAAc;AAAA,QAClB,aAAa,cAAc;AAAA,QAC3B,MAAM,EAAE,WAAW,aAAa;AAAA,QAChC;AAAA,MAAA,CACD;AAEoB,OAAA;AAAA,QACnB,WAAW,cAAc;AAAA,MAG3B;AAAA,IAEgC;AAG9B,QAAA;AACF,YAAM,eAAe,EAAE,YAAY,YAAY;AAC/C,oBAAc,WAAW,UAAU;AAAA,aAC5B,OAAO;AACN,cAAA,MAAM,8BAA8B,KAAK;AAAA,IAAA;AAAA,EAErD;AAEM,QAAA,WAAW,OAAyB,IAAI;AAG5C,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MAEA,UAAAC,kCAAA;AAAA,QAACC;AAAAA,QAAA;AAAA,UACC,WAAW,KAAK,EAAE,WAAW;AAAA,UAC7B,aAAa,MAAM,kBAAkB,IAAI;AAAA,UAEzC,UAAA;AAAA,YAAAF,sCAAC,kBACC,EAAA,UAAAA,kCAAAA,IAAC,OAAK,EAAA,SAAS,CAAA,GACjB;AAAA,YACAA,kCAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC;AAAA,gBACA;AAAA,gBACA,WAAW,KAAK,sBAAsB,EAAE,QAAQ,CAAC,kBAAkB,CAAC,iBAAiB;AAAA,gBACrF,oBAAoB,MAAM,mBAAmB,IAAI;AAAA,gBACjD,UAAU;AAAA,gBACV,aAAa,MAAM,kBAAkB,KAAK;AAAA,gBAC1C,YAAY,CAAC,MAAM,EAAE,eAAe;AAAA,cAAA;AAAA,YAAA;AAAA,UACtC;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"EntityThumbnailUploader.es.js","sources":["../../../../../src/components/EntityThumbnailUploader/EntityThumbnailUploader.tsx"],"sourcesContent":["import { useRef, useState } from 'react'\nimport clsx from 'clsx'\n\nimport { ThumbnailUploader } from '@shared/components'\nimport { ThumbnailWrapper } from '@shared/containers'\nimport { useUpdateEntitiesMutation } from '@shared/api'\nimport * as Styled from './EntityThumbnailUploader.styled'\nimport { ThumbnailUploadProvider } from '../../context/ThumbnailUploaderContext'\n\ntype Operation = {\n id: string\n projectName: string\n currentAssignees: any[]\n data: { updatedAt: string }\n}\nexport type EntityThumbnailUploaderProps = {\n entityType: string\n entities: any[]\n isCompact?: boolean\n projectName: any\n children?: JSX.Element | JSX.Element[]\n onUploaded?: (operations: Operation[]) => void\n resetFileUploadState?: () => void\n}\n\nexport const EntityThumbnailUploader = ({\n children = [],\n entityType,\n entities = [],\n isCompact = false,\n onUploaded,\n}: EntityThumbnailUploaderProps) => {\n const [isDraggingFile, setIsDraggingFile] = useState(false)\n const [isUploadingFile, setIsUploadingFile] = useState(false)\n\n const [updateEntities] = useUpdateEntitiesMutation()\n\n const handleThumbnailUpload = async (thumbnails: any[] = []) => {\n // always set isDraggingFile to false\n setIsDraggingFile(false)\n setIsUploadingFile(false)\n\n // check something was actually uploaded\n if (!entities.length) {\n return\n }\n\n // patching the updatedAt will force a refresh of the thumbnail url\n const newUpdatedAt = new Date().toISOString()\n\n let operations: Operation[] = []\n let versionPatches = []\n\n for (const entity of thumbnails) {\n const entityToPatch = entities.find((e) => e.id === entity.id)\n if (!entityToPatch) continue\n const thumbnailId = entity.thumbnailId\n const currentAssignees = entity.users || []\n\n operations.push({\n id: entityToPatch.id,\n projectName: entityToPatch.projectName,\n data: { updatedAt: newUpdatedAt },\n currentAssignees,\n })\n\n const versionPatch = {\n productId: entityToPatch.productId,\n versionUpdatedAt: newUpdatedAt,\n versionThumbnailId: thumbnailId,\n }\n\n versionPatches.push(versionPatch)\n }\n\n try {\n await updateEntities({ operations, entityType })\n onUploaded && onUploaded(operations)\n } catch (error) {\n console.error('Error uploading thumbnail:', error)\n }\n }\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n return (\n <ThumbnailUploadProvider\n entities={entities}\n handleThumbnailUpload={handleThumbnailUpload}\n inputRef={inputRef}\n >\n <Styled.DragAndDropWrapper\n className={clsx({ isCompact })}\n onDragEnter={() => setIsDraggingFile(true)}\n >\n <ThumbnailWrapper>\n <div>{children}</div>\n </ThumbnailWrapper>\n <ThumbnailUploader\n entities={entities}\n inputRef={inputRef}\n className={clsx('thumbnail-uploader', { hidden: !isDraggingFile && !isUploadingFile })}\n onUploadInProgress={() => setIsUploadingFile(true)}\n onFinish={handleThumbnailUpload}\n onDragLeave={() => setIsDraggingFile(false)}\n onDragOver={(e) => e.preventDefault()}\n />\n </Styled.DragAndDropWrapper>\n </ThumbnailUploadProvider>\n )\n}\n"],"names":["jsx","jsxs","Styled.DragAndDropWrapper"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBO,MAAM,0BAA0B,CAAC;AAAA,EACtC,WAAW,CAAC;AAAA,EACZ;AAAA,EACA,WAAW,CAAC;AAAA,EACZ,YAAY;AAAA,EACZ;AACF,MAAoC;AAClC,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,KAAK;AAC1D,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,KAAK;AAEtD,QAAA,CAAC,cAAc,IAAI,0BAA0B;AAEnD,QAAM,wBAAwB,OAAO,aAAoB,OAAO;AAE9D,sBAAkB,KAAK;AACvB,uBAAmB,KAAK;AAGpB,QAAA,CAAC,SAAS,QAAQ;AACpB;AAAA,IAAA;AAIF,UAAM,gBAAe,oBAAI,KAAK,GAAE,YAAY;AAE5C,QAAI,aAA0B,CAAC;AAG/B,eAAW,UAAU,YAAY;AACzB,YAAA,gBAAgB,SAAS,KAAK,CAAC,MAAM,EAAE,OAAO,OAAO,EAAE;AAC7D,UAAI,CAAC,cAAe;AACA,aAAO;AACrB,YAAA,mBAAmB,OAAO,SAAS,CAAC;AAE1C,iBAAW,KAAK;AAAA,QACd,IAAI,cAAc;AAAA,QAClB,aAAa,cAAc;AAAA,QAC3B,MAAM,EAAE,WAAW,aAAa;AAAA,QAChC;AAAA,MAAA,CACD;AAEoB,OAAA;AAAA,QACnB,WAAW,cAAc;AAAA,MAG3B;AAAA,IAEgC;AAG9B,QAAA;AACF,YAAM,eAAe,EAAE,YAAY,YAAY;AAC/C,oBAAc,WAAW,UAAU;AAAA,aAC5B,OAAO;AACN,cAAA,MAAM,8BAA8B,KAAK;AAAA,IAAA;AAAA,EAErD;AAEM,QAAA,WAAW,OAAyB,IAAI;AAG5C,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MAEA,UAAAC,kCAAA;AAAA,QAACC;AAAAA,QAAA;AAAA,UACC,WAAW,KAAK,EAAE,WAAW;AAAA,UAC7B,aAAa,MAAM,kBAAkB,IAAI;AAAA,UAEzC,UAAA;AAAA,YAAAF,sCAAC,kBACC,EAAA,UAAAA,kCAAAA,IAAC,OAAK,EAAA,SAAS,CAAA,GACjB;AAAA,YACAA,kCAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC;AAAA,gBACA;AAAA,gBACA,WAAW,KAAK,sBAAsB,EAAE,QAAQ,CAAC,kBAAkB,CAAC,iBAAiB;AAAA,gBACrF,oBAAoB,MAAM,mBAAmB,IAAI;AAAA,gBACjD,UAAU;AAAA,gBACV,aAAa,MAAM,kBAAkB,KAAK;AAAA,gBAC1C,YAAY,CAAC,MAAM,EAAE,eAAe;AAAA,cAAA;AAAA,YAAA;AAAA,UACtC;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("../../../../_virtual/jsx-runtime.cjs.js");
4
+ require("../../context/RemoteModulesContext.cjs.js");
5
+ require("../../context/DetailsPanelContext.cjs.js");
6
+ require("../../context/ThumbnailUploaderContext.cjs.js");
7
+ require("../../context/SettingsPanelContext.cjs.js");
8
+ require("../../context/pip/PiPProvider.cjs.js");
9
+ require("react-dom");
10
+ require("../../context/pip/PiPWrapper.cjs.js");
11
+ require("../../context/AddonProjectContext.cjs.js");
12
+ require("../../context/AddonContext.cjs.js");
13
+ const PowerpackContext = require("../../context/PowerpackContext.cjs.js");
14
+ const ayonReactComponents = require("@ynput/ayon-react-components");
15
+ const clsx = require("clsx");
16
+ const React = require("react");
17
+ const styled = require("styled-components");
18
+ const StyledButton = styled(ayonReactComponents.Button)`
19
+ background-color: unset;
20
+ color: var(--md-sys-color-tertiary);
21
+ transition: color 0.2s, background-color 0.2s, opacity 0.2s;
22
+ border-radius: var(--border-radius-xl);
23
+
24
+ &.filled {
25
+ background-color: var(--md-sys-color-tertiary);
26
+ color: var(--md-sys-color-on-tertiary);
27
+ }
28
+
29
+ &.border {
30
+ border: 1px solid var(--md-sys-color-tertiary);
31
+ }
32
+
33
+ &:hover {
34
+ color: var(--md-sys-color-on-tertiary);
35
+ }
36
+
37
+ .icon {
38
+ font-variation-settings: 'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 20;
39
+ }
40
+ `;
41
+ const PowerpackButton = React.forwardRef(
42
+ ({ feature, filled, ...props }, ref) => {
43
+ const { setPowerpackDialog } = PowerpackContext.usePowerpack();
44
+ const handleOnClick = (e) => {
45
+ var _a;
46
+ setPowerpackDialog(feature);
47
+ (_a = props.onClick) == null ? void 0 : _a.call(props, e);
48
+ };
49
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
50
+ StyledButton,
51
+ {
52
+ variant: props.variant || "tertiary",
53
+ icon: props.icon || "bolt",
54
+ ...props,
55
+ ref,
56
+ onClick: handleOnClick,
57
+ className: clsx("cloud-button", props.className || "", {
58
+ border: !!props.children,
59
+ filled
60
+ }),
61
+ "data-tooltip": `Power feature`,
62
+ "data-tooltip-delay": 0,
63
+ children: props.children
64
+ }
65
+ );
66
+ }
67
+ );
68
+ exports.PowerpackButton = PowerpackButton;
69
+ //# sourceMappingURL=PowerpackButton.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PowerpackButton.cjs.js","sources":["../../../../../src/components/Powerpack/PowerpackButton.tsx"],"sourcesContent":["import { PowerpackFeature, usePowerpack } from '@shared/context'\nimport { Button, ButtonProps } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport { forwardRef, MouseEvent } from 'react'\nimport styled from 'styled-components'\n\nconst StyledButton = styled(Button)`\n background-color: unset;\n color: var(--md-sys-color-tertiary);\n transition: color 0.2s, background-color 0.2s, opacity 0.2s;\n border-radius: var(--border-radius-xl);\n\n &.filled {\n background-color: var(--md-sys-color-tertiary);\n color: var(--md-sys-color-on-tertiary);\n }\n\n &.border {\n border: 1px solid var(--md-sys-color-tertiary);\n }\n\n &:hover {\n color: var(--md-sys-color-on-tertiary);\n }\n\n .icon {\n font-variation-settings: 'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 20;\n }\n`\n\nexport interface PowerpackButtonProps extends ButtonProps {\n feature: PowerpackFeature\n filled?: boolean\n}\n\nexport const PowerpackButton = forwardRef<HTMLButtonElement, PowerpackButtonProps>(\n ({ feature, filled, ...props }, ref) => {\n const { setPowerpackDialog } = usePowerpack()\n\n const handleOnClick = (e: MouseEvent<HTMLButtonElement>) => {\n // open a dialog to subscribe to Ynput Cloud\n setPowerpackDialog(feature)\n // Call the original onClick handler\n props.onClick?.(e)\n }\n\n return (\n <StyledButton\n variant={props.variant || 'tertiary'}\n icon={props.icon || 'bolt'}\n {...props}\n ref={ref}\n onClick={handleOnClick}\n className={clsx('cloud-button', props.className || '', {\n border: !!props.children,\n filled,\n })}\n data-tooltip={`Power feature`}\n data-tooltip-delay={0}\n >\n {props.children}\n </StyledButton>\n )\n },\n)\n"],"names":["Button","forwardRef","usePowerpack","jsx"],"mappings":";;;;;;;;;;;;;;;;;AAMA,MAAM,eAAe,OAAOA,0BAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6B3B,MAAM,kBAAkBC,MAAA;AAAA,EAC7B,CAAC,EAAE,SAAS,QAAQ,GAAG,MAAA,GAAS,QAAQ;AAChC,UAAA,EAAE,mBAAmB,IAAIC,8BAAa;AAEtC,UAAA,gBAAgB,CAAC,MAAqC;;AAE1D,yBAAmB,OAAO;AAE1B,kBAAM,YAAN,+BAAgB;AAAA,IAClB;AAGE,WAAAC,2BAAA,kBAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,MAAM,WAAW;AAAA,QAC1B,MAAM,MAAM,QAAQ;AAAA,QACnB,GAAG;AAAA,QACJ;AAAA,QACA,SAAS;AAAA,QACT,WAAW,KAAK,gBAAgB,MAAM,aAAa,IAAI;AAAA,UACrD,QAAQ,CAAC,CAAC,MAAM;AAAA,UAChB;AAAA,QAAA,CACD;AAAA,QACD,gBAAc;AAAA,QACd,sBAAoB;AAAA,QAEnB,UAAM,MAAA;AAAA,MAAA;AAAA,IACT;AAAA,EAAA;AAGN;;"}
@@ -0,0 +1,69 @@
1
+ import { j as jsxRuntimeExports } from "../../../../_virtual/jsx-runtime.es.js";
2
+ import "../../context/RemoteModulesContext.es.js";
3
+ import "../../context/DetailsPanelContext.es.js";
4
+ import "../../context/ThumbnailUploaderContext.es.js";
5
+ import "../../context/SettingsPanelContext.es.js";
6
+ import "../../context/pip/PiPProvider.es.js";
7
+ import "react-dom";
8
+ import "../../context/pip/PiPWrapper.es.js";
9
+ import "../../context/AddonProjectContext.es.js";
10
+ import "../../context/AddonContext.es.js";
11
+ import { usePowerpack } from "../../context/PowerpackContext.es.js";
12
+ import { Button } from "@ynput/ayon-react-components";
13
+ import clsx from "clsx";
14
+ import { forwardRef } from "react";
15
+ import styled from "styled-components";
16
+ const StyledButton = styled(Button)`
17
+ background-color: unset;
18
+ color: var(--md-sys-color-tertiary);
19
+ transition: color 0.2s, background-color 0.2s, opacity 0.2s;
20
+ border-radius: var(--border-radius-xl);
21
+
22
+ &.filled {
23
+ background-color: var(--md-sys-color-tertiary);
24
+ color: var(--md-sys-color-on-tertiary);
25
+ }
26
+
27
+ &.border {
28
+ border: 1px solid var(--md-sys-color-tertiary);
29
+ }
30
+
31
+ &:hover {
32
+ color: var(--md-sys-color-on-tertiary);
33
+ }
34
+
35
+ .icon {
36
+ font-variation-settings: 'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 20;
37
+ }
38
+ `;
39
+ const PowerpackButton = forwardRef(
40
+ ({ feature, filled, ...props }, ref) => {
41
+ const { setPowerpackDialog } = usePowerpack();
42
+ const handleOnClick = (e) => {
43
+ var _a;
44
+ setPowerpackDialog(feature);
45
+ (_a = props.onClick) == null ? void 0 : _a.call(props, e);
46
+ };
47
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
48
+ StyledButton,
49
+ {
50
+ variant: props.variant || "tertiary",
51
+ icon: props.icon || "bolt",
52
+ ...props,
53
+ ref,
54
+ onClick: handleOnClick,
55
+ className: clsx("cloud-button", props.className || "", {
56
+ border: !!props.children,
57
+ filled
58
+ }),
59
+ "data-tooltip": `Power feature`,
60
+ "data-tooltip-delay": 0,
61
+ children: props.children
62
+ }
63
+ );
64
+ }
65
+ );
66
+ export {
67
+ PowerpackButton
68
+ };
69
+ //# sourceMappingURL=PowerpackButton.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PowerpackButton.es.js","sources":["../../../../../src/components/Powerpack/PowerpackButton.tsx"],"sourcesContent":["import { PowerpackFeature, usePowerpack } from '@shared/context'\nimport { Button, ButtonProps } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport { forwardRef, MouseEvent } from 'react'\nimport styled from 'styled-components'\n\nconst StyledButton = styled(Button)`\n background-color: unset;\n color: var(--md-sys-color-tertiary);\n transition: color 0.2s, background-color 0.2s, opacity 0.2s;\n border-radius: var(--border-radius-xl);\n\n &.filled {\n background-color: var(--md-sys-color-tertiary);\n color: var(--md-sys-color-on-tertiary);\n }\n\n &.border {\n border: 1px solid var(--md-sys-color-tertiary);\n }\n\n &:hover {\n color: var(--md-sys-color-on-tertiary);\n }\n\n .icon {\n font-variation-settings: 'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 20;\n }\n`\n\nexport interface PowerpackButtonProps extends ButtonProps {\n feature: PowerpackFeature\n filled?: boolean\n}\n\nexport const PowerpackButton = forwardRef<HTMLButtonElement, PowerpackButtonProps>(\n ({ feature, filled, ...props }, ref) => {\n const { setPowerpackDialog } = usePowerpack()\n\n const handleOnClick = (e: MouseEvent<HTMLButtonElement>) => {\n // open a dialog to subscribe to Ynput Cloud\n setPowerpackDialog(feature)\n // Call the original onClick handler\n props.onClick?.(e)\n }\n\n return (\n <StyledButton\n variant={props.variant || 'tertiary'}\n icon={props.icon || 'bolt'}\n {...props}\n ref={ref}\n onClick={handleOnClick}\n className={clsx('cloud-button', props.className || '', {\n border: !!props.children,\n filled,\n })}\n data-tooltip={`Power feature`}\n data-tooltip-delay={0}\n >\n {props.children}\n </StyledButton>\n )\n },\n)\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;;AAMA,MAAM,eAAe,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6B3B,MAAM,kBAAkB;AAAA,EAC7B,CAAC,EAAE,SAAS,QAAQ,GAAG,MAAA,GAAS,QAAQ;AAChC,UAAA,EAAE,mBAAmB,IAAI,aAAa;AAEtC,UAAA,gBAAgB,CAAC,MAAqC;;AAE1D,yBAAmB,OAAO;AAE1B,kBAAM,YAAN,+BAAgB;AAAA,IAClB;AAGE,WAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,MAAM,WAAW;AAAA,QAC1B,MAAM,MAAM,QAAQ;AAAA,QACnB,GAAG;AAAA,QACJ;AAAA,QACA,SAAS;AAAA,QACT,WAAW,KAAK,gBAAgB,MAAM,aAAa,IAAI;AAAA,UACrD,QAAQ,CAAC,CAAC,MAAM;AAAA,UAChB;AAAA,QAAA,CACD;AAAA,QACD,gBAAc;AAAA,QACd,sBAAoB;AAAA,QAEnB,UAAM,MAAA;AAAA,MAAA;AAAA,IACT;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("../../../../_virtual/jsx-runtime.cjs.js");
4
+ const PowerpackDialog_styled = require("./PowerpackDialog.styled.cjs.js");
5
+ const ayonReactComponents = require("@ynput/ayon-react-components");
6
+ const PricingLink = require("./PricingLink.cjs.js");
7
+ require("../../context/RemoteModulesContext.cjs.js");
8
+ require("../../context/DetailsPanelContext.cjs.js");
9
+ require("../../context/ThumbnailUploaderContext.cjs.js");
10
+ require("../../context/SettingsPanelContext.cjs.js");
11
+ require("../../context/pip/PiPProvider.cjs.js");
12
+ require("react-dom");
13
+ require("../../context/pip/PiPWrapper.cjs.js");
14
+ require("../../context/AddonProjectContext.cjs.js");
15
+ require("../../context/AddonContext.cjs.js");
16
+ const PowerpackContext = require("../../context/PowerpackContext.cjs.js");
17
+ const PowerpackDialog = ({}) => {
18
+ const { setPowerpackDialog, selectedPowerPack, powerpackDialog } = PowerpackContext.usePowerpack();
19
+ if (!powerpackDialog) return null;
20
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(PowerpackDialog_styled.PowerpackDialog, { isOpen: true, onClose: () => setPowerpackDialog(null), size: "lg", children: [
21
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(PowerpackDialog_styled.MainFeature, { children: [
22
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs("h1", { children: [
23
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(ayonReactComponents.Icon, { icon: "bolt" }),
24
+ powerpackDialog.label
25
+ ] }),
26
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("h2", { children: powerpackDialog.description })
27
+ ] }),
28
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(PowerpackDialog_styled.FeaturesList, { children: [
29
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs("h3", { children: [
30
+ "Unlock all ",
31
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(ayonReactComponents.Icon, { icon: "bolt" }),
32
+ " ",
33
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("span", { className: "green", children: "Power Features" }),
34
+ " with an AYON subscription."
35
+ ] }),
36
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs("ul", { children: [
37
+ Object.entries(PowerpackContext.powerpackFeatures).sort(([key]) => key !== selectedPowerPack ? 1 : -1).map(([key, value]) => /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs("li", { children: [
38
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(ayonReactComponents.Icon, { icon: "check" }),
39
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("span", { children: value.bullet })
40
+ ] }, key)),
41
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx("li", { className: "more", children: "More coming soon!" })
42
+ ] })
43
+ ] }),
44
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(PricingLink.PricingLink, { children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(PowerpackDialog_styled.MoreButton, { children: "Find out more" }) })
45
+ ] });
46
+ };
47
+ exports.PowerpackDialog = PowerpackDialog;
48
+ //# sourceMappingURL=PowerpackDialog.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PowerpackDialog.cjs.js","sources":["../../../../../src/components/Powerpack/PowerpackDialog.tsx"],"sourcesContent":["import * as Styled from './PowerpackDialog.styled'\nimport { FC } from 'react'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { PricingLink } from './PricingLink'\nimport { powerpackFeatures, usePowerpack } from '@shared/context'\n\nexport interface PowerpackDialogProps {}\n\nexport const PowerpackDialog: FC<PowerpackDialogProps> = ({}) => {\n const { setPowerpackDialog, selectedPowerPack, powerpackDialog } = usePowerpack()\n\n if (!powerpackDialog) return null\n\n return (\n <Styled.PowerpackDialog isOpen onClose={() => setPowerpackDialog(null)} size=\"lg\">\n <Styled.MainFeature>\n <h1>\n <Icon icon=\"bolt\" />\n {powerpackDialog.label}\n </h1>\n <h2>{powerpackDialog.description}</h2>\n </Styled.MainFeature>\n\n <Styled.FeaturesList>\n <h3>\n Unlock all <Icon icon=\"bolt\" /> <span className=\"green\">Power Features</span> with an AYON\n subscription.\n </h3>\n <ul>\n {Object.entries(powerpackFeatures)\n .sort(([key]) => (key !== selectedPowerPack ? 1 : -1))\n .map(([key, value]) => (\n <li key={key}>\n <Icon icon=\"check\" />\n <span>{value.bullet}</span>\n </li>\n ))}\n <li className=\"more\">More coming soon!</li>\n </ul>\n </Styled.FeaturesList>\n <PricingLink>\n <Styled.MoreButton>Find out more</Styled.MoreButton>\n </PricingLink>\n </Styled.PowerpackDialog>\n )\n}\n"],"names":["usePowerpack","jsxs","Styled.PowerpackDialog","Styled.MainFeature","jsx","Icon","Styled.FeaturesList","powerpackFeatures","PricingLink","Styled.MoreButton"],"mappings":";;;;;;;;;;;;;;;;AAQa,MAAA,kBAA4C,CAAC,CAAA,MAAO;AAC/D,QAAM,EAAE,oBAAoB,mBAAmB,gBAAA,IAAoBA,iBAAAA,aAAa;AAE5E,MAAA,CAAC,gBAAwB,QAAA;AAE7B,SACGC,kDAAAC,uBAAAA,iBAAA,EAAuB,QAAM,MAAC,SAAS,MAAM,mBAAmB,IAAI,GAAG,MAAK,MAC3E,UAAA;AAAA,IAACD,kDAAAE,uBAAAA,aAAA,EACC,UAAA;AAAA,MAAAF,kDAAC,MACC,EAAA,UAAA;AAAA,QAACG,2BAAAA,kBAAAA,IAAAC,oBAAA,MAAA,EAAK,MAAK,OAAO,CAAA;AAAA,QACjB,gBAAgB;AAAA,MAAA,GACnB;AAAA,MACAD,2BAAAA,kBAAAA,IAAC,MAAI,EAAA,UAAA,gBAAgB,YAAY,CAAA;AAAA,IAAA,GACnC;AAAA,IAEAH,kDAACK,uBAAAA,cAAA,EACC,UAAA;AAAA,MAAAL,kDAAC,MAAG,EAAA,UAAA;AAAA,QAAA;AAAA,QACSG,2BAAAA,kBAAAA,IAACC,oBAAK,MAAA,EAAA,MAAK,OAAO,CAAA;AAAA,QAAE;AAAA,QAAED,2BAAA,kBAAA,IAAA,QAAA,EAAK,WAAU,SAAQ,UAAc,kBAAA;AAAA,QAAO;AAAA,MAAA,GAE/E;AAAA,wDACC,MACE,EAAA,UAAA;AAAA,QAAO,OAAA,QAAQG,iBAAAA,iBAAiB,EAC9B,KAAK,CAAC,CAAC,GAAG,MAAO,QAAQ,oBAAoB,IAAI,EAAG,EACpD,IAAI,CAAC,CAAC,KAAK,KAAK,wDACd,MACC,EAAA,UAAA;AAAA,UAACH,2BAAAA,kBAAAA,IAAAC,oBAAA,MAAA,EAAK,MAAK,QAAQ,CAAA;AAAA,UACnBD,2BAAAA,kBAAAA,IAAC,QAAM,EAAA,UAAA,MAAM,OAAO,CAAA;AAAA,QAAA,EAAA,GAFb,GAGT,CACD;AAAA,QACFA,2BAAA,kBAAA,IAAA,MAAA,EAAG,WAAU,QAAO,UAAiB,oBAAA,CAAA;AAAA,MAAA,EACxC,CAAA;AAAA,IAAA,GACF;AAAA,qDACCI,YAAAA,aACC,EAAA,UAAAJ,2BAAAA,kBAAAA,IAACK,uBAAAA,YAAA,EAAkB,2BAAa,EAClC,CAAA;AAAA,EAAA,GACF;AAEJ;;"}